@netless/telebox-insider 0.2.5 → 0.2.6
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.
|
@@ -12,5 +12,5 @@ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
|
12
12
|
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
13
13
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
14
14
|
PERFORMANCE OF THIS SOFTWARE.
|
|
15
|
-
***************************************************************************** */function m(t,e){var i={};for(var s in t)Object.prototype.hasOwnProperty.call(t,s)&&e.indexOf(s)<0&&(i[s]=t[s]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(s=Object.getOwnPropertySymbols(t);n<s.length;n++)e.indexOf(s[n])<0&&Object.prototype.propertyIsEnumerable.call(t,s[n])&&(i[s[n]]=t[s[n]])}return i}var v=0,p="undefined"!=typeof window&&void 0!==window.requestAnimationFrame?function(t){return window.requestAnimationFrame(t)}:function(t){var e=Date.now(),i=Math.max(0,16.7-(e-v));v=e+i,setTimeout((function(){return t(v)}),i)},b=1/60*1e3,g=!0,x=!1,y=!1,w={delta:0,timestamp:0},C=["read","update","preRender","render","postRender"],$=function(t){return x=t},z=C.reduce((function(t,e){var i,s,n,r,o,a,l,h,c;return t[e]=(i=$,s=[],n=[],r=0,o=!1,a=0,l=new WeakSet,h=new WeakSet,c={cancel:function(t){var e=n.indexOf(t);l.add(t),-1!==e&&n.splice(e,1)},process:function(t){var e,d;if(o=!0,s=(e=[n,s])[0],(n=e[1]).length=0,r=s.length)for(a=0;a<r;a++)(d=s[a])(t),!0!==h.has(d)||l.has(d)||(c.schedule(d),i(!0));o=!1},schedule:function(t,e,i){void 0===e&&(e=!1),void 0===i&&(i=!1);var a=i&&o,c=a?s:n;l.delete(t),e&&h.add(t),-1===c.indexOf(t)&&(c.push(t),a&&(r=s.length))}}),t}),{}),_=C.reduce((function(t,e){var i=z[e];return t[e]=function(t,e,s){return void 0===e&&(e=!1),void 0===s&&(s=!1),x||R(),i.schedule(t,e,s),t},t}),{}),B=function(t){return z[t].process(w)},E=function(t){x=!1,w.delta=g?b:Math.max(Math.min(t-w.timestamp,40),1),g||(b=w.delta),w.timestamp=t,y=!0,C.forEach(B),y=!1,x&&(g=!1,p(E))},R=function(){x=!0,g=!0,y||p(E)},S=function(){return(S=Object.assign||function(t){for(var e,i=1,s=arguments.length;i<s;i++)for(var n in e=arguments[i])Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t}).apply(this,arguments)},M=function(t,e){return function(i){return Math.max(Math.min(i,e),t)}},N=function(t){return t%1?Number(t.toFixed(5)):t},k=/^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2,3}\s*\/*\s*[\d\.]+%?\))$/i,L={test:function(t){return"number"==typeof t},parse:parseFloat,transform:function(t){return t}},O=S(S({},L),{transform:M(0,1)}),I=S(S({},L),{default:1}),T=function(t){return{test:function(e){return"string"==typeof e&&e.endsWith(t)&&1===e.split(" ").length},parse:parseFloat,transform:function(e){return""+e+t}}},A=T("deg"),H=T("%"),W=T("px"),D=S(S({},H),{parse:function(t){return H.parse(t)/100},transform:function(t){return H.transform(100*t)}}),j=M(0,255),V=function(t){return void 0!==t.red},F=function(t){return void 0!==t.hue};var P=function(t){return function(e){if("string"!=typeof e)return e;for(var i={},s=function(t){return t.substring(t.indexOf("(")+1,t.lastIndexOf(")"))}(e).replace(/(,|\/)/g," ").split(/ \s*/),n=0;n<4;n++)i[t[n]]=void 0!==s[n]?parseFloat(s[n]):1;return i}},Y=S(S({},L),{transform:function(t){return Math.round(j(t))}});function X(t,e){return t.startsWith(e)&&k.test(t)}var Z,q={test:function(t){return"string"==typeof t?X(t,"rgb"):V(t)},parse:P(["red","green","blue","alpha"]),transform:function(t){var e=t.red,i=t.green,s=t.blue,n=t.alpha,r=void 0===n?1:n;return function(t){var e=t.red,i=t.green,s=t.blue,n=t.alpha;return"rgba("+e+", "+i+", "+s+", "+(void 0===n?1:n)+")"}({red:Y.transform(e),green:Y.transform(i),blue:Y.transform(s),alpha:N(O.transform(r))})}},U={test:function(t){return"string"==typeof t?X(t,"hsl"):F(t)},parse:P(["hue","saturation","lightness","alpha"]),transform:function(t){var e=t.hue,i=t.saturation,s=t.lightness,n=t.alpha,r=void 0===n?1:n;return function(t){var e=t.hue,i=t.saturation,s=t.lightness,n=t.alpha;return"hsla("+e+", "+i+", "+s+", "+(void 0===n?1:n)+")"}({hue:Math.round(e),saturation:H.transform(N(i)),lightness:H.transform(N(s)),alpha:N(O.transform(r))})}},G=S(S({},q),{test:function(t){return"string"==typeof t&&X(t,"#")},parse:function(t){var e="",i="",s="";return t.length>4?(e=t.substr(1,2),i=t.substr(3,2),s=t.substr(5,2)):(e=t.substr(1,1),i=t.substr(2,1),s=t.substr(3,1),e+=e,i+=i,s+=s),{red:parseInt(e,16),green:parseInt(i,16),blue:parseInt(s,16),alpha:1}}}),J={test:function(t){return"string"==typeof t&&k.test(t)||V(t)||F(t)},parse:function(t){return q.test(t)?q.parse(t):U.test(t)?U.parse(t):G.test(t)?G.parse(t):t},transform:function(t){return V(t)?q.transform(t):F(t)?U.transform(t):t}},Q=function(t){var e=t.onRead,i=t.onRender,s=t.uncachedValues,n=void 0===s?new Set:s,r=t.useCache,o=void 0===r||r;return function(t){void 0===t&&(t={});var s=m(t,[]),r={},a=[],l=!1;function h(t,e){t.startsWith("--")&&(s.hasCSSVariable=!0);var i=r[t];r[t]=e,r[t]!==i&&(-1===a.indexOf(t)&&a.push(t),l||(l=!0,_.render(c.render)))}var c={get:function(t,i){return void 0===i&&(i=!1),!i&&o&&!n.has(t)&&void 0!==r[t]?r[t]:e(t,s)},set:function(t,e){if("string"==typeof t)h(t,e);else for(var i in t)h(i,t[i]);return this},render:function(t){return void 0===t&&(t=!1),(l||!0===t)&&(i(r,s,a),l=!1,a.length=0),this}};return c}},K=/([a-z])([A-Z])/g,tt=function(t){return t.replace(K,"$1-$2").toLowerCase()},et=new Map,it=new Map,st=["Webkit","Moz","O","ms",""],nt=st.length,rt="undefined"!=typeof document,ot=function(t,e){return it.set(t,tt(e))},at=function(t,e){void 0===e&&(e=!1);var i=e?it:et;return i.has(t)||(rt?function(t){Z=Z||document.createElement("div");for(var e=0;e<nt;e++){var i=st[e],s=""===i,n=s?t:i+t.charAt(0).toUpperCase()+t.slice(1);if(n in Z.style||s){if(s&&"clipPath"===t&&it.has(t))return;et.set(t,n),ot(t,(s?"":"-")+tt(n))}}}(t):function(t){ot(t,t)}(t)),i.get(t)||t},lt=["","X","Y","Z"],ht=["translate","scale","rotate","skew","transformPerspective"].reduce((function(t,e){return lt.reduce((function(t,i){return t.push(e+i),t}),t)}),["x","y","z"]),ct=ht.reduce((function(t,e){return t[e]=!0,t}),{});function dt(t){return!0===ct[t]}function ut(t,e){return ht.indexOf(t)-ht.indexOf(e)}var ft=new Set(["originX","originY","originZ"]);function mt(t){return ft.has(t)}var vt=f(f({},L),{transform:Math.round}),pt={color:J,backgroundColor:J,outlineColor:J,fill:J,stroke:J,borderColor:J,borderTopColor:J,borderRightColor:J,borderBottomColor:J,borderLeftColor:J,borderWidth:W,borderTopWidth:W,borderRightWidth:W,borderBottomWidth:W,borderLeftWidth:W,borderRadius:W,radius:W,borderTopLeftRadius:W,borderTopRightRadius:W,borderBottomRightRadius:W,borderBottomLeftRadius:W,width:W,maxWidth:W,height:W,maxHeight:W,size:W,top:W,right:W,bottom:W,left:W,padding:W,paddingTop:W,paddingRight:W,paddingBottom:W,paddingLeft:W,margin:W,marginTop:W,marginRight:W,marginBottom:W,marginLeft:W,rotate:A,rotateX:A,rotateY:A,rotateZ:A,scale:I,scaleX:I,scaleY:I,scaleZ:I,skew:A,skewX:A,skewY:A,distance:W,translateX:W,translateY:W,translateZ:W,x:W,y:W,z:W,perspective:W,opacity:O,originX:D,originY:D,originZ:W,zIndex:vt,fillOpacity:O,strokeOpacity:O,numOctaves:vt},bt=function(t){return pt[t]},gt=function(t,e){return e&&"number"==typeof t?e.transform(t):t},xt=new Set(["scrollLeft","scrollTop"]),yt=new Set(["scrollLeft","scrollTop","transform"]),wt={x:"translateX",y:"translateY",z:"translateZ"};function Ct(t){return"function"==typeof t}function $t(t,e,i,s,n,r,o,a){void 0===e&&(e=!0),void 0===i&&(i={}),void 0===s&&(s={}),void 0===n&&(n={}),void 0===r&&(r=[]),void 0===o&&(o=!1),void 0===a&&(a=!0);var l=!0,h=!1,c=!1;for(var d in t){var u=t[d],f=bt(d),m=gt(u,f);dt(d)?(h=!0,s[d]=m,r.push(d),l&&(f.default&&u!==f.default||!f.default&&0!==u)&&(l=!1)):mt(d)?(n[d]=m,c=!0):yt.has(d)&&Ct(m)||(i[at(d,o)]=m)}return(h||"function"==typeof t.transform)&&(i.transform=function(t,e,i,s,n,r){void 0===r&&(r=!0);var o="",a=!1;i.sort(ut);for(var l=i.length,h=0;h<l;h++){var c=i[h];o+=(wt[c]||c)+"("+e[c]+") ",a="z"===c||a}return!a&&n?o+="translateZ(0)":o=o.trim(),Ct(t.transform)?o=t.transform(e,s?"":o):r&&s&&(o="none"),o}(t,s,r,l,e,a)),c&&(i.transformOrigin=(n.originX||"50%")+" "+(n.originY||"50%")+" "+(n.originZ||0)),i}function zt(t){var e=void 0===t?{}:t,i=e.enableHardwareAcceleration,s=void 0===i||i,n=e.isDashCase,r=void 0===n||n,o=e.allowTransformNone,a=void 0===o||o,l={},h={},c={},d=[];return function(t){return d.length=0,$t(t,s,l,h,c,d,r,a),l}}var _t=Q({onRead:function(t,e){var i=e.element,s=e.preparseOutput,n=bt(t);if(dt(t))return n&&n.default||0;if(xt.has(t))return i[t];var r=window.getComputedStyle(i,null).getPropertyValue(at(t,!0))||0;return s&&n&&n.test(r)&&n.parse?n.parse(r):r},onRender:function(t,e,i){var s=e.element,n=e.buildStyles,r=e.hasCSSVariable;if(Object.assign(s.style,n(t)),r)for(var o=i.length,a=0;a<o;a++){var l=i[a];l.startsWith("--")&&s.style.setProperty(l,t[l])}-1!==i.indexOf("scrollLeft")&&(s.scrollLeft=t.scrollLeft),-1!==i.indexOf("scrollTop")&&(s.scrollTop=t.scrollTop)},uncachedValues:xt});var Bt=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues"]),Et=function(t,e){return W.transform(t*e)},Rt={x:0,y:0,width:0,height:0};function St(t,e,i){return"string"==typeof t?t:W.transform(e+i*t)}var Mt={enableHardwareAcceleration:!1,isDashCase:!1};function Nt(t,e,i,s,n,r){void 0===e&&(e=Rt),void 0===s&&(s=zt(Mt)),void 0===n&&(n={style:{}}),void 0===r&&(r=!0);var o=t.attrX,a=t.attrY,l=t.originX,h=t.originY,c=t.pathLength,d=t.pathSpacing,u=void 0===d?1:d,f=t.pathOffset,v=void 0===f?0:f,p=s(m(t,["attrX","attrY","originX","originY","pathLength","pathSpacing","pathOffset"]));for(var b in p){if("transform"===b)n.style.transform=p[b];else n[r&&!Bt.has(b)?tt(b):b]=p[b]}return(void 0!==l||void 0!==h||p.transform)&&(n.style.transformOrigin=function(t,e,i){return St(e,t.x,t.width)+" "+St(i,t.y,t.height)}(e,void 0!==l?l:.5,void 0!==h?h:.5)),void 0!==o&&(n.x=o),void 0!==a&&(n.y=a),void 0!==i&&void 0!==c&&(n[r?"stroke-dashoffset":"strokeDashoffset"]=Et(-v,i),n[r?"stroke-dasharray":"strokeDasharray"]=Et(c,i)+" "+Et(u,i)),n}function kt(t,e,i){void 0===i&&(i=!0);var s={style:{}},n=zt(Mt);return function(r){return Nt(r,t,e,n,s,i)}}var Lt=Q({onRead:function(t,e){var i=e.element;if(dt(t=Bt.has(t)?t:tt(t))){var s=bt(t);return s&&s.default||0}return i.getAttribute(t)},onRender:function(t,e){var i=e.element,s=(0,e.buildAttrs)(t);for(var n in s)"style"===n?Object.assign(i.style,s.style):i.setAttribute(n,s[n])}}),Ot=Q({useCache:!1,onRead:function(t){return"scrollTop"===t?window.pageYOffset:window.pageXOffset},onRender:function(t){var e=t.scrollTop,i=void 0===e?0:e,s=t.scrollLeft,n=void 0===s?0:s;return window.scrollTo(n,i)}}),It=new WeakMap,Tt=function(t,e){var i,s,n,r;return t===window?i=Ot(t):!function(t){return t instanceof HTMLElement||"function"==typeof t.click}(t)?function(t){return t instanceof SVGElement||"ownerSVGElement"in t}(t)&&(n=function(t){try{return function(t){return"function"==typeof t.getBBox?t.getBBox():t.getBoundingClientRect()}(t)}catch(e){return{x:0,y:0,width:0,height:0}}}(s=t),r=function(t){return"path"===t.tagName}(s)&&s.getTotalLength?s.getTotalLength():void 0,i=Lt({element:s,buildAttrs:kt(n,r)})):i=function(t,e){void 0===e&&(e={});var i=e.enableHardwareAcceleration,s=e.allowTransformNone,n=m(e,["enableHardwareAcceleration","allowTransformNone"]);return _t(f({element:t,buildStyles:zt({enableHardwareAcceleration:i,allowTransformNone:s}),preparseOutput:!0},n))}(t,e),It.set(t,i),i};function At(t,e){return function(t,e){return It.has(t)?It.get(t):Tt(t,e)}("string"==typeof t?document.querySelector(t):t,e)}var Ht=function(t,e,i,s){var n=i?i.call(s,t,e):void 0;if(void 0!==n)return!!n;if(t===e)return!0;if("object"!=typeof t||!t||"object"!=typeof e||!e)return!1;var r=Object.keys(t),o=Object.keys(e);if(r.length!==o.length)return!1;for(var a=Object.prototype.hasOwnProperty.bind(e),l=0;l<r.length;l++){var h=r[l];if(!a(h))return!1;var c=t[h],d=e[h];if(!1===(n=i?i.call(s,c,d,h):void 0)||void 0===n&&c!==d)return!1}return!0};const Wt="!#%()*+,-./:;=?@[]^_`{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",Dt=Wt.length,jt=Array(20),Vt=()=>{for(let t=0;t<20;t++)jt[t]=Wt.charAt(Math.random()*Dt);return jt.join("")};class Ft{constructor(){this.disposers=new Map}add(t,e=Vt()){return this.flush(e),this.disposers.set(e,t()),e}addDisposer(t,e=Vt()){return this.flush(e),this.disposers.set(e,t),e}addEventListener(t,e,i,s,n=Vt()){return this.add((()=>(t.addEventListener(e,i,s),()=>t.removeEventListener(e,i,s))),n),n}setTimeout(t,e,i=Vt()){return this.add((()=>{const s=window.setTimeout((()=>{this.remove(i),t()}),e);return()=>window.clearTimeout(s)}),i)}setInterval(t,e,i=Vt()){return this.add((()=>{const i=window.setInterval(t,e);return()=>window.clearInterval(i)}),i)}remove(t){const e=this.disposers.get(t);return this.disposers.delete(t),e}flush(t){const e=this.remove(t);if(e)try{e()}catch(i){console.error(i)}}flushAll(){this.disposers.forEach((t=>{try{t()}catch(e){console.error(e)}})),this.disposers.clear()}}var Pt=Object.defineProperty,Yt=("undefined"!=typeof require&&require,(t,e,i)=>{return r=i,(n="symbol"!=typeof e?e+"":e)in(s=t)?Pt(s,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):s[n]=r,i;var s,n,r});class Xt{constructor(t,e){Yt(this,"_value"),Yt(this,"_beforeDestroys"),Yt(this,"_subscribers"),this._value=t,e&&(this.compare=e)}get value(){return this._value}setValue(t,e){if(!this.compare(t,this._value)){const i=this._value;this._value=t,this._subscribers&&this._subscribers.forEach((s=>s(t,i,e)))}}reaction(t){return this._subscribers||(this._subscribers=new Set),this._subscribers.add(t),()=>{this._subscribers&&this._subscribers.delete(t)}}subscribe(t,e){const i=this.reaction(t);return t(this._value,void 0,e),i}derive(t,e,i){const s=new Xt(t(this.value,void 0,i),e),n=this.reaction(((e,i,n)=>{s.setValue(t(e,i,n))}));return s.addBeforeDestroy(n),s}destroy(){this._beforeDestroys&&(this._beforeDestroys.forEach((t=>t())),this._beforeDestroys.clear()),this._subscribers&&this._subscribers.clear()}addBeforeDestroy(t){return this._beforeDestroys||(this._beforeDestroys=new Set),this._beforeDestroys.add(t),()=>{this._beforeDestroys&&this._beforeDestroys.delete(t)}}compare(t,e){return t===e}}function Zt(t,e){Object.keys(e).forEach((i=>{!function(t,e,i){var s;Object.defineProperties(t,{[e]:{get:()=>i.value},[`_${e}$`]:{value:i},[`set${s=e,s[0].toUpperCase()+s.slice(1)}`]:{value:(t,e)=>i.setValue(t,e)}})}(t,i,e[i])}))}function qt(t){const e=e=>{const i=t.addDisposer((()=>{e.destroy()}));return e.addBeforeDestroy((()=>{t.remove(i)})),e};return{bindSideEffect:e,combine:(t,i,s,n)=>e(function(t,e,i,s){let n=t.map((t=>t.value));const r=new Xt(e(n,void 0,s),i);return t.forEach(((t,i)=>{const s=t.reaction(((t,s)=>{const o=n.slice();o[i]=t;const a=n;n=o,r.setValue(e(o,a,s),s)}));r.addBeforeDestroy(s)})),r}(t,i,s,n)),createVal:(t,i)=>e(new Xt(t,i))}}var Ut,Gt,Jt,Qt,Kt,te,ee,ie;(Gt=Ut||(Ut={})).Normal="normal",Gt.Minimized="minimized",Gt.Maximized="maximized",(Qt=Jt||(Jt={})).Close="close",Qt.Focus="focus",Qt.Blur="blur",Qt.Move="move",Qt.Resize="resize",Qt.IntrinsicMove="intrinsic_move",Qt.IntrinsicResize="intrinsic_resize",Qt.VisualResize="visual_resize",Qt.State="state",Qt.Minimized="minimized",Qt.Maximized="maximized",Qt.Readonly="readonly",Qt.Destroyed="destroyed",(te=Kt||(Kt={})).Close="close",te.Maximize="maximize",te.Minimize="minimize",(ie=ee||(ee={})).North="n",ie.South="s",ie.West="w",ie.East="e",ie.NorthWest="nw",ie.NorthEast="ne",ie.SouthEast="se",ie.SouthWest="sw";const se="dh";function ne(t,e,i){return Math.min(Math.max(t,e),i)}function re(t){t.stopPropagation(),t.cancelable&&t.preventDefault()}function oe(t){return t.touches?t.touches[0]:t}function ae(){return Date.now().toString().slice(6)+Math.random().toString().slice(2,8)}let le=1;function he(){return"New Box "+le++}function ce(t){return Boolean(t)}function de(t){return!t}class ue{constructor({readonly:t=!1,title:e,buttons:i,onEvent:s,onDragStart:n,namespace:r="telebox",state:o=Ut.Normal}={}){this.$btns=[],this.sideEffect=new Ft,this.lastTitleBarClick=0,this.handleTitleBarClick=t=>{var e;if(this.readonly)return;if(null!=t.button&&0!==t.button)return;if(null==(e=t.target.dataset)?void 0:e.teleTitleBarNoDblClick)return;re(t);const i=Date.now();i-this.lastTitleBarClick<=500?this.onEvent&&this.onEvent({type:Kt.Maximize}):this.onDragStart&&this.onDragStart(t),this.lastTitleBarClick=i},this.readonly=t,this.onEvent=s,this.onDragStart=n,this.namespace=r,this.title=e,this.state=o,this.buttons=i||[{type:Kt.Minimize,iconClassName:this.wrapClassName("titlebar-icon-minimize")},{type:Kt.Maximize,iconClassName:this.wrapClassName("titlebar-icon-maximize"),isActive:t=>t===Ut.Maximized},{type:Kt.Close,iconClassName:this.wrapClassName("titlebar-icon-close")}]}setTitle(t){this.title=t,this.$title&&(this.$title.textContent=t,this.$title.title=t)}setState(t){this.state!==t&&(this.state=t,this.buttons.forEach(((e,i)=>{e.isActive&&this.$btns[i].classList.toggle("is-active",e.isActive(t))})))}setReadonly(t){this.readonly!==t&&(this.readonly=t)}render(){if(!this.$titleBar){this.$titleBar=document.createElement("div"),this.$titleBar.className=this.wrapClassName("titlebar"),this.$titleBar.dataset.teleBoxHandle="dh",this.sideEffect.addEventListener(this.$titleBar,"mousedown",this.handleTitleBarClick),this.sideEffect.addEventListener(this.$titleBar,"touchstart",this.handleTitleBarClick,{passive:!0}),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);const t=document.createElement("div");t.className=this.wrapClassName("titlebar-btns"),this.buttons.forEach((({iconClassName:e,isActive:i},s)=>{const n=String(s),r=document.createElement("button");r.className=`${this.wrapClassName("titlebar-btn")} ${e}`,r.dataset.teleTitleBarBtnIndex=n,r.dataset.teleTitleBarNoDblClick="true",i&&r.classList.toggle("is-active",i(this.state)),this.$btns.push(r),t.appendChild(r)})),this.sideEffect.addEventListener(t,"click",(t=>{var e;if(this.readonly)return;const i=t.target,s=Number(null==(e=i.dataset)?void 0:e.teleTitleBarBtnIndex);if(!Number.isNaN(s)&&s<this.buttons.length){re(t);const e=this.buttons[s];this.onEvent&&this.onEvent({type:e.type,value:e.value})}})),this.$titleBar.appendChild(this.$title),this.$titleBar.appendChild(t)}return this.$titleBar}dragHandle(){return this.$titleBar}wrapClassName(t){return`${this.namespace}-${t}`}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 fe{constructor({id:t=ae(),title:e=he(),visible:i=!0,width:s=.5,height:n=.5,minWidth:r=0,minHeight:o=0,x:a=.1,y:l=.1,minimized:h=!1,maximized:c=!1,readonly:d=!1,resizable:f=!0,draggable:m=!0,fence:v=!0,fixRatio:p=!1,focus:b=!1,zIndex:g=100,namespace:x="telebox",titleBar:y,content:w,footer:C,styles:$,containerRect:z={x:0,y:0,width:window.innerWidth,height:window.innerHeight},collectorRect:_}={}){this._renderSideEffect=new Ft,this.handleTrackStart=t=>{var e;return null==(e=this._handleTrackStart)?void 0:e.call(this,t)},this._sideEffect=new Ft,this._valSideEffectBinder=qt(this._sideEffect);const{combine:B,createVal:E}=this._valSideEffectBinder;this.id=t,this.namespace=x,this.events=new u,this._delegateEvents=new u;const R=E(z,Ht),S=E(_,Ht),M=E(e),N=E(i);N.reaction(((t,e,i)=>{i||t||this.events.emit(Jt.Close)}));const k=E(d);k.reaction(((t,e,i)=>{i||this.events.emit(Jt.Readonly,t)}));const L=E(f),O=E(m),I=E(v),T=E(p),A=E(g),H=E(b);H.reaction(((t,e,i)=>{i||this.events.emit(t?Jt.Focus:Jt.Blur)}));const W=E(h);W.reaction(((t,e,i)=>{i||this.events.emit(Jt.Minimized,t)}));const D=E(c);D.reaction(((t,e,i)=>{i||this.events.emit(Jt.Maximized,t)}));const j=B([W,D],(([t,e])=>t?Ut.Minimized:e?Ut.Maximized:Ut.Normal));j.reaction(((t,e,i)=>{i||this.events.emit(Jt.State,t)}));const V=E({width:ne(r,0,1),height:ne(o,0,1)},Ht),F=E({width:ne(s,V.value.width,1),height:ne(n,V.value.height,1)},Ht);V.reaction(((t,e,i)=>{F.setValue({width:ne(s,t.width,1),height:ne(n,t.height,1)},i)})),F.reaction(((t,e,i)=>{i||this.events.emit(Jt.IntrinsicResize,t)}));const P=B([F,D],(([t,e])=>e?{width:1,height:1}:t),Ht);P.reaction(((t,e,i)=>{i||this.events.emit(Jt.Resize,t)}));const Y=B([P,W,R,S],(([t,e,i,s])=>e&&s?{width:s.width/t.width/i.width,height:s.height/t.height/i.height}:t),Ht);Y.reaction(((t,e,i)=>{i||this.events.emit(Jt.VisualResize,t)}));const X=E({x:ne(a,0,1),y:ne(l,0,1)},Ht);X.reaction(((t,e,i)=>{i||this.events.emit(Jt.IntrinsicMove,t)}));const Z=B([X,F,R,S,W,D],(([t,e,i,s,n,r])=>n&&s?r?{x:(s.x+s.width/2)/i.width-.5,y:(s.y+s.height/2)/i.height-.5}:{x:(s.x+s.width/2)/i.width-e.width/2,y:(s.y+s.height/2)/i.height-e.height/2}:r?{x:0,y:0}:t),Ht);Z.reaction(((t,e,i)=>{i||this.events.emit(Jt.Move,t)})),this.titleBar=y||new ue({readonly:k.value,title:M.value,namespace:this.namespace,onDragStart:t=>{var e;return null==(e=this._handleTrackStart)?void 0:e.call(this,t)},onEvent:t=>{if(this._delegateEvents.listeners.length>0)this._delegateEvents.emit(t.type);else switch(t.type){case Kt.Maximize:D.setValue(!D.value);break;case Kt.Minimize:W.setValue(!0);break;case Kt.Close:N.setValue(!1);break;default:console.error("Unsupported titleBar event:",t)}}}),k.reaction((t=>{this.titleBar.setReadonly(t)}));const q=E(w),U=E(C),G=E($);Zt(this,{containerRect:R,collectorRect:S,title:M,visible:N,readonly:k,resizable:L,draggable:O,fence:I,fixRatio:T,focus:H,zIndex:A,minimized:W,maximized:D,$userContent:q,$userFooter:U,$userStyles:G}),this._state$=j,this._minSize$=V,this._size$=P,this._intrinsicSize$=F,this._visualSize$=Y,this._coord$=Z,this._intrinsicCoord$=X,this.fixRatio&&this.transform(Z.value.x,Z.value.y,P.value.width,P.value.height,!0),this.$box=this.render()}get state(){return this._state$.value}setState(t,e=!1){switch(t){case Ut.Maximized:this.setMinimized(!1,e),this.setMaximized(!0,e);break;case Ut.Minimized:this.setMinimized(!0,e),this.setMaximized(!1,e);break;default:this.setMinimized(!1,e),this.setMaximized(!1,e)}return this}get minWidth(){return this._minSize$.value.width}get minHeight(){return this._minSize$.value.height}setMinWidth(t,e=!1){return this._minSize$.setValue({width:t,height:this.minHeight},e),this}setMinHeight(t,e=!1){return this._minSize$.setValue({width:this.minWidth,height:t},e),this}get intrinsicWidth(){return this._intrinsicSize$.value.width}get intrinsicHeight(){return this._intrinsicSize$.value.height}resize(t,e,i=!1){return this._intrinsicSize$.setValue({width:t,height:e},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(t,e,i=!1){return this._intrinsicCoord$.setValue({x:t,y:e},i),this}get x(){return this._coord$.value.x}get y(){return this._coord$.value.y}transform(t,e,i,s,n=!1){if(this.fixRatio){const t=this.intrinsicHeight/this.intrinsicWidth*i;e!==this.intrinsicY&&(e-=t-s),s=t}return e<0&&(e=0,s>this.intrinsicHeight&&(s=this.intrinsicHeight)),this._intrinsicCoord$.setValue({x:i>=this.minWidth?t:this.intrinsicX,y:s>=this.minHeight?e:this.intrinsicY},n),this._intrinsicSize$.setValue({width:ne(i,this.minWidth,1),height:ne(s,this.minHeight,1)},n),this}mount(t){return t.appendChild(this.render()),this}unmount(){return this.$box&&this.$box.remove(),this}mountContent(t){return this.set$userContent(t),this}unmountContent(){return this.set$userContent(void 0),this}mountFooter(t){return this.set$userFooter(t),this}unmountFooter(){return this.set$userFooter(void 0),this}getUserStyles(){return this.$userStyles}mountStyles(t){let e;return"string"==typeof t?(e=document.createElement("style"),e.textContent=t):e=t,this.set$userStyles(e),this}unmountStyles(){return this.set$userStyles(void 0),this}render(t){if(t){if(t===this.$box)return this.$box;this.$box=t}else{if(this.$box)return this.$box;this.$box=document.createElement("div")}this._renderSideEffect.flushAll(),this.$box.classList.add(this.wrapClassName("box"));const e=(t,e,i,s=ce)=>this._renderSideEffect.add((()=>{const n=this.wrapClassName(i);return e.subscribe((e=>{t.classList.toggle(n,s(e))}))}));e(this.$box,this._readonly$,"readonly"),e(this.$box,this._draggable$,"no-drag",de),e(this.$box,this._resizable$,"no-resize",de),e(this.$box,this._focus$,"blur",de),this._renderSideEffect.add((()=>{const t=this.wrapClassName("minimized"),e=this.wrapClassName("maximized"),i="box-maximized-timer";return this._state$.subscribe((s=>{this.$box.classList.toggle(t,s===Ut.Minimized),s===Ut.Maximized?(this._renderSideEffect.flush(i),this.$box.classList.toggle(e,!0)):this._renderSideEffect.setTimeout((()=>{this.$box.classList.toggle(e,!1)}),0,i)}))})),this._renderSideEffect.add((()=>this._visible$.subscribe((t=>{this.$box.style.display=t?"block":"none"})))),this._renderSideEffect.add((()=>this._zIndex$.subscribe((t=>{this.$box.style.zIndex=String(t)}))));const i=At(this.$box);this.$box.dataset.teleBoxID=this.id,this.$box.style.width=this.absoluteWidth+"px",this.$box.style.height=this.absoluteHeight+"px";const s=this.x*this.containerRect.width+this.containerRect.x,n=this.y*this.containerRect.height+this.containerRect.y;this.$box.style.transform=`translate(${s-10}px,${n-10}px)`,this._valSideEffectBinder.combine([this._coord$,this._size$,this._minimized$,this._containerRect$,this._collectorRect$],(([t,e,i,s,n])=>{const r=e.width*s.width,o=e.height*s.height;return{width:r,height:o,x:t.x*s.width,y:t.y*s.height,scaleX:i&&n?n.width/r:1,scaleY:i&&n?n.height/o:1}}),Ht).subscribe((t=>{i.set(t)})),i.set({x:s,y:n});const r=document.createElement("div");r.className=this.wrapClassName("box-main"),this.$box.appendChild(r);const o=document.createElement("div");o.className=this.wrapClassName("titlebar-wrap"),o.appendChild(this.titleBar.render()),this.$titleBar=o;const a=document.createElement("div");a.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 t;return this._$userStyles$.subscribe((e=>{t&&t.remove(),t=e,e&&l.appendChild(e)}))})),this._renderSideEffect.add((()=>{let t;return this._$userContent$.subscribe((e=>{t&&t.remove(),t=e,e&&l.appendChild(e)}))})),a.appendChild(l);const h=document.createElement("div");return h.className=this.wrapClassName("footer-wrap"),this.$footer=h,this._renderSideEffect.add((()=>{let t;return this._$userFooter$.subscribe((e=>{t&&t.remove(),t=e,e&&h.appendChild(e)}))})),r.appendChild(o),r.appendChild(a),r.appendChild(h),this._renderResizeHandlers(),this.$box}_renderResizeHandlers(){const t=document.createElement("div");t.className=this.wrapClassName("resize-handles"),Object.values(ee).forEach((e=>{const i=document.createElement("div");i.className=this.wrapClassName(e)+" "+this.wrapClassName("resize-handle"),i.dataset.teleBoxHandle=e,t.appendChild(i)})),this.$box.appendChild(t);const e="handle-tracking-listener",i=this.wrapClassName("transforming");let s,n,r=0,o=0,a=0,l=0,h=0,c=0;const d=t=>{if(this.state!==Ut.Normal)return;re(t);let{pageX:e,pageY:i}=oe(t);i<0&&(i=0);const s=(e-h)/this.containerRect.width,d=(i-c)/this.containerRect.height;switch(n){case ee.North:this.transform(this.x,o+d,this.width,l-d);break;case ee.South:this.transform(this.x,this.y,this.width,l+d);break;case ee.West:this.transform(r+s,this.y,a-s,this.height);break;case ee.East:this.transform(this.x,this.y,a+s,this.height);break;case ee.NorthWest:this.transform(r+s,o+d,a-s,l-d);break;case ee.NorthEast:this.transform(this.x,o+d,a+s,l-d);break;case ee.SouthEast:this.transform(this.x,this.y,a+s,l+d);break;case ee.SouthWest:this.transform(r+s,this.y,a-s,l+d);break;default:if(this.fence)this.move(ne(r+s,0,1-this.width),ne(o+d,0,1-this.height));else{const t=20/this.containerRect.width,e=20/this.containerRect.height;this.move(ne(r+s,t-this.width,1-t),ne(o+d,0,1-e))}}},u=t=>{n=void 0,s&&(re(t),this.$box.classList.toggle(i,!1),this._sideEffect.flush(e),s.remove())},f=t=>{var f;if(this.readonly)return;if(null!=t.button&&0!==t.button)return;if(!this.draggable||n||this.state!==Ut.Normal)return;const m=t.target;if(null==(f=m.dataset)?void 0:f.teleBoxHandle){re(t),r=this.x,o=this.y,a=this.width,l=this.height,({pageX:h,pageY:c}=oe(t)),n=m.dataset.teleBoxHandle,s||(s=document.createElement("div"));const f=n?this.wrapClassName(`cursor-${n}`):"";s.className=this.wrapClassName("track-mask"+(f?` ${f}`:"")),this.$box.appendChild(s),this.$box.classList.add(i),this._sideEffect.add((()=>(window.addEventListener("mousemove",d),window.addEventListener("touchmove",d,{passive:!1}),window.addEventListener("mouseup",u),window.addEventListener("touchend",u,{passive:!1}),window.addEventListener("touchcancel",u,{passive:!1}),()=>{window.removeEventListener("mousemove",d),window.removeEventListener("touchmove",d),window.removeEventListener("mouseup",u),window.removeEventListener("touchend",u),window.removeEventListener("touchcancel",u)})),e)}};this._handleTrackStart=f,this._sideEffect.addEventListener(t,"mousedown",f,{},"box-resizeHandles-mousedown"),this._sideEffect.addEventListener(t,"touchstart",f,{passive:!1},"box-resizeHandles-touchstart")}destroy(){this.$box.remove(),this.events.emit(Jt.Destroyed),this._sideEffect.flushAll(),this._renderSideEffect.flushAll(),this.events.removeAllListeners(),this._delegateEvents.removeAllListeners()}wrapClassName(t){return`${this.namespace}-${t}`}}const me=(t,e)=>{const i=l(!0);h((()=>{if(!i.current)return t();i.current=!1}),e)},ve=t=>{const[e]=c((()=>new fe(t)));return me((()=>{null!=t.minWidth&&e.setMinWidth(t.minWidth)}),[e,t.minWidth]),me((()=>{null!=t.minHeight&&e.setMinHeight(t.minHeight)}),[e,t.minHeight]),me((()=>{var i,s;e.resize(null!=(i=t.width)?i:e.width,null!=(s=t.height)?s:e.height,!0)}),[e,t.width,t.height]),me((()=>{var i,s;e.move(null!=(i=t.x)?i:e.x,null!=(s=t.y)?s:e.y,!0)}),[e,t.x,t.y]),me((()=>{null!=t.title&&e.setTitle(t.title)}),[e,t.title]),me((()=>{null!=t.visible&&e.setVisible(t.visible)}),[e,t.visible]),me((()=>{null!=t.state&&e.setState(t.state,!0)}),[e,t.state]),me((()=>{null!=t.draggable&&e.setDraggable(t.draggable)}),[e,t.draggable]),me((()=>{null!=t.resizable&&e.setResizable(t.resizable)}),[e,t.resizable]),me((()=>{null!=t.fence&&e.setFence(t.fence)}),[e,t.fence]),me((()=>{null!=t.containerRect&&e.setContainerRect(t.containerRect)}),[e,t.containerRect]),me((()=>{null!=t.fixRatio&&e.setFixRatio(t.fixRatio)}),[e,t.fixRatio]),h((()=>{if(t.onResize)return e.events.on(Jt.Resize,t.onResize),()=>{e.events.off(Jt.Resize,t.onResize)}}),[e,t.onResize]),h((()=>{if(t.onMove)return e.events.on(Jt.Move,t.onMove),()=>{e.events.off(Jt.Move,t.onMove)}}),[e,t.onMove]),h((()=>{if(t.onClose)return e.events.on(Jt.Close,t.onClose),()=>{e.events.off(Jt.Close,t.onClose)}}),[e,t.onClose]),h((()=>{if(t.onFocus)return e.events.on(Jt.Focus,t.onFocus),()=>{e.events.off(Jt.Focus,t.onFocus)}}),[e,t.onFocus]),h((()=>{if(t.onBlur)return e.events.on(Jt.Blur,t.onBlur),()=>{e.events.off(Jt.Blur,t.onBlur)}}),[e,t.onBlur]),h((()=>{if(t.onStateChanged)return e.events.on(Jt.State,t.onStateChanged),()=>{e.events.off(Jt.State,t.onStateChanged)}}),[e,t.onStateChanged]),a.createElement("div",{ref:t=>t&&e.render(t),className:e.wrapClassName("box")})};var pe,be;class ge{constructor({visible:t=!0,readonly:e=!1,namespace:i="telebox",styles:s={},onClick:n}={}){this.handleCollectorClick=()=>{!this._readonly&&this.onClick&&this.onClick()},this._visible=Boolean(t),this._readonly=Boolean(e),this.namespace=i,this.styles=s,this.onClick=n}get visible(){return this._visible}get readonly(){return this._readonly}mount(t){return t.appendChild(this.render()),this}unmount(){return this.$collector&&this.$collector.remove(),this}setVisible(t){return this._visible!==t&&(this._visible=t,this.$collector&&this.$collector.classList.toggle(this.wrapClassName("collector-visible"),t)),this}setReadonly(t){return this._readonly!==t&&(this._readonly=t,this.$collector&&this.$collector.classList.toggle(this.wrapClassName("collector-readonly"),t)),this}setStyles(t){if(Object.assign(this.styles,t),this.$collector){const e=this.$collector;Object.keys(t).forEach((i=>{const s=t[i];null!=s&&(e.style[i]=s)}))}return this}render(){if(!this.$collector){this.$collector=document.createElement("button"),this.$collector.className=this.wrapClassName("collector"),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"));const t=document.createElement("img");t.draggable=!1,t.className=this.wrapClassName("collector-icon"),t.src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxNiI+CiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxwYXRoIHN0cm9rZT0iIzdCODhBMCIgc3Ryb2tlLXdpZHRoPSIxLjQiIGQ9Ik0uNyAxLjJoMTYuNnYxMy42SC43eiIgLz4KICAgICAgICA8cGF0aCBmaWxsPSIjN0I4OEEwIiBkPSJNNCA1LjVoNnYxLjRINHpNNCA5LjVoMTB2MS40SDR6IiAvPgogICAgPC9nPgo8L3N2Zz4K",this.$collector.appendChild(t),this.setStyles(this.styles)}return this.$collector}destroy(){this.$collector&&(this.$collector.removeEventListener("click",this.handleCollectorClick),this.$collector.remove(),this.$collector=void 0),this.onClick=void 0}wrapClassName(t){return`${this.namespace}-${t}`}}(be=pe||(pe={})).Focused="focused",be.Created="created",be.Removed="removed",be.State="state",be.Maximized="maximized",be.Minimized="minimized",be.Move="move",be.Resize="resize",be.IntrinsicMove="intrinsic_move",be.IntrinsicResize="intrinsic_resize",be.VisualResize="visual_resize";class xe extends ue{constructor(t){super(t),this.boxes=t.boxes,this.focusedBox=t.focusedBox,this.containerRect=t.containerRect}focusBox(t){var e;if(t||(t=this.boxes[this.boxes.length-1]),!this.focusedBox||this.focusedBox!==t){if(this.$titles&&this.state===Ut.Maximized){const{children:i}=this.$titles.firstElementChild;for(let s=i.length-1;s>=0;s-=1){const n=i[s],r=null==(e=n.dataset)?void 0:e.teleBoxID;r&&(t&&r===t.id?n.classList.toggle(this.wrapClassName("titles-tab-focus"),!0):this.focusedBox&&r===this.focusedBox.id&&n.classList.toggle(this.wrapClassName("titles-tab-focus"),!1))}}this.focusedBox=t}}setContainerRect(t){if(this.containerRect=t,this.$titleBar){const{x:e,y:i,width:s}=t;this.$titleBar.style.transform=`translate(${e}px, ${i}px)`,this.$titleBar.style.width=s+"px"}}setBoxes(t){this.boxes=t,this.updateTitles()}setState(t){super.setState(t),this.$titleBar&&this.$titleBar.classList.toggle(this.wrapClassName("max-titlebar-maximized"),t===Ut.Maximized),this.updateTitles()}setReadonly(t){super.setReadonly(t),this.$titleBar&&this.$titleBar.classList.toggle(this.wrapClassName("readonly"),this.readonly)}render(){const t=super.render(),{x:e,y:i,width:s}=this.containerRect;return t.style.transform=`translate(${e}px, ${i}px)`,t.style.width=s+"px",t.classList.add(this.wrapClassName("max-titlebar")),t.classList.toggle(this.wrapClassName("max-titlebar-maximized"),this.state===Ut.Maximized),t.classList.toggle(this.wrapClassName("readonly"),this.readonly),this.updateTitles(),t}destroy(){super.destroy(),this.$titles=void 0,this.boxes.length=0,this.focusedBox=void 0}updateTitles(){this.$titleBar&&this.state===Ut.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",(t=>{t.currentTarget.scrollBy({left:t.deltaY>0?250:-250,behavior:"smooth"})}),{passive:!1});const t=document.createElement("div");return t.className=this.wrapClassName("titles-content"),this.$titles.appendChild(t),this.boxes.forEach((e=>{const i=document.createElement("button");i.className=this.wrapClassName("titles-tab"),i.textContent=e.title,i.dataset.teleBoxID=e.id,i.dataset.teleTitleBarNoDblClick="true",this.focusedBox&&e.id===this.focusedBox.id&&i.classList.add(this.wrapClassName("titles-tab-focus")),t.appendChild(i)})),this.$titles}}class ye{constructor({root:t=document.body,minimized:e=!1,maximized:i=!1,fence:s=!0,containerRect:n={x:0,y:0,width:window.innerWidth,height:window.innerHeight},collector:r,namespace:o="telebox",zIndex:a=100,readonly:l=!1}={}){this.events=new u,this.boxes=[],this._sideEffect=new Ft;const{combine:h,createVal:c}=qt(this._sideEffect);this.root=t,this.namespace=o,this.zIndex=a;const d=c(l);d.reaction(((t,e,i)=>{this.boxes.forEach((e=>e.setReadonly(t,i)))}));const f=c(e),m=c(i);m.reaction(((t,e,i)=>{this.boxes.forEach((e=>e.setMaximized(t,i))),i||this.events.emit(pe.Maximized,t)}));const v=h([f,m],(([t,e])=>t?Ut.Minimized:e?Ut.Maximized:Ut.Normal));v.reaction(((t,e,i)=>{this.maxTitleBar.setState(t),i||this.events.emit(pe.State,t)}));const p=c(s);p.subscribe(((t,e,i)=>{this.boxes.forEach((e=>e.setFence(t,i)))}));const b=c(n,Ht);b.reaction(((t,e,i)=>{this.boxes.forEach((e=>e.setContainerRect(t,i))),this.maxTitleBar.setContainerRect(t)}));const g=c(null===r?null:r||new ge({visible:e,readonly:l,namespace:o}).mount(t));g.subscribe((t=>{t&&(t.setVisible(f.value),t.setReadonly(d.value),this._sideEffect.add((()=>(t.onClick=()=>{d.value||f.setValue(!1)},()=>t.destroy())),"collect-onClick"))})),d.subscribe((t=>{var e;return null==(e=g.value)?void 0:e.setReadonly(t)})),f.subscribe(((t,e,i)=>{var s,n;if(null==(s=g.value)||s.setVisible(t),t&&(null==(n=g.value)?void 0:n.$collector)){const{x:t,y:e,width:i,height:s}=g.value.$collector.getBoundingClientRect(),n=this.root.getBoundingClientRect();this.boxes.forEach((r=>{r.setCollectorRect({x:t-n.x,y:e-n.y,width:i,height:s},!0)}))}this.boxes.forEach((e=>e.setMinimized(t,i))),i||this.events.emit(pe.Minimized,t)}));const x=t=>{var e;if(d.value)return;const i=t.target;if(i.tagName)for(let s=i;s;s=s.parentElement){const t=null==(e=s.dataset)?void 0:e.teleBoxID;if(t){const e=this.boxes.find((e=>e.id===t));if(e)return void this.focusBox({focus:!0,box:e})}}};this._sideEffect.addEventListener(window,"mousedown",x,!0),this._sideEffect.addEventListener(window,"touchstart",x,!0),this.maxTitleBar=new xe({readonly:d.value,namespace:this.namespace,state:v.value,boxes:this.boxes,focusedBox:this._focusedBox,containerRect:b.value,onEvent:t=>{var e;switch(t.type){case Kt.Maximize:m.setValue(!m.value);break;case Kt.Minimize:f.setValue(!0);break;case Jt.Close:{const t=null!=(e=this._focusedBox)?e:this.boxes[this.boxes.length-1];t&&this.remove(t.id);break}}}}),d.subscribe((t=>this.maxTitleBar.setReadonly(t)));Zt(this,{containerRect:b,collector:g,readonly:d,fence:p,minimized:f,maximized:m}),this._state$=v,this.root.appendChild(this.maxTitleBar.render())}get state(){return this._state$.value}setState(t,e=!1){switch(t){case Ut.Maximized:this.setMinimized(!1,e),this.setMaximized(!0,e);break;case Ut.Minimized:this.setMinimized(!0,e),this.setMaximized(!1,e);break;default:this.setMinimized(!1,e),this.setMaximized(!1,e)}return this}create(t){const e=new fe(this.wrapCreateConfig(t));return e.mount(this.root),this.boxes.push(e),e.focus&&this.focusBox({focus:!0,box:e,increaseZIndex:!1}),this.maxTitleBar.setBoxes(this.boxes),e._delegateEvents.on(Kt.Maximize,(()=>{this.setMaximized(!this.maximized)})),e._delegateEvents.on(Kt.Minimize,(()=>{this.setMinimized(!0)})),e._delegateEvents.on(Kt.Close,(()=>{this.focusBox({focus:!1,box:e}),this.remove(e.id)})),e.events.on(Jt.Move,(()=>{this.events.emit(pe.Move,e)})),e.events.on(Jt.Resize,(()=>{this.events.emit(pe.Resize,e)})),e.events.on(Jt.IntrinsicMove,(()=>{this.events.emit(pe.IntrinsicMove,e)})),e.events.on(Jt.IntrinsicResize,(()=>{this.events.emit(pe.IntrinsicResize,e)})),e.events.on(Jt.VisualResize,(()=>{this.events.emit(pe.VisualResize,e)})),this.events.emit(pe.Created,e),e}query(t){return t?this.boxes.filter(this.teleBoxMatcher(t)):[...this.boxes]}queryOne(t){return t?this.boxes.find(this.teleBoxMatcher(t)):this.boxes[0]}update(t,e,i=!1){const s=this.boxes.find((e=>e.id===t));if(s)return this.updateBox(s,e,i)}updateAll(t,e=!1){this.boxes.forEach((i=>{this.updateBox(i,t,e)}))}remove(t,e=!1){const i=this.boxes.findIndex((e=>e.id===t));if(i>=0){const t=this.boxes.splice(i,1);this.maxTitleBar.setBoxes(this.boxes);const s=t[0];return this.focusBox({focus:!1,box:s}),s.destroy(),this.boxes.length<=0&&(this.setMaximized(!1),this.setMinimized(!1)),e||this.events.emit(pe.Removed,t),s}}removeAll(t=!1){if(this._focusedBox){const e=this._focusedBox;this._focusedBox=void 0,t||this.events.emit(pe.Focused,void 0,e)}const e=this.boxes.splice(0,this.boxes.length);return this.maxTitleBar.setBoxes(this.boxes),e.forEach((t=>t.destroy())),this.boxes.length<=0&&(this.setMaximized(!1),this.setMinimized(!1)),t||this.events.emit(pe.Removed,e),e}destroy(t=!1){this.events.removeAllListeners(),this._sideEffect.flushAll(),this._focusedBox=void 0,this.removeAll(t),Object.keys(this).forEach((t=>{const e=this[t];e instanceof Xt&&e.destroy()}))}wrapClassName(t){return`${this.namespace}-${t}`}teleBoxMatcher(t){const e=Object.keys(t);return i=>e.every((e=>t[e]===i[e]))}updateBox(t,e,i=!1){null==e.x&&null==e.y||t.move(null==e.x?t.intrinsicX:e.x,null==e.y?t.intrinsicY:e.y,i),null==e.width&&null==e.height||t.resize(null==e.width?t.intrinsicWidth:e.width,null==e.height?t.intrinsicHeight:e.height,i),null!=e.title&&(t.setTitle(e.title),this.maxTitleBar.updateTitles()),null!=e.visible&&t.setVisible(e.visible,i),null!=e.minHeight&&t.setMinHeight(e.minHeight,i),null!=e.minWidth&&t.setMinWidth(e.minWidth,i),null!=e.resizable&&t.setResizable(e.resizable),null!=e.draggable&&t.setDraggable(e.draggable),null!=e.fixRatio&&t.setFixRatio(e.fixRatio,i),null!=e.focus&&this.focusBox({focus:e.focus,box:t,skipUpdate:i}),null!=e.content&&t.mountContent(e.content),null!=e.footer&&t.mountFooter(e.footer)}focusBox({focus:t,box:e,skipUpdate:i=!1,increaseZIndex:s=!0}){if(e.setFocus(t,i),e.focus){if(this._focusedBox!==e){const t=this._focusedBox;this._focusedBox&&this._focusedBox.setFocus(!1,i),this._focusedBox=e,s&&e.setZIndex(++this.zIndex),i||this.events.emit(pe.Focused,e,t)}}else this._focusedBox===e&&(this._focusedBox=void 0,i||this.events.emit(pe.Focused,void 0,e));this.maxTitleBar.focusBox(this._focusedBox)}getInitialPosition(t,e){const i=this.boxes.length>0&&this.boxes.reduce(((t,e)=>t.zIndex>e.zIndex?t:e));let s=20,n=20;return i&&(s=i.intrinsicX*this.containerRect.width+20,n=i.intrinsicY*this.containerRect.height+20,(s>this.containerRect.width-t*this.containerRect.width||n>this.containerRect.height-e*this.containerRect.height)&&(s=20,n=20)),{x:s/this.containerRect.width,y:n/this.containerRect.height}}wrapCreateConfig(t={}){let{x:a,y:l}=t;const{width:h=.5,height:c=.5}=t;if(null==a||null==l){const t=this.getInitialPosition(h,c);null==a&&(a=t.x),null==l&&(l=t.y)}return d=((t,e)=>{for(var i in e||(e={}))n.call(e,i)&&o(t,i,e[i]);if(s)for(var i of s(e))r.call(e,i)&&o(t,i,e[i]);return t})({},t),u={x:a,y:l,width:h,height:c,maximized:this.maximized,minimized:this.minimized,fence:this.fence,zIndex:this.zIndex,namespace:this.namespace,containerRect:this.containerRect,readonly:this.readonly},e(d,i(u));var d,u}}export{ue as DefaultTitleBar,Kt as TELE_BOX_DELEGATE_EVENT,Jt as TELE_BOX_EVENT,pe as TELE_BOX_MANAGER_EVENT,ee as TELE_BOX_RESIZE_HANDLE,Ut as TELE_BOX_STATE,fe as TeleBox,ge as TeleBoxCollector,se as TeleBoxDragHandleType,ye as TeleBoxManager,ve as TeleBoxReact};
|
|
15
|
+
***************************************************************************** */function m(t,e){var i={};for(var s in t)Object.prototype.hasOwnProperty.call(t,s)&&e.indexOf(s)<0&&(i[s]=t[s]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(s=Object.getOwnPropertySymbols(t);n<s.length;n++)e.indexOf(s[n])<0&&Object.prototype.propertyIsEnumerable.call(t,s[n])&&(i[s[n]]=t[s[n]])}return i}var v=0,p="undefined"!=typeof window&&void 0!==window.requestAnimationFrame?function(t){return window.requestAnimationFrame(t)}:function(t){var e=Date.now(),i=Math.max(0,16.7-(e-v));v=e+i,setTimeout((function(){return t(v)}),i)},b=1/60*1e3,g=!0,x=!1,y=!1,w={delta:0,timestamp:0},C=["read","update","preRender","render","postRender"],$=function(t){return x=t},z=C.reduce((function(t,e){var i,s,n,r,o,a,l,h,c;return t[e]=(i=$,s=[],n=[],r=0,o=!1,a=0,l=new WeakSet,h=new WeakSet,c={cancel:function(t){var e=n.indexOf(t);l.add(t),-1!==e&&n.splice(e,1)},process:function(t){var e,d;if(o=!0,s=(e=[n,s])[0],(n=e[1]).length=0,r=s.length)for(a=0;a<r;a++)(d=s[a])(t),!0!==h.has(d)||l.has(d)||(c.schedule(d),i(!0));o=!1},schedule:function(t,e,i){void 0===e&&(e=!1),void 0===i&&(i=!1);var a=i&&o,c=a?s:n;l.delete(t),e&&h.add(t),-1===c.indexOf(t)&&(c.push(t),a&&(r=s.length))}}),t}),{}),_=C.reduce((function(t,e){var i=z[e];return t[e]=function(t,e,s){return void 0===e&&(e=!1),void 0===s&&(s=!1),x||R(),i.schedule(t,e,s),t},t}),{}),B=function(t){return z[t].process(w)},E=function(t){x=!1,w.delta=g?b:Math.max(Math.min(t-w.timestamp,40),1),g||(b=w.delta),w.timestamp=t,y=!0,C.forEach(B),y=!1,x&&(g=!1,p(E))},R=function(){x=!0,g=!0,y||p(E)},S=function(){return(S=Object.assign||function(t){for(var e,i=1,s=arguments.length;i<s;i++)for(var n in e=arguments[i])Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t}).apply(this,arguments)},M=function(t,e){return function(i){return Math.max(Math.min(i,e),t)}},N=function(t){return t%1?Number(t.toFixed(5)):t},k=/^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2,3}\s*\/*\s*[\d\.]+%?\))$/i,L={test:function(t){return"number"==typeof t},parse:parseFloat,transform:function(t){return t}},O=S(S({},L),{transform:M(0,1)}),I=S(S({},L),{default:1}),T=function(t){return{test:function(e){return"string"==typeof e&&e.endsWith(t)&&1===e.split(" ").length},parse:parseFloat,transform:function(e){return""+e+t}}},A=T("deg"),H=T("%"),W=T("px"),D=S(S({},H),{parse:function(t){return H.parse(t)/100},transform:function(t){return H.transform(100*t)}}),j=M(0,255),V=function(t){return void 0!==t.red},F=function(t){return void 0!==t.hue};var P=function(t){return function(e){if("string"!=typeof e)return e;for(var i={},s=function(t){return t.substring(t.indexOf("(")+1,t.lastIndexOf(")"))}(e).replace(/(,|\/)/g," ").split(/ \s*/),n=0;n<4;n++)i[t[n]]=void 0!==s[n]?parseFloat(s[n]):1;return i}},Y=S(S({},L),{transform:function(t){return Math.round(j(t))}});function X(t,e){return t.startsWith(e)&&k.test(t)}var Z,q={test:function(t){return"string"==typeof t?X(t,"rgb"):V(t)},parse:P(["red","green","blue","alpha"]),transform:function(t){var e=t.red,i=t.green,s=t.blue,n=t.alpha,r=void 0===n?1:n;return function(t){var e=t.red,i=t.green,s=t.blue,n=t.alpha;return"rgba("+e+", "+i+", "+s+", "+(void 0===n?1:n)+")"}({red:Y.transform(e),green:Y.transform(i),blue:Y.transform(s),alpha:N(O.transform(r))})}},U={test:function(t){return"string"==typeof t?X(t,"hsl"):F(t)},parse:P(["hue","saturation","lightness","alpha"]),transform:function(t){var e=t.hue,i=t.saturation,s=t.lightness,n=t.alpha,r=void 0===n?1:n;return function(t){var e=t.hue,i=t.saturation,s=t.lightness,n=t.alpha;return"hsla("+e+", "+i+", "+s+", "+(void 0===n?1:n)+")"}({hue:Math.round(e),saturation:H.transform(N(i)),lightness:H.transform(N(s)),alpha:N(O.transform(r))})}},G=S(S({},q),{test:function(t){return"string"==typeof t&&X(t,"#")},parse:function(t){var e="",i="",s="";return t.length>4?(e=t.substr(1,2),i=t.substr(3,2),s=t.substr(5,2)):(e=t.substr(1,1),i=t.substr(2,1),s=t.substr(3,1),e+=e,i+=i,s+=s),{red:parseInt(e,16),green:parseInt(i,16),blue:parseInt(s,16),alpha:1}}}),J={test:function(t){return"string"==typeof t&&k.test(t)||V(t)||F(t)},parse:function(t){return q.test(t)?q.parse(t):U.test(t)?U.parse(t):G.test(t)?G.parse(t):t},transform:function(t){return V(t)?q.transform(t):F(t)?U.transform(t):t}},Q=function(t){var e=t.onRead,i=t.onRender,s=t.uncachedValues,n=void 0===s?new Set:s,r=t.useCache,o=void 0===r||r;return function(t){void 0===t&&(t={});var s=m(t,[]),r={},a=[],l=!1;function h(t,e){t.startsWith("--")&&(s.hasCSSVariable=!0);var i=r[t];r[t]=e,r[t]!==i&&(-1===a.indexOf(t)&&a.push(t),l||(l=!0,_.render(c.render)))}var c={get:function(t,i){return void 0===i&&(i=!1),!i&&o&&!n.has(t)&&void 0!==r[t]?r[t]:e(t,s)},set:function(t,e){if("string"==typeof t)h(t,e);else for(var i in t)h(i,t[i]);return this},render:function(t){return void 0===t&&(t=!1),(l||!0===t)&&(i(r,s,a),l=!1,a.length=0),this}};return c}},K=/([a-z])([A-Z])/g,tt=function(t){return t.replace(K,"$1-$2").toLowerCase()},et=new Map,it=new Map,st=["Webkit","Moz","O","ms",""],nt=st.length,rt="undefined"!=typeof document,ot=function(t,e){return it.set(t,tt(e))},at=function(t,e){void 0===e&&(e=!1);var i=e?it:et;return i.has(t)||(rt?function(t){Z=Z||document.createElement("div");for(var e=0;e<nt;e++){var i=st[e],s=""===i,n=s?t:i+t.charAt(0).toUpperCase()+t.slice(1);if(n in Z.style||s){if(s&&"clipPath"===t&&it.has(t))return;et.set(t,n),ot(t,(s?"":"-")+tt(n))}}}(t):function(t){ot(t,t)}(t)),i.get(t)||t},lt=["","X","Y","Z"],ht=["translate","scale","rotate","skew","transformPerspective"].reduce((function(t,e){return lt.reduce((function(t,i){return t.push(e+i),t}),t)}),["x","y","z"]),ct=ht.reduce((function(t,e){return t[e]=!0,t}),{});function dt(t){return!0===ct[t]}function ut(t,e){return ht.indexOf(t)-ht.indexOf(e)}var ft=new Set(["originX","originY","originZ"]);function mt(t){return ft.has(t)}var vt=f(f({},L),{transform:Math.round}),pt={color:J,backgroundColor:J,outlineColor:J,fill:J,stroke:J,borderColor:J,borderTopColor:J,borderRightColor:J,borderBottomColor:J,borderLeftColor:J,borderWidth:W,borderTopWidth:W,borderRightWidth:W,borderBottomWidth:W,borderLeftWidth:W,borderRadius:W,radius:W,borderTopLeftRadius:W,borderTopRightRadius:W,borderBottomRightRadius:W,borderBottomLeftRadius:W,width:W,maxWidth:W,height:W,maxHeight:W,size:W,top:W,right:W,bottom:W,left:W,padding:W,paddingTop:W,paddingRight:W,paddingBottom:W,paddingLeft:W,margin:W,marginTop:W,marginRight:W,marginBottom:W,marginLeft:W,rotate:A,rotateX:A,rotateY:A,rotateZ:A,scale:I,scaleX:I,scaleY:I,scaleZ:I,skew:A,skewX:A,skewY:A,distance:W,translateX:W,translateY:W,translateZ:W,x:W,y:W,z:W,perspective:W,opacity:O,originX:D,originY:D,originZ:W,zIndex:vt,fillOpacity:O,strokeOpacity:O,numOctaves:vt},bt=function(t){return pt[t]},gt=function(t,e){return e&&"number"==typeof t?e.transform(t):t},xt=new Set(["scrollLeft","scrollTop"]),yt=new Set(["scrollLeft","scrollTop","transform"]),wt={x:"translateX",y:"translateY",z:"translateZ"};function Ct(t){return"function"==typeof t}function $t(t,e,i,s,n,r,o,a){void 0===e&&(e=!0),void 0===i&&(i={}),void 0===s&&(s={}),void 0===n&&(n={}),void 0===r&&(r=[]),void 0===o&&(o=!1),void 0===a&&(a=!0);var l=!0,h=!1,c=!1;for(var d in t){var u=t[d],f=bt(d),m=gt(u,f);dt(d)?(h=!0,s[d]=m,r.push(d),l&&(f.default&&u!==f.default||!f.default&&0!==u)&&(l=!1)):mt(d)?(n[d]=m,c=!0):yt.has(d)&&Ct(m)||(i[at(d,o)]=m)}return(h||"function"==typeof t.transform)&&(i.transform=function(t,e,i,s,n,r){void 0===r&&(r=!0);var o="",a=!1;i.sort(ut);for(var l=i.length,h=0;h<l;h++){var c=i[h];o+=(wt[c]||c)+"("+e[c]+") ",a="z"===c||a}return!a&&n?o+="translateZ(0)":o=o.trim(),Ct(t.transform)?o=t.transform(e,s?"":o):r&&s&&(o="none"),o}(t,s,r,l,e,a)),c&&(i.transformOrigin=(n.originX||"50%")+" "+(n.originY||"50%")+" "+(n.originZ||0)),i}function zt(t){var e=void 0===t?{}:t,i=e.enableHardwareAcceleration,s=void 0===i||i,n=e.isDashCase,r=void 0===n||n,o=e.allowTransformNone,a=void 0===o||o,l={},h={},c={},d=[];return function(t){return d.length=0,$t(t,s,l,h,c,d,r,a),l}}var _t=Q({onRead:function(t,e){var i=e.element,s=e.preparseOutput,n=bt(t);if(dt(t))return n&&n.default||0;if(xt.has(t))return i[t];var r=window.getComputedStyle(i,null).getPropertyValue(at(t,!0))||0;return s&&n&&n.test(r)&&n.parse?n.parse(r):r},onRender:function(t,e,i){var s=e.element,n=e.buildStyles,r=e.hasCSSVariable;if(Object.assign(s.style,n(t)),r)for(var o=i.length,a=0;a<o;a++){var l=i[a];l.startsWith("--")&&s.style.setProperty(l,t[l])}-1!==i.indexOf("scrollLeft")&&(s.scrollLeft=t.scrollLeft),-1!==i.indexOf("scrollTop")&&(s.scrollTop=t.scrollTop)},uncachedValues:xt});var Bt=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues"]),Et=function(t,e){return W.transform(t*e)},Rt={x:0,y:0,width:0,height:0};function St(t,e,i){return"string"==typeof t?t:W.transform(e+i*t)}var Mt={enableHardwareAcceleration:!1,isDashCase:!1};function Nt(t,e,i,s,n,r){void 0===e&&(e=Rt),void 0===s&&(s=zt(Mt)),void 0===n&&(n={style:{}}),void 0===r&&(r=!0);var o=t.attrX,a=t.attrY,l=t.originX,h=t.originY,c=t.pathLength,d=t.pathSpacing,u=void 0===d?1:d,f=t.pathOffset,v=void 0===f?0:f,p=s(m(t,["attrX","attrY","originX","originY","pathLength","pathSpacing","pathOffset"]));for(var b in p){if("transform"===b)n.style.transform=p[b];else n[r&&!Bt.has(b)?tt(b):b]=p[b]}return(void 0!==l||void 0!==h||p.transform)&&(n.style.transformOrigin=function(t,e,i){return St(e,t.x,t.width)+" "+St(i,t.y,t.height)}(e,void 0!==l?l:.5,void 0!==h?h:.5)),void 0!==o&&(n.x=o),void 0!==a&&(n.y=a),void 0!==i&&void 0!==c&&(n[r?"stroke-dashoffset":"strokeDashoffset"]=Et(-v,i),n[r?"stroke-dasharray":"strokeDasharray"]=Et(c,i)+" "+Et(u,i)),n}function kt(t,e,i){void 0===i&&(i=!0);var s={style:{}},n=zt(Mt);return function(r){return Nt(r,t,e,n,s,i)}}var Lt=Q({onRead:function(t,e){var i=e.element;if(dt(t=Bt.has(t)?t:tt(t))){var s=bt(t);return s&&s.default||0}return i.getAttribute(t)},onRender:function(t,e){var i=e.element,s=(0,e.buildAttrs)(t);for(var n in s)"style"===n?Object.assign(i.style,s.style):i.setAttribute(n,s[n])}}),Ot=Q({useCache:!1,onRead:function(t){return"scrollTop"===t?window.pageYOffset:window.pageXOffset},onRender:function(t){var e=t.scrollTop,i=void 0===e?0:e,s=t.scrollLeft,n=void 0===s?0:s;return window.scrollTo(n,i)}}),It=new WeakMap,Tt=function(t,e){var i,s,n,r;return t===window?i=Ot(t):!function(t){return t instanceof HTMLElement||"function"==typeof t.click}(t)?function(t){return t instanceof SVGElement||"ownerSVGElement"in t}(t)&&(n=function(t){try{return function(t){return"function"==typeof t.getBBox?t.getBBox():t.getBoundingClientRect()}(t)}catch(e){return{x:0,y:0,width:0,height:0}}}(s=t),r=function(t){return"path"===t.tagName}(s)&&s.getTotalLength?s.getTotalLength():void 0,i=Lt({element:s,buildAttrs:kt(n,r)})):i=function(t,e){void 0===e&&(e={});var i=e.enableHardwareAcceleration,s=e.allowTransformNone,n=m(e,["enableHardwareAcceleration","allowTransformNone"]);return _t(f({element:t,buildStyles:zt({enableHardwareAcceleration:i,allowTransformNone:s}),preparseOutput:!0},n))}(t,e),It.set(t,i),i};function At(t,e){return function(t,e){return It.has(t)?It.get(t):Tt(t,e)}("string"==typeof t?document.querySelector(t):t,e)}var Ht=function(t,e,i,s){var n=i?i.call(s,t,e):void 0;if(void 0!==n)return!!n;if(t===e)return!0;if("object"!=typeof t||!t||"object"!=typeof e||!e)return!1;var r=Object.keys(t),o=Object.keys(e);if(r.length!==o.length)return!1;for(var a=Object.prototype.hasOwnProperty.bind(e),l=0;l<r.length;l++){var h=r[l];if(!a(h))return!1;var c=t[h],d=e[h];if(!1===(n=i?i.call(s,c,d,h):void 0)||void 0===n&&c!==d)return!1}return!0};const Wt="!#%()*+,-./:;=?@[]^_`{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",Dt=Wt.length,jt=Array(20),Vt=()=>{for(let t=0;t<20;t++)jt[t]=Wt.charAt(Math.random()*Dt);return jt.join("")};class Ft{constructor(){this.disposers=new Map}add(t,e=Vt()){return this.flush(e),this.disposers.set(e,t()),e}addDisposer(t,e=Vt()){return this.flush(e),this.disposers.set(e,t),e}addEventListener(t,e,i,s,n=Vt()){return this.add((()=>(t.addEventListener(e,i,s),()=>t.removeEventListener(e,i,s))),n),n}setTimeout(t,e,i=Vt()){return this.add((()=>{const s=window.setTimeout((()=>{this.remove(i),t()}),e);return()=>window.clearTimeout(s)}),i)}setInterval(t,e,i=Vt()){return this.add((()=>{const i=window.setInterval(t,e);return()=>window.clearInterval(i)}),i)}remove(t){const e=this.disposers.get(t);return this.disposers.delete(t),e}flush(t){const e=this.remove(t);if(e)try{e()}catch(i){console.error(i)}}flushAll(){this.disposers.forEach((t=>{try{t()}catch(e){console.error(e)}})),this.disposers.clear()}}var Pt=Object.defineProperty,Yt=("undefined"!=typeof require&&require,(t,e,i)=>{return r=i,(n="symbol"!=typeof e?e+"":e)in(s=t)?Pt(s,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):s[n]=r,i;var s,n,r});class Xt{constructor(t,e){Yt(this,"_value"),Yt(this,"_beforeDestroys"),Yt(this,"_subscribers"),this._value=t,e&&(this.compare=e)}get value(){return this._value}setValue(t,e){if(!this.compare(t,this._value)){const i=this._value;this._value=t,this._subscribers&&this._subscribers.forEach((s=>s(t,i,e)))}}reaction(t){return this._subscribers||(this._subscribers=new Set),this._subscribers.add(t),()=>{this._subscribers&&this._subscribers.delete(t)}}subscribe(t,e){const i=this.reaction(t);return t(this._value,void 0,e),i}derive(t,e,i){const s=new Xt(t(this.value,void 0,i),e),n=this.reaction(((e,i,n)=>{s.setValue(t(e,i,n))}));return s.addBeforeDestroy(n),s}destroy(){this._beforeDestroys&&(this._beforeDestroys.forEach((t=>t())),this._beforeDestroys.clear()),this._subscribers&&this._subscribers.clear()}addBeforeDestroy(t){return this._beforeDestroys||(this._beforeDestroys=new Set),this._beforeDestroys.add(t),()=>{this._beforeDestroys&&this._beforeDestroys.delete(t)}}compare(t,e){return t===e}}function Zt(t,e){Object.keys(e).forEach((i=>{!function(t,e,i){var s;Object.defineProperties(t,{[e]:{get:()=>i.value},[`_${e}$`]:{value:i},[`set${s=e,s[0].toUpperCase()+s.slice(1)}`]:{value:(t,e)=>i.setValue(t,e)}})}(t,i,e[i])}))}function qt(t){const e=e=>{const i=t.addDisposer((()=>{e.destroy()}));return e.addBeforeDestroy((()=>{t.remove(i)})),e};return{bindSideEffect:e,combine:(t,i,s,n)=>e(function(t,e,i,s){let n=t.map((t=>t.value));const r=new Xt(e(n,void 0,s),i);return t.forEach(((t,i)=>{const s=t.reaction(((t,s,o)=>{const a=n.slice();a[i]=t;const l=n;n=a,r.setValue(e(a,l,o),o)}));r.addBeforeDestroy(s)})),r}(t,i,s,n)),createVal:(t,i)=>e(new Xt(t,i))}}var Ut,Gt,Jt,Qt,Kt,te,ee,ie;(Gt=Ut||(Ut={})).Normal="normal",Gt.Minimized="minimized",Gt.Maximized="maximized",(Qt=Jt||(Jt={})).Close="close",Qt.Focus="focus",Qt.Blur="blur",Qt.Move="move",Qt.Resize="resize",Qt.IntrinsicMove="intrinsic_move",Qt.IntrinsicResize="intrinsic_resize",Qt.VisualResize="visual_resize",Qt.State="state",Qt.Minimized="minimized",Qt.Maximized="maximized",Qt.Readonly="readonly",Qt.Destroyed="destroyed",(te=Kt||(Kt={})).Close="close",te.Maximize="maximize",te.Minimize="minimize",(ie=ee||(ee={})).North="n",ie.South="s",ie.West="w",ie.East="e",ie.NorthWest="nw",ie.NorthEast="ne",ie.SouthEast="se",ie.SouthWest="sw";const se="dh";function ne(t,e,i){return Math.min(Math.max(t,e),i)}function re(t){t.stopPropagation(),t.cancelable&&t.preventDefault()}function oe(t){return t.touches?t.touches[0]:t}function ae(){return Date.now().toString().slice(6)+Math.random().toString().slice(2,8)}let le=1;function he(){return"New Box "+le++}function ce(t){return Boolean(t)}function de(t){return!t}class ue{constructor({readonly:t=!1,title:e,buttons:i,onEvent:s,onDragStart:n,namespace:r="telebox",state:o=Ut.Normal}={}){this.$btns=[],this.sideEffect=new Ft,this.lastTitleBarClick=0,this.handleTitleBarClick=t=>{var e;if(this.readonly)return;if(null!=t.button&&0!==t.button)return;if(null==(e=t.target.dataset)?void 0:e.teleTitleBarNoDblClick)return;re(t);const i=Date.now();i-this.lastTitleBarClick<=500?this.onEvent&&this.onEvent({type:Kt.Maximize}):this.onDragStart&&this.onDragStart(t),this.lastTitleBarClick=i},this.readonly=t,this.onEvent=s,this.onDragStart=n,this.namespace=r,this.title=e,this.state=o,this.buttons=i||[{type:Kt.Minimize,iconClassName:this.wrapClassName("titlebar-icon-minimize")},{type:Kt.Maximize,iconClassName:this.wrapClassName("titlebar-icon-maximize"),isActive:t=>t===Ut.Maximized},{type:Kt.Close,iconClassName:this.wrapClassName("titlebar-icon-close")}]}setTitle(t){this.title=t,this.$title&&(this.$title.textContent=t,this.$title.title=t)}setState(t){this.state!==t&&(this.state=t,this.buttons.forEach(((e,i)=>{e.isActive&&this.$btns[i].classList.toggle("is-active",e.isActive(t))})))}setReadonly(t){this.readonly!==t&&(this.readonly=t)}render(){if(!this.$titleBar){this.$titleBar=document.createElement("div"),this.$titleBar.className=this.wrapClassName("titlebar"),this.$titleBar.dataset.teleBoxHandle="dh",this.sideEffect.addEventListener(this.$titleBar,"mousedown",this.handleTitleBarClick),this.sideEffect.addEventListener(this.$titleBar,"touchstart",this.handleTitleBarClick,{passive:!0}),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);const t=document.createElement("div");t.className=this.wrapClassName("titlebar-btns"),this.buttons.forEach((({iconClassName:e,isActive:i},s)=>{const n=String(s),r=document.createElement("button");r.className=`${this.wrapClassName("titlebar-btn")} ${e}`,r.dataset.teleTitleBarBtnIndex=n,r.dataset.teleTitleBarNoDblClick="true",i&&r.classList.toggle("is-active",i(this.state)),this.$btns.push(r),t.appendChild(r)})),this.sideEffect.addEventListener(t,"click",(t=>{var e;if(this.readonly)return;const i=t.target,s=Number(null==(e=i.dataset)?void 0:e.teleTitleBarBtnIndex);if(!Number.isNaN(s)&&s<this.buttons.length){re(t);const e=this.buttons[s];this.onEvent&&this.onEvent({type:e.type,value:e.value})}})),this.$titleBar.appendChild(this.$title),this.$titleBar.appendChild(t)}return this.$titleBar}dragHandle(){return this.$titleBar}wrapClassName(t){return`${this.namespace}-${t}`}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 fe{constructor({id:t=ae(),title:e=he(),visible:i=!0,width:s=.5,height:n=.5,minWidth:r=0,minHeight:o=0,x:a=.1,y:l=.1,minimized:h=!1,maximized:c=!1,readonly:d=!1,resizable:f=!0,draggable:m=!0,fence:v=!0,fixRatio:p=!1,focus:b=!1,zIndex:g=100,namespace:x="telebox",titleBar:y,content:w,footer:C,styles:$,containerRect:z={x:0,y:0,width:window.innerWidth,height:window.innerHeight},collectorRect:_}={}){this._renderSideEffect=new Ft,this.handleTrackStart=t=>{var e;return null==(e=this._handleTrackStart)?void 0:e.call(this,t)},this._sideEffect=new Ft,this._valSideEffectBinder=qt(this._sideEffect);const{combine:B,createVal:E}=this._valSideEffectBinder;this.id=t,this.namespace=x,this.events=new u,this._delegateEvents=new u;const R=E(z,Ht),S=E(_,Ht),M=E(e),N=E(i);N.reaction(((t,e,i)=>{i||t||this.events.emit(Jt.Close)}));const k=E(d);k.reaction(((t,e,i)=>{i||this.events.emit(Jt.Readonly,t)}));const L=E(f),O=E(m),I=E(v),T=E(p),A=E(g),H=E(b);H.reaction(((t,e,i)=>{i||this.events.emit(t?Jt.Focus:Jt.Blur)}));const W=E(h);W.reaction(((t,e,i)=>{i||this.events.emit(Jt.Minimized,t)}));const D=E(c);D.reaction(((t,e,i)=>{i||this.events.emit(Jt.Maximized,t)}));const j=B([W,D],(([t,e])=>t?Ut.Minimized:e?Ut.Maximized:Ut.Normal));j.reaction(((t,e,i)=>{i||this.events.emit(Jt.State,t)}));const V=E({width:ne(r,0,1),height:ne(o,0,1)},Ht),F=E({width:ne(s,V.value.width,1),height:ne(n,V.value.height,1)},Ht);V.reaction(((t,e,i)=>{F.setValue({width:ne(s,t.width,1),height:ne(n,t.height,1)},i)})),F.reaction(((t,e,i)=>{i||this.events.emit(Jt.IntrinsicResize,t)}));const P=B([F,D],(([t,e])=>e?{width:1,height:1}:t),Ht);P.reaction(((t,e,i)=>{i||this.events.emit(Jt.Resize,t)}));const Y=B([P,W,R,S],(([t,e,i,s])=>e&&s?{width:s.width/t.width/i.width,height:s.height/t.height/i.height}:t),Ht);Y.reaction(((t,e,i)=>{i||this.events.emit(Jt.VisualResize,t)}));const X=E({x:ne(a,0,1),y:ne(l,0,1)},Ht);X.reaction(((t,e,i)=>{i||this.events.emit(Jt.IntrinsicMove,t)}));const Z=B([X,F,R,S,W,D],(([t,e,i,s,n,r])=>n&&s?r?{x:(s.x+s.width/2)/i.width-.5,y:(s.y+s.height/2)/i.height-.5}:{x:(s.x+s.width/2)/i.width-e.width/2,y:(s.y+s.height/2)/i.height-e.height/2}:r?{x:0,y:0}:t),Ht);Z.reaction(((t,e,i)=>{i||this.events.emit(Jt.Move,t)})),this.titleBar=y||new ue({readonly:k.value,title:M.value,namespace:this.namespace,onDragStart:t=>{var e;return null==(e=this._handleTrackStart)?void 0:e.call(this,t)},onEvent:t=>{if(this._delegateEvents.listeners.length>0)this._delegateEvents.emit(t.type);else switch(t.type){case Kt.Maximize:D.setValue(!D.value);break;case Kt.Minimize:W.setValue(!0);break;case Kt.Close:N.setValue(!1);break;default:console.error("Unsupported titleBar event:",t)}}}),k.reaction((t=>{this.titleBar.setReadonly(t)}));const q=E(w),U=E(C),G=E($);Zt(this,{containerRect:R,collectorRect:S,title:M,visible:N,readonly:k,resizable:L,draggable:O,fence:I,fixRatio:T,focus:H,zIndex:A,minimized:W,maximized:D,$userContent:q,$userFooter:U,$userStyles:G}),this._state$=j,this._minSize$=V,this._size$=P,this._intrinsicSize$=F,this._visualSize$=Y,this._coord$=Z,this._intrinsicCoord$=X,this.fixRatio&&this.transform(Z.value.x,Z.value.y,P.value.width,P.value.height,!0),this.$box=this.render()}get state(){return this._state$.value}setState(t,e=!1){switch(t){case Ut.Maximized:this.setMinimized(!1,e),this.setMaximized(!0,e);break;case Ut.Minimized:this.setMinimized(!0,e),this.setMaximized(!1,e);break;default:this.setMinimized(!1,e),this.setMaximized(!1,e)}return this}get minWidth(){return this._minSize$.value.width}get minHeight(){return this._minSize$.value.height}setMinWidth(t,e=!1){return this._minSize$.setValue({width:t,height:this.minHeight},e),this}setMinHeight(t,e=!1){return this._minSize$.setValue({width:this.minWidth,height:t},e),this}get intrinsicWidth(){return this._intrinsicSize$.value.width}get intrinsicHeight(){return this._intrinsicSize$.value.height}resize(t,e,i=!1){return this._intrinsicSize$.setValue({width:t,height:e},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(t,e,i=!1){return this._intrinsicCoord$.setValue({x:t,y:e},i),this}get x(){return this._coord$.value.x}get y(){return this._coord$.value.y}transform(t,e,i,s,n=!1){if(this.fixRatio){const t=this.intrinsicHeight/this.intrinsicWidth*i;e!==this.intrinsicY&&(e-=t-s),s=t}return e<0&&(e=0,s>this.intrinsicHeight&&(s=this.intrinsicHeight)),this._intrinsicCoord$.setValue({x:i>=this.minWidth?t:this.intrinsicX,y:s>=this.minHeight?e:this.intrinsicY},n),this._intrinsicSize$.setValue({width:ne(i,this.minWidth,1),height:ne(s,this.minHeight,1)},n),this}mount(t){return t.appendChild(this.render()),this}unmount(){return this.$box&&this.$box.remove(),this}mountContent(t){return this.set$userContent(t),this}unmountContent(){return this.set$userContent(void 0),this}mountFooter(t){return this.set$userFooter(t),this}unmountFooter(){return this.set$userFooter(void 0),this}getUserStyles(){return this.$userStyles}mountStyles(t){let e;return"string"==typeof t?(e=document.createElement("style"),e.textContent=t):e=t,this.set$userStyles(e),this}unmountStyles(){return this.set$userStyles(void 0),this}render(t){if(t){if(t===this.$box)return this.$box;this.$box=t}else{if(this.$box)return this.$box;this.$box=document.createElement("div")}this._renderSideEffect.flushAll(),this.$box.classList.add(this.wrapClassName("box"));const e=(t,e,i,s=ce)=>this._renderSideEffect.add((()=>{const n=this.wrapClassName(i);return e.subscribe((e=>{t.classList.toggle(n,s(e))}))}));e(this.$box,this._readonly$,"readonly"),e(this.$box,this._draggable$,"no-drag",de),e(this.$box,this._resizable$,"no-resize",de),e(this.$box,this._focus$,"blur",de),this._renderSideEffect.add((()=>{const t=this.wrapClassName("minimized"),e=this.wrapClassName("maximized"),i="box-maximized-timer";return this._state$.subscribe((s=>{this.$box.classList.toggle(t,s===Ut.Minimized),s===Ut.Maximized?(this._renderSideEffect.flush(i),this.$box.classList.toggle(e,!0)):this._renderSideEffect.setTimeout((()=>{this.$box.classList.toggle(e,!1)}),0,i)}))})),this._renderSideEffect.add((()=>this._visible$.subscribe((t=>{this.$box.style.display=t?"block":"none"})))),this._renderSideEffect.add((()=>this._zIndex$.subscribe((t=>{this.$box.style.zIndex=String(t)}))));const i=At(this.$box);this.$box.dataset.teleBoxID=this.id,this.$box.style.width=this.absoluteWidth+"px",this.$box.style.height=this.absoluteHeight+"px";const s=this.x*this.containerRect.width+this.containerRect.x,n=this.y*this.containerRect.height+this.containerRect.y;this.$box.style.transform=`translate(${s-10}px,${n-10}px)`,this._valSideEffectBinder.combine([this._coord$,this._size$,this._minimized$,this._containerRect$,this._collectorRect$],(([t,e,i,s,n])=>{const r=e.width*s.width,o=e.height*s.height;return{width:r,height:o,x:t.x*s.width,y:t.y*s.height,scaleX:i&&n?n.width/r:1,scaleY:i&&n?n.height/o:1}}),Ht).subscribe((t=>{i.set(t)})),i.set({x:s,y:n});const r=document.createElement("div");r.className=this.wrapClassName("box-main"),this.$box.appendChild(r);const o=document.createElement("div");o.className=this.wrapClassName("titlebar-wrap"),o.appendChild(this.titleBar.render()),this.$titleBar=o;const a=document.createElement("div");a.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 t;return this._$userStyles$.subscribe((e=>{t&&t.remove(),t=e,e&&l.appendChild(e)}))})),this._renderSideEffect.add((()=>{let t;return this._$userContent$.subscribe((e=>{t&&t.remove(),t=e,e&&l.appendChild(e)}))})),a.appendChild(l);const h=document.createElement("div");return h.className=this.wrapClassName("footer-wrap"),this.$footer=h,this._renderSideEffect.add((()=>{let t;return this._$userFooter$.subscribe((e=>{t&&t.remove(),t=e,e&&h.appendChild(e)}))})),r.appendChild(o),r.appendChild(a),r.appendChild(h),this._renderResizeHandlers(),this.$box}_renderResizeHandlers(){const t=document.createElement("div");t.className=this.wrapClassName("resize-handles"),Object.values(ee).forEach((e=>{const i=document.createElement("div");i.className=this.wrapClassName(e)+" "+this.wrapClassName("resize-handle"),i.dataset.teleBoxHandle=e,t.appendChild(i)})),this.$box.appendChild(t);const e="handle-tracking-listener",i=this.wrapClassName("transforming");let s,n,r=0,o=0,a=0,l=0,h=0,c=0;const d=t=>{if(this.state!==Ut.Normal)return;re(t);let{pageX:e,pageY:i}=oe(t);i<0&&(i=0);const s=(e-h)/this.containerRect.width,d=(i-c)/this.containerRect.height;switch(n){case ee.North:this.transform(this.x,o+d,this.width,l-d);break;case ee.South:this.transform(this.x,this.y,this.width,l+d);break;case ee.West:this.transform(r+s,this.y,a-s,this.height);break;case ee.East:this.transform(this.x,this.y,a+s,this.height);break;case ee.NorthWest:this.transform(r+s,o+d,a-s,l-d);break;case ee.NorthEast:this.transform(this.x,o+d,a+s,l-d);break;case ee.SouthEast:this.transform(this.x,this.y,a+s,l+d);break;case ee.SouthWest:this.transform(r+s,this.y,a-s,l+d);break;default:if(this.fence)this.move(ne(r+s,0,1-this.width),ne(o+d,0,1-this.height));else{const t=20/this.containerRect.width,e=20/this.containerRect.height;this.move(ne(r+s,t-this.width,1-t),ne(o+d,0,1-e))}}},u=t=>{n=void 0,s&&(re(t),this.$box.classList.toggle(i,!1),this._sideEffect.flush(e),s.remove())},f=t=>{var f;if(this.readonly)return;if(null!=t.button&&0!==t.button)return;if(!this.draggable||n||this.state!==Ut.Normal)return;const m=t.target;if(null==(f=m.dataset)?void 0:f.teleBoxHandle){re(t),r=this.x,o=this.y,a=this.width,l=this.height,({pageX:h,pageY:c}=oe(t)),n=m.dataset.teleBoxHandle,s||(s=document.createElement("div"));const f=n?this.wrapClassName(`cursor-${n}`):"";s.className=this.wrapClassName("track-mask"+(f?` ${f}`:"")),this.$box.appendChild(s),this.$box.classList.add(i),this._sideEffect.add((()=>(window.addEventListener("mousemove",d),window.addEventListener("touchmove",d,{passive:!1}),window.addEventListener("mouseup",u),window.addEventListener("touchend",u,{passive:!1}),window.addEventListener("touchcancel",u,{passive:!1}),()=>{window.removeEventListener("mousemove",d),window.removeEventListener("touchmove",d),window.removeEventListener("mouseup",u),window.removeEventListener("touchend",u),window.removeEventListener("touchcancel",u)})),e)}};this._handleTrackStart=f,this._sideEffect.addEventListener(t,"mousedown",f,{},"box-resizeHandles-mousedown"),this._sideEffect.addEventListener(t,"touchstart",f,{passive:!1},"box-resizeHandles-touchstart")}destroy(){this.$box.remove(),this.events.emit(Jt.Destroyed),this._sideEffect.flushAll(),this._renderSideEffect.flushAll(),this.events.removeAllListeners(),this._delegateEvents.removeAllListeners()}wrapClassName(t){return`${this.namespace}-${t}`}}const me=(t,e)=>{const i=l(!0);h((()=>{if(!i.current)return t();i.current=!1}),e)},ve=t=>{const[e]=c((()=>new fe(t)));return me((()=>{null!=t.minWidth&&e.setMinWidth(t.minWidth)}),[e,t.minWidth]),me((()=>{null!=t.minHeight&&e.setMinHeight(t.minHeight)}),[e,t.minHeight]),me((()=>{var i,s;e.resize(null!=(i=t.width)?i:e.width,null!=(s=t.height)?s:e.height,!0)}),[e,t.width,t.height]),me((()=>{var i,s;e.move(null!=(i=t.x)?i:e.x,null!=(s=t.y)?s:e.y,!0)}),[e,t.x,t.y]),me((()=>{null!=t.title&&e.setTitle(t.title)}),[e,t.title]),me((()=>{null!=t.visible&&e.setVisible(t.visible)}),[e,t.visible]),me((()=>{null!=t.state&&e.setState(t.state,!0)}),[e,t.state]),me((()=>{null!=t.draggable&&e.setDraggable(t.draggable)}),[e,t.draggable]),me((()=>{null!=t.resizable&&e.setResizable(t.resizable)}),[e,t.resizable]),me((()=>{null!=t.fence&&e.setFence(t.fence)}),[e,t.fence]),me((()=>{null!=t.containerRect&&e.setContainerRect(t.containerRect)}),[e,t.containerRect]),me((()=>{null!=t.fixRatio&&e.setFixRatio(t.fixRatio)}),[e,t.fixRatio]),h((()=>{if(t.onResize)return e.events.on(Jt.Resize,t.onResize),()=>{e.events.off(Jt.Resize,t.onResize)}}),[e,t.onResize]),h((()=>{if(t.onMove)return e.events.on(Jt.Move,t.onMove),()=>{e.events.off(Jt.Move,t.onMove)}}),[e,t.onMove]),h((()=>{if(t.onClose)return e.events.on(Jt.Close,t.onClose),()=>{e.events.off(Jt.Close,t.onClose)}}),[e,t.onClose]),h((()=>{if(t.onFocus)return e.events.on(Jt.Focus,t.onFocus),()=>{e.events.off(Jt.Focus,t.onFocus)}}),[e,t.onFocus]),h((()=>{if(t.onBlur)return e.events.on(Jt.Blur,t.onBlur),()=>{e.events.off(Jt.Blur,t.onBlur)}}),[e,t.onBlur]),h((()=>{if(t.onStateChanged)return e.events.on(Jt.State,t.onStateChanged),()=>{e.events.off(Jt.State,t.onStateChanged)}}),[e,t.onStateChanged]),a.createElement("div",{ref:t=>t&&e.render(t),className:e.wrapClassName("box")})};var pe,be;class ge{constructor({visible:t=!0,readonly:e=!1,namespace:i="telebox",styles:s={},onClick:n}={}){this.handleCollectorClick=()=>{!this._readonly&&this.onClick&&this.onClick()},this._visible=Boolean(t),this._readonly=Boolean(e),this.namespace=i,this.styles=s,this.onClick=n}get visible(){return this._visible}get readonly(){return this._readonly}mount(t){return t.appendChild(this.render()),this}unmount(){return this.$collector&&this.$collector.remove(),this}setVisible(t){return this._visible!==t&&(this._visible=t,this.$collector&&this.$collector.classList.toggle(this.wrapClassName("collector-visible"),t)),this}setReadonly(t){return this._readonly!==t&&(this._readonly=t,this.$collector&&this.$collector.classList.toggle(this.wrapClassName("collector-readonly"),t)),this}setStyles(t){if(Object.assign(this.styles,t),this.$collector){const e=this.$collector;Object.keys(t).forEach((i=>{const s=t[i];null!=s&&(e.style[i]=s)}))}return this}render(){if(!this.$collector){this.$collector=document.createElement("button"),this.$collector.className=this.wrapClassName("collector"),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"));const t=document.createElement("img");t.draggable=!1,t.className=this.wrapClassName("collector-icon"),t.src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxNiI+CiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxwYXRoIHN0cm9rZT0iIzdCODhBMCIgc3Ryb2tlLXdpZHRoPSIxLjQiIGQ9Ik0uNyAxLjJoMTYuNnYxMy42SC43eiIgLz4KICAgICAgICA8cGF0aCBmaWxsPSIjN0I4OEEwIiBkPSJNNCA1LjVoNnYxLjRINHpNNCA5LjVoMTB2MS40SDR6IiAvPgogICAgPC9nPgo8L3N2Zz4K",this.$collector.appendChild(t),this.setStyles(this.styles)}return this.$collector}destroy(){this.$collector&&(this.$collector.removeEventListener("click",this.handleCollectorClick),this.$collector.remove(),this.$collector=void 0),this.onClick=void 0}wrapClassName(t){return`${this.namespace}-${t}`}}(be=pe||(pe={})).Focused="focused",be.Created="created",be.Removed="removed",be.State="state",be.Maximized="maximized",be.Minimized="minimized",be.Move="move",be.Resize="resize",be.IntrinsicMove="intrinsic_move",be.IntrinsicResize="intrinsic_resize",be.VisualResize="visual_resize";class xe extends ue{constructor(t){super(t),this.boxes=t.boxes,this.focusedBox=t.focusedBox,this.containerRect=t.containerRect}focusBox(t){var e;if(t||(t=this.boxes[this.boxes.length-1]),!this.focusedBox||this.focusedBox!==t){if(this.$titles&&this.state===Ut.Maximized){const{children:i}=this.$titles.firstElementChild;for(let s=i.length-1;s>=0;s-=1){const n=i[s],r=null==(e=n.dataset)?void 0:e.teleBoxID;r&&(t&&r===t.id?n.classList.toggle(this.wrapClassName("titles-tab-focus"),!0):this.focusedBox&&r===this.focusedBox.id&&n.classList.toggle(this.wrapClassName("titles-tab-focus"),!1))}}this.focusedBox=t}}setContainerRect(t){if(this.containerRect=t,this.$titleBar){const{x:e,y:i,width:s}=t;this.$titleBar.style.transform=`translate(${e}px, ${i}px)`,this.$titleBar.style.width=s+"px"}}setBoxes(t){this.boxes=t,this.updateTitles()}setState(t){super.setState(t),this.$titleBar&&this.$titleBar.classList.toggle(this.wrapClassName("max-titlebar-maximized"),t===Ut.Maximized),this.updateTitles()}setReadonly(t){super.setReadonly(t),this.$titleBar&&this.$titleBar.classList.toggle(this.wrapClassName("readonly"),this.readonly)}render(){const t=super.render(),{x:e,y:i,width:s}=this.containerRect;return t.style.transform=`translate(${e}px, ${i}px)`,t.style.width=s+"px",t.classList.add(this.wrapClassName("max-titlebar")),t.classList.toggle(this.wrapClassName("max-titlebar-maximized"),this.state===Ut.Maximized),t.classList.toggle(this.wrapClassName("readonly"),this.readonly),this.updateTitles(),t}destroy(){super.destroy(),this.$titles=void 0,this.boxes.length=0,this.focusedBox=void 0}updateTitles(){this.$titleBar&&this.state===Ut.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",(t=>{t.currentTarget.scrollBy({left:t.deltaY>0?250:-250,behavior:"smooth"})}),{passive:!1});const t=document.createElement("div");return t.className=this.wrapClassName("titles-content"),this.$titles.appendChild(t),this.boxes.forEach((e=>{const i=document.createElement("button");i.className=this.wrapClassName("titles-tab"),i.textContent=e.title,i.dataset.teleBoxID=e.id,i.dataset.teleTitleBarNoDblClick="true",this.focusedBox&&e.id===this.focusedBox.id&&i.classList.add(this.wrapClassName("titles-tab-focus")),t.appendChild(i)})),this.$titles}}class ye{constructor({root:t=document.body,minimized:e=!1,maximized:i=!1,fence:s=!0,containerRect:n={x:0,y:0,width:window.innerWidth,height:window.innerHeight},collector:r,namespace:o="telebox",zIndex:a=100,readonly:l=!1}={}){this.events=new u,this.boxes=[],this._sideEffect=new Ft;const{combine:h,createVal:c}=qt(this._sideEffect);this.root=t,this.namespace=o,this.zIndex=a;const d=c(l);d.reaction(((t,e,i)=>{this.boxes.forEach((e=>e.setReadonly(t,i)))}));const f=c(e),m=c(i);m.reaction(((t,e,i)=>{this.boxes.forEach((e=>e.setMaximized(t,i))),i||this.events.emit(pe.Maximized,t)}));const v=h([f,m],(([t,e])=>t?Ut.Minimized:e?Ut.Maximized:Ut.Normal));v.reaction(((t,e,i)=>{this.maxTitleBar.setState(t),i||this.events.emit(pe.State,t)}));const p=c(s);p.subscribe(((t,e,i)=>{this.boxes.forEach((e=>e.setFence(t,i)))}));const b=c(n,Ht);b.reaction(((t,e,i)=>{this.boxes.forEach((e=>e.setContainerRect(t,i))),this.maxTitleBar.setContainerRect(t)}));const g=c(null===r?null:r||new ge({visible:e,readonly:l,namespace:o}).mount(t));g.subscribe((t=>{t&&(t.setVisible(f.value),t.setReadonly(d.value),this._sideEffect.add((()=>(t.onClick=()=>{d.value||f.setValue(!1)},()=>t.destroy())),"collect-onClick"))})),d.subscribe((t=>{var e;return null==(e=g.value)?void 0:e.setReadonly(t)})),f.subscribe(((t,e,i)=>{var s,n;if(null==(s=g.value)||s.setVisible(t),t&&(null==(n=g.value)?void 0:n.$collector)){const{x:t,y:e,width:i,height:s}=g.value.$collector.getBoundingClientRect(),n=this.root.getBoundingClientRect();this.boxes.forEach((r=>{r.setCollectorRect({x:t-n.x,y:e-n.y,width:i,height:s},!0)}))}this.boxes.forEach((e=>e.setMinimized(t,i))),i||this.events.emit(pe.Minimized,t)}));const x=t=>{var e;if(d.value)return;const i=t.target;if(i.tagName)for(let s=i;s;s=s.parentElement){const t=null==(e=s.dataset)?void 0:e.teleBoxID;if(t){const e=this.boxes.find((e=>e.id===t));if(e)return void this.focusBox({focus:!0,box:e})}}};this._sideEffect.addEventListener(window,"mousedown",x,!0),this._sideEffect.addEventListener(window,"touchstart",x,!0),this.maxTitleBar=new xe({readonly:d.value,namespace:this.namespace,state:v.value,boxes:this.boxes,focusedBox:this._focusedBox,containerRect:b.value,onEvent:t=>{var e;switch(t.type){case Kt.Maximize:m.setValue(!m.value);break;case Kt.Minimize:f.setValue(!0);break;case Jt.Close:{const t=null!=(e=this._focusedBox)?e:this.boxes[this.boxes.length-1];t&&this.remove(t.id);break}}}}),d.subscribe((t=>this.maxTitleBar.setReadonly(t)));Zt(this,{containerRect:b,collector:g,readonly:d,fence:p,minimized:f,maximized:m}),this._state$=v,this.root.appendChild(this.maxTitleBar.render())}get state(){return this._state$.value}setState(t,e=!1){switch(t){case Ut.Maximized:this.setMinimized(!1,e),this.setMaximized(!0,e);break;case Ut.Minimized:this.setMinimized(!0,e),this.setMaximized(!1,e);break;default:this.setMinimized(!1,e),this.setMaximized(!1,e)}return this}create(t){const e=new fe(this.wrapCreateConfig(t));return e.mount(this.root),this.boxes.push(e),e.focus&&this.focusBox({focus:!0,box:e,increaseZIndex:!1}),this.maxTitleBar.setBoxes(this.boxes),e._delegateEvents.on(Kt.Maximize,(()=>{this.setMaximized(!this.maximized)})),e._delegateEvents.on(Kt.Minimize,(()=>{this.setMinimized(!0)})),e._delegateEvents.on(Kt.Close,(()=>{this.focusBox({focus:!1,box:e}),this.remove(e.id)})),e.events.on(Jt.Move,(()=>{this.events.emit(pe.Move,e)})),e.events.on(Jt.Resize,(()=>{this.events.emit(pe.Resize,e)})),e.events.on(Jt.IntrinsicMove,(()=>{this.events.emit(pe.IntrinsicMove,e)})),e.events.on(Jt.IntrinsicResize,(()=>{this.events.emit(pe.IntrinsicResize,e)})),e.events.on(Jt.VisualResize,(()=>{this.events.emit(pe.VisualResize,e)})),this.events.emit(pe.Created,e),e}query(t){return t?this.boxes.filter(this.teleBoxMatcher(t)):[...this.boxes]}queryOne(t){return t?this.boxes.find(this.teleBoxMatcher(t)):this.boxes[0]}update(t,e,i=!1){const s=this.boxes.find((e=>e.id===t));if(s)return this.updateBox(s,e,i)}updateAll(t,e=!1){this.boxes.forEach((i=>{this.updateBox(i,t,e)}))}remove(t,e=!1){const i=this.boxes.findIndex((e=>e.id===t));if(i>=0){const t=this.boxes.splice(i,1);this.maxTitleBar.setBoxes(this.boxes);const s=t[0];return this.focusBox({focus:!1,box:s}),s.destroy(),this.boxes.length<=0&&(this.setMaximized(!1),this.setMinimized(!1)),e||this.events.emit(pe.Removed,t),s}}removeAll(t=!1){if(this._focusedBox){const e=this._focusedBox;this._focusedBox=void 0,t||this.events.emit(pe.Focused,void 0,e)}const e=this.boxes.splice(0,this.boxes.length);return this.maxTitleBar.setBoxes(this.boxes),e.forEach((t=>t.destroy())),this.boxes.length<=0&&(this.setMaximized(!1),this.setMinimized(!1)),t||this.events.emit(pe.Removed,e),e}destroy(t=!1){this.events.removeAllListeners(),this._sideEffect.flushAll(),this._focusedBox=void 0,this.removeAll(t),Object.keys(this).forEach((t=>{const e=this[t];e instanceof Xt&&e.destroy()}))}wrapClassName(t){return`${this.namespace}-${t}`}teleBoxMatcher(t){const e=Object.keys(t);return i=>e.every((e=>t[e]===i[e]))}updateBox(t,e,i=!1){null==e.x&&null==e.y||t.move(null==e.x?t.intrinsicX:e.x,null==e.y?t.intrinsicY:e.y,i),null==e.width&&null==e.height||t.resize(null==e.width?t.intrinsicWidth:e.width,null==e.height?t.intrinsicHeight:e.height,i),null!=e.title&&(t.setTitle(e.title),this.maxTitleBar.updateTitles()),null!=e.visible&&t.setVisible(e.visible,i),null!=e.minHeight&&t.setMinHeight(e.minHeight,i),null!=e.minWidth&&t.setMinWidth(e.minWidth,i),null!=e.resizable&&t.setResizable(e.resizable),null!=e.draggable&&t.setDraggable(e.draggable),null!=e.fixRatio&&t.setFixRatio(e.fixRatio,i),null!=e.focus&&this.focusBox({focus:e.focus,box:t,skipUpdate:i}),null!=e.content&&t.mountContent(e.content),null!=e.footer&&t.mountFooter(e.footer)}focusBox({focus:t,box:e,skipUpdate:i=!1,increaseZIndex:s=!0}){if(e.setFocus(t,i),e.focus){if(this._focusedBox!==e){const t=this._focusedBox;this._focusedBox&&this._focusedBox.setFocus(!1,i),this._focusedBox=e,s&&e.setZIndex(++this.zIndex),i||this.events.emit(pe.Focused,e,t)}}else this._focusedBox===e&&(this._focusedBox=void 0,i||this.events.emit(pe.Focused,void 0,e));this.maxTitleBar.focusBox(this._focusedBox)}getInitialPosition(t,e){const i=this.boxes.length>0&&this.boxes.reduce(((t,e)=>t.zIndex>e.zIndex?t:e));let s=20,n=20;return i&&(s=i.intrinsicX*this.containerRect.width+20,n=i.intrinsicY*this.containerRect.height+20,(s>this.containerRect.width-t*this.containerRect.width||n>this.containerRect.height-e*this.containerRect.height)&&(s=20,n=20)),{x:s/this.containerRect.width,y:n/this.containerRect.height}}wrapCreateConfig(t={}){let{x:a,y:l}=t;const{width:h=.5,height:c=.5}=t;if(null==a||null==l){const t=this.getInitialPosition(h,c);null==a&&(a=t.x),null==l&&(l=t.y)}return d=((t,e)=>{for(var i in e||(e={}))n.call(e,i)&&o(t,i,e[i]);if(s)for(var i of s(e))r.call(e,i)&&o(t,i,e[i]);return t})({},t),u={x:a,y:l,width:h,height:c,maximized:this.maximized,minimized:this.minimized,fence:this.fence,zIndex:this.zIndex,namespace:this.namespace,containerRect:this.containerRect,readonly:this.readonly},e(d,i(u));var d,u}}export{ue as DefaultTitleBar,Kt as TELE_BOX_DELEGATE_EVENT,Jt as TELE_BOX_EVENT,pe as TELE_BOX_MANAGER_EVENT,ee as TELE_BOX_RESIZE_HANDLE,Ut as TELE_BOX_STATE,fe as TeleBox,ge as TeleBoxCollector,se as TeleBoxDragHandleType,ye as TeleBoxManager,ve as TeleBoxReact};
|
|
16
16
|
//# sourceMappingURL=telebox-insider.es.js.map
|