@netless/window-manager 0.3.26 → 0.3.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.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/docs/0.3.x-clean-all-scenes.md +19 -0
- package/package.json +1 -1
- package/src/index.ts +3 -0
package/dist/index.umd.js
CHANGED
@@ -38,5 +38,5 @@ var gi=bt.exports,vi=St,wi=fi.exports;function bi(e){for(var t="https://reactjs.
|
|
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 nf(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 rf=0,sf="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-rf));rf=t+i,setTimeout((function(){return e(rf)}),i)},af=1/60*1e3,of=!0,lf=!1,cf=!1,uf={delta:0,timestamp:0},df=["read","update","preRender","render","postRender"],hf=function(e){return lf=e},pf=df.reduce((function(e,t){var i,n,r,s,a,o,l,c,u;return e[t]=(i=hf,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}),{}),ff=df.reduce((function(e,t){var i=pf[t];return e[t]=function(e,t,n){return void 0===t&&(t=!1),void 0===n&&(n=!1),lf||vf(),i.schedule(e,t,n),e},e}),{}),mf=function(e){return pf[e].process(uf)},gf=function(e){lf=!1,uf.delta=of?af:Math.max(Math.min(e-uf.timestamp,40),1),of||(af=uf.delta),uf.timestamp=e,cf=!0,df.forEach(mf),cf=!1,lf&&(of=!1,sf(gf))},vf=function(){lf=!0,of=!0,cf||sf(gf)},wf=function(){return(wf=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)},bf=function(e,t){return function(i){return Math.max(Math.min(i,t),e)}},yf=function(e){return e%1?Number(e.toFixed(5)):e},xf=/^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2,3}\s*\/*\s*[\d\.]+%?\))$/i,Mf={test:function(e){return"number"==typeof e},parse:parseFloat,transform:function(e){return e}},Cf=wf(wf({},Mf),{transform:bf(0,1)}),If=wf(wf({},Mf),{default:1}),Sf=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}}},Ef=Sf("deg"),Tf=Sf("%"),Af=Sf("px"),kf=wf(wf({},Tf),{parse:function(e){return Tf.parse(e)/100},transform:function(e){return Tf.transform(100*e)}}),Nf=bf(0,255),Pf=function(e){return void 0!==e.red},zf=function(e){return void 0!==e.hue},Df=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}},Lf=wf(wf({},Mf),{transform:function(e){return Math.round(Nf(e))}});function Bf(e,t){return e.startsWith(t)&&xf.test(e)}var jf,Vf={test:function(e){return"string"==typeof e?Bf(e,"rgb"):Pf(e)},parse:Df(["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:Lf.transform(n),green:Lf.transform(r),blue:Lf.transform(s),alpha:yf(Cf.transform(o))}).red+", "+t.green+", "+t.blue+", "+(void 0===(i=t.alpha)?1:i)+")"}},_f={test:function(e){return"string"==typeof e?Bf(e,"hsl"):zf(e)},parse:Df(["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:Tf.transform(yf(r)),lightness:Tf.transform(yf(s)),alpha:yf(Cf.transform(o))}).hue+", "+t.saturation+", "+t.lightness+", "+(void 0===(i=t.alpha)?1:i)+")"}},Of=wf(wf({},Vf),{test:function(e){return"string"==typeof e&&Bf(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}}}),Rf={test:function(e){return"string"==typeof e&&xf.test(e)||Pf(e)||zf(e)},parse:function(e){return Vf.test(e)?Vf.parse(e):_f.test(e)?_f.parse(e):Of.test(e)?Of.parse(e):e},transform:function(e){return Pf(e)?Vf.transform(e):zf(e)?_f.transform(e):e}},Uf=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=nf(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,ff.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}},Wf=/([a-z])([A-Z])/g,Hf=function(e){return e.replace(Wf,"$1-$2").toLowerCase()},Qf=new Map,$f=new Map,Ff=["Webkit","Moz","O","ms",""],Zf=Ff.length,Yf="undefined"!=typeof document,Gf=function(e,t){return $f.set(e,Hf(t))},Xf=function(e,t){void 0===t&&(t=!1);var i,n=t?$f:Qf;return n.has(e)||(Yf?function(e){jf=jf||document.createElement("div");for(var t=0;t<Zf;t++){var i=Ff[t],n=""===i,r=n?e:i+e.charAt(0).toUpperCase()+e.slice(1);if(r in jf.style||n){if(n&&"clipPath"===e&&$f.has(e))return;Qf.set(e,r),Gf(e,(n?"":"-")+Hf(r))}}}(e):Gf(i=e,i)),n.get(e)||e},Jf=["","X","Y","Z"],Kf=["translate","scale","rotate","skew","transformPerspective"].reduce((function(e,t){return Jf.reduce((function(e,i){return e.push(t+i),e}),e)}),["x","y","z"]),qf=Kf.reduce((function(e,t){return e[t]=!0,e}),{});function em(e){return!0===qf[e]}function tm(e,t){return Kf.indexOf(e)-Kf.indexOf(t)}var im=new Set(["originX","originY","originZ"]);function nm(e){return im.has(e)}var rm=tf(tf({},Mf),{transform:Math.round}),sm={color:Rf,backgroundColor:Rf,outlineColor:Rf,fill:Rf,stroke:Rf,borderColor:Rf,borderTopColor:Rf,borderRightColor:Rf,borderBottomColor:Rf,borderLeftColor:Rf,borderWidth:Af,borderTopWidth:Af,borderRightWidth:Af,borderBottomWidth:Af,borderLeftWidth:Af,borderRadius:Af,radius:Af,borderTopLeftRadius:Af,borderTopRightRadius:Af,borderBottomRightRadius:Af,borderBottomLeftRadius:Af,width:Af,maxWidth:Af,height:Af,maxHeight:Af,size:Af,top:Af,right:Af,bottom:Af,left:Af,padding:Af,paddingTop:Af,paddingRight:Af,paddingBottom:Af,paddingLeft:Af,margin:Af,marginTop:Af,marginRight:Af,marginBottom:Af,marginLeft:Af,rotate:Ef,rotateX:Ef,rotateY:Ef,rotateZ:Ef,scale:If,scaleX:If,scaleY:If,scaleZ:If,skew:Ef,skewX:Ef,skewY:Ef,distance:Af,translateX:Af,translateY:Af,translateZ:Af,x:Af,y:Af,z:Af,perspective:Af,opacity:Cf,originX:kf,originY:kf,originZ:Af,zIndex:rm,fillOpacity:Cf,strokeOpacity:Cf,numOctaves:rm},am=function(e){return sm[e]},om=function(e,t){return t&&"number"==typeof e?t.transform(e):e},lm=new Set(["scrollLeft","scrollTop"]),cm=new Set(["scrollLeft","scrollTop","transform"]),um={x:"translateX",y:"translateY",z:"translateZ"};function dm(e){return"function"==typeof e}function hm(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=am(d),f=om(h,p);em(d)?(c=!0,n[d]=f,s.push(d),l&&(p.default&&h!==p.default||!p.default&&0!==h)&&(l=!1)):nm(d)?(r[d]=f,u=!0):cm.has(d)&&dm(f)||(i[Xf(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(tm);for(var l=i.length,c=0;c<l;c++){var u=i[c];a+=(um[u]||u)+"("+t[u]+") ",o="z"===u||o}return!o&&r?a+="translateZ(0)":a=a.trim(),dm(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 pm=Uf({onRead:function(e,t){var i=t.element,n=t.preparseOutput,r=am(e);if(em(e))return r&&r.default||0;if(lm.has(e))return i[e];var s=window.getComputedStyle(i,null).getPropertyValue(Xf(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:lm}),fm=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues"]),mm=function(e,t){return Af.transform(e*t)},gm={x:0,y:0,width:0,height:0};function vm(e,t,i){return"string"==typeof e?e:Af.transform(t+i*e)}var wm={enableHardwareAcceleration:!1,isDashCase:!1};function bm(e,t,i){void 0===i&&(i=!0);var n={style:{}},r=hm(wm);return function(s){return function(e,t,i,n,r,s){void 0===t&&(t=gm),void 0===n&&(n=hm(wm)),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(nf(e,["attrX","attrY","originX","originY","pathLength","pathSpacing","pathOffset"]));for(var w in v)"transform"===w?r.style.transform=v[w]:r[s&&!fm.has(w)?Hf(w):w]=v[w];return(void 0!==u||void 0!==d||v.transform)&&(r.style.transformOrigin=(o=void 0!==d?d:.5,vm(void 0!==u?u:.5,(a=t).x,a.width)+" "+vm(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"]=mm(-g,i),r[s?"stroke-dasharray":"strokeDasharray"]=mm(h,i)+" "+mm(f,i)),r}(s,e,t,r,n,i)}}var ym=Uf({onRead:function(e,t){var i=t.element;if(em(e=fm.has(e)?e:Hf(e))){var n=am(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])}}),xm=Uf({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)}}),Mm=new WeakMap;function Cm(e,t){return i="string"==typeof e?document.querySelector(e):e,n=t,Mm.has(i)?Mm.get(i):function(e,t){var i,r,s,a,o;return e===window?i=xm(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=nf(t,["enableHardwareAcceleration","allowTransformNone"]);return pm(tf({element:e,buildStyles:hm({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=ym({element:r,buildAttrs:bm(s,a)})),Mm.set(e,i),i}(i,n);var i,n}var Im=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 Sm="!#%()*+,-./:;=?@[]^_`{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",Em=Sm.length,Tm=Array(20),Am=()=>{for(let e=0;e<20;e++)Tm[e]=Sm.charAt(Math.random()*Em);return Tm.join("")};class km{constructor(){this.disposers=new Map}add(e,t=Am()){return this.flush(t),this.disposers.set(t,e()),t}addDisposer(e,t=Am()){return this.flush(t),this.disposers.set(t,e),t}addEventListener(e,t,i,n,r=Am()){return this.add((()=>(e.addEventListener(t,i,n),()=>e.removeEventListener(t,i,n))),r),r}setTimeout(e,t,i=Am()){return this.add((()=>{const n=window.setTimeout((()=>{this.remove(i),e()}),t);return()=>window.clearTimeout(n)}),i)}setInterval(e,t,i=Am()){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 Nm,Pm,zm,Dm,Lm,Bm,jm,Vm,_m,Om,Rm=Object.defineProperty,Um=("undefined"!=typeof require&&require,(e,t,i)=>{return s=i,(r="symbol"!=typeof t?t+"":t)in(n=e)?Rm(n,r,{enumerable:!0,configurable:!0,writable:!0,value:s}):n[r]=s,i;var n,r,s});class Wm{constructor(e,t){Um(this,"_value"),Um(this,"_beforeDestroys"),Um(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 Wm(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 Hm(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 Qm(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 Wm(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 Wm(e,i))}}function $m(e,t,i){return Math.min(Math.max(e,t),i)}function Fm(e){e.stopPropagation(),e.cancelable&&e.preventDefault()}function Zm(e){return e.touches?e.touches[0]:e}function Ym(){return Date.now().toString().slice(6)+Math.random().toString().slice(2,8)}(Pm=Nm||(Nm={})).Light="light",Pm.Dark="dark",Pm.Auto="auto",(Dm=zm||(zm={})).Normal="normal",Dm.Minimized="minimized",Dm.Maximized="maximized",(Bm=Lm||(Lm={})).DarkMode="dark_mode",Bm.PrefersColorScheme="prefers_color_scheme",Bm.Close="close",Bm.Focus="focus",Bm.Blur="blur",Bm.Move="move",Bm.Resize="resize",Bm.IntrinsicMove="intrinsic_move",Bm.IntrinsicResize="intrinsic_resize",Bm.VisualResize="visual_resize",Bm.ZIndex="z_index",Bm.State="state",Bm.Minimized="minimized",Bm.Maximized="maximized",Bm.Readonly="readonly",Bm.Destroyed="destroyed",(Vm=jm||(jm={})).Close="close",Vm.Maximize="maximize",Vm.Minimize="minimize",(Om=_m||(_m={})).North="n",Om.South="s",Om.West="w",Om.East="e",Om.NorthWest="nw",Om.NorthEast="ne",Om.SouthEast="se",Om.SouthWest="sw";let Gm=1;function Xm(){return"New Box "+Gm++}function Jm(e){return Boolean(e)}function Km(e){return!e}class qm{constructor({readonly:e=!1,title:t,buttons:i,onEvent:n,onDragStart:r,namespace:s="telebox",state:a=zm.Normal}={}){this.$btns=[],this.sideEffect=new km,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;Fm(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:jm.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;Fm(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:jm.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:jm.Minimize,iconClassName:this.wrapClassName("titlebar-icon-minimize")},{type:jm.Maximize,iconClassName:this.wrapClassName("titlebar-icon-maximize"),isActive:e=>e===zm.Maximized},{type:jm.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){Fm(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 eg{constructor({id:e=Ym(),title:t=Xm(),prefersColorScheme:i=Nm.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 km,this.handleTrackStart=e=>{var t;return null==(t=this._handleTrackStart)?void 0:t.call(this,e)},this._sideEffect=new km,this._valSideEffectBinder=Qm(this._sideEffect);const{combine:T,createVal:A}=this._valSideEffectBinder;this.id=e,this.namespace=y,this.events=new ef,this._delegateEvents=new ef;const k=A(i);k.reaction(((e,t,i)=>{i||this.events.emit(Lm.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 tg}return N.setValue("dark"===e,i),tg}),"prefers-color-scheme")})),N.reaction(((e,t,i)=>{i||this.events.emit(Lm.DarkMode,e)}));const P=A(S,Im),z=A(E,Im),D=A(t),L=A(r);L.reaction(((e,t,i)=>{i||e||this.events.emit(Lm.Close)}));const B=A(p);B.reaction(((e,t,i)=>{i||this.events.emit(Lm.Readonly,e)}));const j=A(f),V=A(m),_=A(g),O=A(v),R=A(b);R.reaction(((e,t,i)=>{i||this.events.emit(Lm.ZIndex,e)}));const U=A(w);U.reaction(((e,t,i)=>{i||this.events.emit(e?Lm.Focus:Lm.Blur)}));const W=A(d);W.reaction(((e,t,i)=>{i||this.events.emit(Lm.Minimized,e)}));const H=A(h);H.reaction(((e,t,i)=>{i||this.events.emit(Lm.Maximized,e)}));const Q=T([W,H],(([e,t])=>e?zm.Minimized:t?zm.Maximized:zm.Normal));Q.reaction(((e,t,i)=>{i||this.events.emit(Lm.State,e)}));const $=A({width:$m(o,0,1),height:$m(l,0,1)},Im),F=A({width:$m(s,$.value.width,1),height:$m(a,$.value.height,1)},Im);$.reaction(((e,t,i)=>{F.setValue({width:$m(s,e.width,1),height:$m(a,e.height,1)},i)})),F.reaction(((e,t,i)=>{i||this.events.emit(Lm.IntrinsicResize,e)}));const Z=T([F,H],(([e,t])=>t?{width:1,height:1}:e),Im);Z.reaction(((e,t,i)=>{i||this.events.emit(Lm.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),Im);Y.reaction(((e,t,i)=>{i||this.events.emit(Lm.VisualResize,e)}));const G=A({x:$m(c,0,1),y:$m(u,0,1)},Im);G.reaction(((e,t,i)=>{i||this.events.emit(Lm.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),Im);X.reaction(((e,t,i)=>{i||this.events.emit(Lm.Move,e)})),this.titleBar=x||new qm({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 jm.Maximize:H.setValue(!H.value);break;case jm.Minimize:W.setValue(!0);break;case jm.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);Hm(this,{prefersColorScheme:k,darkMode:N,containerRect:P,collectorRect:z,title:D,visible:L,readonly:B,resizable:j,draggable:V,fence:_,fixRatio:O,focus:U,zIndex:R,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 zm.Maximized:this.setMinimized(!1,t),this.setMaximized(!0,t);break;case zm.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:$m(i,this.minWidth,1),height:$m(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=Jm)=>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",Km),t(this.$box,this._resizable$,"no-resize",Km),t(this.$box,this._focus$,"blur",Km),t(this.$box,this._darkMode$,"color-scheme-dark"),t(this.$box,this._darkMode$,"color-scheme-light",Km),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===zm.Minimized),n===zm.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=Cm(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}}),Im).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(_m).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!==zm.Normal)return;Fm(e);let{pageX:t,pageY:i}=Zm(e);i<0&&(i=0);const n=(t-c)/this.containerRect.width,d=(i-u)/this.containerRect.height;switch(r){case _m.North:this.transform(this.x,a+d,this.width,l-d);break;case _m.South:this.transform(this.x,this.y,this.width,l+d);break;case _m.West:this.transform(s+n,this.y,o-n,this.height);break;case _m.East:this.transform(this.x,this.y,o+n,this.height);break;case _m.NorthWest:this.transform(s+n,a+d,o-n,l-d);break;case _m.NorthEast:this.transform(this.x,a+d,o+n,l-d);break;case _m.SouthEast:this.transform(this.x,this.y,o+n,l+d);break;case _m.SouthWest:this.transform(s+n,this.y,o-n,l+d);break;default:if(this.fence)this.move($m(s+n,0,1-this.width),$m(a+d,0,1-this.height));else{const e=20/this.containerRect.width,t=20/this.containerRect.height;this.move($m(s+n,e-this.width,1-e),$m(a+d,0,1-t))}}},h=e=>{r=void 0,n&&(Fm(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!==zm.Normal)return;const f=e.target;if(null==(p=f.dataset)?void 0:p.teleBoxHandle){Fm(e),s=this.x,a=this.y,o=this.width,l=this.height,({pageX:c,pageY:u}=Zm(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(Lm.Destroyed),this._sideEffect.flushAll(),this._renderSideEffect.flushAll(),this.events.removeAllListeners(),this._delegateEvents.removeAllListeners()}wrapClassName(e){return`${this.namespace}-${e}`}}function tg(){}var ig,ng;class rg{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}`}}(ng=ig||(ig={})).Focused="focused",ng.Blurred="blurred",ng.Created="created",ng.Removed="removed",ng.State="state",ng.Maximized="maximized",ng.Minimized="minimized",ng.Move="move",ng.Resize="resize",ng.IntrinsicMove="intrinsic_move",ng.IntrinsicResize="intrinsic_resize",ng.VisualResize="visual_resize",ng.ZIndex="z_index",ng.PrefersColorScheme="prefers_color_scheme",ng.DarkMode="dark_mode";class sg extends qm{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===zm.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===zm.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===zm.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===zm.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 ag{constructor({root:e=document.body,prefersColorScheme:t=Nm.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 ef,this._sideEffect=new km;const{combine:c,createVal:u}=Qm(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(ig.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(ig.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(ig.Maximized,e)}));const v=c([m,g],(([e,t])=>e?zm.Minimized:t?zm.Maximized:zm.Normal));v.reaction(((e,t,i)=>{this.maxTitleBar.setState(e),i||this.events.emit(ig.State,e)}));const w=u(r);w.subscribe(((e,t,i)=>{this.boxes.forEach((t=>t.setFence(e,i)))}));const b=u(s,Im);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 rg({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(ig.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 sg({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 jm.Maximize:g.setValue(!g.value);break;case jm.Minimize:m.setValue(!0);break;case Lm.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)})),Hm(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 zm.Maximized:this.setMinimized(!1,t),this.setMaximized(!0,t);break;case zm.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 eg(Kp(Jp({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(jm.Maximize,(()=>{this.setMaximized(!this.maximized)})),i._delegateEvents.on(jm.Minimize,(()=>{this.setMinimized(!0)})),i._delegateEvents.on(jm.Close,(()=>{this.remove(i),this.focusTopBox()})),i._coord$.reaction(((e,t,n)=>{n||this.events.emit(ig.Move,i)})),i._size$.reaction(((e,t,n)=>{n||this.events.emit(ig.Resize,i)})),i._intrinsicCoord$.reaction(((e,t,n)=>{n||this.events.emit(ig.IntrinsicMove,i)})),i._intrinsicSize$.reaction(((e,t,n)=>{n||this.events.emit(ig.IntrinsicResize,i)})),i._visualSize$.reaction(((e,t,n)=>{n||this.events.emit(ig.VisualResize,i)})),i._zIndex$.reaction(((e,t,n)=>{this.topBox&&i.zIndex>this.topBox.zIndex&&this.topBox$.setValue(i),n||this.events.emit(ig.ZIndex,i)})),this.events.emit(ig.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(ig.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(ig.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 Wm&&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(ig.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(ig.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(ig.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 Kp(Jp({},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 og{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=>{av.emit("boxStateChange",e),sv.emit("boxStateChange",e)})),this.teleBoxManager._darkMode$.reaction((e=>{av.emit("darkModeChange",e)})),this.teleBoxManager._prefersColorScheme$.reaction((e=>{av.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=>{sv.emit("close",{appId:e.id})}))})),this.teleBoxManager.events.on("intrinsic_move",r.debounce((e=>{sv.emit("move",{appId:e.id,x:e.intrinsicX,y:e.intrinsicY})}),50)),this.teleBoxManager.events.on("intrinsic_resize",r.debounce((e=>{sv.emit("resize",{appId:e.id,width:e.intrinsicWidth,height:e.intrinsicHeight})}),200)),this.teleBoxManager.events.on("focused",(e=>{e&&(this.manager.canOperate?sv.emit("focus",{appId:e.id}):this.teleBoxManager.blurBox(e.id))})),this.teleBoxManager.events.on("z_index",(e=>{this.manager.store.updateAppState(e.id,ap.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=fp,minheight:s=mp}=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),sv.emit(`${e.appId}${np.WindowCreated}`)}setBoxInitState(e){const t=this.teleBoxManager.queryOne({id:e});t&&t.state===zm.Maximized&&sv.emit("resize",{appId:e,x:t.x,y:t.y,width:t.intrinsicWidth,height:t.intrinsicHeight})}setupBoxManager(e){const t=lv.wrapper?lv.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)||lv.wrapper,s=new rg({styles:null==e?void 0:e.collectorStyles}).mount(r);n.collector=s;const a=new ag(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),av.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 lg{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(__spreadProps(__spreadValues({},i),{animationMode:s.AnimationMode.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",(()=>s.reaction((()=>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=ug(this.displayer);return Tp(t,s.ViewVisionMode.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!==s.ViewVisionMode.Writable)return this.freedomAllViews(),new Promise(((e,t)=>{this.timer=window.setTimeout((()=>{try{const t=this.store.getMainViewScenePath();t&&(this.freedomAllViews(),Ep(this.manager.room,t),this.mainViewProxy.switchViewModeToWriter()),e(!0)}catch(i){t(i)}}),100)}))}freedomAllViews(){this.manager.appProxies.forEach((e=>{e.setViewFocusScenePath(),e.view&&Tp(e.view,s.ViewVisionMode.Freedom)})),this.mainView.mode===s.ViewVisionMode.Writable&&(Ap(av,s.ViewVisionMode.Freedom),Tp(this.mainView,s.ViewVisionMode.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(),lv.wrapper&&(null==(e=lv.wrapper.parentNode)||e.removeChild(lv.wrapper),lv.wrapper=void 0),this.releaseView(this.mainView)}}const ug=e=>{const t=e.views.createView();return dg(t),t},dg=e=>{e.setCameraBound({maxContentMode:()=>10,minContentMode:()=>.1})};class hg{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=()=>s.reaction((()=>this.mainViewCamera),(e=>{e&&e.id!==this.manager.uid&&(this.moveCameraToContian(this.mainViewSize),this.moveCamera(e))}),{fireImmediately:!0}),this.sizeChangeHandler=r.debounce((e=>{e&&(this.moveCameraToContian(e),this.moveCamera(this.mainViewCamera))}),30),this.onCameraUpdatedByDevice=e=>{this.store.setMainViewCamera(__spreadProps(__spreadValues({},e),{id:this.manager.uid})),r.isEqual(this.mainViewSize,__spreadProps(__spreadValues({},this.mainView.size),{id:this.manager.uid}))||this.setMainViewSize(this.view.size)},this.mainViewClickListener=()=>{this.mainViewClickHandler()},this.setMainViewSize=r.debounce((e=>{this.store.setMainViewSize(__spreadProps(__spreadValues({},e),{id:this.manager.uid}))}),50),this.onCameraOrSizeUpdated=()=>{av.emit("cameraStateChange",this.cameraState)},this.mainView=this.createMainView(),this.moveCameraSizeByAttributes(),this.cameraStore.register(this.viewId,this.mainView),sv.once("mainViewMounted").then((()=>{setTimeout((()=>{this.start(),this.mainViewCamera&&this.mainViewSize||this.setCameraAndSize()}),200)})),sv.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(Op.MainViewCamera,this.cameraReaction),this.started=!0)}setCameraAndSize(){this.store.setMainViewCamera(__spreadProps(__spreadValues({},this.mainView.camera),{id:this.manager.uid})),this.store.setMainViewSize(__spreadProps(__spreadValues({},this.mainView.size),{id:this.manager.uid}))}get view(){return this.mainView}get cameraState(){return __spreadValues(__spreadValues({},this.view.camera),this.view.size)}createMainView(){const e=ug(this.manager.displayer),t=this.store.getMainViewScenePath();return t&&Sp(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!==s.ViewVisionMode.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===s.ViewVisionMode.Writable)return;this.cameraStore.switchView(this.viewId,this.mainView,(()=>{Ap(av,s.ViewVisionMode.Writable),Tp(this.view,s.ViewVisionMode.Writable)}))}}moveCameraToContian(e){r.isEmpty(e)||(this.view.moveCameraToContain({width:e.width,height:e.height,originX:-e.width/2,originY:-e.height/2,animationMode:s.AnimationMode.Immediately}),this.scale=this.view.camera.scale)}moveCamera(e){if(!r.isEmpty(e)){if(r.isEqual(e,this.view.camera))return;const{centerX:t,centerY:i,scale:n}=e,a=n*(this.scale||1);this.view.moveCamera({centerX:t,centerY:i,scale:a,animationMode:s.AnimationMode.Immediately})}}stop(){var e,t;this.removeCameraListener(),null==(e=this.manager.refresher)||e.remove(Op.MainViewCamera),null==(t=this.manager.refresher)||t.remove(Op.MainViewSize),this.started=!1}destroy(){this.stop(),this.cameraStore.unregister(this.viewId,this.mainView)}}const pg=e=>(t,i)=>{if(void 0!==t){if(s.listenUpdated){const n=t=>{t.map((e=>e.kind)).includes(e)&&i()};return s.listenUpdated(t,n),i(),()=>s.unlistenUpdated(t,n)}return s.reaction((()=>t),(()=>{i()}),{fireImmediately:!0})}},fg=pg(s.UpdateEventKind.Removed);pg(s.UpdateEventKind.Inserted);class mg{constructor(e,t){this.manager=t,this.reactors=new Map,this.disposers=new Map,this.onPhaseChanged=e=>{e===s.RoomPhase.Connected&&this.phase===s.RoomPhase.Reconnecting&&this.onReconnected(),this.phase=e},this.onReconnected=()=>{Wp("onReconnected refresh reactors"),this.releaseDisposers(),this.reactors.forEach(((e,t)=>{r.isFunction(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=>{r.isFunction(e)&&e()})),this.disposers.clear()}add(e,t){r.isFunction(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&&(r.isFunction(t)&&t(),this.disposers.delete(e))}destroy(){var e;null==(e=this.room)||e.callbacks.off("onPhaseChanged",this.onPhaseChanged),this.releaseDisposers()}}class gg{constructor(e,t){this.windowManger=e,this.appProxies=new Map,this.appStatus=new Map,this.store=new Up(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)})),sv.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(np.AppMove,t),this.store.updateAppState(t.appId,ap.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(np.AppResize,t),this.store.updateAppState(t.appId,ap.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(np.AppBoxStateChange,t)}},this.displayer=e.displayer,this.cameraStore=new lg,this.mainViewProxy=new hg(this),this.viewManager=new cg(this),this.boxManager=new og(this,t),this.appListeners=new Pp(this),this.displayer.callbacks.on(this.eventName,this.displayerStateListener),this.appListeners.addListeners(),this.refresher=new mg(this.room,this),sv.once("onCreated").then((()=>this.onCreated())),s.isPlayer(this.displayer)&&sv.on("seek",(e=>{this.appProxies.forEach((t=>{t.onSeek(e)})),this.attributesUpdateCallback(this.attributes.apps),this.onAppDelete(this.attributes.apps)})),sv.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(),sv.onAny(this.boxEventListener),null==(e=this.refresher)||e.add("apps",(()=>((e,t)=>{let i=null;const n=s.reaction(e,(()=>{i&&(i(),i=null);const n=e();i=()=>s.unlistenUpdated(n,t),s.listenUpdated(n,t)}),{fireImmediately:!0});return()=>{null==i||i(),n()}})((()=>this.attributes.apps),(()=>{this.attributesUpdateCallback(this.attributes.apps)})))),null==(t=this.refresher)||t.add("appsClose",(()=>fg(this.attributes.apps,(()=>{this.onAppDelete(this.attributes.apps)})))),null==(i=this.refresher)||i.add("maximized",(()=>s.autorun((()=>{const e=this.attributes.maximized;this.boxManager.maximized!==e&&this.boxManager.setMaximized(Boolean(e))})))),null==(n=this.refresher)||n.add("minimized",(()=>s.autorun((()=>{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&&Ep(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.default((async()=>{this.appStatus.set(t,up.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!==s.ViewVisionMode.Writable&&this.viewManager.switchMainViewToWriter(),this.mainViewProxy.addMainViewListener(),sv.emit("mainViewMounted")}async addApp(e,t){Wp("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=Ip.appClasses.get(e))?void 0:t());return n&&(null==(i=n.config)?void 0:i.singleton)?e:`${e}-${a.v4().replace("-","").slice(0,8)}`})(e.kind);this.appStatus.set(n,up.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;sv.emit("move",{appId:e.id,x:null==t?void 0:t.intrinsicX,y:null==t?void 0:t.intrinsicY}),this.store.updateAppState(e.id,ap.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 Hp(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 s.isRoom(this.displayer)?"onRoomStateChanged":"onPlayerStateChanged"}get attributes(){return this.windowManger.attributes}get canOperate(){return this.windowManger.canOperate}get room(){return s.isRoom(this.displayer)?this.displayer:void 0}get mainView(){return this.mainViewProxy.view}get focusApp(){if(this.store.focus)return this.appProxies.get(this.store.focus)}get uid(){var e;return(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===s.ScenePathType.None)throw new Error(`[WindowManager]: ${e} not valid scene`);if(t===s.ScenePathType.Page)await this._setMainViewScenePath(e);else if(t===s.ScenePathType.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(),Ep(this.room,e),this.store.setMainViewFocusPath(),this.dispatchInternalEvent(np.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(np.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),sv.emit("onReconnected")}notifyContainerRectUpdate(e){this.appProxies.forEach((t=>{t.appEmitter.emit("containerRectUpdate",e)}))}dispatchInternalEvent(e,t){this.safeDispatchMagixEvent(sp,{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(),sv.offAny(this.boxEventListener),sv.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(),av.clearListeners()}}function vg(){}function wg(e){return e()}function bg(){return Object.create(null)}function yg(e){e.forEach(wg)}function xg(e){return"function"==typeof e}function Mg(e,t){return e!=e?t==t:e!==t||e&&"object"==typeof e||"function"==typeof e}let Cg,Ig;function Sg(e,t){return Cg||(Cg=document.createElement("a")),Cg.href=t,e===Cg.href}function Eg(e,t){e.appendChild(t)}function Tg(e,t,i){e.insertBefore(t,i||null)}function Ag(e){e.parentNode.removeChild(e)}function kg(e){return document.createElement(e)}function Ng(e){return document.createTextNode(e)}function Pg(){return Ng(" ")}function zg(e,t,i){null==i?e.removeAttribute(t):e.getAttribute(t)!==i&&e.setAttribute(t,i)}function Dg(e,t){t=""+t,e.wholeText!==t&&(e.data=t)}function Lg(e,t,i,n){e.style.setProperty(t,i,n?"important":"")}function Bg(e){Ig=e}const jg=[],Vg=[],_g=[],Og=[],Rg=Promise.resolve();let Ug=!1;function Wg(e){_g.push(e)}let Hg=!1;const Qg=new Set;function $g(){if(!Hg){Hg=!0;do{for(let e=0;e<jg.length;e+=1){const t=jg[e];Bg(t),Fg(t.$$)}for(Bg(null),jg.length=0;Vg.length;)Vg.pop()();for(let e=0;e<_g.length;e+=1){const t=_g[e];Qg.has(t)||(Qg.add(t),t())}_g.length=0}while(jg.length);for(;Og.length;)Og.pop()();Ug=!1,Hg=!1,Qg.clear()}}function Fg(e){if(null!==e.fragment){e.update(),yg(e.before_update);const t=e.dirty;e.dirty=[-1],e.fragment&&e.fragment.p(e.ctx,t),e.after_update.forEach(Wg)}}const Zg=new Set;function Yg(e,t){-1===e.$$.dirty[0]&&(jg.push(e),Ug||(Ug=!0,Rg.then($g)),e.$$.dirty.fill(0)),e.$$.dirty[t/31|0]|=1<<t%31}function Gg(e,t,i,n,r,s,a,o=[-1]){const l=Ig;Bg(e);const c=e.$$={fragment:null,ctx:null,props:s,update:vg,not_equal:r,bound:bg(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(l?l.$$.context:t.context||[]),callbacks:bg(),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&&Yg(e,t)),i})):[],c.update(),u=!0,yg(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(Ag)}else c.fragment&&c.fragment.c();t.intro&&((d=e.$$.fragment)&&d.i&&(Zg.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||Wg((()=>{const t=s.map(wg).filter(xg);a?a.push(...t):yg(t),e.$$.on_mount=[]})),o.forEach(Wg)}(e,t.target,t.anchor,t.customElement),$g()}var d,h,p;Bg(l)}function Xg(e){let t,i,n;return{c(){t=kg("img"),zg(t,"class","netless-window-manager-cursor-selector-avatar"),zg(t,"style",i=e[15]()),Sg(t.src,n=e[7])||zg(t,"src",n),zg(t,"alt","avatar")},m(e,i){Tg(e,t,i)},p(e,i){128&i&&!Sg(t.src,n=e[7])&&zg(t,"src",n)},d(e){e&&Ag(t)}}}function Jg(e){let t,i;return{c(){t=kg("span"),i=Ng(e[1]),zg(t,"class","netless-window-manager-cursor-tag-name"),Lg(t,"background-color",e[10])},m(e,n){Tg(e,t,n),Eg(t,i)},p(e,n){2&n&&Dg(i,e[1]),1024&n&&Lg(t,"background-color",e[10])},d(e){e&&Ag(t)}}}function Kg(e){let t,i,n,r,s,a,o,l,c,u,d,h,p=e[13]&&Xg(e),f=e[14]&&Jg(e);return{c(){t=kg("div"),i=kg("div"),n=kg("div"),p&&p.c(),r=Pg(),s=kg("span"),a=Ng(e[0]),o=Pg(),f&&f.c(),l=Pg(),c=kg("div"),u=kg("img"),Lg(s,"overflow","hidden"),Lg(s,"white-space","nowrap"),Lg(s,"text-overflow","ellipsis"),Lg(s,"max-width","80px"),zg(n,"class",e[8]),Lg(n,"background-color",e[2]),Lg(n,"color",e[9]),Lg(n,"opacity",e[11]),zg(i,"class","netless-window-manager-cursor-name"),zg(u,"class",d="netless-window-manager-cursor-"+e[3]+"-image"),Sg(u.src,h=e[6])||zg(u,"src",h),zg(u,"alt",e[3]),zg(c,"class","cursor-image-wrapper"),zg(t,"class","netless-window-manager-cursor-mid"),Lg(t,"transform","translateX("+e[4]+"px) translateY("+e[5]+"px)"),Lg(t,"display",e[12])},m(e,d){Tg(e,t,d),Eg(t,i),Eg(i,n),p&&p.m(n,null),Eg(n,r),Eg(n,s),Eg(s,a),Eg(n,o),f&&f.m(n,null),Eg(t,l),Eg(t,c),Eg(c,u)},p(e,[i]){e[13]?p?p.p(e,i):(p=Xg(e),p.c(),p.m(n,r)):p&&(p.d(1),p=null),1&i&&Dg(a,e[0]),e[14]?f?f.p(e,i):(f=Jg(e),f.c(),f.m(n,null)):f&&(f.d(1),f=null),256&i&&zg(n,"class",e[8]),4&i&&Lg(n,"background-color",e[2]),512&i&&Lg(n,"color",e[9]),2048&i&&Lg(n,"opacity",e[11]),8&i&&d!==(d="netless-window-manager-cursor-"+e[3]+"-image")&&zg(u,"class",d),64&i&&!Sg(u.src,h=e[6])&&zg(u,"src",h),8&i&&zg(u,"alt",e[3]),48&i&&Lg(t,"transform","translateX("+e[4]+"px) translateY("+e[5]+"px)"),4096&i&&Lg(t,"display",e[12])},i:vg,o:vg,d(e){e&&Ag(t),p&&p.d(),f&&f.d()}}}function qg(e,t,i){let n,s,a,o,{cursorName:l}=t,{tagName:c}=t,{backgroundColor:u}=t,{appliance:d}=t,{x:h}=t,{y:p}=t,{src:f}=t,{visible:m}=t,{avatar:g}=t,{theme:v}=t,{color:w}=t,{cursorTagBackgroundColor:b}=t,{opacity:y}=t;return e.$$set=e=>{"cursorName"in e&&i(0,l=e.cursorName),"tagName"in e&&i(1,c=e.tagName),"backgroundColor"in e&&i(2,u=e.backgroundColor),"appliance"in e&&i(3,d=e.appliance),"x"in e&&i(4,h=e.x),"y"in e&&i(5,p=e.y),"src"in e&&i(6,f=e.src),"visible"in e&&i(16,m=e.visible),"avatar"in e&&i(7,g=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=!r.isEmpty(l)),2&e.$$.dirty&&i(14,s=!r.isEmpty(c)),128&e.$$.dirty&&i(13,a=!r.isEmpty(g)),65536&e.$$.dirty&&i(12,o=m?"initial":"none")},[l,c,u,d,h,p,f,g,v,w,b,y,o,a,s,()=>Object.entries({width:(n?19:28)+"px",height:(n?19:28)+"px",position:n?"initial":"absolute","border-color":n?"white":u,"margin-right":(n?4:0)+"px"}).map((([e,t])=>`${e}: ${t}`)).join(";"),m]}class ev extends class{$destroy(){!function(e,t){const i=e.$$;null!==i.fragment&&(yg(i.on_destroy),i.fragment&&i.fragment.d(t),i.on_destroy=i.fragment=null,i.ctx=[])}(this,1),this.$destroy=vg}$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(),Gg(this,e,qg,Kg,Mg,{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 tv={[s.ApplianceNames.pencil]:"data:image/png;base64,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",[s.ApplianceNames.selector]:"data:image/png;base64,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",[s.ApplianceNames.eraser]:"data:image/png;base64,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",[s.ApplianceNames.shape]:"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iNDBweCIgaGVpZ2h0PSI0MHB4IiB2aWV3Qm94PSIwIDAgNDAgNDAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDYwLjEgKDg4MTMzKSAtIGh0dHBzOi8vc2tldGNoLmNvbSAtLT4KICAgIDx0aXRsZT5zaGFwZS1jdXJzb3I8L3RpdGxlPgogICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+CiAgICA8ZGVmcz4KICAgICAgICA8cGF0aCBkPSJNMjAsMjEuNSBDMjAuMjQ1NDU5OSwyMS41IDIwLjQ0OTYwODQsMjEuNjc2ODc1MiAyMC40OTE5NDQzLDIxLjkxMDEyNDQgTDIwLjUsMjIgTDIwLjUsMjcgQzIwLjUsMjcuMjc2MTQyNCAyMC4yNzYxNDI0LDI3LjUgMjAsMjcuNSBDMTkuNzU0NTQwMSwyNy41IDE5LjU1MDM5MTYsMjcuMzIzMTI0OCAxOS41MDgwNTU3LDI3LjA4OTg3NTYgTDE5LjUsMjcgTDE5LjUsMjIgQzE5LjUsMjEuNzIzODU3NiAxOS43MjM4NTc2LDIxLjUgMjAsMjEuNSBaIE0yNywxOS41IEMyNy4yNzYxNDI0LDE5LjUgMjcuNSwxOS43MjM4NTc2IDI3LjUsMjAgQzI3LjUsMjAuMjQ1NDU5OSAyNy4zMjMxMjQ4LDIwLjQ0OTYwODQgMjcuMDg5ODc1NiwyMC40OTE5NDQzIEwyNywyMC41IEwyMiwyMC41IEMyMS43MjM4NTc2LDIwLjUgMjEuNSwyMC4yNzYxNDI0IDIxLjUsMjAgQzIxLjUsMTkuNzU0NTQwMSAyMS42NzY4NzUyLDE5LjU1MDM5MTYgMjEuOTEwMTI0NCwxOS41MDgwNTU3IEwyMiwxOS41IEwyNywxOS41IFogTTE4LDE5LjUgQzE4LjI3NjE0MjQsMTkuNSAxOC41LDE5LjcyMzg1NzYgMTguNSwyMCBDMTguNSwyMC4yNDU0NTk5IDE4LjMyMzEyNDgsMjAuNDQ5NjA4NCAxOC4wODk4NzU2LDIwLjQ5MTk0NDMgTDE4LDIwLjUgTDEzLDIwLjUgQzEyLjcyMzg1NzYsMjAuNSAxMi41LDIwLjI3NjE0MjQgMTIuNSwyMCBDMTIuNSwxOS43NTQ1NDAxIDEyLjY3Njg3NTIsMTkuNTUwMzkxNiAxMi45MTAxMjQ0LDE5LjUwODA1NTcgTDEzLDE5LjUgTDE4LDE5LjUgWiBNMjAsMTIuNSBDMjAuMjQ1NDU5OSwxMi41IDIwLjQ0OTYwODQsMTIuNjc2ODc1MiAyMC40OTE5NDQzLDEyLjkxMDEyNDQgTDIwLjUsMTMgTDIwLjUsMTggQzIwLjUsMTguMjc2MTQyNCAyMC4yNzYxNDI0LDE4LjUgMjAsMTguNSBDMTkuNzU0NTQwMSwxOC41IDE5LjU1MDM5MTYsMTguMzIzMTI0OCAxOS41MDgwNTU3LDE4LjA4OTg3NTYgTDE5LjUsMTggTDE5LjUsMTMgQzE5LjUsMTIuNzIzODU3NiAxOS43MjM4NTc2LDEyLjUgMjAsMTIuNSBaIiBpZD0icGF0aC0xIj48L3BhdGg+CiAgICAgICAgPGZpbHRlciB4PSItNjQuNiUiIHk9Ii01OS41JSIgd2lkdGg9IjIyOS4zJSIgaGVpZ2h0PSIyNDYuMSUiIGZpbHRlclVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgaWQ9ImZpbHRlci0yIj4KICAgICAgICAgICAgPGZlTW9ycGhvbG9neSByYWRpdXM9IjEiIG9wZXJhdG9yPSJkaWxhdGUiIGluPSJTb3VyY2VBbHBoYSIgcmVzdWx0PSJzaGFkb3dTcHJlYWRPdXRlcjEiPjwvZmVNb3JwaG9sb2d5PgogICAgICAgICAgICA8ZmVPZmZzZXQgZHg9IjAiIGR5PSIyIiBpbj0ic2hhZG93U3ByZWFkT3V0ZXIxIiByZXN1bHQ9InNoYWRvd09mZnNldE91dGVyMSI+PC9mZU9mZnNldD4KICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iMyIgaW49InNoYWRvd09mZnNldE91dGVyMSIgcmVzdWx0PSJzaGFkb3dCbHVyT3V0ZXIxIj48L2ZlR2F1c3NpYW5CbHVyPgogICAgICAgICAgICA8ZmVDb21wb3NpdGUgaW49InNoYWRvd0JsdXJPdXRlcjEiIGluMj0iU291cmNlQWxwaGEiIG9wZXJhdG9yPSJvdXQiIHJlc3VsdD0ic2hhZG93Qmx1ck91dGVyMSI+PC9mZUNvbXBvc2l0ZT4KICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggdmFsdWVzPSIwIDAgMCAwIDAgICAwIDAgMCAwIDAgICAwIDAgMCAwIDAgIDAgMCAwIDAuMTYgMCIgdHlwZT0ibWF0cml4IiBpbj0ic2hhZG93Qmx1ck91dGVyMSI+PC9mZUNvbG9yTWF0cml4PgogICAgICAgIDwvZmlsdGVyPgogICAgPC9kZWZzPgogICAgPGcgaWQ9Iumhtemdoi00IiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4KICAgICAgICA8ZyBpZD0iV2hpdGVib2FyZC1HdWlkZWxpbmVzIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMzQ0LjAwMDAwMCwgLTc1MS4wMDAwMDApIj4KICAgICAgICAgICAgPGcgaWQ9InNoYXBlLWN1cnNvciIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzQ0LjAwMDAwMCwgNzUxLjAwMDAwMCkiPgogICAgICAgICAgICAgICAgPHJlY3QgaWQ9IuefqeW9ouWkh+S7vS00NCIgZmlsbD0iI0ZGRkZGRiIgb3BhY2l0eT0iMC4wMSIgeD0iMCIgeT0iMCIgd2lkdGg9IjQwIiBoZWlnaHQ9IjQwIiByeD0iMiI+PC9yZWN0PgogICAgICAgICAgICAgICAgPGcgaWQ9IuW9oueKtue7k+WQiCIgZmlsbC1ydWxlPSJub256ZXJvIj4KICAgICAgICAgICAgICAgICAgICA8dXNlIGZpbGw9ImJsYWNrIiBmaWxsLW9wYWNpdHk9IjEiIGZpbHRlcj0idXJsKCNmaWx0ZXItMikiIHhsaW5rOmhyZWY9IiNwYXRoLTEiPjwvdXNlPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIHN0cm9rZT0iI0ZGRkZGRiIgc3Ryb2tlLXdpZHRoPSIxIiBkPSJNMjAsMjEgQzIwLjQ4NTQxMDMsMjEgMjAuODk4MDg1LDIxLjM0Nzk5OTMgMjAuOTg5OTQ3OSwyMS44NjU0ODc3IEwyMSwyMiBMMjEsMjcgQzIxLDI3LjU1MjI4NDcgMjAuNTUyMjg0NywyOCAyMCwyOCBDMTkuNTE0NTg5NywyOCAxOS4xMDE5MTUsMjcuNjUyMDAwNyAxOS4wMTAwNTIxLDI3LjEzNDUxMjMgTDE5LDI3IEwxOSwyMiBDMTksMjEuNDQ3NzE1MyAxOS40NDc3MTUzLDIxIDIwLDIxIFogTTI3LDE5IEMyNy41NTIyODQ3LDE5IDI4LDE5LjQ0NzcxNTMgMjgsMjAgQzI4LDIwLjQ4NTQxMDMgMjcuNjUyMDAwNywyMC44OTgwODUgMjcuMTM0NTEyMywyMC45ODk5NDc5IEwyNywyMSBMMjIsMjEgQzIxLjQ0NzcxNTMsMjEgMjEsMjAuNTUyMjg0NyAyMSwyMCBDMjEsMTkuNTE0NTg5NyAyMS4zNDc5OTkzLDE5LjEwMTkxNSAyMS44NjU0ODc3LDE5LjAxMDA1MjEgTDIyLDE5IEwyNywxOSBaIE0xOCwxOSBDMTguNTUyMjg0NywxOSAxOSwxOS40NDc3MTUzIDE5LDIwIEMxOSwyMC40ODU0MTAzIDE4LjY1MjAwMDcsMjAuODk4MDg1IDE4LjEzNDUxMjMsMjAuOTg5OTQ3OSBMMTgsMjEgTDEzLDIxIEMxMi40NDc3MTUzLDIxIDEyLDIwLjU1MjI4NDcgMTIsMjAgQzEyLDE5LjUxNDU4OTcgMTIuMzQ3OTk5MywxOS4xMDE5MTUgMTIuODY1NDg3NywxOS4wMTAwNTIxIEwxMywxOSBMMTgsMTkgWiBNMjAsMTIgQzIwLjQ4NTQxMDMsMTIgMjAuODk4MDg1LDEyLjM0Nzk5OTMgMjAuOTg5OTQ3OSwxMi44NjU0ODc3IEwyMSwxMyBMMjEsMTggQzIxLDE4LjU1MjI4NDcgMjAuNTUyMjg0NywxOSAyMCwxOSBDMTkuNTE0NTg5NywxOSAxOS4xMDE5MTUsMTguNjUyMDAwNyAxOS4wMTAwNTIxLDE4LjEzNDUxMjMgTDE5LDE4IEwxOSwxMyBDMTksMTIuNDQ3NzE1MyAxOS40NDc3MTUzLDEyIDIwLDEyIFoiIGZpbGw9IiMyMTIzMjQiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PC9wYXRoPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgICAgPHJlY3QgaWQ9IuefqeW9oiIgZmlsbD0iI0ZGRkZGRiIgeD0iMTguNSIgeT0iMTciIHdpZHRoPSIzIiBoZWlnaHQ9IjYiPjwvcmVjdD4KICAgICAgICAgICAgICAgIDxyZWN0IGlkPSLnn6nlvaIiIGZpbGw9IiNGRkZGRkYiIHg9IjE3IiB5PSIxOC41IiB3aWR0aD0iNiIgaGVpZ2h0PSIzIj48L3JlY3Q+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjAsMjEuNSBDMjAuMjQ1NDU5OSwyMS41IDIwLjQ0OTYwODQsMjEuNjc2ODc1MiAyMC40OTE5NDQzLDIxLjkxMDEyNDQgTDIwLjUsMjIgTDIwLjUsMjcgQzIwLjUsMjcuMjc2MTQyNCAyMC4yNzYxNDI0LDI3LjUgMjAsMjcuNSBDMTkuNzU0NTQwMSwyNy41IDE5LjU1MDM5MTYsMjcuMzIzMTI0OCAxOS41MDgwNTU3LDI3LjA4OTg3NTYgTDE5LjUsMjcgTDE5LjUsMjIgQzE5LjUsMjEuNzIzODU3NiAxOS43MjM4NTc2LDIxLjUgMjAsMjEuNSBaIE0yNywxOS41IEMyNy4yNzYxNDI0LDE5LjUgMjcuNSwxOS43MjM4NTc2IDI3LjUsMjAgQzI3LjUsMjAuMjQ1NDU5OSAyNy4zMjMxMjQ4LDIwLjQ0OTYwODQgMjcuMDg5ODc1NiwyMC40OTE5NDQzIEwyNywyMC41IEwyMiwyMC41IEMyMS43MjM4NTc2LDIwLjUgMjEuNSwyMC4yNzYxNDI0IDIxLjUsMjAgQzIxLjUsMTkuNzU0NTQwMSAyMS42NzY4NzUyLDE5LjU1MDM5MTYgMjEuOTEwMTI0NCwxOS41MDgwNTU3IEwyMiwxOS41IEwyNywxOS41IFogTTE4LDE5LjUgQzE4LjI3NjE0MjQsMTkuNSAxOC41LDE5LjcyMzg1NzYgMTguNSwyMCBDMTguNSwyMC4yNDU0NTk5IDE4LjMyMzEyNDgsMjAuNDQ5NjA4NCAxOC4wODk4NzU2LDIwLjQ5MTk0NDMgTDE4LDIwLjUgTDEzLDIwLjUgQzEyLjcyMzg1NzYsMjAuNSAxMi41LDIwLjI3NjE0MjQgMTIuNSwyMCBDMTIuNSwxOS43NTQ1NDAxIDEyLjY3Njg3NTIsMTkuNTUwMzkxNiAxMi45MTAxMjQ0LDE5LjUwODA1NTcgTDEzLDE5LjUgTDE4LDE5LjUgWiBNMjAsMTIuNSBDMjAuMjQ1NDU5OSwxMi41IDIwLjQ0OTYwODQsMTIuNjc2ODc1MiAyMC40OTE5NDQzLDEyLjkxMDEyNDQgTDIwLjUsMTMgTDIwLjUsMTggQzIwLjUsMTguMjc2MTQyNCAyMC4yNzYxNDI0LDE4LjUgMjAsMTguNSBDMTkuNzU0NTQwMSwxOC41IDE5LjU1MDM5MTYsMTguMzIzMTI0OCAxOS41MDgwNTU3LDE4LjA4OTg3NTYgTDE5LjUsMTggTDE5LjUsMTMgQzE5LjUsMTIuNzIzODU3NiAxOS43MjM4NTc2LDEyLjUgMjAsMTIuNSBaIiBpZD0i5b2i54q257uT5ZCIIiBmaWxsPSIjMjEyMzI0IiBmaWxsLXJ1bGU9Im5vbnplcm8iPjwvcGF0aD4KICAgICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+",[s.ApplianceNames.text]:"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iNDdweCIgaGVpZ2h0PSI0MHB4IiB2aWV3Qm94PSIwIDAgNDcgNDAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDYwLjEgKDg4MTMzKSAtIGh0dHBzOi8vc2tldGNoLmNvbSAtLT4KICAgIDx0aXRsZT50ZXh0LWN1cnNvcjwvdGl0bGU+CiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4KICAgIDxkZWZzPgogICAgICAgIDxwYXRoIGQ9Ik0xNiwyNi41IEMxNS43MjM4NTc2LDI2LjUgMTUuNSwyNi4yNzYxNDI0IDE1LjUsMjYgQzE1LjUsMjUuNzU0NTQwMSAxNS42NzY4NzUyLDI1LjU1MDM5MTYgMTUuOTEwMTI0NCwyNS41MDgwNTU3IEwxNiwyNS41IEwxOS41LDI1LjUgTDE5LjUsMTQuNSBMMTYsMTQuNSBDMTUuNzIzODU3NiwxNC41IDE1LjUsMTQuMjc2MTQyNCAxNS41LDE0IEMxNS41LDEzLjc1NDU0MDEgMTUuNjc2ODc1MiwxMy41NTAzOTE2IDE1LjkxMDEyNDQsMTMuNTA4MDU1NyBMMTYsMTMuNSBMMjQsMTMuNSBDMjQuMjc2MTQyNCwxMy41IDI0LjUsMTMuNzIzODU3NiAyNC41LDE0IEMyNC41LDE0LjI0NTQ1OTkgMjQuMzIzMTI0OCwxNC40NDk2MDg0IDI0LjA4OTg3NTYsMTQuNDkxOTQ0MyBMMjQsMTQuNSBMMjAuNSwxNC41IEwyMC41LDI1LjUgTDI0LDI1LjUgQzI0LjI3NjE0MjQsMjUuNSAyNC41LDI1LjcyMzg1NzYgMjQuNSwyNiBDMjQuNSwyNi4yNDU0NTk5IDI0LjMyMzEyNDgsMjYuNDQ5NjA4NCAyNC4wODk4NzU2LDI2LjQ5MTk0NDMgTDI0LDI2LjUgTDE2LDI2LjUgWiIgaWQ9InBhdGgtMSI+PC9wYXRoPgogICAgICAgIDxmaWx0ZXIgeD0iLTI4NC4wJSIgeT0iLTgxLjUlIiB3aWR0aD0iNjY4LjElIiBoZWlnaHQ9IjI5My45JSIgZmlsdGVyVW5pdHM9Im9iamVjdEJvdW5kaW5nQm94IiBpZD0iZmlsdGVyLTIiPgogICAgICAgICAgICA8ZmVNb3JwaG9sb2d5IHJhZGl1cz0iMSIgb3BlcmF0b3I9ImRpbGF0ZSIgaW49IlNvdXJjZUFscGhhIiByZXN1bHQ9InNoYWRvd1NwcmVhZE91dGVyMSI+PC9mZU1vcnBob2xvZ3k+CiAgICAgICAgICAgIDxmZU9mZnNldCBkeD0iMCIgZHk9IjIiIGluPSJzaGFkb3dTcHJlYWRPdXRlcjEiIHJlc3VsdD0ic2hhZG93T2Zmc2V0T3V0ZXIxIj48L2ZlT2Zmc2V0PgogICAgICAgICAgICA8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSIzIiBpbj0ic2hhZG93T2Zmc2V0T3V0ZXIxIiByZXN1bHQ9InNoYWRvd0JsdXJPdXRlcjEiPjwvZmVHYXVzc2lhbkJsdXI+CiAgICAgICAgICAgIDxmZUNvbXBvc2l0ZSBpbj0ic2hhZG93Qmx1ck91dGVyMSIgaW4yPSJTb3VyY2VBbHBoYSIgb3BlcmF0b3I9Im91dCIgcmVzdWx0PSJzaGFkb3dCbHVyT3V0ZXIxIj48L2ZlQ29tcG9zaXRlPgogICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCB2YWx1ZXM9IjAgMCAwIDAgMCAgIDAgMCAwIDAgMCAgIDAgMCAwIDAgMCAgMCAwIDAgMC4xNiAwIiB0eXBlPSJtYXRyaXgiIGluPSJzaGFkb3dCbHVyT3V0ZXIxIj48L2ZlQ29sb3JNYXRyaXg+CiAgICAgICAgPC9maWx0ZXI+CiAgICA8L2RlZnM+CiAgICA8ZyBpZD0i6aG16Z2iLTQiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSJXaGl0ZWJvYXJkLUd1aWRlbGluZXMiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0zODguMDAwMDAwLCAtNjcyLjAwMDAwMCkiPgogICAgICAgICAgICA8ZyBpZD0idGV4dC1jdXJzb3IiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDM5Mi4wMDAwMDAsIDY3Mi4wMDAwMDApIj4KICAgICAgICAgICAgICAgIDxyZWN0IGlkPSLnn6nlvaLlpIfku70tNDAiIGZpbGw9IiNGRkZGRkYiIG9wYWNpdHk9IjAuMDEiIHg9IjAiIHk9IjAiIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgcng9IjIiPjwvcmVjdD4KICAgICAgICAgICAgICAgIDxnIGlkPSLlvaLnirbnu5PlkIgiIGZpbGwtcnVsZT0ibm9uemVybyI+CiAgICAgICAgICAgICAgICAgICAgPHVzZSBmaWxsPSJibGFjayIgZmlsbC1vcGFjaXR5PSIxIiBmaWx0ZXI9InVybCgjZmlsdGVyLTIpIiB4bGluazpocmVmPSIjcGF0aC0xIj48L3VzZT4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBzdHJva2U9IiNGRkZGRkYiIHN0cm9rZS13aWR0aD0iMSIgZD0iTTE5LDI1IEwxOSwxNSBMMTYsMTUgQzE1LjQ0NzcxNTMsMTUgMTUsMTQuNTUyMjg0NyAxNSwxNCBDMTUsMTMuNTE0NTg5NyAxNS4zNDc5OTkzLDEzLjEwMTkxNSAxNS44NjU0ODc3LDEzLjAxMDA1MjEgTDE2LDEzIEwyNCwxMyBDMjQuNTUyMjg0NywxMyAyNSwxMy40NDc3MTUzIDI1LDE0IEMyNSwxNC40ODU0MTAzIDI0LjY1MjAwMDcsMTQuODk4MDg1IDI0LjEzNDUxMjMsMTQuOTg5OTQ3OSBMMjQsMTUgTDIxLDE1IEwyMSwyNSBMMjQsMjUgQzI0LjU1MjI4NDcsMjUgMjUsMjUuNDQ3NzE1MyAyNSwyNiBDMjUsMjYuNDg1NDEwMyAyNC42NTIwMDA3LDI2Ljg5ODA4NSAyNC4xMzQ1MTIzLDI2Ljk4OTk0NzkgTDI0LDI3IEwxNiwyNyBDMTUuNDQ3NzE1MywyNyAxNSwyNi41NTIyODQ3IDE1LDI2IEMxNSwyNS41MTQ1ODk3IDE1LjM0Nzk5OTMsMjUuMTAxOTE1IDE1Ljg2NTQ4NzcsMjUuMDEwMDUyMSBMMTYsMjUgTDE5LDI1IFoiIGZpbGw9IiMyMTIzMjQiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PC9wYXRoPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4="};class iv{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 ev({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 tv[this.memberApplianceName||s.ApplianceNames.shape]||tv[s.ApplianceNames.shape]}}setMember(){this.member=this.manager.findMemberByUid(this.memberId),this.updateComponent()}updateComponent(){var e;null==(e=this.component)||e.$set(r.omit(this.initProps(),["x","y"]))}destroy(){this.component&&this.component.$destroy(),this.cursorManager.cursorInstances.delete(this.memberId),this.timer&&clearTimeout(this.timer)}hide(){this.component&&(this.component.$set({visible:!1}),this.destroy())}}class nv{constructor(e){var t;this.manager=e,this.cursorInstances=new Map,this.store=this.manager.store,this.mouseMoveListener=r.throttle((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(np.CursorMove,{uid:this.manager.uid,state:dp.Leave})},this.roomMembers=null==(t=this.manager.room)?void 0:t.state.roomMembers;const i=lv.wrapper;i&&(i.addEventListener("pointerenter",this.mouseMoveListener),i.addEventListener("pointermove",this.mouseMoveListener),i.addEventListener("pointerleave",this.mouseLeaveListener),this.wrapperRect=i.getBoundingClientRect()),sv.on("cursorMove",(e=>{let t=this.cursorInstances.get(e.uid);t||(t=new iv(this.manager,e.uid,this,i),this.cursorInstances.set(e.uid,t)),e.state===dp.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(np.CursorMove,{uid:this.manager.uid,position:{x:r.x,y:r.y,type:e.type}})}}updateContainerRect(){var e,t;this.containerRect=null==(e=lv.container)?void 0:e.getBoundingClientRect(),this.wrapperRect=null==(t=lv.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=lv.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")}}const rv=window.ResizeObserver||o.ResizeObserver,sv=new u.default,av=new u.default,ov=class extends s.InvisiblePlugin{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=av,this.viewMode=s.ViewMode.Broadcaster,this.isReplay=s.isPlayer(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,a,o,l,c,u,h=!0,p=!1,f="light";if("room"in e?(r=e.room,t=e.container,i=e.collectorContainer,a=e.containerSizeRatio,o=e.collectorStyles,l=e.debug,null!=e.chessboard&&(h=e.chessboard),c=e.overwriteStyles,u=e.cursor,p=Boolean(null==e?void 0:e.disableCameraTransform),f=e.prefersColorScheme):(r=e,a=null==n?void 0:n.containerSizeRatio,o=null==n?void 0:n.collectorStyles,l=null==n?void 0:n.debug,null!=(null==n?void 0:n.chessboard)&&(h=n.chessboard),c=null==n?void 0:n.overwriteStyles),this.checkVersion(),s.isRoom(r)&&r.phase!==s.RoomPhase.Connected)throw new Error("[WindowManager]: Room only Connected can be mount");if(!t)throw new Error("[WindowManager]: Container must provide");if(ov.isCreated)throw new Error("[WindowManager]: Already created cannot be created again");ov.isCreated=!0;try{let e=await this.initManager(r);if(this.debug=Boolean(l),this.debug&&(m={verbose:!0},Ih=xh(xh({},Ch),m)),Wp("Already insert room",e),s.isRoom(this.displayer)){if(!e)throw new Error("[WindowManager]: init InvisiblePlugin failed")}else await d.default((async t=>{if(e=await this.initManager(r),!e)throw Wp(`manager is empty. retrying ${t}`),new Error}),{retries:10});a&&(ov.containerSizeRatio=a),ov.container=t;const{playground:n,wrapper:v,sizer:w,mainViewElement:b}=(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),lv.wrapper=n,{playground:t,wrapper:n,sizer:i,mainViewElement:r}})(t);if(ov.playground=n,h&&w.classList.add("netless-window-manager-chess-sizer"),c){const e=document.createElement("style");e.textContent=c,n.appendChild(e)}await e.ensureAttributes(),e.appManager=new gg(e,{collectorContainer:i,collectorStyles:o,prefersColorScheme:f}),e.observePlaygroundSize(n,w,v),u&&(e.cursorManager=new nv(e.appManager)),e.bindMainView(b,p),((e,t)=>{if(s.isPlayer(e)){const t=e,i=t.seekToProgressTime;async function n(e){const n=await i.call(t,e);return"success"===n&&sv.emit("seek",e),n}t.seekToProgressTime=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),sv.emit("onCreated");try{await bp()}catch(g){console.warn("[WindowManager]: indexedDB open failed"),console.log(g)}return e}catch(g){throw ov.isCreated=!1,g}var m}static async initManager(e){let t=e.getInvisiblePlugin(ov.kind);if(!t&&s.isRoom(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(ov,{}),t.ensureAttributes(),await Np(500),await e.setWritable(!1)}else t=await e.createInvisiblePlugin(ov,{});return t}static register(e){return Ip.register(e)}async addApp(e){var t,i,n,r;if(this.appManager){if(!e.kind||"string"!=typeof e.kind)throw new Bp;const s=await(null==(t=Ip.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 zp;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 Dp}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 Vp;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),sv.emit("setReadonly",e)}switchMainViewToWriter(){var e;return null==(e=this.appManager)?void 0:e.mainViewProxy.mainViewClickHandler()}onAppDestroy(e,t){((e,t)=>{sv.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===s.ViewMode.Broadcaster&&(null==(t=this.appManager)||t.mainViewProxy.setCameraAndSize(),null==(i=this.appManager)||i.mainViewProxy.start()),e===s.ViewMode.Freedom&&(null==(n=this.appManager)||n.mainViewProxy.stop()),this.viewMode=e)}get mainView(){if(this.appManager)return this.appManager.mainViewProxy.view;throw new Dp}get camera(){if(this.appManager)return this.appManager.mainViewProxy.view.camera;throw new Dp}get cameraState(){if(this.appManager)return this.appManager.mainViewProxy.cameraState;throw new Dp}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 Dp}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 Dp}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(),ov.container=void 0,ov.wrapper=void 0,ov.isCreated=!1,ov.playground&&(null==(n=ov.playground.parentNode)||n.removeChild(ov.playground)),Wp("Destroyed")}bindMainView(e,t){var i;this.appManager&&(this.appManager.bindMainView(e,t),null==(i=this.cursorManager)||i.setMainViewDivElement(e))}get canOperate(){return!!s.isRoom(this.displayer)&&(this.displayer.isWritable&&this.displayer.phase===s.RoomPhase.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(kp(s.WhiteVersion)<kp(pp))throw new Lp(pp)}async ensureAttributes(){if(r.isNull(this.attributes)&&await Np(50),r.isObject(this.attributes)){this.attributes[Op.Apps]||this.safeSetAttributes({[Op.Apps]:{}}),this.attributes[Op.Cursors]||this.safeSetAttributes({[Op.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 rv((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(),sv.emit("playgroundSizeChange",a))})),this.containerResizeObserver.observe(e)}updateSizer({width:e,height:t},i,n){e&&t&&(t/e>ov.containerSizeRatio?(t=e*ov.containerSizeRatio,i.classList.toggle("netless-window-manager-sizer-horizontal",!0)):(e=t/ov.containerSizeRatio,i.classList.toggle("netless-window-manager-sizer-horizontal",!1)),n.style.width=`${e}px`,n.style.height=`${t}px`)}};let lv=ov;lv.kind="WindowManager",lv.debug=!1,lv.containerSizeRatio=9/16,lv.isCreated=!1,lv.register({kind:wt.kind,src:wt}),lv.register({kind:ip.kind,src:ip});const cv={DocsViewer:wt.kind,MediaPlayer:ip.kind};e.BuiltinApps=cv,e.WhiteWindowSDK=class{constructor(e){this.sdk=new s.WhiteWebSdk(__spreadProps(__spreadValues({},e),{useMobXState:!0}))}async mount(e){const t=e.joinRoomParams.invisiblePlugins||[],i=await this.sdk.joinRoom(__spreadProps(__spreadValues({},e.joinRoomParams),{useMultiViews:!0,invisiblePlugins:[...t,lv],disableMagixEventDispatchLimit:!0})),n=await lv.mount(__spreadValues({room:i},e.mountParams));return r.isBoolean(e.joinRoomParams.disableCameraTransform)&&(n.mainView.disableCameraTransform=e.joinRoomParams.disableCameraTransform),n}},e.WindowManager=lv,e.callbacks=av,e.emitter=sv,Object.defineProperty(e,"__esModule",{value:!0}),e[Symbol.toStringTag]="Module"}));
|
41
|
+
***************************************************************************** */function nf(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 rf=0,sf="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-rf));rf=t+i,setTimeout((function(){return e(rf)}),i)},af=1/60*1e3,of=!0,lf=!1,cf=!1,uf={delta:0,timestamp:0},df=["read","update","preRender","render","postRender"],hf=function(e){return lf=e},pf=df.reduce((function(e,t){var i,n,r,s,a,o,l,c,u;return e[t]=(i=hf,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}),{}),ff=df.reduce((function(e,t){var i=pf[t];return e[t]=function(e,t,n){return void 0===t&&(t=!1),void 0===n&&(n=!1),lf||vf(),i.schedule(e,t,n),e},e}),{}),mf=function(e){return pf[e].process(uf)},gf=function(e){lf=!1,uf.delta=of?af:Math.max(Math.min(e-uf.timestamp,40),1),of||(af=uf.delta),uf.timestamp=e,cf=!0,df.forEach(mf),cf=!1,lf&&(of=!1,sf(gf))},vf=function(){lf=!0,of=!0,cf||sf(gf)},wf=function(){return(wf=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)},bf=function(e,t){return function(i){return Math.max(Math.min(i,t),e)}},yf=function(e){return e%1?Number(e.toFixed(5)):e},xf=/^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2,3}\s*\/*\s*[\d\.]+%?\))$/i,Mf={test:function(e){return"number"==typeof e},parse:parseFloat,transform:function(e){return e}},Cf=wf(wf({},Mf),{transform:bf(0,1)}),If=wf(wf({},Mf),{default:1}),Sf=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}}},Ef=Sf("deg"),Tf=Sf("%"),Af=Sf("px"),kf=wf(wf({},Tf),{parse:function(e){return Tf.parse(e)/100},transform:function(e){return Tf.transform(100*e)}}),Nf=bf(0,255),Pf=function(e){return void 0!==e.red},zf=function(e){return void 0!==e.hue},Df=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}},Lf=wf(wf({},Mf),{transform:function(e){return Math.round(Nf(e))}});function Bf(e,t){return e.startsWith(t)&&xf.test(e)}var jf,Vf={test:function(e){return"string"==typeof e?Bf(e,"rgb"):Pf(e)},parse:Df(["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:Lf.transform(n),green:Lf.transform(r),blue:Lf.transform(s),alpha:yf(Cf.transform(o))}).red+", "+t.green+", "+t.blue+", "+(void 0===(i=t.alpha)?1:i)+")"}},_f={test:function(e){return"string"==typeof e?Bf(e,"hsl"):zf(e)},parse:Df(["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:Tf.transform(yf(r)),lightness:Tf.transform(yf(s)),alpha:yf(Cf.transform(o))}).hue+", "+t.saturation+", "+t.lightness+", "+(void 0===(i=t.alpha)?1:i)+")"}},Of=wf(wf({},Vf),{test:function(e){return"string"==typeof e&&Bf(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}}}),Rf={test:function(e){return"string"==typeof e&&xf.test(e)||Pf(e)||zf(e)},parse:function(e){return Vf.test(e)?Vf.parse(e):_f.test(e)?_f.parse(e):Of.test(e)?Of.parse(e):e},transform:function(e){return Pf(e)?Vf.transform(e):zf(e)?_f.transform(e):e}},Uf=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=nf(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,ff.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}},Wf=/([a-z])([A-Z])/g,Hf=function(e){return e.replace(Wf,"$1-$2").toLowerCase()},Qf=new Map,$f=new Map,Ff=["Webkit","Moz","O","ms",""],Zf=Ff.length,Yf="undefined"!=typeof document,Gf=function(e,t){return $f.set(e,Hf(t))},Xf=function(e,t){void 0===t&&(t=!1);var i,n=t?$f:Qf;return n.has(e)||(Yf?function(e){jf=jf||document.createElement("div");for(var t=0;t<Zf;t++){var i=Ff[t],n=""===i,r=n?e:i+e.charAt(0).toUpperCase()+e.slice(1);if(r in jf.style||n){if(n&&"clipPath"===e&&$f.has(e))return;Qf.set(e,r),Gf(e,(n?"":"-")+Hf(r))}}}(e):Gf(i=e,i)),n.get(e)||e},Jf=["","X","Y","Z"],Kf=["translate","scale","rotate","skew","transformPerspective"].reduce((function(e,t){return Jf.reduce((function(e,i){return e.push(t+i),e}),e)}),["x","y","z"]),qf=Kf.reduce((function(e,t){return e[t]=!0,e}),{});function em(e){return!0===qf[e]}function tm(e,t){return Kf.indexOf(e)-Kf.indexOf(t)}var im=new Set(["originX","originY","originZ"]);function nm(e){return im.has(e)}var rm=tf(tf({},Mf),{transform:Math.round}),sm={color:Rf,backgroundColor:Rf,outlineColor:Rf,fill:Rf,stroke:Rf,borderColor:Rf,borderTopColor:Rf,borderRightColor:Rf,borderBottomColor:Rf,borderLeftColor:Rf,borderWidth:Af,borderTopWidth:Af,borderRightWidth:Af,borderBottomWidth:Af,borderLeftWidth:Af,borderRadius:Af,radius:Af,borderTopLeftRadius:Af,borderTopRightRadius:Af,borderBottomRightRadius:Af,borderBottomLeftRadius:Af,width:Af,maxWidth:Af,height:Af,maxHeight:Af,size:Af,top:Af,right:Af,bottom:Af,left:Af,padding:Af,paddingTop:Af,paddingRight:Af,paddingBottom:Af,paddingLeft:Af,margin:Af,marginTop:Af,marginRight:Af,marginBottom:Af,marginLeft:Af,rotate:Ef,rotateX:Ef,rotateY:Ef,rotateZ:Ef,scale:If,scaleX:If,scaleY:If,scaleZ:If,skew:Ef,skewX:Ef,skewY:Ef,distance:Af,translateX:Af,translateY:Af,translateZ:Af,x:Af,y:Af,z:Af,perspective:Af,opacity:Cf,originX:kf,originY:kf,originZ:Af,zIndex:rm,fillOpacity:Cf,strokeOpacity:Cf,numOctaves:rm},am=function(e){return sm[e]},om=function(e,t){return t&&"number"==typeof e?t.transform(e):e},lm=new Set(["scrollLeft","scrollTop"]),cm=new Set(["scrollLeft","scrollTop","transform"]),um={x:"translateX",y:"translateY",z:"translateZ"};function dm(e){return"function"==typeof e}function hm(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=am(d),f=om(h,p);em(d)?(c=!0,n[d]=f,s.push(d),l&&(p.default&&h!==p.default||!p.default&&0!==h)&&(l=!1)):nm(d)?(r[d]=f,u=!0):cm.has(d)&&dm(f)||(i[Xf(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(tm);for(var l=i.length,c=0;c<l;c++){var u=i[c];a+=(um[u]||u)+"("+t[u]+") ",o="z"===u||o}return!o&&r?a+="translateZ(0)":a=a.trim(),dm(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 pm=Uf({onRead:function(e,t){var i=t.element,n=t.preparseOutput,r=am(e);if(em(e))return r&&r.default||0;if(lm.has(e))return i[e];var s=window.getComputedStyle(i,null).getPropertyValue(Xf(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:lm}),fm=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues"]),mm=function(e,t){return Af.transform(e*t)},gm={x:0,y:0,width:0,height:0};function vm(e,t,i){return"string"==typeof e?e:Af.transform(t+i*e)}var wm={enableHardwareAcceleration:!1,isDashCase:!1};function bm(e,t,i){void 0===i&&(i=!0);var n={style:{}},r=hm(wm);return function(s){return function(e,t,i,n,r,s){void 0===t&&(t=gm),void 0===n&&(n=hm(wm)),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(nf(e,["attrX","attrY","originX","originY","pathLength","pathSpacing","pathOffset"]));for(var w in v)"transform"===w?r.style.transform=v[w]:r[s&&!fm.has(w)?Hf(w):w]=v[w];return(void 0!==u||void 0!==d||v.transform)&&(r.style.transformOrigin=(o=void 0!==d?d:.5,vm(void 0!==u?u:.5,(a=t).x,a.width)+" "+vm(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"]=mm(-g,i),r[s?"stroke-dasharray":"strokeDasharray"]=mm(h,i)+" "+mm(f,i)),r}(s,e,t,r,n,i)}}var ym=Uf({onRead:function(e,t){var i=t.element;if(em(e=fm.has(e)?e:Hf(e))){var n=am(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])}}),xm=Uf({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)}}),Mm=new WeakMap;function Cm(e,t){return i="string"==typeof e?document.querySelector(e):e,n=t,Mm.has(i)?Mm.get(i):function(e,t){var i,r,s,a,o;return e===window?i=xm(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=nf(t,["enableHardwareAcceleration","allowTransformNone"]);return pm(tf({element:e,buildStyles:hm({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=ym({element:r,buildAttrs:bm(s,a)})),Mm.set(e,i),i}(i,n);var i,n}var Im=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 Sm="!#%()*+,-./:;=?@[]^_`{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",Em=Sm.length,Tm=Array(20),Am=()=>{for(let e=0;e<20;e++)Tm[e]=Sm.charAt(Math.random()*Em);return Tm.join("")};class km{constructor(){this.disposers=new Map}add(e,t=Am()){return this.flush(t),this.disposers.set(t,e()),t}addDisposer(e,t=Am()){return this.flush(t),this.disposers.set(t,e),t}addEventListener(e,t,i,n,r=Am()){return this.add((()=>(e.addEventListener(t,i,n),()=>e.removeEventListener(t,i,n))),r),r}setTimeout(e,t,i=Am()){return this.add((()=>{const n=window.setTimeout((()=>{this.remove(i),e()}),t);return()=>window.clearTimeout(n)}),i)}setInterval(e,t,i=Am()){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 Nm,Pm,zm,Dm,Lm,Bm,jm,Vm,_m,Om,Rm=Object.defineProperty,Um=("undefined"!=typeof require&&require,(e,t,i)=>{return s=i,(r="symbol"!=typeof t?t+"":t)in(n=e)?Rm(n,r,{enumerable:!0,configurable:!0,writable:!0,value:s}):n[r]=s,i;var n,r,s});class Wm{constructor(e,t){Um(this,"_value"),Um(this,"_beforeDestroys"),Um(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 Wm(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 Hm(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 Qm(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 Wm(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 Wm(e,i))}}function $m(e,t,i){return Math.min(Math.max(e,t),i)}function Fm(e){e.stopPropagation(),e.cancelable&&e.preventDefault()}function Zm(e){return e.touches?e.touches[0]:e}function Ym(){return Date.now().toString().slice(6)+Math.random().toString().slice(2,8)}(Pm=Nm||(Nm={})).Light="light",Pm.Dark="dark",Pm.Auto="auto",(Dm=zm||(zm={})).Normal="normal",Dm.Minimized="minimized",Dm.Maximized="maximized",(Bm=Lm||(Lm={})).DarkMode="dark_mode",Bm.PrefersColorScheme="prefers_color_scheme",Bm.Close="close",Bm.Focus="focus",Bm.Blur="blur",Bm.Move="move",Bm.Resize="resize",Bm.IntrinsicMove="intrinsic_move",Bm.IntrinsicResize="intrinsic_resize",Bm.VisualResize="visual_resize",Bm.ZIndex="z_index",Bm.State="state",Bm.Minimized="minimized",Bm.Maximized="maximized",Bm.Readonly="readonly",Bm.Destroyed="destroyed",(Vm=jm||(jm={})).Close="close",Vm.Maximize="maximize",Vm.Minimize="minimize",(Om=_m||(_m={})).North="n",Om.South="s",Om.West="w",Om.East="e",Om.NorthWest="nw",Om.NorthEast="ne",Om.SouthEast="se",Om.SouthWest="sw";let Gm=1;function Xm(){return"New Box "+Gm++}function Jm(e){return Boolean(e)}function Km(e){return!e}class qm{constructor({readonly:e=!1,title:t,buttons:i,onEvent:n,onDragStart:r,namespace:s="telebox",state:a=zm.Normal}={}){this.$btns=[],this.sideEffect=new km,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;Fm(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:jm.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;Fm(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:jm.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:jm.Minimize,iconClassName:this.wrapClassName("titlebar-icon-minimize")},{type:jm.Maximize,iconClassName:this.wrapClassName("titlebar-icon-maximize"),isActive:e=>e===zm.Maximized},{type:jm.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){Fm(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 eg{constructor({id:e=Ym(),title:t=Xm(),prefersColorScheme:i=Nm.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 km,this.handleTrackStart=e=>{var t;return null==(t=this._handleTrackStart)?void 0:t.call(this,e)},this._sideEffect=new km,this._valSideEffectBinder=Qm(this._sideEffect);const{combine:T,createVal:A}=this._valSideEffectBinder;this.id=e,this.namespace=y,this.events=new ef,this._delegateEvents=new ef;const k=A(i);k.reaction(((e,t,i)=>{i||this.events.emit(Lm.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 tg}return N.setValue("dark"===e,i),tg}),"prefers-color-scheme")})),N.reaction(((e,t,i)=>{i||this.events.emit(Lm.DarkMode,e)}));const P=A(S,Im),z=A(E,Im),D=A(t),L=A(r);L.reaction(((e,t,i)=>{i||e||this.events.emit(Lm.Close)}));const B=A(p);B.reaction(((e,t,i)=>{i||this.events.emit(Lm.Readonly,e)}));const j=A(f),V=A(m),_=A(g),O=A(v),R=A(b);R.reaction(((e,t,i)=>{i||this.events.emit(Lm.ZIndex,e)}));const U=A(w);U.reaction(((e,t,i)=>{i||this.events.emit(e?Lm.Focus:Lm.Blur)}));const W=A(d);W.reaction(((e,t,i)=>{i||this.events.emit(Lm.Minimized,e)}));const H=A(h);H.reaction(((e,t,i)=>{i||this.events.emit(Lm.Maximized,e)}));const Q=T([W,H],(([e,t])=>e?zm.Minimized:t?zm.Maximized:zm.Normal));Q.reaction(((e,t,i)=>{i||this.events.emit(Lm.State,e)}));const $=A({width:$m(o,0,1),height:$m(l,0,1)},Im),F=A({width:$m(s,$.value.width,1),height:$m(a,$.value.height,1)},Im);$.reaction(((e,t,i)=>{F.setValue({width:$m(s,e.width,1),height:$m(a,e.height,1)},i)})),F.reaction(((e,t,i)=>{i||this.events.emit(Lm.IntrinsicResize,e)}));const Z=T([F,H],(([e,t])=>t?{width:1,height:1}:e),Im);Z.reaction(((e,t,i)=>{i||this.events.emit(Lm.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),Im);Y.reaction(((e,t,i)=>{i||this.events.emit(Lm.VisualResize,e)}));const G=A({x:$m(c,0,1),y:$m(u,0,1)},Im);G.reaction(((e,t,i)=>{i||this.events.emit(Lm.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),Im);X.reaction(((e,t,i)=>{i||this.events.emit(Lm.Move,e)})),this.titleBar=x||new qm({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 jm.Maximize:H.setValue(!H.value);break;case jm.Minimize:W.setValue(!0);break;case jm.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);Hm(this,{prefersColorScheme:k,darkMode:N,containerRect:P,collectorRect:z,title:D,visible:L,readonly:B,resizable:j,draggable:V,fence:_,fixRatio:O,focus:U,zIndex:R,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 zm.Maximized:this.setMinimized(!1,t),this.setMaximized(!0,t);break;case zm.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:$m(i,this.minWidth,1),height:$m(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=Jm)=>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",Km),t(this.$box,this._resizable$,"no-resize",Km),t(this.$box,this._focus$,"blur",Km),t(this.$box,this._darkMode$,"color-scheme-dark"),t(this.$box,this._darkMode$,"color-scheme-light",Km),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===zm.Minimized),n===zm.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=Cm(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}}),Im).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(_m).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!==zm.Normal)return;Fm(e);let{pageX:t,pageY:i}=Zm(e);i<0&&(i=0);const n=(t-c)/this.containerRect.width,d=(i-u)/this.containerRect.height;switch(r){case _m.North:this.transform(this.x,a+d,this.width,l-d);break;case _m.South:this.transform(this.x,this.y,this.width,l+d);break;case _m.West:this.transform(s+n,this.y,o-n,this.height);break;case _m.East:this.transform(this.x,this.y,o+n,this.height);break;case _m.NorthWest:this.transform(s+n,a+d,o-n,l-d);break;case _m.NorthEast:this.transform(this.x,a+d,o+n,l-d);break;case _m.SouthEast:this.transform(this.x,this.y,o+n,l+d);break;case _m.SouthWest:this.transform(s+n,this.y,o-n,l+d);break;default:if(this.fence)this.move($m(s+n,0,1-this.width),$m(a+d,0,1-this.height));else{const e=20/this.containerRect.width,t=20/this.containerRect.height;this.move($m(s+n,e-this.width,1-e),$m(a+d,0,1-t))}}},h=e=>{r=void 0,n&&(Fm(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!==zm.Normal)return;const f=e.target;if(null==(p=f.dataset)?void 0:p.teleBoxHandle){Fm(e),s=this.x,a=this.y,o=this.width,l=this.height,({pageX:c,pageY:u}=Zm(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(Lm.Destroyed),this._sideEffect.flushAll(),this._renderSideEffect.flushAll(),this.events.removeAllListeners(),this._delegateEvents.removeAllListeners()}wrapClassName(e){return`${this.namespace}-${e}`}}function tg(){}var ig,ng;class rg{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}`}}(ng=ig||(ig={})).Focused="focused",ng.Blurred="blurred",ng.Created="created",ng.Removed="removed",ng.State="state",ng.Maximized="maximized",ng.Minimized="minimized",ng.Move="move",ng.Resize="resize",ng.IntrinsicMove="intrinsic_move",ng.IntrinsicResize="intrinsic_resize",ng.VisualResize="visual_resize",ng.ZIndex="z_index",ng.PrefersColorScheme="prefers_color_scheme",ng.DarkMode="dark_mode";class sg extends qm{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===zm.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===zm.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===zm.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===zm.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 ag{constructor({root:e=document.body,prefersColorScheme:t=Nm.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 ef,this._sideEffect=new km;const{combine:c,createVal:u}=Qm(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(ig.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(ig.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(ig.Maximized,e)}));const v=c([m,g],(([e,t])=>e?zm.Minimized:t?zm.Maximized:zm.Normal));v.reaction(((e,t,i)=>{this.maxTitleBar.setState(e),i||this.events.emit(ig.State,e)}));const w=u(r);w.subscribe(((e,t,i)=>{this.boxes.forEach((t=>t.setFence(e,i)))}));const b=u(s,Im);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 rg({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(ig.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 sg({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 jm.Maximize:g.setValue(!g.value);break;case jm.Minimize:m.setValue(!0);break;case Lm.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)})),Hm(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 zm.Maximized:this.setMinimized(!1,t),this.setMaximized(!0,t);break;case zm.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 eg(Kp(Jp({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(jm.Maximize,(()=>{this.setMaximized(!this.maximized)})),i._delegateEvents.on(jm.Minimize,(()=>{this.setMinimized(!0)})),i._delegateEvents.on(jm.Close,(()=>{this.remove(i),this.focusTopBox()})),i._coord$.reaction(((e,t,n)=>{n||this.events.emit(ig.Move,i)})),i._size$.reaction(((e,t,n)=>{n||this.events.emit(ig.Resize,i)})),i._intrinsicCoord$.reaction(((e,t,n)=>{n||this.events.emit(ig.IntrinsicMove,i)})),i._intrinsicSize$.reaction(((e,t,n)=>{n||this.events.emit(ig.IntrinsicResize,i)})),i._visualSize$.reaction(((e,t,n)=>{n||this.events.emit(ig.VisualResize,i)})),i._zIndex$.reaction(((e,t,n)=>{this.topBox&&i.zIndex>this.topBox.zIndex&&this.topBox$.setValue(i),n||this.events.emit(ig.ZIndex,i)})),this.events.emit(ig.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(ig.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(ig.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 Wm&&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(ig.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(ig.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(ig.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 Kp(Jp({},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 og{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=>{av.emit("boxStateChange",e),sv.emit("boxStateChange",e)})),this.teleBoxManager._darkMode$.reaction((e=>{av.emit("darkModeChange",e)})),this.teleBoxManager._prefersColorScheme$.reaction((e=>{av.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=>{sv.emit("close",{appId:e.id})}))})),this.teleBoxManager.events.on("intrinsic_move",r.debounce((e=>{sv.emit("move",{appId:e.id,x:e.intrinsicX,y:e.intrinsicY})}),50)),this.teleBoxManager.events.on("intrinsic_resize",r.debounce((e=>{sv.emit("resize",{appId:e.id,width:e.intrinsicWidth,height:e.intrinsicHeight})}),200)),this.teleBoxManager.events.on("focused",(e=>{e&&(this.manager.canOperate?sv.emit("focus",{appId:e.id}):this.teleBoxManager.blurBox(e.id))})),this.teleBoxManager.events.on("z_index",(e=>{this.manager.store.updateAppState(e.id,ap.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=fp,minheight:s=mp}=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),sv.emit(`${e.appId}${np.WindowCreated}`)}setBoxInitState(e){const t=this.teleBoxManager.queryOne({id:e});t&&t.state===zm.Maximized&&sv.emit("resize",{appId:e,x:t.x,y:t.y,width:t.intrinsicWidth,height:t.intrinsicHeight})}setupBoxManager(e){const t=lv.wrapper?lv.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)||lv.wrapper,s=new rg({styles:null==e?void 0:e.collectorStyles}).mount(r);n.collector=s;const a=new ag(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),av.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 lg{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(__spreadProps(__spreadValues({},i),{animationMode:s.AnimationMode.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",(()=>s.reaction((()=>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=ug(this.displayer);return Tp(t,s.ViewVisionMode.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!==s.ViewVisionMode.Writable)return this.freedomAllViews(),new Promise(((e,t)=>{this.timer=window.setTimeout((()=>{try{const t=this.store.getMainViewScenePath();t&&(this.freedomAllViews(),Ep(this.manager.room,t),this.mainViewProxy.switchViewModeToWriter()),e(!0)}catch(i){t(i)}}),100)}))}freedomAllViews(){this.manager.appProxies.forEach((e=>{e.setViewFocusScenePath(),e.view&&Tp(e.view,s.ViewVisionMode.Freedom)})),this.mainView.mode===s.ViewVisionMode.Writable&&(Ap(av,s.ViewVisionMode.Freedom),Tp(this.mainView,s.ViewVisionMode.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(),lv.wrapper&&(null==(e=lv.wrapper.parentNode)||e.removeChild(lv.wrapper),lv.wrapper=void 0),this.releaseView(this.mainView)}}const ug=e=>{const t=e.views.createView();return dg(t),t},dg=e=>{e.setCameraBound({maxContentMode:()=>10,minContentMode:()=>.1})};class hg{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=()=>s.reaction((()=>this.mainViewCamera),(e=>{e&&e.id!==this.manager.uid&&(this.moveCameraToContian(this.mainViewSize),this.moveCamera(e))}),{fireImmediately:!0}),this.sizeChangeHandler=r.debounce((e=>{e&&(this.moveCameraToContian(e),this.moveCamera(this.mainViewCamera))}),30),this.onCameraUpdatedByDevice=e=>{this.store.setMainViewCamera(__spreadProps(__spreadValues({},e),{id:this.manager.uid})),r.isEqual(this.mainViewSize,__spreadProps(__spreadValues({},this.mainView.size),{id:this.manager.uid}))||this.setMainViewSize(this.view.size)},this.mainViewClickListener=()=>{this.mainViewClickHandler()},this.setMainViewSize=r.debounce((e=>{this.store.setMainViewSize(__spreadProps(__spreadValues({},e),{id:this.manager.uid}))}),50),this.onCameraOrSizeUpdated=()=>{av.emit("cameraStateChange",this.cameraState)},this.mainView=this.createMainView(),this.moveCameraSizeByAttributes(),this.cameraStore.register(this.viewId,this.mainView),sv.once("mainViewMounted").then((()=>{setTimeout((()=>{this.start(),this.mainViewCamera&&this.mainViewSize||this.setCameraAndSize()}),200)})),sv.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(Op.MainViewCamera,this.cameraReaction),this.started=!0)}setCameraAndSize(){this.store.setMainViewCamera(__spreadProps(__spreadValues({},this.mainView.camera),{id:this.manager.uid})),this.store.setMainViewSize(__spreadProps(__spreadValues({},this.mainView.size),{id:this.manager.uid}))}get view(){return this.mainView}get cameraState(){return __spreadValues(__spreadValues({},this.view.camera),this.view.size)}createMainView(){const e=ug(this.manager.displayer),t=this.store.getMainViewScenePath();return t&&Sp(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!==s.ViewVisionMode.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===s.ViewVisionMode.Writable)return;this.cameraStore.switchView(this.viewId,this.mainView,(()=>{Ap(av,s.ViewVisionMode.Writable),Tp(this.view,s.ViewVisionMode.Writable)}))}}moveCameraToContian(e){r.isEmpty(e)||(this.view.moveCameraToContain({width:e.width,height:e.height,originX:-e.width/2,originY:-e.height/2,animationMode:s.AnimationMode.Immediately}),this.scale=this.view.camera.scale)}moveCamera(e){if(!r.isEmpty(e)){if(r.isEqual(e,this.view.camera))return;const{centerX:t,centerY:i,scale:n}=e,a=n*(this.scale||1);this.view.moveCamera({centerX:t,centerY:i,scale:a,animationMode:s.AnimationMode.Immediately})}}stop(){var e,t;this.removeCameraListener(),null==(e=this.manager.refresher)||e.remove(Op.MainViewCamera),null==(t=this.manager.refresher)||t.remove(Op.MainViewSize),this.started=!1}destroy(){this.stop(),this.cameraStore.unregister(this.viewId,this.mainView)}}const pg=e=>(t,i)=>{if(void 0!==t){if(s.listenUpdated){const n=t=>{t.map((e=>e.kind)).includes(e)&&i()};return s.listenUpdated(t,n),i(),()=>s.unlistenUpdated(t,n)}return s.reaction((()=>t),(()=>{i()}),{fireImmediately:!0})}},fg=pg(s.UpdateEventKind.Removed);pg(s.UpdateEventKind.Inserted);class mg{constructor(e,t){this.manager=t,this.reactors=new Map,this.disposers=new Map,this.onPhaseChanged=e=>{e===s.RoomPhase.Connected&&this.phase===s.RoomPhase.Reconnecting&&this.onReconnected(),this.phase=e},this.onReconnected=()=>{Wp("onReconnected refresh reactors"),this.releaseDisposers(),this.reactors.forEach(((e,t)=>{r.isFunction(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=>{r.isFunction(e)&&e()})),this.disposers.clear()}add(e,t){r.isFunction(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&&(r.isFunction(t)&&t(),this.disposers.delete(e))}destroy(){var e;null==(e=this.room)||e.callbacks.off("onPhaseChanged",this.onPhaseChanged),this.releaseDisposers()}}class gg{constructor(e,t){this.windowManger=e,this.appProxies=new Map,this.appStatus=new Map,this.store=new Up(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)})),sv.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(np.AppMove,t),this.store.updateAppState(t.appId,ap.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(np.AppResize,t),this.store.updateAppState(t.appId,ap.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(np.AppBoxStateChange,t)}},this.displayer=e.displayer,this.cameraStore=new lg,this.mainViewProxy=new hg(this),this.viewManager=new cg(this),this.boxManager=new og(this,t),this.appListeners=new Pp(this),this.displayer.callbacks.on(this.eventName,this.displayerStateListener),this.appListeners.addListeners(),this.refresher=new mg(this.room,this),sv.once("onCreated").then((()=>this.onCreated())),s.isPlayer(this.displayer)&&sv.on("seek",(e=>{this.appProxies.forEach((t=>{t.onSeek(e)})),this.attributesUpdateCallback(this.attributes.apps),this.onAppDelete(this.attributes.apps)})),sv.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(),sv.onAny(this.boxEventListener),null==(e=this.refresher)||e.add("apps",(()=>((e,t)=>{let i=null;const n=s.reaction(e,(()=>{i&&(i(),i=null);const n=e();i=()=>s.unlistenUpdated(n,t),s.listenUpdated(n,t)}),{fireImmediately:!0});return()=>{null==i||i(),n()}})((()=>this.attributes.apps),(()=>{this.attributesUpdateCallback(this.attributes.apps)})))),null==(t=this.refresher)||t.add("appsClose",(()=>fg(this.attributes.apps,(()=>{this.onAppDelete(this.attributes.apps)})))),null==(i=this.refresher)||i.add("maximized",(()=>s.autorun((()=>{const e=this.attributes.maximized;this.boxManager.maximized!==e&&this.boxManager.setMaximized(Boolean(e))})))),null==(n=this.refresher)||n.add("minimized",(()=>s.autorun((()=>{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&&Ep(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.default((async()=>{this.appStatus.set(t,up.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!==s.ViewVisionMode.Writable&&this.viewManager.switchMainViewToWriter(),this.mainViewProxy.addMainViewListener(),sv.emit("mainViewMounted")}async addApp(e,t){Wp("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=Ip.appClasses.get(e))?void 0:t());return n&&(null==(i=n.config)?void 0:i.singleton)?e:`${e}-${a.v4().replace("-","").slice(0,8)}`})(e.kind);this.appStatus.set(n,up.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;sv.emit("move",{appId:e.id,x:null==t?void 0:t.intrinsicX,y:null==t?void 0:t.intrinsicY}),this.store.updateAppState(e.id,ap.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 Hp(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 s.isRoom(this.displayer)?"onRoomStateChanged":"onPlayerStateChanged"}get attributes(){return this.windowManger.attributes}get canOperate(){return this.windowManger.canOperate}get room(){return s.isRoom(this.displayer)?this.displayer:void 0}get mainView(){return this.mainViewProxy.view}get focusApp(){if(this.store.focus)return this.appProxies.get(this.store.focus)}get uid(){var e;return(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===s.ScenePathType.None)throw new Error(`[WindowManager]: ${e} not valid scene`);if(t===s.ScenePathType.Page)await this._setMainViewScenePath(e);else if(t===s.ScenePathType.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(),Ep(this.room,e),this.store.setMainViewFocusPath(),this.dispatchInternalEvent(np.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(np.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),sv.emit("onReconnected")}notifyContainerRectUpdate(e){this.appProxies.forEach((t=>{t.appEmitter.emit("containerRectUpdate",e)}))}dispatchInternalEvent(e,t){this.safeDispatchMagixEvent(sp,{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(),sv.offAny(this.boxEventListener),sv.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(),av.clearListeners()}}function vg(){}function wg(e){return e()}function bg(){return Object.create(null)}function yg(e){e.forEach(wg)}function xg(e){return"function"==typeof e}function Mg(e,t){return e!=e?t==t:e!==t||e&&"object"==typeof e||"function"==typeof e}let Cg,Ig;function Sg(e,t){return Cg||(Cg=document.createElement("a")),Cg.href=t,e===Cg.href}function Eg(e,t){e.appendChild(t)}function Tg(e,t,i){e.insertBefore(t,i||null)}function Ag(e){e.parentNode.removeChild(e)}function kg(e){return document.createElement(e)}function Ng(e){return document.createTextNode(e)}function Pg(){return Ng(" ")}function zg(e,t,i){null==i?e.removeAttribute(t):e.getAttribute(t)!==i&&e.setAttribute(t,i)}function Dg(e,t){t=""+t,e.wholeText!==t&&(e.data=t)}function Lg(e,t,i,n){e.style.setProperty(t,i,n?"important":"")}function Bg(e){Ig=e}const jg=[],Vg=[],_g=[],Og=[],Rg=Promise.resolve();let Ug=!1;function Wg(e){_g.push(e)}let Hg=!1;const Qg=new Set;function $g(){if(!Hg){Hg=!0;do{for(let e=0;e<jg.length;e+=1){const t=jg[e];Bg(t),Fg(t.$$)}for(Bg(null),jg.length=0;Vg.length;)Vg.pop()();for(let e=0;e<_g.length;e+=1){const t=_g[e];Qg.has(t)||(Qg.add(t),t())}_g.length=0}while(jg.length);for(;Og.length;)Og.pop()();Ug=!1,Hg=!1,Qg.clear()}}function Fg(e){if(null!==e.fragment){e.update(),yg(e.before_update);const t=e.dirty;e.dirty=[-1],e.fragment&&e.fragment.p(e.ctx,t),e.after_update.forEach(Wg)}}const Zg=new Set;function Yg(e,t){-1===e.$$.dirty[0]&&(jg.push(e),Ug||(Ug=!0,Rg.then($g)),e.$$.dirty.fill(0)),e.$$.dirty[t/31|0]|=1<<t%31}function Gg(e,t,i,n,r,s,a,o=[-1]){const l=Ig;Bg(e);const c=e.$$={fragment:null,ctx:null,props:s,update:vg,not_equal:r,bound:bg(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(l?l.$$.context:t.context||[]),callbacks:bg(),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&&Yg(e,t)),i})):[],c.update(),u=!0,yg(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(Ag)}else c.fragment&&c.fragment.c();t.intro&&((d=e.$$.fragment)&&d.i&&(Zg.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||Wg((()=>{const t=s.map(wg).filter(xg);a?a.push(...t):yg(t),e.$$.on_mount=[]})),o.forEach(Wg)}(e,t.target,t.anchor,t.customElement),$g()}var d,h,p;Bg(l)}function Xg(e){let t,i,n;return{c(){t=kg("img"),zg(t,"class","netless-window-manager-cursor-selector-avatar"),zg(t,"style",i=e[15]()),Sg(t.src,n=e[7])||zg(t,"src",n),zg(t,"alt","avatar")},m(e,i){Tg(e,t,i)},p(e,i){128&i&&!Sg(t.src,n=e[7])&&zg(t,"src",n)},d(e){e&&Ag(t)}}}function Jg(e){let t,i;return{c(){t=kg("span"),i=Ng(e[1]),zg(t,"class","netless-window-manager-cursor-tag-name"),Lg(t,"background-color",e[10])},m(e,n){Tg(e,t,n),Eg(t,i)},p(e,n){2&n&&Dg(i,e[1]),1024&n&&Lg(t,"background-color",e[10])},d(e){e&&Ag(t)}}}function Kg(e){let t,i,n,r,s,a,o,l,c,u,d,h,p=e[13]&&Xg(e),f=e[14]&&Jg(e);return{c(){t=kg("div"),i=kg("div"),n=kg("div"),p&&p.c(),r=Pg(),s=kg("span"),a=Ng(e[0]),o=Pg(),f&&f.c(),l=Pg(),c=kg("div"),u=kg("img"),Lg(s,"overflow","hidden"),Lg(s,"white-space","nowrap"),Lg(s,"text-overflow","ellipsis"),Lg(s,"max-width","80px"),zg(n,"class",e[8]),Lg(n,"background-color",e[2]),Lg(n,"color",e[9]),Lg(n,"opacity",e[11]),zg(i,"class","netless-window-manager-cursor-name"),zg(u,"class",d="netless-window-manager-cursor-"+e[3]+"-image"),Sg(u.src,h=e[6])||zg(u,"src",h),zg(u,"alt",e[3]),zg(c,"class","cursor-image-wrapper"),zg(t,"class","netless-window-manager-cursor-mid"),Lg(t,"transform","translateX("+e[4]+"px) translateY("+e[5]+"px)"),Lg(t,"display",e[12])},m(e,d){Tg(e,t,d),Eg(t,i),Eg(i,n),p&&p.m(n,null),Eg(n,r),Eg(n,s),Eg(s,a),Eg(n,o),f&&f.m(n,null),Eg(t,l),Eg(t,c),Eg(c,u)},p(e,[i]){e[13]?p?p.p(e,i):(p=Xg(e),p.c(),p.m(n,r)):p&&(p.d(1),p=null),1&i&&Dg(a,e[0]),e[14]?f?f.p(e,i):(f=Jg(e),f.c(),f.m(n,null)):f&&(f.d(1),f=null),256&i&&zg(n,"class",e[8]),4&i&&Lg(n,"background-color",e[2]),512&i&&Lg(n,"color",e[9]),2048&i&&Lg(n,"opacity",e[11]),8&i&&d!==(d="netless-window-manager-cursor-"+e[3]+"-image")&&zg(u,"class",d),64&i&&!Sg(u.src,h=e[6])&&zg(u,"src",h),8&i&&zg(u,"alt",e[3]),48&i&&Lg(t,"transform","translateX("+e[4]+"px) translateY("+e[5]+"px)"),4096&i&&Lg(t,"display",e[12])},i:vg,o:vg,d(e){e&&Ag(t),p&&p.d(),f&&f.d()}}}function qg(e,t,i){let n,s,a,o,{cursorName:l}=t,{tagName:c}=t,{backgroundColor:u}=t,{appliance:d}=t,{x:h}=t,{y:p}=t,{src:f}=t,{visible:m}=t,{avatar:g}=t,{theme:v}=t,{color:w}=t,{cursorTagBackgroundColor:b}=t,{opacity:y}=t;return e.$$set=e=>{"cursorName"in e&&i(0,l=e.cursorName),"tagName"in e&&i(1,c=e.tagName),"backgroundColor"in e&&i(2,u=e.backgroundColor),"appliance"in e&&i(3,d=e.appliance),"x"in e&&i(4,h=e.x),"y"in e&&i(5,p=e.y),"src"in e&&i(6,f=e.src),"visible"in e&&i(16,m=e.visible),"avatar"in e&&i(7,g=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=!r.isEmpty(l)),2&e.$$.dirty&&i(14,s=!r.isEmpty(c)),128&e.$$.dirty&&i(13,a=!r.isEmpty(g)),65536&e.$$.dirty&&i(12,o=m?"initial":"none")},[l,c,u,d,h,p,f,g,v,w,b,y,o,a,s,()=>Object.entries({width:(n?19:28)+"px",height:(n?19:28)+"px",position:n?"initial":"absolute","border-color":n?"white":u,"margin-right":(n?4:0)+"px"}).map((([e,t])=>`${e}: ${t}`)).join(";"),m]}class ev extends class{$destroy(){!function(e,t){const i=e.$$;null!==i.fragment&&(yg(i.on_destroy),i.fragment&&i.fragment.d(t),i.on_destroy=i.fragment=null,i.ctx=[])}(this,1),this.$destroy=vg}$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(),Gg(this,e,qg,Kg,Mg,{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 tv={[s.ApplianceNames.pencil]:"data:image/png;base64,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",[s.ApplianceNames.selector]:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADEAAAAxCAYAAABznEEcAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAZoSURBVHgB7VlLSCRXFL3ljNEhEXTGhMQJmOjCz8ZNVLKICz9xIYhCNi7UgINkGEk2En8hW5cBUQNxo05GAoKikuCAmvGzGMdPcCUGjDPxD/4Vv/3JvWW97luvq7ur+hMZ8MKlqrteNfe8e965970GuLVbC5kpJr53+hjHx9yY3TUxJgLMAQG4ITARfp5T4Mri4uL9q6urnxwOxz/oY5eXl1/Pzs7e195X2FX4jZsIhAK7gx5ps9m6nGj9/f3OtbU1pzAE0318fPwVjYHrrN7R3AjU/wpOBwA9Cmf/9ejoqDMtLU31iooKGdA+ATo4OMiXAEWAHhBAGEApXj4rPAik0vPt7e0vCgoKPH4gMzMTSktLIS8vD2JiYgABvcHMTZyennbHxsaOg3udOJmLzwqEYB0ZgRCZENm4u7e39yQuLq65srISZmZmvP5Ybm4u5OfnQ0lJyXWUCAgzNLS+vt6SnJz8WgvYwV5xSlcRgyVg3ha2Dkxzc3MvfZmVlQW+bGxsDBobGyE7O1u94uJPjIqKqklKSvrbbrfPnp+ff7e8vJwMnlSTKWfJjDKhywJo6wLp0YcZ+dyIUr7s4cOHLsrRlQwBTSBFuzc2NiZYhjjVAIyzZBqEwgCQv0OOM/gNzuiP/ijlDxBRjgClpqa6AF1cXDydmpoaLCws3JcAGYHyC4JMzoKaibKysvienp6FtrY2IA/WCFB5ebkqCHSvARo8Ozt7igIxwIJ2gJ+seFMnDoIyEUV+dHT0G3qWVUr5M043DdAB0m2IKZwAYpgZX+qkywR6NFbuR0iDxmAoZRUQKRxSLTMnJ8eIaqqSeVMnIYUOdu+sq6vrp4f+VCoYo8khZaNs01VRlERUu2/BrWAA7sl2Anink1Ao18JGjyY/PDx8hq1GZqgp5c2mp6chMjLy2b179x7hRzvoqeUUwXIzqq4O5nZsNUaEbIbLqPLTou/s7FTvT05OpsA9sXJG1AVsZDwjutqBIN6gUlWjxod8XRBNKXgsrqpqYZfwEqX9h8TExD7wbFm8LmzxHQ0QHSlXKZVSqFC/hkqlaKapTaGgCQTK7PHW1lb/wsLC86KiokkccoV+qV1tcE0pO7AWxmhTxBszDzqRr66ujqanp2cRpQLNBgUsCh8BwQ54bn5+/s+mpqa+4eHhfS1gb52vwuP0trPjhSZCBtLQ0NA3MDDQQIFYAUHBYhuvzjpVbJr1lZWVP3p7e19UVVXNgHumXYrI4uBx6Yqevz02b0FcRQ8CoBQF3dXVpQLZ3d39C7n+ora29vfJyclDYFnWgFyxK3cxhss/+KoT/N6DVkQpKypFGUCp3Ozo6HgSHx//GLW/BwHsg57zl5pzADajwLn52mPL1ZHPloMoRYPMFL6EhAR18e7s7MxVV1fPsAAp4Avteq7dC/c1+wKI4g+EfGzDM+EYHBw8RDrNiA2QL6upqVGvKJ2/gHu2L1nA5wwEB2YDfSYMO1x/px0cgEc2zBY+eo67u6H29vZ/wU2VC8l58JxKNjDOgojNEp08aFVfX++3l6JMEdDx8fEB0FNIBsDXBc8ArwuW1EkeI1RKdLWmCx+1DhkZGRvR0dFfSsHKxYtnW0iqvJAN9xNm6MR/QO5sfapUSkqKmqW5ubmfwVgyZdpw/vPZl2kUEAinBMSUStG+gwra0NDQSynQKyloIxnlewafjDFLJzLRBJqiFMnqyMgIbG5uDuD996Dnv8iAPOMAPmbcm5lVJwA/vZRMKZGZlpaWVtAvUL4GZMqE1fjRJrUd76LHoX+InlhcXPwZnWW2tra6jjrpiBM3UK/weQr6J+gfodMh9HtwncG7YLA3CMSsLmxx5WuDCt8B7vZeicInTjCWlpb6wc15mfey7oc9E8LElpVmMgb9AXoC+qcTExOPKRu4NlTHs6Q10GfhgfYOvRsJQZ76BWMKuDtaolQs+gfoH6Mn436gDg+e+5BKXUQx/C5Je/a+NpbeiQJPKgUdlNXx/BCBKxVdxW5Q0I3XBqFKRhU4KLtjYawi3csuTKdc4FnIXNvKUJkVEGRG20QZAAUpA5DbaYAQLmQzfzxyk/ffdnCD4NWVnGdE7kQBQvQHC5lVEDxgMaM29lkxGCNLKrDnIbFAMkFmBIaDkHstU41coGZ1TZD5UjReCGUAYbNgdNqoXZB/T67yYbFAMiGML3BhYeH8rb0t9h/zgcTBcTNGiQAAAABJRU5ErkJggg==",[s.ApplianceNames.eraser]:"data:image/png;base64,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",[s.ApplianceNames.shape]:"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iNDBweCIgaGVpZ2h0PSI0MHB4IiB2aWV3Qm94PSIwIDAgNDAgNDAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDYwLjEgKDg4MTMzKSAtIGh0dHBzOi8vc2tldGNoLmNvbSAtLT4KICAgIDx0aXRsZT5zaGFwZS1jdXJzb3I8L3RpdGxlPgogICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+CiAgICA8ZGVmcz4KICAgICAgICA8cGF0aCBkPSJNMjAsMjEuNSBDMjAuMjQ1NDU5OSwyMS41IDIwLjQ0OTYwODQsMjEuNjc2ODc1MiAyMC40OTE5NDQzLDIxLjkxMDEyNDQgTDIwLjUsMjIgTDIwLjUsMjcgQzIwLjUsMjcuMjc2MTQyNCAyMC4yNzYxNDI0LDI3LjUgMjAsMjcuNSBDMTkuNzU0NTQwMSwyNy41IDE5LjU1MDM5MTYsMjcuMzIzMTI0OCAxOS41MDgwNTU3LDI3LjA4OTg3NTYgTDE5LjUsMjcgTDE5LjUsMjIgQzE5LjUsMjEuNzIzODU3NiAxOS43MjM4NTc2LDIxLjUgMjAsMjEuNSBaIE0yNywxOS41IEMyNy4yNzYxNDI0LDE5LjUgMjcuNSwxOS43MjM4NTc2IDI3LjUsMjAgQzI3LjUsMjAuMjQ1NDU5OSAyNy4zMjMxMjQ4LDIwLjQ0OTYwODQgMjcuMDg5ODc1NiwyMC40OTE5NDQzIEwyNywyMC41IEwyMiwyMC41IEMyMS43MjM4NTc2LDIwLjUgMjEuNSwyMC4yNzYxNDI0IDIxLjUsMjAgQzIxLjUsMTkuNzU0NTQwMSAyMS42NzY4NzUyLDE5LjU1MDM5MTYgMjEuOTEwMTI0NCwxOS41MDgwNTU3IEwyMiwxOS41IEwyNywxOS41IFogTTE4LDE5LjUgQzE4LjI3NjE0MjQsMTkuNSAxOC41LDE5LjcyMzg1NzYgMTguNSwyMCBDMTguNSwyMC4yNDU0NTk5IDE4LjMyMzEyNDgsMjAuNDQ5NjA4NCAxOC4wODk4NzU2LDIwLjQ5MTk0NDMgTDE4LDIwLjUgTDEzLDIwLjUgQzEyLjcyMzg1NzYsMjAuNSAxMi41LDIwLjI3NjE0MjQgMTIuNSwyMCBDMTIuNSwxOS43NTQ1NDAxIDEyLjY3Njg3NTIsMTkuNTUwMzkxNiAxMi45MTAxMjQ0LDE5LjUwODA1NTcgTDEzLDE5LjUgTDE4LDE5LjUgWiBNMjAsMTIuNSBDMjAuMjQ1NDU5OSwxMi41IDIwLjQ0OTYwODQsMTIuNjc2ODc1MiAyMC40OTE5NDQzLDEyLjkxMDEyNDQgTDIwLjUsMTMgTDIwLjUsMTggQzIwLjUsMTguMjc2MTQyNCAyMC4yNzYxNDI0LDE4LjUgMjAsMTguNSBDMTkuNzU0NTQwMSwxOC41IDE5LjU1MDM5MTYsMTguMzIzMTI0OCAxOS41MDgwNTU3LDE4LjA4OTg3NTYgTDE5LjUsMTggTDE5LjUsMTMgQzE5LjUsMTIuNzIzODU3NiAxOS43MjM4NTc2LDEyLjUgMjAsMTIuNSBaIiBpZD0icGF0aC0xIj48L3BhdGg+CiAgICAgICAgPGZpbHRlciB4PSItNjQuNiUiIHk9Ii01OS41JSIgd2lkdGg9IjIyOS4zJSIgaGVpZ2h0PSIyNDYuMSUiIGZpbHRlclVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgaWQ9ImZpbHRlci0yIj4KICAgICAgICAgICAgPGZlTW9ycGhvbG9neSByYWRpdXM9IjEiIG9wZXJhdG9yPSJkaWxhdGUiIGluPSJTb3VyY2VBbHBoYSIgcmVzdWx0PSJzaGFkb3dTcHJlYWRPdXRlcjEiPjwvZmVNb3JwaG9sb2d5PgogICAgICAgICAgICA8ZmVPZmZzZXQgZHg9IjAiIGR5PSIyIiBpbj0ic2hhZG93U3ByZWFkT3V0ZXIxIiByZXN1bHQ9InNoYWRvd09mZnNldE91dGVyMSI+PC9mZU9mZnNldD4KICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iMyIgaW49InNoYWRvd09mZnNldE91dGVyMSIgcmVzdWx0PSJzaGFkb3dCbHVyT3V0ZXIxIj48L2ZlR2F1c3NpYW5CbHVyPgogICAgICAgICAgICA8ZmVDb21wb3NpdGUgaW49InNoYWRvd0JsdXJPdXRlcjEiIGluMj0iU291cmNlQWxwaGEiIG9wZXJhdG9yPSJvdXQiIHJlc3VsdD0ic2hhZG93Qmx1ck91dGVyMSI+PC9mZUNvbXBvc2l0ZT4KICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggdmFsdWVzPSIwIDAgMCAwIDAgICAwIDAgMCAwIDAgICAwIDAgMCAwIDAgIDAgMCAwIDAuMTYgMCIgdHlwZT0ibWF0cml4IiBpbj0ic2hhZG93Qmx1ck91dGVyMSI+PC9mZUNvbG9yTWF0cml4PgogICAgICAgIDwvZmlsdGVyPgogICAgPC9kZWZzPgogICAgPGcgaWQ9Iumhtemdoi00IiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4KICAgICAgICA8ZyBpZD0iV2hpdGVib2FyZC1HdWlkZWxpbmVzIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMzQ0LjAwMDAwMCwgLTc1MS4wMDAwMDApIj4KICAgICAgICAgICAgPGcgaWQ9InNoYXBlLWN1cnNvciIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzQ0LjAwMDAwMCwgNzUxLjAwMDAwMCkiPgogICAgICAgICAgICAgICAgPHJlY3QgaWQ9IuefqeW9ouWkh+S7vS00NCIgZmlsbD0iI0ZGRkZGRiIgb3BhY2l0eT0iMC4wMSIgeD0iMCIgeT0iMCIgd2lkdGg9IjQwIiBoZWlnaHQ9IjQwIiByeD0iMiI+PC9yZWN0PgogICAgICAgICAgICAgICAgPGcgaWQ9IuW9oueKtue7k+WQiCIgZmlsbC1ydWxlPSJub256ZXJvIj4KICAgICAgICAgICAgICAgICAgICA8dXNlIGZpbGw9ImJsYWNrIiBmaWxsLW9wYWNpdHk9IjEiIGZpbHRlcj0idXJsKCNmaWx0ZXItMikiIHhsaW5rOmhyZWY9IiNwYXRoLTEiPjwvdXNlPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIHN0cm9rZT0iI0ZGRkZGRiIgc3Ryb2tlLXdpZHRoPSIxIiBkPSJNMjAsMjEgQzIwLjQ4NTQxMDMsMjEgMjAuODk4MDg1LDIxLjM0Nzk5OTMgMjAuOTg5OTQ3OSwyMS44NjU0ODc3IEwyMSwyMiBMMjEsMjcgQzIxLDI3LjU1MjI4NDcgMjAuNTUyMjg0NywyOCAyMCwyOCBDMTkuNTE0NTg5NywyOCAxOS4xMDE5MTUsMjcuNjUyMDAwNyAxOS4wMTAwNTIxLDI3LjEzNDUxMjMgTDE5LDI3IEwxOSwyMiBDMTksMjEuNDQ3NzE1MyAxOS40NDc3MTUzLDIxIDIwLDIxIFogTTI3LDE5IEMyNy41NTIyODQ3LDE5IDI4LDE5LjQ0NzcxNTMgMjgsMjAgQzI4LDIwLjQ4NTQxMDMgMjcuNjUyMDAwNywyMC44OTgwODUgMjcuMTM0NTEyMywyMC45ODk5NDc5IEwyNywyMSBMMjIsMjEgQzIxLjQ0NzcxNTMsMjEgMjEsMjAuNTUyMjg0NyAyMSwyMCBDMjEsMTkuNTE0NTg5NyAyMS4zNDc5OTkzLDE5LjEwMTkxNSAyMS44NjU0ODc3LDE5LjAxMDA1MjEgTDIyLDE5IEwyNywxOSBaIE0xOCwxOSBDMTguNTUyMjg0NywxOSAxOSwxOS40NDc3MTUzIDE5LDIwIEMxOSwyMC40ODU0MTAzIDE4LjY1MjAwMDcsMjAuODk4MDg1IDE4LjEzNDUxMjMsMjAuOTg5OTQ3OSBMMTgsMjEgTDEzLDIxIEMxMi40NDc3MTUzLDIxIDEyLDIwLjU1MjI4NDcgMTIsMjAgQzEyLDE5LjUxNDU4OTcgMTIuMzQ3OTk5MywxOS4xMDE5MTUgMTIuODY1NDg3NywxOS4wMTAwNTIxIEwxMywxOSBMMTgsMTkgWiBNMjAsMTIgQzIwLjQ4NTQxMDMsMTIgMjAuODk4MDg1LDEyLjM0Nzk5OTMgMjAuOTg5OTQ3OSwxMi44NjU0ODc3IEwyMSwxMyBMMjEsMTggQzIxLDE4LjU1MjI4NDcgMjAuNTUyMjg0NywxOSAyMCwxOSBDMTkuNTE0NTg5NywxOSAxOS4xMDE5MTUsMTguNjUyMDAwNyAxOS4wMTAwNTIxLDE4LjEzNDUxMjMgTDE5LDE4IEwxOSwxMyBDMTksMTIuNDQ3NzE1MyAxOS40NDc3MTUzLDEyIDIwLDEyIFoiIGZpbGw9IiMyMTIzMjQiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PC9wYXRoPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgICAgPHJlY3QgaWQ9IuefqeW9oiIgZmlsbD0iI0ZGRkZGRiIgeD0iMTguNSIgeT0iMTciIHdpZHRoPSIzIiBoZWlnaHQ9IjYiPjwvcmVjdD4KICAgICAgICAgICAgICAgIDxyZWN0IGlkPSLnn6nlvaIiIGZpbGw9IiNGRkZGRkYiIHg9IjE3IiB5PSIxOC41IiB3aWR0aD0iNiIgaGVpZ2h0PSIzIj48L3JlY3Q+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjAsMjEuNSBDMjAuMjQ1NDU5OSwyMS41IDIwLjQ0OTYwODQsMjEuNjc2ODc1MiAyMC40OTE5NDQzLDIxLjkxMDEyNDQgTDIwLjUsMjIgTDIwLjUsMjcgQzIwLjUsMjcuMjc2MTQyNCAyMC4yNzYxNDI0LDI3LjUgMjAsMjcuNSBDMTkuNzU0NTQwMSwyNy41IDE5LjU1MDM5MTYsMjcuMzIzMTI0OCAxOS41MDgwNTU3LDI3LjA4OTg3NTYgTDE5LjUsMjcgTDE5LjUsMjIgQzE5LjUsMjEuNzIzODU3NiAxOS43MjM4NTc2LDIxLjUgMjAsMjEuNSBaIE0yNywxOS41IEMyNy4yNzYxNDI0LDE5LjUgMjcuNSwxOS43MjM4NTc2IDI3LjUsMjAgQzI3LjUsMjAuMjQ1NDU5OSAyNy4zMjMxMjQ4LDIwLjQ0OTYwODQgMjcuMDg5ODc1NiwyMC40OTE5NDQzIEwyNywyMC41IEwyMiwyMC41IEMyMS43MjM4NTc2LDIwLjUgMjEuNSwyMC4yNzYxNDI0IDIxLjUsMjAgQzIxLjUsMTkuNzU0NTQwMSAyMS42NzY4NzUyLDE5LjU1MDM5MTYgMjEuOTEwMTI0NCwxOS41MDgwNTU3IEwyMiwxOS41IEwyNywxOS41IFogTTE4LDE5LjUgQzE4LjI3NjE0MjQsMTkuNSAxOC41LDE5LjcyMzg1NzYgMTguNSwyMCBDMTguNSwyMC4yNDU0NTk5IDE4LjMyMzEyNDgsMjAuNDQ5NjA4NCAxOC4wODk4NzU2LDIwLjQ5MTk0NDMgTDE4LDIwLjUgTDEzLDIwLjUgQzEyLjcyMzg1NzYsMjAuNSAxMi41LDIwLjI3NjE0MjQgMTIuNSwyMCBDMTIuNSwxOS43NTQ1NDAxIDEyLjY3Njg3NTIsMTkuNTUwMzkxNiAxMi45MTAxMjQ0LDE5LjUwODA1NTcgTDEzLDE5LjUgTDE4LDE5LjUgWiBNMjAsMTIuNSBDMjAuMjQ1NDU5OSwxMi41IDIwLjQ0OTYwODQsMTIuNjc2ODc1MiAyMC40OTE5NDQzLDEyLjkxMDEyNDQgTDIwLjUsMTMgTDIwLjUsMTggQzIwLjUsMTguMjc2MTQyNCAyMC4yNzYxNDI0LDE4LjUgMjAsMTguNSBDMTkuNzU0NTQwMSwxOC41IDE5LjU1MDM5MTYsMTguMzIzMTI0OCAxOS41MDgwNTU3LDE4LjA4OTg3NTYgTDE5LjUsMTggTDE5LjUsMTMgQzE5LjUsMTIuNzIzODU3NiAxOS43MjM4NTc2LDEyLjUgMjAsMTIuNSBaIiBpZD0i5b2i54q257uT5ZCIIiBmaWxsPSIjMjEyMzI0IiBmaWxsLXJ1bGU9Im5vbnplcm8iPjwvcGF0aD4KICAgICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+",[s.ApplianceNames.text]:"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iNDdweCIgaGVpZ2h0PSI0MHB4IiB2aWV3Qm94PSIwIDAgNDcgNDAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDYwLjEgKDg4MTMzKSAtIGh0dHBzOi8vc2tldGNoLmNvbSAtLT4KICAgIDx0aXRsZT50ZXh0LWN1cnNvcjwvdGl0bGU+CiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4KICAgIDxkZWZzPgogICAgICAgIDxwYXRoIGQ9Ik0xNiwyNi41IEMxNS43MjM4NTc2LDI2LjUgMTUuNSwyNi4yNzYxNDI0IDE1LjUsMjYgQzE1LjUsMjUuNzU0NTQwMSAxNS42NzY4NzUyLDI1LjU1MDM5MTYgMTUuOTEwMTI0NCwyNS41MDgwNTU3IEwxNiwyNS41IEwxOS41LDI1LjUgTDE5LjUsMTQuNSBMMTYsMTQuNSBDMTUuNzIzODU3NiwxNC41IDE1LjUsMTQuMjc2MTQyNCAxNS41LDE0IEMxNS41LDEzLjc1NDU0MDEgMTUuNjc2ODc1MiwxMy41NTAzOTE2IDE1LjkxMDEyNDQsMTMuNTA4MDU1NyBMMTYsMTMuNSBMMjQsMTMuNSBDMjQuMjc2MTQyNCwxMy41IDI0LjUsMTMuNzIzODU3NiAyNC41LDE0IEMyNC41LDE0LjI0NTQ1OTkgMjQuMzIzMTI0OCwxNC40NDk2MDg0IDI0LjA4OTg3NTYsMTQuNDkxOTQ0MyBMMjQsMTQuNSBMMjAuNSwxNC41IEwyMC41LDI1LjUgTDI0LDI1LjUgQzI0LjI3NjE0MjQsMjUuNSAyNC41LDI1LjcyMzg1NzYgMjQuNSwyNiBDMjQuNSwyNi4yNDU0NTk5IDI0LjMyMzEyNDgsMjYuNDQ5NjA4NCAyNC4wODk4NzU2LDI2LjQ5MTk0NDMgTDI0LDI2LjUgTDE2LDI2LjUgWiIgaWQ9InBhdGgtMSI+PC9wYXRoPgogICAgICAgIDxmaWx0ZXIgeD0iLTI4NC4wJSIgeT0iLTgxLjUlIiB3aWR0aD0iNjY4LjElIiBoZWlnaHQ9IjI5My45JSIgZmlsdGVyVW5pdHM9Im9iamVjdEJvdW5kaW5nQm94IiBpZD0iZmlsdGVyLTIiPgogICAgICAgICAgICA8ZmVNb3JwaG9sb2d5IHJhZGl1cz0iMSIgb3BlcmF0b3I9ImRpbGF0ZSIgaW49IlNvdXJjZUFscGhhIiByZXN1bHQ9InNoYWRvd1NwcmVhZE91dGVyMSI+PC9mZU1vcnBob2xvZ3k+CiAgICAgICAgICAgIDxmZU9mZnNldCBkeD0iMCIgZHk9IjIiIGluPSJzaGFkb3dTcHJlYWRPdXRlcjEiIHJlc3VsdD0ic2hhZG93T2Zmc2V0T3V0ZXIxIj48L2ZlT2Zmc2V0PgogICAgICAgICAgICA8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSIzIiBpbj0ic2hhZG93T2Zmc2V0T3V0ZXIxIiByZXN1bHQ9InNoYWRvd0JsdXJPdXRlcjEiPjwvZmVHYXVzc2lhbkJsdXI+CiAgICAgICAgICAgIDxmZUNvbXBvc2l0ZSBpbj0ic2hhZG93Qmx1ck91dGVyMSIgaW4yPSJTb3VyY2VBbHBoYSIgb3BlcmF0b3I9Im91dCIgcmVzdWx0PSJzaGFkb3dCbHVyT3V0ZXIxIj48L2ZlQ29tcG9zaXRlPgogICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCB2YWx1ZXM9IjAgMCAwIDAgMCAgIDAgMCAwIDAgMCAgIDAgMCAwIDAgMCAgMCAwIDAgMC4xNiAwIiB0eXBlPSJtYXRyaXgiIGluPSJzaGFkb3dCbHVyT3V0ZXIxIj48L2ZlQ29sb3JNYXRyaXg+CiAgICAgICAgPC9maWx0ZXI+CiAgICA8L2RlZnM+CiAgICA8ZyBpZD0i6aG16Z2iLTQiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSJXaGl0ZWJvYXJkLUd1aWRlbGluZXMiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0zODguMDAwMDAwLCAtNjcyLjAwMDAwMCkiPgogICAgICAgICAgICA8ZyBpZD0idGV4dC1jdXJzb3IiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDM5Mi4wMDAwMDAsIDY3Mi4wMDAwMDApIj4KICAgICAgICAgICAgICAgIDxyZWN0IGlkPSLnn6nlvaLlpIfku70tNDAiIGZpbGw9IiNGRkZGRkYiIG9wYWNpdHk9IjAuMDEiIHg9IjAiIHk9IjAiIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgcng9IjIiPjwvcmVjdD4KICAgICAgICAgICAgICAgIDxnIGlkPSLlvaLnirbnu5PlkIgiIGZpbGwtcnVsZT0ibm9uemVybyI+CiAgICAgICAgICAgICAgICAgICAgPHVzZSBmaWxsPSJibGFjayIgZmlsbC1vcGFjaXR5PSIxIiBmaWx0ZXI9InVybCgjZmlsdGVyLTIpIiB4bGluazpocmVmPSIjcGF0aC0xIj48L3VzZT4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBzdHJva2U9IiNGRkZGRkYiIHN0cm9rZS13aWR0aD0iMSIgZD0iTTE5LDI1IEwxOSwxNSBMMTYsMTUgQzE1LjQ0NzcxNTMsMTUgMTUsMTQuNTUyMjg0NyAxNSwxNCBDMTUsMTMuNTE0NTg5NyAxNS4zNDc5OTkzLDEzLjEwMTkxNSAxNS44NjU0ODc3LDEzLjAxMDA1MjEgTDE2LDEzIEwyNCwxMyBDMjQuNTUyMjg0NywxMyAyNSwxMy40NDc3MTUzIDI1LDE0IEMyNSwxNC40ODU0MTAzIDI0LjY1MjAwMDcsMTQuODk4MDg1IDI0LjEzNDUxMjMsMTQuOTg5OTQ3OSBMMjQsMTUgTDIxLDE1IEwyMSwyNSBMMjQsMjUgQzI0LjU1MjI4NDcsMjUgMjUsMjUuNDQ3NzE1MyAyNSwyNiBDMjUsMjYuNDg1NDEwMyAyNC42NTIwMDA3LDI2Ljg5ODA4NSAyNC4xMzQ1MTIzLDI2Ljk4OTk0NzkgTDI0LDI3IEwxNiwyNyBDMTUuNDQ3NzE1MywyNyAxNSwyNi41NTIyODQ3IDE1LDI2IEMxNSwyNS41MTQ1ODk3IDE1LjM0Nzk5OTMsMjUuMTAxOTE1IDE1Ljg2NTQ4NzcsMjUuMDEwMDUyMSBMMTYsMjUgTDE5LDI1IFoiIGZpbGw9IiMyMTIzMjQiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PC9wYXRoPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4="};class iv{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 ev({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 tv[this.memberApplianceName||s.ApplianceNames.shape]||tv[s.ApplianceNames.shape]}}setMember(){this.member=this.manager.findMemberByUid(this.memberId),this.updateComponent()}updateComponent(){var e;null==(e=this.component)||e.$set(r.omit(this.initProps(),["x","y"]))}destroy(){this.component&&this.component.$destroy(),this.cursorManager.cursorInstances.delete(this.memberId),this.timer&&clearTimeout(this.timer)}hide(){this.component&&(this.component.$set({visible:!1}),this.destroy())}}class nv{constructor(e){var t;this.manager=e,this.cursorInstances=new Map,this.store=this.manager.store,this.mouseMoveListener=r.throttle((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(np.CursorMove,{uid:this.manager.uid,state:dp.Leave})},this.roomMembers=null==(t=this.manager.room)?void 0:t.state.roomMembers;const i=lv.wrapper;i&&(i.addEventListener("pointerenter",this.mouseMoveListener),i.addEventListener("pointermove",this.mouseMoveListener),i.addEventListener("pointerleave",this.mouseLeaveListener),this.wrapperRect=i.getBoundingClientRect()),sv.on("cursorMove",(e=>{let t=this.cursorInstances.get(e.uid);t||(t=new iv(this.manager,e.uid,this,i),this.cursorInstances.set(e.uid,t)),e.state===dp.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(np.CursorMove,{uid:this.manager.uid,position:{x:r.x,y:r.y,type:e.type}})}}updateContainerRect(){var e,t;this.containerRect=null==(e=lv.container)?void 0:e.getBoundingClientRect(),this.wrapperRect=null==(t=lv.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=lv.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")}}const rv=window.ResizeObserver||o.ResizeObserver,sv=new u.default,av=new u.default,ov=class extends s.InvisiblePlugin{constructor(e){super(e),this.version="0.3.27",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=av,this.viewMode=s.ViewMode.Broadcaster,this.isReplay=s.isPlayer(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,a,o,l,c,u,h=!0,p=!1,f="light";if("room"in e?(r=e.room,t=e.container,i=e.collectorContainer,a=e.containerSizeRatio,o=e.collectorStyles,l=e.debug,null!=e.chessboard&&(h=e.chessboard),c=e.overwriteStyles,u=e.cursor,p=Boolean(null==e?void 0:e.disableCameraTransform),f=e.prefersColorScheme):(r=e,a=null==n?void 0:n.containerSizeRatio,o=null==n?void 0:n.collectorStyles,l=null==n?void 0:n.debug,null!=(null==n?void 0:n.chessboard)&&(h=n.chessboard),c=null==n?void 0:n.overwriteStyles),this.checkVersion(),s.isRoom(r)&&r.phase!==s.RoomPhase.Connected)throw new Error("[WindowManager]: Room only Connected can be mount");if(!t)throw new Error("[WindowManager]: Container must provide");if(ov.isCreated)throw new Error("[WindowManager]: Already created cannot be created again");ov.isCreated=!0;try{let e=await this.initManager(r);if(this.debug=Boolean(l),this.debug&&(m={verbose:!0},Ih=xh(xh({},Ch),m)),Wp("Already insert room",e),s.isRoom(this.displayer)){if(!e)throw new Error("[WindowManager]: init InvisiblePlugin failed")}else await d.default((async t=>{if(e=await this.initManager(r),!e)throw Wp(`manager is empty. retrying ${t}`),new Error}),{retries:10});a&&(ov.containerSizeRatio=a),ov.container=t;const{playground:n,wrapper:v,sizer:w,mainViewElement:b}=(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),lv.wrapper=n,{playground:t,wrapper:n,sizer:i,mainViewElement:r}})(t);if(ov.playground=n,h&&w.classList.add("netless-window-manager-chess-sizer"),c){const e=document.createElement("style");e.textContent=c,n.appendChild(e)}await e.ensureAttributes(),e.appManager=new gg(e,{collectorContainer:i,collectorStyles:o,prefersColorScheme:f}),e.observePlaygroundSize(n,w,v),u&&(e.cursorManager=new nv(e.appManager)),e.bindMainView(b,p),((e,t)=>{if(s.isPlayer(e)){const t=e,i=t.seekToProgressTime;async function n(e){const n=await i.call(t,e);return"success"===n&&sv.emit("seek",e),n}t.seekToProgressTime=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),sv.emit("onCreated");try{await bp()}catch(g){console.warn("[WindowManager]: indexedDB open failed"),console.log(g)}return e}catch(g){throw ov.isCreated=!1,g}var m}static async initManager(e){let t=e.getInvisiblePlugin(ov.kind);if(!t&&s.isRoom(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(ov,{}),t.ensureAttributes(),await Np(500),await e.setWritable(!1)}else t=await e.createInvisiblePlugin(ov,{});return t}static register(e){return Ip.register(e)}async addApp(e){var t,i,n,r;if(this.appManager){if(!e.kind||"string"!=typeof e.kind)throw new Bp;const s=await(null==(t=Ip.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 zp;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);const o=await this.appManager.addApp(e,Boolean(a));return await Np(200),o}throw new Dp}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 Vp;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),sv.emit("setReadonly",e)}switchMainViewToWriter(){var e;return null==(e=this.appManager)?void 0:e.mainViewProxy.mainViewClickHandler()}onAppDestroy(e,t){((e,t)=>{sv.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===s.ViewMode.Broadcaster&&(null==(t=this.appManager)||t.mainViewProxy.setCameraAndSize(),null==(i=this.appManager)||i.mainViewProxy.start()),e===s.ViewMode.Freedom&&(null==(n=this.appManager)||n.mainViewProxy.stop()),this.viewMode=e)}get mainView(){if(this.appManager)return this.appManager.mainViewProxy.view;throw new Dp}get camera(){if(this.appManager)return this.appManager.mainViewProxy.view.camera;throw new Dp}get cameraState(){if(this.appManager)return this.appManager.mainViewProxy.cameraState;throw new Dp}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 Dp}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 Dp}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(),ov.container=void 0,ov.wrapper=void 0,ov.isCreated=!1,ov.playground&&(null==(n=ov.playground.parentNode)||n.removeChild(ov.playground)),Wp("Destroyed")}bindMainView(e,t){var i;this.appManager&&(this.appManager.bindMainView(e,t),null==(i=this.cursorManager)||i.setMainViewDivElement(e))}get canOperate(){return!!s.isRoom(this.displayer)&&(this.displayer.isWritable&&this.displayer.phase===s.RoomPhase.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(kp(s.WhiteVersion)<kp(pp))throw new Lp(pp)}async ensureAttributes(){if(r.isNull(this.attributes)&&await Np(50),r.isObject(this.attributes)){this.attributes[Op.Apps]||this.safeSetAttributes({[Op.Apps]:{}}),this.attributes[Op.Cursors]||this.safeSetAttributes({[Op.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 rv((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(),sv.emit("playgroundSizeChange",a))})),this.containerResizeObserver.observe(e)}updateSizer({width:e,height:t},i,n){e&&t&&(t/e>ov.containerSizeRatio?(t=e*ov.containerSizeRatio,i.classList.toggle("netless-window-manager-sizer-horizontal",!0)):(e=t/ov.containerSizeRatio,i.classList.toggle("netless-window-manager-sizer-horizontal",!1)),n.style.width=`${e}px`,n.style.height=`${t}px`)}};let lv=ov;lv.kind="WindowManager",lv.debug=!1,lv.containerSizeRatio=9/16,lv.isCreated=!1,lv.register({kind:wt.kind,src:wt}),lv.register({kind:ip.kind,src:ip});const cv={DocsViewer:wt.kind,MediaPlayer:ip.kind};e.BuiltinApps=cv,e.WhiteWindowSDK=class{constructor(e){this.sdk=new s.WhiteWebSdk(__spreadProps(__spreadValues({},e),{useMobXState:!0}))}async mount(e){const t=e.joinRoomParams.invisiblePlugins||[],i=await this.sdk.joinRoom(__spreadProps(__spreadValues({},e.joinRoomParams),{useMultiViews:!0,invisiblePlugins:[...t,lv],disableMagixEventDispatchLimit:!0})),n=await lv.mount(__spreadValues({room:i},e.mountParams));return r.isBoolean(e.joinRoomParams.disableCameraTransform)&&(n.mainView.disableCameraTransform=e.joinRoomParams.disableCameraTransform),n}},e.WindowManager=lv,e.callbacks=av,e.emitter=sv,Object.defineProperty(e,"__esModule",{value:!0}),e[Symbol.toStringTag]="Module"}));
|
42
42
|
//# sourceMappingURL=index.umd.js.map
|