ziko 0.39.0 → 0.40.1

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/ziko.min.js CHANGED
@@ -1,9 +1,9 @@
1
1
  /*
2
2
  Project: ziko.js
3
3
  Author: Zakaria Elalaoui
4
- Date : Mon Aug 18 2025 11:00:54 GMT+0100 (UTC+01:00)
4
+ Date : Tue Aug 19 2025 09:41:09 GMT+0100 (UTC+01:00)
5
5
  Git-Repo : https://github.com/zakarialaoui10/ziko.js
6
6
  Git-Wiki : https://github.com/zakarialaoui10/ziko.js/wiki
7
7
  Released under MIT License
8
8
  */
9
- !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).Ziko={})}(this,(function(t){"use strict";const{PI:e,E:s}=Math,r=Number.EPSILON,{PI:i,cos:n,sin:a,tan:o,acos:h,asin:l,atan:u,cosh:p,sinh:m,tanh:f,acosh:d,asinh:g,atanh:b,log:w}=Math;let y={cos:n,sin:a,tan:o,sinc:t=>a(i*t)/(i*t),sec:t=>1/n(t),csc:t=>1/a(t),cot:t=>1/o(t),acos:h,asin:l,atan:u,acot:t=>i/2-u(t),cosh:p,sinh:m,tanh:f,coth:t=>.5*w((1+t)/(1-t)),acosh:d,asinh:g,atanh:b};y=new Proxy(y,{get(t,e){if(e in t)return s=>+t[e](s).toFixed(15)}});class v{}const x=(t,...e)=>{const s=e.map((e=>{if(null===e)return t(null);if(["number","string","boolean","bigint","undefined"].includes(typeof e))return t(e);if(e instanceof Array)return e.map((e=>x(t,e)));if(ArrayBuffer.isView(e))return e.map((e=>t(e)));if(e instanceof Set)return new Set(x(t,...e));if(e instanceof Map)return new Map([...e].map((e=>[e[0],x(t,e[1])])));if(e instanceof xs)return new xs(e.rows,e.cols,x(e.arr.flat(1)));if(e instanceof Es){const[s,r,i,n]=[e.a,e.b,e.z,e.phi];switch(t){case Math.log:return As(Is(i),n);case Math.exp:return As(Os(s)*Ss(r),Os(s)*js(r));case Math.abs:return i;case Math.sqrt:return As(Ms(i)*Ss(n/2),Ms(i)*js(n/2));case y.cos:return As(Ss(s)*Ps(r),-js(s)*Rs(r));case y.sin:return As(js(s)*Ps(r),Ss(s)*Rs(r));case y.tan:{const t=Ss(2*s)+Ps(2*r);return As(js(2*s)/t,Rs(2*r)/t)}case y.cosh:return As(Ps(s)*Ss(r),Rs(s)*js(r));case y.sinh:return As(Rs(s)*Ss(r),Ps(s)*js(r));case y.tanh:{const t=Ps(2*s)+Ss(2*r);return As(Rs(2*s)/t,js(2*r)/t)}default:return t(e)}}else if(e instanceof Object)return Object.fromEntries(Object.entries(e).map((e=>[e[0],x(t,e[1])])))}));return 1==s.length?s[0]:s},_=(t,e)=>{if("number"==typeof t){if("number"==typeof e)return t+e;if(e instanceof Es)return As(t+e.a,e.b);if(e instanceof xs)return xs.nums(e.rows,e.cols,t).add(e);if(e instanceof Array)return e.map((e=>k(e,t)))}else{if(t instanceof Es||t instanceof xs)return e instanceof Array?e.map((e=>t.clone.add(e))):t.clone.add(e);if(t instanceof Array){if(!(e instanceof Array))return t.map((t=>k(t,e)));if(t.length===e.length)return t.map(((t,s)=>k(t,e[s])))}}},E=(t,e)=>{if("number"==typeof t){if("number"==typeof e)return t-e;if(e instanceof Es)return As(t-e.a,-e.b);if(e instanceof xs)return xs.nums(e.rows,e.cols,t).sub(e);if(e instanceof Array)return e.map((e=>T(e,t)))}else{if(t instanceof Es||t instanceof xs)return e instanceof Array?e.map((e=>t.clone.sub(e))):t.clone.sub(e);if(t instanceof Array){if(!(e instanceof Array))return t.map((t=>T(t,e)));if(e instanceof Array&&t.length===e.length)return t.map(((t,s)=>T(t,e[s])))}}},A=(t,e)=>{if("number"==typeof t){if("number"==typeof e)return t*e;if(e instanceof Es)return As(t*e.a,t*e.b);if(e instanceof xs)return xs.nums(e.rows,e.cols,t).mul(e);if(e instanceof Array)return e.map((e=>O(t,e)))}else{if(t instanceof Es||t instanceof xs)return e instanceof Array?e.map((e=>t.clone.mul(e))):t.clone.mul(e);if(t instanceof Array){if(!(e instanceof Array))return t.map((t=>O(t,e)));if(e instanceof Array&&t.length===e.length)return t.map(((t,s)=>O(t,e[s])))}}},C=(t,e)=>{if("number"==typeof t){if("number"==typeof e)return t/e;if(e instanceof Es)return As(t/e.a,t/e.b);if(e instanceof xs)return xs.nums(e.rows,e.cols,t).div(e);if(e instanceof Array)return e.map((e=>I(t,e)))}else{if(t instanceof Es||t instanceof xs)return e instanceof Array?e.map((e=>t.clone.div(e))):t.clone.div(e);if(t instanceof Array){if(!(e instanceof Array))return t.map((t=>I(t,e)));if(e instanceof Array&&t.length===e.length)return t.map(((t,s)=>I(t,e[s])))}}},M=(t,e)=>{if("number"==typeof t){if("number"==typeof e)return t%e;if(e instanceof Es)return As(t%e.a,t%e.b);if(e instanceof xs)return xs.nums(e.rows,e.cols,t).modulo(e);if(e instanceof Array)return e.map((e=>I(t,e)))}else{if(t instanceof Es||t instanceof xs)return e instanceof Array?e.map((e=>t.clone.div(e))):t.clone.div(e);if(t instanceof Array&&!(e instanceof Array))return t.map((t=>k(t,e)))}},k=(t,...e)=>{var s=t;for(let t=0;t<e.length;t++)s=_(s,e[t]);return s},T=(t,...e)=>{var s=t;for(let t=0;t<e.length;t++)s=E(s,e[t]);return s},O=(t,...e)=>{var s=t;for(let t=0;t<e.length;t++)s=A(s,e[t]);return s},I=(t,...e)=>{var s=t;for(let t=0;t<e.length;t++)s=C(s,e[t]);return s},S=(t,...e)=>{var s=t;for(let t=0;t<e.length;t++)s=M(s,e[t]);return s},j=t=>new Array(t).fill(0),D=t=>new Array(t).fill(1),P=(t,e)=>new Array(e).fill(t),R=(t,e,s)=>{if("number"==typeof t)return e!==s?(t-e)/(s-e):0;if(t instanceof xs)return new xs(t.rows,t.cols,R(t.arr.flat(1),e,s));if(t instanceof Es)return new Es(R(t.a,e,s),R(t.b,e,s));if(t instanceof Array){if(t.every((t=>typeof("number"===t))))return t.map((t=>R(t,e,s)));{let e=new Array(t.length);for(let s=0;s<t.length;s++)e[s]=R(t[s])}}},L=(t,e,s)=>{if("number"==typeof t)return(s-e)*t+e;if(t instanceof xs)return new xs(t.rows,t.cols,L(t.arr.flat(1),e,s));if(t instanceof Es)return new Es(L(t.a,e,s),L(t.b,e,s));if(t instanceof Array){if(t.every((t=>typeof("number"===t))))return t.map((t=>L(t,e,s)));{let e=new Array(t.length);for(let s=0;s<t.length;s++)e[s]=L(t[s])}}},$=(t,e,s,r,i)=>{if("number"==typeof t)return L(R(t,e,s),r,i);if(t instanceof xs)return new xs(t.rows,t.cols,$(t.arr.flat(1),e,s,r,i));if(t instanceof Es)return new Es($(t.a,s,r,i),$(t.b,e,s,r,i));if(t instanceof Array){if(t.every((t=>typeof("number"===t))))return t.map((t=>$(t,e,s,r,i)));{let n=new Array(t.length);for(let a=0;a<t.length;a++)n[a]=$(t[a],e,s,r,i)}}},N=(t,e,s)=>{const[r,i]=[V(e,s),Y(e,s)];if("number"==typeof t)return V(Y(t,r),i);if(t instanceof xs)return new xs(t.rows,t.cols,N(t.arr.flat(1),r,i));if(t instanceof Es)return new Es(N(t.a,r,i),N(t.b,r,i));if(t instanceof Array){if(t.every((t=>typeof("number"===t))))return t.map((t=>N(t,r,i)));{let e=new Array(t.length);for(let s=0;s<t.length;s++)e[s]=N(t[s],r,i)}}},B=(t,e,s,r=!1)=>{let i=[];if(t<e)for(let n=t;r?n<=e:n<e;n+=s)i.push(10*n/10);else for(let n=t;r?n>=e:n>e;n-=s)i.push(10*n/10);return i},U=(t,e,s=Cs(e-t)+1,r=!0)=>{if(Math.floor(s)===s){if([t,e].every((t=>"number"==typeof t))){const[a,o]=[t,e].sort(((t,e)=>e-t));var i=[];let h;h=r?(a-o)/(s-1):(a-o)/s;for(var n=0;n<s;n++)t<e?i.push(o+h*n):i.push(a-h*n);return i}if([t,e].some((t=>t instanceof Es))){const i=As(t),n=As(e);s=s||Math.abs(i.a-n.a)+1;const a=U(i.a,n.a,s,r),o=U(i.b,n.b,s,r);let h=new Array(s).fill(null);return h=h.map(((t,e)=>As(a[e],o[e]))),h}}},Z=(t,e,r=e-t+1,i=s,n=!0)=>U(t,e,r,n).map((t=>ks(i,t))),z=(t,e,s=Cs(e-t)+1,r=!0)=>{if(Math.floor(s)===s){if([t,e].every((t=>"number"==typeof t))){const[i,n]=[t,e].sort(((t,e)=>e-t));let a;a=Ts(i/n,r?s-1:s);const o=[n];for(let t=1;t<s;t++)o.push(o[t-1]*a);return t<e?o:o.reverse()}if([t,e].some((t=>t instanceof Es))){const i=As(t),n=As(e);let a;s=s||Math.abs(i.a-n.a)+1,a=Ts(n.div(i),r?s-1:s);const o=[i];for(let t=1;t<s;t++)o.push(O(o[t-1],a));return o}}},H=(...t)=>mapfun((t=>t*Math.PI/180),...t),F=(...t)=>mapfun((t=>t/Math.PI*180),...t),W=(...t)=>{if(t.every((t=>"number"==typeof t))){let e=t[0];for(let s=1;s<t.length;s++)e+=t[s];return e}const e=[];for(let s=0;s<t.length;s++)t[s]instanceof Array?e.push(W(...t[s])):t[s]instanceof Object&&e.push(W(...Object.values(t[s])));return 1===e.length?e[0]:e},q=(...t)=>{if(t.every((t=>"number"==typeof t))){let e=t[0];for(let s=1;s<t.length;s++)e*=t[s];return e}const e=[];for(let s=0;s<t.length;s++)t[s]instanceof Array?e.push(q(...t[s])):t[s]instanceof Object&&e.push(q(...Object.values(t[s])));return 1===e.length?e[0]:e},V=(...t)=>{if(t.every((t=>"number"==typeof t)))return Math.min(...t);const e=[];for(let s=0;s<t.length;s++)t[s]instanceof Array?e.push(V(...t[s])):t[s]instanceof Object&&e.push(Object.fromEntries([Object.entries(t[s]).sort(((t,e)=>t[1]-e[1]))[0]]));return 1===e.length?e[0]:e},Y=(...t)=>{if(t.every((t=>"number"==typeof t)))return Math.max(...t);const e=[];for(let s=0;s<t.length;s++)t[s]instanceof Array?e.push(V(...t[s])):t[s]instanceof Object&&e.push(Object.fromEntries([Object.entries(t[s]).sort(((t,e)=>e[1]-t[1]))[0]]));return 1===e.length?e[0]:e},X=(...t)=>{if(t.every((t=>"number"==typeof t))){let e=t.reduce(((t,e)=>[...t,t[t.length-1]+e]),[0]);return e.shift(),e}const e=[];for(let s=0;s<t.length;s++)t[s]instanceof Array?e.push(X(...t[s])):t[s]instanceof Object&&e.push(null);return 1===e.length?e[0]:e},G=(t,e,s)=>{const[r,i]=[Math.min(e,s),Math.max(e,s)];return t>=r&&t<=i},K=(t,e,s=1e-4)=>Math.abs(t-e)<=s,Q=(t,e)=>t.reduce(((t,s)=>[...t,...e.map((t=>[s,t]))]),[]),J=(t,e)=>{let s,r=1;if(t==Ls(t)&&e==Ls(e)){for(s=2;s<=t&&s<=e;++s)t%s==0&&e%s==0&&(r=s);return r}console.log("error")},tt=(t,e)=>{let s;if(t==Ls(t)&&e==Ls(e)){for(s=t>e?t:e;s%t!=0||s%e!=0;)++s;return s}console.log("error")},et={add:k,sub:T,mul:O,div:I,modulo:S,zeros:j,ones:D,nums:P,norm:R,lerp:L,map:$,clamp:N,arange:B,linspace:U,logspace:Z,geomspace:z,sum:W,prod:q,accum:X,cartesianProduct:Q,ppcm:tt,pgcd:J,deg2rad:H,rad2deg:F,inRange:G,isApproximatlyEqual:K},st={_mode:Number,_map:function(t,e,s){return e instanceof xs?new xs(e.rows,e.cols,e.arr.flat(1).map((e=>t(e,s)))):e instanceof Es?new Es(t(e.a,s),t(e.b,s)):e instanceof Array?e.map((e=>t(e,s))):void 0},dec2base(t,e){return this._mode=e<=10?Number:String,"number"==typeof t?this._mode((t>>>0).toString(e)):this._map(this.dec2base,t,e)},dec2bin(t){return this.dec2base(t,2)},dec2oct(t){return this.dec2base(t,8)},dec2hex(t){return this.dec2base(t,16)},bin2base(t,e){return this.dec2base(this.bin2dec(t),e)},bin2dec(t){return this._mode("0b"+t)},bin2oct(t){return this.bin2base(t,8)},bin2hex(t){return this.bin2base(t,16)},oct2dec(t){return this._mode("0o"+t)},oct2bin(t){return this.dec2bin(this.oct2dec(t))},oct2hex(t){return this.dec2hex(this.oct2dec(t))},oct2base(t,e){return this.dec2base(this.oct2dec(t),e)},hex2dec(t){return this._mode("0x"+t)},hex2bin(t){return this.dec2bin(this.hex2dec(t))},hex2oct(t){return this.dec2oct(this.hex2dec(t))},hex2base(t,e){return this.dec2base(this.hex2dec(t),e)},IEEE32toDec(t){let e=t.split(" ").join("").padEnd(32,"0"),s=e[0],r=2**(+("0b"+e.slice(1,9))-127);return(-1)**s*(1+e.slice(9,32).split("").map((t=>+t)).map(((t,e)=>t*2**(-e-1))).reduce(((t,e)=>t+e),0))*r},IEEE64toDec(t){let e=t.split(" ").join("").padEnd(64,"0"),s=e[0],r=2**(+("0b"+e.slice(1,12))-1023);return(-1)**s*(1+e.slice(13,64).split("").map((t=>+t)).map(((t,e)=>t*2**(-e-1))).reduce(((t,e)=>t+e),0))*r}},rt={_mode:Number,_map:function(t,e,s){return e instanceof xs?new xs(e.rows,e.cols,e.arr.flat(1).map((e=>t(e,s)))):e instanceof Es?new Es(t(e.a,s),t(e.b,s)):e instanceof Array?e.map((e=>t(e,s))):void 0},not:function(t){return["number","boolean"].includes(typeof t)?rt._mode(!t):this._map(this.not,t)},and:function(t,...e){return["number","boolean"].includes(typeof t)?rt._mode(e.reduce(((t,e)=>t&e),t)):this._map(this.and,t,e)},or:function(t,...e){return["number","boolean"].includes(typeof t)?rt._mode(e.reduce(((t,e)=>t|e),t)):this._map(this.or,t,e)},nand:function(t,...e){return this.not(this.and(t,e))},nor:function(t,...e){return this.not(this.or(t,e))},xor:function(t,...e){let s=[t,...e];return["number","boolean"].includes(typeof t)?this._mode(1===s.reduce(((t,e)=>(1==+e&&(t+=1),t)),0)):this._map(this.xor,t,e)},xnor:function(t,...e){return rt.not(rt.xor(t,e))}};class it{static withDiscount(t,e){if(1===e)return t.map((t=>[t]));const s=[];return t.forEach(((r,i)=>{this.withDiscount(t.slice(i),e-1).forEach((t=>{s.push([r].concat(t))}))})),s}static withoutDiscount(t,e){if(1===e)return t.map((t=>[t]));const s=[];return t.forEach(((r,i)=>{this.withoutDiscount(t.slice(i+1),e-1).forEach((t=>{s.push([r].concat(t))}))})),s}}class nt{static float(t=1,e){return e?Math.random()*(e-t)+t:t*Math.random()}static int(t,e){return Math.floor(this.float(t,e))}static char(t){t=t??this.bool();const e=String.fromCharCode(this.int(97,120));return t?e.toUpperCase():e}static bool(){return[!1,!0][Math.floor(2*Math.random())]}static string(t,e){return t instanceof Array?new Array(this.int(...t)).fill(0).map((()=>this.char(e))).join(""):new Array(t).fill(0).map((()=>this.char(e))).join("")}static bin(){return this.int(2)}static oct(){return this.int(8)}static dec(){return this.int(8)}static hex(){return this.int(16)}static choice(t=[1,2,3],e=new Array(t.length).fill(1/t.length)){let s=new Array(100);e=et.accum(...e).map((t=>100*t)),s.fill(t[0],0,e[0]);for(let r=1;r<t.length;r++)s.fill(t[r],e[r-1],e[r]);return s[this.int(s.length-1)]}static shuffleArr(t){return t.sort((()=>.5-Math.random()))}static shuffleMatrix(t){const{rows:e,cols:s,arr:r}=t;return _s(e,s,r.flat().sort((()=>.5-Math.random())))}static floats(t,e,s){return new Array(t).fill(0).map((()=>this.float(e,s)))}static ints(t,e,s){return new Array(t).fill(0).map((()=>this.int(e,s)))}static bools(t){return new Array(t).fill(0).map((()=>this.bool()))}static bins(t){return new Array(t).fill(0).map((()=>this.int(2)))}static octs(t){return new Array(t).fill(0).map((()=>this.int(8)))}static decs(t){return new Array(t).fill(0).map((()=>this.int(10)))}static hexs(t){return new Array(t).fill(0).map((()=>this.int(16)))}static choices(t,e,s){return new Array(t).fill(0).map((()=>this.choice(e,s)))}static perm(...t){return t.permS[this.int(t.length)]}static color(){return"#"+st.dec2hex(this.float(16777216)).padStart(6,0)}static colors(t){return new Array(t).fill(null).map((()=>this.color()))}static complex(t=[0,1],e=[0,1]){return t instanceof Array?new Es(this.float(t[0],t[1]),this.float(e[0],e[1])):new Es(...this.floats(2,t,e))}static complexInt(t=[0,1],e=[0,1]){return new Es(this.int(t[0],t[1]),this.int(e[0],e[1]))}static complexBin(){return new Es(...this.bins(2))}static complexOct(){return new Es(...this.octs(2))}static complexDec(){return new Es(...this.decs(10))}static complexHex(){return new Es(...this.octs(2))}static complexes(t,e=0,s=1){return new Array(t).fill(0).map((()=>this.complex(e,s)))}static complexesInt(t,e=0,s=1){return new Array(t).fill(0).map((()=>this.complexInt(e,s)))}static complexesBin(t){return new Array(t).fill(0).map((()=>this.complexBin()))}static complexesOct(t){return new Array(t).fill(0).map((()=>this.complexOct()))}static complexesDec(t){return new Array(t).fill(0).map((()=>this.complexDec()))}static complexesHex(t){return new Array(t).fill(0).map((()=>this.complexHex()))}static matrix(t,e,s,r){return _s(t,e,this.floats(t*e,s,r))}static matrixInt(t,e,s,r){return _s(t,e,this.ints(t*e,s,r))}static matrixBin(t,e){return _s(t,e,this.bins(t*e))}static matrixOct(t,e){return _s(t,e,this.octs(t*e))}static matrixDec(t,e){return _s(t,e,this.decs(t*e))}static matrixHex(t,e){return _s(t,e,this.hex(t*e))}static matrixColor(t,e){return _s(t,e,this.colors(t*e))}static matrixComplex(t,e,s,r){return _s(t,e,this.complexes(t*e,s,r))}static matrixComplexInt(t,e,s,r){return _s(t,e,this.complexesInt(t*e,s,r))}static matrixComplexBin(t,e){return _s(t,e,this.complexesBin(t*e))}static matrixComplexOct(t,e){return _s(t,e,this.complexesBin(t*e))}static matrixComplexDec(t,e){return _s(t,e,this.complexesBin(t*e))}static matrixComplexHex(t,e){return _s(t,e,this.complexesBin(t*e))}}const at=(t,e=",")=>t.trim().trimEnd().split("\n").map((t=>t.split(e))),ot=(t,e=",")=>{const[s,...r]=at(t,e);return r.map((t=>{const e={};return s.forEach(((s,r)=>{e[s]=t[r]})),e}))},ht=t=>t instanceof Array?[Object.keys(t[0]),...t.map((t=>Object.values(t)))]:[Object.keys(t)],ct=(t,e)=>ht(t).map((t=>t.join(e))).join("\n"),lt=(t,e=",")=>ct(t instanceof Object?t:JSON.parse(t),e),ut=(t,e)=>{const s=[];if(Array.isArray(t))t.forEach((t=>{if("object"==typeof t&&null!==t){s.push(`${e}-`);const r=ut(t,`${e} `);s.push(...r)}else s.push(`${e}- ${t}`)}));else for(const r in t)if(t.hasOwnProperty(r)){const i=t[r];if("object"==typeof i&&null!==i){s.push(`${e}${r}:`);const t=ut(i,`${e} `);s.push(...t)}else s.push(`${e}${r}: ${i}`)}return s},pt=(t,e="")=>ut(t,e).join("\n"),mt=(t,e)=>pt(t instanceof Object?t:JSON.parse(t),e),ft=(t,e=1)=>{let s="";for(const r in t)if(t.hasOwnProperty(r)){const i=t[r];s+="\n"+" ".repeat(e)+`<${r}>`,s+="object"==typeof i?ft(i,e+2):`${i}`,s+=`</${r}>`}return s.trim()};class dt{constructor(t){this.cache={node:t}}isZikoUINode(){return!0}get node(){return this.cache.node}}function gt(t,...e){e.forEach((e=>function(t,e){const s=Object.getOwnPropertyDescriptors(e);for(const e of Reflect.ownKeys(s)){const r=s[e];"get"in r||"set"in r||"function"!=typeof r.value?Object.defineProperty(Object.getPrototypeOf(t),e,r):"function"==typeof r.value&&(Object.getPrototypeOf(t).hasOwnProperty(e)||Object.defineProperty(Object.getPrototypeOf(t),e,r))}}(t,e)))}function bt(t,...e){e.forEach((e=>function(t,e){const s=Object.getOwnPropertyDescriptors(e);for(const e of Reflect.ownKeys(s)){const r=s[e];"get"in r||"set"in r?Object.defineProperty(t,e,r):"function"==typeof r.value?t[e]=r.value.bind(t):t[e]=r.value}}(t,e)))}globalThis.node=t=>new dt(t);const wt=t=>"function"==typeof t&&t?.()?.isStateGetter?.(),yt={setAttr(t,e){if(t instanceof Object){const[s,r]=[Object.keys(t),Object.values(t)];for(let t=0;t<s.length;t++)r[t]instanceof Array&&(e[t]=r[t].join(" ")),vt.call(this,s[t],r[t])}else e instanceof Array&&(e=e.join(" ")),vt.call(this,t,e);return this},removeAttr(...t){for(let e=0;e<t.length;e++)this.element?.removeAttribute(t[e]);return this},getAttr(t){return t=vs.isCamelCase(t)?vs.camel2hyphencase(t):t,this.element.attributes[t].value},setContentEditable(t=!0){return this.setAttr("contenteditable",t),this}};function vt(t,e){if("svg"!==this.element?.tagName&&(t=vs.isCamelCase(t)?vs.camel2hyphencase(t):t),!this?.attr[t]||this?.attr[t]!==e){if(wt(e)){e()._subscribe((e=>this.element?.setAttribute(t,e)),this)}else this.element?.setAttribute(t,e);Object.assign(this.cache.attributes,{[t]:e})}}class xt extends dt{constructor(...t){super("span","text",!1,...t),this.element=globalThis?.document?.createTextNode(...t)}isText(){return!0}}const _t=(...t)=>new xt(...t),Et={append(...t){return At.call(this,"append","push",...t),this},prepend(...t){return this.__addItem__.call(this,"prepend","unshift",...t),this},insertAt(t,...e){if(t>=this.element.children.length)this.append(...e);else for(let s=0;s<e.length;s++)["number","string"].includes(typeof e[s])&&(e[s]=_t(e[s])),this.element?.insertBefore(e[s].element,this.items[t].element),this.items.splice(t,0,e[s]);return this},remove(...t){const e=t=>{"number"==typeof t&&(t=this.items[t]),t?.isZikoUIElement&&this.element?.removeChild(t.element),this.items=this.items.filter((e=>e!==t))};for(let s=0;s<t.length;s++)e(t[s]);for(let t=0;t<this.items.length;t++)Object.assign(this,{[[t]]:this.items[t]});return this},clear(){return this?.items?.forEach((t=>t.unrender())),this.element.innerHTML="",this},render(t=this.target){if(!this.isBody)return t?.isZikoUIElement&&(t=t.element),this.target=t,this.target?.appendChild(this.element),this},unrender(){return this.cache.parent?this.cache.parent.remove(this):this.target?.children?.length&&[...this.target?.children].includes(this.element)&&this.target.removeChild(this.element),this},renderAfter(t=1){return setTimeout((()=>this.render()),t),this},unrenderAfter(t=1){return setTimeout((()=>this.unrender()),t),this},after(t){return t?.isZikoUIElement&&(t=t.element),this.element?.after(t),this},before(t){return t?.isZikoUIElement&&(t=t.element),this.element?.before(t),this}};function At(t,e,...s){if(this.cache.isFrozzen)return console.warn("You can't append new item to frozzen element"),this;for(let r=0;r<s.length;r++){if(["number","string"].includes(typeof s[r])&&(s[r]=_t(s[r])),s[r]instanceof Function){const t=s[r]();t.isStateGetter&&(s[r]=_t(t.value),t._subscribe((t=>s[r].element.textContent=t),s[r]))}"function"==typeof globalThis?.Node&&s[r]instanceof globalThis?.Node&&(s[r]=new this.constructor(s[r])),s[r]?.isZikoUINode?(s[r].cache.parent=this,this.element?.[t](s[r].element),s[r].target=this.element,this.items[e](s[r])):s[r]instanceof Object&&(s[r]?.style&&this.style(s[r]?.style),s[r]?.attr&&Object.entries(s[r].attr).forEach((t=>this.setAttr(""+t[0],t[1]))))}return this.maintain(),this}const Ct={Click:["Click","DblClick"],Ptr:["PtrMove","PtrDown","PtrUp","PtrLeave","PtrEnter","PtrOut","PtrCancel"],Mouse:["MouseMove","MouseDown","MouseUp","MouseEnter","MouseLeave","MouseOut"],Key:["KeyDown","KeyPress","KeyUp"],Clipboard:["Copy","Cut","Paste"],Focus:["focus","blur"],Drag:["Drag","DragStart","DragEnd","Drop"],Wheel:["Wheel"]},Mt=(t="")=>t.startsWith("Ptr")?`pointer${t.split("Ptr")[1].toLowerCase()}`:t.toLowerCase();function kt(t,e,s,r,i){this.cache.currentEvent=e,this.cache.event=t,s?.call(this),r?.hasOwnProperty("prototype")?r?.call(this):r?.call(null,this),this.cache.preventDefault[e]&&t.preventDefault(),this.cache.stopPropagation[e]&&t.stopPropagation(),this.cache.stopImmediatePropagation[e]&&t.stopImmediatePropagation(),this.cache.stream.enabled[e]&&i&&this.cache.stream.history[e].push(i),this.cache.callbacks[e]?.map((t=>t(this)))}class Tt{constructor(t=null,e=[],s,r){this.target=t,this.cache={currentEvent:null,event:null,options:{},preventDefault:{},stopPropagation:{},stopImmediatePropagation:{},event_flow:{},paused:{},stream:{enabled:{},clear:{},history:{}},callbacks:{},__controllers__:{}},e&&this._register_events(e,s,r)}_register_events(t,e,s,r=!0){const i=t?.map((t=>Mt(t)));return i?.forEach(((i,n)=>{Object.assign(this.cache.preventDefault,{[i]:!1}),Object.assign(this.cache.options,{[i]:{}}),Object.assign(this.cache.paused,{[i]:!1}),Object.assign(this.cache.stream.enabled,{[i]:!1}),Object.assign(this.cache.stream.clear,{[i]:!1}),Object.assign(this.cache.stream.history,{[i]:[]}),Object.assign(this.cache.__controllers__,{[i]:t=>kt.call(this,t,i,e,s)}),r&&Object.assign(this,{[`on${t[n]}`]:(...t)=>this.__onEvent(i,this.cache.options[i],{},...t)})})),this}get targetElement(){return this.target?.element}get isParent(){return this.target?.element===this.event.srcElement}get item(){return this.target.find((t=>t.element==this.event?.srcElement))?.[0]}get currentEvent(){return this.cache.currentEvent}get event(){return this.cache.event}setTarget(t){return this.target=t,this}__handle(t,e,s,r){return this.targetElement?.addEventListener(t,e,s),this}__onEvent(t,e,s,...r){if(0===r.length){if(console.log("00"),!this.cache.callbacks[t])return this;console.log("Call"),this.cache.callbacks[t].map((t=>e=>t.call(this,e)))}else this.cache.callbacks[t]=r.map((t=>e=>t.call(this,e)));return this.__handle(t,this.cache.__controllers__[t],e,s),this}#t(t,e,s){"default"===s&&Object.assign(this.cache[t],{...this.cache[t],...e});const r="default"===s?this.cache[t]:Object.fromEntries(Object.keys(this.cache.preventDefault).map((t=>[t,s])));return Object.assign(this.cache[t],{...r,...e}),this}preventDefault(t={},e="default"){return this.#t("preventDefault",t,e),this}stopPropagation(t={},e="default"){return this.#t("stopPropagation",t,e),this}stopImmediatePropagation(t={},e="default"){return this.#t("stopImmediatePropagation",t,e),this}setEventOptions(t,e){return this.pause({[t]:!0},"default"),Object.assign(this.cache.options[Mt(t)],e),this.resume({[t]:!0},"default"),this}pause(t={},e="default"){t={..."default"===e?this.cache.stream.enabled:Object.entries(Object.keys(this.cache.stream.enabled).map((t=>[t,e]))),...t};for(let e in t)t[e]&&(this.targetElement?.removeEventListener(e,this.cache.__controllers__[e],this.cache.options[e]),this.cache.paused[e]=!0);return this}resume(t={},e="default"){t={..."default"===e?this.cache.stream.enabled:Object.entries(Object.keys(this.cache.stream.enabled).map((t=>[t,e]))),...t};for(let e in t)t[e]&&(this.targetElement?.addEventListener(e,this.cache.__controllers__[e],this.cache.options[e]),this.cache.paused[e]=!1);return this}stream(t={},e="default"){this.cache.stream.t0=Date.now();return t={...Object.fromEntries(Object.keys(this.cache.stream.enabled).map((t=>[t,e]))),...t},Object.assign(this.cache.stream.enabled,t),this}clear(){return this}dispose(t={},e="default"){return this.pause(t,e),this}}class Ot extends Tt{constructor(t,e){super(t,Ct.Click,It,e)}}function It(){"click"===this.currentEvent?this.dx=0:this.dx=1}const St=(t,e)=>new Ot(t,e);class jt extends Tt{constructor(t,e){super(t,Ct.Clipboard,Dt,e)}}function Dt(){}const Pt=(t,e)=>new jt(t,e);class Rt extends Tt{constructor(t,e,s){super(t,e,Lt,s)}_register_events(t){return super._register_events(t,null,null,!1),this}emit(t,e={}){const s=new Event(t);return this.targetElement.dispatchEvent(s),this}on(t,...e){return this.cache.options.hasOwnProperty(t)||this._register_events([t]),this.__onEvent(t,this.cache.options[t],{},...e),this}}function Lt(){}class $t extends Tt{constructor(t,e){super(t,Ct.Drag,Nt,e)}}function Nt(){}const Bt=(t,e)=>new $t(t,e);class Ut extends Tt{constructor(t,e){super(t,Ct.Focus,Zt,e)}}function Zt(){}const zt=(t,e)=>new Ut(t,e);let Ht=class extends Tt{constructor(t,e){super(t,Ct.Hash,Ft,e)}};function Ft(){}class Wt extends Tt{constructor(t,e){super(t,Ct.Key,qt,e)}}function qt(){switch(this.currentEvent){case"keydown":this.kd=this.event.key;break;case"keypress":this.kp=this.event.key;break;case"keyup":this.ku=this.event.key}}const Vt=(t,e)=>new Wt(t,e);class Yt extends Tt{constructor(t,e){super(t,Ct.Mouse,Xt,e)}}function Xt(){}const Gt=(t,e)=>new Yt(t,e);class Kt extends Tt{constructor(t,e){super(t,Ct.Ptr,Qt,e),this.isDown=!1}}function Qt(){switch(this.currentEvent){case"pointerdown":this.dx=parseInt(this.event.offsetX),this.dy=parseInt(this.event.offsetY),this.isDown=!0;break;case"pointermove":this.mx=parseInt(this.event.offsetX),this.my=parseInt(this.event.offsetY),this.isMoving=!0;break;case"pointerup":{this.ux=parseInt(this.event.offsetX),this.uy=parseInt(this.event.offsetY),this.isDown=!1,console.log(this.target.width);const t=(this.ux-this.dx)/this.target.width,e=(this.dy-this.uy)/this.target.height,s=t<0?"left":t>0?"right":"none",r=e<0?"bottom":e>0?"top":"none";this.swippe={h:s,v:r,delta_x:t,delta_y:e}}}}const Jt=(t,e)=>new Kt(t,e);class te extends Tt{constructor(t,e){super(t,Ct.Touch,ee,e)}}function ee(){}class se extends Tt{constructor(t,e){super(t,Ct.Wheel,re,e)}}function re(){}const ie=(t,e)=>new se(t,e),ne={ptr:Jt,mouse:Gt,key:Vt,click:St,drag:Bt,clipboard:Pt,focus:zt,wheel:ie},ae={};Object.entries(Ct).forEach((([t,e])=>{e.forEach((e=>{const s=`on${e}`;ae[s]=function(...e){return this.events[t]||(this.events[t]=ne[t.toLowerCase()](this)),this.events[t][s](...e),this}}))}));const oe={at(t){return this.items.at(t)},forEach(t){return this.items.forEach(t),this},map(t){return this.items.map(t)},find(t){return this.items.filter(t)}},he={style(t){return Object.assign(this.element.style,t),this},size(t,e){return this.style({width:t,height:e})},animate(t,{duration:e=1e3,iterations:s=1,easing:r="ease"}={}){return this.element?.animate(t,{duration:e,iterations:s,easing:r}),this}};function ce(t,e,s,r){return this.event=t,this.cache.preventDefault[e]&&t.preventDefault(),console.log({setter:s}),s&&s(),this.cache.stream.enabled[e]&&r&&this.cache.stream.history[e].push(r),this.cache.callbacks[e].map((t=>t(this))),this}class le{constructor(t){this.target=null,this.setTarget(t),this.__dispose=this.dispose.bind(this)}get targetElement(){return this.target.element}setTarget(t){return this.target=t,this}__handle(t,e,s){const r="drag"===t?t:`${this.cache.prefixe}${t}`;return this.dispose(s),this.targetElement?.addEventListener(r,e),this}__onEvent(t,e,...s){if(0===s.length){if(!(this.cache.callbacks.length>1))return this;this.cache.callbacks.map((t=>e=>t.call(this,e)))}else this.cache.callbacks[t]=s.map((t=>e=>t.call(this,e)));return this.__handle(t,this.__controller[t],e),this}preventDefault(t={}){return Object.assign(this.cache.preventDefault,t),this}pause(t={}){t={...Object.fromEntries(Object.keys(this.cache.stream.enabled).map((t=>[t,!0]))),...t};for(let e in t)t[e]&&(this.targetElement?.removeEventListener(`${this.cache.prefixe}${e}`,this.__controller[`${this.cache.prefixe}${e}`]),this.cache.paused[`${this.cache.prefixe}${e}`]=!0);return this}resume(t={}){t={...Object.fromEntries(Object.keys(this.cache.stream.enabled).map((t=>[t,!0]))),...t};for(let e in t)t[e]&&(this.targetElement?.addEventListener(`${this.cache.prefixe}${e}`,this.__controller[`${this.cache.prefixe}${e}`]),this.cache.paused[`${this.cache.prefixe}${e}`]=!1);return this}dispose(t={}){return this.pause(t),this}stream(t={}){this.cache.stream.t0=Date.now();return t={...Object.fromEntries(Object.keys(this.cache.stream.enabled).map((t=>[t,!0]))),...t},Object.assign(this.cache.stream.enabled,t),this}clear(t={}){t={...Object.fromEntries(Object.keys(this.cache.stream.clear).map((t=>[t,!0]))),...t};for(let e in t)t[e]&&(this.cache.stream.history[e]=[]);return this}}function ue(t){ce.call(this,t,"input",null,null)}function pe(t){ce.call(this,t,"change",null,null)}class me extends le{constructor(t){super(t),this.event=null,this.cache={prefixe:"",preventDefault:{input:!1,change:!1},paused:{input:!1,change:!1},stream:{enabled:{input:!1,change:!1},clear:{input:!1,change:!1},history:{input:[],change:[]}},callbacks:{input:[],change:[]}},this.__controller={input:ue.bind(this),change:pe.bind(this)}}get value(){return this.target.value}onInput(...t){return this.__onEvent("input",{},...t),this}onChange(...t){return this.__onEvent("change",{},...t),this}}function fe(t){ce.call(this,t,"hashchange",null,null)}class de extends le{constructor(t){super(t),this.event=null,this.cache={prefixe:"",preventDefault:{hashchange:!1},paused:{hashchange:!1},stream:{enabled:{hashchange:!1},clear:{hashchange:!1},history:{hashchange:[]}},callbacks:{hashchange:[]}},this.__controller={hashchange:fe.bind(this)}}onChange(...t){return this.__onEvent("hashchange",{},...t),this}}const ge=t=>function(e){ce.call(this,e,t,null,null)};class be extends le{constructor(t){super(t),this.event=null,this.cache={prefixe:"",preventDefault:{},paused:{},stream:{enabled:{},clear:{},history:{}},callbacks:{}},this.__controller={}}#e(t){return this.cache.preventDefault[t]=!1,this.cache.paused[t]=!1,this.cache.stream.enabled=!1,this.cache.stream.clear=!1,this.cache.stream.history=[],this.cache.callbacks[t]=[],this.__controller[t]=ge(t).bind(this),this}on(t,...e){return this.__controller[t]||this.#e(t),this.__onEvent(t,{},...e),this}emit(t,e={}){this.__controller[t]||this.#e(t),this.detail=e;const s=new Event(t);return this.targetElement.dispatchEvent(s),this}}const we=t=>new be(t);class ye extends le{constructor(t,e=.3,s=.3){super(t);const{removeListener:r,setWidthThreshold:i,setHeightThreshold:n}=function(t,e=.5,s=.5,r,i){let n=L(e,0,r),a=L(s,0,i),o=0,h=0,c=0,l=0;const u=t=>{o=t.clientX,h=t.clientY},p=t=>{c=t.clientX,l=t.clientY,m()};function m(){const t=c-o,e=l-h;(Math.abs(t)>n||Math.abs(e)>a)&&f(t,e)}function f(e,s){const o=globalThis?.CustomEvent?new CustomEvent("swipe",{detail:{deltaX:Cs(e)<n?0:Ns(e)*R(Cs(e),0,r),deltaY:Cs(s)<a?0:Ns(s)*R(Cs(s),0,i),direction:{x:Cs(e)<n?"none":e>0?"right":"left",y:Cs(s)<a?"none":s>0?"down":"up"}}}):null;t?.dispatchEvent(o)}function d(t){n=L(t,0,r)}function g(t){a=L(t,0,i)}return t?.addEventListener("pointerdown",u),t?.addEventListener("pointerup",p),{removeListener(){t?.removeEventListener("pointerdown",u),t?.removeEventListener("pointerup",p),console.log("Swipe event listeners removed")},setWidthThreshold:d,setHeightThreshold:g}}(this.target?.element,e,s,this.target.width,this.target.height);this.cache={width_threshold:e,height_threshold:s,removeListener:r,setWidthThreshold:i,setHeightThreshold:n,legacyTouchAction:globalThis?.document?.body?.style?.touchAction,prefixe:"",preventDefault:{swipe:!1},paused:{swipe:!1},stream:{enabled:{swipe:!1},clear:{swipe:!1},history:{swipe:[]}},callbacks:{swipe:[]}},this.__controller={swipe:ve.bind(this)}}onSwipe(...t){return Object.assign(globalThis?.document?.body?.style,{touchAction:"none"}),this.__onEvent("swipe",{},...t),this}updateThresholds(t=this.cache.width_threshold,e=this.cache.height_threshold){return void 0!==t&&this.cache.setWidthThreshold(t),void 0!==e&&this.cache.setHeightThreshold(e),this}destroy(){return this.cache.removeListener(),Object.assign(globalThis?.document?.body?.style,{touchAction:this.cache.legacyTouchAction}),this}}function ve(t){ce.call(this,t,"swipe",null,null)}const xe=(t,e,s)=>new ye(t,e,s);class _e{constructor(t,e){this.target=t,this.observer=null,this.cache={options:e||{attributes:!0,childList:!0,subtree:!0},streamingEnabled:!0,lastMutation:null,mutationHistory:{}},this.observeCallback=(t,e)=>{if(this.cache.streamingEnabled)for(const e of t)switch(e.type){case"attributes":this.cache.mutationHistory.attributes.push(e.target.getAttribute(e.attributeName));break;case"childList":this.cache.mutationHistory.childList.push(e);break;case"subtree":this.cache.mutationHistory.subtree.push(e)}this.callback&&this.callback(t,e)}}observe(t){if(!this.observer){if(!globalThis.MutationObserver)return void console.log("MutationObserver Nor Supported");this.observer=new MutationObserver(this.cache.observeCallback),this.observer.observe(this.target.element,this.cache.options),this.callback=([e])=>t.call(e,this),this.cache.streamingEnabled=!0}}pause(t){this.observer&&(this.observer.disconnect(),t&&this.observer.observe(this.target,t))}reset(t){this.observer&&(this.observer.disconnect(),this.observer.observe(this.target,t||this.cache.options))}clear(){return this.observer&&(this.observer.disconnect(),this.observer=null,this.cache.mutationHistory={attributes:[],childList:[],subtree:[]}),this.cache.streamingEnabled=!1,this}getMutationHistory(){return this.cache.mutationHistory}enableStreaming(){return this.cache.streamingEnabled=!0,this}disableStreaming(){return this.cache.streamingEnabled=!1,this}}class Ee extends _e{constructor(t,e){super(t,{attributes:!0,childList:!1,subtree:!1}),Object.assign(this.cache,{observeCallback:(t,e)=>{for(const e of t)this.cache.lastMutation={name:e.attributeName,value:e.target.getAttribute(e.attributeName)},this.cache.streamingEnabled&&this.cache.mutationHistory.attributes.push(this.cache.lastMutation);this.callback&&this.callback(t,e)}}),this.cache.mutationHistory.attributes=[],e&&this.observe(e)}get history(){return this.cache.mutationHistory.attributes}}const Ae=(t,e)=>new Ee(t,e);class Ce extends _e{constructor(t,e){super(t,{attributes:!1,childList:!0,subtree:!1}),Object.assign(this.cache,{observeCallback:(t,e)=>{for(const e of t)e.addedNodes?this.cache.lastMutation={type:"add",item:this.target.find((t=>t.element===e.addedNodes[0]))[0],previous:this.target.find((t=>t.element===e.previousSibling))[0]}:e.addedNodes&&(this.cache.lastMutation={type:"remove",item:this.target.find((t=>t.element===e.removedNodes[0]))[0],previous:this.target.find((t=>t.element===e.previousSibling))[0]}),this.cache.streamingEnabled&&this.cache.mutationHistory.children.push(this.cache.lastMutation);this.callback&&this.callback(t,e)}}),this.cache.mutationHistory.children=[],e&&this.observe(e)}get item(){return this.cache.lastMutation.item}get history(){return this.cache.mutationHistory.children}}const Me=(t,e)=>new Ce(t,e);class ke{constructor(t,e,{threshold:s=0,margin:r=0}={}){this.target=t,this.config={threshold:s,margin:r},globalThis.IntersectionObserver?this.observer=new IntersectionObserver((t=>{this.entrie=t[0],e(this)}),{threshold:this.threshold}):console.log("IntersectionObserver Not Supported")}get ratio(){return this.entrie.intersectionRatio}get isIntersecting(){return this.entrie.isIntersecting}setThreshould(t){return this.config.threshold=t,this}setMargin(t){return t="number"==typeof t?t+"px":t,this.config.margin=t,this}start(){return this.observer.observe(this.target.element),this}stop(){return this}}const Te=(t,e,s)=>new ke(t,e,s);class Oe{constructor(t,e){this.target=t,this.contentRect=null,this.observer=new ResizeObserver((()=>{e(this)}))}get BoundingRect(){return this.target.element.getBoundingClientRect()}get width(){return this.BoundingRect.width}get height(){return this.BoundingRect.height}get top(){return this.BoundingRect.top}get bottom(){return this.BoundingRect.bottom}get right(){return this.BoundingRect.right}get left(){return this.BoundingRect.left}get x(){return this.BoundingRect.x}get y(){return this.BoundingRect.y}start(){return this.observer.observe(this.target.element),this}stop(){return this.observer.unobserve(this.target.element),this}}const Ie=(t,e)=>new Oe(t,e);class Se{constructor(t=(t=>console.log({x:t.x,y:t.y}))){this.cache={},this.previousX=globalThis?.screenX,this.previousY=globalThis?.screenY}update(){Object.assign(this.cache,{screenXLeft:globalThis?.screenX,screenXRight:globalThis?.screen.availWidth-globalThis?.screenX,screenYTop:globalThis?.screenY,screenYBottom:globalThis?.screen.availHeight-globalThis?.screenY-globalThis?.outerHeight,screenCenterX:globalThis?.screen.availWidth/2,screenCenterY:globalThis?.screen.availHeight/2,windowCenterX:globalThis?.outerWidth/2+globalThis?.screenX,windowCenterY:globalThis?.outerHeight/2+globalThis?.screenY,deltaCenterX:globalThis?.screen.availWidth/2-globalThis?.outerWidth/2+globalThis?.screenX,deltaCenterY:null})}get x0(){return $(globalThis?.screenX,0,globalThis.screen.availWidth,-1,1)}get y0(){return-$(globalThis?.screenY,0,globalThis.screen.availHeight,-1,1)}get x1(){return $(globalThis?.screenX+globalThis?.outerWidth,0,globalThis.screen.availWidth,-1,1)}get y1(){return-$(globalThis?.screenY+globalThis?.outerHeight,0,globalThis.screen.availHeight,-1,1)}get cx(){return $(globalThis?.outerWidth/2+globalThis?.screenX,0,globalThis.screen.availWidth,-1,1)}get cy(){return-$(globalThis?.outerHeight/2+globalThis?.screenY,0,globalThis.screen.availHeight,-1,1)}}class je{constructor(){this.events={},this.maxListeners=10}on(t,e){this.events[t]||(this.events[t]=[]),this.events[t].push(e),this.events[t].length>this.maxListeners&&console.warn(`Warning: Possible memory leak. Event '${t}' has more than ${this.maxListeners} listeners.`)}once(t,e){const s=r=>{this.off(t,s),e(r)};this.on(t,s)}off(t,e){const s=this.events[t];if(s){const t=s.indexOf(e);-1!==t&&s.splice(t,1)}}emit(t,e){const s=this.events[t];s&&s.forEach((t=>{t(e)}))}clear(t){t?delete this.events[t]:this.events={}}setMaxListener(t,e){this.maxListeners=e}removeAllListeners(t){t?this.events[t]=[]:this.events={}}}const De=()=>new je;class Pe{constructor(t,e=!0){this.#e(),this.cache={Emitter:null},e&&this.useEventEmitter(),this.set(t)}#e(){return this.__FavIcon__=document.querySelector("link[rel*='icon']")||document?.createElement("link"),this.__FavIcon__.type="image/x-icon",this.__FavIcon__.rel="shortcut icon",this}set(t){return t!==this.__FavIcon__.href&&(this.__FavIcon__.href=t,this.cache.Emitter&&this.cache.Emitter.emit("ziko:favicon-changed")),this}get current(){return document.__FavIcon__.href}onChange(t){return this.cache.Emitter&&this.cache.Emitter.on("ziko:favicon-changed",t),this}useEventEmitter(){return this.cache.Emitter=De(),this}}const Re=(t,e)=>new Pe(t,e);class Le{constructor({viewport:t,charset:e,description:s,author:r,keywords:i}){this.document=globalThis?.document,this.meta={},this.init({viewport:t,charset:e,description:s,author:r,keywords:i})}init({viewport:t,charset:e,description:s,author:r,keywords:i}){t&&this.setViewport(t),e&&this.setCharset(e),s&&this.describe(s),r&&this.setAuthor(r),i&&this.setKeywords(i)}set(t,e){const s="charset"===(t=t.toLowerCase()),r=s?document.querySelector("meta[charset]"):document.querySelector(`meta[name=${t}]`);return this.meta=r??document?.createElement("meta"),s?this.meta.setAttribute("charset",e):(this.meta.setAttribute("name",t),this.meta.setAttribute("content",e)),r||this.document.head.append(this.meta),this}setCharset(t="utf-8"){return this.set("charset",t),this}describe(t){return this.set("description",t),this}setViewport(t="width=device-width, initial-scale=1.0"){return this.set("viewport",t),this}setKeywords(...t){return t=[...new Set(t)].join(", "),this.set("keywords",t),this}setAuthor(t){return this.set("author",t),this}}const $e=({viewport:t,charset:e,description:s,author:r,keywords:i})=>new Le({viewport:t,charset:e,description:s,author:r,keywords:i});class Ne{constructor(t=document.title,e=!0){this.cache={Emitter:null},e&&this.useEventEmitter(),this.set(t)}useEventEmitter(){return this.cache.Emitter=De(),this}set(t){return t!==document.title&&(document.title=t,this.cache.Emitter&&this.cache.Emitter.emit("ziko:title-changed")),this}get current(){return document.title}onChange(t){return this.cache.Emitter&&this.cache.Emitter.on("ziko:title-changed",t),this}}const Be=(t,e)=>new Ne(t,e);class Ue{constructor({title:t,lang:e,icon:s,meta:r,noscript:i}){this.html=globalThis?.document?.documentElement,this.head=globalThis?.document?.head,t&&Be(t),e&&this.setLang(e),s&&Re(s),r&&$e(r),i&&this.setNoScript()}setLang(t){this.html.setAttribute("lang",t)}setNoScript(t){}}const Ze=({title:t,lang:e,icon:s,meta:r,noscript:i})=>new Ue({title:t,lang:e,icon:s,meta:r,noscript:i});class ze{constructor(t=[],e=(()=>{})){this.mediaQueryRules=t,this.fallback=e,this.lastCalledCallback=null,this.init()}init(){this.mediaQueryRules.forEach((({query:t,callback:e})=>{const s=globalThis.matchMedia(t),r=()=>{const t=this.mediaQueryRules.some((({query:t})=>globalThis.matchMedia(t).matches));s.matches?(e(),this.lastCalledCallback=e):t||this.lastCalledCallback===this.fallback||(this.fallback(),this.lastCalledCallback=this.fallback)};r(),s.addListener(r)}))}}const He={__all__(){return Object.values(this).filter(Array.isArray).flat()},querySelectorAll(){return this.__all__().filter((t=>t))},getElementByIndex(t){return this.__all__().find((e=>e.ui_index===t))},getElementById:t=>null,getElementsByClass(){},getElementsByTagName(){}},Fe={default:{target:null,render:!0,math:{mode:"deg"}},setDefault:function(t){const e=Object.keys(t),s=Object.values(t);for(let t=0;t<e.length;t++)this.default[e[t]]=s[t]},init:()=>{},renderingMode:"spa",isSSC:!1},We={map:new Map,index:0,increment:function(){return this.index++}},qe=new Map,Ve={ui_index:0,get_ui_index:function(){return this.ui_index++}};var Ye;globalThis?.__Ziko__||(globalThis.__Ziko__={__UI__:He,__HYDRATION__:We,__HYDRATION_MAP__:qe,__Config__:Fe,__CACHE__:Ve},Ye=__Ziko__,Object.defineProperties(Ye,{QueryParams:{get:function(){return function(t){const e={};return t.replace(/[A-Z0-9]+?=([\w|:|\/\.]*)/gi,(t=>{const[s,r]=t.split("=");e[s]=r})),e}(globalThis.location.search.substring(1))},configurable:!1,enumerable:!0},HashParams:{get:function(){return globalThis.location.hash.substring(1).split("#")},configurable:!1,enumerable:!0}}));class Xe extends dt{constructor({element:t,name:e="",type:s="html",useDefaultStyle:r=!1}={}){if(super(),this.target=globalThis.__Ziko__.__Config__.default.target||globalThis?.document?.body,"string"==typeof t)switch(s){case"html":t=globalThis?.document?.createElement(t);break;case"svg":t=globalThis?.document?.createElementNS("http://www.w3.org/2000/svg",t);default:throw Error("Not supported")}else this.target=t?.parentElement;((t,...e)=>{"function"==typeof t?gt(t,...e):bt(t,...e)})(this,yt,Et,he,oe,ae),Object.assign(this.cache,{name:e,isInteractive:[!0,!1][Math.floor(2*Math.random())],parent:null,isBody:!1,isRoot:!1,isHidden:!1,isFrozzen:!1,legacyParent:null,attributes:{},filters:{},temp:{}}),this.events={ptr:null,mouse:null,wheel:null,key:null,drag:null,drop:null,click:null,clipboard:null,focus:null,swipe:null,custom:null},this.observer={resize:null,intersection:null},t&&Object.assign(this.cache,{element:t}),this.uuid=`${this.cache.name}-${nt.string(16)}`,this.ui_index=globalThis.__Ziko__.__CACHE__.get_ui_index(),r&&this.style({position:"relative",boxSizing:"border-box",margin:0,padding:0,width:"auto",height:"auto"}),this.items=[],globalThis.__Ziko__.__UI__[this.cache.name]?globalThis.__Ziko__.__UI__[this.cache.name]?.push(this):globalThis.__Ziko__.__UI__[this.cache.name]=[this],t&&globalThis.__Ziko__.__Config__.default.render&&this?.render?.(),this.isInteractive()&&(this.setAttr("ziko-hydration-index",globalThis.__Ziko__.__HYDRATION__.index),globalThis.__Ziko__.__HYDRATION__.map.set(globalThis.__Ziko__.__HYDRATION__.index,(()=>this)),globalThis.__Ziko__.__HYDRATION__.increment())}get element(){return this.cache.element}isInteractive(){return this.cache.isInteractive}isZikoUIElement(){return!0}get st(){return this.cache.style}get attr(){return this.cache.attributes}get evt(){return this.events}get html(){return this.element.innerHTML}get text(){return this.element.textContent}get isBody(){return this.element===globalThis?.document.body}get parent(){return this.cache.parent}get width(){return this.element.getBoundingClientRect().width}get height(){return this.element.getBoundingClientRect().height}get top(){return this.element.getBoundingClientRect().top}get right(){return this.element.getBoundingClientRect().right}get bottom(){return this.element.getBoundingClientRect().bottom}get left(){return this.element.getBoundingClientRect().left}clone(t=!1){const e=new this.constructor;if(e.__proto__=this.__proto__,this.items.length){const t=[...this.items].map((t=>t.clone()));e.append(...t)}else e.element=this.element.cloneNode(!0);return e.render(t)}[Symbol.iterator](){return this.items[Symbol.iterator]()}maintain(){for(let t=0;t<this.items.length;t++)Object.defineProperty(this,t,{value:this.items[t],writable:!0,configurable:!0,enumerable:!1})}freeze(t){return this.cache.isFrozzen=t,this}setTarget(t){if(!this.isBody)return t?.isZikoUIElement&&(t=t.element),this.unrender(),this.target=t,this.render(),this}describe(t){t&&this.setAttr("aria-label",t)}get children(){return[...this.element.children]}get cloneElement(){return this.element.cloneNode(!0)}setClasses(...t){return this.setAttr("class",t.join(" ")),this}get classes(){const t=this.element.getAttribute("class");return null===t?[]:t.split(" ")}addClass(){}setId(t){return this.setAttr("id",t),this}get id(){return this.element.getAttribute("id")}onSwipe(t,e,...s){return this.events.swipe||(this.events.swipe=xe(this,t,e)),this.events.swipe.onSwipe(...s),this}on(t,...e){return this.events.custom||(this.events.custom=we(this)),this.events.custom.on(t,...e),this}emit(t,e={}){return this.events.custom||(this.events.custom=we(this)),this.events.custom.emit(t,e),this}watchAttr(t){return this.observer.attr||(this.observer.attr=Ae(this,t)),this}watchChildren(t){return this.observer.children||(this.observer.children=Me(this,t)),this}watchSize(t){return this.observer.resize||(this.observer.resize=Ie(this,t)),this.observer.resize.start(),this}watchIntersection(t,e){return this.observer.intersection||(this.observer.intersection=Te(this,t,e)),this.observer.intersection.start(),this}}const Ge=["a","abb","address","area","article","aside","audio","b","base","bdi","bdo","blockquote","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","i","iframe","img","ipnut","ins","kbd","label","legend","li","main","map","mark","menu","meter","nav","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","small","source","span","strong","sub","summary","sup","svg","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr"],Ke=["svg","g","defs","symbol","use","image","switch","rect","circle","ellipse","line","polyline","polygon","path","text","tspan","textPath","altGlyph","altGlyphDef","altGlyphItem","glyph","glyphRef","linearGradient","radialGradient","pattern","solidColor","filter","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDropShadow","feFlood","feFuncA","feFuncR","feFuncG","feFuncB","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","animate","animateMotion","animateTransform","set","script","desc","title","metadata","foreignObject"],Qe=new Proxy({},{get(t,e){if("string"!=typeof e)return;let s,r=e.replaceAll("_","-").toLowerCase();return Ge.includes(r)&&(s="html"),Ke.includes(r)&&(s="svg"),Ge.includes(r)?(...t)=>(console.log(wt(t[0])),["string","number"].includes(typeof t[0])||t[0]instanceof Xe||"function"==typeof t[0]&&t[0]().isStateGetter()?new Xe({element:r,name:r,type:s}).append(...t):new Xe({element:r}).setAttr(t.shift()).append(...t)):void 0}});class Je extends Xe{constructor(t="div",e="100%",s="100%"){super({element:t,name:"Flex"}),this.direction="cols","number"==typeof e&&(e+="%"),"number"==typeof s&&(s+="%"),this.style({width:e,height:s}),this.style({display:"flex"})}get isFlex(){return!0}resp(t,e=!0){return this.wrap(e),this.element.clientWidth<t?this.vertical():this.horizontal(),this}setSpaceAround(){return this.style({justifyContent:"space-around"}),this}setSpaceBetween(){return this.style({justifyContent:"space-between"}),this}setBaseline(){return this.style({alignItems:"baseline"}),this}gap(t){return"row"===this.direction?this.style({columnGap:t}):"column"===this.direction&&this.style({rowGap:t}),this}wrap(t="wrap"){return this.style({flexWrap:"string"==typeof t?t:["no-wrap","wrap","wrap-reverse"][+t]}),this}_justifyContent(t="center"){return this.style({justifyContent:t}),this}vertical(t,e,s=1){return ts.call(this,s),this.style({alignItems:"number"==typeof t?ss.call(this,t):t,justifyContent:"number"==typeof e?rs.call(this,e):e}),this}horizontal(t,e,s=1){return es.call(this,s),this.style({alignItems:"number"==typeof e?rs.call(this,e):e,justifyContent:"number"==typeof t?ss.call(this,t):t}),this}show(){return this.isHidden=!1,this.style({display:"flex"}),this}}function ts(t){return 1==t?this.style({flexDirection:"column"}):-1==t&&this.style({flexDirection:"column-reverse"}),this}function es(t){return 1==t?this.style({flexDirection:"row"}):-1==t&&this.style({flexDirection:"row-reverse"}),this}function ss(t){return"number"==typeof t&&(t=["flex-start","center","flex-end"][t+1]),t}function rs(t){return ss(-t)}class is extends Xe{constructor(t="div",e="50vw",s="50vh"){super({element:t,name:"Grid"}),this.direction="cols","number"==typeof e&&(e+="%"),"number"==typeof s&&(s+="%"),this.style({border:"1px solid black",width:e,height:s}),this.style({display:"grid"})}get isGird(){return!0}columns(t){let e="";for(let s=0;s<t;s++)e=e.concat(" auto");return this.#s(e),this}#s(t="auto auto"){return this.style({gridTemplateColumns:t}),this}gap(t=10,e=t){return"number"==typeof t&&(t+="px"),"number"==typeof e&&(e+="px"),this.style({gridColumnGap:t,gridRowGap:e}),this}}class ns extends Xe{constructor(t,e){super({element:"div",name:"suspense"}),this.setAttr({dataTemp:"suspense"}),this.fallback_ui=t,this.append(t),(async()=>{try{const s=await e();t.unrender(),this.append(s)}catch(t){console.log({error:t})}})()}}class as extends Xe{constructor(t,e){super({element:"div",name:""}),this.element.append("svg"===e?function(t){if(globalThis?.DOMParser){return(new DOMParser).parseFromString(t.replace(/\s+/g," ").trim(),"image/svg+xml").documentElement}}(t):function(t){if(globalThis?.DOMParser){const e=(new DOMParser).parseFromString(`<div>${t}</div>`,"text/html");return e.body.firstChild.style.display="contents",e.body.firstChild}}(t))}}class os extends as{constructor(t){super(t,"html")}}class hs extends as{constructor(t){super(t,"svg")}}class cs extends Xe{constructor(t,e){super("canvas","canvas"),this.ctx=this.element?.getContext("2d"),this.style({border:"1px red solid"}),this.transformMatrix=new xs([[1,0,0],[0,1,0],[0,0,1]]),this.axisMatrix=new xs([[-10,-10],[10,10]]),requestAnimationFrame((()=>this.resize(t,e)),0),this.on("sizeupdated",(()=>this.adjust()))}get Xmin(){return this.axisMatrix[0][0]}get Ymin(){return this.axisMatrix[0][1]}get Xmax(){return this.axisMatrix[1][0]}get Ymax(){return this.axisMatrix[1][1]}get ImageData(){return this.ctx.getImageData(0,0,c.Width,c.Height)}draw(t=!0){return t?(this.clear(),this.items.forEach((t=>{t.parent=this,t.draw(this.ctx)}))):(this.items.at(-1).parent=this,this.items.at(-1).draw(this.ctx)),this.maintain(),this}applyTransformMatrix(){return this.ctx.setTransform(this.transformMatrix[0][0],this.transformMatrix[1][0],this.transformMatrix[0][1],this.transformMatrix[1][1],this.transformMatrix[0][2],this.transformMatrix[1][2]),this}resize(t,e){return this.size(t,e),this.lineWidth(),this.view(this.axisMatrix[0][0],this.axisMatrix[0][1],this.axisMatrix[1][0],this.axisMatrix[1][1]),this.emit("sizeupdated"),this}adjust(){return this.element.width=this.element?.getBoundingClientRect().width,this.element.height=this.element?.getBoundingClientRect().height,this.view(this.axisMatrix[0][0],this.axisMatrix[0][1],this.axisMatrix[1][0],this.axisMatrix[1][1]),this}view(t,e,s,r){return this.transformMatrix[0][0]=this.width/(s-t),this.transformMatrix[1][1]=-this.height/(r-e),this.transformMatrix[0][2]=this.width/2,this.transformMatrix[1][2]=this.height/2,this.axisMatrix=new xs([[t,e],[s,r]]),this.applyTransformMatrix(),this.clear(),this.lineWidth(1),this.draw(),this}reset(){return this.ctx.setTransform(1,0,0,0,0,0),this}append(t){return this.items.push(t),this.draw(!1),this}background(t){this.ctx.fillStyle=t,this.ctx.setTransform(1,0,0,1,0,0),this.ctx.fillRect(0,0,this.width,this.height),this.applyTransformMatrix(),this.draw()}lineWidth(t){return this.ctx.lineWidth=t/this.transformMatrix[0][0],this}getImageData(t=0,e=0,s=this.width,r=this.height){return this.ctx.getImageData(t,e,s,r)}clear(){return this.ctx.setTransform(1,0,0,1,0,0),this.ctx.clearRect(0,0,this.width,this.height),this.applyTransformMatrix(),this}clone(){console.log(this.width);const t=new cs;return t.items=this.items,t.transformMatrix=this.transformMatrix,t.axisMatrix=this.axisMatrix,Object.assign(t.cache,{...this.cache}),this.size(this.element.style.width,this.element.style.width),this.applyTransformMatrix(),this.draw(),this.adjust(),t}toImage(){return this.img=document?.createElement("img"),this.img.src=this.element?.toDataURL("image/png"),this}toBlob(){this.element.toBlob((function(t){var e=document?.createElement("img"),s=URL.createObjectURL(t);e.onload=function(){URL.revokeObjectURL(s)},e.src=s,console.log(e)}))}zoomIn(){}zoomOut(){}undo(t){}redo(t){}stream(){}}class ls extends Xe{constructor(t=360,e=300){super("svg","svg"),this.style({border:"1px black solid"}),this.size(t,e),this.view(-10,-10,10,10)}size(t,e){return this.setAttr({width:t,height:e}),this}view(t,e,s,r){let i=Math.abs(s-t),n=Math.abs(r-e);return this.setAttr("viewBox",[t,e,i,n].join(" ")),this.st.scaleY(-1),this}add(...t){for(let e=0;e<t.length;e++)this.element.append(t[e].element),this.items.push(t[e]);return this.maintain(),this}remove(...t){for(let e=0;e<t.length;e++)this.element?.removeChild(t[e].element),this.items=this.items.filter((e=>!t));return this.maintain(),this}mask(){}toString(){return(new XMLSerializer).serializeToString(this.element)}btoa(){return btoa(this.toString())}toImg(){return"data:image/svg+xml;base64,"+this.btoa()}toImg2(){return"data:image/svg+xml;charset=utf8,"+this.toString().replaceAll("<","%3C").replaceAll(">","%3E").replaceAll("#","%23").replaceAll('"',"'")}}const us=t=>(new XMLSerializer).serializeToString(t),ps=t=>btoa(us(t)),ms=t=>"data:image/svg+xml;base64,"+ps(t),fs=t=>JSON.stringify(x((t=>["number","string","boolean","bigint"].includes(typeof t)?String(t):t instanceof Es||t instanceof xs?t.toString():t instanceof Array?gs(t):void 0),t),null," ").replace(/"([^"]+)":/g,"$1:").replace(/: "([^"]+)"/g,": $1"),ds=t=>{if(!Array.isArray(t))return 0;let e=1;for(const s of t)if(Array.isArray(s)){const t=ds(s);t+1>e&&(e=t+1)}return e},gs=t=>{let e=0;return function t(s){let r=ds(s),i=0;return s.some((t=>Array.isArray(t)))&&(e++,i=1),"["+s.map(((r,i)=>["number","string","boolean","bigint"].includes(typeof r)?String(r):r instanceof Es?r.toString():r instanceof Array?`\n${" ".repeat(e)}${t(r)}${i===s.length-1?"\n":""}`:r instanceof Object?fs(r):void 0))+`${" ".repeat((r+e+1)*i)}]`}(t)},bs=(t,e=0)=>{t=ws(t);let s="";const r=" ".repeat(e);for(let i in t)if("object"==typeof t[i]){s+=`${r}${i} {\n`;const n=t[i];for(let t in n)"object"==typeof n[t]?s+=bs({[t]:n[t]},e+1):s+=`${r} ${t.replace(/[A-Z]/g,(t=>"-"+t.toLowerCase()))}: ${n[t]};\n`;s+=`${r}}\n`}return s};function ws(t){return"object"!=typeof t||null===t?t:Object.keys(t).reduce(((e,s)=>(e[s.trim()]=ws(t[s]),e)),Array.isArray(t)?[]:{})}const ys={isDigit:/^\d+$/,isURL:/^(https?:\/\/)?([\w\-]+\.)+[\w\-]+(\/[\w\-./?%&=]*)?$/,isHexColor:/^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/,isIPv4:/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/,isMACAddress:/^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$/,isDate:/^\d{4}-\d{2}-\d{2}$/};class vs{constructor(t){this.string=t}isDigit(){return ys.isDigit.test(this.string)}static isDigit(t){return new vs(t).isDigit()}isNumber(){return!isNaN(this.string)}static isNumber(t){return new vs(t).isNumber()}isUrl(){return ys.isURL.test(this.string)}static isUrl(t){return new vs(t).isUrl()}isHexColor(){return ys.isHexColor.test(this.string)}static isHexColor(t){return new vs(t).isHexColor()}isIPv4(){return ys.isIPv4.test(this.string)}static isIPv4(t){return new vs(t).isIPv4()}isDate(){return ys.isDate.test(this.string)}static isDate(t){return new vs(t).isDate()}isMACAddress(){return ys.isMACAddress.test(this.string)}static isMACAddress(t){return new vs(t).isMACAddress()}isPascalCase(){if(0===this.string.length)return!1;return/^[A-Z][a-zA-Z0-9]*$/.test(this.string)}static isPascalCase(t){return new vs(t).isPascalCase()}isCamelCase(){if(0===this.string.length)return!1;return/^[a-z][a-zA-Z0-9]*$/.test(this.string)}static isCamelCase(t){return new vs(t).isCamelCase()}isHyphenCase(){return this.string.split("-").length>1}static isHyphenCase(t){return new vs(t).isHyphenCase()}isSnakeCase(){return this.string.split("_").length>1}static isSnakeCase(t){return new vs(t).isSnakeCase()}isPalindrome(){const t=this.string.toLocaleLowerCase();let e,s=t.length;for(e=0;e<s/2;e++)if(t[e]!=t[s-e-1])return!1;return!0}static isPalindrome(t){return new vs(t).isPalindrome()}static isAnagrams(t,e){return t=t.split("").sort(),e=e.split("").sort(),JSON.stringify(t)===JSON.stringify(e)}isIsogram(){return[...new Set(this.string.toLowerCase())].length===this.string.length}static isIsogram(t){return new vs(t).isIsogram()}static camel2hyphencase(t){return t.replace(/[A-Z]/g,(t=>"-"+t.toLowerCase()))}static camel2snakecase(t){return t.replace(/[A-Z]/g,(t=>"_"+t.toLowerCase()))}static camel2pascalcase(t){return t.charAt(0).toUpperCase()+t.slice(1)}static camel2constantcase(t){return t.replace(/[A-Z]/g,(t=>"_"+t)).toUpperCase()}static pascal2snakecase(t){return t.replace(/([A-Z])/g,((t,e)=>e?"_"+t.toLowerCase():t.toLowerCase()))}static pascal2hyphencase(t){return t.replace(/([A-Z])/g,((t,e)=>e?"-"+t.toLowerCase():t.toLowerCase()))}static pascal2camelcase(t){return t.charAt(0).toLowerCase()+t.slice(1)}static pascal2constantcase(t){return t.replace(/([A-Z])/g,((t,e)=>e?"_"+t:t)).toUpperCase()}static snake2camelcase(t){return t.replace(/(_\w)/g,(t=>t[1].toUpperCase()))}static snake2hyphencase(t){return t.replace(/_/g,"-")}static snake2pascalcase(t){return t.split("_").map((t=>t.charAt(0).toUpperCase()+t.slice(1))).join("")}static snake2constantcase(t){return t.toUpperCase()}static hyphen2camelcase(t){return t.replace(/-([a-z])/g,(t=>t[1].toUpperCase()))}static hyphen2snakecase(t){return t.replace(/-/g,"_")}static hyphen2pascalcase(t){return t.split("-").map((t=>t.charAt(0).toUpperCase()+t.slice(1))).join("")}static hyphen2constantcase(t){return t.replace(/-/g,"_").toUpperCase()}static constant2camelcase(t){return t.toLowerCase().replace(/_([a-z])/g,(t=>t[1].toUpperCase()))}static constant2snakecase(t){return t.toLowerCase()}static constant2pascalcase(t){return t.toLowerCase().split("_").map((t=>t.charAt(0).toUpperCase()+t.slice(1))).join("")}static constant2hyphencase(t){return t.toLowerCase().replace(/_/g,"-")}}class xs extends v{constructor(t,e,s=[]){if(super(),t instanceof xs)this.arr=t.arr,this.rows=t.rows,this.cols=t.cols;else{let r,i,n=[];if(arguments[0]instanceof Array)t=arguments[0].length,e=arguments[0][0].length,n=arguments[0];else for(r=0;r<t;r++)for(n.push([]),n[r].push(new Array(e)),i=0;i<e;i++)n[r][i]=s[r*e+i],null==s[r*e+i]&&(n[r][i]=0);this.rows=t,this.cols=e,this.arr=n}this.#r()}toString(){return gs(this.arr)}at(t=0,e=void 0){return t<0&&(t=this.rows+t),null==e?this.arr[t]:(e<0&&(e=this.cols+e),this.arr[t][e])}reshape(t,e){if(t*e==this.rows*this.cols)return new xs(t,e,this.arr.flat(1));console.error("Err")}static eye(t){let e=new xs(t,t);for(let s=0;s<t;s++)for(let r=0;r<t;r++)e.arr[s][r]=s===r?1:0;return e}get clone(){return new xs(this.rows,this.cols,this.arr.flat(1))}get size(){return this.rows*this.cols}get shape(){return[this.rows,this.cols]}get reel(){return new xs(this.cols,this.rows,this.arr.flat(1).reel)}get imag(){return new xs(this.cols,this.rows,this.arr.flat(1).imag)}[Symbol.iterator](){return this.arr[Symbol.iterator]()}#r(){for(let t=0;t<this.arr.length;t++)Object.defineProperty(this,t,{value:this.arr[t],writable:!0,configurable:!0,enumerable:!1})}get(t=0,e=0){return-1==e?this.arr[t]:-1==t?this.arr.map((t=>t[e])):this.arr[t][e]}set(t=0,e=0,s){if(-1==e)return this.arr[t]=s;if(-1==t){for(let t=0;t<this.cols;t++)this.arr[t][e]=s[t]||0;return this.arr}return this.arr[t][e]=s}get isSquare(){return this.rows/this.cols==1}get isSym(){if(!this.isSquare)return!1;const t=this.T,e=this.clone;return 0==xs.sub(e,t).max&&0==xs.sub(e,t).min}get isAntiSym(){if(!this.isSquare)return!1;const t=this.T,e=this.clone;return 0==xs.add(e,t).max&&0==xs.add(e,t).min}get isDiag(){if(!this.isSquare)return!1;const t=this.T,e=this.clone,s=xs.mul(e,t),r=xs.dot(t,e);return 0==xs.sub(s,r).max&&0==xs.sub(s,r).min}get isOrtho(){return!!this.isSquare&&(this.isDiag&&(1==this.det||-1==this.det))}get isIdemp(){if(!this.isSquare)return!1;const t=this.clone,e=xs.dot(t,t);return 0==xs.sub(e,t).max&&0==xs.sub(e,t).min}get T(){let t=[];for(let e=0;e<this.arr[0].length;e++){t[e]=[];for(let s=0;s<this.arr.length;s++)t[e][s]=this.arr[s][e]}return new xs(this.cols,this.rows,t.flat(1))}get det(){if(!this.isSquare)return new Error("is not square matrix");if(1==this.rows)return this.arr[0][0];function t(t,e){var s=[];for(let e=0;e<t.length;e++)s.push(t[e].slice(0));s.splice(0,1);for(let t=0;t<s.length;t++)s[t].splice(e,1);return s}return function e(s){if(2==s.length)return s.flat(1).some((t=>t instanceof xs))?void console.warn("Tensors are not completely supported yet ..."):et.sub(et.mul(s[0][0],s[1][1]),et.mul(s[0][1],s[1][0]));for(var r=0,i=0;i<s.length;i++){const n=et.add(et.mul(ks(-1,i),et.mul(s[0][i],e(t(s,i)))));r=et.add(r,n)}return r}(this.arr)}get inv(){if(!this.isSquare)return new Error("is not square matrix");if(0===this.det)return"determinat = 0 !!!";let t=function(t){if(t.length!==t[0].length)return;var e=0,s=0,r=0,i=t.length,n=0,a=[],o=[];for(e=0;e<i;e+=1)for(a[a.length]=[],o[o.length]=[],r=0;r<i;r+=1)a[e][r]=e==r?1:0,o[e][r]=t[e][r];for(e=0;e<i;e+=1){if(0==(n=o[e][e])){for(s=e+1;s<i;s+=1)if(0!=o[s][e]){for(r=0;r<i;r++)n=o[e][r],o[e][r]=o[s][r],o[s][r]=n,n=a[e][r],a[e][r]=a[s][r],a[s][r]=n;break}if(0==(n=o[e][e]))return}for(r=0;r<i;r++)o[e][r]=o[e][r]/n,a[e][r]=a[e][r]/n;for(s=0;s<i;s++)if(s!=e)for(n=o[s][e],r=0;r<i;r++)o[s][r]-=n*o[e][r],a[s][r]-=n*a[e][r]}return a}(this.arr);return new xs(this.rows,this.cols,t.flat(1))}static zeros(t,e){let s=new xs(t,e);for(let i=0;i<t;i++)for(var r=0;r<e;r++)s.arr[i][r]=0;return s}static ones(t,e){let s=new xs(t,e);for(let r=0;r<t;r++)for(let t=0;t<e;t++)s.arr[r][t]=1;return s}static nums(t,e,s){let r=new xs(t,e);for(let i=0;i<t;i++)for(let t=0;t<e;t++)r.arr[i][t]=s;return r}static get rand(){return{int:(t,e,s,r)=>{let i=new xs(t,e);for(let n=0;n<t;n++)for(let t=0;t<e;t++)i.arr[n][t]=nt.randInt(s,r);return i},bin:(t,e)=>{let s=new xs(t,e);for(let r=0;r<t;r++)for(let t=0;t<e;t++)s.arr[r][t]=nt.randBin;return s},hex:(t,e)=>{let s=new xs(t,e);for(let r=0;r<t;r++)for(let t=0;t<e;t++)s.arr[r][t]=nt.randHex;return s},choices:(t,e,s,r)=>{let i=new xs(t,e);for(let n=0;n<t;n++)for(let t=0;t<e;t++)i.arr[n][t]=nt.choice(s,r);return i},permutation:(t,e,s)=>{}}}static rands(t,e,s=1,r){let i=new xs(t,e);for(let n=0;n<t;n++)for(let t=0;t<e;t++)i.arr[n][t]=nt.rand(s,r);return i}map(t,e,s,r){return et.map(this,t,e,s,r)}lerp(t,e){return et.lerp(this,t,e)}norm(t,e){return et.norm(this,t,e)}clamp(t,e){return et.clamp(this,t,e)}static map(t,e,s,r,i){return et.map(t,e,s,r,i)}static lerp(t,e,s){return et.lerp(t,e,s)}static norm(t,e,s){return et.norm(t,e,s)}static clamp(t,e,s){return et.clamp(_s,e,s)}toPrecision(t){for(let e=0;e<this.cols;e++)for(let s=0;s<this.rows;s++)this.arr[e][s]=+this.arr[e][s].toPrecision(t);return this}get toBin(){let t=this.arr.flat(1).toBin;return new xs(this.rows,this.cols,t)}get toOct(){let t=this.arr.flat(1).toOct;return new xs(this.rows,this.cols,t)}get toHex(){let t=this.arr.flat(1).toHex;return new xs(this.rows,this.cols,t)}max2min(){let t=this.arr.flat(1).max2min;return new xs(this.rows,this.cols,t)}min2max(){let t=this.arr.flat(1).min2max;return new xs(this.rows,this.cols,t)}sortRows(t=void 0){let e=this.arr.map((e=>e.sort(t))).flat(1);return new xs(this.rows,this.cols,e)}sortCols(t=void 0){let e=this.T.arr.map((e=>e.sort(t))).flat(1);return new xs(this.rows,this.cols,e).T}filterByRows(t){var e=this.arr.map((e=>e.map((e=>+(""+e).includes(t))))).map((t=>!!Logic.or(...t))),s=this.arr.filter(((t,s)=>!0===e[s]));return 0===s.length&&s.push([]),console.log(s),new xs(s)}filterByCols(t){return new xs(this.T.arr.filter((e=>e.includes(t))))}sortAll(t=void 0){let e=this.arr.flat(1).sort(t);return new xs(this.rows,this.cols,e)}count(t){return this.arr.flat(1).count(t)}toBase(t){let e=this.arr.flat(1).toBase(t);return new xs(this.rows,this.cols,e)}#i(t){if(this.rows!==t.rows)return;let e=this.arr;for(let s=0;s<this.rows;s++)for(let r=this.cols;r<this.cols+t.cols;r++)e[s][r]=t.arr[s][r-this.cols];return this.cols+=t.cols,new xs(this.rows,this.cols,e.flat(1))}hstack(...t){const e=[this,...t].reduce(((t,e)=>t.#i(e)));return Object.assign(this,e),this}static hstack(t,...e){return t.clone.hstack(...e)}#n(t){if(this.cols!==t.cols)return;let e=this.arr;for(let s=this.rows;s<this.rows+t.rows;s++){e[s]=[];for(let r=0;r<this.cols;r++)e[s][r]=t.arr[s-this.rows][r]}return this.rows+=t.rows,new xs(this.rows,this.cols,e.flat(1))}vstack(...t){const e=[this,...t].reduce(((t,e)=>t.#n(e)));return Object.assign(this,e),this}static vstack(t,...e){return t.clone.vstack(...e)}hqueue(...t){const e=[this,...t].reverse().reduce(((t,e)=>t.#i(e)));return Object.assign(this,e),this}vqueue(...t){const e=[this,...t].reverse().reduce(((t,e)=>t.#n(e)));return Object.assign(this,e),this}static hqueue(t,...e){return t.clone.hqueue(...e)}static vqueue(t,...e){return t.clone.vqueue(...e)}slice(t=0,e=0,s=this.rows-1,r=this.cols-1){let i=s-t,n=r-e,a=new Array(n);for(let s=0;s<i;s++){a[s]=[];for(let r=0;r<n;r++)a[s][r]=this.arr[s+t][r+e]}return new xs(i,n,a.flat(1))}static slice(t,e=0,s=0,r=this.rows-1,i=this.cols-1){return t.slice(e,s,r,i)}splice(t,e,s,...r){}getRows(t,e=t+1){return this.slice(t,0,e,this.cols)}getCols(t,e=t+1){return this.slice(0,t,this.rows,e)}static getRows(t,e,s=e+1){return t.slice(e,0,s,t.cols)}static getCols(t,e,s=e+1){return t.slice(0,e,t.rows,s)}add(...t){for(let s=0;s<t.length;s++){("number"==typeof t[s]||t[s]instanceof Es)&&(t[s]=xs.nums(this.rows,this.cols,t[s]));for(let r=0;r<this.rows;r++)for(var e=0;e<this.cols;e++)this.arr[r][e]=et.add(this.arr[r][e],t[s].arr[r][e])}return new xs(this.rows,this.cols,this.arr.flat(1))}sub(...t){for(let s=0;s<t.length;s++){"number"==typeof t[s]&&(t[s]=xs.nums(this.rows,this.cols,t[s]));for(let r=0;r<this.rows;r++)for(var e=0;e<this.cols;e++)this.arr[r][e]=et.sub(this.arr[r][e],t[s].arr[r][e])}return new xs(this.rows,this.cols,this.arr.flat(1))}static add(t,...e){return t.clone.add(...e)}static sub(t,...e){return t.clone.sub(...e)}mul(...t){for(let r=0;r<t.length;r++){"number"==typeof t[r]&&(t[r]=xs.nums(this.rows,this.cols,t[r]));for(var e=0;e<this.rows;e++)for(var s=0;s<this.cols;s++)this.arr[e][s]=et.mul(this.arr[e][s],t[r].arr[e][s])}return new xs(this.rows,this.cols,this.arr.flat(1))}div(...t){for(let s=0;s<t.length;s++){"number"==typeof t[s]&&(t[s]=xs.nums(this.rows,this.cols,t[s]));for(let r=0;r<this.rows;r++)for(var e=0;e<this.cols;e++)this.arr[r][e]=et.div(this.arr[r][e],t[s].arr[r][e])}return new xs(this.rows,this.cols,this.arr.flat(1))}static div(t,...e){return t.clone.div(...e)}static mul(t,...e){return t.clone.mul(...e)}modulo(...t){for(let s=0;s<t.length;s++){"number"==typeof t[s]&&(t[s]=xs.nums(this.rows,this.cols,t[s]));for(let r=0;r<this.rows;r++)for(var e=0;e<this.cols;e++)this.arr[r][e]=et.modulo(this.arr[r][e],t[s].arr[r][e])}return new xs(this.rows,this.cols,this.arr.flat(1))}static modulo(t,...e){return t.clone.modulo(...e)}dot(t){for(var e=[],s=0;s<this.arr.length;s++){e[s]=[];for(var r=0;r<t.arr[0].length;r++){e[s][r]=0;for(var i=0;i<this.arr[0].length;i++)e[s][r]=et.add(e[s][r],et.mul(this.arr[s][i],t.arr[i][r]))}}return new xs(this.arr.length,t.arr[0].length,e.flat(1))}static dot(t,e){return t.dot(e)}pow(t){let e=this.clone,s=this.clone;for(let r=0;r<t-1;r++)s=s.dot(e);return s}static pow(t,e){return t.clone.pow(e)}get somme(){let t=0;for(let e=0;e<this.rows;e++)for(let s=0;s<this.cols;s++)t+=this.arr[e][s];return t}get DoesItContainComplexNumbers(){return this.arr.flat(1/0).some((t=>t instanceof Es))}get min(){this.DoesItContainComplexNumbers&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(V(...this.arr[e]));return V(...t)}get max(){this.DoesItContainComplexNumbers&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(Y(...this.arr[e]));return Y(...t)}get minRows(){this.DoesItContainComplexNumbers&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(V(...this.arr[e]));return t}get maxRows(){this.DoesItContainComplexNumbers&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(Y(...this.arr[e]));return t}get minCols(){return this.DoesItContainComplexNumbers&&console.error("Complex numbers are not comparable"),this.T.minRows}get maxCols(){return this.DoesItContainComplexNumbers&&console.error("Complex numbers are not comparable"),this.T.maxRows}static fromVector(t){return new xs(t.length,1,t)}get toArray(){let t=[];for(let e=0;e<this.rows;e++)for(let s=0;s<this.cols;s++)t.push(this.arr[e][s]);return t}get print(){let t="[";for(let e=0;e<this.arr.length;e++)t+=(0!=e?" ":"")+` [${this.arr[e].map((t=>" "+t.toString()+" "))}],\n`;console.log(t.substring(0,t.length-2)+" ]"),document.write(t.substring(0,t.length-2)+" ]")}get table(){console.table(this.arr)}get serialize(){return JSON.stringify(this)}static deserialize(t){"string"==typeof t&&(t=JSON.parse(t));let e=new xs(t.rows,t.cols);return e.arr=t.arr,e}toTable(){var t=new DocumentFragment,e=new Array(this.rows).fill(null).map((()=>document?.createElement("tr"))),s=this.arr.map((t=>t.map((()=>document?.createElement("td")))));for(let t=0;t<s.length;t++)for(let r=0;r<s[0].length;r++)s[t][r].innerHTML=this.arr[t][r],e[t].appendChild(s[t][r]);return e.map((e=>t.appendChild(e))),t}toGrid(t,e={}){let s=Grid();return s.append(...this.map(t).arr.flat(1).map((t=>t.style(e)))),s.Columns(this.cols),s}sortTable(t=0,{type:e="num",order:s="asc"}={}){var r=this.T.arr.map((t=>t.map(((t,e)=>Object.assign({},{x:t,y:e}))))),i=this.T.arr.map((t=>t.map(((t,e)=>Object.assign({},{x:t,y:e})))));"num"===e?"asc"===s?r[t].sort(((t,e)=>t.x-e.x)):"desc"===s?r[t].sort(((t,e)=>e.x-t.x)):"toggle"===s&&(r[t][0].x>r[t][1].x?r[t].sort(((t,e)=>e.x-t.x)):r[t].sort(((t,e)=>t.x-e.x))):"alpha"===e&&("asc"===s?r[t].sort(((t,e)=>(""+t.x).localeCompare(""+e.x))):"desc"===s&&r[t].sort(((t,e)=>(""+e.x).localeCompare(""+t.x)))),s=r[t].map((t=>t.y));for(let e=0;e<r.length;e++)e!==t&&r[e].map(((t,e)=>t.y=s[e]));for(let e=0;e<r.length;e++)e!==t&&i[e].map(((t,i)=>t.x=r[e][s[i]].x));i[t]=r[t];var n=i.map((t=>t.map((t=>t.x))));return new xs(n).T}}const _s=(t,e,s)=>new xs(t,e,s);class Es extends v{constructor(t=0,e=0){super(),t instanceof Es?(this.a=t.a,this.b=t.b):"object"==typeof t?"a"in e&&"b"in t?(this.a=t.a,this.b=t.b):"a"in e&&"z"in t?(this.a=t.a,this.b=Ms(t.z**2-t.a**2)):"a"in e&&"phi"in t?(this.a=t.a,this.b=t.a*Ds(t.phi)):"b"in e&&"z"in t?(this.b=t.b,this.a=Ms(t.z**2-t.b**2)):"b"in e&&"phi"in t?(this.b=e,this.a=t.b/Ds(t.phi)):"z"in e&&"phi"in t&&(this.a=t.z*Ss(t.phi),this.a=t.z*js(t.phi)):"number"==typeof t&&"number"==typeof e&&(this.a=+t.toFixed(32),this.b=+e.toFixed(32))}isComplex(){return!0}toString(){let t="";return t=0!==this.a?this.b>=0?`${this.a}+${this.b}*i`:`${this.a}-${Math.abs(this.b)}*i`:this.b>=0?`${this.b}*i`:`-${Math.abs(this.b)}*i`,t}get clone(){return new Es(this.a,this.b)}get z(){return Bs(this.a,this.b)}get phi(){return $s(this.b,this.a)}static Zero(){return new Es(0,0)}get conj(){return new Es(this.a,-this.b)}get inv(){return new Es(this.a/(ks(this.a,2)+ks(this.b,2)),-this.b/(ks(this.a,2)+ks(this.b,2)))}add(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new Es(t[e],0));let e=t.map((t=>t.a)),s=t.map((t=>t.b));return this.a+=+W(...e).toFixed(15),this.b+=+W(...s).toFixed(15),this}sub(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new Es(t[e],0));let e=t.map((t=>t.a)),s=t.map((t=>t.b));return this.a-=+W(...e).toFixed(15),this.b-=+W(...s).toFixed(15),this}mul(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new Es(t[e],0));let e=+q(this.z,...t.map((t=>t.z))).toFixed(15),s=+W(this.phi,...t.map((t=>t.phi))).toFixed(15);return this.a=+(e*Ss(s).toFixed(15)).toFixed(14),this.b=+(e*js(s).toFixed(15)).toFixed(14),this}div(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new Es(t[e],0));let e=+(this.z/q(...t.map((t=>t.z)))).toFixed(15),s=+(this.phi-W(...t.map((t=>t.phi)))).toFixed(15);return this.a=+(e*Ss(s).toFixed(15)).toFixed(15),this.b=+(e*js(s).toFixed(15)).toFixed(15),this}pow(t){if(Ls(t)===t&&t>0){let e=+(this.z**t).toFixed(15),s=+(this.phi*t).toFixed(15);this.a=+(e*Ss(s).toFixed(15)).toFixed(15),this.b=+(e*js(s).toFixed(15)).toFixed(15)}return this}static fromExpo(t,e){return new Es(+(t*Ss(e)).toFixed(13),+(t*js(e)).toFixed(13))}get expo(){return[this.z,this.phi]}static add(t,...e){return t.clone.add(...e)}static sub(t,...e){return t.clone.sub(...e)}static mul(t,...e){return t.clone.mul(...e)}static div(t,...e){return t.clone.div(...e)}static pow(t,e){return t.clone.pow(e)}static xpowZ(t){return As(t**this.a*Ss(this.b*Is(t)),t**this.a*js(this.b*Is(t)))}sqrtn(t=2){return As(Ts(this.z,t)*Ss(this.phi/t),Ts(this.z,t)*js(this.phi/t))}get sqrt(){return this.sqrtn(2)}get log(){return As(this.z,this.phi)}get cos(){return As(Ss(this.a)*Ps(this.b),js(this.a)*Rs(this.b))}get sin(){return As(js(this.a)*Ps(this.b),Ss(this.a)*Rs(this.b))}get tan(){const t=Ss(2*this.a)+Ps(2*this.b);return As(js(2*this.a)/t,Rs(2*this.b)/t)}printInConsole(){let t=this.a+" + "+this.b+" * i";return console.log(t),t}print(){}UI(){return"<span>"+this.a+" + i * "+this.b+"</span>"}}const As=(t,e)=>{if((t instanceof Array||ArrayBuffer.isView(t))&&(e instanceof Array||ArrayBuffer.isView(t)))return t.map(((s,r)=>As(t[r],e[r])));if(t instanceof xs&&e instanceof xs){if(t.shape[0]!==e.shape[0]||t.shape[1]!==e.shape[1])return Error(0);const s=t.arr.map(((s,r)=>As(t.arr[r],e.arr[r])));return new xs(t.rows,t.cols,...s)}return new Es(t,e)},Cs=(...t)=>x(Math.abs,...t),Ms=(...t)=>x(Math.sqrt,...t),ks=(t,e)=>{if("number"==typeof t)return"number"==typeof e?Math.pow(t,e):e instanceof Es?Es.fromExpo(t**e.a,e.b*Is(t)):x((e=>ks(t,e)),...e);if(t instanceof Es)return"number"==typeof e?Es.fromExpo(t.z**e,t.phi*e):e instanceof Es?Es.fromExpo(t.z**e.a*Os(-t.phi*e.b),Is(t.z)*e.b+e.a*t.phi):x((e=>ks(t,e)),...e);if(t instanceof Array){if("number"==typeof e)return x((t=>ks(t,e)),...t);if(e instanceof Array){const s=[];for(let r=0;r<t.length;r++)s.push(x((e=>ks(t[r],e)),...e));return s}}},Ts=(t,e)=>{if("number"==typeof t)return"number"==typeof e?Math.pow(t,1/e):x((e=>Ts(t,e)),...e);if(t instanceof Es)return"number"==typeof e?Es.fromExpo(Ts(t.z,e),t.phi/e):x((e=>Ts(t,e)),...e);if(t instanceof Array){if("number"==typeof e)return x((t=>Ts(t,e)),...t);if(e instanceof Array){const s=[];for(let r=0;r<t.length;r++)s.push(x((e=>Ts(t[r],e)),...e));return s}}},Os=(...t)=>x(Math.exp,...t),Is=(...t)=>x(Math.log,...t),Ss=(...t)=>x(y.cos,...t),js=(...t)=>x(y.sin,...t),Ds=(...t)=>x(y.tan,...t),Ps=(...t)=>x(y.cosh,...t),Rs=(...t)=>x(y.sinh,...t),Ls=(...t)=>x(Math.floor,...t),$s=(t,e,s=!0)=>{if("number"==typeof t)return"number"==typeof e?s?Math.atan2(t,e):180*Math.atan2(t,e)/Math.PI:x((e=>$s(t,e,s)),...e);if(t instanceof Array){if("number"==typeof e)return x((t=>$s(t,e,s)),...t);if(e instanceof Array){const s=[];for(let r=0;r<t.length;r++)s.push(x((e=>ks(t[r],e)),...e));return s}}},Ns=(...t)=>x(Math.sign,...t),Bs=(...t)=>t.every((t=>"number"==typeof t))?Math.hypot(...t):t.every((t=>t instanceof Array))?x(Math.hypot,...t):void 0;class Us{constructor(t,e=1e3/30,s=0,r=1/0,i=!0){this.callback=t,this.cache={isRunning:!1,AnimationId:null,t0:null,step:e,startTime:s,endTime:r,started:i},this.init(),this.i=0}init(){return this.cache.started&&(this.cache.startTime?this.startAfter(this.cache.startTime):this.start(),this.cache.endTime&&this.cache.endTime!==1/0&&this.stopAfter(this.cache.endTime)),this}start(){return this.cache.isRunning||(this.i=0,this.cache.isRunning=!0,this.cache.t0=Date.now(),this.animate()),this}pause(){return this.cache.isRunning&&(clearTimeout(this.cache.AnimationId),this.cache.isRunning=!1),this}stop(){return this.pause(),this.i=0,this}resume(){return this.cache.isRunning=!0,this.animate(),this}startAfter(t=1e3){return setTimeout(this.start.bind(this),t),this}stopAfter(t=1e3){return setTimeout(this.stop.bind(this),t),this}animate=()=>{if(this.cache.isRunning){const t=Date.now(),e=t-this.cache.t0;e>this.cache.step&&(this.callback(this),this.i++,this.cache.t0=t-e%this.cache.step),this.cache.AnimationId=setTimeout(this.animate,0)}}}const Zs={Linear:function(t){return t},InSin:t=>1-Math.cos(t*Math.PI/2),OutSin:t=>Math.sin(t*Math.PI/2),InOutSin:t=>-(Math.cos(Math.PI*t)-1)/2,InQuad:t=>t**2,OutQuad:t=>1-Math.pow(1-t,2),InOutQuad:t=>t<.5?2*Math.pow(t,2):1-Math.pow(-2*t+2,2)/2,InCubic:t=>t**3,OutCubic:t=>1-Math.pow(1-t,3),InOutCubic:t=>t<.5?4*Math.pow(t,3):1-Math.pow(-2*t+2,3)/2,InQuart:t=>t**4,OutQuart:t=>1-Math.pow(1-t,4),InOutQuart:t=>t<.5?8*Math.pow(t,4):1-Math.pow(-2*t+2,4)/2,InQuint:t=>t**5,OutQuint:t=>1-Math.pow(1-t,5),InOutQuint:t=>t<.5?16*Math.pow(t,5):1-Math.pow(-2*t+2,5)/2,InExpo:t=>0===t?0:Math.pow(2,10*t-10),OutExpo:t=>1===t?1:1-Math.pow(2,-10*t),InOutExpo:t=>0===t?0:1===t?1:t<.5?Math.pow(2,20*t-10)/2:(2-Math.pow(2,-20*t+10))/2,InCirc:t=>1-Math.sqrt(1-Math.pow(t,2)),OutCirc:t=>Math.sqrt(1-Math.pow(t-1,2)),InOutCic:t=>t<.5?(1-Math.sqrt(1-Math.pow(2*t,2)))/2:(Math.sqrt(1-Math.pow(-2*t+2,2))+1)/2,Arc:t=>1-Math.sin(Math.acos(t)),Back:t=>Math.pow(t,2)*(2*t-1),Elastic:t=>-2*Math.pow(2,10*(t-1))*Math.cos(20*Math.PI*t/3*t),InBack(t){const e=1.70158;return 2.70158*Math.pow(t,3)-e*t**2},OutBack(t){const e=1.70158;return 1+2.70158*Math.pow(t-1,3)+e*Math.pow(t-1,2)},InOutBack(t){const e=2.5949095;return t<.5?Math.pow(2*t,2)*(7.189819*t-e)/2:(Math.pow(2*t-2,2)*((e+1)*(2*t-2)+e)+2)/2},InElastic(t){const e=2*Math.PI/3;return 0===t?0:1===t?1:-Math.pow(2,10*t-10)*Math.sin((10*t-10.75)*e)},OutElastic(t){const e=2*Math.PI/3;return 0===t?0:1===t?1:Math.pow(2,-10*t)*Math.sin((10*t-.75)*e)+1},InOutElastic(t){const e=2*Math.PI/4.5;return 0===t?0:1===t?1:t<.5?-Math.pow(2,20*t-10)*Math.sin((20*t-11.125)*e)/2:Math.pow(2,-20*t+10)*Math.sin((20*t-11.125)*e)/2+1},InBounce:t=>1-Zs.OutBounce(1-t),OutBounce(t){const e=7.5625,s=2.75;return t<1/s?e*t*t:t<2/s?e*(t-=1.5/s)*t+.75:t<2.5/s?e*(t-=2.25/s)*t+.9375:e*(t-=2.625/s)*t+.984375},InOutBounce:t=>t<.5?(1-Zs.OutBounce(1-2*t))/2:(1+Zs.OutBounce(2*t-1))/2};class zs{constructor(t,e=Zs.Linear,s=50,{t:r=[0,null],start:i=!0,duration:n=3e3}={}){this.cache={isRunning:!1,AnimationId:null,startTime:null,ease:e,step:s,intervall:r,started:i,duration:n},this.t=0,this.tx=0,this.ty=0,this.i=0,this.callback=t}#a(){this.t+=this.cache.step,this.i++,this.tx=$(this.t,0,this.cache.duration,0,1),this.ty=this.cache.ease(this.tx),this.callback(this),this.t>=this.cache.duration&&(clearInterval(this.cache.AnimationId),this.cache.isRunning=!1)}reset(t=!0){return this.t=0,this.tx=0,this.ty=0,this.i=0,t&&this.start(),this}#o(t=!0){return this.cache.isRunning||(t&&this.reset(!1),this.cache.isRunning=!0,this.cache.startTime=Date.now(),this.cache.AnimationId=setInterval(this.#a.bind(this),this.cache.step)),this}start(){return this.#o(!0),this}pause(){return this.cache.isRunning&&(clearTimeout(this.cache.AnimationId),this.cache.isRunning=!1),this}resume(){return this.#o(!1),this}stop(){return this.pause(),this.reset(!1),this}}class Hs{constructor({head:t=null,wrapper:e=null,target:s=null}){this.head=t,this.wrapper=e,this.target=s,this.init()}get isZikoApp(){return!0}init(){this.head&&this.setHead(this.head),this.wrapper&&this.setWrapper(this.wrapper),this.target&&this.setTarget(this.target),this.wrapper&&this.target&&this.wrapper.render(this.target)}setTarget(t){return t instanceof HTMLElement?this.target=t:"string"==typeof t&&(this.target=globalThis?.document?.querySelector(t)),this}setWrapper(t){return t?.isZikoUIElement?this.wrapper=t:"function"==typeof t&&(this.wrapper=t()),this}setHead(t){return this.head=t instanceof Ue?t:Ze(t),this}}function Fs(t){return/:\w+/.test(t)}class Ws extends Hs{constructor({head:t,wrapper:e,target:s,routes:r}){super({head:t,wrapper:e,target:s}),this.routes=new Map([["404",_t("Error 404")],...Object.entries(r)]),this.clear(),globalThis.onpopstate=this.render(location.pathname)}clear(){return[...this.routes].forEach((t=>{!Fs(t[0])&&t[1]?.isZikoUIElement&&t[1].unrender()})),this}render(t){const[e,s]=[...this.routes].find((e=>function(t,e){const s=t.split("/"),r=e.split("/");if(s.length!==r.length)return!1;for(let t=0;t<s.length;t++){const e=s[t],i=r[t];if(!e.startsWith(":")&&e!==i)return!1}return!0}(e[0],t)));let r;if(Fs(e)){const i=function(t,e){const s=t.split("/"),r=e.split("/"),i={};if(s.length!==r.length)return i;for(let t=0;t<s.length;t++){const e=s[t],n=r[t];if(e.startsWith(":"))i[e.slice(1)]=n;else if(e!==n)return{}}return i}(e,t);r=s.call(this,i)}else s?.isZikoUIElement&&s.render(this.wrapper),"function"==typeof s&&(r=s());return r?.isZikoUIElement&&r.render(this.wrapper),r instanceof Promise&&r.then((t=>t.render(this.wrapper))),globalThis.history.pushState({},"",t),this}}const qs=({head:t,wrapper:e,target:s,routes:r})=>new Ws({head:t,wrapper:e,target:s,routes:r});function Vs(t,e="./src/pages",s=["js","ts"]){"/"===e.at(-1)&&(e=e.slice(0,-1));const r=t.replace(/\\/g,"/").replace(/\[(\w+)\]/g,"$1/:$1").split("/"),i=e.split("/"),n=r.indexOf(i[i.length-1]);if(-1!==n){const t=r.slice(n+1),e=t[t.length-1],i="index.js"===e||"index.ts"===e,a=s.some((t=>e===`.${t}`||e.endsWith(`.${t}`)));if(i)return"/"+(t.length>1?t.slice(0,-1).join("/"):"");if(a)return"/"+t.join("/").replace(/\.(js|ts)$/,"")}return""}class Ys{constructor(t=""){this.channel=new BroadcastChannel(t),this.EVENTS_DATAS_PAIRS=new Map,this.EVENTS_HANDLERS_PAIRS=new Map,this.LAST_RECEIVED_EVENT="",this.UUID="ziko-channel"+nt.string(10),this.SUBSCRIBERS=new Set([this.UUID])}get broadcast(){return this}emit(t,e){return this.EVENTS_DATAS_PAIRS.set(t,e),this.#h(t),this}on(t,e=console.log){return this.EVENTS_HANDLERS_PAIRS.set(t,e),this.#c(),this}#c(){return this.channel.onmessage=t=>{this.LAST_RECEIVED_EVENT=t.data.last_sended_event;const e=t.data.userId;this.SUBSCRIBERS.add(e);const s=t.data.EVENTS_DATAS_PAIRS.get(this.LAST_RECEIVED_EVENT),r=this.EVENTS_HANDLERS_PAIRS.get(this.LAST_RECEIVED_EVENT);s&&r&&r(s)},this}#h(t){return this.channel.postMessage({EVENTS_DATAS_PAIRS:this.EVENTS_DATAS_PAIRS,last_sended_event:t,userId:this.UUID}),this}close(){return this.channel.close(),this}}const Xs=t=>new Ys(t);class Gs{#l;constructor(){this.#l=function(t){try{let e=new Function("return "+t.data.fun)()();postMessage({result:e})}catch(t){postMessage({error:t.message})}finally{t.data.close&&self.close()}}.toString(),this.blob=new Blob(["this.onmessage = "+this.#l],{type:"text/javascript"}),this.worker=new Worker(window.URL.createObjectURL(this.blob))}call(t,e,s=!0){return this.worker.postMessage({fun:t.toString(),close:s}),this.worker.onmessage=function(t){t.data.error?console.error(t.data.error):e(t.data.result)},this}}class Ks{constructor(t,{namespace:e="Ziko",register:s,ValidateCssProps:r=!1}={}){this.currentPropsMap=t,this.namespace=e,this.ValidateCssProps=r,this.use(t)}use(t){return this.ValidateCssProps&&function(t){const e=new Set(Object.keys(document.documentElement.style));for(let s in t)if(!e.has(s))throw new Error(`Invalid CSS property: "${s}"`)}(t),this.currentPropsMap=t,this.#r(),this}#r(){const t=globalThis?.document?.documentElement?.style;for(let e in this.currentPropsMap){const s=this.namespace?`--${this.namespace}-${e}`:`--${e}`;t.setProperty(s,this.currentPropsMap[e]),Object.defineProperty(this,e,{value:`var(${s})`,writable:!0,configurable:!0,enumerable:!1})}}}class Qs{constructor(t,e,s){this.cache={storage:t,globalKey:e,channel:Xs(`Ziko:useStorage-${e}`),oldItemKeys:new Set},this.#e(s),this.#r()}get items(){return JSON.parse(this.cache.storage[this.cache.globalKey]??null)}#r(){for(let t in this.items)Object.assign(this,{[[t]]:this.items[t]})}#e(t){this.cache.channel=Xs(`Ziko:useStorage-${this.cache.globalKey}`),this.cache.channel.on("Ziko-Storage-Updated",(()=>this.#r())),t&&(this.cache.storage[this.cache.globalKey]?(Object.keys(this.items).forEach((t=>this.cache.oldItemKeys.add(t))),console.group("Ziko:useStorage"),console.warn(`Storage key '${this.cache.globalKey}' already exists. we will not overwrite it.`),console.info("%cWe'll keep the existing data.","background-color:#2222dd; color:gold;"),console.group("")):this.set(t))}set(t){return this.cache.storage.setItem(this.cache.globalKey,JSON.stringify(t)),this.cache.channel.emit("Ziko-Storage-Updated",{}),Object.keys(t).forEach((t=>this.cache.oldItemKeys.add(t))),this.#r(),this}add(t){const e={...this.items,...t};return this.cache.storage.setItem(this.cache.globalKey,JSON.stringify(e)),this.#r(),this}remove(...t){const e={...this.items};for(let s=0;s<t.length;s++)delete e[t[s]],delete this[t[s]];return this.set(e),this}get(t){return this.items[t]}clear(){return this.cache.storage.removeItem(this.cache.globalKey),this.#r(),this}}globalThis?.document&&document?.addEventListener("DOMContentLoaded",__Ziko__.__Config__.init()),t.App=({head:t,wrapper:e,target:s})=>new Hs({head:t,wrapper:e,target:s}),t.Base=st,t.Canvas=(t,e)=>new cs(t,e),t.Combinaison=it,t.Complex=Es,t.E=s,t.EPSILON=r,t.Ease=Zs,t.FileBasedRouting=async function(t){const e=Object.keys(t),s=function(t){if(0===t.length)return"";const e=t.map((t=>t.split("/"))),s=Math.min(...e.map((t=>t.length)));let r=[];for(let t=0;t<s;t++){const s=e[0][t];if(!e.every((e=>e[t]===s||e[t].startsWith("["))))break;r.push(s)}return r.join("/")+(r.length?"/":"")}(e),r={};for(let i=0;i<e.length;i++){const n=await t[e[i]](),a=await n.default;Object.assign(r,{[Vs(e[i],s)]:a})}return qs({target:document.body,routes:{"/":()=>{},...r},wrapper:Qe.section()})},t.Flex=(...t)=>{let e="div";return"string"==typeof t[0]&&(e=t[0],t.pop()),new Je(e).append(...t)},t.Grid=(...t)=>new is("div").append(...t),t.HTMLWrapper=t=>new os(t),t.Logic=rt,t.Matrix=xs,t.PI=e,t.Permutation=class{static withDiscount(t,e=t.length){if(1===e)return t.map((t=>[t]));const s=[];let r;return r=this.withDiscount(t,e-1),t.forEach((t=>{r.forEach((e=>{s.push([t].concat(e))}))})),s}static withoutDiscount(t){if(1===t.length)return t.map((t=>[t]));const e=[],s=this.withoutDiscount(t.slice(1)),r=t[0];for(let t=0;t<s.length;t++){const i=s[t];for(let t=0;t<=i.length;t++){const s=i.slice(0,t),n=i.slice(t);e.push(s.concat([r],n))}}return e}},t.Random=nt,t.SPA=qs,t.SVGWrapper=t=>new hs(t),t.Str=vs,t.Suspense=(t,e)=>new ns(t,e),t.Svg=(t,e)=>new ls(t,e),t.UIElement=Xe,t.UINode=dt,t.Utils=et,t.ZikoApp=Hs,t.ZikoCustomEvent=be,t.ZikoEventClick=Ot,t.ZikoEventClipboard=jt,t.ZikoEventCustom=Rt,t.ZikoEventDrag=$t,t.ZikoEventFocus=Ut,t.ZikoEventInput=me,t.ZikoEventKey=Wt,t.ZikoEventMouse=Yt,t.ZikoEventPointer=Kt,t.ZikoEventSwipe=ye,t.ZikoEventTouch=te,t.ZikoEventWheel=se,t.ZikoHead=Ue,t.ZikoMutationObserver=_e,t.ZikoSPA=Ws,t.ZikoUICanvas=cs,t.ZikoUIFlex=Je,t.ZikoUIGrid=is,t.ZikoUIHTMLWrapper=os,t.ZikoUISVGWrapper=hs,t.ZikoUISuspense=ns,t.ZikoUISvg=ls,t.ZikoUIText=xt,t.ZikoUIXMLWrapper=as,t.ZikoUseRoot=Ks,t.__ZikoEvent__=Tt,t.abs=Cs,t.accum=X,t.acos=(...t)=>x(y.acos,...t),t.acosh=(...t)=>x(y.acosh,...t),t.acot=(...t)=>x(y.acot,...t),t.add=k,t.arange=B,t.arr2str=gs,t.asin=(...t)=>x(y.asin,...t),t.asinh=(...t)=>x(y.asinh,...t),t.atan=(...t)=>x(y.atan,...t),t.atan2=$s,t.atanh=(...t)=>x(y.atanh,...t),t.bindClickEvent=St,t.bindClipboardEvent=Pt,t.bindCustomEvent=(t,e,s)=>new Rt(t,e,s),t.bindDragEvent=Bt,t.bindFocusEvent=zt,t.bindHashEvent=(t,e)=>new Ht(t,e),t.bindKeyEvent=Vt,t.bindMouseEvent=Gt,t.bindPointerEvent=Jt,t.bindTouchEvent=(t,e)=>new te(t,e),t.bindWheelEvent=ie,t.cartesianProduct=Q,t.ceil=(...t)=>x(Math.ceil,...t),t.clamp=N,t.combinaison=(t,e,s=!1)=>it[s?"withDiscount":"withoutDiscount"](t,e),t.complex=As,t.cos=Ss,t.cosh=Ps,t.cot=(...t)=>x(y.cot,...t),t.coth=(...t)=>x(y.coth,...t),t.count=(t,e)=>t.split("").filter((t=>t==e)).length,t.countWords=(t,e)=>t.split(" ").filter((t=>t==e)).length,t.csc=(...t)=>x(y.csc,...t),t.csv2arr=at,t.csv2json=(t,e=",")=>JSON.stringify(ot(t,e)),t.csv2matrix=(t,e=",")=>new xs(at(t,e)),t.csv2object=ot,t.csv2sql=(t,e)=>{const s=t.trim().trimEnd().split("\n").filter((t=>t));let r=`INSERT INTO ${e} (${s[0].split(",").join(", ")}) Values `,i=[];for(let t=1;t<s.length;t++){const e=s[t].split(",");i.push(`(${e})`)}return r+i.join(",\n")},t.debounce=(t,e=1e3)=>(...s)=>setTimeout((()=>t(...s)),e),t.defineParamsGetter=function(t){Object.defineProperties(t,{QueryParams:{get:function(){return function(t){const e={};return t.replace(/[A-Z0-9]+?=([\w|:|\/\.]*)/gi,(t=>{const[s,r]=t.split("=");e[s]=r})),e}(globalThis.location.search.substring(1))},configurable:!1,enumerable:!0},HashParams:{get:function(){return globalThis.location.hash.substring(1).split("#")},configurable:!1,enumerable:!0}})},t.deg2rad=H,t.div=I,t.e=Os,t.fact=(...t)=>x((t=>{let e,s=1;if(0==t)s=1;else if(t>0)for(e=1;e<=t;e++)s*=e;else s=NaN;return s}),...t),t.floor=Ls,t.geomspace=z,t.getEvent=Mt,t.hypot=Bs,t.inRange=G,t.isApproximatlyEqual=K,t.json2arr=t=>ht(t instanceof Object?t:JSON.parse(t)),t.json2css=bs,t.json2csv=lt,t.json2csvFile=(t,e)=>{const s=lt(t,e),r=new Blob([s],{type:"text/csv;charset=utf-8;"});return{str:s,blob:r,url:URL.createObjectURL(r)}},t.json2xml=ft,t.json2xmlFile=(t,e)=>{const s=ft(t,e),r=new Blob([s],{type:"text/xml;charset=utf-8;"});return{str:s,blob:r,url:URL.createObjectURL(r)}},t.json2yml=mt,t.json2ymlFile=(t,e)=>{const s=mt(t,e),r=new Blob([s],{type:"text/yml;charset=utf-8;"});return{str:s,blob:r,url:URL.createObjectURL(r)}},t.lerp=L,t.linspace=U,t.ln=Is,t.logspace=Z,t.map=$,t.mapfun=x,t.matrix=_s,t.matrix2=(...t)=>new xs(2,2,t),t.matrix3=(...t)=>new xs(3,3,t),t.matrix4=(...t)=>new xs(4,4,t),t.max=Y,t.min=V,t.modulo=S,t.mul=O,t.norm=R,t.nums=P,t.obj2str=fs,t.ones=D,t.pgcd=J,t.pow=ks,t.powerSet=t=>{const e=[],s=2**t.length;for(let r=0;r<s;r+=1){const s=[];for(let e=0;e<t.length;e+=1)r&1<<e&&s.push(t[e]);e.push(s)}return e},t.ppcm=tt,t.preload=t=>{const e=new XMLHttpRequest;if(e.open("GET",t,!1),e.send(),200===e.status)return e.responseText;throw new Error(`Failed to fetch data from ${t}. Status: ${e.status}`)},t.prod=q,t.rad2deg=F,t.removeExtraSpace=t=>t.replace(/\s+/g," "),t.round=(...t)=>x(Math.round,...t),t.sec=(...t)=>x(y.sec,...t),t.sig=(...t)=>x((t=>1/(1+Os(-t))),...t),t.sign=Ns,t.sin=js,t.sinc=(...t)=>x(y.sinc,...t),t.sinh=Rs,t.sqrt=Ms,t.sqrtn=Ts,t.str=t=>new vs(t),t.sub=T,t.subSet=null,t.sum=W,t.svg2ascii=ps,t.svg2img=(t,e=!0)=>Qe.img(ms(t)).render(e),t.svg2imgUrl=ms,t.svg2str=us,t.tags=Qe,t.tan=Ds,t.tanh=(...t)=>x(y.tanh,...t),t.text=_t,t.throttle=(t,e)=>{let s=0;return(...r)=>{const i=(new Date).getTime();i-s<e||(s=i,t(...r))}},t.timeTaken=t=>{console.time("timeTaken");const e=t();return console.timeEnd("timeTaken"),e},t.time_memory_Taken=t=>{const e=Date.now(),s=performance.memory.usedJSHeapSize,r=t();return{elapsedTime:Date.now()-e,usedMemory:performance.memory.usedJSHeapSize-s,result:r}},t.useAnimation=(t,e=Zs.Linear,s=50,r)=>new zs(t,Zs.Linear,50,r),t.useChannel=Xs,t.useCustomEvent=we,t.useEventEmitter=De,t.useFavIcon=Re,t.useFps=t=>1e3/t,t.useHashEvent=t=>new de(t),t.useHead=Ze,t.useInputEvent=t=>new me(t),t.useLocaleStorage=(t,e)=>new Qs(localStorage,t,e),t.useMediaQuery=(t,e)=>new ze(t,e),t.useMeta=$e,t.useRoot=(t,{namespace:e,register:s,ValidateCssProps:r}={})=>new Ks(t,{namespace:e,register:s,ValidateCssProps:r}),t.useSessionStorage=(t,e)=>new Qs(sessionStorage,t,e),t.useSuccesifKeys=(t,e=[],s=(()=>{}))=>{t.cache.stream.enabled.down=!0;const r=e.length,i=t.cache.stream.history.down.slice(-r).map((t=>t.key));e.join("")===i.join("")&&(t.event.preventDefault(),s.call(t,t))},t.useSwipeEvent=xe,t.useThread=(t,e,s)=>{const r=new Gs;return t&&r.call(t,e,s),r},t.useTimeLoop=(t,e,s,r,i)=>new Us(t,e,s,r,i),t.useTitle=Be,t.wait=t=>new Promise((e=>setTimeout(e,t))),t.waitForUIElm=t=>new Promise((e=>{if(t.element)return e(t.element);const s=new MutationObserver((()=>{t.element&&(e(t.element),s.disconnect())}));s.observe(document?.body,{childList:!0,subtree:!0})})),t.waitForUIElmSync=(t,e=2e3)=>{const s=Date.now();for(;Date.now()-s<e;)if(t.element)return t.element},t.watch=(t,e={},s=null)=>{const r=new _e(t,e);return s&&r.observe(s),r},t.watchAttr=Ae,t.watchChildren=Me,t.watchIntersection=Te,t.watchScreen=t=>new Se(t),t.watchSize=Ie,t.zeros=j}));
9
+ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).Ziko={})}(this,(function(t){"use strict";const{PI:e,E:s}=Math,r=Number.EPSILON,{PI:i,cos:n,sin:a,tan:o,acos:h,asin:l,atan:u,cosh:m,sinh:p,tanh:f,acosh:d,asinh:g,atanh:b,log:w}=Math;let y={cos:n,sin:a,tan:o,sinc:t=>a(i*t)/(i*t),sec:t=>1/n(t),csc:t=>1/a(t),cot:t=>1/o(t),acos:h,asin:l,atan:u,acot:t=>i/2-u(t),cosh:m,sinh:p,tanh:f,coth:t=>.5*w((1+t)/(1-t)),acosh:d,asinh:g,atanh:b};y=new Proxy(y,{get(t,e){if(e in t)return s=>+t[e](s).toFixed(15)}});class v{}const x=(t,...e)=>{const s=e.map((e=>{if(null===e)return t(null);if(["number","string","boolean","bigint","undefined"].includes(typeof e))return t(e);if(e instanceof Array)return e.map((e=>x(t,e)));if(ArrayBuffer.isView(e))return e.map((e=>t(e)));if(e instanceof Set)return new Set(x(t,...e));if(e instanceof Map)return new Map([...e].map((e=>[e[0],x(t,e[1])])));if(e instanceof _s)return new _s(e.rows,e.cols,x(e.arr.flat(1)));if(e instanceof ks){const[s,r,i,n]=[e.a,e.b,e.z,e.phi];switch(t){case Math.log:return Ts(Ms(i),n);case Math.exp:return Ts(Is(s)*js(r),Is(s)*Ds(r));case Math.abs:return i;case Math.sqrt:return Ts(Os(i)*js(n/2),Os(i)*Ds(n/2));case y.cos:return Ts(js(s)*Ps(r),-Ds(s)*Ls(r));case y.sin:return Ts(Ds(s)*Ps(r),js(s)*Ls(r));case y.tan:{const t=js(2*s)+Ps(2*r);return Ts(Ds(2*s)/t,Ls(2*r)/t)}case y.cosh:return Ts(Ps(s)*js(r),Ls(s)*Ds(r));case y.sinh:return Ts(Ls(s)*js(r),Ps(s)*Ds(r));case y.tanh:{const t=Ps(2*s)+js(2*r);return Ts(Ls(2*s)/t,Ds(2*r)/t)}default:return t(e)}}else if(e instanceof Object)return Object.fromEntries(Object.entries(e).map((e=>[e[0],x(t,e[1])])))}));return 1==s.length?s[0]:s},_=(t,e)=>{if("number"==typeof t){if("number"==typeof e)return t+e;if(e instanceof ks)return Ts(t+e.a,e.b);if(e instanceof _s)return _s.nums(e.rows,e.cols,t).add(e);if(e instanceof Array)return e.map((e=>O(e,t)))}else{if(t instanceof ks||t instanceof _s)return e instanceof Array?e.map((e=>t.clone.add(e))):t.clone.add(e);if(t instanceof Array){if(!(e instanceof Array))return t.map((t=>O(t,e)));if(t.length===e.length)return t.map(((t,s)=>O(t,e[s])))}}},E=(t,e)=>{if("number"==typeof t){if("number"==typeof e)return t-e;if(e instanceof ks)return Ts(t-e.a,-e.b);if(e instanceof _s)return _s.nums(e.rows,e.cols,t).sub(e);if(e instanceof Array)return e.map((e=>S(e,t)))}else{if(t instanceof ks||t instanceof _s)return e instanceof Array?e.map((e=>t.clone.sub(e))):t.clone.sub(e);if(t instanceof Array){if(!(e instanceof Array))return t.map((t=>S(t,e)));if(e instanceof Array&&t.length===e.length)return t.map(((t,s)=>S(t,e[s])))}}},k=(t,e)=>{if("number"==typeof t){if("number"==typeof e)return t*e;if(e instanceof ks)return Ts(t*e.a,t*e.b);if(e instanceof _s)return _s.nums(e.rows,e.cols,t).mul(e);if(e instanceof Array)return e.map((e=>C(t,e)))}else{if(t instanceof ks||t instanceof _s)return e instanceof Array?e.map((e=>t.clone.mul(e))):t.clone.mul(e);if(t instanceof Array){if(!(e instanceof Array))return t.map((t=>C(t,e)));if(e instanceof Array&&t.length===e.length)return t.map(((t,s)=>C(t,e[s])))}}},T=(t,e)=>{if("number"==typeof t){if("number"==typeof e)return t/e;if(e instanceof ks)return Ts(t/e.a,t/e.b);if(e instanceof _s)return _s.nums(e.rows,e.cols,t).div(e);if(e instanceof Array)return e.map((e=>I(t,e)))}else{if(t instanceof ks||t instanceof _s)return e instanceof Array?e.map((e=>t.clone.div(e))):t.clone.div(e);if(t instanceof Array){if(!(e instanceof Array))return t.map((t=>I(t,e)));if(e instanceof Array&&t.length===e.length)return t.map(((t,s)=>I(t,e[s])))}}},A=(t,e)=>{if("number"==typeof t){if("number"==typeof e)return t%e;if(e instanceof ks)return Ts(t%e.a,t%e.b);if(e instanceof _s)return _s.nums(e.rows,e.cols,t).modulo(e);if(e instanceof Array)return e.map((e=>I(t,e)))}else{if(t instanceof ks||t instanceof _s)return e instanceof Array?e.map((e=>t.clone.div(e))):t.clone.div(e);if(t instanceof Array&&!(e instanceof Array))return t.map((t=>O(t,e)))}},O=(t,...e)=>{var s=t;for(let t=0;t<e.length;t++)s=_(s,e[t]);return s},S=(t,...e)=>{var s=t;for(let t=0;t<e.length;t++)s=E(s,e[t]);return s},C=(t,...e)=>{var s=t;for(let t=0;t<e.length;t++)s=k(s,e[t]);return s},I=(t,...e)=>{var s=t;for(let t=0;t<e.length;t++)s=T(s,e[t]);return s},M=(t,...e)=>{var s=t;for(let t=0;t<e.length;t++)s=A(s,e[t]);return s},j=t=>new Array(t).fill(0),D=t=>new Array(t).fill(1),R=(t,e)=>new Array(e).fill(t),P=(t,e,s)=>{if("number"==typeof t)return e!==s?(t-e)/(s-e):0;if(t instanceof _s)return new _s(t.rows,t.cols,P(t.arr.flat(1),e,s));if(t instanceof ks)return new ks(P(t.a,e,s),P(t.b,e,s));if(t instanceof Array){if(t.every((t=>typeof("number"===t))))return t.map((t=>P(t,e,s)));{let e=new Array(t.length);for(let s=0;s<t.length;s++)e[s]=P(t[s])}}},L=(t,e,s)=>{if("number"==typeof t)return(s-e)*t+e;if(t instanceof _s)return new _s(t.rows,t.cols,L(t.arr.flat(1),e,s));if(t instanceof ks)return new ks(L(t.a,e,s),L(t.b,e,s));if(t instanceof Array){if(t.every((t=>typeof("number"===t))))return t.map((t=>L(t,e,s)));{let e=new Array(t.length);for(let s=0;s<t.length;s++)e[s]=L(t[s])}}},$=(t,e,s,r,i)=>{if("number"==typeof t)return L(P(t,e,s),r,i);if(t instanceof _s)return new _s(t.rows,t.cols,$(t.arr.flat(1),e,s,r,i));if(t instanceof ks)return new ks($(t.a,s,r,i),$(t.b,e,s,r,i));if(t instanceof Array){if(t.every((t=>typeof("number"===t))))return t.map((t=>$(t,e,s,r,i)));{let n=new Array(t.length);for(let a=0;a<t.length;a++)n[a]=$(t[a],e,s,r,i)}}},B=(t,e,s)=>{const[r,i]=[V(e,s),Y(e,s)];if("number"==typeof t)return V(Y(t,r),i);if(t instanceof _s)return new _s(t.rows,t.cols,B(t.arr.flat(1),r,i));if(t instanceof ks)return new ks(B(t.a,r,i),B(t.b,r,i));if(t instanceof Array){if(t.every((t=>typeof("number"===t))))return t.map((t=>B(t,r,i)));{let e=new Array(t.length);for(let s=0;s<t.length;s++)e[s]=B(t[s],r,i)}}},z=(t,e,s,r=!1)=>{let i=[];if(t<e)for(let n=t;r?n<=e:n<e;n+=s)i.push(10*n/10);else for(let n=t;r?n>=e:n>e;n-=s)i.push(10*n/10);return i},N=(t,e,s=As(e-t)+1,r=!0)=>{if(Math.floor(s)===s){if([t,e].every((t=>"number"==typeof t))){const[a,o]=[t,e].sort(((t,e)=>e-t));var i=[];let h;h=r?(a-o)/(s-1):(a-o)/s;for(var n=0;n<s;n++)t<e?i.push(o+h*n):i.push(a-h*n);return i}if([t,e].some((t=>t instanceof ks))){const i=Ts(t),n=Ts(e);s=s||Math.abs(i.a-n.a)+1;const a=N(i.a,n.a,s,r),o=N(i.b,n.b,s,r);let h=new Array(s).fill(null);return h=h.map(((t,e)=>Ts(a[e],o[e]))),h}}},Z=(t,e,r=e-t+1,i=s,n=!0)=>N(t,e,r,n).map((t=>Ss(i,t))),H=(t,e,s=As(e-t)+1,r=!0)=>{if(Math.floor(s)===s){if([t,e].every((t=>"number"==typeof t))){const[i,n]=[t,e].sort(((t,e)=>e-t));let a;a=Cs(i/n,r?s-1:s);const o=[n];for(let t=1;t<s;t++)o.push(o[t-1]*a);return t<e?o:o.reverse()}if([t,e].some((t=>t instanceof ks))){const i=Ts(t),n=Ts(e);let a;s=s||Math.abs(i.a-n.a)+1,a=Cs(n.div(i),r?s-1:s);const o=[i];for(let t=1;t<s;t++)o.push(C(o[t-1],a));return o}}},F=(...t)=>mapfun((t=>t*Math.PI/180),...t),U=(...t)=>mapfun((t=>t/Math.PI*180),...t),W=(...t)=>{if(t.every((t=>"number"==typeof t))){let e=t[0];for(let s=1;s<t.length;s++)e+=t[s];return e}const e=[];for(let s=0;s<t.length;s++)t[s]instanceof Array?e.push(W(...t[s])):t[s]instanceof Object&&e.push(W(...Object.values(t[s])));return 1===e.length?e[0]:e},q=(...t)=>{if(t.every((t=>"number"==typeof t))){let e=t[0];for(let s=1;s<t.length;s++)e*=t[s];return e}const e=[];for(let s=0;s<t.length;s++)t[s]instanceof Array?e.push(q(...t[s])):t[s]instanceof Object&&e.push(q(...Object.values(t[s])));return 1===e.length?e[0]:e},V=(...t)=>{if(t.every((t=>"number"==typeof t)))return Math.min(...t);const e=[];for(let s=0;s<t.length;s++)t[s]instanceof Array?e.push(V(...t[s])):t[s]instanceof Object&&e.push(Object.fromEntries([Object.entries(t[s]).sort(((t,e)=>t[1]-e[1]))[0]]));return 1===e.length?e[0]:e},Y=(...t)=>{if(t.every((t=>"number"==typeof t)))return Math.max(...t);const e=[];for(let s=0;s<t.length;s++)t[s]instanceof Array?e.push(V(...t[s])):t[s]instanceof Object&&e.push(Object.fromEntries([Object.entries(t[s]).sort(((t,e)=>e[1]-t[1]))[0]]));return 1===e.length?e[0]:e},G=(...t)=>{if(t.every((t=>"number"==typeof t))){let e=t.reduce(((t,e)=>[...t,t[t.length-1]+e]),[0]);return e.shift(),e}const e=[];for(let s=0;s<t.length;s++)t[s]instanceof Array?e.push(G(...t[s])):t[s]instanceof Object&&e.push(null);return 1===e.length?e[0]:e},X=(t,e,s)=>{const[r,i]=[Math.min(e,s),Math.max(e,s)];return t>=r&&t<=i},K=(t,e,s=1e-4)=>Math.abs(t-e)<=s,Q=(t,e)=>t.reduce(((t,s)=>[...t,...e.map((t=>[s,t]))]),[]),J=(t,e)=>{let s,r=1;if(t==$s(t)&&e==$s(e)){for(s=2;s<=t&&s<=e;++s)t%s==0&&e%s==0&&(r=s);return r}console.log("error")},tt=(t,e)=>{let s;if(t==$s(t)&&e==$s(e)){for(s=t>e?t:e;s%t!=0||s%e!=0;)++s;return s}console.log("error")},et={add:O,sub:S,mul:C,div:I,modulo:M,zeros:j,ones:D,nums:R,norm:P,lerp:L,map:$,clamp:B,arange:z,linspace:N,logspace:Z,geomspace:H,sum:W,prod:q,accum:G,cartesianProduct:Q,ppcm:tt,pgcd:J,deg2rad:F,rad2deg:U,inRange:X,isApproximatlyEqual:K},st={_mode:Number,_map:function(t,e,s){return e instanceof _s?new _s(e.rows,e.cols,e.arr.flat(1).map((e=>t(e,s)))):e instanceof ks?new ks(t(e.a,s),t(e.b,s)):e instanceof Array?e.map((e=>t(e,s))):void 0},dec2base(t,e){return this._mode=e<=10?Number:String,"number"==typeof t?this._mode((t>>>0).toString(e)):this._map(this.dec2base,t,e)},dec2bin(t){return this.dec2base(t,2)},dec2oct(t){return this.dec2base(t,8)},dec2hex(t){return this.dec2base(t,16)},bin2base(t,e){return this.dec2base(this.bin2dec(t),e)},bin2dec(t){return this._mode("0b"+t)},bin2oct(t){return this.bin2base(t,8)},bin2hex(t){return this.bin2base(t,16)},oct2dec(t){return this._mode("0o"+t)},oct2bin(t){return this.dec2bin(this.oct2dec(t))},oct2hex(t){return this.dec2hex(this.oct2dec(t))},oct2base(t,e){return this.dec2base(this.oct2dec(t),e)},hex2dec(t){return this._mode("0x"+t)},hex2bin(t){return this.dec2bin(this.hex2dec(t))},hex2oct(t){return this.dec2oct(this.hex2dec(t))},hex2base(t,e){return this.dec2base(this.hex2dec(t),e)},IEEE32toDec(t){let e=t.split(" ").join("").padEnd(32,"0"),s=e[0],r=2**(+("0b"+e.slice(1,9))-127);return(-1)**s*(1+e.slice(9,32).split("").map((t=>+t)).map(((t,e)=>t*2**(-e-1))).reduce(((t,e)=>t+e),0))*r},IEEE64toDec(t){let e=t.split(" ").join("").padEnd(64,"0"),s=e[0],r=2**(+("0b"+e.slice(1,12))-1023);return(-1)**s*(1+e.slice(13,64).split("").map((t=>+t)).map(((t,e)=>t*2**(-e-1))).reduce(((t,e)=>t+e),0))*r}},rt={_mode:Number,_map:function(t,e,s){return e instanceof _s?new _s(e.rows,e.cols,e.arr.flat(1).map((e=>t(e,s)))):e instanceof ks?new ks(t(e.a,s),t(e.b,s)):e instanceof Array?e.map((e=>t(e,s))):void 0},not:function(t){return["number","boolean"].includes(typeof t)?rt._mode(!t):this._map(this.not,t)},and:function(t,...e){return["number","boolean"].includes(typeof t)?rt._mode(e.reduce(((t,e)=>t&e),t)):this._map(this.and,t,e)},or:function(t,...e){return["number","boolean"].includes(typeof t)?rt._mode(e.reduce(((t,e)=>t|e),t)):this._map(this.or,t,e)},nand:function(t,...e){return this.not(this.and(t,e))},nor:function(t,...e){return this.not(this.or(t,e))},xor:function(t,...e){let s=[t,...e];return["number","boolean"].includes(typeof t)?this._mode(1===s.reduce(((t,e)=>(1==+e&&(t+=1),t)),0)):this._map(this.xor,t,e)},xnor:function(t,...e){return rt.not(rt.xor(t,e))}};class it{static withDiscount(t,e){if(1===e)return t.map((t=>[t]));const s=[];return t.forEach(((r,i)=>{this.withDiscount(t.slice(i),e-1).forEach((t=>{s.push([r].concat(t))}))})),s}static withoutDiscount(t,e){if(1===e)return t.map((t=>[t]));const s=[];return t.forEach(((r,i)=>{this.withoutDiscount(t.slice(i+1),e-1).forEach((t=>{s.push([r].concat(t))}))})),s}}class nt{static float(t=1,e){return e?Math.random()*(e-t)+t:t*Math.random()}static int(t,e){return Math.floor(this.float(t,e))}static char(t){t=t??this.bool();const e=String.fromCharCode(this.int(97,120));return t?e.toUpperCase():e}static bool(){return[!1,!0][Math.floor(2*Math.random())]}static string(t,e){return t instanceof Array?new Array(this.int(...t)).fill(0).map((()=>this.char(e))).join(""):new Array(t).fill(0).map((()=>this.char(e))).join("")}static bin(){return this.int(2)}static oct(){return this.int(8)}static dec(){return this.int(8)}static hex(){return this.int(16)}static choice(t=[1,2,3],e=new Array(t.length).fill(1/t.length)){let s=new Array(100);e=et.accum(...e).map((t=>100*t)),s.fill(t[0],0,e[0]);for(let r=1;r<t.length;r++)s.fill(t[r],e[r-1],e[r]);return s[this.int(s.length-1)]}static shuffleArr(t){return t.sort((()=>.5-Math.random()))}static shuffleMatrix(t){const{rows:e,cols:s,arr:r}=t;return Es(e,s,r.flat().sort((()=>.5-Math.random())))}static floats(t,e,s){return new Array(t).fill(0).map((()=>this.float(e,s)))}static ints(t,e,s){return new Array(t).fill(0).map((()=>this.int(e,s)))}static bools(t){return new Array(t).fill(0).map((()=>this.bool()))}static bins(t){return new Array(t).fill(0).map((()=>this.int(2)))}static octs(t){return new Array(t).fill(0).map((()=>this.int(8)))}static decs(t){return new Array(t).fill(0).map((()=>this.int(10)))}static hexs(t){return new Array(t).fill(0).map((()=>this.int(16)))}static choices(t,e,s){return new Array(t).fill(0).map((()=>this.choice(e,s)))}static perm(...t){return t.permS[this.int(t.length)]}static color(){return"#"+st.dec2hex(this.float(16777216)).padStart(6,0)}static colors(t){return new Array(t).fill(null).map((()=>this.color()))}static complex(t=[0,1],e=[0,1]){return t instanceof Array?new ks(this.float(t[0],t[1]),this.float(e[0],e[1])):new ks(...this.floats(2,t,e))}static complexInt(t=[0,1],e=[0,1]){return new ks(this.int(t[0],t[1]),this.int(e[0],e[1]))}static complexBin(){return new ks(...this.bins(2))}static complexOct(){return new ks(...this.octs(2))}static complexDec(){return new ks(...this.decs(10))}static complexHex(){return new ks(...this.octs(2))}static complexes(t,e=0,s=1){return new Array(t).fill(0).map((()=>this.complex(e,s)))}static complexesInt(t,e=0,s=1){return new Array(t).fill(0).map((()=>this.complexInt(e,s)))}static complexesBin(t){return new Array(t).fill(0).map((()=>this.complexBin()))}static complexesOct(t){return new Array(t).fill(0).map((()=>this.complexOct()))}static complexesDec(t){return new Array(t).fill(0).map((()=>this.complexDec()))}static complexesHex(t){return new Array(t).fill(0).map((()=>this.complexHex()))}static matrix(t,e,s,r){return Es(t,e,this.floats(t*e,s,r))}static matrixInt(t,e,s,r){return Es(t,e,this.ints(t*e,s,r))}static matrixBin(t,e){return Es(t,e,this.bins(t*e))}static matrixOct(t,e){return Es(t,e,this.octs(t*e))}static matrixDec(t,e){return Es(t,e,this.decs(t*e))}static matrixHex(t,e){return Es(t,e,this.hex(t*e))}static matrixColor(t,e){return Es(t,e,this.colors(t*e))}static matrixComplex(t,e,s,r){return Es(t,e,this.complexes(t*e,s,r))}static matrixComplexInt(t,e,s,r){return Es(t,e,this.complexesInt(t*e,s,r))}static matrixComplexBin(t,e){return Es(t,e,this.complexesBin(t*e))}static matrixComplexOct(t,e){return Es(t,e,this.complexesBin(t*e))}static matrixComplexDec(t,e){return Es(t,e,this.complexesBin(t*e))}static matrixComplexHex(t,e){return Es(t,e,this.complexesBin(t*e))}}const at=(t,e=",")=>t.trim().trimEnd().split("\n").map((t=>t.split(e))),ot=(t,e=",")=>{const[s,...r]=at(t,e);return r.map((t=>{const e={};return s.forEach(((s,r)=>{e[s]=t[r]})),e}))},ht=t=>t instanceof Array?[Object.keys(t[0]),...t.map((t=>Object.values(t)))]:[Object.keys(t)],ct=(t,e)=>ht(t).map((t=>t.join(e))).join("\n"),lt=(t,e=",")=>ct(t instanceof Object?t:JSON.parse(t),e),ut=(t,e)=>{const s=[];if(Array.isArray(t))t.forEach((t=>{if("object"==typeof t&&null!==t){s.push(`${e}-`);const r=ut(t,`${e} `);s.push(...r)}else s.push(`${e}- ${t}`)}));else for(const r in t)if(t.hasOwnProperty(r)){const i=t[r];if("object"==typeof i&&null!==i){s.push(`${e}${r}:`);const t=ut(i,`${e} `);s.push(...t)}else s.push(`${e}${r}: ${i}`)}return s},mt=(t,e="")=>ut(t,e).join("\n"),pt=(t,e)=>mt(t instanceof Object?t:JSON.parse(t),e),ft=(t,e=1)=>{let s="";for(const r in t)if(t.hasOwnProperty(r)){const i=t[r];s+="\n"+" ".repeat(e)+`<${r}>`,s+="object"==typeof i?ft(i,e+2):`${i}`,s+=`</${r}>`}return s.trim()};class dt{constructor(t){this.cache={node:t}}isZikoUINode(){return!0}get node(){return this.cache.node}}function gt(t,...e){e.forEach((e=>function(t,e){const s=Object.getOwnPropertyDescriptors(e);for(const e of Reflect.ownKeys(s)){const r=s[e];"get"in r||"set"in r||"function"!=typeof r.value?Object.defineProperty(Object.getPrototypeOf(t),e,r):"function"==typeof r.value&&(Object.getPrototypeOf(t).hasOwnProperty(e)||Object.defineProperty(Object.getPrototypeOf(t),e,r))}}(t,e)))}function bt(t,...e){e.forEach((e=>function(t,e){const s=Object.getOwnPropertyDescriptors(e);for(const e of Reflect.ownKeys(s)){const r=s[e];"get"in r||"set"in r?Object.defineProperty(t,e,r):"function"==typeof r.value?t[e]=r.value.bind(t):t[e]=r.value}}(t,e)))}globalThis.node=t=>new dt(t);function wt(t){let e=t;const s=new Set;let r=!1;return[function(){return{value:e,isStateGetter:()=>!0,_subscribe:t=>{s.add(t)}}},function(t){r||("function"==typeof t&&(t=t(e)),t!==e&&(e=t,s.forEach((t=>t(e)))))},{pause:()=>{r=!0},resume:()=>{r=!1},clear:()=>{s.clear()},force:t=>{"function"==typeof t&&(t=t(e)),e=t,s.forEach((t=>t(e)))},getSubscribers:()=>new Set(s)}]}const yt=t=>"function"==typeof t&&t?.()?.isStateGetter?.(),vt=(t="")=>t.replace(/[A-Z]/g,(t=>"-"+t.toLowerCase())),xt=(t="")=>{if(0===t.length)return!1;return/^[a-z][a-zA-Z0-9]*$/.test(t)},_t={setAttr(t,e){if(t instanceof Object){const[s,r]=[Object.keys(t),Object.values(t)];for(let t=0;t<s.length;t++)r[t]instanceof Array&&(e[t]=r[t].join(" ")),Et.call(this,s[t],r[t])}else e instanceof Array&&(e=e.join(" ")),Et.call(this,t,e);return this},removeAttr(...t){for(let e=0;e<t.length;e++)this.element?.removeAttribute(t[e]);return this},getAttr(t){return t=xt(t)?vt(t):t,this.element.attributes[t].value},setContentEditable(t=!0){return this.setAttr("contenteditable",t),this}};function Et(t,e){if("svg"!==this.element?.tagName&&(t=xt(t)?vt(t):t),!this?.attr[t]||this?.attr[t]!==e){if(yt(e)){e()._subscribe((e=>this.element?.setAttribute(t,e)),this)}else this.element?.setAttribute(t,e);Object.assign(this.cache.attributes,{[t]:e})}}class kt extends dt{constructor(...t){super("span","text",!1,...t),this.element=globalThis?.document?.createTextNode(...t)}isText(){return!0}}const Tt=(...t)=>new kt(...t),At={append(...t){return Ot.call(this,"append","push",...t),this},prepend(...t){return this.__addItem__.call(this,"prepend","unshift",...t),this},insertAt(t,...e){if(t>=this.element.children.length)this.append(...e);else for(let s=0;s<e.length;s++)["number","string"].includes(typeof e[s])&&(e[s]=Tt(e[s])),this.element?.insertBefore(e[s].element,this.items[t].element),this.items.splice(t,0,e[s]);return this},remove(...t){const e=t=>{"number"==typeof t&&(t=this.items[t]),t?.isZikoUIElement&&this.element?.removeChild(t.element),this.items=this.items.filter((e=>e!==t))};for(let s=0;s<t.length;s++)e(t[s]);for(let t=0;t<this.items.length;t++)Object.assign(this,{[[t]]:this.items[t]});return this},clear(){return this?.items?.forEach((t=>t.unrender())),this.element.innerHTML="",this},render(t=this.target){if(!this.isBody)return t?.isZikoUIElement&&(t=t.element),this.target=t,this.target?.appendChild(this.element),this},unrender(){return this.cache.parent?this.cache.parent.remove(this):this.target?.children?.length&&[...this.target?.children].includes(this.element)&&this.target.removeChild(this.element),this},renderAfter(t=1){return setTimeout((()=>this.render()),t),this},unrenderAfter(t=1){return setTimeout((()=>this.unrender()),t),this},after(t){return t?.isZikoUIElement&&(t=t.element),this.element?.after(t),this},before(t){return t?.isZikoUIElement&&(t=t.element),this.element?.before(t),this}};function Ot(t,e,...s){if(this.cache.isFrozzen)return console.warn("You can't append new item to frozzen element"),this;for(let r=0;r<s.length;r++){if(["number","string"].includes(typeof s[r])&&(s[r]=Tt(s[r])),s[r]instanceof Function){const t=s[r]();t.isStateGetter&&(s[r]=Tt(t.value),t._subscribe((t=>s[r].element.textContent=t),s[r]))}"function"==typeof globalThis?.Node&&s[r]instanceof globalThis?.Node&&(s[r]=new this.constructor(s[r])),s[r]?.isZikoUINode?(s[r].cache.parent=this,this.element?.[t](s[r].element),s[r].target=this.element,this.items[e](s[r])):s[r]instanceof Object&&(s[r]?.style&&this.style(s[r]?.style),s[r]?.attr&&Object.entries(s[r].attr).forEach((t=>this.setAttr(""+t[0],t[1]))))}return this.maintain(),this}const St={Click:["Click","DblClick"],Ptr:["PtrMove","PtrDown","PtrUp","PtrLeave","PtrEnter","PtrOut","PtrCancel"],Mouse:["MouseMove","MouseDown","MouseUp","MouseEnter","MouseLeave","MouseOut"],Key:["KeyDown","KeyPress","KeyUp"],Clipboard:["Copy","Cut","Paste"],Focus:["focus","blur"],Drag:["Drag","DragStart","DragEnd","Drop"],Wheel:["Wheel"]},Ct=(t="")=>t.startsWith("Ptr")?`pointer${t.split("Ptr")[1].toLowerCase()}`:t.toLowerCase();function It(t,e,s,r,i){this.cache.currentEvent=e,this.cache.event=t,s?.call(this),r?.hasOwnProperty("prototype")?r?.call(this):r?.call(null,this),this.cache.preventDefault[e]&&t.preventDefault(),this.cache.stopPropagation[e]&&t.stopPropagation(),this.cache.stopImmediatePropagation[e]&&t.stopImmediatePropagation(),this.cache.stream.enabled[e]&&i&&this.cache.stream.history[e].push(i),this.cache.callbacks[e]?.map((t=>t(this)))}class Mt{constructor(t=null,e=[],s,r){this.target=t,this.cache={currentEvent:null,event:null,options:{},preventDefault:{},stopPropagation:{},stopImmediatePropagation:{},event_flow:{},paused:{},stream:{enabled:{},clear:{},history:{}},callbacks:{},__controllers__:{}},e&&this._register_events(e,s,r)}_register_events(t,e,s,r=!0){const i=t?.map((t=>Ct(t)));return i?.forEach(((i,n)=>{Object.assign(this.cache.preventDefault,{[i]:!1}),Object.assign(this.cache.options,{[i]:{}}),Object.assign(this.cache.paused,{[i]:!1}),Object.assign(this.cache.stream.enabled,{[i]:!1}),Object.assign(this.cache.stream.clear,{[i]:!1}),Object.assign(this.cache.stream.history,{[i]:[]}),Object.assign(this.cache.__controllers__,{[i]:t=>It.call(this,t,i,e,s)}),r&&Object.assign(this,{[`on${t[n]}`]:(...t)=>this.__onEvent(i,this.cache.options[i],{},...t)})})),this}get targetElement(){return this.target?.element}get isParent(){return this.target?.element===this.event.srcElement}get item(){return this.target.find((t=>t.element==this.event?.srcElement))?.[0]}get currentEvent(){return this.cache.currentEvent}get event(){return this.cache.event}setTarget(t){return this.target=t,this}__handle(t,e,s,r){return this.targetElement?.addEventListener(t,e,s),this}__onEvent(t,e,s,...r){if(0===r.length){if(console.log("00"),!this.cache.callbacks[t])return this;console.log("Call"),this.cache.callbacks[t].map((t=>e=>t.call(this,e)))}else this.cache.callbacks[t]=r.map((t=>e=>t.call(this,e)));return this.__handle(t,this.cache.__controllers__[t],e,s),this}#t(t,e,s){"default"===s&&Object.assign(this.cache[t],{...this.cache[t],...e});const r="default"===s?this.cache[t]:Object.fromEntries(Object.keys(this.cache.preventDefault).map((t=>[t,s])));return Object.assign(this.cache[t],{...r,...e}),this}preventDefault(t={},e="default"){return this.#t("preventDefault",t,e),this}stopPropagation(t={},e="default"){return this.#t("stopPropagation",t,e),this}stopImmediatePropagation(t={},e="default"){return this.#t("stopImmediatePropagation",t,e),this}setEventOptions(t,e){return this.pause({[t]:!0},"default"),Object.assign(this.cache.options[Ct(t)],e),this.resume({[t]:!0},"default"),this}pause(t={},e="default"){t={..."default"===e?this.cache.stream.enabled:Object.entries(Object.keys(this.cache.stream.enabled).map((t=>[t,e]))),...t};for(let e in t)t[e]&&(this.targetElement?.removeEventListener(e,this.cache.__controllers__[e],this.cache.options[e]),this.cache.paused[e]=!0);return this}resume(t={},e="default"){t={..."default"===e?this.cache.stream.enabled:Object.entries(Object.keys(this.cache.stream.enabled).map((t=>[t,e]))),...t};for(let e in t)t[e]&&(this.targetElement?.addEventListener(e,this.cache.__controllers__[e],this.cache.options[e]),this.cache.paused[e]=!1);return this}stream(t={},e="default"){this.cache.stream.t0=Date.now();return t={...Object.fromEntries(Object.keys(this.cache.stream.enabled).map((t=>[t,e]))),...t},Object.assign(this.cache.stream.enabled,t),this}clear(){return this}dispose(t={},e="default"){return this.pause(t,e),this}}class jt extends Mt{constructor(t,e){super(t,St.Click,Dt,e)}}function Dt(){"click"===this.currentEvent?this.dx=0:this.dx=1}const Rt=(t,e)=>new jt(t,e);class Pt extends Mt{constructor(t,e){super(t,St.Clipboard,Lt,e)}}function Lt(){}const $t=(t,e)=>new Pt(t,e);class Bt extends Mt{constructor(t,e,s){super(t,e,zt,s)}_register_events(t){return super._register_events(t,null,null,!1),this}emit(t,e={}){const s=new Event(t);return this.targetElement.dispatchEvent(s),this}on(t,...e){return this.cache.options.hasOwnProperty(t)||this._register_events([t]),this.__onEvent(t,this.cache.options[t],{},...e),this}}function zt(){}class Nt extends Mt{constructor(t,e){super(t,St.Drag,Zt,e)}}function Zt(){}const Ht=(t,e)=>new Nt(t,e);class Ft extends Mt{constructor(t,e){super(t,St.Focus,Ut,e)}}function Ut(){}const Wt=(t,e)=>new Ft(t,e);let qt=class extends Mt{constructor(t,e){super(t,St.Hash,Vt,e)}};function Vt(){}class Yt extends Mt{constructor(t,e){super(t,St.Key,Gt,e)}}function Gt(){switch(this.currentEvent){case"keydown":this.kd=this.event.key;break;case"keypress":this.kp=this.event.key;break;case"keyup":this.ku=this.event.key}}const Xt=(t,e)=>new Yt(t,e);class Kt extends Mt{constructor(t,e){super(t,St.Mouse,Qt,e)}}function Qt(){}const Jt=(t,e)=>new Kt(t,e);class te extends Mt{constructor(t,e){super(t,St.Ptr,ee,e),this.isDown=!1}}function ee(){switch(this.currentEvent){case"pointerdown":this.dx=parseInt(this.event.offsetX),this.dy=parseInt(this.event.offsetY),this.isDown=!0;break;case"pointermove":this.mx=parseInt(this.event.offsetX),this.my=parseInt(this.event.offsetY),this.isMoving=!0;break;case"pointerup":{this.ux=parseInt(this.event.offsetX),this.uy=parseInt(this.event.offsetY),this.isDown=!1,console.log(this.target.width);const t=(this.ux-this.dx)/this.target.width,e=(this.dy-this.uy)/this.target.height,s=t<0?"left":t>0?"right":"none",r=e<0?"bottom":e>0?"top":"none";this.swippe={h:s,v:r,delta_x:t,delta_y:e}}}}const se=(t,e)=>new te(t,e);class re extends Mt{constructor(t,e){super(t,St.Touch,ie,e)}}function ie(){}class ne extends Mt{constructor(t,e){super(t,St.Wheel,ae,e)}}function ae(){}const oe=(t,e)=>new ne(t,e),he={ptr:se,mouse:Jt,key:Xt,click:Rt,drag:Ht,clipboard:$t,focus:Wt,wheel:oe},ce={};Object.entries(St).forEach((([t,e])=>{e.forEach((e=>{const s=`on${e}`;ce[s]=function(...e){return this.events[t]||(this.events[t]=he[t.toLowerCase()](this)),this.events[t][s](...e),this}}))}));const le={at(t){return this.items.at(t)},forEach(t){return this.items.forEach(t),this},map(t){return this.items.map(t)},find(t){return this.items.filter(t)}},ue={style(t){for(let e in t){const s=t[e];if(yt(s)){const t=s();Object.assign(this.element.style,{[e]:t.value}),t._subscribe((t=>{console.log({newValue:t}),Object.assign(this.element.style,{[e]:t})}))}else Object.assign(this.element.style,{[e]:s})}return this},size(t,e){return this.style({width:t,height:e})},hide(){},show(){},animate(t,{duration:e=1e3,iterations:s=1,easing:r="ease"}={}){return this.element?.animate(t,{duration:e,iterations:s,easing:r}),this}};function me(t,e,s,r){return this.event=t,this.cache.preventDefault[e]&&t.preventDefault(),console.log({setter:s}),s&&s(),this.cache.stream.enabled[e]&&r&&this.cache.stream.history[e].push(r),this.cache.callbacks[e].map((t=>t(this))),this}class pe{constructor(t){this.target=null,this.setTarget(t),this.__dispose=this.dispose.bind(this)}get targetElement(){return this.target.element}setTarget(t){return this.target=t,this}__handle(t,e,s){const r="drag"===t?t:`${this.cache.prefixe}${t}`;return this.dispose(s),this.targetElement?.addEventListener(r,e),this}__onEvent(t,e,...s){if(0===s.length){if(!(this.cache.callbacks.length>1))return this;this.cache.callbacks.map((t=>e=>t.call(this,e)))}else this.cache.callbacks[t]=s.map((t=>e=>t.call(this,e)));return this.__handle(t,this.__controller[t],e),this}preventDefault(t={}){return Object.assign(this.cache.preventDefault,t),this}pause(t={}){t={...Object.fromEntries(Object.keys(this.cache.stream.enabled).map((t=>[t,!0]))),...t};for(let e in t)t[e]&&(this.targetElement?.removeEventListener(`${this.cache.prefixe}${e}`,this.__controller[`${this.cache.prefixe}${e}`]),this.cache.paused[`${this.cache.prefixe}${e}`]=!0);return this}resume(t={}){t={...Object.fromEntries(Object.keys(this.cache.stream.enabled).map((t=>[t,!0]))),...t};for(let e in t)t[e]&&(this.targetElement?.addEventListener(`${this.cache.prefixe}${e}`,this.__controller[`${this.cache.prefixe}${e}`]),this.cache.paused[`${this.cache.prefixe}${e}`]=!1);return this}dispose(t={}){return this.pause(t),this}stream(t={}){this.cache.stream.t0=Date.now();return t={...Object.fromEntries(Object.keys(this.cache.stream.enabled).map((t=>[t,!0]))),...t},Object.assign(this.cache.stream.enabled,t),this}clear(t={}){t={...Object.fromEntries(Object.keys(this.cache.stream.clear).map((t=>[t,!0]))),...t};for(let e in t)t[e]&&(this.cache.stream.history[e]=[]);return this}}function fe(t){me.call(this,t,"input",null,null)}function de(t){me.call(this,t,"change",null,null)}class ge extends pe{constructor(t){super(t),this.event=null,this.cache={prefixe:"",preventDefault:{input:!1,change:!1},paused:{input:!1,change:!1},stream:{enabled:{input:!1,change:!1},clear:{input:!1,change:!1},history:{input:[],change:[]}},callbacks:{input:[],change:[]}},this.__controller={input:fe.bind(this),change:de.bind(this)}}get value(){return this.target.value}onInput(...t){return this.__onEvent("input",{},...t),this}onChange(...t){return this.__onEvent("change",{},...t),this}}function be(t){me.call(this,t,"hashchange",null,null)}class we extends pe{constructor(t){super(t),this.event=null,this.cache={prefixe:"",preventDefault:{hashchange:!1},paused:{hashchange:!1},stream:{enabled:{hashchange:!1},clear:{hashchange:!1},history:{hashchange:[]}},callbacks:{hashchange:[]}},this.__controller={hashchange:be.bind(this)}}onChange(...t){return this.__onEvent("hashchange",{},...t),this}}const ye=t=>function(e){me.call(this,e,t,null,null)};class ve extends pe{constructor(t){super(t),this.event=null,this.cache={prefixe:"",preventDefault:{},paused:{},stream:{enabled:{},clear:{},history:{}},callbacks:{}},this.__controller={}}#e(t){return this.cache.preventDefault[t]=!1,this.cache.paused[t]=!1,this.cache.stream.enabled=!1,this.cache.stream.clear=!1,this.cache.stream.history=[],this.cache.callbacks[t]=[],this.__controller[t]=ye(t).bind(this),this}on(t,...e){return this.__controller[t]||this.#e(t),this.__onEvent(t,{},...e),this}emit(t,e={}){this.__controller[t]||this.#e(t),this.detail=e;const s=new Event(t);return this.targetElement.dispatchEvent(s),this}}const xe=t=>new ve(t);class _e extends pe{constructor(t,e=.3,s=.3){super(t);const{removeListener:r,setWidthThreshold:i,setHeightThreshold:n}=function(t,e=.5,s=.5,r,i){let n=L(e,0,r),a=L(s,0,i),o=0,h=0,c=0,l=0;const u=t=>{o=t.clientX,h=t.clientY},m=t=>{c=t.clientX,l=t.clientY,p()};function p(){const t=c-o,e=l-h;(Math.abs(t)>n||Math.abs(e)>a)&&f(t,e)}function f(e,s){const o=globalThis?.CustomEvent?new CustomEvent("swipe",{detail:{deltaX:As(e)<n?0:zs(e)*P(As(e),0,r),deltaY:As(s)<a?0:zs(s)*P(As(s),0,i),direction:{x:As(e)<n?"none":e>0?"right":"left",y:As(s)<a?"none":s>0?"down":"up"}}}):null;t?.dispatchEvent(o)}function d(t){n=L(t,0,r)}function g(t){a=L(t,0,i)}return t?.addEventListener("pointerdown",u),t?.addEventListener("pointerup",m),{removeListener(){t?.removeEventListener("pointerdown",u),t?.removeEventListener("pointerup",m),console.log("Swipe event listeners removed")},setWidthThreshold:d,setHeightThreshold:g}}(this.target?.element,e,s,this.target.width,this.target.height);this.cache={width_threshold:e,height_threshold:s,removeListener:r,setWidthThreshold:i,setHeightThreshold:n,legacyTouchAction:globalThis?.document?.body?.style?.touchAction,prefixe:"",preventDefault:{swipe:!1},paused:{swipe:!1},stream:{enabled:{swipe:!1},clear:{swipe:!1},history:{swipe:[]}},callbacks:{swipe:[]}},this.__controller={swipe:Ee.bind(this)}}onSwipe(...t){return Object.assign(globalThis?.document?.body?.style,{touchAction:"none"}),this.__onEvent("swipe",{},...t),this}updateThresholds(t=this.cache.width_threshold,e=this.cache.height_threshold){return void 0!==t&&this.cache.setWidthThreshold(t),void 0!==e&&this.cache.setHeightThreshold(e),this}destroy(){return this.cache.removeListener(),Object.assign(globalThis?.document?.body?.style,{touchAction:this.cache.legacyTouchAction}),this}}function Ee(t){me.call(this,t,"swipe",null,null)}const ke=(t,e,s)=>new _e(t,e,s);class Te{constructor(t,e){this.target=t,this.observer=null,this.cache={options:e||{attributes:!0,childList:!0,subtree:!0},streamingEnabled:!0,lastMutation:null,mutationHistory:{}},this.observeCallback=(t,e)=>{if(this.cache.streamingEnabled)for(const e of t)switch(e.type){case"attributes":this.cache.mutationHistory.attributes.push(e.target.getAttribute(e.attributeName));break;case"childList":this.cache.mutationHistory.childList.push(e);break;case"subtree":this.cache.mutationHistory.subtree.push(e)}this.callback&&this.callback(t,e)}}observe(t){if(!this.observer){if(!globalThis.MutationObserver)return void console.log("MutationObserver Nor Supported");this.observer=new MutationObserver(this.cache.observeCallback),this.observer.observe(this.target.element,this.cache.options),this.callback=([e])=>t.call(e,this),this.cache.streamingEnabled=!0}}pause(t){this.observer&&(this.observer.disconnect(),t&&this.observer.observe(this.target,t))}reset(t){this.observer&&(this.observer.disconnect(),this.observer.observe(this.target,t||this.cache.options))}clear(){return this.observer&&(this.observer.disconnect(),this.observer=null,this.cache.mutationHistory={attributes:[],childList:[],subtree:[]}),this.cache.streamingEnabled=!1,this}getMutationHistory(){return this.cache.mutationHistory}enableStreaming(){return this.cache.streamingEnabled=!0,this}disableStreaming(){return this.cache.streamingEnabled=!1,this}}class Ae extends Te{constructor(t,e){super(t,{attributes:!0,childList:!1,subtree:!1}),Object.assign(this.cache,{observeCallback:(t,e)=>{for(const e of t)this.cache.lastMutation={name:e.attributeName,value:e.target.getAttribute(e.attributeName)},this.cache.streamingEnabled&&this.cache.mutationHistory.attributes.push(this.cache.lastMutation);this.callback&&this.callback(t,e)}}),this.cache.mutationHistory.attributes=[],e&&this.observe(e)}get history(){return this.cache.mutationHistory.attributes}}const Oe=(t,e)=>new Ae(t,e);class Se extends Te{constructor(t,e){super(t,{attributes:!1,childList:!0,subtree:!1}),Object.assign(this.cache,{observeCallback:(t,e)=>{for(const e of t)e.addedNodes?this.cache.lastMutation={type:"add",item:this.target.find((t=>t.element===e.addedNodes[0]))[0],previous:this.target.find((t=>t.element===e.previousSibling))[0]}:e.addedNodes&&(this.cache.lastMutation={type:"remove",item:this.target.find((t=>t.element===e.removedNodes[0]))[0],previous:this.target.find((t=>t.element===e.previousSibling))[0]}),this.cache.streamingEnabled&&this.cache.mutationHistory.children.push(this.cache.lastMutation);this.callback&&this.callback(t,e)}}),this.cache.mutationHistory.children=[],e&&this.observe(e)}get item(){return this.cache.lastMutation.item}get history(){return this.cache.mutationHistory.children}}const Ce=(t,e)=>new Se(t,e);class Ie{constructor(t,e,{threshold:s=0,margin:r=0}={}){this.target=t,this.config={threshold:s,margin:r},globalThis.IntersectionObserver?this.observer=new IntersectionObserver((t=>{this.entrie=t[0],e(this)}),{threshold:this.threshold}):console.log("IntersectionObserver Not Supported")}get ratio(){return this.entrie.intersectionRatio}get isIntersecting(){return this.entrie.isIntersecting}setThreshould(t){return this.config.threshold=t,this}setMargin(t){return t="number"==typeof t?t+"px":t,this.config.margin=t,this}start(){return this.observer.observe(this.target.element),this}stop(){return this}}const Me=(t,e,s)=>new Ie(t,e,s);class je{constructor(t,e){this.target=t,this.contentRect=null,this.observer=new ResizeObserver((()=>{e(this)}))}get BoundingRect(){return this.target.element.getBoundingClientRect()}get width(){return this.BoundingRect.width}get height(){return this.BoundingRect.height}get top(){return this.BoundingRect.top}get bottom(){return this.BoundingRect.bottom}get right(){return this.BoundingRect.right}get left(){return this.BoundingRect.left}get x(){return this.BoundingRect.x}get y(){return this.BoundingRect.y}start(){return this.observer.observe(this.target.element),this}stop(){return this.observer.unobserve(this.target.element),this}}const De=(t,e)=>new je(t,e);class Re{constructor(t=(t=>console.log({x:t.x,y:t.y}))){this.cache={},this.previousX=globalThis?.screenX,this.previousY=globalThis?.screenY}update(){Object.assign(this.cache,{screenXLeft:globalThis?.screenX,screenXRight:globalThis?.screen.availWidth-globalThis?.screenX,screenYTop:globalThis?.screenY,screenYBottom:globalThis?.screen.availHeight-globalThis?.screenY-globalThis?.outerHeight,screenCenterX:globalThis?.screen.availWidth/2,screenCenterY:globalThis?.screen.availHeight/2,windowCenterX:globalThis?.outerWidth/2+globalThis?.screenX,windowCenterY:globalThis?.outerHeight/2+globalThis?.screenY,deltaCenterX:globalThis?.screen.availWidth/2-globalThis?.outerWidth/2+globalThis?.screenX,deltaCenterY:null})}get x0(){return $(globalThis?.screenX,0,globalThis.screen.availWidth,-1,1)}get y0(){return-$(globalThis?.screenY,0,globalThis.screen.availHeight,-1,1)}get x1(){return $(globalThis?.screenX+globalThis?.outerWidth,0,globalThis.screen.availWidth,-1,1)}get y1(){return-$(globalThis?.screenY+globalThis?.outerHeight,0,globalThis.screen.availHeight,-1,1)}get cx(){return $(globalThis?.outerWidth/2+globalThis?.screenX,0,globalThis.screen.availWidth,-1,1)}get cy(){return-$(globalThis?.outerHeight/2+globalThis?.screenY,0,globalThis.screen.availHeight,-1,1)}}class Pe{constructor(){this.events={},this.maxListeners=10}on(t,e){this.events[t]||(this.events[t]=[]),this.events[t].push(e),this.events[t].length>this.maxListeners&&console.warn(`Warning: Possible memory leak. Event '${t}' has more than ${this.maxListeners} listeners.`)}once(t,e){const s=r=>{this.off(t,s),e(r)};this.on(t,s)}off(t,e){const s=this.events[t];if(s){const t=s.indexOf(e);-1!==t&&s.splice(t,1)}}emit(t,e){const s=this.events[t];s&&s.forEach((t=>{t(e)}))}clear(t){t?delete this.events[t]:this.events={}}setMaxListener(t,e){this.maxListeners=e}removeAllListeners(t){t?this.events[t]=[]:this.events={}}}const Le=()=>new Pe;class $e{constructor(t,e=!0){this.#e(),this.cache={Emitter:null},e&&this.useEventEmitter(),this.set(t)}#e(){return this.__FavIcon__=document.querySelector("link[rel*='icon']")||document?.createElement("link"),this.__FavIcon__.type="image/x-icon",this.__FavIcon__.rel="shortcut icon",this}set(t){return t!==this.__FavIcon__.href&&(this.__FavIcon__.href=t,this.cache.Emitter&&this.cache.Emitter.emit("ziko:favicon-changed")),this}get current(){return document.__FavIcon__.href}onChange(t){return this.cache.Emitter&&this.cache.Emitter.on("ziko:favicon-changed",t),this}useEventEmitter(){return this.cache.Emitter=Le(),this}}const Be=(t,e)=>new $e(t,e);class ze{constructor({viewport:t,charset:e,description:s,author:r,keywords:i}){this.document=globalThis?.document,this.meta={},this.init({viewport:t,charset:e,description:s,author:r,keywords:i})}init({viewport:t,charset:e,description:s,author:r,keywords:i}){t&&this.setViewport(t),e&&this.setCharset(e),s&&this.describe(s),r&&this.setAuthor(r),i&&this.setKeywords(i)}set(t,e){const s="charset"===(t=t.toLowerCase()),r=s?document.querySelector("meta[charset]"):document.querySelector(`meta[name=${t}]`);return this.meta=r??document?.createElement("meta"),s?this.meta.setAttribute("charset",e):(this.meta.setAttribute("name",t),this.meta.setAttribute("content",e)),r||this.document.head.append(this.meta),this}setCharset(t="utf-8"){return this.set("charset",t),this}describe(t){return this.set("description",t),this}setViewport(t="width=device-width, initial-scale=1.0"){return this.set("viewport",t),this}setKeywords(...t){return t=[...new Set(t)].join(", "),this.set("keywords",t),this}setAuthor(t){return this.set("author",t),this}}const Ne=({viewport:t,charset:e,description:s,author:r,keywords:i})=>new ze({viewport:t,charset:e,description:s,author:r,keywords:i});class Ze{constructor(t=document.title,e=!0){this.cache={Emitter:null},e&&this.useEventEmitter(),this.set(t)}useEventEmitter(){return this.cache.Emitter=Le(),this}set(t){return t!==document.title&&(document.title=t,this.cache.Emitter&&this.cache.Emitter.emit("ziko:title-changed")),this}get current(){return document.title}onChange(t){return this.cache.Emitter&&this.cache.Emitter.on("ziko:title-changed",t),this}}const He=(t,e)=>new Ze(t,e);class Fe{constructor({title:t,lang:e,icon:s,meta:r,noscript:i}){this.html=globalThis?.document?.documentElement,this.head=globalThis?.document?.head,t&&He(t),e&&this.setLang(e),s&&Be(s),r&&Ne(r),i&&this.setNoScript()}setLang(t){this.html.setAttribute("lang",t)}setNoScript(t){}}const Ue=({title:t,lang:e,icon:s,meta:r,noscript:i})=>new Fe({title:t,lang:e,icon:s,meta:r,noscript:i});class We{constructor(t=[],e=(()=>{})){this.mediaQueryRules=t,this.fallback=e,this.lastCalledCallback=null,this.init()}init(){this.mediaQueryRules.forEach((({query:t,callback:e})=>{const s=globalThis.matchMedia(t),r=()=>{const t=this.mediaQueryRules.some((({query:t})=>globalThis.matchMedia(t).matches));s.matches?(e(),this.lastCalledCallback=e):t||this.lastCalledCallback===this.fallback||(this.fallback(),this.lastCalledCallback=this.fallback)};r(),s.addListener(r)}))}}const qe={__all__(){return Object.values(this).filter(Array.isArray).flat()},querySelectorAll(){return this.__all__().filter((t=>t))},getElementByIndex(t){return this.__all__().find((e=>e.ui_index===t))},getElementById:t=>null,getElementsByClass(){},getElementsByTagName(){}},Ve={default:{target:null,render:!0,math:{mode:"deg"}},setDefault:function(t){const e=Object.keys(t),s=Object.values(t);for(let t=0;t<e.length;t++)this.default[e[t]]=s[t]},init:()=>{},renderingMode:"spa",isSSC:!1},Ye={map:new Map,index:0,increment:function(){return this.index++}},Ge=new Map,Xe={ui_index:0,get_ui_index:function(){return this.ui_index++}};var Ke;globalThis?.__Ziko__||(globalThis.__Ziko__={__UI__:qe,__HYDRATION__:Ye,__HYDRATION_MAP__:Ge,__Config__:Ve,__CACHE__:Xe},Ke=__Ziko__,Object.defineProperties(Ke,{QueryParams:{get:function(){return function(t){const e={};return t.replace(/[A-Z0-9]+?=([\w|:|\/\.]*)/gi,(t=>{const[s,r]=t.split("=");e[s]=r})),e}(globalThis.location.search.substring(1))},configurable:!1,enumerable:!0},HashParams:{get:function(){return globalThis.location.hash.substring(1).split("#")},configurable:!1,enumerable:!0}}));class Qe extends dt{constructor({element:t,name:e="",type:s="html",useDefaultStyle:r=!1}={}){if(super(),this.target=globalThis.__Ziko__.__Config__.default.target||globalThis?.document?.body,"string"==typeof t)switch(s){case"html":t=globalThis?.document?.createElement(t);break;case"svg":t=globalThis?.document?.createElementNS("http://www.w3.org/2000/svg",t);default:throw Error("Not supported")}else this.target=t?.parentElement;((t,...e)=>{"function"==typeof t?gt(t,...e):bt(t,...e)})(this,_t,At,ue,le,ce),Object.assign(this.cache,{name:e,isInteractive:[!0,!1][Math.floor(2*Math.random())],parent:null,isBody:!1,isRoot:!1,isHidden:!1,isFrozzen:!1,legacyParent:null,attributes:{},filters:{},temp:{}}),this.events={ptr:null,mouse:null,wheel:null,key:null,drag:null,drop:null,click:null,clipboard:null,focus:null,swipe:null,custom:null},this.observer={resize:null,intersection:null},t&&Object.assign(this.cache,{element:t}),this.uuid=`${this.cache.name}-${nt.string(16)}`,this.ui_index=globalThis.__Ziko__.__CACHE__.get_ui_index(),r&&this.style({position:"relative",boxSizing:"border-box",margin:0,padding:0,width:"auto",height:"auto"}),this.items=[],globalThis.__Ziko__.__UI__[this.cache.name]?globalThis.__Ziko__.__UI__[this.cache.name]?.push(this):globalThis.__Ziko__.__UI__[this.cache.name]=[this],t&&globalThis.__Ziko__.__Config__.default.render&&this?.render?.(),this.isInteractive()&&(this.setAttr("ziko-hydration-index",globalThis.__Ziko__.__HYDRATION__.index),globalThis.__Ziko__.__HYDRATION__.map.set(globalThis.__Ziko__.__HYDRATION__.index,(()=>this)),globalThis.__Ziko__.__HYDRATION__.increment())}get element(){return this.cache.element}isInteractive(){return this.cache.isInteractive}isZikoUIElement(){return!0}get st(){return this.cache.style}get attr(){return this.cache.attributes}get evt(){return this.events}get html(){return this.element.innerHTML}get text(){return this.element.textContent}get isBody(){return this.element===globalThis?.document.body}get parent(){return this.cache.parent}get width(){return this.element.getBoundingClientRect().width}get height(){return this.element.getBoundingClientRect().height}get top(){return this.element.getBoundingClientRect().top}get right(){return this.element.getBoundingClientRect().right}get bottom(){return this.element.getBoundingClientRect().bottom}get left(){return this.element.getBoundingClientRect().left}clone(t=!1){const e=new this.constructor;if(e.__proto__=this.__proto__,this.items.length){const t=[...this.items].map((t=>t.clone()));e.append(...t)}else e.element=this.element.cloneNode(!0);return e.render(t)}[Symbol.iterator](){return this.items[Symbol.iterator]()}maintain(){for(let t=0;t<this.items.length;t++)Object.defineProperty(this,t,{value:this.items[t],writable:!0,configurable:!0,enumerable:!1})}freeze(t){return this.cache.isFrozzen=t,this}setTarget(t){if(!this.isBody)return t?.isZikoUIElement&&(t=t.element),this.unrender(),this.target=t,this.render(),this}describe(t){t&&this.setAttr("aria-label",t)}get children(){return[...this.element.children]}get cloneElement(){return this.element.cloneNode(!0)}setClasses(...t){return this.setAttr("class",t.join(" ")),this}get classes(){const t=this.element.getAttribute("class");return null===t?[]:t.split(" ")}addClass(){}setId(t){return this.setAttr("id",t),this}get id(){return this.element.getAttribute("id")}onSwipe(t,e,...s){return this.events.swipe||(this.events.swipe=ke(this,t,e)),this.events.swipe.onSwipe(...s),this}on(t,...e){return this.events.custom||(this.events.custom=xe(this)),this.events.custom.on(t,...e),this}emit(t,e={}){return this.events.custom||(this.events.custom=xe(this)),this.events.custom.emit(t,e),this}watchAttr(t){return this.observer.attr||(this.observer.attr=Oe(this,t)),this}watchChildren(t){return this.observer.children||(this.observer.children=Ce(this,t)),this}watchSize(t){return this.observer.resize||(this.observer.resize=De(this,t)),this.observer.resize.start(),this}watchIntersection(t,e){return this.observer.intersection||(this.observer.intersection=Me(this,t,e)),this.observer.intersection.start(),this}}const Je=["a","abb","address","area","article","aside","audio","b","base","bdi","bdo","blockquote","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","i","iframe","img","ipnut","ins","kbd","label","legend","li","main","map","mark","menu","meter","nav","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","small","source","span","strong","sub","summary","sup","svg","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr"],ts=["svg","g","defs","symbol","use","image","switch","rect","circle","ellipse","line","polyline","polygon","path","text","tspan","textPath","altGlyph","altGlyphDef","altGlyphItem","glyph","glyphRef","linearGradient","radialGradient","pattern","solidColor","filter","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDropShadow","feFlood","feFuncA","feFuncR","feFuncG","feFuncB","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","animate","animateMotion","animateTransform","set","script","desc","title","metadata","foreignObject"],es=new Proxy({},{get(t,e){if("string"!=typeof e)return;let s,r=e.replaceAll("_","-").toLowerCase();return Je.includes(r)&&(s="html"),ts.includes(r)&&(s="svg"),(...t)=>(console.log(yt(t[0])),["string","number"].includes(typeof t[0])||t[0]instanceof Qe||"function"==typeof t[0]&&t[0]().isStateGetter()?new Qe({element:r,name:r,type:s}).append(...t):new Qe({element:r}).setAttr(t.shift()).append(...t))}});class ss extends Qe{constructor(t="div",e="100%",s="100%"){super({element:t,name:"Flex"}),this.direction="cols","number"==typeof e&&(e+="%"),"number"==typeof s&&(s+="%"),this.style({width:e,height:s}),this.style({display:"flex"})}get isFlex(){return!0}resp(t,e=!0){return this.wrap(e),this.element.clientWidth<t?this.vertical():this.horizontal(),this}setSpaceAround(){return this.style({justifyContent:"space-around"}),this}setSpaceBetween(){return this.style({justifyContent:"space-between"}),this}setBaseline(){return this.style({alignItems:"baseline"}),this}gap(t){return"row"===this.direction?this.style({columnGap:t}):"column"===this.direction&&this.style({rowGap:t}),this}wrap(t="wrap"){return this.style({flexWrap:"string"==typeof t?t:["no-wrap","wrap","wrap-reverse"][+t]}),this}_justifyContent(t="center"){return this.style({justifyContent:t}),this}vertical(t,e,s=1){return rs.call(this,s),this.style({alignItems:"number"==typeof t?ns.call(this,t):t,justifyContent:"number"==typeof e?as.call(this,e):e}),this}horizontal(t,e,s=1){return is.call(this,s),this.style({alignItems:"number"==typeof e?as.call(this,e):e,justifyContent:"number"==typeof t?ns.call(this,t):t}),this}show(){return this.isHidden=!1,this.style({display:"flex"}),this}}function rs(t){return 1==t?this.style({flexDirection:"column"}):-1==t&&this.style({flexDirection:"column-reverse"}),this}function is(t){return 1==t?this.style({flexDirection:"row"}):-1==t&&this.style({flexDirection:"row-reverse"}),this}function ns(t){return"number"==typeof t&&(t=["flex-start","center","flex-end"][t+1]),t}function as(t){return ns(-t)}class os extends Qe{constructor(t="div",e="50vw",s="50vh"){super({element:t,name:"Grid"}),this.direction="cols","number"==typeof e&&(e+="%"),"number"==typeof s&&(s+="%"),this.style({border:"1px solid black",width:e,height:s}),this.style({display:"grid"})}get isGird(){return!0}columns(t){let e="";for(let s=0;s<t;s++)e=e.concat(" auto");return this.#s(e),this}#s(t="auto auto"){return this.style({gridTemplateColumns:t}),this}gap(t=10,e=t){return"number"==typeof t&&(t+="px"),"number"==typeof e&&(e+="px"),this.style({gridColumnGap:t,gridRowGap:e}),this}}class hs extends Qe{constructor(t,e){super({element:"div",name:"suspense"}),this.setAttr({dataTemp:"suspense"}),this.fallback_ui=t,this.append(t),(async()=>{try{const s=await e();t.unrender(),this.append(s)}catch(t){console.log({error:t})}})()}}class cs extends Qe{constructor(t,e){super({element:"div",name:""}),this.element.append("svg"===e?function(t){if(globalThis?.DOMParser){return(new DOMParser).parseFromString(t.replace(/\s+/g," ").trim(),"image/svg+xml").documentElement}}(t):function(t){if(globalThis?.DOMParser){const e=(new DOMParser).parseFromString(`<div>${t}</div>`,"text/html");return e.body.firstChild.style.display="contents",e.body.firstChild}}(t))}}class ls extends cs{constructor(t){super(t,"html")}}class us extends cs{constructor(t){super(t,"svg")}}class ms extends Qe{constructor(t,e){super("canvas","canvas"),this.ctx=this.element?.getContext("2d"),this.style({border:"1px red solid"}),this.transformMatrix=new _s([[1,0,0],[0,1,0],[0,0,1]]),this.axisMatrix=new _s([[-10,-10],[10,10]]),requestAnimationFrame((()=>this.resize(t,e)),0),this.on("sizeupdated",(()=>this.adjust()))}get Xmin(){return this.axisMatrix[0][0]}get Ymin(){return this.axisMatrix[0][1]}get Xmax(){return this.axisMatrix[1][0]}get Ymax(){return this.axisMatrix[1][1]}get ImageData(){return this.ctx.getImageData(0,0,c.Width,c.Height)}draw(t=!0){return t?(this.clear(),this.items.forEach((t=>{t.parent=this,t.draw(this.ctx)}))):(this.items.at(-1).parent=this,this.items.at(-1).draw(this.ctx)),this.maintain(),this}applyTransformMatrix(){return this.ctx.setTransform(this.transformMatrix[0][0],this.transformMatrix[1][0],this.transformMatrix[0][1],this.transformMatrix[1][1],this.transformMatrix[0][2],this.transformMatrix[1][2]),this}resize(t,e){return this.size(t,e),this.lineWidth(),this.view(this.axisMatrix[0][0],this.axisMatrix[0][1],this.axisMatrix[1][0],this.axisMatrix[1][1]),this.emit("sizeupdated"),this}adjust(){return this.element.width=this.element?.getBoundingClientRect().width,this.element.height=this.element?.getBoundingClientRect().height,this.view(this.axisMatrix[0][0],this.axisMatrix[0][1],this.axisMatrix[1][0],this.axisMatrix[1][1]),this}view(t,e,s,r){return this.transformMatrix[0][0]=this.width/(s-t),this.transformMatrix[1][1]=-this.height/(r-e),this.transformMatrix[0][2]=this.width/2,this.transformMatrix[1][2]=this.height/2,this.axisMatrix=new _s([[t,e],[s,r]]),this.applyTransformMatrix(),this.clear(),this.lineWidth(1),this.draw(),this}reset(){return this.ctx.setTransform(1,0,0,0,0,0),this}append(t){return this.items.push(t),this.draw(!1),this}background(t){this.ctx.fillStyle=t,this.ctx.setTransform(1,0,0,1,0,0),this.ctx.fillRect(0,0,this.width,this.height),this.applyTransformMatrix(),this.draw()}lineWidth(t){return this.ctx.lineWidth=t/this.transformMatrix[0][0],this}getImageData(t=0,e=0,s=this.width,r=this.height){return this.ctx.getImageData(t,e,s,r)}clear(){return this.ctx.setTransform(1,0,0,1,0,0),this.ctx.clearRect(0,0,this.width,this.height),this.applyTransformMatrix(),this}clone(){console.log(this.width);const t=new ms;return t.items=this.items,t.transformMatrix=this.transformMatrix,t.axisMatrix=this.axisMatrix,Object.assign(t.cache,{...this.cache}),this.size(this.element.style.width,this.element.style.width),this.applyTransformMatrix(),this.draw(),this.adjust(),t}toImage(){return this.img=document?.createElement("img"),this.img.src=this.element?.toDataURL("image/png"),this}toBlob(){this.element.toBlob((function(t){var e=document?.createElement("img"),s=URL.createObjectURL(t);e.onload=function(){URL.revokeObjectURL(s)},e.src=s,console.log(e)}))}zoomIn(){}zoomOut(){}undo(t){}redo(t){}stream(){}}class ps extends Qe{constructor(t=360,e=300){super("svg","svg"),this.style({border:"1px black solid"}),this.size(t,e),this.view(-10,-10,10,10)}size(t,e){return this.setAttr({width:t,height:e}),this}view(t,e,s,r){let i=Math.abs(s-t),n=Math.abs(r-e);return this.setAttr("viewBox",[t,e,i,n].join(" ")),this.st.scaleY(-1),this}add(...t){for(let e=0;e<t.length;e++)this.element.append(t[e].element),this.items.push(t[e]);return this.maintain(),this}remove(...t){for(let e=0;e<t.length;e++)this.element?.removeChild(t[e].element),this.items=this.items.filter((e=>!t));return this.maintain(),this}mask(){}toString(){return(new XMLSerializer).serializeToString(this.element)}btoa(){return btoa(this.toString())}toImg(){return"data:image/svg+xml;base64,"+this.btoa()}toImg2(){return"data:image/svg+xml;charset=utf8,"+this.toString().replaceAll("<","%3C").replaceAll(">","%3E").replaceAll("#","%23").replaceAll('"',"'")}}const fs=t=>(new XMLSerializer).serializeToString(t),ds=t=>btoa(fs(t)),gs=t=>"data:image/svg+xml;base64,"+ds(t),bs=t=>JSON.stringify(x((t=>["number","string","boolean","bigint"].includes(typeof t)?String(t):t instanceof ks||t instanceof _s?t.toString():t instanceof Array?ys(t):void 0),t),null," ").replace(/"([^"]+)":/g,"$1:").replace(/: "([^"]+)"/g,": $1"),ws=t=>{if(!Array.isArray(t))return 0;let e=1;for(const s of t)if(Array.isArray(s)){const t=ws(s);t+1>e&&(e=t+1)}return e},ys=t=>{let e=0;return function t(s){let r=ws(s),i=0;return s.some((t=>Array.isArray(t)))&&(e++,i=1),"["+s.map(((r,i)=>["number","string","boolean","bigint"].includes(typeof r)?String(r):r instanceof ks?r.toString():r instanceof Array?`\n${" ".repeat(e)}${t(r)}${i===s.length-1?"\n":""}`:r instanceof Object?bs(r):void 0))+`${" ".repeat((r+e+1)*i)}]`}(t)},vs=(t,e=0)=>{t=xs(t);let s="";const r=" ".repeat(e);for(let i in t)if("object"==typeof t[i]){s+=`${r}${i} {\n`;const n=t[i];for(let t in n)"object"==typeof n[t]?s+=vs({[t]:n[t]},e+1):s+=`${r} ${t.replace(/[A-Z]/g,(t=>"-"+t.toLowerCase()))}: ${n[t]};\n`;s+=`${r}}\n`}return s};function xs(t){return"object"!=typeof t||null===t?t:Object.keys(t).reduce(((e,s)=>(e[s.trim()]=xs(t[s]),e)),Array.isArray(t)?[]:{})}class _s extends v{constructor(t,e,s=[]){if(super(),t instanceof _s)this.arr=t.arr,this.rows=t.rows,this.cols=t.cols;else{let r,i,n=[];if(arguments[0]instanceof Array)t=arguments[0].length,e=arguments[0][0].length,n=arguments[0];else for(r=0;r<t;r++)for(n.push([]),n[r].push(new Array(e)),i=0;i<e;i++)n[r][i]=s[r*e+i],null==s[r*e+i]&&(n[r][i]=0);this.rows=t,this.cols=e,this.arr=n}this.#r()}toString(){return ys(this.arr)}at(t=0,e=void 0){return t<0&&(t=this.rows+t),null==e?this.arr[t]:(e<0&&(e=this.cols+e),this.arr[t][e])}reshape(t,e){if(t*e==this.rows*this.cols)return new _s(t,e,this.arr.flat(1));console.error("Err")}static eye(t){let e=new _s(t,t);for(let s=0;s<t;s++)for(let r=0;r<t;r++)e.arr[s][r]=s===r?1:0;return e}get clone(){return new _s(this.rows,this.cols,this.arr.flat(1))}get size(){return this.rows*this.cols}get shape(){return[this.rows,this.cols]}get reel(){return new _s(this.cols,this.rows,this.arr.flat(1).reel)}get imag(){return new _s(this.cols,this.rows,this.arr.flat(1).imag)}[Symbol.iterator](){return this.arr[Symbol.iterator]()}#r(){for(let t=0;t<this.arr.length;t++)Object.defineProperty(this,t,{value:this.arr[t],writable:!0,configurable:!0,enumerable:!1})}get(t=0,e=0){return-1==e?this.arr[t]:-1==t?this.arr.map((t=>t[e])):this.arr[t][e]}set(t=0,e=0,s){if(-1==e)return this.arr[t]=s;if(-1==t){for(let t=0;t<this.cols;t++)this.arr[t][e]=s[t]||0;return this.arr}return this.arr[t][e]=s}get isSquare(){return this.rows/this.cols==1}get isSym(){if(!this.isSquare)return!1;const t=this.T,e=this.clone;return 0==_s.sub(e,t).max&&0==_s.sub(e,t).min}get isAntiSym(){if(!this.isSquare)return!1;const t=this.T,e=this.clone;return 0==_s.add(e,t).max&&0==_s.add(e,t).min}get isDiag(){if(!this.isSquare)return!1;const t=this.T,e=this.clone,s=_s.mul(e,t),r=_s.dot(t,e);return 0==_s.sub(s,r).max&&0==_s.sub(s,r).min}get isOrtho(){return!!this.isSquare&&(this.isDiag&&(1==this.det||-1==this.det))}get isIdemp(){if(!this.isSquare)return!1;const t=this.clone,e=_s.dot(t,t);return 0==_s.sub(e,t).max&&0==_s.sub(e,t).min}get T(){let t=[];for(let e=0;e<this.arr[0].length;e++){t[e]=[];for(let s=0;s<this.arr.length;s++)t[e][s]=this.arr[s][e]}return new _s(this.cols,this.rows,t.flat(1))}get det(){if(!this.isSquare)return new Error("is not square matrix");if(1==this.rows)return this.arr[0][0];function t(t,e){var s=[];for(let e=0;e<t.length;e++)s.push(t[e].slice(0));s.splice(0,1);for(let t=0;t<s.length;t++)s[t].splice(e,1);return s}return function e(s){if(2==s.length)return s.flat(1).some((t=>t instanceof _s))?void console.warn("Tensors are not completely supported yet ..."):et.sub(et.mul(s[0][0],s[1][1]),et.mul(s[0][1],s[1][0]));for(var r=0,i=0;i<s.length;i++){const n=et.add(et.mul(Ss(-1,i),et.mul(s[0][i],e(t(s,i)))));r=et.add(r,n)}return r}(this.arr)}get inv(){if(!this.isSquare)return new Error("is not square matrix");if(0===this.det)return"determinat = 0 !!!";let t=function(t){if(t.length!==t[0].length)return;var e=0,s=0,r=0,i=t.length,n=0,a=[],o=[];for(e=0;e<i;e+=1)for(a[a.length]=[],o[o.length]=[],r=0;r<i;r+=1)a[e][r]=e==r?1:0,o[e][r]=t[e][r];for(e=0;e<i;e+=1){if(0==(n=o[e][e])){for(s=e+1;s<i;s+=1)if(0!=o[s][e]){for(r=0;r<i;r++)n=o[e][r],o[e][r]=o[s][r],o[s][r]=n,n=a[e][r],a[e][r]=a[s][r],a[s][r]=n;break}if(0==(n=o[e][e]))return}for(r=0;r<i;r++)o[e][r]=o[e][r]/n,a[e][r]=a[e][r]/n;for(s=0;s<i;s++)if(s!=e)for(n=o[s][e],r=0;r<i;r++)o[s][r]-=n*o[e][r],a[s][r]-=n*a[e][r]}return a}(this.arr);return new _s(this.rows,this.cols,t.flat(1))}static zeros(t,e){let s=new _s(t,e);for(let i=0;i<t;i++)for(var r=0;r<e;r++)s.arr[i][r]=0;return s}static ones(t,e){let s=new _s(t,e);for(let r=0;r<t;r++)for(let t=0;t<e;t++)s.arr[r][t]=1;return s}static nums(t,e,s){let r=new _s(t,e);for(let i=0;i<t;i++)for(let t=0;t<e;t++)r.arr[i][t]=s;return r}static get rand(){return{int:(t,e,s,r)=>{let i=new _s(t,e);for(let n=0;n<t;n++)for(let t=0;t<e;t++)i.arr[n][t]=nt.randInt(s,r);return i},bin:(t,e)=>{let s=new _s(t,e);for(let r=0;r<t;r++)for(let t=0;t<e;t++)s.arr[r][t]=nt.randBin;return s},hex:(t,e)=>{let s=new _s(t,e);for(let r=0;r<t;r++)for(let t=0;t<e;t++)s.arr[r][t]=nt.randHex;return s},choices:(t,e,s,r)=>{let i=new _s(t,e);for(let n=0;n<t;n++)for(let t=0;t<e;t++)i.arr[n][t]=nt.choice(s,r);return i},permutation:(t,e,s)=>{}}}static rands(t,e,s=1,r){let i=new _s(t,e);for(let n=0;n<t;n++)for(let t=0;t<e;t++)i.arr[n][t]=nt.rand(s,r);return i}map(t,e,s,r){return et.map(this,t,e,s,r)}lerp(t,e){return et.lerp(this,t,e)}norm(t,e){return et.norm(this,t,e)}clamp(t,e){return et.clamp(this,t,e)}static map(t,e,s,r,i){return et.map(t,e,s,r,i)}static lerp(t,e,s){return et.lerp(t,e,s)}static norm(t,e,s){return et.norm(t,e,s)}static clamp(t,e,s){return et.clamp(Es,e,s)}toPrecision(t){for(let e=0;e<this.cols;e++)for(let s=0;s<this.rows;s++)this.arr[e][s]=+this.arr[e][s].toPrecision(t);return this}get toBin(){let t=this.arr.flat(1).toBin;return new _s(this.rows,this.cols,t)}get toOct(){let t=this.arr.flat(1).toOct;return new _s(this.rows,this.cols,t)}get toHex(){let t=this.arr.flat(1).toHex;return new _s(this.rows,this.cols,t)}max2min(){let t=this.arr.flat(1).max2min;return new _s(this.rows,this.cols,t)}min2max(){let t=this.arr.flat(1).min2max;return new _s(this.rows,this.cols,t)}sortRows(t=void 0){let e=this.arr.map((e=>e.sort(t))).flat(1);return new _s(this.rows,this.cols,e)}sortCols(t=void 0){let e=this.T.arr.map((e=>e.sort(t))).flat(1);return new _s(this.rows,this.cols,e).T}filterByRows(t){var e=this.arr.map((e=>e.map((e=>+(""+e).includes(t))))).map((t=>!!Logic.or(...t))),s=this.arr.filter(((t,s)=>!0===e[s]));return 0===s.length&&s.push([]),console.log(s),new _s(s)}filterByCols(t){return new _s(this.T.arr.filter((e=>e.includes(t))))}sortAll(t=void 0){let e=this.arr.flat(1).sort(t);return new _s(this.rows,this.cols,e)}count(t){return this.arr.flat(1).count(t)}toBase(t){let e=this.arr.flat(1).toBase(t);return new _s(this.rows,this.cols,e)}#i(t){if(this.rows!==t.rows)return;let e=this.arr;for(let s=0;s<this.rows;s++)for(let r=this.cols;r<this.cols+t.cols;r++)e[s][r]=t.arr[s][r-this.cols];return this.cols+=t.cols,new _s(this.rows,this.cols,e.flat(1))}hstack(...t){const e=[this,...t].reduce(((t,e)=>t.#i(e)));return Object.assign(this,e),this}static hstack(t,...e){return t.clone.hstack(...e)}#n(t){if(this.cols!==t.cols)return;let e=this.arr;for(let s=this.rows;s<this.rows+t.rows;s++){e[s]=[];for(let r=0;r<this.cols;r++)e[s][r]=t.arr[s-this.rows][r]}return this.rows+=t.rows,new _s(this.rows,this.cols,e.flat(1))}vstack(...t){const e=[this,...t].reduce(((t,e)=>t.#n(e)));return Object.assign(this,e),this}static vstack(t,...e){return t.clone.vstack(...e)}hqueue(...t){const e=[this,...t].reverse().reduce(((t,e)=>t.#i(e)));return Object.assign(this,e),this}vqueue(...t){const e=[this,...t].reverse().reduce(((t,e)=>t.#n(e)));return Object.assign(this,e),this}static hqueue(t,...e){return t.clone.hqueue(...e)}static vqueue(t,...e){return t.clone.vqueue(...e)}slice(t=0,e=0,s=this.rows-1,r=this.cols-1){let i=s-t,n=r-e,a=new Array(n);for(let s=0;s<i;s++){a[s]=[];for(let r=0;r<n;r++)a[s][r]=this.arr[s+t][r+e]}return new _s(i,n,a.flat(1))}static slice(t,e=0,s=0,r=this.rows-1,i=this.cols-1){return t.slice(e,s,r,i)}splice(t,e,s,...r){}getRows(t,e=t+1){return this.slice(t,0,e,this.cols)}getCols(t,e=t+1){return this.slice(0,t,this.rows,e)}static getRows(t,e,s=e+1){return t.slice(e,0,s,t.cols)}static getCols(t,e,s=e+1){return t.slice(0,e,t.rows,s)}add(...t){for(let s=0;s<t.length;s++){("number"==typeof t[s]||t[s]instanceof ks)&&(t[s]=_s.nums(this.rows,this.cols,t[s]));for(let r=0;r<this.rows;r++)for(var e=0;e<this.cols;e++)this.arr[r][e]=et.add(this.arr[r][e],t[s].arr[r][e])}return new _s(this.rows,this.cols,this.arr.flat(1))}sub(...t){for(let s=0;s<t.length;s++){"number"==typeof t[s]&&(t[s]=_s.nums(this.rows,this.cols,t[s]));for(let r=0;r<this.rows;r++)for(var e=0;e<this.cols;e++)this.arr[r][e]=et.sub(this.arr[r][e],t[s].arr[r][e])}return new _s(this.rows,this.cols,this.arr.flat(1))}static add(t,...e){return t.clone.add(...e)}static sub(t,...e){return t.clone.sub(...e)}mul(...t){for(let r=0;r<t.length;r++){"number"==typeof t[r]&&(t[r]=_s.nums(this.rows,this.cols,t[r]));for(var e=0;e<this.rows;e++)for(var s=0;s<this.cols;s++)this.arr[e][s]=et.mul(this.arr[e][s],t[r].arr[e][s])}return new _s(this.rows,this.cols,this.arr.flat(1))}div(...t){for(let s=0;s<t.length;s++){"number"==typeof t[s]&&(t[s]=_s.nums(this.rows,this.cols,t[s]));for(let r=0;r<this.rows;r++)for(var e=0;e<this.cols;e++)this.arr[r][e]=et.div(this.arr[r][e],t[s].arr[r][e])}return new _s(this.rows,this.cols,this.arr.flat(1))}static div(t,...e){return t.clone.div(...e)}static mul(t,...e){return t.clone.mul(...e)}modulo(...t){for(let s=0;s<t.length;s++){"number"==typeof t[s]&&(t[s]=_s.nums(this.rows,this.cols,t[s]));for(let r=0;r<this.rows;r++)for(var e=0;e<this.cols;e++)this.arr[r][e]=et.modulo(this.arr[r][e],t[s].arr[r][e])}return new _s(this.rows,this.cols,this.arr.flat(1))}static modulo(t,...e){return t.clone.modulo(...e)}dot(t){for(var e=[],s=0;s<this.arr.length;s++){e[s]=[];for(var r=0;r<t.arr[0].length;r++){e[s][r]=0;for(var i=0;i<this.arr[0].length;i++)e[s][r]=et.add(e[s][r],et.mul(this.arr[s][i],t.arr[i][r]))}}return new _s(this.arr.length,t.arr[0].length,e.flat(1))}static dot(t,e){return t.dot(e)}pow(t){let e=this.clone,s=this.clone;for(let r=0;r<t-1;r++)s=s.dot(e);return s}static pow(t,e){return t.clone.pow(e)}get somme(){let t=0;for(let e=0;e<this.rows;e++)for(let s=0;s<this.cols;s++)t+=this.arr[e][s];return t}get DoesItContainComplexNumbers(){return this.arr.flat(1/0).some((t=>t instanceof ks))}get min(){this.DoesItContainComplexNumbers&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(V(...this.arr[e]));return V(...t)}get max(){this.DoesItContainComplexNumbers&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(Y(...this.arr[e]));return Y(...t)}get minRows(){this.DoesItContainComplexNumbers&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(V(...this.arr[e]));return t}get maxRows(){this.DoesItContainComplexNumbers&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(Y(...this.arr[e]));return t}get minCols(){return this.DoesItContainComplexNumbers&&console.error("Complex numbers are not comparable"),this.T.minRows}get maxCols(){return this.DoesItContainComplexNumbers&&console.error("Complex numbers are not comparable"),this.T.maxRows}static fromVector(t){return new _s(t.length,1,t)}get toArray(){let t=[];for(let e=0;e<this.rows;e++)for(let s=0;s<this.cols;s++)t.push(this.arr[e][s]);return t}get print(){let t="[";for(let e=0;e<this.arr.length;e++)t+=(0!=e?" ":"")+` [${this.arr[e].map((t=>" "+t.toString()+" "))}],\n`;console.log(t.substring(0,t.length-2)+" ]"),document.write(t.substring(0,t.length-2)+" ]")}get table(){console.table(this.arr)}get serialize(){return JSON.stringify(this)}static deserialize(t){"string"==typeof t&&(t=JSON.parse(t));let e=new _s(t.rows,t.cols);return e.arr=t.arr,e}toTable(){var t=new DocumentFragment,e=new Array(this.rows).fill(null).map((()=>document?.createElement("tr"))),s=this.arr.map((t=>t.map((()=>document?.createElement("td")))));for(let t=0;t<s.length;t++)for(let r=0;r<s[0].length;r++)s[t][r].innerHTML=this.arr[t][r],e[t].appendChild(s[t][r]);return e.map((e=>t.appendChild(e))),t}toGrid(t,e={}){let s=Grid();return s.append(...this.map(t).arr.flat(1).map((t=>t.style(e)))),s.Columns(this.cols),s}sortTable(t=0,{type:e="num",order:s="asc"}={}){var r=this.T.arr.map((t=>t.map(((t,e)=>Object.assign({},{x:t,y:e}))))),i=this.T.arr.map((t=>t.map(((t,e)=>Object.assign({},{x:t,y:e})))));"num"===e?"asc"===s?r[t].sort(((t,e)=>t.x-e.x)):"desc"===s?r[t].sort(((t,e)=>e.x-t.x)):"toggle"===s&&(r[t][0].x>r[t][1].x?r[t].sort(((t,e)=>e.x-t.x)):r[t].sort(((t,e)=>t.x-e.x))):"alpha"===e&&("asc"===s?r[t].sort(((t,e)=>(""+t.x).localeCompare(""+e.x))):"desc"===s&&r[t].sort(((t,e)=>(""+e.x).localeCompare(""+t.x)))),s=r[t].map((t=>t.y));for(let e=0;e<r.length;e++)e!==t&&r[e].map(((t,e)=>t.y=s[e]));for(let e=0;e<r.length;e++)e!==t&&i[e].map(((t,i)=>t.x=r[e][s[i]].x));i[t]=r[t];var n=i.map((t=>t.map((t=>t.x))));return new _s(n).T}}const Es=(t,e,s)=>new _s(t,e,s);class ks extends v{constructor(t=0,e=0){super(),t instanceof ks?(this.a=t.a,this.b=t.b):"object"==typeof t?"a"in e&&"b"in t?(this.a=t.a,this.b=t.b):"a"in e&&"z"in t?(this.a=t.a,this.b=Os(t.z**2-t.a**2)):"a"in e&&"phi"in t?(this.a=t.a,this.b=t.a*Rs(t.phi)):"b"in e&&"z"in t?(this.b=t.b,this.a=Os(t.z**2-t.b**2)):"b"in e&&"phi"in t?(this.b=e,this.a=t.b/Rs(t.phi)):"z"in e&&"phi"in t&&(this.a=t.z*js(t.phi),this.a=t.z*Ds(t.phi)):"number"==typeof t&&"number"==typeof e&&(this.a=+t.toFixed(32),this.b=+e.toFixed(32))}isComplex(){return!0}toString(){let t="";return t=0!==this.a?this.b>=0?`${this.a}+${this.b}*i`:`${this.a}-${Math.abs(this.b)}*i`:this.b>=0?`${this.b}*i`:`-${Math.abs(this.b)}*i`,t}get clone(){return new ks(this.a,this.b)}get z(){return Ns(this.a,this.b)}get phi(){return Bs(this.b,this.a)}static Zero(){return new ks(0,0)}get conj(){return new ks(this.a,-this.b)}get inv(){return new ks(this.a/(Ss(this.a,2)+Ss(this.b,2)),-this.b/(Ss(this.a,2)+Ss(this.b,2)))}add(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new ks(t[e],0));let e=t.map((t=>t.a)),s=t.map((t=>t.b));return this.a+=+W(...e).toFixed(15),this.b+=+W(...s).toFixed(15),this}sub(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new ks(t[e],0));let e=t.map((t=>t.a)),s=t.map((t=>t.b));return this.a-=+W(...e).toFixed(15),this.b-=+W(...s).toFixed(15),this}mul(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new ks(t[e],0));let e=+q(this.z,...t.map((t=>t.z))).toFixed(15),s=+W(this.phi,...t.map((t=>t.phi))).toFixed(15);return this.a=+(e*js(s).toFixed(15)).toFixed(14),this.b=+(e*Ds(s).toFixed(15)).toFixed(14),this}div(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new ks(t[e],0));let e=+(this.z/q(...t.map((t=>t.z)))).toFixed(15),s=+(this.phi-W(...t.map((t=>t.phi)))).toFixed(15);return this.a=+(e*js(s).toFixed(15)).toFixed(15),this.b=+(e*Ds(s).toFixed(15)).toFixed(15),this}pow(t){if($s(t)===t&&t>0){let e=+(this.z**t).toFixed(15),s=+(this.phi*t).toFixed(15);this.a=+(e*js(s).toFixed(15)).toFixed(15),this.b=+(e*Ds(s).toFixed(15)).toFixed(15)}return this}static fromExpo(t,e){return new ks(+(t*js(e)).toFixed(13),+(t*Ds(e)).toFixed(13))}get expo(){return[this.z,this.phi]}static add(t,...e){return t.clone.add(...e)}static sub(t,...e){return t.clone.sub(...e)}static mul(t,...e){return t.clone.mul(...e)}static div(t,...e){return t.clone.div(...e)}static pow(t,e){return t.clone.pow(e)}static xpowZ(t){return Ts(t**this.a*js(this.b*Ms(t)),t**this.a*Ds(this.b*Ms(t)))}sqrtn(t=2){return Ts(Cs(this.z,t)*js(this.phi/t),Cs(this.z,t)*Ds(this.phi/t))}get sqrt(){return this.sqrtn(2)}get log(){return Ts(this.z,this.phi)}get cos(){return Ts(js(this.a)*Ps(this.b),Ds(this.a)*Ls(this.b))}get sin(){return Ts(Ds(this.a)*Ps(this.b),js(this.a)*Ls(this.b))}get tan(){const t=js(2*this.a)+Ps(2*this.b);return Ts(Ds(2*this.a)/t,Ls(2*this.b)/t)}printInConsole(){let t=this.a+" + "+this.b+" * i";return console.log(t),t}print(){}UI(){return"<span>"+this.a+" + i * "+this.b+"</span>"}}const Ts=(t,e)=>{if((t instanceof Array||ArrayBuffer.isView(t))&&(e instanceof Array||ArrayBuffer.isView(t)))return t.map(((s,r)=>Ts(t[r],e[r])));if(t instanceof _s&&e instanceof _s){if(t.shape[0]!==e.shape[0]||t.shape[1]!==e.shape[1])return Error(0);const s=t.arr.map(((s,r)=>Ts(t.arr[r],e.arr[r])));return new _s(t.rows,t.cols,...s)}return new ks(t,e)},As=(...t)=>x(Math.abs,...t),Os=(...t)=>x(Math.sqrt,...t),Ss=(t,e)=>{if("number"==typeof t)return"number"==typeof e?Math.pow(t,e):e instanceof ks?ks.fromExpo(t**e.a,e.b*Ms(t)):x((e=>Ss(t,e)),...e);if(t instanceof ks)return"number"==typeof e?ks.fromExpo(t.z**e,t.phi*e):e instanceof ks?ks.fromExpo(t.z**e.a*Is(-t.phi*e.b),Ms(t.z)*e.b+e.a*t.phi):x((e=>Ss(t,e)),...e);if(t instanceof Array){if("number"==typeof e)return x((t=>Ss(t,e)),...t);if(e instanceof Array){const s=[];for(let r=0;r<t.length;r++)s.push(x((e=>Ss(t[r],e)),...e));return s}}},Cs=(t,e)=>{if("number"==typeof t)return"number"==typeof e?Math.pow(t,1/e):x((e=>Cs(t,e)),...e);if(t instanceof ks)return"number"==typeof e?ks.fromExpo(Cs(t.z,e),t.phi/e):x((e=>Cs(t,e)),...e);if(t instanceof Array){if("number"==typeof e)return x((t=>Cs(t,e)),...t);if(e instanceof Array){const s=[];for(let r=0;r<t.length;r++)s.push(x((e=>Cs(t[r],e)),...e));return s}}},Is=(...t)=>x(Math.exp,...t),Ms=(...t)=>x(Math.log,...t),js=(...t)=>x(y.cos,...t),Ds=(...t)=>x(y.sin,...t),Rs=(...t)=>x(y.tan,...t),Ps=(...t)=>x(y.cosh,...t),Ls=(...t)=>x(y.sinh,...t),$s=(...t)=>x(Math.floor,...t),Bs=(t,e,s=!0)=>{if("number"==typeof t)return"number"==typeof e?s?Math.atan2(t,e):180*Math.atan2(t,e)/Math.PI:x((e=>Bs(t,e,s)),...e);if(t instanceof Array){if("number"==typeof e)return x((t=>Bs(t,e,s)),...t);if(e instanceof Array){const s=[];for(let r=0;r<t.length;r++)s.push(x((e=>Ss(t[r],e)),...e));return s}}},zs=(...t)=>x(Math.sign,...t),Ns=(...t)=>t.every((t=>"number"==typeof t))?Math.hypot(...t):t.every((t=>t instanceof Array))?x(Math.hypot,...t):void 0,{PI:Zs,sqrt:Hs,cos:Fs,sin:Us,acos:Ws,pow:qs}=Math,Vs=t=>t,Ys=(t,e=7.5625,s=2.75)=>t<1/s?e*t*t:t<2/s?e*(t-=1.5/s)*t+.75:t<2.5/s?e*(t-=2.25/s)*t+.9375:e*(t-=2.625/s)*t+.984375;class Gs{constructor(t,{ease:e=Vs,step:s=50,t0:r=0,start:i=!0,duration:n=3e3}={}){this.callback=t,this.state={isRunning:!1,animationId:null,startTime:null,ease:e,step:s,autoStart:i,duration:n},this.t=0,this.tx=0,this.ty=0,this.i=0,this.state.autoStart&&this.start()}#a=()=>{this.t+=this.state.step,this.i++,this.tx=$(this.t,0,this.state.duration,0,1),this.ty=this.state.ease(this.tx),this.callback(this),this.t>=this.state.duration&&(clearInterval(this.state.animationId),this.state.isRunning=!1)};#o(t=!0){return this.state.isRunning||(t&&this.reset(!1),this.state.isRunning=!0,this.state.startTime=Date.now(),this.state.animationId=setInterval(this.#a,this.state.step)),this}start(){return this.#o(!0)}pause(){return this.state.isRunning&&(clearInterval(this.state.animationId),this.state.isRunning=!1),this}resume(){return this.#o(!1)}stop(){return this.pause(),this.reset(!1),this}reset(t=!0){return this.t=0,this.tx=0,this.ty=0,this.i=0,t&&this.start(),this}}class Xs{constructor(t,e){this.ms=t,this.fn=e,this.id=null,this.running=!1}start(){return this.running||(this.running=!0,this.id=setInterval(this.fn,this.ms)),this}stop(){return this.running&&(this.running=!1,clearInterval(this.id),this.id=null),this}isRunning(){return this.running}}class Ks extends Xs{constructor(t=1e3/60){super(t,(()=>this._tick())),this.elapsed=0,this._lastTime=performance.now(),this._callbacks=new Set}_tick(){const t=performance.now(),e=t-this._lastTime;this.elapsed+=e,this._lastTime=t;for(const t of this._callbacks)t({elapsed:this.elapsed,delta:e})}onTick(t){return this._callbacks.add(t),()=>this._callbacks.delete(t)}reset(){this.elapsed=0,this._lastTime=performance.now()}pause(){super.stop()}resume(){this._lastTime=performance.now(),super.start()}}class Qs{constructor(t=[],{repeat:e=1,loop:s=!1}={}){this.tasks=t,this.repeat=e,this.loop=s,this.stopped=!1,this.running=!1,this.onStart=null,this.onTask=null,this.onEnd=null}async run(){if(this.running)return;this.running=!0,this.stopped=!1,this.onStart&&this.onStart();let t=this.repeat;do{for(const t of this.tasks){if(this.stopped)return;if(Array.isArray(t))await Promise.all(t.map((({fn:t,delay:e=0})=>new Promise((async s=>{e>0&&await new Promise((t=>setTimeout(t,e))),this.onTask&&this.onTask(t),await t(),s()})))));else{const{fn:e,delay:s=0}=t;s>0&&await new Promise((t=>setTimeout(t,s))),this.onTask&&this.onTask(e),await e()}}}while(this.loop&&!this.stopped&&(t===1/0||t-- >1));!this.stopped&&this.onEnd&&this.onEnd(),this.running=!1}stop(){this.stopped=!0,this.running=!1}addTask(t){this.tasks.push(t)}clearTasks(){this.tasks=[]}}class Js{constructor(t,{step:e=1e3,t0:s=0,t1:r=1/0,autoplay:i=!0}={}){this.callback=t,this.cache={isRunning:!1,id:null,last_tick:null,step:e,t0:s,t1:r,autoplay:i,pauseTime:null,frame:0},i&&(s?this.startAfter(s):this.start(),r!==1/0&&this.stopAfter(r))}get frame(){return this.cache.frame}get elapsed(){return this.cache.elapsed}start(){return this.cache.isRunning||(this.cache.frame=0,this.cache.isRunning=!0,this.cache.last_tick=Date.now(),this.animate()),this}pause(){return this.cache.isRunning&&(clearTimeout(this.cache.id),this.cache.isRunning=!1,this.cache.pauseTime=Date.now()),this}resume(){if(!this.cache.isRunning){if(this.cache.isRunning=!0,this.cache.pauseTime){const t=Date.now()-this.cache.pauseTime;this.cache.last_tick+=t}this.animate()}return this}stop(){return this.pause(),this.cache.frame=0,this}startAfter(t=1e3){return setTimeout((()=>this.start()),t),this}stopAfter(t=1e3){return setTimeout((()=>this.stop()),t),this}animate=()=>{if(this.cache.isRunning){const t=Date.now(),e=t-this.cache.last_tick;e>=this.cache.step&&(this.cache.elapsed=t-(this.cache.t0||0),this.callback(this),this.cache.frame++,this.cache.last_tick=t-e%this.cache.step),this.cache.id=setTimeout(this.animate,0)}}}class tr{constructor({head:t=null,wrapper:e=null,target:s=null}){this.head=t,this.wrapper=e,this.target=s,this.init()}get isZikoApp(){return!0}init(){this.head&&this.setHead(this.head),this.wrapper&&this.setWrapper(this.wrapper),this.target&&this.setTarget(this.target),this.wrapper&&this.target&&this.wrapper.render(this.target)}setTarget(t){return t instanceof HTMLElement?this.target=t:"string"==typeof t&&(this.target=globalThis?.document?.querySelector(t)),this}setWrapper(t){return t?.isZikoUIElement?this.wrapper=t:"function"==typeof t&&(this.wrapper=t()),this}setHead(t){return this.head=t instanceof Fe?t:Ue(t),this}}function er(t){return/:\w+/.test(t)}class sr extends tr{constructor({head:t,wrapper:e,target:s,routes:r}){super({head:t,wrapper:e,target:s}),this.routes=new Map([["404",Tt("Error 404")],...Object.entries(r)]),this.clear(),globalThis.onpopstate=this.render(location.pathname)}clear(){return[...this.routes].forEach((t=>{!er(t[0])&&t[1]?.isZikoUIElement&&t[1].unrender()})),this}render(t){const[e,s]=[...this.routes].find((e=>function(t,e){const s=t.split("/"),r=e.split("/");if(s.length!==r.length)return!1;for(let t=0;t<s.length;t++){const e=s[t],i=r[t];if(!e.startsWith(":")&&e!==i)return!1}return!0}(e[0],t)));let r;if(er(e)){const i=function(t,e){const s=t.split("/"),r=e.split("/"),i={};if(s.length!==r.length)return i;for(let t=0;t<s.length;t++){const e=s[t],n=r[t];if(e.startsWith(":"))i[e.slice(1)]=n;else if(e!==n)return{}}return i}(e,t);r=s.call(this,i)}else s?.isZikoUIElement&&s.render(this.wrapper),"function"==typeof s&&(r=s());return r?.isZikoUIElement&&r.render(this.wrapper),r instanceof Promise&&r.then((t=>t.render(this.wrapper))),globalThis.history.pushState({},"",t),this}}const rr=({head:t,wrapper:e,target:s,routes:r})=>new sr({head:t,wrapper:e,target:s,routes:r});function ir(t,e="./src/pages",s=["js","ts"]){"/"===e.at(-1)&&(e=e.slice(0,-1));const r=t.replace(/\\/g,"/").replace(/\[(\w+)\]/g,"$1/:$1").split("/"),i=e.split("/"),n=r.indexOf(i[i.length-1]);if(-1!==n){const t=r.slice(n+1),e=t[t.length-1],i="index.js"===e||"index.ts"===e,a=s.some((t=>e===`.${t}`||e.endsWith(`.${t}`)));if(i)return"/"+(t.length>1?t.slice(0,-1).join("/"):"");if(a)return"/"+t.join("/").replace(/\.(js|ts)$/,"")}return""}class nr{constructor(t=""){this.channel=new BroadcastChannel(t),this.EVENTS_DATAS_PAIRS=new Map,this.EVENTS_HANDLERS_PAIRS=new Map,this.LAST_RECEIVED_EVENT="",this.UUID="ziko-channel"+nt.string(10),this.SUBSCRIBERS=new Set([this.UUID])}get broadcast(){return this}emit(t,e){return this.EVENTS_DATAS_PAIRS.set(t,e),this.#h(t),this}on(t,e=console.log){return this.EVENTS_HANDLERS_PAIRS.set(t,e),this.#c(),this}#c(){return this.channel.onmessage=t=>{this.LAST_RECEIVED_EVENT=t.data.last_sended_event;const e=t.data.userId;this.SUBSCRIBERS.add(e);const s=t.data.EVENTS_DATAS_PAIRS.get(this.LAST_RECEIVED_EVENT),r=this.EVENTS_HANDLERS_PAIRS.get(this.LAST_RECEIVED_EVENT);s&&r&&r(s)},this}#h(t){return this.channel.postMessage({EVENTS_DATAS_PAIRS:this.EVENTS_DATAS_PAIRS,last_sended_event:t,userId:this.UUID}),this}close(){return this.channel.close(),this}}const ar=t=>new nr(t);class or{#l;constructor(){this.#l=function(t){try{let e=new Function("return "+t.data.fun)()();postMessage({result:e})}catch(t){postMessage({error:t.message})}finally{t.data.close&&self.close()}}.toString(),this.blob=new Blob(["this.onmessage = "+this.#l],{type:"text/javascript"}),this.worker=new Worker(window.URL.createObjectURL(this.blob))}call(t,e,s=!0){return this.worker.postMessage({fun:t.toString(),close:s}),this.worker.onmessage=function(t){t.data.error?console.error(t.data.error):e(t.data.result)},this}}class hr{constructor(t,{namespace:e="Ziko",register:s,ValidateCssProps:r=!1}={}){this.currentPropsMap=t,this.namespace=e,this.ValidateCssProps=r,this.use(t)}use(t){return this.ValidateCssProps&&function(t){const e=new Set(Object.keys(document.documentElement.style));for(let s in t)if(!e.has(s))throw new Error(`Invalid CSS property: "${s}"`)}(t),this.currentPropsMap=t,this.#r(),this}#r(){const t=globalThis?.document?.documentElement?.style;for(let e in this.currentPropsMap){const s=this.namespace?`--${this.namespace}-${e}`:`--${e}`;t.setProperty(s,this.currentPropsMap[e]),Object.defineProperty(this,e,{value:`var(${s})`,writable:!0,configurable:!0,enumerable:!1})}}}class cr{constructor(t,e,s){this.cache={storage:t,globalKey:e,channel:ar(`Ziko:useStorage-${e}`),oldItemKeys:new Set},this.#e(s),this.#r()}get items(){return JSON.parse(this.cache.storage[this.cache.globalKey]??null)}#r(){for(let t in this.items)Object.assign(this,{[[t]]:this.items[t]})}#e(t){this.cache.channel=ar(`Ziko:useStorage-${this.cache.globalKey}`),this.cache.channel.on("Ziko-Storage-Updated",(()=>this.#r())),t&&(this.cache.storage[this.cache.globalKey]?(Object.keys(this.items).forEach((t=>this.cache.oldItemKeys.add(t))),console.group("Ziko:useStorage"),console.warn(`Storage key '${this.cache.globalKey}' already exists. we will not overwrite it.`),console.info("%cWe'll keep the existing data.","background-color:#2222dd; color:gold;"),console.group("")):this.set(t))}set(t){return this.cache.storage.setItem(this.cache.globalKey,JSON.stringify(t)),this.cache.channel.emit("Ziko-Storage-Updated",{}),Object.keys(t).forEach((t=>this.cache.oldItemKeys.add(t))),this.#r(),this}add(t){const e={...this.items,...t};return this.cache.storage.setItem(this.cache.globalKey,JSON.stringify(e)),this.#r(),this}remove(...t){const e={...this.items};for(let s=0;s<t.length;s++)delete e[t[s]],delete this[t[s]];return this.set(e),this}get(t){return this.items[t]}clear(){return this.cache.storage.removeItem(this.cache.globalKey),this.#r(),this}}globalThis?.document&&document?.addEventListener("DOMContentLoaded",__Ziko__.__Config__.init()),t.App=({head:t,wrapper:e,target:s})=>new tr({head:t,wrapper:e,target:s}),t.Arc=t=>1-Us(Ws(t)),t.Back=(t,e=1)=>t**2*((e+1)*t-e),t.Base=st,t.Canvas=(t,e)=>new ms(t,e),t.Clock=Ks,t.Combinaison=it,t.Complex=ks,t.Discret=(t,e=5)=>Math.ceil(t*e)/e,t.E=s,t.EPSILON=r,t.Elastic=t=>-2*qs(2,10*(t-1))*Fs(20*Zs*t/3*t),t.FileBasedRouting=async function(t){const e=Object.keys(t),s=function(t){if(0===t.length)return"";const e=t.map((t=>t.split("/"))),s=Math.min(...e.map((t=>t.length)));let r=[];for(let t=0;t<s;t++){const s=e[0][t];if(!e.every((e=>e[t]===s||e[t].startsWith("["))))break;r.push(s)}return r.join("/")+(r.length?"/":"")}(e),r={};for(let i=0;i<e.length;i++){const n=await t[e[i]](),a=await n.default;Object.assign(r,{[ir(e[i],s)]:a})}return rr({target:document.body,routes:{"/":()=>{},...r},wrapper:es.section()})},t.Flex=(...t)=>{let e="div";return"string"==typeof t[0]&&(e=t[0],t.pop()),new ss(e).append(...t)},t.Grid=(...t)=>new os("div").append(...t),t.HTMLWrapper=t=>new ls(t),t.InBack=(t,e=1.70158,s=e+1)=>s*qs(t,3)-e*t**2,t.InBounce=(t,e=7.5625,s=2.75)=>1-Ys(1-t,e,s),t.InCirc=t=>1-Hs(1-t**2),t.InCubic=t=>t**3,t.InElastic=(t,e=2*Zs/3)=>0===t?0:1===t?1:-qs(2,10*t-10)*Us((10*t-10.75)*e),t.InExpo=t=>0===t?0:2**(10*t-10),t.InOutBack=(t,e=1.70158,s=1.525*e)=>t<.5?qs(2*t,2)*(2*(s+1)*t-s)/2:(qs(2*t-2,2)*((s+1)*(2*t-2)+s)+2)/2,t.InOutBounce=(t,e=7.5625,s=2.75)=>t<.5?Ys(1-2*t,e,s)/2:Ys(2*t-1,e,s)/2,t.InOutCirc=t=>t<.5?(1-Hs(1-(2*t)**2))/2:(Hs(1-(-2*t+2)**2)+1)/2,t.InOutCubic=t=>t<.5?4*t**3:1-(-2*t+2)**3/2,t.InOutElastic=(t,e=2*Zs/4.5)=>0===t?0:1===t?1:t<.5?-qs(2,20*t-10)*Us((20*t-11.125)*e)/2:qs(2,-20*t+10)*Us((20*t-11.125)*e)/2+1,t.InOutExpo=t=>0===t?0:1===t?1:t<.5?2**(20*t-10)/2:(2-2**(-20*t+10))/2,t.InOutQuad=t=>t<.5?2*t**2:1-(-2*t+2)**2/2,t.InOutQuart=t=>t<.5?8*t**4:1-(-2*t+2)**4/2,t.InOutQuint=t=>t<.5?16*t**5:1-(-2*t+2)**5/2,t.InOutSin=t=>-(Fs(Zs*t)-1)/2,t.InQuad=t=>t**2,t.InQuart=t=>t**4,t.InQuint=t=>t**5,t.InSin=t=>1-Fs(t*Zs/2),t.Linear=Vs,t.Logic=rt,t.Matrix=_s,t.OutBack=(t,e=1.70158,s=e+1)=>1+s*qs(t-1,3)+e*qs(t-1,2),t.OutBounce=Ys,t.OutCirc=t=>Hs(1-(t-1)**2),t.OutCubic=t=>1-(1-t)**3,t.OutElastic=(t,e=2*Zs/3)=>0===t?0:1===t?1:qs(2,-10*t)*Us((10*t-.75)*e)+1,t.OutExpo=t=>1===t?1:1-2**(-10*t),t.OutQuad=t=>1-(1-t)**2,t.OutQuart=t=>1-(1-t)**4,t.OutQuint=t=>1-(1-t)**5,t.OutSin=t=>Us(t*Zs/2),t.PI=e,t.Permutation=class{static withDiscount(t,e=t.length){if(1===e)return t.map((t=>[t]));const s=[];let r;return r=this.withDiscount(t,e-1),t.forEach((t=>{r.forEach((e=>{s.push([t].concat(e))}))})),s}static withoutDiscount(t){if(1===t.length)return t.map((t=>[t]));const e=[],s=this.withoutDiscount(t.slice(1)),r=t[0];for(let t=0;t<s.length;t++){const i=s[t];for(let t=0;t<=i.length;t++){const s=i.slice(0,t),n=i.slice(t);e.push(s.concat([r],n))}}return e}},t.Random=nt,t.SPA=rr,t.SVGWrapper=t=>new us(t),t.Scheduler=(t,{repeat:e=null}={})=>new Qs(t,{repeat:e}),t.Step=(t,e=5)=>Math.floor(t*e)/e,t.Suspense=(t,e)=>new hs(t,e),t.Svg=(t,e)=>new ps(t,e),t.Tick=Xs,t.TimeAnimation=Gs,t.TimeLoop=Js,t.TimeScheduler=Qs,t.UIElement=Qe,t.UINode=dt,t.Utils=et,t.ZikoApp=tr,t.ZikoCustomEvent=ve,t.ZikoEventClick=jt,t.ZikoEventClipboard=Pt,t.ZikoEventCustom=Bt,t.ZikoEventDrag=Nt,t.ZikoEventFocus=Ft,t.ZikoEventInput=ge,t.ZikoEventKey=Yt,t.ZikoEventMouse=Kt,t.ZikoEventPointer=te,t.ZikoEventSwipe=_e,t.ZikoEventTouch=re,t.ZikoEventWheel=ne,t.ZikoHead=Fe,t.ZikoMutationObserver=Te,t.ZikoSPA=sr,t.ZikoUICanvas=ms,t.ZikoUIFlex=ss,t.ZikoUIGrid=os,t.ZikoUIHTMLWrapper=ls,t.ZikoUISVGWrapper=us,t.ZikoUISuspense=hs,t.ZikoUISvg=ps,t.ZikoUIText=kt,t.ZikoUIXMLWrapper=cs,t.ZikoUseRoot=hr,t.__ZikoEvent__=Mt,t.abs=As,t.accum=G,t.acos=(...t)=>x(y.acos,...t),t.acosh=(...t)=>x(y.acosh,...t),t.acot=(...t)=>x(y.acot,...t),t.add=O,t.animation=(t,{ease:e,t0:s,t1:r,start:i,duration:n}={})=>new Gs(t,{ease:e,t0:s,t1:r,start:i,duration:n}),t.arange=z,t.arr2str=ys,t.asin=(...t)=>x(y.asin,...t),t.asinh=(...t)=>x(y.asinh,...t),t.atan=(...t)=>x(y.atan,...t),t.atan2=Bs,t.atanh=(...t)=>x(y.atanh,...t),t.bindClickEvent=Rt,t.bindClipboardEvent=$t,t.bindCustomEvent=(t,e,s)=>new Bt(t,e,s),t.bindDragEvent=Ht,t.bindFocusEvent=Wt,t.bindHashEvent=(t,e)=>new qt(t,e),t.bindKeyEvent=Xt,t.bindMouseEvent=Jt,t.bindPointerEvent=se,t.bindTouchEvent=(t,e)=>new re(t,e),t.bindWheelEvent=oe,t.cartesianProduct=Q,t.ceil=(...t)=>x(Math.ceil,...t),t.clamp=B,t.clock=t=>new Ks(t),t.combinaison=(t,e,s=!1)=>it[s?"withDiscount":"withoutDiscount"](t,e),t.complex=Ts,t.cos=js,t.cosh=Ps,t.cot=(...t)=>x(y.cot,...t),t.coth=(...t)=>x(y.coth,...t),t.csc=(...t)=>x(y.csc,...t),t.csv2arr=at,t.csv2json=(t,e=",")=>JSON.stringify(ot(t,e)),t.csv2matrix=(t,e=",")=>new _s(at(t,e)),t.csv2object=ot,t.csv2sql=(t,e)=>{const s=t.trim().trimEnd().split("\n").filter((t=>t));let r=`INSERT INTO ${e} (${s[0].split(",").join(", ")}) Values `,i=[];for(let t=1;t<s.length;t++){const e=s[t].split(",");i.push(`(${e})`)}return r+i.join(",\n")},t.debounce=(t,e=1e3)=>(...s)=>setTimeout((()=>t(...s)),e),t.defineParamsGetter=function(t){Object.defineProperties(t,{QueryParams:{get:function(){return function(t){const e={};return t.replace(/[A-Z0-9]+?=([\w|:|\/\.]*)/gi,(t=>{const[s,r]=t.split("=");e[s]=r})),e}(globalThis.location.search.substring(1))},configurable:!1,enumerable:!0},HashParams:{get:function(){return globalThis.location.hash.substring(1).split("#")},configurable:!1,enumerable:!0}})},t.deg2rad=F,t.div=I,t.e=Is,t.fact=(...t)=>x((t=>{let e,s=1;if(0==t)s=1;else if(t>0)for(e=1;e<=t;e++)s*=e;else s=NaN;return s}),...t),t.floor=$s,t.geomspace=H,t.getEvent=Ct,t.hypot=Ns,t.inRange=X,t.isApproximatlyEqual=K,t.isStateGetter=yt,t.json2arr=t=>ht(t instanceof Object?t:JSON.parse(t)),t.json2css=vs,t.json2csv=lt,t.json2csvFile=(t,e)=>{const s=lt(t,e),r=new Blob([s],{type:"text/csv;charset=utf-8;"});return{str:s,blob:r,url:URL.createObjectURL(r)}},t.json2xml=ft,t.json2xmlFile=(t,e)=>{const s=ft(t,e),r=new Blob([s],{type:"text/xml;charset=utf-8;"});return{str:s,blob:r,url:URL.createObjectURL(r)}},t.json2yml=pt,t.json2ymlFile=(t,e)=>{const s=pt(t,e),r=new Blob([s],{type:"text/yml;charset=utf-8;"});return{str:s,blob:r,url:URL.createObjectURL(r)}},t.lerp=L,t.linspace=N,t.ln=Ms,t.logspace=Z,t.loop=(t,e={})=>new Js(t,e),t.map=$,t.mapfun=x,t.matrix=Es,t.matrix2=(...t)=>new _s(2,2,t),t.matrix3=(...t)=>new _s(3,3,t),t.matrix4=(...t)=>new _s(4,4,t),t.max=Y,t.min=V,t.modulo=M,t.mul=C,t.norm=P,t.nums=R,t.obj2str=bs,t.ones=D,t.pgcd=J,t.pow=Ss,t.powerSet=t=>{const e=[],s=2**t.length;for(let r=0;r<s;r+=1){const s=[];for(let e=0;e<t.length;e+=1)r&1<<e&&s.push(t[e]);e.push(s)}return e},t.ppcm=tt,t.preload=t=>{const e=new XMLHttpRequest;if(e.open("GET",t,!1),e.send(),200===e.status)return e.responseText;throw new Error(`Failed to fetch data from ${t}. Status: ${e.status}`)},t.prod=q,t.rad2deg=U,t.round=(...t)=>x(Math.round,...t),t.sec=(...t)=>x(y.sec,...t),t.sig=(...t)=>x((t=>1/(1+Is(-t))),...t),t.sign=zs,t.sin=Ds,t.sinc=(...t)=>x(y.sinc,...t),t.sinh=Ls,t.sleep=t=>new Promise((e=>setTimeout(e,t))),t.sqrt=Os,t.sqrtn=Cs,t.step_fps=t=>1e3/t,t.sub=S,t.subSet=null,t.sum=W,t.svg2ascii=ds,t.svg2img=(t,e=!0)=>es.img(gs(t)).render(e),t.svg2imgUrl=gs,t.svg2str=fs,t.tags=es,t.tan=Rs,t.tanh=(...t)=>x(y.tanh,...t),t.text=Tt,t.throttle=(t,e)=>{let s=0;return(...r)=>{const i=(new Date).getTime();i-s<e||(s=i,t(...r))}},t.tick=(t,e)=>new Xs(t,e),t.timeTaken=t=>{console.time("timeTaken");const e=t();return console.timeEnd("timeTaken"),e},t.time_memory_Taken=t=>{const e=Date.now(),s=performance.memory.usedJSHeapSize,r=t();return{elapsedTime:Date.now()-e,usedMemory:performance.memory.usedJSHeapSize-s,result:r}},t.timeout=function(t,e){let s;const r=new Promise((r=>{s=setTimeout((()=>{e&&e(),r()}),t)}));return{id:s,clear:()=>clearTimeout(s),promise:r}},t.useChannel=ar,t.useCustomEvent=xe,t.useDerived=function(t,e){let s=t(...e.map((t=>t().value)));const r=new Set;let i=!1;const n={pause:()=>{i=!0},resume:()=>{i=!1},clear:()=>{r.clear()},force:t=>{"function"==typeof t&&(t=t(s)),s=t,r.forEach((t=>t(s)))},getSubscribers:()=>new Set(r)};return e.forEach((n=>{n()._subscribe((()=>{if(!i){const i=t(...e.map((t=>t().value)));i!==s&&(s=i,r.forEach((t=>t(s))))}}),{element:document.body})})),[function(){return{value:s,isStateGetter:()=>!0,_subscribe:(t,e)=>{r.add(t);const s=new MutationObserver((()=>{document.body.contains(e.element)||(r.delete(t),s.disconnect())}));s.observe(document.body,{childList:!0,subtree:!0})}}},function(t){i||("function"==typeof t&&(t=t(s)),t!==s&&(s=t,r.forEach((t=>t(s)))))},n]},t.useEventEmitter=Le,t.useFavIcon=Be,t.useHashEvent=t=>new we(t),t.useHead=Ue,t.useInputEvent=t=>new ge(t),t.useLocaleStorage=(t,e)=>new cr(localStorage,t,e),t.useMediaQuery=(t,e)=>new We(t,e),t.useMeta=Ne,t.useReactive=t=>x((t=>wt(t)),t),t.useRoot=(t,{namespace:e,register:s,ValidateCssProps:r}={})=>new hr(t,{namespace:e,register:s,ValidateCssProps:r}),t.useSessionStorage=(t,e)=>new cr(sessionStorage,t,e),t.useState=wt,t.useSuccesifKeys=(t,e=[],s=(()=>{}))=>{t.cache.stream.enabled.down=!0;const r=e.length,i=t.cache.stream.history.down.slice(-r).map((t=>t.key));e.join("")===i.join("")&&(t.event.preventDefault(),s.call(t,t))},t.useSwipeEvent=ke,t.useThread=(t,e,s)=>{const r=new or;return t&&r.call(t,e,s),r},t.useTitle=He,t.wait=t=>new Promise((e=>setTimeout(e,t))),t.waitForUIElm=t=>new Promise((e=>{if(t.element)return e(t.element);const s=new MutationObserver((()=>{t.element&&(e(t.element),s.disconnect())}));s.observe(document?.body,{childList:!0,subtree:!0})})),t.waitForUIElmSync=(t,e=2e3)=>{const s=Date.now();for(;Date.now()-s<e;)if(t.element)return t.element},t.watch=(t,e={},s=null)=>{const r=new Te(t,e);return s&&r.observe(s),r},t.watchAttr=Oe,t.watchChildren=Ce,t.watchIntersection=Me,t.watchScreen=t=>new Re(t),t.watchSize=De,t.zeros=j}));