@netless/telebox-insider 1.0.0-alpha.1 → 1.0.0-alpha.2
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 +1 -9
- package/dist/TeleBox/typings.d.ts +2 -0
- package/dist/TeleBoxCollector/index.d.ts +3 -3
- package/dist/TeleBoxManager/MaxTitleBar/index.d.ts +1 -0
- package/dist/TeleBoxManager/index.d.ts +9 -1
- package/dist/TeleBoxManager/typings.d.ts +1 -1
- package/dist/TeleStage/index.d.ts +2 -6
- package/dist/telebox-insider.cjs.js +1 -15
- package/dist/telebox-insider.cjs.js.map +1 -1
- package/dist/telebox-insider.es.js +1 -15
- package/dist/telebox-insider.es.js.map +1 -1
- package/package.json +2 -1
- package/src/TeleBox/index.ts +16 -24
- package/src/TeleBox/typings.ts +2 -0
- package/src/TeleBoxCollector/index.ts +4 -5
- package/src/TeleBoxManager/MaxTitleBar/index.ts +15 -0
- package/src/TeleBoxManager/index.ts +51 -32
- package/src/TeleBoxManager/typings.ts +1 -1
- package/src/TeleStage/index.ts +3 -14
|
@@ -1,16 +1,2 @@
|
|
|
1
|
-
var e=Object.defineProperty,t=Object.defineProperties,i=Object.getOwnPropertyDescriptors,s=Object.getOwnPropertySymbols,r=Object.prototype.hasOwnProperty,n=Object.prototype.propertyIsEnumerable,o=(t,i,s)=>i in t?e(t,i,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[i]=s,a=(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};const h=new WeakMap,l=new WeakMap,c=new WeakMap,d=Symbol("anyProducer"),u=Promise.resolve(),f=Symbol("listenerAdded"),m=Symbol("listenerRemoved"),p=Symbol("metaEventsAllowed");let g=!1;function b(e,t){if("string"!=typeof e&&"symbol"!=typeof e&&"number"!=typeof e)throw new TypeError("`eventName` must be a string, symbol, or number");if(E(e)&&t!==p)throw new TypeError("`eventName` cannot be meta event `listenerAdded` or `listenerRemoved`")}function v(e){if("function"!=typeof e)throw new TypeError("listener must be a function")}function x(e,t){const i=l.get(e);return i.has(t)||i.set(t,new Set),i.get(t)}function w(e,t){const i="string"==typeof t||"symbol"==typeof t||"number"==typeof t?t:d,s=c.get(e);return s.has(i)||s.set(i,new Set),s.get(i)}function y(e,t){t=Array.isArray(t)?t:[t];let i=!1,s=()=>{},r=[];const n={enqueue(e){r.push(e),s()},finish(){i=!0,s()}};for(const o of t)w(e,o).add(n);return{async next(){return r?0===r.length?i?(r=void 0,this.next()):(await new Promise((e=>{s=e})),this.next()):{done:!1,value:await r.shift()}:{done:!0}},async return(i){r=void 0;for(const s of t)w(e,s).delete(n);return s(),arguments.length>0?{done:!0,value:await i}:{done:!0}},[Symbol.asyncIterator](){return this}}}function $(e){if(void 0===e)return C;if(!Array.isArray(e))throw new TypeError("`methodNames` must be an array of strings");for(const t of e)if(!C.includes(t)){if("string"!=typeof t)throw new TypeError("`methodNames` element must be a string");throw new Error(`${t} is not Emittery method`)}return e}const E=e=>e===f||e===m;class z{static mixin(e,t){return t=$(t),i=>{if("function"!=typeof i)throw new TypeError("`target` must be function");for(const e of t)if(void 0!==i.prototype[e])throw new Error(`The property \`${e}\` already exists on \`target\``);Object.defineProperty(i.prototype,e,{enumerable:!1,get:function(){return Object.defineProperty(this,e,{enumerable:!1,value:new z}),this[e]}});const s=t=>function(...i){return this[e][t](...i)};for(const e of t)Object.defineProperty(i.prototype,e,{enumerable:!1,value:s(e)});return i}}static get isDebugEnabled(){if("object"!=typeof process)return g;const{env:e}=process||{env:{}};return"emittery"===e.DEBUG||"*"===e.DEBUG||g}static set isDebugEnabled(e){g=e}constructor(e={}){h.set(this,new Set),l.set(this,new Map),c.set(this,new Map),this.debug=e.debug||{},void 0===this.debug.enabled&&(this.debug.enabled=!1),this.debug.logger||(this.debug.logger=(e,t,i,s)=>{try{s=JSON.stringify(s)}catch{s=`Object with the following keys failed to stringify: ${Object.keys(s).join(",")}`}"symbol"!=typeof i&&"number"!=typeof i||(i=i.toString());const r=new Date,n=`${r.getHours()}:${r.getMinutes()}:${r.getSeconds()}.${r.getMilliseconds()}`;console.log(`[${n}][emittery:${e}][${t}] Event Name: ${i}\n\tdata: ${s}`)})}logIfDebugEnabled(e,t,i){(z.isDebugEnabled||this.debug.enabled)&&this.debug.logger(e,this.debug.name,t,i)}on(e,t){v(t),e=Array.isArray(e)?e:[e];for(const i of e)b(i,p),x(this,i).add(t),this.logIfDebugEnabled("subscribe",i,void 0),E(i)||this.emit(f,{eventName:i,listener:t},p);return this.off.bind(this,e,t)}off(e,t){v(t),e=Array.isArray(e)?e:[e];for(const i of e)b(i,p),x(this,i).delete(t),this.logIfDebugEnabled("unsubscribe",i,void 0),E(i)||this.emit(m,{eventName:i,listener:t},p)}once(e){return new Promise((t=>{const i=this.on(e,(e=>{i(),t(e)}))}))}events(e){e=Array.isArray(e)?e:[e];for(const t of e)b(t,p);return y(this,e)}async emit(e,t,i){b(e,i),this.logIfDebugEnabled("emit",e,t),function(e,t,i){const s=c.get(e);if(s.has(t))for(const r of s.get(t))r.enqueue(i);if(s.has(d)){const e=Promise.all([t,i]);for(const t of s.get(d))t.enqueue(e)}}(this,e,t);const s=x(this,e),r=h.get(this),n=[...s],o=E(e)?[]:[...r];await u,await Promise.all([...n.map((async e=>{if(s.has(e))return e(t)})),...o.map((async i=>{if(r.has(i))return i(e,t)}))])}async emitSerial(e,t,i){b(e,i),this.logIfDebugEnabled("emitSerial",e,t);const s=x(this,e),r=h.get(this),n=[...s],o=[...r];await u;for(const a of n)s.has(a)&&await a(t);for(const a of o)r.has(a)&&await a(e,t)}onAny(e){return v(e),this.logIfDebugEnabled("subscribeAny",void 0,void 0),h.get(this).add(e),this.emit(f,{listener:e},p),this.offAny.bind(this,e)}anyEvent(){return y(this)}offAny(e){v(e),this.logIfDebugEnabled("unsubscribeAny",void 0,void 0),this.emit(m,{listener:e},p),h.get(this).delete(e)}clearListeners(e){e=Array.isArray(e)?e:[e];for(const t of e)if(this.logIfDebugEnabled("clear",t,void 0),"string"==typeof t||"symbol"==typeof t||"number"==typeof t){x(this,t).clear();const e=w(this,t);for(const t of e)t.finish();e.clear()}else{h.get(this).clear();for(const e of l.get(this).values())e.clear();for(const e of c.get(this).values()){for(const t of e)t.finish();e.clear()}}}listenerCount(e){e=Array.isArray(e)?e:[e];let t=0;for(const i of e)if("string"!=typeof i){void 0!==i&&b(i,p),t+=h.get(this).size;for(const e of l.get(this).values())t+=e.size;for(const e of c.get(this).values())t+=e.size}else t+=h.get(this).size+x(this,i).size+w(this,i).size+w(this).size;return t}bindMethods(e,t){if("object"!=typeof e||null===e)throw new TypeError("`target` must be an object");t=$(t);for(const i of t){if(void 0!==e[i])throw new Error(`The property \`${i}\` already exists on \`target\``);Object.defineProperty(e,i,{enumerable:!1,value:this[i].bind(this)})}}}const C=Object.getOwnPropertyNames(z.prototype).filter((e=>"constructor"!==e));Object.defineProperty(z,"listenerAdded",{value:f,writable:!1,enumerable:!0,configurable:!1}),Object.defineProperty(z,"listenerRemoved",{value:m,writable:!1,enumerable:!0,configurable:!1});var _=z,S=function(){return(S=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)};
|
|
2
|
-
/*! *****************************************************************************
|
|
3
|
-
Copyright (c) Microsoft Corporation.
|
|
4
|
-
|
|
5
|
-
Permission to use, copy, modify, and/or distribute this software for any
|
|
6
|
-
purpose with or without fee is hereby granted.
|
|
7
|
-
|
|
8
|
-
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
9
|
-
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
10
|
-
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
11
|
-
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
12
|
-
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
13
|
-
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
14
|
-
PERFORMANCE OF THIS SOFTWARE.
|
|
15
|
-
***************************************************************************** */function B(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 N=0,T="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-N));N=t+i,setTimeout((function(){return e(N)}),i)},M=1/60*1e3,k=!0,R=!1,I=!1,D={delta:0,timestamp:0},O=["read","update","preRender","render","postRender"],L=function(e){return R=e},A=O.reduce((function(e,t){var i,s,r,n,o,a,h,l,c;return e[t]=(i=L,s=[],r=[],n=0,o=!1,a=0,h=new WeakSet,l=new WeakSet,c={cancel:function(e){var t=r.indexOf(e);h.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!==l.has(d)||h.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;h.delete(e),t&&l.add(e),-1===c.indexOf(e)&&(c.push(e),a&&(n=s.length))}}),e}),{}),V=O.reduce((function(e,t){var i=A[t];return e[t]=function(e,t,s){return void 0===t&&(t=!1),void 0===s&&(s=!1),R||H(),i.schedule(e,t,s),e},e}),{}),P=function(e){return A[e].process(D)},j=function(e){R=!1,D.delta=k?M:Math.max(Math.min(e-D.timestamp,40),1),k||(M=D.delta),D.timestamp=e,I=!0,O.forEach(P),I=!1,R&&(k=!1,T(j))},H=function(){R=!0,k=!0,I||T(j)},W=function(e,t){return function(i){return Math.max(Math.min(i,t),e)}},X=function(e){return e%1?Number(e.toFixed(5)):e},Y=/^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2,3}\s*\/*\s*[\d\.]+%?\))$/i,F={test:function(e){return"number"==typeof e},parse:parseFloat,transform:function(e){return e}},Z=S(S({},F),{transform:W(0,1)}),U=S(S({},F),{default:1}),q=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}}},G=q("deg"),J=q("%"),Q=q("px"),K=S(S({},J),{parse:function(e){return J.parse(e)/100},transform:function(e){return J.transform(100*e)}}),ee=W(0,255),te=function(e){return void 0!==e.red},ie=function(e){return void 0!==e.hue};var se=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}},re=S(S({},F),{transform:function(e){return Math.round(ee(e))}});function ne(e,t){return e.startsWith(t)&&Y.test(e)}var oe,ae={test:function(e){return"string"==typeof e?ne(e,"rgb"):te(e)},parse:se(["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:re.transform(t),green:re.transform(i),blue:re.transform(s),alpha:X(Z.transform(n))})}},he={test:function(e){return"string"==typeof e?ne(e,"hsl"):ie(e)},parse:se(["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:J.transform(X(i)),lightness:J.transform(X(s)),alpha:X(Z.transform(n))})}},le=S(S({},ae),{test:function(e){return"string"==typeof e&&ne(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}}}),ce={test:function(e){return"string"==typeof e&&Y.test(e)||te(e)||ie(e)},parse:function(e){return ae.test(e)?ae.parse(e):he.test(e)?he.parse(e):le.test(e)?le.parse(e):e},transform:function(e){return te(e)?ae.transform(e):ie(e)?he.transform(e):e}},de=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=B(e,[]),n={},a=[],h=!1;function l(e,t){e.startsWith("--")&&(s.hasCSSVariable=!0);var i=n[e];n[e]=t,n[e]!==i&&(-1===a.indexOf(e)&&a.push(e),h||(h=!0,V.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)l(e,t);else for(var i in e)l(i,e[i]);return this},render:function(e){return void 0===e&&(e=!1),(h||!0===e)&&(i(n,s,a),h=!1,a.length=0),this}};return c}},ue=/([a-z])([A-Z])/g,fe=function(e){return e.replace(ue,"$1-$2").toLowerCase()},me=new Map,pe=new Map,ge=["Webkit","Moz","O","ms",""],be=ge.length,ve="undefined"!=typeof document,xe=function(e,t){return pe.set(e,fe(t))},we=function(e,t){void 0===t&&(t=!1);var i=t?pe:me;return i.has(e)||(ve?function(e){oe=oe||document.createElement("div");for(var t=0;t<be;t++){var i=ge[t],s=""===i,r=s?e:i+e.charAt(0).toUpperCase()+e.slice(1);if(r in oe.style||s){if(s&&"clipPath"===e&&pe.has(e))return;me.set(e,r),xe(e,(s?"":"-")+fe(r))}}}(e):function(e){xe(e,e)}(e)),i.get(e)||e},ye=["","X","Y","Z"],$e=["translate","scale","rotate","skew","transformPerspective"].reduce((function(e,t){return ye.reduce((function(e,i){return e.push(t+i),e}),e)}),["x","y","z"]),Ee=$e.reduce((function(e,t){return e[t]=!0,e}),{});function ze(e){return!0===Ee[e]}function Ce(e,t){return $e.indexOf(e)-$e.indexOf(t)}var _e=new Set(["originX","originY","originZ"]);function Se(e){return _e.has(e)}var Be=S(S({},F),{transform:Math.round}),Ne={color:ce,backgroundColor:ce,outlineColor:ce,fill:ce,stroke:ce,borderColor:ce,borderTopColor:ce,borderRightColor:ce,borderBottomColor:ce,borderLeftColor:ce,borderWidth:Q,borderTopWidth:Q,borderRightWidth:Q,borderBottomWidth:Q,borderLeftWidth:Q,borderRadius:Q,radius:Q,borderTopLeftRadius:Q,borderTopRightRadius:Q,borderBottomRightRadius:Q,borderBottomLeftRadius:Q,width:Q,maxWidth:Q,height:Q,maxHeight:Q,size:Q,top:Q,right:Q,bottom:Q,left:Q,padding:Q,paddingTop:Q,paddingRight:Q,paddingBottom:Q,paddingLeft:Q,margin:Q,marginTop:Q,marginRight:Q,marginBottom:Q,marginLeft:Q,rotate:G,rotateX:G,rotateY:G,rotateZ:G,scale:U,scaleX:U,scaleY:U,scaleZ:U,skew:G,skewX:G,skewY:G,distance:Q,translateX:Q,translateY:Q,translateZ:Q,x:Q,y:Q,z:Q,perspective:Q,opacity:Z,originX:K,originY:K,originZ:Q,zIndex:Be,fillOpacity:Z,strokeOpacity:Z,numOctaves:Be},Te=function(e){return Ne[e]},Me=function(e,t){return t&&"number"==typeof e?t.transform(e):e},ke=new Set(["scrollLeft","scrollTop"]),Re=new Set(["scrollLeft","scrollTop","transform"]),Ie={x:"translateX",y:"translateY",z:"translateZ"};function De(e){return"function"==typeof e}function Oe(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 h=!0,l=!1,c=!1;for(var d in e){var u=e[d],f=Te(d),m=Me(u,f);ze(d)?(l=!0,s[d]=m,n.push(d),h&&(f.default&&u!==f.default||!f.default&&0!==u)&&(h=!1)):Se(d)?(r[d]=m,c=!0):Re.has(d)&&De(m)||(i[we(d,o)]=m)}return(l||"function"==typeof e.transform)&&(i.transform=function(e,t,i,s,r,n){void 0===n&&(n=!0);var o="",a=!1;i.sort(Ce);for(var h=i.length,l=0;l<h;l++){var c=i[l];o+=(Ie[c]||c)+"("+t[c]+") ",a="z"===c||a}return!a&&r?o+="translateZ(0)":o=o.trim(),De(e.transform)?o=e.transform(t,s?"":o):n&&s&&(o="none"),o}(e,s,n,h,t,a)),c&&(i.transformOrigin=(r.originX||"50%")+" "+(r.originY||"50%")+" "+(r.originZ||0)),i}function Le(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,h={},l={},c={},d=[];return function(e){return d.length=0,Oe(e,s,h,l,c,d,n,a),h}}var Ae=de({onRead:function(e,t){var i=t.element,s=t.preparseOutput,r=Te(e);if(ze(e))return r&&r.default||0;if(ke.has(e))return i[e];var n=window.getComputedStyle(i,null).getPropertyValue(we(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 h=i[a];h.startsWith("--")&&s.style.setProperty(h,e[h])}-1!==i.indexOf("scrollLeft")&&(s.scrollLeft=e.scrollLeft),-1!==i.indexOf("scrollTop")&&(s.scrollTop=e.scrollTop)},uncachedValues:ke});var Ve=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues"]),Pe=function(e,t){return Q.transform(e*t)},je={x:0,y:0,width:0,height:0};function He(e,t,i){return"string"==typeof e?e:Q.transform(t+i*e)}var We={enableHardwareAcceleration:!1,isDashCase:!1};function Xe(e,t,i,s,r,n){void 0===t&&(t=je),void 0===s&&(s=Le(We)),void 0===r&&(r={style:{}}),void 0===n&&(n=!0);var o=e.attrX,a=e.attrY,h=e.originX,l=e.originY,c=e.pathLength,d=e.pathSpacing,u=void 0===d?1:d,f=e.pathOffset,m=void 0===f?0:f,p=s(B(e,["attrX","attrY","originX","originY","pathLength","pathSpacing","pathOffset"]));for(var g in p){if("transform"===g)r.style.transform=p[g];else r[n&&!Ve.has(g)?fe(g):g]=p[g]}return(void 0!==h||void 0!==l||p.transform)&&(r.style.transformOrigin=function(e,t,i){return He(t,e.x,e.width)+" "+He(i,e.y,e.height)}(t,void 0!==h?h:.5,void 0!==l?l:.5)),void 0!==o&&(r.x=o),void 0!==a&&(r.y=a),void 0!==i&&void 0!==c&&(r[n?"stroke-dashoffset":"strokeDashoffset"]=Pe(-m,i),r[n?"stroke-dasharray":"strokeDasharray"]=Pe(c,i)+" "+Pe(u,i)),r}function Ye(e,t,i){void 0===i&&(i=!0);var s={style:{}},r=Le(We);return function(n){return Xe(n,e,t,r,s,i)}}var Fe=de({onRead:function(e,t){var i=t.element;if(ze(e=Ve.has(e)?e:fe(e))){var s=Te(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])}}),Ze=de({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)}}),Ue=new WeakMap,qe=function(e,t){var i,s,r,n;return e===window?i=Ze(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=Fe({element:s,buildAttrs:Ye(r,n)})):i=function(e,t){void 0===t&&(t={});var i=t.enableHardwareAcceleration,s=t.allowTransformNone,r=B(t,["enableHardwareAcceleration","allowTransformNone"]);return Ae(S({element:e,buildStyles:Le({enableHardwareAcceleration:i,allowTransformNone:s}),preparseOutput:!0},r))}(e,t),Ue.set(e,i),i};function Ge(e,t){return function(e,t){return Ue.has(e)?Ue.get(e):qe(e,t)}("string"==typeof e?document.querySelector(e):e,t)}var Je=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),h=0;h<n.length;h++){var l=n[h];if(!a(l))return!1;var c=e[l],d=t[l];if(!1===(r=i?i.call(s,c,d,l):void 0)||void 0===r&&c!==d)return!1}return!0};const Qe="!#%()*+,-./:;=?@[]^_`{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",Ke=Qe.length,et=Array(20),tt=()=>{for(let e=0;e<20;e++)et[e]=Qe.charAt(Math.random()*Ke);return et.join("")};function it(e){try{return e()}catch(t){console.error(t)}}class st{constructor(){this.disposers=new Map}addDisposer(e,t=this.genUID()){return this.flush(t),this.disposers.set(t,Array.isArray(e)?()=>e.forEach(it):e),t}add(e,t=this.genUID()){return this.addDisposer(e(),t)}addEventListener(e,t,i,s,r=this.genUID()){return e.addEventListener(t,i,s),this.addDisposer((()=>e.removeEventListener(t,i,s)),r),r}setTimeout(e,t,i=this.genUID()){const s=window.setTimeout((()=>{this.remove(i),e()}),t);return this.addDisposer((()=>window.clearTimeout(s)),i)}setInterval(e,t,i=this.genUID()){const s=window.setInterval(e,t);return this.addDisposer((()=>window.clearInterval(s)),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(it),this.disposers.clear()}genUID(){let e;do{e=tt()}while(this.disposers.has(e));return e}}var rt=Object.defineProperty,nt=Object.defineProperties,ot=Object.getOwnPropertyDescriptors,at=Object.getOwnPropertySymbols,ht=Object.prototype.hasOwnProperty,lt=Object.prototype.propertyIsEnumerable,ct=(e,t,i)=>t in e?rt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,dt=(e,t,i)=>(ct(e,"symbol"!=typeof t?t+"":t,i),i);class ut{constructor(e){dt(this,"_subscribers"),dt(this,"_bSub"),dt(this,"_bSubDisposer"),this._bSub=e}get size(){return this._subscribers?this._subscribers.size:0}invoke(e,t){this._subscribers&&this._subscribers.forEach((i=>i(e,t)))}add(e){this._bSub&&(!this._subscribers||this._subscribers.size<=0)&&(this._bSubDisposer=this._bSub()),this._subscribers||(this._subscribers=new Set),this._subscribers.add(e)}remove(e){if(this._subscribers&&this._subscribers.delete(e),this._subscribers&&this._subscribers.size<=0&&this._bSubDisposer){const e=this._bSubDisposer;this._bSubDisposer=null,e()}}clear(){if(this._subscribers&&this._subscribers.clear(),this._bSubDisposer){const e=this._bSubDisposer;this._bSubDisposer=null,e()}}destroy(){this.clear()}}class ft{constructor(e,t){let i;if(dt(this,"_subscribers"),dt(this,"_value"),this._value=e,t&&(t.compare&&(this.compare=t.compare),t.beforeSubscribe)){const e=t.beforeSubscribe,s=this._setValue.bind(this);i=()=>e(s)}this._subscribers=new ut(i)}_setValue(e,t){this.compare(e,this._value)||(this._value=e,this._subscribers.invoke(e,t))}get value(){return this._value}reaction(e){return this._subscribers.add(e),()=>{this._subscribers.remove(e)}}subscribe(e,t){const i=this.reaction(e);return e(this._value,t),i}destroy(){this._subscribers.destroy()}unsubscribe(e){this._subscribers.remove(e)}compare(e,t){return e===t}}class mt extends ft{constructor(){super(...arguments),dt(this,"setValue",this._setValue)}}class pt extends ft{constructor(e,t,i={}){var s;super(t(gt(e)),(s=((e,t)=>{for(var i in t||(t={}))ht.call(t,i)&&ct(e,i,t[i]);if(at)for(var i of at(t))lt.call(t,i)&&ct(e,i,t[i]);return e})({},i),nt(s,ot({beforeSubscribe:s=>{let r=gt(e);s(t(r));const n=e.map(((e,i)=>e.reaction(((e,n)=>{r=r.slice(),r[i]=e,s(t(r),n)})))),o=()=>n.forEach((e=>e()));if(i.beforeSubscribe){const e=i.beforeSubscribe(s);if(e)return()=>{o(),e()}}return o}})))),dt(this,"_srcValue"),this._srcValue=()=>t(gt(e))}get value(){if(this._subscribers.size<=0){const e=this._srcValue();return this.compare(e,this._value)?this._value:e}return this._value}}function gt(e){return e.map(bt)}function bt(e){return e.value}function vt(e,t=(e=>e),i={}){return new pt(e,t,i)}function xt(e,t){Object.keys(t).forEach((i=>{!function(e,t,i){Object.defineProperties(e,{[t]:{get:()=>i.value},[`_${t}$`]:{value:i}})}(e,i,t[i])}))}function wt(e,t){Object.keys(t).forEach((i=>{!function(e,t,i){Object.defineProperties(e,{[t]:{get:()=>i.value},[`_${t}$`]:{value:i},[`set${yt(t)}`]:{value:(e,t)=>i.setValue(e,t)}})}(e,i,t[i])}))}function yt(e){return e[0].toUpperCase()+e.slice(1)}var $t,Et,zt,Ct,_t,St,Bt,Nt,Tt,Mt;(Et=$t||($t={})).Light="light",Et.Dark="dark",Et.Auto="auto",(Ct=zt||(zt={})).Normal="normal",Ct.Minimized="minimized",Ct.Maximized="maximized",(St=_t||(_t={})).DarkMode="dark_mode",St.PrefersColorScheme="prefers_color_scheme",St.Close="close",St.Focus="focus",St.Blur="blur",St.IntrinsicMove="intrinsic_move",St.IntrinsicResize="intrinsic_resize",St.ZIndex="z_index",St.State="state",St.Minimized="minimized",St.Maximized="maximized",St.Readonly="readonly",St.Destroyed="destroyed",(Nt=Bt||(Bt={})).Close="close",Nt.Maximize="maximize",Nt.Minimize="minimize",(Mt=Tt||(Tt={})).North="n",Mt.South="s",Mt.West="w",Mt.East="e",Mt.NorthWest="nw",Mt.NorthEast="ne",Mt.SouthEast="se",Mt.SouthWest="sw";const kt="dh";function Rt(e,t,i){return Math.min(Math.max(e,t),i)}function It(e){e.stopPropagation(),e.cancelable&&e.preventDefault()}function Dt(e){return e.touches?e.touches[0]:e}let Ot=1;function Lt(){return"New Box "+Ot++}function At(e){return Boolean(e)}function Vt(e){return!e}class Pt{constructor({readonly$:e,state$:t,title:i="",buttons:s,onEvent:r,onDragStart:n,namespace:o="telebox"}){this.sideEffect=new st,this.lastTitleBarClick={timestamp:0,clientX:-100,clientY:-100},this.handleTitleBarClick=e=>{var t;if(this.readonly$.value)return;if(0!==e.button)return;if(null==(t=e.target.dataset)?void 0:t.teleTitleBarNoDblClick)return;It(e);const i=Date.now();i-this.lastTitleBarClick.timestamp<=500?Math.abs(e.clientX-this.lastTitleBarClick.clientX)<=5&&Math.abs(e.clientY-this.lastTitleBarClick.clientY)<=5&&this.onEvent&&this.onEvent({type:Bt.Maximize}):this.onDragStart&&this.onDragStart(e),this.lastTitleBarClick.timestamp=i,this.lastTitleBarClick.clientX=e.clientX,this.lastTitleBarClick.clientY=e.clientY},this.lastTitleBarTouch={timestamp:0,clientX:-100,clientY:-100},this.handleTitleBarTouch=e=>{var t;if(this.readonly$.value)return;if(null==(t=e.target.dataset)?void 0:t.teleTitleBarNoDblClick)return;It(e);const i=Date.now(),{clientX:s=this.lastTitleBarTouch.clientX+100,clientY:r=this.lastTitleBarTouch.clientY+100}=e.touches[0]||{};i-this.lastTitleBarTouch.timestamp<=500?Math.abs(s-this.lastTitleBarTouch.clientX)<=10&&Math.abs(r-this.lastTitleBarTouch.clientY)<=10&&this.onEvent&&this.onEvent({type:Bt.Maximize}):this.onDragStart&&this.onDragStart(e),this.lastTitleBarTouch.timestamp=i,this.lastTitleBarTouch.clientX=s,this.lastTitleBarTouch.clientY=r},this.readonly$=e,this.state$=t,this.title$=new mt(i),this.onEvent=r,this.onDragStart=n,this.namespace=o,this.buttons=s||[{type:Bt.Minimize,iconClassName:this.wrapClassName("titlebar-icon-minimize")},{type:Bt.Maximize,iconClassName:this.wrapClassName("titlebar-icon-maximize"),isActive:e=>e===zt.Maximized},{type:Bt.Close,iconClassName:this.wrapClassName("titlebar-icon-close")}],this.$dragArea=this.renderDragArea()}get title(){return this.title$.value}setTitle(e){this.title$.setValue(e)}render(){if(!this.$titleBar){this.$titleBar=document.createElement("div"),this.$titleBar.className=this.wrapClassName("titlebar");const e=document.createElement("div");e.className=this.wrapClassName("title-area"),e.dataset.teleBoxHandle="dh";const t=document.createElement("h1");t.className=this.wrapClassName("title"),t.dataset.teleBoxHandle="dh",e.appendChild(t),e.appendChild(this.$dragArea);const i=document.createElement("div");i.className=this.wrapClassName("titlebar-btns"),this.buttons.forEach((({iconClassName:e},t)=>{const s=String(t),r=document.createElement("button");r.className=`${this.wrapClassName("titlebar-btn")} ${e}`,r.dataset.teleTitleBarBtnIndex=s,r.dataset.teleTitleBarNoDblClick="true",i.appendChild(r)})),this.sideEffect.addDisposer(this.title$.subscribe((e=>{t.textContent=e,t.title=e})),"render-title"),this.sideEffect.addDisposer(this.state$.subscribe((e=>{this.buttons.forEach(((t,s)=>{var r;t.isActive&&(null==(r=i.children[s])||r.classList.toggle("is-active",t.isActive(e)))}))})),"render-state-btns"),this.sideEffect.addEventListener(i,"click",(e=>{var t;if(this.readonly$.value)return;const i=e.target,s=Number(null==(t=i.dataset)?void 0:t.teleTitleBarBtnIndex);if(!Number.isNaN(s)&&s<this.buttons.length){It(e);const t=this.buttons[s];this.onEvent&&this.onEvent({type:t.type,value:t.value})}}),{},"render-btns-container-click"),this.$titleBar.appendChild(e),this.$titleBar.appendChild(i)}return this.$titleBar}renderDragArea(){const e=document.createElement("div");return e.className=this.wrapClassName("drag-area"),e.dataset.teleBoxHandle="dh",this.sideEffect.addEventListener(e,"mousedown",this.handleTitleBarClick),this.sideEffect.addEventListener(e,"touchstart",this.handleTitleBarTouch,{passive:!0}),e}dragHandle(){return this.$titleBar}wrapClassName(e){return`${this.namespace}-${e}`}destroy(){this.sideEffect.flushAll(),this.$titleBar&&(this.$titleBar=void 0,this.onDragStart=void 0,this.onEvent=void 0)}}var jt,Ht,Wt=[],Xt="ResizeObserver loop completed with undelivered notifications.";(Ht=jt||(jt={})).BORDER_BOX="border-box",Ht.CONTENT_BOX="content-box",Ht.DEVICE_PIXEL_CONTENT_BOX="device-pixel-content-box";var Yt,Ft=function(e){return Object.freeze(e)},Zt=function(e,t){this.inlineSize=e,this.blockSize=t,Ft(this)},Ut=function(){function e(e,t,i,s){return this.x=e,this.y=t,this.width=i,this.height=s,this.top=this.y,this.left=this.x,this.bottom=this.top+this.height,this.right=this.left+this.width,Ft(this)}return e.prototype.toJSON=function(){var e=this;return{x:e.x,y:e.y,top:e.top,right:e.right,bottom:e.bottom,left:e.left,width:e.width,height:e.height}},e.fromRect=function(t){return new e(t.x,t.y,t.width,t.height)},e}(),qt=function(e){return e instanceof SVGElement&&"getBBox"in e},Gt=function(e){if(qt(e)){var t=e.getBBox(),i=t.width,s=t.height;return!i&&!s}var r=e,n=r.offsetWidth,o=r.offsetHeight;return!(n||o||e.getClientRects().length)},Jt=function(e){var t,i;if(e instanceof Element)return!0;var s=null===(i=null===(t=e)||void 0===t?void 0:t.ownerDocument)||void 0===i?void 0:i.defaultView;return!!(s&&e instanceof s.Element)},Qt="undefined"!=typeof window?window:{},Kt=new WeakMap,ei=/auto|scroll/,ti=/^tb|vertical/,ii=/msie|trident/i.test(Qt.navigator&&Qt.navigator.userAgent),si=function(e){return parseFloat(e||"0")},ri=function(e,t,i){return void 0===e&&(e=0),void 0===t&&(t=0),void 0===i&&(i=!1),new Zt((i?t:e)||0,(i?e:t)||0)},ni=Ft({devicePixelContentBoxSize:ri(),borderBoxSize:ri(),contentBoxSize:ri(),contentRect:new Ut(0,0,0,0)}),oi=function(e,t){if(void 0===t&&(t=!1),Kt.has(e)&&!t)return Kt.get(e);if(Gt(e))return Kt.set(e,ni),ni;var i=getComputedStyle(e),s=qt(e)&&e.ownerSVGElement&&e.getBBox(),r=!ii&&"border-box"===i.boxSizing,n=ti.test(i.writingMode||""),o=!s&&ei.test(i.overflowY||""),a=!s&&ei.test(i.overflowX||""),h=s?0:si(i.paddingTop),l=s?0:si(i.paddingRight),c=s?0:si(i.paddingBottom),d=s?0:si(i.paddingLeft),u=s?0:si(i.borderTopWidth),f=s?0:si(i.borderRightWidth),m=s?0:si(i.borderBottomWidth),p=d+l,g=h+c,b=(s?0:si(i.borderLeftWidth))+f,v=u+m,x=a?e.offsetHeight-v-e.clientHeight:0,w=o?e.offsetWidth-b-e.clientWidth:0,y=r?p+b:0,$=r?g+v:0,E=s?s.width:si(i.width)-y-w,z=s?s.height:si(i.height)-$-x,C=E+p+w+b,_=z+g+x+v,S=Ft({devicePixelContentBoxSize:ri(Math.round(E*devicePixelRatio),Math.round(z*devicePixelRatio),n),borderBoxSize:ri(C,_,n),contentBoxSize:ri(E,z,n),contentRect:new Ut(d,h,E,z)});return Kt.set(e,S),S},ai=function(e,t,i){var s=oi(e,i),r=s.borderBoxSize,n=s.contentBoxSize,o=s.devicePixelContentBoxSize;switch(t){case jt.DEVICE_PIXEL_CONTENT_BOX:return o;case jt.BORDER_BOX:return r;default:return n}},hi=function(e){var t=oi(e);this.target=e,this.contentRect=t.contentRect,this.borderBoxSize=Ft([t.borderBoxSize]),this.contentBoxSize=Ft([t.contentBoxSize]),this.devicePixelContentBoxSize=Ft([t.devicePixelContentBoxSize])},li=function(e){if(Gt(e))return 1/0;for(var t=0,i=e.parentNode;i;)t+=1,i=i.parentNode;return t},ci=function(){var e=1/0,t=[];Wt.forEach((function(i){if(0!==i.activeTargets.length){var s=[];i.activeTargets.forEach((function(t){var i=new hi(t.target),r=li(t.target);s.push(i),t.lastReportedSize=ai(t.target,t.observedBox),r<e&&(e=r)})),t.push((function(){i.callback.call(i.observer,s,i.observer)})),i.activeTargets.splice(0,i.activeTargets.length)}}));for(var i=0,s=t;i<s.length;i++){(0,s[i])()}return e},di=function(e){Wt.forEach((function(t){t.activeTargets.splice(0,t.activeTargets.length),t.skippedTargets.splice(0,t.skippedTargets.length),t.observationTargets.forEach((function(i){i.isActive()&&(li(i.target)>e?t.activeTargets.push(i):t.skippedTargets.push(i))}))}))},ui=function(){var e,t=0;for(di(t);Wt.some((function(e){return e.activeTargets.length>0}));)t=ci(),di(t);return Wt.some((function(e){return e.skippedTargets.length>0}))&&("function"==typeof ErrorEvent?e=new ErrorEvent("error",{message:Xt}):((e=document.createEvent("Event")).initEvent("error",!1,!1),e.message=Xt),window.dispatchEvent(e)),t>0},fi=[],mi=function(e){if(!Yt){var t=0,i=document.createTextNode("");new MutationObserver((function(){return fi.splice(0).forEach((function(e){return e()}))})).observe(i,{characterData:!0}),Yt=function(){i.textContent=""+(t?t--:t++)}}fi.push(e),Yt()},pi=0,gi={attributes:!0,characterData:!0,childList:!0,subtree:!0},bi=["resize","load","transitionend","animationend","animationstart","animationiteration","keyup","keydown","mouseup","mousedown","mouseover","mouseout","blur","focus"],vi=function(e){return void 0===e&&(e=0),Date.now()+e},xi=!1,wi=new(function(){function e(){var e=this;this.stopped=!0,this.listener=function(){return e.schedule()}}return e.prototype.run=function(e){var t=this;if(void 0===e&&(e=250),!xi){xi=!0;var i,s=vi(e);i=function(){var i=!1;try{i=ui()}finally{if(xi=!1,e=s-vi(),!pi)return;i?t.run(1e3):e>0?t.run(e):t.start()}},mi((function(){requestAnimationFrame(i)}))}},e.prototype.schedule=function(){this.stop(),this.run()},e.prototype.observe=function(){var e=this,t=function(){return e.observer&&e.observer.observe(document.body,gi)};document.body?t():Qt.addEventListener("DOMContentLoaded",t)},e.prototype.start=function(){var e=this;this.stopped&&(this.stopped=!1,this.observer=new MutationObserver(this.listener),this.observe(),bi.forEach((function(t){return Qt.addEventListener(t,e.listener,!0)})))},e.prototype.stop=function(){var e=this;this.stopped||(this.observer&&this.observer.disconnect(),bi.forEach((function(t){return Qt.removeEventListener(t,e.listener,!0)})),this.stopped=!0)},e}()),yi=function(e){!pi&&e>0&&wi.start(),!(pi+=e)&&wi.stop()},$i=function(){function e(e,t){this.target=e,this.observedBox=t||jt.CONTENT_BOX,this.lastReportedSize={inlineSize:0,blockSize:0}}return e.prototype.isActive=function(){var e,t=ai(this.target,this.observedBox,!0);return e=this.target,qt(e)||function(e){switch(e.tagName){case"INPUT":if("image"!==e.type)break;case"VIDEO":case"AUDIO":case"EMBED":case"OBJECT":case"CANVAS":case"IFRAME":case"IMG":return!0}return!1}(e)||"inline"!==getComputedStyle(e).display||(this.lastReportedSize=t),this.lastReportedSize.inlineSize!==t.inlineSize||this.lastReportedSize.blockSize!==t.blockSize},e}(),Ei=function(e,t){this.activeTargets=[],this.skippedTargets=[],this.observationTargets=[],this.observer=e,this.callback=t},zi=new WeakMap,Ci=function(e,t){for(var i=0;i<e.length;i+=1)if(e[i].target===t)return i;return-1},_i=function(){function e(){}return e.connect=function(e,t){var i=new Ei(e,t);zi.set(e,i)},e.observe=function(e,t,i){var s=zi.get(e),r=0===s.observationTargets.length;Ci(s.observationTargets,t)<0&&(r&&Wt.push(s),s.observationTargets.push(new $i(t,i&&i.box)),yi(1),wi.schedule())},e.unobserve=function(e,t){var i=zi.get(e),s=Ci(i.observationTargets,t),r=1===i.observationTargets.length;s>=0&&(r&&Wt.splice(Wt.indexOf(i),1),i.observationTargets.splice(s,1),yi(-1))},e.disconnect=function(e){var t=this,i=zi.get(e);i.observationTargets.slice().forEach((function(i){return t.unobserve(e,i.target)})),i.activeTargets.splice(0,i.activeTargets.length)},e}(),Si=function(){function e(e){if(0===arguments.length)throw new TypeError("Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.");if("function"!=typeof e)throw new TypeError("Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.");_i.connect(this,e)}return e.prototype.observe=function(e,t){if(0===arguments.length)throw new TypeError("Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.");if(!Jt(e))throw new TypeError("Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element");_i.observe(this,e,t)},e.prototype.unobserve=function(e){if(0===arguments.length)throw new TypeError("Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.");if(!Jt(e))throw new TypeError("Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element");_i.unobserve(this,e)},e.prototype.disconnect=function(){_i.disconnect(this)},e.toString=function(){return"function ResizeObserver () { [polyfill code] }"},e}();class Bi{constructor({namespace:e,rootRect$:t,ratio$:i,highlightStage$:s,root:r=null}){this._sideEffect=new st,this.namespace=e,this.highlightStage$=s,this.root$=new mt(r),this.stageRect$=vt([t,s,i],(([e,t,i])=>{if(!t)return e;if(i<=0||e.width<=0||e.height<=0)return e;const s=e.width*i;if(s===e.height)return e;if(s<e.height)return{x:0,y:(e.height-s)/2,width:e.width,height:s};const r=e.height/i;return{x:(e.width-r)/2,y:0,width:r,height:e.height}}),{compare:Je}),this._sideEffect.addDisposer(vt([this.root$,s]).subscribe((([e,t])=>{var i;e&&t?e.appendChild(this.render()):(null==(i=this.$boxStage)?void 0:i.parentNode)&&this.$boxStage.remove()})))}render(){if(this.$boxStage)return this.$boxStage;const e=document.createElement("div");e.className=this.wrapClassName("box-stage-container");const t=document.createElement("div");t.className=this.wrapClassName("box-stage-mask");const i=document.createElement("div");i.className=this.wrapClassName("box-stage-mask");const s=document.createElement("div");s.className=this.wrapClassName("box-stage-frame");const[r,n,o,a]=["M0 8V0h8v2H2v6H0Z","M8 8V0H0v2h6v6h2Z","M0 0v8h8V6H2V0H0Z","M8 0v8H0V6h6V0h2Z"].map(((e,t)=>{const i=document.createElementNS("http://www.w3.org/2000/svg","svg");i.setAttribute("viewBox","0 0 8 8"),i.setAttribute("class",`${this.wrapClassName("box-stage-frame-corner")} is-${t}`);const s=document.createElementNS("http://www.w3.org/2000/svg","path");return s.setAttribute("d",e),s.setAttribute("fill","#3381FF"),i.appendChild(s),i}));return s.appendChild(r),s.appendChild(o),s.appendChild(n),s.appendChild(a),e.appendChild(t),e.appendChild(s),e.appendChild(i),this._sideEffect.addDisposer(this.highlightStage$.subscribe((t=>{e.classList.toggle("is-active",t)}))),this._sideEffect.addDisposer(vt([this.highlightStage$,this.stageRect$]).subscribe((([s,r])=>{s&&(r.x>0?(e.style.flexDirection="row",t.style.width=`${r.x}px`,t.style.height="",i.style.width=`${r.x}px`,i.style.height=""):r.y>0&&(e.style.flexDirection="column",t.style.width="",t.style.height=`${r.y}px`,i.style.width="",i.style.height=`${r.y}px`))}))),this.$boxStage=e,e}mount(e){this.root$.setValue(e)}unmount(){this.root$.setValue(null)}destroy(){this._sideEffect.flushAll()}wrapClassName(e){return`${this.namespace}-${e}`}}const Ni=window.ResizeObserver||Si;class Ti{constructor({id:e=tt(),title:t=Lt(),namespace:i="telebox",visible:s=!0,width:r=.5,height:n=.5,minWidth:o=0,minHeight:a=0,x:h=.1,y:l=.1,resizable:c=!0,draggable:d=!0,ratio:u=-1,focus:f=!1,zIndex:m=100,titleBar:p,content:g,footer:b,styles:v,highlightStage:x=null,darkMode$:w,fence$:y,minimized$:$,maximized$:E,readonly$:z,rootRect$:C,managerStageRect$:S,stageRatio$:B,collectorRect$:N,managerHighlightStage$:T}){this.events=new _,this._delegateEvents=new _,this.handleTrackStart=e=>{var t;return null==(t=this._handleTrackStart)?void 0:t.call(this,e)},this._sideEffect=new st,this.id=e,this.namespace=i;const M=new mt(t),k=new mt(s),R=new mt(c),I=new mt(d),D=new mt(u),O=new mt(m),L=new mt(f),A=new mt(g),V=new mt(b),P=new mt(v),j=vt([$,E],(([e,t])=>e?zt.Minimized:t?zt.Maximized:zt.Normal)),H=new mt({width:Rt(o,0,1),height:Rt(a,0,1)},{compare:Je}),W=vt([H,S],(([e,t])=>({width:e.width*t.width,height:e.height*t.height})),{compare:Je}),X=new mt({width:r,height:n},{compare:Je});this._sideEffect.addDisposer(H.reaction(((e,t)=>{X.setValue({width:Math.max(r,e.width),height:Math.max(n,e.height)},t)})));const Y=new mt({x:h,y:l},{compare:Je}),F=vt([X,S],(([e,t])=>({width:t.width*e.width,height:t.height*e.height})),{compare:Je}),Z=vt([Y,S],(([e,t])=>({x:e.x*t.width+t.x,y:e.y*t.height+t.y})),{compare:Je}),U=new mt(x),q=vt([E,U,T],(([e,t,i])=>null===t?i&&e:t)),G=new mt(C.value,{compare:Je}),J=new Bi({namespace:i,rootRect$:G,ratio$:B,highlightStage$:q});this._sideEffect.addDisposer((()=>J.destroy()));xt(this,{darkMode:w,fence:y,minimized:$,maximized:E,readonly:z,rootRect:C,managerStageRect:S,collectorRect:N,zIndex:O,focus:L,$userContent:A,$userFooter:V,$userStyles:P,state:j,minSize:H,pxMinSize:W,intrinsicSize:X,intrinsicCoord:Y,pxIntrinsicSize:F,pxIntrinsicCoord:Z,highlightStage:q,boxHighlightStage:U,contentRect:G,contentStageRect:J.stageRect$});wt(this,{title:M,visible:k,resizable:R,draggable:I,ratio:D}),this.titleBar=p||new Pt({readonly$:z,state$:j,title:M.value,namespace:this.namespace,onDragStart:e=>{var t;return null==(t=this._handleTrackStart)?void 0:t.call(this,e)},onEvent:e=>this._delegateEvents.emit(e.type)}),this._sideEffect.addDisposer(D.subscribe((e=>{e>0&&this.transform(Z.value.x,Z.value.y,F.value.width,F.value.height,!0)}))),this._sideEffect.addDisposer(y.subscribe((e=>{e&&this.move(Z.value.x,Z.value.y,!0)}))),this.$box=this.render(),J.root$.setValue(this.$content.parentElement);const Q=(e,t)=>{this._sideEffect.addDisposer(e.reaction(((e,i)=>{i||this.events.emit(t,e)})))};Q(w,_t.DarkMode),Q(z,_t.Readonly),Q(O,_t.ZIndex),Q($,_t.Minimized),Q(E,_t.Maximized),Q(j,_t.State),Q(X,_t.IntrinsicResize),Q(Y,_t.IntrinsicMove),this._sideEffect.addDisposer(k.reaction(((e,t)=>{t||e||this.events.emit(_t.Close)}))),this._sideEffect.addDisposer(L.reaction(((e,t)=>{t||this.events.emit(e?_t.Focus:_t.Blur)})))}get minWidth(){return this._minSize$.value.width}get minHeight(){return this._minSize$.value.height}setMinWidth(e,t=!1){this._minSize$.setValue({width:e,height:this.minHeight},t)}setMinHeight(e,t=!1){this._minSize$.setValue({width:this.minWidth,height:e},t)}resize(e,t,i=!1){this._intrinsicSize$.setValue({width:Math.max(e,this.minWidth),height:Math.max(t,this.minHeight)},i)}get intrinsicX(){return this._intrinsicCoord$.value.x}get intrinsicY(){return this._intrinsicCoord$.value.y}get intrinsicWidth(){return this._intrinsicSize$.value.width}get intrinsicHeight(){return this._intrinsicSize$.value.height}move(e,t,i=!1){let s,r;const n=this.managerStageRect,o=this.pxIntrinsicSize;if(this.fence)s=Rt(e,n.x,n.x+n.width-o.width),r=Rt(t,n.y,n.y+n.height-o.height);else{const i=this.rootRect;s=Rt(e,i.x-o.width+20,i.x+i.width-20),r=Rt(t,i.y,i.y+i.height-20)}this._intrinsicCoord$.setValue({x:(s-n.x)/n.width,y:(r-n.y)/n.height},i)}transform(e,t,i,s,r=!1){const n=this.managerStageRect,o=this.rootRect;if(i=Math.max(i,this.pxMinSize.width),s=Math.max(s,this.pxMinSize.height),this.ratio>0){const e=this.ratio*i;t!==this.pxIntrinsicCoord.y&&(t-=e-s),s=e}t<o.y&&(t=o.y,s=this.pxIntrinsicSize.height),this.move(e,t,r),this._intrinsicSize$.setValue({width:i/n.width,height:s/n.height},r)}mount(e){e.appendChild(this.$box)}unmount(){this.$box.parentNode&&this.$box.remove()}mountContent(e){this._$userContent$.setValue(e)}unmountContent(){this._$userContent$.setValue(void 0)}mountFooter(e){this._$userFooter$.setValue(e)}unmountFooter(){this._$userFooter$.setValue(void 0)}getUserStyles(){return this.$userStyles}mountStyles(e){let t;"string"==typeof e?(t=document.createElement("style"),t.textContent=e):t=e,this._$userStyles$.setValue(t)}unmountStyles(){this._$userStyles$.setValue(void 0)}setHighlightStage(e){this._boxHighlightStage$.setValue(e)}render(){if(this.$box)return this.$box;this.$box=document.createElement("div"),this.$box.classList.add(this.wrapClassName("box"));const e=(e,t,i,s=At)=>this._sideEffect.add((()=>{const r=this.wrapClassName(i);return t.subscribe((t=>{e.classList.toggle(r,s(t))}))}));e(this.$box,this._readonly$,"readonly"),e(this.$box,this._draggable$,"no-drag",Vt),e(this.$box,this._resizable$,"no-resize",Vt),e(this.$box,this._focus$,"blur",Vt),e(this.$box,this._darkMode$,"color-scheme-dark"),e(this.$box,this._darkMode$,"color-scheme-light",Vt),this._sideEffect.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===zt.Minimized),s===zt.Maximized?(this._sideEffect.flush(i),this.$box.classList.toggle(t,!0)):this._sideEffect.setTimeout((()=>{this.$box.classList.toggle(t,!1)}),0,i)}))})),this._sideEffect.addDisposer(this._visible$.subscribe((e=>{this.$box.style.display=e?"block":"none"}))),this._sideEffect.addDisposer(this._zIndex$.subscribe((e=>{this.$box.style.zIndex=String(e)}))),this.$box.dataset.teleBoxID=this.id;const t=Ge(this.$box),i=vt([this._maximized$,this._minimized$,this._pxIntrinsicSize$,this._pxIntrinsicCoord$,this._collectorRect$],(([e,t,i,s,r])=>t&&r?{x:r.x+r.width/2,y:r.y+r.height/2,width:i.width+"px",height:i.height+"px",scaleX:r.width/i.width,scaleY:r.height/i.height}:e?{x:0,y:0,width:"100%",height:"100%",scaleX:1,scaleY:1}:{x:s.x,y:s.y,width:i.width+"px",height:i.height+"px",scaleX:1,scaleY:1}),{compare:Je}),s=i.value;this.$box.style.width=s.width,this.$box.style.height=s.height,this.$box.style.transform=`translate(${s.x-10}px,${s.y-10}px)`,this._sideEffect.addDisposer(i.subscribe((e=>{t.set(e)})));const r=document.createElement("div");r.className=this.wrapClassName("box-main"),this.$box.appendChild(r);const n=document.createElement("div");n.className=this.wrapClassName("titlebar-wrap"),n.appendChild(this.titleBar.render()),this.$titleBar=n;const o=document.createElement("div");o.className=this.wrapClassName("content-wrap");const a=document.createElement("div");a.className=this.wrapClassName("content")+" tele-fancy-scrollbar",this.$content=a,this._sideEffect.add((()=>{const e=new Ni((e=>{var t;const i=null==(t=e[0])?void 0:t.contentRect;i&&this._contentRect$.setValue({x:i.x,y:i.y,width:i.width,height:i.height})}));return e.observe(a),()=>e.disconnect()})),this._sideEffect.add((()=>{let e;return this._$userStyles$.subscribe((t=>{e&&e.remove(),e=t,t&&o.appendChild(t)}))})),this._sideEffect.add((()=>{let e;return this._$userContent$.subscribe((t=>{e&&e.remove(),e=t,t&&a.appendChild(t)}))})),o.appendChild(a);const h=document.createElement("div");return h.className=this.wrapClassName("footer-wrap"),this.$footer=h,this._sideEffect.add((()=>{let e;return this._$userFooter$.subscribe((t=>{e&&e.remove(),e=t,t&&h.appendChild(t)}))})),r.appendChild(n),r.appendChild(o),r.appendChild(h),this._renderResizeHandlers(),this.$box}_renderResizeHandlers(){const e=document.createElement("div");e.className=this.wrapClassName("resize-handles"),Object.values(Tt).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,h=0,l=0,c=0;const d=e=>{if(this.state!==zt.Normal)return;It(e);let{pageX:t,pageY:i}=Dt(e);i<this.rootRect.y&&(i=this.rootRect.y);const s=t-l,d=i-c;let{x:u,y:f}=this.pxIntrinsicCoord,{width:m,height:p}=this.pxIntrinsicSize;switch(r){case Tt.North:f=o+d,p=h-d;break;case Tt.South:p=h+d;break;case Tt.West:u=n+s,m=a-s;break;case Tt.East:m=a+s;break;case Tt.NorthWest:u=n+s,f=o+d,m=a-s,p=h-d;break;case Tt.NorthEast:f=o+d,m=a+s,p=h-d;break;case Tt.SouthEast:m=a+s,p=h+d;break;case Tt.SouthWest:u=n+s,m=a-s,p=h+d;break;default:return void this.move(n+s,o+d)}this.transform(u,f,m,p)},u=e=>{r=void 0,s&&(It(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!==zt.Normal)return;const m=e.target;if(null==(f=m.dataset)?void 0:f.teleBoxHandle){It(e),({x:n,y:o}=this.pxIntrinsicCoord),({width:a,height:h}=this.pxIntrinsicSize),({pageX:l,pageY:c}=Dt(e)),r=m.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")}async destroy(){this.$box.remove(),this._sideEffect.flushAll(),this._sideEffect.flushAll(),await this.events.emit(_t.Destroyed),this.events.clearListeners(),this._delegateEvents.clearListeners()}wrapClassName(e){return`${this.namespace}-${e}`}}var Mi,ki;class Ri{constructor({minimized$:e,readonly$:t,darkMode$:i,rootRect$:s,namespace:r="telebox",styles:n={},root:o}){this._sideEffect=new st,this.namespace=r;const a=new mt(void 0),h=e,l=new mt(n),c=new mt(o),d=new mt(document.createElement("button"));wt(this,{styles:l,root:c,el:d});xt(this,{rect:a,visible:h}),d.value.className=this.wrapClassName("collector"),d.value.style.backgroundImage="url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxNiI+CiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxwYXRoIHN0cm9rZT0iIzdCODhBMCIgc3Ryb2tlLXdpZHRoPSIxLjQiIGQ9Ik0uNyAxLjJoMTYuNnYxMy42SC43eiIgLz4KICAgICAgICA8cGF0aCBmaWxsPSIjN0I4OEEwIiBkPSJNNCA1LjVoNnYxLjRINHpNNCA5LjVoMTB2MS40SDR6IiAvPgogICAgPC9nPgo8L3N2Zz4K')",this._sideEffect.addDisposer(d.subscribe((r=>{this._sideEffect.addEventListener(r,"click",(()=>{t.value||e.setValue(!1)}),{},"telebox-collector-click"),this._sideEffect.addDisposer([h.subscribe((e=>{r.classList.toggle(this.wrapClassName("collector-visible"),e)})),t.subscribe((e=>{r.classList.toggle(this.wrapClassName("collector-readonly"),e)})),i.subscribe((e=>{r.classList.toggle(this.wrapClassName("color-scheme-dark"),e),r.classList.toggle(this.wrapClassName("color-scheme-light"),!e)})),l.subscribe((e=>{Object.keys(e).forEach((t=>{const i=e[t];null!=i&&(r.style[t]=i)}))})),c.subscribe((e=>{e&&e.appendChild(r)})),vt([e,s,c]).subscribe((([e,t,i])=>{if(e&&i){const{x:e,y:i,width:s,height:n}=r.getBoundingClientRect();a.setValue({x:e-t.x,y:i-t.y,width:s,height:n})}}))],"telebox-collector-el")})))}destroy(){this._sideEffect.flushAll()}wrapClassName(e){return`${this.namespace}-${e}`}}(ki=Mi||(Mi={})).Focused="focused",ki.Blurred="blurred",ki.Created="created",ki.Removed="removed",ki.State="state",ki.Maximized="maximized",ki.Minimized="minimized",ki.IntrinsicMove="intrinsic_move",ki.IntrinsicResize="intrinsic_resize",ki.ZIndex="z_index",ki.PrefersColorScheme="prefers_color_scheme",ki.DarkMode="dark_mode";class Ii extends Pt{constructor(e){super(e),this.boxes$=e.boxes$,this.rootRect$=e.rootRect$,this.darkMode$=e.darkMode$}focusBox(e){var t;if(!this.focusedBox||this.focusedBox!==e){if(this.$titles&&this.state$.value===zt.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}}render(){const e=super.render();e.classList.add(this.wrapClassName("max-titlebar")),this.sideEffect.addDisposer([this.rootRect$.subscribe((t=>{const{x:i,y:s,width:r}=t;e.style.transform=`translate(${i}px, ${s}px)`,e.style.width=r+"px"})),this.state$.subscribe((t=>{e.classList.toggle(this.wrapClassName("max-titlebar-maximized"),t===zt.Maximized)})),this.readonly$.subscribe((t=>{e.classList.toggle(this.wrapClassName("readonly"),t)})),this.darkMode$.subscribe((t=>{e.classList.toggle(this.wrapClassName("color-scheme-dark"),t),e.classList.toggle(this.wrapClassName("color-scheme-light"),!t)})),vt([this.state$,this.boxes$]).subscribe((([t,i])=>{t===zt.Maximized&&(e.classList.toggle(this.wrapClassName("max-titlebar-single-title"),1===i.length),1===i.length?this.setTitle(i[0].title):e.replaceChild(this.renderTitles(),e.firstElementChild))}))],"max-render");const t=document.createElement("div");return t.classList.add(this.wrapClassName("titles-area")),e.insertBefore(t,e.firstElementChild),e}destroy(){super.destroy(),this.$titles=void 0,this.focusedBox=void 0}renderTitles(){this.$titles=document.createElement("div"),this.$titles.className=this.wrapClassName("titles"),this.sideEffect.addEventListener(this.$titles,"wheel",(e=>{e.currentTarget.scrollBy({left:e.deltaY>0?250:-250,behavior:"smooth"})}),{passive:!1},"max-render-wheel-titles");const e=document.createElement("div");e.className=this.wrapClassName("titles-content"),this.$titles.appendChild(e);const t=this.boxes$.value.map((t=>{const i=document.createElement("button");return 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),t._title$.reaction((e=>i.textContent=e))}));return this.sideEffect.addDisposer((()=>t.forEach((e=>e()))),"max-render-tab-titles"),this.$titles}}const Di=window.ResizeObserver||Si;class Oi{constructor({root:e=document.body,prefersColorScheme:t=$t.Light,minimized:i=!1,maximized:s=!1,fence:r=!1,collector:n,namespace:o="telebox",readonly:a=!1,stageRatio:h=-1,highlightStage:l=!0}={}){this.events=new _,this._sideEffect=new st,this.root=e,this.namespace=o;const c=new mt(a),d=new mt(i),u=new mt(s),f=new mt(r),m=new mt(h),p=new mt(l),g=new mt({x:0,y:0,width:window.innerWidth,height:window.innerHeight},{compare:Je});this._sideEffect.add((()=>{const t=new Di((e=>{this._sideEffect.setTimeout((()=>{var t;const i=null==(t=e[0])?void 0:t.contentRect;i&&g.setValue({x:i.x,y:i.y,width:i.width,height:i.height})}),50,"root-resize-observer")}));return t.observe(e),()=>t.disconnect()})),this.boxes$=new mt([]),this.topBox$=new mt(void 0),this._sideEffect.addDisposer(this.boxes$.subscribe((e=>{if(e.length>0){const t=e.reduce(((e,t)=>e.zIndex>t.zIndex?e:t));this.topBox$.setValue(t)}else this.topBox$.setValue(void 0)})));const b=window.matchMedia("(prefers-color-scheme: dark)"),v=new mt(!1);b&&(v.setValue(b.matches),this._sideEffect.add((()=>{const e=e=>{v.setValue(e.matches)};return b.addEventListener("change",e),()=>b.removeEventListener("change",e)})));const x=new mt(t);this._sideEffect.addDisposer(x.reaction(((e,t)=>{t||this.events.emit(Mi.PrefersColorScheme,e)})));const w=vt([v,x],(([e,t])=>"auto"===t?e:"dark"===t)),y=vt([d,u],(([e,t])=>e?zt.Minimized:t?zt.Maximized:zt.Normal));this.collector=null!=n?n:new Ri({minimized$:d,readonly$:c,darkMode$:w,namespace:o,root:e,rootRect$:g});const $=new Bi({namespace:o,rootRect$:g,ratio$:m,root:e,highlightStage$:p});this._sideEffect.addDisposer((()=>$.destroy()));xt(this,{darkMode:w,state:y,rootRect:g,stageRect:$.stageRect$});wt(this,{prefersColorScheme:x,readonly:c,fence:f,minimized:d,maximized:u,stageRatio:m,highlightStage:p});const E=this.wrapClassName("titlebar-icon-close"),z=e=>{var t;if(c.value)return;const i=e.target;if(i.tagName)for(let s=i;s;s=s.parentElement){if(s.classList&&s.classList.contains(E))return;const e=null==(t=s.dataset)?void 0:t.teleBoxID;if(e){const t=this.getBox(e);if(t)return this.focusBox(t),void this.makeBoxTop(t)}}};this._sideEffect.addEventListener(window,"mousedown",z,!0),this._sideEffect.addEventListener(window,"touchstart",z,!0),this.titleBar=new Ii({namespace:this.namespace,boxes$:this.boxes$,darkMode$:w,readonly$:c,state$:y,rootRect$:g,onEvent:e=>{switch(e.type){case Bt.Maximize:u.setValue(!u.value);break;case Bt.Minimize:d.setValue(!0);break;case _t.Close:this.removeTopBox(),this.focusTopBox()}}}),this.root.appendChild(this.titleBar.render()),this._sideEffect.addDisposer([y.reaction(((e,t)=>{t||this.events.emit(Mi.State,e)})),u.reaction(((e,t)=>{t||this.events.emit(Mi.Maximized,e)})),d.reaction(((e,t)=>{t||this.events.emit(Mi.Minimized,e)})),w.reaction(((e,t)=>{t||this.events.emit(Mi.DarkMode,e)}))])}get boxes(){return this.boxes$.value}get topBox(){return this.topBox$.value}setState(e,t=!1){switch(e){case zt.Maximized:this.setMinimized(!1,t),this.setMaximized(!0,t);break;case zt.Minimized:this.setMinimized(!0,t),this.setMaximized(!1,t);break;default:this.setMinimized(!1,t),this.setMaximized(!1,t)}return this}create(e={},s=!0){const r=new Ti((n=a(a({zIndex:this.topBox?this.topBox.zIndex+1:100},e),s?this.smartPosition(e):{}),o={namespace:this.namespace,darkMode$:this._darkMode$,maximized$:this._maximized$,minimized$:this._minimized$,fence$:this._fence$,rootRect$:this._rootRect$,managerStageRect$:this._stageRect$,stageRatio$:this._stageRatio$,readonly$:this._readonly$,collectorRect$:this.collector._rect$,managerHighlightStage$:this._highlightStage$},t(n,i(o))));var n,o;return r.mount(this.root),r.focus&&(this.focusBox(r),s&&this.makeBoxTop(r)),this.boxes$.setValue([...this.boxes,r]),this._sideEffect.addDisposer([r._delegateEvents.on(Bt.Maximize,(()=>{this.setMaximized(!this.maximized)})),r._delegateEvents.on(Bt.Minimize,(()=>{this.setMinimized(!0)})),r._delegateEvents.on(Bt.Close,(()=>{this.remove(r),this.focusTopBox()})),r._intrinsicCoord$.reaction(((e,t)=>{t||this.events.emit(Mi.IntrinsicMove,r)})),r._intrinsicSize$.reaction(((e,t)=>{t||this.events.emit(Mi.IntrinsicResize,r)})),r._zIndex$.reaction(((e,t)=>{if(this.boxes.length>0){const e=this.boxes.reduce(((e,t)=>e.zIndex>t.zIndex?e:t));this.topBox$.setValue(e)}t||this.events.emit(Mi.ZIndex,r)}))]),this.events.emit(Mi.Created,r),r}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.getBoxIndex(e);if(i>=0){const e=this.boxes.slice(),s=e.splice(i,1);return this.boxes$.setValue(e),s.forEach((e=>e.destroy())),t||(this.boxes.length<=0&&(this.setMaximized(!1),this.setMinimized(!1)),this.events.emit(Mi.Removed,s)),s[0]}}removeTopBox(){if(this.topBox)return this.remove(this.topBox)}removeAll(e=!1){const t=this.boxes$.value;return this.boxes$.setValue([]),t.forEach((e=>e.destroy())),e||(this.boxes.length<=0&&(this.setMaximized(!1),this.setMinimized(!1)),this.events.emit(Mi.Removed,t)),t}destroy(e=!1){this.events.clearListeners(),this._sideEffect.flushAll(),this.removeAll(e),this.collector.destroy(),this.titleBar.destroy()}wrapClassName(e){return`${this.namespace}-${e}`}focusBox(e,t=!1){const i=this.getBox(e);i&&(this.boxes.forEach((e=>{if(i===e){let e=!1;i.focus||(e=!0,i._focus$.setValue(!0,t)),e&&!t&&this.events.emit(Mi.Focused,i)}else e.focus&&this.blurBox(e,t)})),this.titleBar.focusBox(i))}focusTopBox(){if(this.topBox&&!this.topBox.focus)return this.focusBox(this.topBox)}blurBox(e,t=!1){const i=this.getBox(e);i&&(i.focus&&(i._focus$.setValue(!1,t),t||this.events.emit(Mi.Blurred,i)),this.titleBar.focusedBox===i&&this.titleBar.focusBox())}blurAll(e=!1){this.boxes.forEach((t=>{t.focus&&(t._focus$.setValue(!1,e),e||this.events.emit(Mi.Blurred,t))})),this.titleBar.focusedBox&&this.titleBar.focusBox()}teleBoxMatcher(e){const t=Object.keys(e);return i=>t.every((t=>e[t]===i[t]))}updateBox(e,t,i=!1){var s,r,n,o,a,h;null==t.x&&null==t.y||e._intrinsicCoord$.setValue({x:null!=(s=t.x)?s:e.intrinsicX,y:null!=(r=t.y)?r:e.intrinsicY},i),null==t.width&&null==t.height||e._intrinsicSize$.setValue({width:null!=(n=t.width)?n:e.intrinsicWidth,height:null!=(o=t.height)?o:e.intrinsicHeight},i),null!=t.title&&e._title$.setValue(t.title),null!=t.visible&&e._visible$.setValue(t.visible,i),null!=t.resizable&&e._resizable$.setValue(t.resizable,i),null!=t.draggable&&e._draggable$.setValue(t.draggable,i),null!=t.ratio&&e._ratio$.setValue(t.ratio,i),null!=t.zIndex&&e._zIndex$.setValue(t.zIndex,i),null!=t.content&&e.mountContent(t.content),null!=t.footer&&e.mountFooter(t.footer),null==t.minHeight&&null==t.minWidth||e._minSize$.setValue({width:null!=(a=t.minWidth)?a:e.minWidth,height:null!=(h=t.minHeight)?h:e.minHeight},i)}smartPosition(e){let{x:t,y:i}=e;const{width:s=.5,height:r=.5}=e,n=this.stageRect,o=this.topBox;if(null==t){let e=n.x+20;if(o){const t=o.pxIntrinsicCoord.x+20;t+s*n.width<=n.x+n.width&&(e=t)}t=(e-n.x)/n.width}if(null==i){let e=n.y+20;if(o){const t=o.pxIntrinsicCoord.y+20;t+r*n.height<=n.y+n.height&&(e=t)}i=(e-n.y)/n.height}return{x:t,y:i,width:s,height:r}}makeBoxTop(e,t=!1){this.topBox&&e!==this.topBox&&e._zIndex$.setValue(this.topBox.zIndex+1,t)}getBoxIndex(e){return"string"==typeof e?this.boxes.findIndex((t=>t.id===e)):this.boxes.findIndex((t=>t===e))}getBox(e){return"string"==typeof e?this.boxes.find((t=>t.id===e)):e}}export{Pt as DefaultTitleBar,$t as TELE_BOX_COLOR_SCHEME,Bt as TELE_BOX_DELEGATE_EVENT,_t as TELE_BOX_EVENT,Mi as TELE_BOX_MANAGER_EVENT,Tt as TELE_BOX_RESIZE_HANDLE,zt as TELE_BOX_STATE,Ti as TeleBox,Ri as TeleBoxCollector,kt as TeleBoxDragHandleType,Oi as TeleBoxManager};
|
|
1
|
+
var e=Object.defineProperty,t=Object.defineProperties,i=Object.getOwnPropertyDescriptors,s=Object.getOwnPropertySymbols,a=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable,o=(t,i,s)=>i in t?e(t,i,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[i]=s,n=(e,t)=>{for(var i in t||(t={}))a.call(t,i)&&o(e,i,t[i]);if(s)for(var i of s(t))r.call(t,i)&&o(e,i,t[i]);return e};import h from"emittery";import l from"stylefire";import d from"shallowequal";import{SideEffectManager as c,genUID as m}from"side-effect-manager";import{Val as u,combine as x,withReadonlyValueEnhancer as g,withValueEnhancer as p}from"value-enhancer";import{ResizeObserver as f}from"@juggle/resize-observer";var $,b,v,w,C,y,E,z,B,_;(b=$||($={})).Light="light",b.Dark="dark",b.Auto="auto",(w=v||(v={})).Normal="normal",w.Minimized="minimized",w.Maximized="maximized",(y=C||(C={})).DarkMode="dark_mode",y.PrefersColorScheme="prefers_color_scheme",y.Close="close",y.Focus="focus",y.Blur="blur",y.IntrinsicMove="intrinsic_move",y.IntrinsicResize="intrinsic_resize",y.ZIndex="z_index",y.State="state",y.Minimized="minimized",y.Maximized="maximized",y.Readonly="readonly",y.Destroyed="destroyed",(z=E||(E={})).Close="close",z.Maximize="maximize",z.Minimize="minimize",(_=B||(B={})).North="n",_.South="s",_.West="w",_.East="e",_.NorthWest="nw",_.NorthEast="ne",_.SouthEast="se",_.SouthWest="sw";const N="dh";function M(e,t,i){return Math.min(Math.max(e,t),i)}function S(e){e.stopPropagation(),e.cancelable&&e.preventDefault()}function I(e){return e.touches?e.touches[0]:e}let k=1;function R(){return"New Box "+k++}function L(e){return Boolean(e)}function D(e){return!e}class T{constructor({readonly$:e,state$:t,title:i="",buttons:s,onEvent:a,onDragStart:r,namespace:o="telebox"}){this.sideEffect=new c,this.lastTitleBarClick={timestamp:0,clientX:-100,clientY:-100},this.handleTitleBarClick=e=>{var t;if(this.readonly$.value)return;if(0!==e.button)return;if(null==(t=e.target.dataset)?void 0:t.teleTitleBarNoDblClick)return;S(e);const i=Date.now();i-this.lastTitleBarClick.timestamp<=500?Math.abs(e.clientX-this.lastTitleBarClick.clientX)<=5&&Math.abs(e.clientY-this.lastTitleBarClick.clientY)<=5&&this.onEvent&&this.onEvent({type:E.Maximize}):this.onDragStart&&this.onDragStart(e),this.lastTitleBarClick.timestamp=i,this.lastTitleBarClick.clientX=e.clientX,this.lastTitleBarClick.clientY=e.clientY},this.lastTitleBarTouch={timestamp:0,clientX:-100,clientY:-100},this.handleTitleBarTouch=e=>{var t;if(this.readonly$.value)return;if(null==(t=e.target.dataset)?void 0:t.teleTitleBarNoDblClick)return;S(e);const i=Date.now(),{clientX:s=this.lastTitleBarTouch.clientX+100,clientY:a=this.lastTitleBarTouch.clientY+100}=e.touches[0]||{};i-this.lastTitleBarTouch.timestamp<=500?Math.abs(s-this.lastTitleBarTouch.clientX)<=10&&Math.abs(a-this.lastTitleBarTouch.clientY)<=10&&this.onEvent&&this.onEvent({type:E.Maximize}):this.onDragStart&&this.onDragStart(e),this.lastTitleBarTouch.timestamp=i,this.lastTitleBarTouch.clientX=s,this.lastTitleBarTouch.clientY=a},this.readonly$=e,this.state$=t,this.title$=new u(i),this.onEvent=a,this.onDragStart=r,this.namespace=o,this.buttons=s||[{type:E.Minimize,iconClassName:this.wrapClassName("titlebar-icon-minimize")},{type:E.Maximize,iconClassName:this.wrapClassName("titlebar-icon-maximize"),isActive:e=>e===v.Maximized},{type:E.Close,iconClassName:this.wrapClassName("titlebar-icon-close")}],this.$dragArea=this.renderDragArea()}get title(){return this.title$.value}setTitle(e){this.title$.setValue(e)}render(){if(!this.$titleBar){this.$titleBar=document.createElement("div"),this.$titleBar.className=this.wrapClassName("titlebar");const e=document.createElement("div");e.className=this.wrapClassName("title-area"),e.dataset.teleBoxHandle="dh";const t=document.createElement("h1");t.className=this.wrapClassName("title"),t.dataset.teleBoxHandle="dh",e.appendChild(t),e.appendChild(this.$dragArea);const i=document.createElement("div");i.className=this.wrapClassName("titlebar-btns"),this.buttons.forEach((({iconClassName:e},t)=>{const s=String(t),a=document.createElement("button");a.className=`${this.wrapClassName("titlebar-btn")} ${e}`,a.dataset.teleTitleBarBtnIndex=s,a.dataset.teleTitleBarNoDblClick="true",i.appendChild(a)})),this.sideEffect.addDisposer(this.title$.subscribe((e=>{t.textContent=e,t.title=e})),"render-title"),this.sideEffect.addDisposer(this.state$.subscribe((e=>{this.buttons.forEach(((t,s)=>{var a;t.isActive&&(null==(a=i.children[s])||a.classList.toggle("is-active",t.isActive(e)))}))})),"render-state-btns"),this.sideEffect.addEventListener(i,"click",(e=>{var t;if(this.readonly$.value)return;const i=e.target,s=Number(null==(t=i.dataset)?void 0:t.teleTitleBarBtnIndex);if(!Number.isNaN(s)&&s<this.buttons.length){S(e);const t=this.buttons[s];this.onEvent&&this.onEvent({type:t.type,value:t.value})}}),{},"render-btns-container-click"),this.$titleBar.appendChild(e),this.$titleBar.appendChild(i)}return this.$titleBar}renderDragArea(){const e=document.createElement("div");return e.className=this.wrapClassName("drag-area"),e.dataset.teleBoxHandle="dh",this.sideEffect.addEventListener(e,"mousedown",this.handleTitleBarClick),this.sideEffect.addEventListener(e,"touchstart",this.handleTitleBarTouch,{passive:!0}),e}dragHandle(){return this.$titleBar}wrapClassName(e){return`${this.namespace}-${e}`}destroy(){this.sideEffect.flushAll(),this.$titleBar&&(this.$titleBar=void 0,this.onDragStart=void 0,this.onEvent=void 0)}}class V{constructor({namespace:e,rootRect$:t,ratio$:i,highlightStage$:s,root$:a}){this._sideEffect=new c,this.namespace=e,this.highlightStage$=s,this.stageRect$=x([t,s,i],(([e,t,i])=>{if(!t)return e;if(i<=0||e.width<=0||e.height<=0)return e;const s=e.width*i;if(s===e.height)return e;if(s<e.height)return{x:0,y:(e.height-s)/2,width:e.width,height:s};const a=e.height/i;return{x:(e.width-a)/2,y:0,width:a,height:e.height}}),{compare:d}),this._sideEffect.addDisposer(x([a,s]).subscribe((([e,t])=>{var i;e&&t?e.appendChild(this.render()):(null==(i=this.$boxStage)?void 0:i.parentNode)&&this.$boxStage.remove()})))}render(){if(this.$boxStage)return this.$boxStage;const e=document.createElement("div");e.className=this.wrapClassName("box-stage-container");const t=document.createElement("div");t.className=this.wrapClassName("box-stage-mask");const i=document.createElement("div");i.className=this.wrapClassName("box-stage-mask");const s=document.createElement("div");s.className=this.wrapClassName("box-stage-frame");const[a,r,o,n]=["M0 8V0h8v2H2v6H0Z","M8 8V0H0v2h6v6h2Z","M0 0v8h8V6H2V0H0Z","M8 0v8H0V6h6V0h2Z"].map(((e,t)=>{const i=document.createElementNS("http://www.w3.org/2000/svg","svg");i.setAttribute("viewBox","0 0 8 8"),i.setAttribute("class",`${this.wrapClassName("box-stage-frame-corner")} is-${t}`);const s=document.createElementNS("http://www.w3.org/2000/svg","path");return s.setAttribute("d",e),s.setAttribute("fill","#3381FF"),i.appendChild(s),i}));return s.appendChild(a),s.appendChild(o),s.appendChild(r),s.appendChild(n),e.appendChild(t),e.appendChild(s),e.appendChild(i),this._sideEffect.addDisposer(this.highlightStage$.subscribe((t=>{e.classList.toggle("is-active",t)}))),this._sideEffect.addDisposer(x([this.highlightStage$,this.stageRect$]).subscribe((([s,a])=>{s&&(a.x>0?(e.style.flexDirection="row",t.style.width=`${a.x}px`,t.style.height="",i.style.width=`${a.x}px`,i.style.height=""):a.y>0&&(e.style.flexDirection="column",t.style.width="",t.style.height=`${a.y}px`,i.style.width="",i.style.height=`${a.y}px`))}))),this.$boxStage=e,e}destroy(){this._sideEffect.flushAll()}wrapClassName(e){return`${this.namespace}-${e}`}}const H=window.ResizeObserver||f;class A{constructor({id:e=m(),title:t=R(),namespace:i="telebox",visible:s=!0,width:a=.5,height:r=.5,minWidth:o=0,minHeight:n=0,x:l=.1,y:f=.1,resizable:$=!0,draggable:b=!0,ratio:w=-1,focus:y=!1,zIndex:E=100,titleBar:z,content:B,footer:_,styles:N,highlightStage:S=null,darkMode$:I,fence$:k,minimized$:L,maximized$:D,readonly$:H,root$:A,rootRect$:W,managerStageRect$:Y,stageRatio$:X,collectorRect$:P,managerHighlightStage$:O}){this.events=new h,this._delegateEvents=new h,this.handleTrackStart=e=>{var t;return null==(t=this._handleTrackStart)?void 0:t.call(this,e)},this._sideEffect=new c,this.id=e,this.namespace=i;const j=new u(t),Z=new u(s),F=new u($),G=new u(b),J=new u(w),q=new u(E),Q=new u(y),K=new u(B),U=new u(_),ee=new u(N),te=x([L,D],(([e,t])=>e?v.Minimized:t?v.Maximized:v.Normal)),ie=new u({width:M(o,0,1),height:M(n,0,1)},{compare:d}),se=x([ie,Y],(([e,t])=>({width:e.width*t.width,height:e.height*t.height})),{compare:d}),ae=new u({width:a,height:r},{compare:d});this._sideEffect.addDisposer(ie.reaction(((e,t)=>{ae.setValue({width:Math.max(a,e.width),height:Math.max(r,e.height)},t)})));const re=new u({x:l,y:f},{compare:d}),oe=x([ae,Y],(([e,t])=>({width:t.width*e.width,height:t.height*e.height})),{compare:d}),ne=x([re,Y],(([e,t])=>({x:e.x*t.width+t.x,y:e.y*t.height+t.y})),{compare:d}),he=new u(S),le=x([D,he,O],(([e,t,i])=>null===t?i&&e:t)),de=new u(null),ce=new u(W.value,{compare:d}),me=new V({namespace:i,root$:de,rootRect$:ce,ratio$:X,highlightStage$:le});this._sideEffect.addDisposer((()=>me.destroy()));const ue={darkMode:I,fence:k,minimized:L,maximized:D,readonly:H,rootRect:W,managerStageRect:Y,collectorRect:P,zIndex:q,focus:Q,$userContent:K,$userFooter:U,$userStyles:ee,state:te,minSize:ie,pxMinSize:se,intrinsicSize:ae,intrinsicCoord:re,pxIntrinsicSize:oe,pxIntrinsicCoord:ne,highlightStage:le,boxHighlightStage:he,contentRect:ce,contentStageRect:me.stageRect$};g(this,ue);p(this,{title:j,visible:Z,resizable:F,draggable:G,ratio:J}),this.titleBar=z||new T({readonly$:H,state$:te,title:j.value,namespace:this.namespace,onDragStart:e=>{var t;return null==(t=this._handleTrackStart)?void 0:t.call(this,e)},onEvent:e=>this._delegateEvents.emit(e.type)}),this._sideEffect.addDisposer(J.subscribe((e=>{e>0&&this.transform(ne.value.x,ne.value.y,oe.value.width,oe.value.height,!0)}))),this._sideEffect.addDisposer(k.subscribe((e=>{e&&this.move(ne.value.x,ne.value.y,!0)}))),this.$box=this.render(),de.setValue(this.$content.parentElement);const xe=(e,t)=>{this._sideEffect.addDisposer(e.reaction(((e,i)=>{i||this.events.emit(t,e)})))};xe(I,C.DarkMode),xe(H,C.Readonly),xe(q,C.ZIndex),xe(L,C.Minimized),xe(D,C.Maximized),xe(te,C.State),xe(ae,C.IntrinsicResize),xe(re,C.IntrinsicMove),this._sideEffect.addDisposer([Z.reaction(((e,t)=>{t||e||this.events.emit(C.Close)})),Q.reaction(((e,t)=>{t||this.events.emit(e?C.Focus:C.Blur)})),A.subscribe((e=>{e?e.appendChild(this.$box):this.$box.parentNode&&this.$box.remove()}))])}get minWidth(){return this._minSize$.value.width}get minHeight(){return this._minSize$.value.height}setMinWidth(e,t=!1){this._minSize$.setValue({width:e,height:this.minHeight},t)}setMinHeight(e,t=!1){this._minSize$.setValue({width:this.minWidth,height:e},t)}resize(e,t,i=!1){this._intrinsicSize$.setValue({width:Math.max(e,this.minWidth),height:Math.max(t,this.minHeight)},i)}get intrinsicX(){return this._intrinsicCoord$.value.x}get intrinsicY(){return this._intrinsicCoord$.value.y}get intrinsicWidth(){return this._intrinsicSize$.value.width}get intrinsicHeight(){return this._intrinsicSize$.value.height}move(e,t,i=!1){let s,a;const r=this.managerStageRect,o=this.pxIntrinsicSize;if(this.fence)s=M(e,r.x,r.x+r.width-o.width),a=M(t,r.y,r.y+r.height-o.height);else{const i=this.rootRect;s=M(e,i.x-o.width+20,i.x+i.width-20),a=M(t,i.y,i.y+i.height-20)}this._intrinsicCoord$.setValue({x:(s-r.x)/r.width,y:(a-r.y)/r.height},i)}transform(e,t,i,s,a=!1){const r=this.managerStageRect,o=this.rootRect;if(i=Math.max(i,this.pxMinSize.width),s=Math.max(s,this.pxMinSize.height),this.ratio>0){const e=this.ratio*i;t!==this.pxIntrinsicCoord.y&&(t-=e-s),s=e}t<o.y&&(t=o.y,s=this.pxIntrinsicSize.height),this.move(e,t,a),this._intrinsicSize$.setValue({width:i/r.width,height:s/r.height},a)}mountContent(e){this._$userContent$.setValue(e)}unmountContent(){this._$userContent$.setValue(void 0)}mountFooter(e){this._$userFooter$.setValue(e)}unmountFooter(){this._$userFooter$.setValue(void 0)}getUserStyles(){return this.$userStyles}mountStyles(e){let t;"string"==typeof e?(t=document.createElement("style"),t.textContent=e):t=e,this._$userStyles$.setValue(t)}unmountStyles(){this._$userStyles$.setValue(void 0)}setHighlightStage(e){this._boxHighlightStage$.setValue(e)}render(){if(this.$box)return this.$box;this.$box=document.createElement("div"),this.$box.classList.add(this.wrapClassName("box"));const e=(e,t,i,s=L)=>this._sideEffect.add((()=>{const a=this.wrapClassName(i);return t.subscribe((t=>{e.classList.toggle(a,s(t))}))}));e(this.$box,this._readonly$,"readonly"),e(this.$box,this._draggable$,"no-drag",D),e(this.$box,this._resizable$,"no-resize",D),e(this.$box,this._focus$,"blur",D),e(this.$box,this._darkMode$,"color-scheme-dark"),e(this.$box,this._darkMode$,"color-scheme-light",D),this._sideEffect.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===v.Minimized),s===v.Maximized?(this._sideEffect.flush(i),this.$box.classList.toggle(t,!0)):this._sideEffect.setTimeout((()=>{this.$box.classList.toggle(t,!1)}),0,i)}))})),this._sideEffect.addDisposer(this._visible$.subscribe((e=>{this.$box.style.display=e?"block":"none"}))),this._sideEffect.addDisposer(this._zIndex$.subscribe((e=>{this.$box.style.zIndex=String(e)}))),this.$box.dataset.teleBoxID=this.id;const t=l(this.$box),i=x([this._maximized$,this._minimized$,this._pxIntrinsicSize$,this._pxIntrinsicCoord$,this._collectorRect$],(([e,t,i,s,a])=>t&&a?{x:a.x+a.width/2,y:a.y+a.height/2,width:i.width+"px",height:i.height+"px",scaleX:a.width/i.width,scaleY:a.height/i.height}:e?{x:0,y:0,width:"100%",height:"100%",scaleX:1,scaleY:1}:{x:s.x,y:s.y,width:i.width+"px",height:i.height+"px",scaleX:1,scaleY:1}),{compare:d}),s=i.value;this.$box.style.width=s.width,this.$box.style.height=s.height,this.$box.style.transform=`translate(${s.x-10}px,${s.y-10}px)`,this._sideEffect.addDisposer(i.subscribe((e=>{t.set(e)})));const a=document.createElement("div");a.className=this.wrapClassName("box-main"),this.$box.appendChild(a);const r=document.createElement("div");r.className=this.wrapClassName("titlebar-wrap"),r.appendChild(this.titleBar.render()),this.$titleBar=r;const o=document.createElement("div");o.className=this.wrapClassName("content-wrap");const n=document.createElement("div");n.className=this.wrapClassName("content")+" tele-fancy-scrollbar",this.$content=n,this._sideEffect.add((()=>{const e=new H((e=>{var t;const i=null==(t=e[0])?void 0:t.contentRect;i&&this._contentRect$.setValue({x:i.x,y:i.y,width:i.width,height:i.height})}));return e.observe(n),()=>e.disconnect()})),this._sideEffect.add((()=>{let e;return this._$userStyles$.subscribe((t=>{e&&e.remove(),e=t,t&&o.appendChild(t)}))})),this._sideEffect.add((()=>{let e;return this._$userContent$.subscribe((t=>{e&&e.remove(),e=t,t&&n.appendChild(t)}))})),o.appendChild(n);const h=document.createElement("div");return h.className=this.wrapClassName("footer-wrap"),this.$footer=h,this._sideEffect.add((()=>{let e;return this._$userFooter$.subscribe((t=>{e&&e.remove(),e=t,t&&h.appendChild(t)}))})),a.appendChild(r),a.appendChild(o),a.appendChild(h),this._renderResizeHandlers(),this.$box}_renderResizeHandlers(){const e=document.createElement("div");e.className=this.wrapClassName("resize-handles"),Object.values(B).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,a,r=0,o=0,n=0,h=0,l=0,d=0;const c=e=>{if(this.state!==v.Normal)return;S(e);let{pageX:t,pageY:i}=I(e);i<this.rootRect.y&&(i=this.rootRect.y);const s=t-l,c=i-d;let{x:m,y:u}=this.pxIntrinsicCoord,{width:x,height:g}=this.pxIntrinsicSize;switch(a){case B.North:u=o+c,g=h-c;break;case B.South:g=h+c;break;case B.West:m=r+s,x=n-s;break;case B.East:x=n+s;break;case B.NorthWest:m=r+s,u=o+c,x=n-s,g=h-c;break;case B.NorthEast:u=o+c,x=n+s,g=h-c;break;case B.SouthEast:x=n+s,g=h+c;break;case B.SouthWest:m=r+s,x=n-s,g=h+c;break;default:return void this.move(r+s,o+c)}this.transform(m,u,x,g)},m=e=>{a=void 0,s&&(S(e),this.$box.classList.toggle(i,!1),this._sideEffect.flush(t),s.remove())},u=e=>{var u;if(this.readonly)return;if(null!=e.button&&0!==e.button)return;if(!this.draggable||a||this.state!==v.Normal)return;const x=e.target;if(null==(u=x.dataset)?void 0:u.teleBoxHandle){S(e),({x:r,y:o}=this.pxIntrinsicCoord),({width:n,height:h}=this.pxIntrinsicSize),({pageX:l,pageY:d}=I(e)),a=x.dataset.teleBoxHandle,s||(s=document.createElement("div"));const u=a?this.wrapClassName(`cursor-${a}`):"";s.className=this.wrapClassName("track-mask"+(u?` ${u}`:"")),this.$box.appendChild(s),this.$box.classList.add(i),this._sideEffect.add((()=>(window.addEventListener("mousemove",c),window.addEventListener("touchmove",c,{passive:!1}),window.addEventListener("mouseup",m),window.addEventListener("touchend",m,{passive:!1}),window.addEventListener("touchcancel",m,{passive:!1}),()=>{window.removeEventListener("mousemove",c),window.removeEventListener("touchmove",c),window.removeEventListener("mouseup",m),window.removeEventListener("touchend",m),window.removeEventListener("touchcancel",m)})),t)}};this._handleTrackStart=u,this._sideEffect.addEventListener(e,"mousedown",u,{},"box-resizeHandles-mousedown"),this._sideEffect.addEventListener(e,"touchstart",u,{passive:!1},"box-resizeHandles-touchstart")}async destroy(){this.$box.remove(),this._sideEffect.flushAll(),this._sideEffect.flushAll(),await this.events.emit(C.Destroyed),this.events.clearListeners(),this._delegateEvents.clearListeners()}wrapClassName(e){return`${this.namespace}-${e}`}}var W,Y;class X{constructor({minimized$:e,readonly$:t,darkMode$:i,rootRect$:s,namespace:a="telebox",styles:r={},root$:o}){this._sideEffect=new c,this.namespace=a;const n=new u(void 0),h=e,l=new u(r),d=new u(document.createElement("button"));p(this,{styles:l,el:d});g(this,{rect:n,visible:h,root:o}),d.value.className=this.wrapClassName("collector"),d.value.style.backgroundImage="url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxNiI+CiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxwYXRoIHN0cm9rZT0iIzdCODhBMCIgc3Ryb2tlLXdpZHRoPSIxLjQiIGQ9Ik0uNyAxLjJoMTYuNnYxMy42SC43eiIgLz4KICAgICAgICA8cGF0aCBmaWxsPSIjN0I4OEEwIiBkPSJNNCA1LjVoNnYxLjRINHpNNCA5LjVoMTB2MS40SDR6IiAvPgogICAgPC9nPgo8L3N2Zz4K')",this._sideEffect.addDisposer(d.subscribe((a=>{this._sideEffect.addEventListener(a,"click",(()=>{t.value||e.setValue(!1)}),{},"telebox-collector-click"),this._sideEffect.addDisposer([h.subscribe((e=>{a.classList.toggle(this.wrapClassName("collector-visible"),e)})),t.subscribe((e=>{a.classList.toggle(this.wrapClassName("collector-readonly"),e)})),i.subscribe((e=>{a.classList.toggle(this.wrapClassName("color-scheme-dark"),e),a.classList.toggle(this.wrapClassName("color-scheme-light"),!e)})),l.subscribe((e=>{Object.keys(e).forEach((t=>{const i=e[t];null!=i&&(a.style[t]=i)}))})),o.subscribe((e=>{e&&e.appendChild(a)})),x([e,s,o]).subscribe((([e,t,i])=>{if(e&&i){const{x:e,y:i,width:s,height:r}=a.getBoundingClientRect();n.setValue({x:e-t.x,y:i-t.y,width:s,height:r})}}))],"telebox-collector-el")})))}destroy(){this._sideEffect.flushAll()}wrapClassName(e){return`${this.namespace}-${e}`}}(Y=W||(W={})).Focused="focused",Y.Blurred="blurred",Y.Created="created",Y.Removed="removed",Y.State="state",Y.Maximized="maximized",Y.Minimized="minimized",Y.IntrinsicMove="intrinsic_move",Y.IntrinsicResize="intrinsic_resize",Y.ZIndex="z_index",Y.PrefersColorScheme="prefers_color_scheme",Y.DarkMode="dark_mode";class P extends T{constructor(e){super(e),this.boxes$=e.boxes$,this.rootRect$=e.rootRect$,this.darkMode$=e.darkMode$,this.sideEffect.addDisposer(e.root$.subscribe((e=>{var t;e?e.appendChild(this.render()):(null==(t=this.$titleBar)?void 0:t.parentNode)&&this.$titleBar.remove()})))}focusBox(e){var t;if(!this.focusedBox||this.focusedBox!==e){if(this.$titles&&this.state$.value===v.Maximized){const{children:i}=this.$titles.firstElementChild;for(let s=i.length-1;s>=0;s-=1){const a=i[s],r=null==(t=a.dataset)?void 0:t.teleBoxID;r&&(e&&r===e.id?a.classList.toggle(this.wrapClassName("titles-tab-focus"),!0):this.focusedBox&&r===this.focusedBox.id&&a.classList.toggle(this.wrapClassName("titles-tab-focus"),!1))}}this.focusedBox=e}}render(){if(this.$titleBar)return this.$titleBar;const e=super.render();e.classList.add(this.wrapClassName("max-titlebar")),this.sideEffect.addDisposer([this.rootRect$.subscribe((t=>{const{x:i,y:s,width:a}=t;e.style.transform=`translate(${i}px, ${s}px)`,e.style.width=a+"px"})),this.state$.subscribe((t=>{e.classList.toggle(this.wrapClassName("max-titlebar-maximized"),t===v.Maximized)})),this.readonly$.subscribe((t=>{e.classList.toggle(this.wrapClassName("readonly"),t)})),this.darkMode$.subscribe((t=>{e.classList.toggle(this.wrapClassName("color-scheme-dark"),t),e.classList.toggle(this.wrapClassName("color-scheme-light"),!t)})),x([this.state$,this.boxes$]).subscribe((([t,i])=>{t===v.Maximized&&(e.classList.toggle(this.wrapClassName("max-titlebar-single-title"),1===i.length),1===i.length?this.setTitle(i[0].title):e.replaceChild(this.renderTitles(),e.firstElementChild))}))],"max-render");const t=document.createElement("div");return t.classList.add(this.wrapClassName("titles-area")),e.insertBefore(t,e.firstElementChild),e}destroy(){super.destroy(),this.$titles=void 0,this.focusedBox=void 0}renderTitles(){this.$titles=document.createElement("div"),this.$titles.className=this.wrapClassName("titles"),this.sideEffect.addEventListener(this.$titles,"wheel",(e=>{e.currentTarget.scrollBy({left:e.deltaY>0?250:-250,behavior:"smooth"})}),{passive:!1},"max-render-wheel-titles");const e=document.createElement("div");e.className=this.wrapClassName("titles-content"),this.$titles.appendChild(e);const t=this.boxes$.value.map((t=>{const i=document.createElement("button");return 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),t._title$.reaction((e=>i.textContent=e))}));return this.sideEffect.addDisposer((()=>t.forEach((e=>e()))),"max-render-tab-titles"),this.$titles}}const O=window.ResizeObserver||f;class j{constructor({root:e=null,prefersColorScheme:t=$.Light,minimized:i=!1,maximized:s=!1,fence:a=!1,collector:r,namespace:o="telebox",readonly:n=!1,stageRatio:l=-1,highlightStage:m=!0}={}){this.events=new h,this._sideEffect=new c,this.namespace=o;const f=new u(e),b=new u(n),w=new u(i),y=new u(s),z=new u(a),B=new u(l),_=new u(m),N=new u({x:0,y:0,width:window.innerWidth,height:window.innerHeight},{compare:d});this._sideEffect.addDisposer(f.subscribe((e=>{this._sideEffect.add((()=>{if(!e)return()=>{};const t=new O((e=>{this._sideEffect.setTimeout((()=>{var t;const i=null==(t=e[0])?void 0:t.contentRect;i&&N.setValue({x:i.x,y:i.y,width:i.width,height:i.height})}),50,"root-resize-observer")}));return t.observe(e),()=>t.disconnect()}),"calc-root-rect")}))),this.boxes$=new u([]),this.topBox$=new u(void 0),this._sideEffect.addDisposer(this.boxes$.subscribe((e=>{if(e.length>0){const t=e.reduce(((e,t)=>e.zIndex>t.zIndex?e:t));this.topBox$.setValue(t)}else this.topBox$.setValue(void 0)})));const M=window.matchMedia("(prefers-color-scheme: dark)"),S=new u(!1);M&&(S.setValue(M.matches),this._sideEffect.add((()=>{const e=e=>{S.setValue(e.matches)};return M.addEventListener("change",e),()=>M.removeEventListener("change",e)})));const I=new u(t);this._sideEffect.addDisposer(I.reaction(((e,t)=>{t||this.events.emit(W.PrefersColorScheme,e)})));const k=x([S,I],(([e,t])=>"auto"===t?e:"dark"===t)),R=x([w,y],(([e,t])=>e?v.Minimized:t?v.Maximized:v.Normal));this.collector=null!=r?r:new X({minimized$:w,readonly$:b,darkMode$:k,namespace:o,root$:f,rootRect$:N});const L=new V({namespace:o,rootRect$:N,ratio$:B,root$:f,highlightStage$:_});this._sideEffect.addDisposer((()=>L.destroy()));const D={darkMode:k,state:R,root:f,rootRect:N,stageRect:L.stageRect$};g(this,D);p(this,{prefersColorScheme:I,readonly:b,fence:z,minimized:w,maximized:y,stageRatio:B,highlightStage:_});const T=this.wrapClassName("titlebar-icon-close"),H=e=>{var t;if(b.value)return;const i=e.target;if(i.tagName)for(let s=i;s;s=s.parentElement){if(s.classList&&s.classList.contains(T))return;const e=null==(t=s.dataset)?void 0:t.teleBoxID;if(e){const t=this.getBox(e);if(t)return this.focusBox(t),void this.makeBoxTop(t)}}};this._sideEffect.addEventListener(window,"mousedown",H,!0),this._sideEffect.addEventListener(window,"touchstart",H,!0),this.titleBar=new P({namespace:this.namespace,boxes$:this.boxes$,darkMode$:k,readonly$:b,state$:R,root$:f,rootRect$:N,onEvent:e=>{switch(e.type){case E.Maximize:y.setValue(!y.value);break;case E.Minimize:w.setValue(!0);break;case C.Close:this.removeTopBox(),this.focusTopBox()}}}),this._sideEffect.addDisposer([R.reaction(((e,t)=>{t||this.events.emit(W.State,e)})),y.reaction(((e,t)=>{t||this.events.emit(W.Maximized,e)})),w.reaction(((e,t)=>{t||this.events.emit(W.Minimized,e)})),k.reaction(((e,t)=>{t||this.events.emit(W.DarkMode,e)}))])}get boxes(){return this.boxes$.value}get topBox(){return this.topBox$.value}setState(e,t=!1){switch(e){case v.Maximized:this.setMinimized(!1,t),this.setMaximized(!0,t);break;case v.Minimized:this.setMinimized(!0,t),this.setMaximized(!1,t);break;default:this.setMinimized(!1,t),this.setMaximized(!1,t)}return this}create(e={},s=!0){const a=new A((r=n(n({zIndex:this.topBox?this.topBox.zIndex+1:100},e),s?this.smartPosition(e):{}),o={namespace:this.namespace,root$:this._root$,darkMode$:this._darkMode$,maximized$:this._maximized$,minimized$:this._minimized$,fence$:this._fence$,rootRect$:this._rootRect$,managerStageRect$:this._stageRect$,stageRatio$:this._stageRatio$,readonly$:this._readonly$,collectorRect$:this.collector._rect$,managerHighlightStage$:this._highlightStage$},t(r,i(o))));var r,o;return a.focus&&(this.focusBox(a),s&&this.makeBoxTop(a)),this.boxes$.setValue([...this.boxes,a]),this._sideEffect.addDisposer([a._delegateEvents.on(E.Maximize,(()=>{this.setMaximized(!this.maximized)})),a._delegateEvents.on(E.Minimize,(()=>{this.setMinimized(!0)})),a._delegateEvents.on(E.Close,(()=>{this.remove(a),this.focusTopBox()})),a._intrinsicCoord$.reaction(((e,t)=>{t||this.events.emit(W.IntrinsicMove,a)})),a._intrinsicSize$.reaction(((e,t)=>{t||this.events.emit(W.IntrinsicResize,a)})),a._zIndex$.reaction(((e,t)=>{if(this.boxes.length>0){const e=this.boxes.reduce(((e,t)=>e.zIndex>t.zIndex?e:t));this.topBox$.setValue(e)}t||this.events.emit(W.ZIndex,a)}))]),this.events.emit(W.Created,a),a}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.getBoxIndex(e);if(i>=0){const e=this.boxes.slice(),s=e.splice(i,1);return this.boxes$.setValue(e),s.forEach((e=>e.destroy())),t||(this.boxes.length<=0&&(this.setMaximized(!1),this.setMinimized(!1)),this.events.emit(W.Removed,s)),s[0]}}removeTopBox(){if(this.topBox)return this.remove(this.topBox)}removeAll(e=!1){const t=this.boxes$.value;return this.boxes$.setValue([]),t.forEach((e=>e.destroy())),e||(this.boxes.length<=0&&(this.setMaximized(!1),this.setMinimized(!1)),this.events.emit(W.Removed,t)),t}mount(e){this._root$.setValue(e)}unmount(){this._root$.setValue(null)}destroy(e=!1){this.events.clearListeners(),this._sideEffect.flushAll(),this.removeAll(e),this.collector.destroy(),this.titleBar.destroy()}wrapClassName(e){return`${this.namespace}-${e}`}focusBox(e,t=!1){const i=this.getBox(e);i&&(this.boxes.forEach((e=>{if(i===e){let e=!1;i.focus||(e=!0,i._focus$.setValue(!0,t)),e&&!t&&this.events.emit(W.Focused,i)}else e.focus&&this.blurBox(e,t)})),this.titleBar.focusBox(i))}focusTopBox(){if(this.topBox&&!this.topBox.focus)return this.focusBox(this.topBox)}blurBox(e,t=!1){const i=this.getBox(e);i&&(i.focus&&(i._focus$.setValue(!1,t),t||this.events.emit(W.Blurred,i)),this.titleBar.focusedBox===i&&this.titleBar.focusBox())}blurAll(e=!1){this.boxes.forEach((t=>{t.focus&&(t._focus$.setValue(!1,e),e||this.events.emit(W.Blurred,t))})),this.titleBar.focusedBox&&this.titleBar.focusBox()}teleBoxMatcher(e){const t=Object.keys(e);return i=>t.every((t=>e[t]===i[t]))}updateBox(e,t,i=!1){var s,a,r,o,n,h;null==t.x&&null==t.y||e._intrinsicCoord$.setValue({x:null!=(s=t.x)?s:e.intrinsicX,y:null!=(a=t.y)?a:e.intrinsicY},i),null==t.width&&null==t.height||e._intrinsicSize$.setValue({width:null!=(r=t.width)?r:e.intrinsicWidth,height:null!=(o=t.height)?o:e.intrinsicHeight},i),null!=t.title&&e._title$.setValue(t.title),null!=t.visible&&e._visible$.setValue(t.visible,i),null!=t.resizable&&e._resizable$.setValue(t.resizable,i),null!=t.draggable&&e._draggable$.setValue(t.draggable,i),null!=t.ratio&&e._ratio$.setValue(t.ratio,i),null!=t.zIndex&&e._zIndex$.setValue(t.zIndex,i),null!=t.content&&e.mountContent(t.content),null!=t.footer&&e.mountFooter(t.footer),null==t.minHeight&&null==t.minWidth||e._minSize$.setValue({width:null!=(n=t.minWidth)?n:e.minWidth,height:null!=(h=t.minHeight)?h:e.minHeight},i)}smartPosition(e){let{x:t,y:i}=e;const{width:s=.5,height:a=.5}=e,r=this.stageRect,o=this.topBox;if(null==t){let e=r.x+20;if(o){const t=o.pxIntrinsicCoord.x+20;t+s*r.width<=r.x+r.width&&(e=t)}t=(e-r.x)/r.width}if(null==i){let e=r.y+20;if(o){const t=o.pxIntrinsicCoord.y+20;t+a*r.height<=r.y+r.height&&(e=t)}i=(e-r.y)/r.height}return{x:t,y:i,width:s,height:a}}makeBoxTop(e,t=!1){this.topBox&&e!==this.topBox&&e._zIndex$.setValue(this.topBox.zIndex+1,t)}getBoxIndex(e){return"string"==typeof e?this.boxes.findIndex((t=>t.id===e)):this.boxes.findIndex((t=>t===e))}getBox(e){return"string"==typeof e?this.boxes.find((t=>t.id===e)):e}}export{T as DefaultTitleBar,$ as TELE_BOX_COLOR_SCHEME,E as TELE_BOX_DELEGATE_EVENT,C as TELE_BOX_EVENT,W as TELE_BOX_MANAGER_EVENT,B as TELE_BOX_RESIZE_HANDLE,v as TELE_BOX_STATE,A as TeleBox,X as TeleBoxCollector,N as TeleBoxDragHandleType,j as TeleBoxManager};
|
|
16
2
|
//# sourceMappingURL=telebox-insider.es.js.map
|