@netless/telebox-insider 0.2.4 → 0.2.5
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/TeleBox/index.d.ts
CHANGED
|
@@ -149,6 +149,8 @@ export declare class TeleBox {
|
|
|
149
149
|
$box: HTMLElement;
|
|
150
150
|
/** DOM of the box content */
|
|
151
151
|
$content: HTMLElement;
|
|
152
|
+
/** DOM of the box title bar */
|
|
153
|
+
$titleBar: HTMLElement;
|
|
152
154
|
/** DOM of the box footer */
|
|
153
155
|
$footer: HTMLElement;
|
|
154
156
|
protected _renderSideEffect: SideEffectManager;
|
|
@@ -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 f(e,t){var i={};for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&t.indexOf(s)<0&&(i[s]=e[s]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(s=Object.getOwnPropertySymbols(e);r<s.length;r++)t.indexOf(s[r])<0&&Object.prototype.propertyIsEnumerable.call(e,s[r])&&(i[s[r]]=e[s[r]])}return i}var E=0,m="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-E));E=t+i,setTimeout((function(){return e(E)}),i)},p=1/60*1e3,v=!0,x=!1,_=!1,b={delta:0,timestamp:0},g=["read","update","preRender","render","postRender"],T=function(e){return x=e},y=g.reduce((function(e,t){var i,s,r,n,o,a,l,h,c;return e[t]=(i=T,s=[],r=[],n=0,o=!1,a=0,l=new WeakSet,h=new WeakSet,c={cancel:function(e){var t=r.indexOf(e);l.add(e),-1!==t&&r.splice(t,1)},process:function(e){var t,d;if(o=!0,s=(t=[r,s])[0],(r=t[1]).length=0,n=s.length)for(a=0;a<n;a++)(d=s[a])(e),!0!==h.has(d)||l.has(d)||(c.schedule(d),i(!0));o=!1},schedule:function(e,t,i){void 0===t&&(t=!1),void 0===i&&(i=!1);var a=i&&o,c=a?s:r;l.delete(e),t&&h.add(e),-1===c.indexOf(e)&&(c.push(e),a&&(n=s.length))}}),e}),{}),w=g.reduce((function(e,t){var i=y[t];return e[t]=function(e,t,s){return void 0===t&&(t=!1),void 0===s&&(s=!1),x||N(),i.schedule(e,t,s),e},e}),{}),B=function(e){return y[e].process(b)},L=function(e){x=!1,b.delta=v?p:Math.max(Math.min(e-b.timestamp,40),1),v||(p=b.delta),b.timestamp=e,_=!0,g.forEach(B),_=!1,x&&(v=!1,m(L))},N=function(){x=!0,v=!0,_||m(L)},C=function(){return(C=Object.assign||function(e){for(var t,i=1,s=arguments.length;i<s;i++)for(var r in t=arguments[i])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}).apply(this,arguments)},$=function(e,t){return function(i){return Math.max(Math.min(i,t),e)}},O=function(e){return e%1?Number(e.toFixed(5)):e},z=/^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2,3}\s*\/*\s*[\d\.]+%?\))$/i,R={test:function(e){return"number"==typeof e},parse:parseFloat,transform:function(e){return e}},S=C(C({},R),{transform:$(0,1)}),A=C(C({},R),{default:1}),M=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}}},X=M("deg"),V=M("%"),k=M("px"),I=C(C({},V),{parse:function(e){return V.parse(e)/100},transform:function(e){return V.transform(100*e)}}),D=$(0,255),H=function(e){return void 0!==e.red},W=function(e){return void 0!==e.hue};var j=function(e){return function(t){if("string"!=typeof t)return t;for(var i={},s=function(e){return e.substring(e.indexOf("(")+1,e.lastIndexOf(")"))}(t).replace(/(,|\/)/g," ").split(/ \s*/),r=0;r<4;r++)i[e[r]]=void 0!==s[r]?parseFloat(s[r]):1;return i}},G=C(C({},R),{transform:function(e){return Math.round(D(e))}});function Z(e,t){return e.startsWith(t)&&z.test(e)}var F,P={test:function(e){return"string"==typeof e?Z(e,"rgb"):H(e)},parse:j(["red","green","blue","alpha"]),transform:function(e){var t=e.red,i=e.green,s=e.blue,r=e.alpha,n=void 0===r?1:r;return function(e){var t=e.red,i=e.green,s=e.blue,r=e.alpha;return"rgba("+t+", "+i+", "+s+", "+(void 0===r?1:r)+")"}({red:G.transform(t),green:G.transform(i),blue:G.transform(s),alpha:O(S.transform(n))})}},Y={test:function(e){return"string"==typeof e?Z(e,"hsl"):W(e)},parse:j(["hue","saturation","lightness","alpha"]),transform:function(e){var t=e.hue,i=e.saturation,s=e.lightness,r=e.alpha,n=void 0===r?1:r;return function(e){var t=e.hue,i=e.saturation,s=e.lightness,r=e.alpha;return"hsla("+t+", "+i+", "+s+", "+(void 0===r?1:r)+")"}({hue:Math.round(t),saturation:V.transform(O(i)),lightness:V.transform(O(s)),alpha:O(S.transform(n))})}},q=C(C({},P),{test:function(e){return"string"==typeof e&&Z(e,"#")},parse:function(e){var t="",i="",s="";return e.length>4?(t=e.substr(1,2),i=e.substr(3,2),s=e.substr(5,2)):(t=e.substr(1,1),i=e.substr(2,1),s=e.substr(3,1),t+=t,i+=i,s+=s),{red:parseInt(t,16),green:parseInt(i,16),blue:parseInt(s,16),alpha:1}}}),U={test:function(e){return"string"==typeof e&&z.test(e)||H(e)||W(e)},parse:function(e){return P.test(e)?P.parse(e):Y.test(e)?Y.parse(e):q.test(e)?q.parse(e):e},transform:function(e){return H(e)?P.transform(e):W(e)?Y.transform(e):e}},J=function(e){var t=e.onRead,i=e.onRender,s=e.uncachedValues,r=void 0===s?new Set:s,n=e.useCache,o=void 0===n||n;return function(e){void 0===e&&(e={});var s=f(e,[]),n={},a=[],l=!1;function h(e,t){e.startsWith("--")&&(s.hasCSSVariable=!0);var i=n[e];n[e]=t,n[e]!==i&&(-1===a.indexOf(e)&&a.push(e),l||(l=!0,w.render(c.render)))}var c={get:function(e,i){return void 0===i&&(i=!1),!i&&o&&!r.has(e)&&void 0!==n[e]?n[e]:t(e,s)},set:function(e,t){if("string"==typeof e)h(e,t);else for(var i in e)h(i,e[i]);return this},render:function(e){return void 0===e&&(e=!1),(l||!0===e)&&(i(n,s,a),l=!1,a.length=0),this}};return c}},Q=/([a-z])([A-Z])/g,K=function(e){return e.replace(Q,"$1-$2").toLowerCase()},ee=new Map,te=new Map,ie=["Webkit","Moz","O","ms",""],se=ie.length,re="undefined"!=typeof document,ne=function(e,t){return te.set(e,K(t))},oe=function(e,t){void 0===t&&(t=!1);var i=t?te:ee;return i.has(e)||(re?function(e){F=F||document.createElement("div");for(var t=0;t<se;t++){var i=ie[t],s=""===i,r=s?e:i+e.charAt(0).toUpperCase()+e.slice(1);if(r in F.style||s){if(s&&"clipPath"===e&&te.has(e))return;ee.set(e,r),ne(e,(s?"":"-")+K(r))}}}(e):function(e){ne(e,e)}(e)),i.get(e)||e},ae=["","X","Y","Z"],le=["translate","scale","rotate","skew","transformPerspective"].reduce((function(e,t){return ae.reduce((function(e,i){return e.push(t+i),e}),e)}),["x","y","z"]),he=le.reduce((function(e,t){return e[t]=!0,e}),{});function ce(e){return!0===he[e]}function de(e,t){return le.indexOf(e)-le.indexOf(t)}var ue=new Set(["originX","originY","originZ"]);function fe(e){return ue.has(e)}var Ee=u(u({},R),{transform:Math.round}),me={color:U,backgroundColor:U,outlineColor:U,fill:U,stroke:U,borderColor:U,borderTopColor:U,borderRightColor:U,borderBottomColor:U,borderLeftColor:U,borderWidth:k,borderTopWidth:k,borderRightWidth:k,borderBottomWidth:k,borderLeftWidth:k,borderRadius:k,radius:k,borderTopLeftRadius:k,borderTopRightRadius:k,borderBottomRightRadius:k,borderBottomLeftRadius:k,width:k,maxWidth:k,height:k,maxHeight:k,size:k,top:k,right:k,bottom:k,left:k,padding:k,paddingTop:k,paddingRight:k,paddingBottom:k,paddingLeft:k,margin:k,marginTop:k,marginRight:k,marginBottom:k,marginLeft:k,rotate:X,rotateX:X,rotateY:X,rotateZ:X,scale:A,scaleX:A,scaleY:A,scaleZ:A,skew:X,skewX:X,skewY:X,distance:k,translateX:k,translateY:k,translateZ:k,x:k,y:k,z:k,perspective:k,opacity:S,originX:I,originY:I,originZ:k,zIndex:Ee,fillOpacity:S,strokeOpacity:S,numOctaves:Ee},pe=function(e){return me[e]},ve=function(e,t){return t&&"number"==typeof e?t.transform(e):e},xe=new Set(["scrollLeft","scrollTop"]),_e=new Set(["scrollLeft","scrollTop","transform"]),be={x:"translateX",y:"translateY",z:"translateZ"};function ge(e){return"function"==typeof e}function Te(e,t,i,s,r,n,o,a){void 0===t&&(t=!0),void 0===i&&(i={}),void 0===s&&(s={}),void 0===r&&(r={}),void 0===n&&(n=[]),void 0===o&&(o=!1),void 0===a&&(a=!0);var l=!0,h=!1,c=!1;for(var d in e){var u=e[d],f=pe(d),E=ve(u,f);ce(d)?(h=!0,s[d]=E,n.push(d),l&&(f.default&&u!==f.default||!f.default&&0!==u)&&(l=!1)):fe(d)?(r[d]=E,c=!0):_e.has(d)&&ge(E)||(i[oe(d,o)]=E)}return(h||"function"==typeof e.transform)&&(i.transform=function(e,t,i,s,r,n){void 0===n&&(n=!0);var o="",a=!1;i.sort(de);for(var l=i.length,h=0;h<l;h++){var c=i[h];o+=(be[c]||c)+"("+t[c]+") ",a="z"===c||a}return!a&&r?o+="translateZ(0)":o=o.trim(),ge(e.transform)?o=e.transform(t,s?"":o):n&&s&&(o="none"),o}(e,s,n,l,t,a)),c&&(i.transformOrigin=(r.originX||"50%")+" "+(r.originY||"50%")+" "+(r.originZ||0)),i}function ye(e){var t=void 0===e?{}:e,i=t.enableHardwareAcceleration,s=void 0===i||i,r=t.isDashCase,n=void 0===r||r,o=t.allowTransformNone,a=void 0===o||o,l={},h={},c={},d=[];return function(e){return d.length=0,Te(e,s,l,h,c,d,n,a),l}}var we=J({onRead:function(e,t){var i=t.element,s=t.preparseOutput,r=pe(e);if(ce(e))return r&&r.default||0;if(xe.has(e))return i[e];var n=window.getComputedStyle(i,null).getPropertyValue(oe(e,!0))||0;return s&&r&&r.test(n)&&r.parse?r.parse(n):n},onRender:function(e,t,i){var s=t.element,r=t.buildStyles,n=t.hasCSSVariable;if(Object.assign(s.style,r(e)),n)for(var o=i.length,a=0;a<o;a++){var l=i[a];l.startsWith("--")&&s.style.setProperty(l,e[l])}-1!==i.indexOf("scrollLeft")&&(s.scrollLeft=e.scrollLeft),-1!==i.indexOf("scrollTop")&&(s.scrollTop=e.scrollTop)},uncachedValues:xe});var Be=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues"]),Le=function(e,t){return k.transform(e*t)},Ne={x:0,y:0,width:0,height:0};function Ce(e,t,i){return"string"==typeof e?e:k.transform(t+i*e)}var $e={enableHardwareAcceleration:!1,isDashCase:!1};function Oe(e,t,i,s,r,n){void 0===t&&(t=Ne),void 0===s&&(s=ye($e)),void 0===r&&(r={style:{}}),void 0===n&&(n=!0);var o=e.attrX,a=e.attrY,l=e.originX,h=e.originY,c=e.pathLength,d=e.pathSpacing,u=void 0===d?1:d,E=e.pathOffset,m=void 0===E?0:E,p=s(f(e,["attrX","attrY","originX","originY","pathLength","pathSpacing","pathOffset"]));for(var v in p){if("transform"===v)r.style.transform=p[v];else r[n&&!Be.has(v)?K(v):v]=p[v]}return(void 0!==l||void 0!==h||p.transform)&&(r.style.transformOrigin=function(e,t,i){return Ce(t,e.x,e.width)+" "+Ce(i,e.y,e.height)}(t,void 0!==l?l:.5,void 0!==h?h:.5)),void 0!==o&&(r.x=o),void 0!==a&&(r.y=a),void 0!==i&&void 0!==c&&(r[n?"stroke-dashoffset":"strokeDashoffset"]=Le(-m,i),r[n?"stroke-dasharray":"strokeDasharray"]=Le(c,i)+" "+Le(u,i)),r}function ze(e,t,i){void 0===i&&(i=!0);var s={style:{}},r=ye($e);return function(n){return Oe(n,e,t,r,s,i)}}var Re=J({onRead:function(e,t){var i=t.element;if(ce(e=Be.has(e)?e:K(e))){var s=pe(e);return s&&s.default||0}return i.getAttribute(e)},onRender:function(e,t){var i=t.element,s=(0,t.buildAttrs)(e);for(var r in s)"style"===r?Object.assign(i.style,s.style):i.setAttribute(r,s[r])}}),Se=J({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,s=e.scrollLeft,r=void 0===s?0:s;return window.scrollTo(r,i)}}),Ae=new WeakMap,Me=function(e,t){var i,s,r,n;return e===window?i=Se(e):!function(e){return e instanceof HTMLElement||"function"==typeof e.click}(e)?function(e){return e instanceof SVGElement||"ownerSVGElement"in e}(e)&&(r=function(e){try{return function(e){return"function"==typeof e.getBBox?e.getBBox():e.getBoundingClientRect()}(e)}catch(t){return{x:0,y:0,width:0,height:0}}}(s=e),n=function(e){return"path"===e.tagName}(s)&&s.getTotalLength?s.getTotalLength():void 0,i=Re({element:s,buildAttrs:ze(r,n)})):i=function(e,t){void 0===t&&(t={});var i=t.enableHardwareAcceleration,s=t.allowTransformNone,r=f(t,["enableHardwareAcceleration","allowTransformNone"]);return we(u({element:e,buildStyles:ye({enableHardwareAcceleration:i,allowTransformNone:s}),preparseOutput:!0},r))}(e,t),Ae.set(e,i),i};function Xe(e,t){return function(e,t){return Ae.has(e)?Ae.get(e):Me(e,t)}("string"==typeof e?document.querySelector(e):e,t)}var Ve=function(e,t,i,s){var r=i?i.call(s,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 n=Object.keys(e),o=Object.keys(t);if(n.length!==o.length)return!1;for(var a=Object.prototype.hasOwnProperty.bind(t),l=0;l<n.length;l++){var h=n[l];if(!a(h))return!1;var c=e[h],d=t[h];if(!1===(r=i?i.call(s,c,d,h):void 0)||void 0===r&&c!==d)return!1}return!0};const ke="!#%()*+,-./:;=?@[]^_`{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",Ie=ke.length,De=Array(20),He=()=>{for(let e=0;e<20;e++)De[e]=ke.charAt(Math.random()*Ie);return De.join("")};class We{constructor(){this.disposers=new Map}add(e,t=He()){return this.flush(t),this.disposers.set(t,e()),t}addDisposer(e,t=He()){return this.flush(t),this.disposers.set(t,e),t}addEventListener(e,t,i,s,r=He()){return this.add((()=>(e.addEventListener(t,i,s),()=>e.removeEventListener(t,i,s))),r),r}setTimeout(e,t,i=He()){return this.add((()=>{const s=window.setTimeout((()=>{this.remove(i),e()}),t);return()=>window.clearTimeout(s)}),i)}setInterval(e,t,i=He()){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 je=Object.defineProperty,Ge=("undefined"!=typeof require&&require,(e,t,i)=>{return n=i,(r="symbol"!=typeof t?t+"":t)in(s=e)?je(s,r,{enumerable:!0,configurable:!0,writable:!0,value:n}):s[r]=n,i;var s,r,n});class Ze{constructor(e,t){Ge(this,"_value"),Ge(this,"_beforeDestroys"),Ge(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((s=>s(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 s=new Ze(e(this.value,void 0,i),t),r=this.reaction(((t,i,r)=>{s.setValue(e(t,i,r))}));return s.addBeforeDestroy(r),s}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 Fe(e,t){Object.keys(t).forEach((i=>{!function(e,t,i){var s;Object.defineProperties(e,{[t]:{get:()=>i.value},[`_${t}$`]:{value:i},[`set${s=t,s[0].toUpperCase()+s.slice(1)}`]:{value:(e,t)=>i.setValue(e,t)}})}(e,i,t[i])}))}function Pe(e){const t=t=>{const i=e.addDisposer((()=>{t.destroy()}));return t.addBeforeDestroy((()=>{e.remove(i)})),t};return{bindSideEffect:t,combine:(e,i,s,r)=>t(function(e,t,i,s){let r=e.map((e=>e.value));const n=new Ze(t(r,void 0,s),i);return e.forEach(((e,i)=>{const s=e.reaction(((e,s)=>{const o=r.slice();o[i]=e;const a=r;r=o,n.setValue(t(o,a,s),s)}));n.addBeforeDestroy(s)})),n}(e,i,s,r)),createVal:(e,i)=>t(new Ze(e,i))}}var Ye,qe,Ue,Je;exports.TELE_BOX_STATE=void 0,(Ye=exports.TELE_BOX_STATE||(exports.TELE_BOX_STATE={})).Normal="normal",Ye.Minimized="minimized",Ye.Maximized="maximized",exports.TELE_BOX_EVENT=void 0,(qe=exports.TELE_BOX_EVENT||(exports.TELE_BOX_EVENT={})).Close="close",qe.Focus="focus",qe.Blur="blur",qe.Move="move",qe.Resize="resize",qe.IntrinsicMove="intrinsic_move",qe.IntrinsicResize="intrinsic_resize",qe.VisualResize="visual_resize",qe.State="state",qe.Minimized="minimized",qe.Maximized="maximized",qe.Readonly="readonly",qe.Destroyed="destroyed",exports.TELE_BOX_DELEGATE_EVENT=void 0,(Ue=exports.TELE_BOX_DELEGATE_EVENT||(exports.TELE_BOX_DELEGATE_EVENT={})).Close="close",Ue.Maximize="maximize",Ue.Minimize="minimize",exports.TELE_BOX_RESIZE_HANDLE=void 0,(Je=exports.TELE_BOX_RESIZE_HANDLE||(exports.TELE_BOX_RESIZE_HANDLE={})).North="n",Je.South="s",Je.West="w",Je.East="e",Je.NorthWest="nw",Je.NorthEast="ne",Je.SouthEast="se",Je.SouthWest="sw";function Qe(e,t,i){return Math.min(Math.max(e,t),i)}function Ke(e){e.stopPropagation(),e.cancelable&&e.preventDefault()}function et(e){return e.touches?e.touches[0]:e}function tt(){return Date.now().toString().slice(6)+Math.random().toString().slice(2,8)}let it=1;function st(){return"New Box "+it++}function rt(e){return Boolean(e)}function nt(e){return!e}class ot{constructor({readonly:e=!1,title:t,buttons:i,onEvent:s,onDragStart:r,namespace:n="telebox",state:o=exports.TELE_BOX_STATE.Normal}={}){this.$btns=[],this.sideEffect=new We,this.lastTitleBarClick=0,this.handleTitleBarClick=e=>{var t;if(this.readonly)return;if(null!=e.button&&0!==e.button)return;if(null==(t=e.target.dataset)?void 0:t.teleTitleBarNoDblClick)return;Ke(e);const i=Date.now();i-this.lastTitleBarClick<=500?this.onEvent&&this.onEvent({type:exports.TELE_BOX_DELEGATE_EVENT.Maximize}):this.onDragStart&&this.onDragStart(e),this.lastTitleBarClick=i},this.readonly=e,this.onEvent=s,this.onDragStart=r,this.namespace=n,this.title=t,this.state=o,this.buttons=i||[{type:exports.TELE_BOX_DELEGATE_EVENT.Minimize,iconClassName:this.wrapClassName("titlebar-icon-minimize")},{type:exports.TELE_BOX_DELEGATE_EVENT.Maximize,iconClassName:this.wrapClassName("titlebar-icon-maximize"),isActive:e=>e===exports.TELE_BOX_STATE.Maximized},{type:exports.TELE_BOX_DELEGATE_EVENT.Close,iconClassName:this.wrapClassName("titlebar-icon-close")}]}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"),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 e=document.createElement("div");e.className=this.wrapClassName("titlebar-btns"),this.buttons.forEach((({iconClassName:t,isActive:i},s)=>{const r=String(s),n=document.createElement("button");n.className=`${this.wrapClassName("titlebar-btn")} ${t}`,n.dataset.teleTitleBarBtnIndex=r,n.dataset.teleTitleBarNoDblClick="true",i&&n.classList.toggle("is-active",i(this.state)),this.$btns.push(n),e.appendChild(n)})),this.sideEffect.addEventListener(e,"click",(e=>{var t;if(this.readonly)return;const i=e.target,s=Number(null==(t=i.dataset)?void 0:t.teleTitleBarBtnIndex);if(!Number.isNaN(s)&&s<this.buttons.length){Ke(e);const t=this.buttons[s];this.onEvent&&this.onEvent({type:t.type,value:t.value})}})),this.$titleBar.appendChild(this.$title),this.$titleBar.appendChild(e)}return this.$titleBar}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 at{constructor({id:e=tt(),title:t=st(),visible:i=!0,width:s=.5,height:r=.5,minWidth:n=0,minHeight:o=0,x:a=.1,y:l=.1,minimized:h=!1,maximized:c=!1,readonly:u=!1,resizable:f=!0,draggable:E=!0,fence:m=!0,fixRatio:p=!1,focus:v=!1,zIndex:x=100,namespace:_="telebox",titleBar:b,content:g,footer:T,styles:y,containerRect:w={x:0,y:0,width:window.innerWidth,height:window.innerHeight},collectorRect:B}={}){this._renderSideEffect=new We,this.handleTrackStart=e=>{var t;return null==(t=this._handleTrackStart)?void 0:t.call(this,e)},this._sideEffect=new We,this._valSideEffectBinder=Pe(this._sideEffect);const{combine:L,createVal:N}=this._valSideEffectBinder;this.id=e,this.namespace=_,this.events=new d,this._delegateEvents=new d;const C=N(w,Ve),$=N(B,Ve),O=N(t),z=N(i);z.reaction(((e,t,i)=>{i||e||this.events.emit(exports.TELE_BOX_EVENT.Close)}));const R=N(u);R.reaction(((e,t,i)=>{i||this.events.emit(exports.TELE_BOX_EVENT.Readonly,e)}));const S=N(f),A=N(E),M=N(m),X=N(p),V=N(x),k=N(v);k.reaction(((e,t,i)=>{i||this.events.emit(e?exports.TELE_BOX_EVENT.Focus:exports.TELE_BOX_EVENT.Blur)}));const I=N(h);I.reaction(((e,t,i)=>{i||this.events.emit(exports.TELE_BOX_EVENT.Minimized,e)}));const D=N(c);D.reaction(((e,t,i)=>{i||this.events.emit(exports.TELE_BOX_EVENT.Maximized,e)}));const H=L([I,D],(([e,t])=>e?exports.TELE_BOX_STATE.Minimized:t?exports.TELE_BOX_STATE.Maximized:exports.TELE_BOX_STATE.Normal));H.reaction(((e,t,i)=>{i||this.events.emit(exports.TELE_BOX_EVENT.State,e)}));const W=N({width:Qe(n,0,1),height:Qe(o,0,1)},Ve),j=N({width:Qe(s,W.value.width,1),height:Qe(r,W.value.height,1)},Ve);W.reaction(((e,t,i)=>{j.setValue({width:Qe(s,e.width,1),height:Qe(r,e.height,1)},i)})),j.reaction(((e,t,i)=>{i||this.events.emit(exports.TELE_BOX_EVENT.IntrinsicResize,e)}));const G=L([j,D],(([e,t])=>t?{width:1,height:1}:e),Ve);G.reaction(((e,t,i)=>{i||this.events.emit(exports.TELE_BOX_EVENT.Resize,e)}));const Z=L([G,I,C,$],(([e,t,i,s])=>t&&s?{width:s.width/e.width/i.width,height:s.height/e.height/i.height}:e),Ve);Z.reaction(((e,t,i)=>{i||this.events.emit(exports.TELE_BOX_EVENT.VisualResize,e)}));const F=N({x:Qe(a,0,1),y:Qe(l,0,1)},Ve);F.reaction(((e,t,i)=>{i||this.events.emit(exports.TELE_BOX_EVENT.IntrinsicMove,e)}));const P=L([F,j,C,$,I,D],(([e,t,i,s,r,n])=>r&&s?n?{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-t.width/2,y:(s.y+s.height/2)/i.height-t.height/2}:n?{x:0,y:0}:e),Ve);P.reaction(((e,t,i)=>{i||this.events.emit(exports.TELE_BOX_EVENT.Move,e)})),this.titleBar=b||new ot({readonly:R.value,title:O.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 exports.TELE_BOX_DELEGATE_EVENT.Maximize:D.setValue(!D.value);break;case exports.TELE_BOX_DELEGATE_EVENT.Minimize:I.setValue(!0);break;case exports.TELE_BOX_DELEGATE_EVENT.Close:z.setValue(!1);break;default:console.error("Unsupported titleBar event:",e)}}}),R.reaction((e=>{this.titleBar.setReadonly(e)}));const Y=N(g),q=N(T),U=N(y);Fe(this,{containerRect:C,collectorRect:$,title:O,visible:z,readonly:R,resizable:S,draggable:A,fence:M,fixRatio:X,focus:k,zIndex:V,minimized:I,maximized:D,$userContent:Y,$userFooter:q,$userStyles:U}),this._state$=H,this._minSize$=W,this._size$=G,this._intrinsicSize$=j,this._visualSize$=Z,this._coord$=P,this._intrinsicCoord$=F,this.fixRatio&&this.transform(P.value.x,P.value.y,G.value.width,G.value.height,!0),this.$box=this.render()}get state(){return this._state$.value}setState(e,t=!1){switch(e){case exports.TELE_BOX_STATE.Maximized:this.setMinimized(!1,t),this.setMaximized(!0,t);break;case exports.TELE_BOX_STATE.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,s,r=!1){if(this.fixRatio){const e=this.intrinsicHeight/this.intrinsicWidth*i;t!==this.intrinsicY&&(t-=e-s),s=e}return t<0&&(t=0,s>this.intrinsicHeight&&(s=this.intrinsicHeight)),this._intrinsicCoord$.setValue({x:i>=this.minWidth?e:this.intrinsicX,y:s>=this.minHeight?t:this.intrinsicY},r),this._intrinsicSize$.setValue({width:Qe(i,this.minWidth,1),height:Qe(s,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,s=rt)=>this._renderSideEffect.add((()=>{const r=this.wrapClassName(i);return t.subscribe((t=>{e.classList.toggle(r,s(t))}))}));t(this.$box,this._readonly$,"readonly"),t(this.$box,this._draggable$,"no-drag",nt),t(this.$box,this._resizable$,"no-resize",nt),t(this.$box,this._focus$,"blur",nt),this._renderSideEffect.add((()=>{const e=this.wrapClassName("minimized"),t=this.wrapClassName("maximized"),i="box-maximized-timer";return this._state$.subscribe((s=>{this.$box.classList.toggle(e,s===exports.TELE_BOX_STATE.Minimized),s===exports.TELE_BOX_STATE.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=Xe(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,r=this.y*this.containerRect.height+this.containerRect.y;this.$box.style.transform=`translate(${s-10}px,${r-10}px)`,this._valSideEffectBinder.combine([this._coord$,this._size$,this._minimized$,this._containerRect$,this._collectorRect$],(([e,t,i,s,r])=>{const n=t.width*s.width,o=t.height*s.height;return{width:n,height:o,x:e.x*s.width,y:e.y*s.height,scaleX:i&&r?r.width/n:1,scaleY:i&&r?r.height/o:1}}),Ve).subscribe((e=>{i.set(e)})),i.set({x:s,y:r});const n=document.createElement("div");n.className=this.wrapClassName("box-main"),this.$box.appendChild(n);const o=document.createElement("div");o.className=this.wrapClassName("titlebar-wrap"),o.appendChild(this.titleBar.render());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 e;return this._$userStyles$.subscribe((t=>{e&&e.remove(),e=t,t&&l.appendChild(t)}))})),this._renderSideEffect.add((()=>{let e;return this._$userContent$.subscribe((t=>{e&&e.remove(),e=t,t&&l.appendChild(t)}))})),a.appendChild(l);const h=document.createElement("div");return h.className=this.wrapClassName("footer-wrap"),this.$footer=h,this._renderSideEffect.add((()=>{let e;return this._$userFooter$.subscribe((t=>{e&&e.remove(),e=t,t&&h.appendChild(t)}))})),n.appendChild(o),n.appendChild(a),n.appendChild(h),this._renderResizeHandlers(),this.$box}_renderResizeHandlers(){const e=document.createElement("div");e.className=this.wrapClassName("resize-handles"),Object.values(exports.TELE_BOX_RESIZE_HANDLE).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 s,r,n=0,o=0,a=0,l=0,h=0,c=0;const d=e=>{if(this.state!==exports.TELE_BOX_STATE.Normal)return;Ke(e);let{pageX:t,pageY:i}=et(e);i<0&&(i=0);const s=(t-h)/this.containerRect.width,d=(i-c)/this.containerRect.height;switch(r){case exports.TELE_BOX_RESIZE_HANDLE.North:this.transform(this.x,o+d,this.width,l-d);break;case exports.TELE_BOX_RESIZE_HANDLE.South:this.transform(this.x,this.y,this.width,l+d);break;case exports.TELE_BOX_RESIZE_HANDLE.West:this.transform(n+s,this.y,a-s,this.height);break;case exports.TELE_BOX_RESIZE_HANDLE.East:this.transform(this.x,this.y,a+s,this.height);break;case exports.TELE_BOX_RESIZE_HANDLE.NorthWest:this.transform(n+s,o+d,a-s,l-d);break;case exports.TELE_BOX_RESIZE_HANDLE.NorthEast:this.transform(this.x,o+d,a+s,l-d);break;case exports.TELE_BOX_RESIZE_HANDLE.SouthEast:this.transform(this.x,this.y,a+s,l+d);break;case exports.TELE_BOX_RESIZE_HANDLE.SouthWest:this.transform(n+s,this.y,a-s,l+d);break;default:if(this.fence)this.move(Qe(n+s,0,1-this.width),Qe(o+d,0,1-this.height));else{const e=20/this.containerRect.width,t=20/this.containerRect.height;this.move(Qe(n+s,e-this.width,1-e),Qe(o+d,0,1-t))}}},u=e=>{r=void 0,s&&(Ke(e),this.$box.classList.toggle(i,!1),this._sideEffect.flush(t),s.remove())},f=e=>{var f;if(this.readonly)return;if(null!=e.button&&0!==e.button)return;if(!this.draggable||r||this.state!==exports.TELE_BOX_STATE.Normal)return;const E=e.target;if(null==(f=E.dataset)?void 0:f.teleBoxHandle){Ke(e),n=this.x,o=this.y,a=this.width,l=this.height,({pageX:h,pageY:c}=et(e)),r=E.dataset.teleBoxHandle,s||(s=document.createElement("div"));const f=r?this.wrapClassName(`cursor-${r}`):"";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)})),t)}};this._handleTrackStart=f,this._sideEffect.addEventListener(e,"mousedown",f,{},"box-resizeHandles-mousedown"),this._sideEffect.addEventListener(e,"touchstart",f,{passive:!1},"box-resizeHandles-touchstart")}destroy(){this.$box.remove(),this.events.emit(exports.TELE_BOX_EVENT.Destroyed),this._sideEffect.flushAll(),this._renderSideEffect.flushAll(),this.events.removeAllListeners(),this._delegateEvents.removeAllListeners()}wrapClassName(e){return`${this.namespace}-${e}`}}const lt=(e,t)=>{const i=a.useRef(!0);a.useEffect((()=>{if(!i.current)return e();i.current=!1}),t)};var ht;class ct{constructor({visible:e=!0,readonly:t=!1,namespace:i="telebox",styles:s={},onClick:r}={}){this.handleCollectorClick=()=>{!this._readonly&&this.onClick&&this.onClick()},this._visible=Boolean(e),this._readonly=Boolean(t),this.namespace=i,this.styles=s,this.onClick=r}get visible(){return this._visible}get readonly(){return this._readonly}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}setStyles(e){if(Object.assign(this.styles,e),this.$collector){const t=this.$collector;Object.keys(e).forEach((i=>{const s=e[i];null!=s&&(t.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 e=document.createElement("img");e.draggable=!1,e.className=this.wrapClassName("collector-icon"),e.src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxNiI+CiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxwYXRoIHN0cm9rZT0iIzdCODhBMCIgc3Ryb2tlLXdpZHRoPSIxLjQiIGQ9Ik0uNyAxLjJoMTYuNnYxMy42SC43eiIgLz4KICAgICAgICA8cGF0aCBmaWxsPSIjN0I4OEEwIiBkPSJNNCA1LjVoNnYxLjRINHpNNCA5LjVoMTB2MS40SDR6IiAvPgogICAgPC9nPgo8L3N2Zz4K",this.$collector.appendChild(e),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(e){return`${this.namespace}-${e}`}}exports.TELE_BOX_MANAGER_EVENT=void 0,(ht=exports.TELE_BOX_MANAGER_EVENT||(exports.TELE_BOX_MANAGER_EVENT={})).Focused="focused",ht.Created="created",ht.Removed="removed",ht.State="state",ht.Maximized="maximized",ht.Minimized="minimized",ht.Move="move",ht.Resize="resize",ht.IntrinsicMove="intrinsic_move",ht.IntrinsicResize="intrinsic_resize",ht.VisualResize="visual_resize";class dt extends ot{constructor(e){super(e),this.boxes=e.boxes,this.focusedBox=e.focusedBox,this.containerRect=e.containerRect}focusBox(e){var t;if(e||(e=this.boxes[this.boxes.length-1]),!this.focusedBox||this.focusedBox!==e){if(this.$titles&&this.state===exports.TELE_BOX_STATE.Maximized){const{children:i}=this.$titles.firstElementChild;for(let s=i.length-1;s>=0;s-=1){const r=i[s],n=null==(t=r.dataset)?void 0:t.teleBoxID;n&&(e&&n===e.id?r.classList.toggle(this.wrapClassName("titles-tab-focus"),!0):this.focusedBox&&n===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:s}=e;this.$titleBar.style.transform=`translate(${t}px, ${i}px)`,this.$titleBar.style.width=s+"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===exports.TELE_BOX_STATE.Maximized),this.updateTitles()}setReadonly(e){super.setReadonly(e),this.$titleBar&&this.$titleBar.classList.toggle(this.wrapClassName("readonly"),this.readonly)}render(){const e=super.render(),{x:t,y:i,width:s}=this.containerRect;return e.style.transform=`translate(${t}px, ${i}px)`,e.style.width=s+"px",e.classList.add(this.wrapClassName("max-titlebar")),e.classList.toggle(this.wrapClassName("max-titlebar-maximized"),this.state===exports.TELE_BOX_STATE.Maximized),e.classList.toggle(this.wrapClassName("readonly"),this.readonly),this.updateTitles(),e}destroy(){super.destroy(),this.$titles=void 0,this.boxes.length=0,this.focusedBox=void 0}updateTitles(){this.$titleBar&&this.state===exports.TELE_BOX_STATE.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}}exports.DefaultTitleBar=ot,exports.TeleBox=at,exports.TeleBoxCollector=ct,exports.TeleBoxDragHandleType="dh",exports.TeleBoxManager=class{constructor({root:e=document.body,minimized:t=!1,maximized:i=!1,fence:s=!0,containerRect:r={x:0,y:0,width:window.innerWidth,height:window.innerHeight},collector:n,namespace:o="telebox",zIndex:a=100,readonly:l=!1}={}){this.events=new d,this.boxes=[],this._sideEffect=new We;const{combine:h,createVal:c}=Pe(this._sideEffect);this.root=e,this.namespace=o,this.zIndex=a;const u=c(l);u.reaction(((e,t,i)=>{this.boxes.forEach((t=>t.setReadonly(e,i)))}));const f=c(t),E=c(i);E.reaction(((e,t,i)=>{this.boxes.forEach((t=>t.setMaximized(e,i))),i||this.events.emit(exports.TELE_BOX_MANAGER_EVENT.Maximized,e)}));const m=h([f,E],(([e,t])=>e?exports.TELE_BOX_STATE.Minimized:t?exports.TELE_BOX_STATE.Maximized:exports.TELE_BOX_STATE.Normal));m.reaction(((e,t,i)=>{this.maxTitleBar.setState(e),i||this.events.emit(exports.TELE_BOX_MANAGER_EVENT.State,e)}));const p=c(s);p.subscribe(((e,t,i)=>{this.boxes.forEach((t=>t.setFence(e,i)))}));const v=c(r,Ve);v.reaction(((e,t,i)=>{this.boxes.forEach((t=>t.setContainerRect(e,i))),this.maxTitleBar.setContainerRect(e)}));const x=c(null===n?null:n||new ct({visible:t,readonly:l,namespace:o}).mount(e));x.subscribe((e=>{e&&(e.setVisible(f.value),e.setReadonly(u.value),this._sideEffect.add((()=>(e.onClick=()=>{u.value||f.setValue(!1)},()=>e.destroy())),"collect-onClick"))})),u.subscribe((e=>{var t;return null==(t=x.value)?void 0:t.setReadonly(e)})),f.subscribe(((e,t,i)=>{var s,r;if(null==(s=x.value)||s.setVisible(e),e&&(null==(r=x.value)?void 0:r.$collector)){const{x:e,y:t,width:i,height:s}=x.value.$collector.getBoundingClientRect(),r=this.root.getBoundingClientRect();this.boxes.forEach((n=>{n.setCollectorRect({x:e-r.x,y:t-r.y,width:i,height:s},!0)}))}this.boxes.forEach((t=>t.setMinimized(e,i))),i||this.events.emit(exports.TELE_BOX_MANAGER_EVENT.Minimized,e)}));const _=e=>{var t;if(u.value)return;const i=e.target;if(i.tagName)for(let s=i;s;s=s.parentElement){const e=null==(t=s.dataset)?void 0:t.teleBoxID;if(e){const t=this.boxes.find((t=>t.id===e));if(t)return void this.focusBox({focus:!0,box:t})}}};this._sideEffect.addEventListener(window,"mousedown",_,!0),this._sideEffect.addEventListener(window,"touchstart",_,!0),this.maxTitleBar=new dt({readonly:u.value,namespace:this.namespace,state:m.value,boxes:this.boxes,focusedBox:this._focusedBox,containerRect:v.value,onEvent:e=>{var t;switch(e.type){case exports.TELE_BOX_DELEGATE_EVENT.Maximize:E.setValue(!E.value);break;case exports.TELE_BOX_DELEGATE_EVENT.Minimize:f.setValue(!0);break;case exports.TELE_BOX_EVENT.Close:{const e=null!=(t=this._focusedBox)?t:this.boxes[this.boxes.length-1];e&&this.remove(e.id);break}}}}),u.subscribe((e=>this.maxTitleBar.setReadonly(e)));Fe(this,{containerRect:v,collector:x,readonly:u,fence:p,minimized:f,maximized:E}),this._state$=m,this.root.appendChild(this.maxTitleBar.render())}get state(){return this._state$.value}setState(e,t=!1){switch(e){case exports.TELE_BOX_STATE.Maximized:this.setMinimized(!1,t),this.setMaximized(!0,t);break;case exports.TELE_BOX_STATE.Minimized:this.setMinimized(!0,t),this.setMaximized(!1,t);break;default:this.setMinimized(!1,t),this.setMaximized(!1,t)}return this}create(e){const t=new at(this.wrapCreateConfig(e));return t.mount(this.root),this.boxes.push(t),t.focus&&this.focusBox({focus:!0,box:t,increaseZIndex:!1}),this.maxTitleBar.setBoxes(this.boxes),t._delegateEvents.on(exports.TELE_BOX_DELEGATE_EVENT.Maximize,(()=>{this.setMaximized(!this.maximized)})),t._delegateEvents.on(exports.TELE_BOX_DELEGATE_EVENT.Minimize,(()=>{this.setMinimized(!0)})),t._delegateEvents.on(exports.TELE_BOX_DELEGATE_EVENT.Close,(()=>{this.focusBox({focus:!1,box:t}),this.remove(t.id)})),t.events.on(exports.TELE_BOX_EVENT.Move,(()=>{this.events.emit(exports.TELE_BOX_MANAGER_EVENT.Move,t)})),t.events.on(exports.TELE_BOX_EVENT.Resize,(()=>{this.events.emit(exports.TELE_BOX_MANAGER_EVENT.Resize,t)})),t.events.on(exports.TELE_BOX_EVENT.IntrinsicMove,(()=>{this.events.emit(exports.TELE_BOX_MANAGER_EVENT.IntrinsicMove,t)})),t.events.on(exports.TELE_BOX_EVENT.IntrinsicResize,(()=>{this.events.emit(exports.TELE_BOX_MANAGER_EVENT.IntrinsicResize,t)})),t.events.on(exports.TELE_BOX_EVENT.VisualResize,(()=>{this.events.emit(exports.TELE_BOX_MANAGER_EVENT.VisualResize,t)})),this.events.emit(exports.TELE_BOX_MANAGER_EVENT.Created,t),t}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 s=this.boxes.find((t=>t.id===e));if(s)return this.updateBox(s,t,i)}updateAll(e,t=!1){this.boxes.forEach((i=>{this.updateBox(i,e,t)}))}remove(e,t=!1){const i=this.boxes.findIndex((t=>t.id===e));if(i>=0){const e=this.boxes.splice(i,1);this.maxTitleBar.setBoxes(this.boxes);const s=e[0];return this.focusBox({focus:!1,box:s}),s.destroy(),this.boxes.length<=0&&(this.setMaximized(!1),this.setMinimized(!1)),t||this.events.emit(exports.TELE_BOX_MANAGER_EVENT.Removed,e),s}}removeAll(e=!1){if(this._focusedBox){const t=this._focusedBox;this._focusedBox=void 0,e||this.events.emit(exports.TELE_BOX_MANAGER_EVENT.Focused,void 0,t)}const t=this.boxes.splice(0,this.boxes.length);return this.maxTitleBar.setBoxes(this.boxes),t.forEach((e=>e.destroy())),this.boxes.length<=0&&(this.setMaximized(!1),this.setMinimized(!1)),e||this.events.emit(exports.TELE_BOX_MANAGER_EVENT.Removed,t),t}destroy(e=!1){this.events.removeAllListeners(),this._sideEffect.flushAll(),this._focusedBox=void 0,this.removeAll(e),Object.keys(this).forEach((e=>{const t=this[e];t instanceof Ze&&t.destroy()}))}wrapClassName(e){return`${this.namespace}-${e}`}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),null!=t.draggable&&e.setDraggable(t.draggable),null!=t.fixRatio&&e.setFixRatio(t.fixRatio,i),null!=t.focus&&this.focusBox({focus:t.focus,box:e,skipUpdate:i}),null!=t.content&&e.mountContent(t.content),null!=t.footer&&e.mountFooter(t.footer)}focusBox({focus:e,box:t,skipUpdate:i=!1,increaseZIndex:s=!0}){if(t.setFocus(e,i),t.focus){if(this._focusedBox!==t){const e=this._focusedBox;this._focusedBox&&this._focusedBox.setFocus(!1,i),this._focusedBox=t,s&&t.setZIndex(++this.zIndex),i||this.events.emit(exports.TELE_BOX_MANAGER_EVENT.Focused,t,e)}}else this._focusedBox===t&&(this._focusedBox=void 0,i||this.events.emit(exports.TELE_BOX_MANAGER_EVENT.Focused,void 0,t));this.maxTitleBar.focusBox(this._focusedBox)}getInitialPosition(e,t){const i=this.boxes.length>0&&this.boxes.reduce(((e,t)=>e.zIndex>t.zIndex?e:t));let s=20,r=20;return i&&(s=i.intrinsicX*this.containerRect.width+20,r=i.intrinsicY*this.containerRect.height+20,(s>this.containerRect.width-e*this.containerRect.width||r>this.containerRect.height-t*this.containerRect.height)&&(s=20,r=20)),{x:s/this.containerRect.width,y:r/this.containerRect.height}}wrapCreateConfig(e={}){let{x:a,y:l}=e;const{width:h=.5,height:c=.5}=e;if(null==a||null==l){const e=this.getInitialPosition(h,c);null==a&&(a=e.x),null==l&&(l=e.y)}return d=((e,t)=>{for(var i in t||(t={}))r.call(t,i)&&o(e,i,t[i]);if(s)for(var i of s(t))n.call(t,i)&&o(e,i,t[i]);return e})({},e),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},t(d,i(u));var d,u}},exports.TeleBoxReact=e=>{const[t]=a.useState((()=>new at(e)));return lt((()=>{null!=e.minWidth&&t.setMinWidth(e.minWidth)}),[t,e.minWidth]),lt((()=>{null!=e.minHeight&&t.setMinHeight(e.minHeight)}),[t,e.minHeight]),lt((()=>{var i,s;t.resize(null!=(i=e.width)?i:t.width,null!=(s=e.height)?s:t.height,!0)}),[t,e.width,e.height]),lt((()=>{var i,s;t.move(null!=(i=e.x)?i:t.x,null!=(s=e.y)?s:t.y,!0)}),[t,e.x,e.y]),lt((()=>{null!=e.title&&t.setTitle(e.title)}),[t,e.title]),lt((()=>{null!=e.visible&&t.setVisible(e.visible)}),[t,e.visible]),lt((()=>{null!=e.state&&t.setState(e.state,!0)}),[t,e.state]),lt((()=>{null!=e.draggable&&t.setDraggable(e.draggable)}),[t,e.draggable]),lt((()=>{null!=e.resizable&&t.setResizable(e.resizable)}),[t,e.resizable]),lt((()=>{null!=e.fence&&t.setFence(e.fence)}),[t,e.fence]),lt((()=>{null!=e.containerRect&&t.setContainerRect(e.containerRect)}),[t,e.containerRect]),lt((()=>{null!=e.fixRatio&&t.setFixRatio(e.fixRatio)}),[t,e.fixRatio]),a.useEffect((()=>{if(e.onResize)return t.events.on(exports.TELE_BOX_EVENT.Resize,e.onResize),()=>{t.events.off(exports.TELE_BOX_EVENT.Resize,e.onResize)}}),[t,e.onResize]),a.useEffect((()=>{if(e.onMove)return t.events.on(exports.TELE_BOX_EVENT.Move,e.onMove),()=>{t.events.off(exports.TELE_BOX_EVENT.Move,e.onMove)}}),[t,e.onMove]),a.useEffect((()=>{if(e.onClose)return t.events.on(exports.TELE_BOX_EVENT.Close,e.onClose),()=>{t.events.off(exports.TELE_BOX_EVENT.Close,e.onClose)}}),[t,e.onClose]),a.useEffect((()=>{if(e.onFocus)return t.events.on(exports.TELE_BOX_EVENT.Focus,e.onFocus),()=>{t.events.off(exports.TELE_BOX_EVENT.Focus,e.onFocus)}}),[t,e.onFocus]),a.useEffect((()=>{if(e.onBlur)return t.events.on(exports.TELE_BOX_EVENT.Blur,e.onBlur),()=>{t.events.off(exports.TELE_BOX_EVENT.Blur,e.onBlur)}}),[t,e.onBlur]),a.useEffect((()=>{if(e.onStateChanged)return t.events.on(exports.TELE_BOX_EVENT.State,e.onStateChanged),()=>{t.events.off(exports.TELE_BOX_EVENT.State,e.onStateChanged)}}),[t,e.onStateChanged]),h.default.createElement("div",{ref:e=>e&&t.render(e),className:t.wrapClassName("box")})};
|
|
15
|
+
***************************************************************************** */function f(e,t){var i={};for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&t.indexOf(s)<0&&(i[s]=e[s]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(s=Object.getOwnPropertySymbols(e);r<s.length;r++)t.indexOf(s[r])<0&&Object.prototype.propertyIsEnumerable.call(e,s[r])&&(i[s[r]]=e[s[r]])}return i}var E=0,m="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-E));E=t+i,setTimeout((function(){return e(E)}),i)},p=1/60*1e3,v=!0,x=!1,_=!1,b={delta:0,timestamp:0},g=["read","update","preRender","render","postRender"],T=function(e){return x=e},y=g.reduce((function(e,t){var i,s,r,n,o,a,l,h,c;return e[t]=(i=T,s=[],r=[],n=0,o=!1,a=0,l=new WeakSet,h=new WeakSet,c={cancel:function(e){var t=r.indexOf(e);l.add(e),-1!==t&&r.splice(t,1)},process:function(e){var t,d;if(o=!0,s=(t=[r,s])[0],(r=t[1]).length=0,n=s.length)for(a=0;a<n;a++)(d=s[a])(e),!0!==h.has(d)||l.has(d)||(c.schedule(d),i(!0));o=!1},schedule:function(e,t,i){void 0===t&&(t=!1),void 0===i&&(i=!1);var a=i&&o,c=a?s:r;l.delete(e),t&&h.add(e),-1===c.indexOf(e)&&(c.push(e),a&&(n=s.length))}}),e}),{}),w=g.reduce((function(e,t){var i=y[t];return e[t]=function(e,t,s){return void 0===t&&(t=!1),void 0===s&&(s=!1),x||N(),i.schedule(e,t,s),e},e}),{}),B=function(e){return y[e].process(b)},L=function(e){x=!1,b.delta=v?p:Math.max(Math.min(e-b.timestamp,40),1),v||(p=b.delta),b.timestamp=e,_=!0,g.forEach(B),_=!1,x&&(v=!1,m(L))},N=function(){x=!0,v=!0,_||m(L)},C=function(){return(C=Object.assign||function(e){for(var t,i=1,s=arguments.length;i<s;i++)for(var r in t=arguments[i])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}).apply(this,arguments)},$=function(e,t){return function(i){return Math.max(Math.min(i,t),e)}},O=function(e){return e%1?Number(e.toFixed(5)):e},z=/^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2,3}\s*\/*\s*[\d\.]+%?\))$/i,R={test:function(e){return"number"==typeof e},parse:parseFloat,transform:function(e){return e}},S=C(C({},R),{transform:$(0,1)}),A=C(C({},R),{default:1}),M=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}}},X=M("deg"),V=M("%"),k=M("px"),I=C(C({},V),{parse:function(e){return V.parse(e)/100},transform:function(e){return V.transform(100*e)}}),D=$(0,255),H=function(e){return void 0!==e.red},W=function(e){return void 0!==e.hue};var j=function(e){return function(t){if("string"!=typeof t)return t;for(var i={},s=function(e){return e.substring(e.indexOf("(")+1,e.lastIndexOf(")"))}(t).replace(/(,|\/)/g," ").split(/ \s*/),r=0;r<4;r++)i[e[r]]=void 0!==s[r]?parseFloat(s[r]):1;return i}},G=C(C({},R),{transform:function(e){return Math.round(D(e))}});function Z(e,t){return e.startsWith(t)&&z.test(e)}var F,P={test:function(e){return"string"==typeof e?Z(e,"rgb"):H(e)},parse:j(["red","green","blue","alpha"]),transform:function(e){var t=e.red,i=e.green,s=e.blue,r=e.alpha,n=void 0===r?1:r;return function(e){var t=e.red,i=e.green,s=e.blue,r=e.alpha;return"rgba("+t+", "+i+", "+s+", "+(void 0===r?1:r)+")"}({red:G.transform(t),green:G.transform(i),blue:G.transform(s),alpha:O(S.transform(n))})}},Y={test:function(e){return"string"==typeof e?Z(e,"hsl"):W(e)},parse:j(["hue","saturation","lightness","alpha"]),transform:function(e){var t=e.hue,i=e.saturation,s=e.lightness,r=e.alpha,n=void 0===r?1:r;return function(e){var t=e.hue,i=e.saturation,s=e.lightness,r=e.alpha;return"hsla("+t+", "+i+", "+s+", "+(void 0===r?1:r)+")"}({hue:Math.round(t),saturation:V.transform(O(i)),lightness:V.transform(O(s)),alpha:O(S.transform(n))})}},q=C(C({},P),{test:function(e){return"string"==typeof e&&Z(e,"#")},parse:function(e){var t="",i="",s="";return e.length>4?(t=e.substr(1,2),i=e.substr(3,2),s=e.substr(5,2)):(t=e.substr(1,1),i=e.substr(2,1),s=e.substr(3,1),t+=t,i+=i,s+=s),{red:parseInt(t,16),green:parseInt(i,16),blue:parseInt(s,16),alpha:1}}}),U={test:function(e){return"string"==typeof e&&z.test(e)||H(e)||W(e)},parse:function(e){return P.test(e)?P.parse(e):Y.test(e)?Y.parse(e):q.test(e)?q.parse(e):e},transform:function(e){return H(e)?P.transform(e):W(e)?Y.transform(e):e}},J=function(e){var t=e.onRead,i=e.onRender,s=e.uncachedValues,r=void 0===s?new Set:s,n=e.useCache,o=void 0===n||n;return function(e){void 0===e&&(e={});var s=f(e,[]),n={},a=[],l=!1;function h(e,t){e.startsWith("--")&&(s.hasCSSVariable=!0);var i=n[e];n[e]=t,n[e]!==i&&(-1===a.indexOf(e)&&a.push(e),l||(l=!0,w.render(c.render)))}var c={get:function(e,i){return void 0===i&&(i=!1),!i&&o&&!r.has(e)&&void 0!==n[e]?n[e]:t(e,s)},set:function(e,t){if("string"==typeof e)h(e,t);else for(var i in e)h(i,e[i]);return this},render:function(e){return void 0===e&&(e=!1),(l||!0===e)&&(i(n,s,a),l=!1,a.length=0),this}};return c}},Q=/([a-z])([A-Z])/g,K=function(e){return e.replace(Q,"$1-$2").toLowerCase()},ee=new Map,te=new Map,ie=["Webkit","Moz","O","ms",""],se=ie.length,re="undefined"!=typeof document,ne=function(e,t){return te.set(e,K(t))},oe=function(e,t){void 0===t&&(t=!1);var i=t?te:ee;return i.has(e)||(re?function(e){F=F||document.createElement("div");for(var t=0;t<se;t++){var i=ie[t],s=""===i,r=s?e:i+e.charAt(0).toUpperCase()+e.slice(1);if(r in F.style||s){if(s&&"clipPath"===e&&te.has(e))return;ee.set(e,r),ne(e,(s?"":"-")+K(r))}}}(e):function(e){ne(e,e)}(e)),i.get(e)||e},ae=["","X","Y","Z"],le=["translate","scale","rotate","skew","transformPerspective"].reduce((function(e,t){return ae.reduce((function(e,i){return e.push(t+i),e}),e)}),["x","y","z"]),he=le.reduce((function(e,t){return e[t]=!0,e}),{});function ce(e){return!0===he[e]}function de(e,t){return le.indexOf(e)-le.indexOf(t)}var ue=new Set(["originX","originY","originZ"]);function fe(e){return ue.has(e)}var Ee=u(u({},R),{transform:Math.round}),me={color:U,backgroundColor:U,outlineColor:U,fill:U,stroke:U,borderColor:U,borderTopColor:U,borderRightColor:U,borderBottomColor:U,borderLeftColor:U,borderWidth:k,borderTopWidth:k,borderRightWidth:k,borderBottomWidth:k,borderLeftWidth:k,borderRadius:k,radius:k,borderTopLeftRadius:k,borderTopRightRadius:k,borderBottomRightRadius:k,borderBottomLeftRadius:k,width:k,maxWidth:k,height:k,maxHeight:k,size:k,top:k,right:k,bottom:k,left:k,padding:k,paddingTop:k,paddingRight:k,paddingBottom:k,paddingLeft:k,margin:k,marginTop:k,marginRight:k,marginBottom:k,marginLeft:k,rotate:X,rotateX:X,rotateY:X,rotateZ:X,scale:A,scaleX:A,scaleY:A,scaleZ:A,skew:X,skewX:X,skewY:X,distance:k,translateX:k,translateY:k,translateZ:k,x:k,y:k,z:k,perspective:k,opacity:S,originX:I,originY:I,originZ:k,zIndex:Ee,fillOpacity:S,strokeOpacity:S,numOctaves:Ee},pe=function(e){return me[e]},ve=function(e,t){return t&&"number"==typeof e?t.transform(e):e},xe=new Set(["scrollLeft","scrollTop"]),_e=new Set(["scrollLeft","scrollTop","transform"]),be={x:"translateX",y:"translateY",z:"translateZ"};function ge(e){return"function"==typeof e}function Te(e,t,i,s,r,n,o,a){void 0===t&&(t=!0),void 0===i&&(i={}),void 0===s&&(s={}),void 0===r&&(r={}),void 0===n&&(n=[]),void 0===o&&(o=!1),void 0===a&&(a=!0);var l=!0,h=!1,c=!1;for(var d in e){var u=e[d],f=pe(d),E=ve(u,f);ce(d)?(h=!0,s[d]=E,n.push(d),l&&(f.default&&u!==f.default||!f.default&&0!==u)&&(l=!1)):fe(d)?(r[d]=E,c=!0):_e.has(d)&&ge(E)||(i[oe(d,o)]=E)}return(h||"function"==typeof e.transform)&&(i.transform=function(e,t,i,s,r,n){void 0===n&&(n=!0);var o="",a=!1;i.sort(de);for(var l=i.length,h=0;h<l;h++){var c=i[h];o+=(be[c]||c)+"("+t[c]+") ",a="z"===c||a}return!a&&r?o+="translateZ(0)":o=o.trim(),ge(e.transform)?o=e.transform(t,s?"":o):n&&s&&(o="none"),o}(e,s,n,l,t,a)),c&&(i.transformOrigin=(r.originX||"50%")+" "+(r.originY||"50%")+" "+(r.originZ||0)),i}function ye(e){var t=void 0===e?{}:e,i=t.enableHardwareAcceleration,s=void 0===i||i,r=t.isDashCase,n=void 0===r||r,o=t.allowTransformNone,a=void 0===o||o,l={},h={},c={},d=[];return function(e){return d.length=0,Te(e,s,l,h,c,d,n,a),l}}var we=J({onRead:function(e,t){var i=t.element,s=t.preparseOutput,r=pe(e);if(ce(e))return r&&r.default||0;if(xe.has(e))return i[e];var n=window.getComputedStyle(i,null).getPropertyValue(oe(e,!0))||0;return s&&r&&r.test(n)&&r.parse?r.parse(n):n},onRender:function(e,t,i){var s=t.element,r=t.buildStyles,n=t.hasCSSVariable;if(Object.assign(s.style,r(e)),n)for(var o=i.length,a=0;a<o;a++){var l=i[a];l.startsWith("--")&&s.style.setProperty(l,e[l])}-1!==i.indexOf("scrollLeft")&&(s.scrollLeft=e.scrollLeft),-1!==i.indexOf("scrollTop")&&(s.scrollTop=e.scrollTop)},uncachedValues:xe});var Be=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues"]),Le=function(e,t){return k.transform(e*t)},Ne={x:0,y:0,width:0,height:0};function Ce(e,t,i){return"string"==typeof e?e:k.transform(t+i*e)}var $e={enableHardwareAcceleration:!1,isDashCase:!1};function Oe(e,t,i,s,r,n){void 0===t&&(t=Ne),void 0===s&&(s=ye($e)),void 0===r&&(r={style:{}}),void 0===n&&(n=!0);var o=e.attrX,a=e.attrY,l=e.originX,h=e.originY,c=e.pathLength,d=e.pathSpacing,u=void 0===d?1:d,E=e.pathOffset,m=void 0===E?0:E,p=s(f(e,["attrX","attrY","originX","originY","pathLength","pathSpacing","pathOffset"]));for(var v in p){if("transform"===v)r.style.transform=p[v];else r[n&&!Be.has(v)?K(v):v]=p[v]}return(void 0!==l||void 0!==h||p.transform)&&(r.style.transformOrigin=function(e,t,i){return Ce(t,e.x,e.width)+" "+Ce(i,e.y,e.height)}(t,void 0!==l?l:.5,void 0!==h?h:.5)),void 0!==o&&(r.x=o),void 0!==a&&(r.y=a),void 0!==i&&void 0!==c&&(r[n?"stroke-dashoffset":"strokeDashoffset"]=Le(-m,i),r[n?"stroke-dasharray":"strokeDasharray"]=Le(c,i)+" "+Le(u,i)),r}function ze(e,t,i){void 0===i&&(i=!0);var s={style:{}},r=ye($e);return function(n){return Oe(n,e,t,r,s,i)}}var Re=J({onRead:function(e,t){var i=t.element;if(ce(e=Be.has(e)?e:K(e))){var s=pe(e);return s&&s.default||0}return i.getAttribute(e)},onRender:function(e,t){var i=t.element,s=(0,t.buildAttrs)(e);for(var r in s)"style"===r?Object.assign(i.style,s.style):i.setAttribute(r,s[r])}}),Se=J({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,s=e.scrollLeft,r=void 0===s?0:s;return window.scrollTo(r,i)}}),Ae=new WeakMap,Me=function(e,t){var i,s,r,n;return e===window?i=Se(e):!function(e){return e instanceof HTMLElement||"function"==typeof e.click}(e)?function(e){return e instanceof SVGElement||"ownerSVGElement"in e}(e)&&(r=function(e){try{return function(e){return"function"==typeof e.getBBox?e.getBBox():e.getBoundingClientRect()}(e)}catch(t){return{x:0,y:0,width:0,height:0}}}(s=e),n=function(e){return"path"===e.tagName}(s)&&s.getTotalLength?s.getTotalLength():void 0,i=Re({element:s,buildAttrs:ze(r,n)})):i=function(e,t){void 0===t&&(t={});var i=t.enableHardwareAcceleration,s=t.allowTransformNone,r=f(t,["enableHardwareAcceleration","allowTransformNone"]);return we(u({element:e,buildStyles:ye({enableHardwareAcceleration:i,allowTransformNone:s}),preparseOutput:!0},r))}(e,t),Ae.set(e,i),i};function Xe(e,t){return function(e,t){return Ae.has(e)?Ae.get(e):Me(e,t)}("string"==typeof e?document.querySelector(e):e,t)}var Ve=function(e,t,i,s){var r=i?i.call(s,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 n=Object.keys(e),o=Object.keys(t);if(n.length!==o.length)return!1;for(var a=Object.prototype.hasOwnProperty.bind(t),l=0;l<n.length;l++){var h=n[l];if(!a(h))return!1;var c=e[h],d=t[h];if(!1===(r=i?i.call(s,c,d,h):void 0)||void 0===r&&c!==d)return!1}return!0};const ke="!#%()*+,-./:;=?@[]^_`{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",Ie=ke.length,De=Array(20),He=()=>{for(let e=0;e<20;e++)De[e]=ke.charAt(Math.random()*Ie);return De.join("")};class We{constructor(){this.disposers=new Map}add(e,t=He()){return this.flush(t),this.disposers.set(t,e()),t}addDisposer(e,t=He()){return this.flush(t),this.disposers.set(t,e),t}addEventListener(e,t,i,s,r=He()){return this.add((()=>(e.addEventListener(t,i,s),()=>e.removeEventListener(t,i,s))),r),r}setTimeout(e,t,i=He()){return this.add((()=>{const s=window.setTimeout((()=>{this.remove(i),e()}),t);return()=>window.clearTimeout(s)}),i)}setInterval(e,t,i=He()){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 je=Object.defineProperty,Ge=("undefined"!=typeof require&&require,(e,t,i)=>{return n=i,(r="symbol"!=typeof t?t+"":t)in(s=e)?je(s,r,{enumerable:!0,configurable:!0,writable:!0,value:n}):s[r]=n,i;var s,r,n});class Ze{constructor(e,t){Ge(this,"_value"),Ge(this,"_beforeDestroys"),Ge(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((s=>s(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 s=new Ze(e(this.value,void 0,i),t),r=this.reaction(((t,i,r)=>{s.setValue(e(t,i,r))}));return s.addBeforeDestroy(r),s}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 Fe(e,t){Object.keys(t).forEach((i=>{!function(e,t,i){var s;Object.defineProperties(e,{[t]:{get:()=>i.value},[`_${t}$`]:{value:i},[`set${s=t,s[0].toUpperCase()+s.slice(1)}`]:{value:(e,t)=>i.setValue(e,t)}})}(e,i,t[i])}))}function Pe(e){const t=t=>{const i=e.addDisposer((()=>{t.destroy()}));return t.addBeforeDestroy((()=>{e.remove(i)})),t};return{bindSideEffect:t,combine:(e,i,s,r)=>t(function(e,t,i,s){let r=e.map((e=>e.value));const n=new Ze(t(r,void 0,s),i);return e.forEach(((e,i)=>{const s=e.reaction(((e,s)=>{const o=r.slice();o[i]=e;const a=r;r=o,n.setValue(t(o,a,s),s)}));n.addBeforeDestroy(s)})),n}(e,i,s,r)),createVal:(e,i)=>t(new Ze(e,i))}}var Ye,qe,Ue,Je;exports.TELE_BOX_STATE=void 0,(Ye=exports.TELE_BOX_STATE||(exports.TELE_BOX_STATE={})).Normal="normal",Ye.Minimized="minimized",Ye.Maximized="maximized",exports.TELE_BOX_EVENT=void 0,(qe=exports.TELE_BOX_EVENT||(exports.TELE_BOX_EVENT={})).Close="close",qe.Focus="focus",qe.Blur="blur",qe.Move="move",qe.Resize="resize",qe.IntrinsicMove="intrinsic_move",qe.IntrinsicResize="intrinsic_resize",qe.VisualResize="visual_resize",qe.State="state",qe.Minimized="minimized",qe.Maximized="maximized",qe.Readonly="readonly",qe.Destroyed="destroyed",exports.TELE_BOX_DELEGATE_EVENT=void 0,(Ue=exports.TELE_BOX_DELEGATE_EVENT||(exports.TELE_BOX_DELEGATE_EVENT={})).Close="close",Ue.Maximize="maximize",Ue.Minimize="minimize",exports.TELE_BOX_RESIZE_HANDLE=void 0,(Je=exports.TELE_BOX_RESIZE_HANDLE||(exports.TELE_BOX_RESIZE_HANDLE={})).North="n",Je.South="s",Je.West="w",Je.East="e",Je.NorthWest="nw",Je.NorthEast="ne",Je.SouthEast="se",Je.SouthWest="sw";function Qe(e,t,i){return Math.min(Math.max(e,t),i)}function Ke(e){e.stopPropagation(),e.cancelable&&e.preventDefault()}function et(e){return e.touches?e.touches[0]:e}function tt(){return Date.now().toString().slice(6)+Math.random().toString().slice(2,8)}let it=1;function st(){return"New Box "+it++}function rt(e){return Boolean(e)}function nt(e){return!e}class ot{constructor({readonly:e=!1,title:t,buttons:i,onEvent:s,onDragStart:r,namespace:n="telebox",state:o=exports.TELE_BOX_STATE.Normal}={}){this.$btns=[],this.sideEffect=new We,this.lastTitleBarClick=0,this.handleTitleBarClick=e=>{var t;if(this.readonly)return;if(null!=e.button&&0!==e.button)return;if(null==(t=e.target.dataset)?void 0:t.teleTitleBarNoDblClick)return;Ke(e);const i=Date.now();i-this.lastTitleBarClick<=500?this.onEvent&&this.onEvent({type:exports.TELE_BOX_DELEGATE_EVENT.Maximize}):this.onDragStart&&this.onDragStart(e),this.lastTitleBarClick=i},this.readonly=e,this.onEvent=s,this.onDragStart=r,this.namespace=n,this.title=t,this.state=o,this.buttons=i||[{type:exports.TELE_BOX_DELEGATE_EVENT.Minimize,iconClassName:this.wrapClassName("titlebar-icon-minimize")},{type:exports.TELE_BOX_DELEGATE_EVENT.Maximize,iconClassName:this.wrapClassName("titlebar-icon-maximize"),isActive:e=>e===exports.TELE_BOX_STATE.Maximized},{type:exports.TELE_BOX_DELEGATE_EVENT.Close,iconClassName:this.wrapClassName("titlebar-icon-close")}]}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"),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 e=document.createElement("div");e.className=this.wrapClassName("titlebar-btns"),this.buttons.forEach((({iconClassName:t,isActive:i},s)=>{const r=String(s),n=document.createElement("button");n.className=`${this.wrapClassName("titlebar-btn")} ${t}`,n.dataset.teleTitleBarBtnIndex=r,n.dataset.teleTitleBarNoDblClick="true",i&&n.classList.toggle("is-active",i(this.state)),this.$btns.push(n),e.appendChild(n)})),this.sideEffect.addEventListener(e,"click",(e=>{var t;if(this.readonly)return;const i=e.target,s=Number(null==(t=i.dataset)?void 0:t.teleTitleBarBtnIndex);if(!Number.isNaN(s)&&s<this.buttons.length){Ke(e);const t=this.buttons[s];this.onEvent&&this.onEvent({type:t.type,value:t.value})}})),this.$titleBar.appendChild(this.$title),this.$titleBar.appendChild(e)}return this.$titleBar}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 at{constructor({id:e=tt(),title:t=st(),visible:i=!0,width:s=.5,height:r=.5,minWidth:n=0,minHeight:o=0,x:a=.1,y:l=.1,minimized:h=!1,maximized:c=!1,readonly:u=!1,resizable:f=!0,draggable:E=!0,fence:m=!0,fixRatio:p=!1,focus:v=!1,zIndex:x=100,namespace:_="telebox",titleBar:b,content:g,footer:T,styles:y,containerRect:w={x:0,y:0,width:window.innerWidth,height:window.innerHeight},collectorRect:B}={}){this._renderSideEffect=new We,this.handleTrackStart=e=>{var t;return null==(t=this._handleTrackStart)?void 0:t.call(this,e)},this._sideEffect=new We,this._valSideEffectBinder=Pe(this._sideEffect);const{combine:L,createVal:N}=this._valSideEffectBinder;this.id=e,this.namespace=_,this.events=new d,this._delegateEvents=new d;const C=N(w,Ve),$=N(B,Ve),O=N(t),z=N(i);z.reaction(((e,t,i)=>{i||e||this.events.emit(exports.TELE_BOX_EVENT.Close)}));const R=N(u);R.reaction(((e,t,i)=>{i||this.events.emit(exports.TELE_BOX_EVENT.Readonly,e)}));const S=N(f),A=N(E),M=N(m),X=N(p),V=N(x),k=N(v);k.reaction(((e,t,i)=>{i||this.events.emit(e?exports.TELE_BOX_EVENT.Focus:exports.TELE_BOX_EVENT.Blur)}));const I=N(h);I.reaction(((e,t,i)=>{i||this.events.emit(exports.TELE_BOX_EVENT.Minimized,e)}));const D=N(c);D.reaction(((e,t,i)=>{i||this.events.emit(exports.TELE_BOX_EVENT.Maximized,e)}));const H=L([I,D],(([e,t])=>e?exports.TELE_BOX_STATE.Minimized:t?exports.TELE_BOX_STATE.Maximized:exports.TELE_BOX_STATE.Normal));H.reaction(((e,t,i)=>{i||this.events.emit(exports.TELE_BOX_EVENT.State,e)}));const W=N({width:Qe(n,0,1),height:Qe(o,0,1)},Ve),j=N({width:Qe(s,W.value.width,1),height:Qe(r,W.value.height,1)},Ve);W.reaction(((e,t,i)=>{j.setValue({width:Qe(s,e.width,1),height:Qe(r,e.height,1)},i)})),j.reaction(((e,t,i)=>{i||this.events.emit(exports.TELE_BOX_EVENT.IntrinsicResize,e)}));const G=L([j,D],(([e,t])=>t?{width:1,height:1}:e),Ve);G.reaction(((e,t,i)=>{i||this.events.emit(exports.TELE_BOX_EVENT.Resize,e)}));const Z=L([G,I,C,$],(([e,t,i,s])=>t&&s?{width:s.width/e.width/i.width,height:s.height/e.height/i.height}:e),Ve);Z.reaction(((e,t,i)=>{i||this.events.emit(exports.TELE_BOX_EVENT.VisualResize,e)}));const F=N({x:Qe(a,0,1),y:Qe(l,0,1)},Ve);F.reaction(((e,t,i)=>{i||this.events.emit(exports.TELE_BOX_EVENT.IntrinsicMove,e)}));const P=L([F,j,C,$,I,D],(([e,t,i,s,r,n])=>r&&s?n?{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-t.width/2,y:(s.y+s.height/2)/i.height-t.height/2}:n?{x:0,y:0}:e),Ve);P.reaction(((e,t,i)=>{i||this.events.emit(exports.TELE_BOX_EVENT.Move,e)})),this.titleBar=b||new ot({readonly:R.value,title:O.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 exports.TELE_BOX_DELEGATE_EVENT.Maximize:D.setValue(!D.value);break;case exports.TELE_BOX_DELEGATE_EVENT.Minimize:I.setValue(!0);break;case exports.TELE_BOX_DELEGATE_EVENT.Close:z.setValue(!1);break;default:console.error("Unsupported titleBar event:",e)}}}),R.reaction((e=>{this.titleBar.setReadonly(e)}));const Y=N(g),q=N(T),U=N(y);Fe(this,{containerRect:C,collectorRect:$,title:O,visible:z,readonly:R,resizable:S,draggable:A,fence:M,fixRatio:X,focus:k,zIndex:V,minimized:I,maximized:D,$userContent:Y,$userFooter:q,$userStyles:U}),this._state$=H,this._minSize$=W,this._size$=G,this._intrinsicSize$=j,this._visualSize$=Z,this._coord$=P,this._intrinsicCoord$=F,this.fixRatio&&this.transform(P.value.x,P.value.y,G.value.width,G.value.height,!0),this.$box=this.render()}get state(){return this._state$.value}setState(e,t=!1){switch(e){case exports.TELE_BOX_STATE.Maximized:this.setMinimized(!1,t),this.setMaximized(!0,t);break;case exports.TELE_BOX_STATE.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,s,r=!1){if(this.fixRatio){const e=this.intrinsicHeight/this.intrinsicWidth*i;t!==this.intrinsicY&&(t-=e-s),s=e}return t<0&&(t=0,s>this.intrinsicHeight&&(s=this.intrinsicHeight)),this._intrinsicCoord$.setValue({x:i>=this.minWidth?e:this.intrinsicX,y:s>=this.minHeight?t:this.intrinsicY},r),this._intrinsicSize$.setValue({width:Qe(i,this.minWidth,1),height:Qe(s,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,s=rt)=>this._renderSideEffect.add((()=>{const r=this.wrapClassName(i);return t.subscribe((t=>{e.classList.toggle(r,s(t))}))}));t(this.$box,this._readonly$,"readonly"),t(this.$box,this._draggable$,"no-drag",nt),t(this.$box,this._resizable$,"no-resize",nt),t(this.$box,this._focus$,"blur",nt),this._renderSideEffect.add((()=>{const e=this.wrapClassName("minimized"),t=this.wrapClassName("maximized"),i="box-maximized-timer";return this._state$.subscribe((s=>{this.$box.classList.toggle(e,s===exports.TELE_BOX_STATE.Minimized),s===exports.TELE_BOX_STATE.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=Xe(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,r=this.y*this.containerRect.height+this.containerRect.y;this.$box.style.transform=`translate(${s-10}px,${r-10}px)`,this._valSideEffectBinder.combine([this._coord$,this._size$,this._minimized$,this._containerRect$,this._collectorRect$],(([e,t,i,s,r])=>{const n=t.width*s.width,o=t.height*s.height;return{width:n,height:o,x:e.x*s.width,y:e.y*s.height,scaleX:i&&r?r.width/n:1,scaleY:i&&r?r.height/o:1}}),Ve).subscribe((e=>{i.set(e)})),i.set({x:s,y:r});const n=document.createElement("div");n.className=this.wrapClassName("box-main"),this.$box.appendChild(n);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 e;return this._$userStyles$.subscribe((t=>{e&&e.remove(),e=t,t&&l.appendChild(t)}))})),this._renderSideEffect.add((()=>{let e;return this._$userContent$.subscribe((t=>{e&&e.remove(),e=t,t&&l.appendChild(t)}))})),a.appendChild(l);const h=document.createElement("div");return h.className=this.wrapClassName("footer-wrap"),this.$footer=h,this._renderSideEffect.add((()=>{let e;return this._$userFooter$.subscribe((t=>{e&&e.remove(),e=t,t&&h.appendChild(t)}))})),n.appendChild(o),n.appendChild(a),n.appendChild(h),this._renderResizeHandlers(),this.$box}_renderResizeHandlers(){const e=document.createElement("div");e.className=this.wrapClassName("resize-handles"),Object.values(exports.TELE_BOX_RESIZE_HANDLE).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 s,r,n=0,o=0,a=0,l=0,h=0,c=0;const d=e=>{if(this.state!==exports.TELE_BOX_STATE.Normal)return;Ke(e);let{pageX:t,pageY:i}=et(e);i<0&&(i=0);const s=(t-h)/this.containerRect.width,d=(i-c)/this.containerRect.height;switch(r){case exports.TELE_BOX_RESIZE_HANDLE.North:this.transform(this.x,o+d,this.width,l-d);break;case exports.TELE_BOX_RESIZE_HANDLE.South:this.transform(this.x,this.y,this.width,l+d);break;case exports.TELE_BOX_RESIZE_HANDLE.West:this.transform(n+s,this.y,a-s,this.height);break;case exports.TELE_BOX_RESIZE_HANDLE.East:this.transform(this.x,this.y,a+s,this.height);break;case exports.TELE_BOX_RESIZE_HANDLE.NorthWest:this.transform(n+s,o+d,a-s,l-d);break;case exports.TELE_BOX_RESIZE_HANDLE.NorthEast:this.transform(this.x,o+d,a+s,l-d);break;case exports.TELE_BOX_RESIZE_HANDLE.SouthEast:this.transform(this.x,this.y,a+s,l+d);break;case exports.TELE_BOX_RESIZE_HANDLE.SouthWest:this.transform(n+s,this.y,a-s,l+d);break;default:if(this.fence)this.move(Qe(n+s,0,1-this.width),Qe(o+d,0,1-this.height));else{const e=20/this.containerRect.width,t=20/this.containerRect.height;this.move(Qe(n+s,e-this.width,1-e),Qe(o+d,0,1-t))}}},u=e=>{r=void 0,s&&(Ke(e),this.$box.classList.toggle(i,!1),this._sideEffect.flush(t),s.remove())},f=e=>{var f;if(this.readonly)return;if(null!=e.button&&0!==e.button)return;if(!this.draggable||r||this.state!==exports.TELE_BOX_STATE.Normal)return;const E=e.target;if(null==(f=E.dataset)?void 0:f.teleBoxHandle){Ke(e),n=this.x,o=this.y,a=this.width,l=this.height,({pageX:h,pageY:c}=et(e)),r=E.dataset.teleBoxHandle,s||(s=document.createElement("div"));const f=r?this.wrapClassName(`cursor-${r}`):"";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)})),t)}};this._handleTrackStart=f,this._sideEffect.addEventListener(e,"mousedown",f,{},"box-resizeHandles-mousedown"),this._sideEffect.addEventListener(e,"touchstart",f,{passive:!1},"box-resizeHandles-touchstart")}destroy(){this.$box.remove(),this.events.emit(exports.TELE_BOX_EVENT.Destroyed),this._sideEffect.flushAll(),this._renderSideEffect.flushAll(),this.events.removeAllListeners(),this._delegateEvents.removeAllListeners()}wrapClassName(e){return`${this.namespace}-${e}`}}const lt=(e,t)=>{const i=a.useRef(!0);a.useEffect((()=>{if(!i.current)return e();i.current=!1}),t)};var ht;class ct{constructor({visible:e=!0,readonly:t=!1,namespace:i="telebox",styles:s={},onClick:r}={}){this.handleCollectorClick=()=>{!this._readonly&&this.onClick&&this.onClick()},this._visible=Boolean(e),this._readonly=Boolean(t),this.namespace=i,this.styles=s,this.onClick=r}get visible(){return this._visible}get readonly(){return this._readonly}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}setStyles(e){if(Object.assign(this.styles,e),this.$collector){const t=this.$collector;Object.keys(e).forEach((i=>{const s=e[i];null!=s&&(t.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 e=document.createElement("img");e.draggable=!1,e.className=this.wrapClassName("collector-icon"),e.src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxNiI+CiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxwYXRoIHN0cm9rZT0iIzdCODhBMCIgc3Ryb2tlLXdpZHRoPSIxLjQiIGQ9Ik0uNyAxLjJoMTYuNnYxMy42SC43eiIgLz4KICAgICAgICA8cGF0aCBmaWxsPSIjN0I4OEEwIiBkPSJNNCA1LjVoNnYxLjRINHpNNCA5LjVoMTB2MS40SDR6IiAvPgogICAgPC9nPgo8L3N2Zz4K",this.$collector.appendChild(e),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(e){return`${this.namespace}-${e}`}}exports.TELE_BOX_MANAGER_EVENT=void 0,(ht=exports.TELE_BOX_MANAGER_EVENT||(exports.TELE_BOX_MANAGER_EVENT={})).Focused="focused",ht.Created="created",ht.Removed="removed",ht.State="state",ht.Maximized="maximized",ht.Minimized="minimized",ht.Move="move",ht.Resize="resize",ht.IntrinsicMove="intrinsic_move",ht.IntrinsicResize="intrinsic_resize",ht.VisualResize="visual_resize";class dt extends ot{constructor(e){super(e),this.boxes=e.boxes,this.focusedBox=e.focusedBox,this.containerRect=e.containerRect}focusBox(e){var t;if(e||(e=this.boxes[this.boxes.length-1]),!this.focusedBox||this.focusedBox!==e){if(this.$titles&&this.state===exports.TELE_BOX_STATE.Maximized){const{children:i}=this.$titles.firstElementChild;for(let s=i.length-1;s>=0;s-=1){const r=i[s],n=null==(t=r.dataset)?void 0:t.teleBoxID;n&&(e&&n===e.id?r.classList.toggle(this.wrapClassName("titles-tab-focus"),!0):this.focusedBox&&n===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:s}=e;this.$titleBar.style.transform=`translate(${t}px, ${i}px)`,this.$titleBar.style.width=s+"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===exports.TELE_BOX_STATE.Maximized),this.updateTitles()}setReadonly(e){super.setReadonly(e),this.$titleBar&&this.$titleBar.classList.toggle(this.wrapClassName("readonly"),this.readonly)}render(){const e=super.render(),{x:t,y:i,width:s}=this.containerRect;return e.style.transform=`translate(${t}px, ${i}px)`,e.style.width=s+"px",e.classList.add(this.wrapClassName("max-titlebar")),e.classList.toggle(this.wrapClassName("max-titlebar-maximized"),this.state===exports.TELE_BOX_STATE.Maximized),e.classList.toggle(this.wrapClassName("readonly"),this.readonly),this.updateTitles(),e}destroy(){super.destroy(),this.$titles=void 0,this.boxes.length=0,this.focusedBox=void 0}updateTitles(){this.$titleBar&&this.state===exports.TELE_BOX_STATE.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}}exports.DefaultTitleBar=ot,exports.TeleBox=at,exports.TeleBoxCollector=ct,exports.TeleBoxDragHandleType="dh",exports.TeleBoxManager=class{constructor({root:e=document.body,minimized:t=!1,maximized:i=!1,fence:s=!0,containerRect:r={x:0,y:0,width:window.innerWidth,height:window.innerHeight},collector:n,namespace:o="telebox",zIndex:a=100,readonly:l=!1}={}){this.events=new d,this.boxes=[],this._sideEffect=new We;const{combine:h,createVal:c}=Pe(this._sideEffect);this.root=e,this.namespace=o,this.zIndex=a;const u=c(l);u.reaction(((e,t,i)=>{this.boxes.forEach((t=>t.setReadonly(e,i)))}));const f=c(t),E=c(i);E.reaction(((e,t,i)=>{this.boxes.forEach((t=>t.setMaximized(e,i))),i||this.events.emit(exports.TELE_BOX_MANAGER_EVENT.Maximized,e)}));const m=h([f,E],(([e,t])=>e?exports.TELE_BOX_STATE.Minimized:t?exports.TELE_BOX_STATE.Maximized:exports.TELE_BOX_STATE.Normal));m.reaction(((e,t,i)=>{this.maxTitleBar.setState(e),i||this.events.emit(exports.TELE_BOX_MANAGER_EVENT.State,e)}));const p=c(s);p.subscribe(((e,t,i)=>{this.boxes.forEach((t=>t.setFence(e,i)))}));const v=c(r,Ve);v.reaction(((e,t,i)=>{this.boxes.forEach((t=>t.setContainerRect(e,i))),this.maxTitleBar.setContainerRect(e)}));const x=c(null===n?null:n||new ct({visible:t,readonly:l,namespace:o}).mount(e));x.subscribe((e=>{e&&(e.setVisible(f.value),e.setReadonly(u.value),this._sideEffect.add((()=>(e.onClick=()=>{u.value||f.setValue(!1)},()=>e.destroy())),"collect-onClick"))})),u.subscribe((e=>{var t;return null==(t=x.value)?void 0:t.setReadonly(e)})),f.subscribe(((e,t,i)=>{var s,r;if(null==(s=x.value)||s.setVisible(e),e&&(null==(r=x.value)?void 0:r.$collector)){const{x:e,y:t,width:i,height:s}=x.value.$collector.getBoundingClientRect(),r=this.root.getBoundingClientRect();this.boxes.forEach((n=>{n.setCollectorRect({x:e-r.x,y:t-r.y,width:i,height:s},!0)}))}this.boxes.forEach((t=>t.setMinimized(e,i))),i||this.events.emit(exports.TELE_BOX_MANAGER_EVENT.Minimized,e)}));const _=e=>{var t;if(u.value)return;const i=e.target;if(i.tagName)for(let s=i;s;s=s.parentElement){const e=null==(t=s.dataset)?void 0:t.teleBoxID;if(e){const t=this.boxes.find((t=>t.id===e));if(t)return void this.focusBox({focus:!0,box:t})}}};this._sideEffect.addEventListener(window,"mousedown",_,!0),this._sideEffect.addEventListener(window,"touchstart",_,!0),this.maxTitleBar=new dt({readonly:u.value,namespace:this.namespace,state:m.value,boxes:this.boxes,focusedBox:this._focusedBox,containerRect:v.value,onEvent:e=>{var t;switch(e.type){case exports.TELE_BOX_DELEGATE_EVENT.Maximize:E.setValue(!E.value);break;case exports.TELE_BOX_DELEGATE_EVENT.Minimize:f.setValue(!0);break;case exports.TELE_BOX_EVENT.Close:{const e=null!=(t=this._focusedBox)?t:this.boxes[this.boxes.length-1];e&&this.remove(e.id);break}}}}),u.subscribe((e=>this.maxTitleBar.setReadonly(e)));Fe(this,{containerRect:v,collector:x,readonly:u,fence:p,minimized:f,maximized:E}),this._state$=m,this.root.appendChild(this.maxTitleBar.render())}get state(){return this._state$.value}setState(e,t=!1){switch(e){case exports.TELE_BOX_STATE.Maximized:this.setMinimized(!1,t),this.setMaximized(!0,t);break;case exports.TELE_BOX_STATE.Minimized:this.setMinimized(!0,t),this.setMaximized(!1,t);break;default:this.setMinimized(!1,t),this.setMaximized(!1,t)}return this}create(e){const t=new at(this.wrapCreateConfig(e));return t.mount(this.root),this.boxes.push(t),t.focus&&this.focusBox({focus:!0,box:t,increaseZIndex:!1}),this.maxTitleBar.setBoxes(this.boxes),t._delegateEvents.on(exports.TELE_BOX_DELEGATE_EVENT.Maximize,(()=>{this.setMaximized(!this.maximized)})),t._delegateEvents.on(exports.TELE_BOX_DELEGATE_EVENT.Minimize,(()=>{this.setMinimized(!0)})),t._delegateEvents.on(exports.TELE_BOX_DELEGATE_EVENT.Close,(()=>{this.focusBox({focus:!1,box:t}),this.remove(t.id)})),t.events.on(exports.TELE_BOX_EVENT.Move,(()=>{this.events.emit(exports.TELE_BOX_MANAGER_EVENT.Move,t)})),t.events.on(exports.TELE_BOX_EVENT.Resize,(()=>{this.events.emit(exports.TELE_BOX_MANAGER_EVENT.Resize,t)})),t.events.on(exports.TELE_BOX_EVENT.IntrinsicMove,(()=>{this.events.emit(exports.TELE_BOX_MANAGER_EVENT.IntrinsicMove,t)})),t.events.on(exports.TELE_BOX_EVENT.IntrinsicResize,(()=>{this.events.emit(exports.TELE_BOX_MANAGER_EVENT.IntrinsicResize,t)})),t.events.on(exports.TELE_BOX_EVENT.VisualResize,(()=>{this.events.emit(exports.TELE_BOX_MANAGER_EVENT.VisualResize,t)})),this.events.emit(exports.TELE_BOX_MANAGER_EVENT.Created,t),t}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 s=this.boxes.find((t=>t.id===e));if(s)return this.updateBox(s,t,i)}updateAll(e,t=!1){this.boxes.forEach((i=>{this.updateBox(i,e,t)}))}remove(e,t=!1){const i=this.boxes.findIndex((t=>t.id===e));if(i>=0){const e=this.boxes.splice(i,1);this.maxTitleBar.setBoxes(this.boxes);const s=e[0];return this.focusBox({focus:!1,box:s}),s.destroy(),this.boxes.length<=0&&(this.setMaximized(!1),this.setMinimized(!1)),t||this.events.emit(exports.TELE_BOX_MANAGER_EVENT.Removed,e),s}}removeAll(e=!1){if(this._focusedBox){const t=this._focusedBox;this._focusedBox=void 0,e||this.events.emit(exports.TELE_BOX_MANAGER_EVENT.Focused,void 0,t)}const t=this.boxes.splice(0,this.boxes.length);return this.maxTitleBar.setBoxes(this.boxes),t.forEach((e=>e.destroy())),this.boxes.length<=0&&(this.setMaximized(!1),this.setMinimized(!1)),e||this.events.emit(exports.TELE_BOX_MANAGER_EVENT.Removed,t),t}destroy(e=!1){this.events.removeAllListeners(),this._sideEffect.flushAll(),this._focusedBox=void 0,this.removeAll(e),Object.keys(this).forEach((e=>{const t=this[e];t instanceof Ze&&t.destroy()}))}wrapClassName(e){return`${this.namespace}-${e}`}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),null!=t.draggable&&e.setDraggable(t.draggable),null!=t.fixRatio&&e.setFixRatio(t.fixRatio,i),null!=t.focus&&this.focusBox({focus:t.focus,box:e,skipUpdate:i}),null!=t.content&&e.mountContent(t.content),null!=t.footer&&e.mountFooter(t.footer)}focusBox({focus:e,box:t,skipUpdate:i=!1,increaseZIndex:s=!0}){if(t.setFocus(e,i),t.focus){if(this._focusedBox!==t){const e=this._focusedBox;this._focusedBox&&this._focusedBox.setFocus(!1,i),this._focusedBox=t,s&&t.setZIndex(++this.zIndex),i||this.events.emit(exports.TELE_BOX_MANAGER_EVENT.Focused,t,e)}}else this._focusedBox===t&&(this._focusedBox=void 0,i||this.events.emit(exports.TELE_BOX_MANAGER_EVENT.Focused,void 0,t));this.maxTitleBar.focusBox(this._focusedBox)}getInitialPosition(e,t){const i=this.boxes.length>0&&this.boxes.reduce(((e,t)=>e.zIndex>t.zIndex?e:t));let s=20,r=20;return i&&(s=i.intrinsicX*this.containerRect.width+20,r=i.intrinsicY*this.containerRect.height+20,(s>this.containerRect.width-e*this.containerRect.width||r>this.containerRect.height-t*this.containerRect.height)&&(s=20,r=20)),{x:s/this.containerRect.width,y:r/this.containerRect.height}}wrapCreateConfig(e={}){let{x:a,y:l}=e;const{width:h=.5,height:c=.5}=e;if(null==a||null==l){const e=this.getInitialPosition(h,c);null==a&&(a=e.x),null==l&&(l=e.y)}return d=((e,t)=>{for(var i in t||(t={}))r.call(t,i)&&o(e,i,t[i]);if(s)for(var i of s(t))n.call(t,i)&&o(e,i,t[i]);return e})({},e),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},t(d,i(u));var d,u}},exports.TeleBoxReact=e=>{const[t]=a.useState((()=>new at(e)));return lt((()=>{null!=e.minWidth&&t.setMinWidth(e.minWidth)}),[t,e.minWidth]),lt((()=>{null!=e.minHeight&&t.setMinHeight(e.minHeight)}),[t,e.minHeight]),lt((()=>{var i,s;t.resize(null!=(i=e.width)?i:t.width,null!=(s=e.height)?s:t.height,!0)}),[t,e.width,e.height]),lt((()=>{var i,s;t.move(null!=(i=e.x)?i:t.x,null!=(s=e.y)?s:t.y,!0)}),[t,e.x,e.y]),lt((()=>{null!=e.title&&t.setTitle(e.title)}),[t,e.title]),lt((()=>{null!=e.visible&&t.setVisible(e.visible)}),[t,e.visible]),lt((()=>{null!=e.state&&t.setState(e.state,!0)}),[t,e.state]),lt((()=>{null!=e.draggable&&t.setDraggable(e.draggable)}),[t,e.draggable]),lt((()=>{null!=e.resizable&&t.setResizable(e.resizable)}),[t,e.resizable]),lt((()=>{null!=e.fence&&t.setFence(e.fence)}),[t,e.fence]),lt((()=>{null!=e.containerRect&&t.setContainerRect(e.containerRect)}),[t,e.containerRect]),lt((()=>{null!=e.fixRatio&&t.setFixRatio(e.fixRatio)}),[t,e.fixRatio]),a.useEffect((()=>{if(e.onResize)return t.events.on(exports.TELE_BOX_EVENT.Resize,e.onResize),()=>{t.events.off(exports.TELE_BOX_EVENT.Resize,e.onResize)}}),[t,e.onResize]),a.useEffect((()=>{if(e.onMove)return t.events.on(exports.TELE_BOX_EVENT.Move,e.onMove),()=>{t.events.off(exports.TELE_BOX_EVENT.Move,e.onMove)}}),[t,e.onMove]),a.useEffect((()=>{if(e.onClose)return t.events.on(exports.TELE_BOX_EVENT.Close,e.onClose),()=>{t.events.off(exports.TELE_BOX_EVENT.Close,e.onClose)}}),[t,e.onClose]),a.useEffect((()=>{if(e.onFocus)return t.events.on(exports.TELE_BOX_EVENT.Focus,e.onFocus),()=>{t.events.off(exports.TELE_BOX_EVENT.Focus,e.onFocus)}}),[t,e.onFocus]),a.useEffect((()=>{if(e.onBlur)return t.events.on(exports.TELE_BOX_EVENT.Blur,e.onBlur),()=>{t.events.off(exports.TELE_BOX_EVENT.Blur,e.onBlur)}}),[t,e.onBlur]),a.useEffect((()=>{if(e.onStateChanged)return t.events.on(exports.TELE_BOX_EVENT.State,e.onStateChanged),()=>{t.events.off(exports.TELE_BOX_EVENT.State,e.onStateChanged)}}),[t,e.onStateChanged]),h.default.createElement("div",{ref:e=>e&&t.render(e),className:t.wrapClassName("box")})};
|
|
16
16
|
//# sourceMappingURL=telebox-insider.cjs.js.map
|