ziko 0.47.3 → 0.48.0
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.cjs +16 -16
- package/dist/ziko.js +16 -16
- package/dist/ziko.min.js +2 -2
- package/dist/ziko.mjs +16 -16
- package/package.json +3 -1
- package/src/__ziko__/__ui__.js +4 -0
- package/src/ui/constructors/UIElement.js +9 -0
- package/src/ui/constructors/UIElementCore.js +2 -15
- package/types/global.d.ts +10 -0
package/dist/ziko.cjs
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/*
|
|
3
3
|
Project: ziko.js
|
|
4
4
|
Author: Zakaria Elalaoui
|
|
5
|
-
Date :
|
|
5
|
+
Date : Mon Nov 10 2025 12:33:51 GMT+0100 (UTC+01:00)
|
|
6
6
|
Git-Repo : https://github.com/zakarialaoui10/ziko.js
|
|
7
7
|
Git-Wiki : https://github.com/zakarialaoui10/ziko.js/wiki
|
|
8
8
|
Released under MIT License
|
|
@@ -1109,6 +1109,10 @@ class UIStore extends Array {
|
|
|
1109
1109
|
constructor(...args) {
|
|
1110
1110
|
super(...args);
|
|
1111
1111
|
}
|
|
1112
|
+
clear(){
|
|
1113
|
+
this.length = 0;
|
|
1114
|
+
return this;
|
|
1115
|
+
}
|
|
1112
1116
|
getItemById(id) {
|
|
1113
1117
|
return this.find(n => n.element.id === id);
|
|
1114
1118
|
}
|
|
@@ -1208,7 +1212,7 @@ class UIElementCore extends UINode{
|
|
|
1208
1212
|
constructor(){
|
|
1209
1213
|
super();
|
|
1210
1214
|
}
|
|
1211
|
-
init(element, name, type, render
|
|
1215
|
+
init(element, name, type, render){
|
|
1212
1216
|
this.target = globalThis.__Ziko__.__Config__.default.target||globalThis?.document?.body;
|
|
1213
1217
|
if(typeof element === "string") {
|
|
1214
1218
|
switch(type){
|
|
@@ -1226,7 +1230,7 @@ class UIElementCore extends UINode{
|
|
|
1226
1230
|
else this.target = element?.parentElement;
|
|
1227
1231
|
Object.assign(this.cache, {
|
|
1228
1232
|
name,
|
|
1229
|
-
isInteractive,
|
|
1233
|
+
isInteractive : false,
|
|
1230
1234
|
parent:null,
|
|
1231
1235
|
isBody:false,
|
|
1232
1236
|
isRoot:false,
|
|
@@ -1266,19 +1270,6 @@ class UIElementCore extends UINode{
|
|
|
1266
1270
|
this.items = new UIStore();
|
|
1267
1271
|
globalThis.__Ziko__.__UI__[this.cache.name]?globalThis.__Ziko__.__UI__[this.cache.name]?.push(this):globalThis.__Ziko__.__UI__[this.cache.name]=[this];
|
|
1268
1272
|
element && render && this?.render?.();
|
|
1269
|
-
if(
|
|
1270
|
-
// globalThis.__Ziko__.__Config__.renderingMode !== "spa"
|
|
1271
|
-
// &&
|
|
1272
|
-
// !globalThis.__Ziko__.__Config__.isSSC
|
|
1273
|
-
// &&
|
|
1274
|
-
this.isInteractive()){
|
|
1275
|
-
// this.setAttr("ziko-hydration-index", globalThis.__Ziko__.__HYDRATION__.index);
|
|
1276
|
-
// this.element.setAttribute('ziko-hydration-index', globalThis.__Ziko__.__HYDRATION__.index)
|
|
1277
|
-
// console.log({i : globalThis.__Ziko__.__HYDRATION__.index})
|
|
1278
|
-
// const index = globalThis.__Ziko__.__HYDRATION__.index
|
|
1279
|
-
// this.element.setAttribute('data-hydration-index', globalThis.__Ziko__.__HYDRATION__.index)
|
|
1280
|
-
globalThis.__Ziko__.__HYDRATION__.register(this.element, () => this);
|
|
1281
|
-
}
|
|
1282
1273
|
globalThis.__Ziko__.__UI__.push(this);
|
|
1283
1274
|
}
|
|
1284
1275
|
get element(){
|
|
@@ -2368,6 +2359,15 @@ let UIElement$1 = class UIElement extends UIElementCore{
|
|
|
2368
2359
|
isInteractive(){
|
|
2369
2360
|
return this.cache.isInteractive;
|
|
2370
2361
|
}
|
|
2362
|
+
useClient(directive){
|
|
2363
|
+
if(!this.cache.isInteractive){
|
|
2364
|
+
this.element.setAttribute('data-hydration-index', globalThis.__Ziko__.__HYDRATION__.index);
|
|
2365
|
+
globalThis.__Ziko__.__HYDRATION__.register(() => this);
|
|
2366
|
+
this.cache.isInteractive = true;
|
|
2367
|
+
}
|
|
2368
|
+
if(directive)this.element.setAttribute('data-hydration-directive', directive);
|
|
2369
|
+
return this;
|
|
2370
|
+
}
|
|
2371
2371
|
// isUIElement(){
|
|
2372
2372
|
// return true;
|
|
2373
2373
|
// }
|
package/dist/ziko.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/*
|
|
3
3
|
Project: ziko.js
|
|
4
4
|
Author: Zakaria Elalaoui
|
|
5
|
-
Date :
|
|
5
|
+
Date : Mon Nov 10 2025 12:33:51 GMT+0100 (UTC+01:00)
|
|
6
6
|
Git-Repo : https://github.com/zakarialaoui10/ziko.js
|
|
7
7
|
Git-Wiki : https://github.com/zakarialaoui10/ziko.js/wiki
|
|
8
8
|
Released under MIT License
|
|
@@ -1113,6 +1113,10 @@
|
|
|
1113
1113
|
constructor(...args) {
|
|
1114
1114
|
super(...args);
|
|
1115
1115
|
}
|
|
1116
|
+
clear(){
|
|
1117
|
+
this.length = 0;
|
|
1118
|
+
return this;
|
|
1119
|
+
}
|
|
1116
1120
|
getItemById(id) {
|
|
1117
1121
|
return this.find(n => n.element.id === id);
|
|
1118
1122
|
}
|
|
@@ -1212,7 +1216,7 @@
|
|
|
1212
1216
|
constructor(){
|
|
1213
1217
|
super();
|
|
1214
1218
|
}
|
|
1215
|
-
init(element, name, type, render
|
|
1219
|
+
init(element, name, type, render){
|
|
1216
1220
|
this.target = globalThis.__Ziko__.__Config__.default.target||globalThis?.document?.body;
|
|
1217
1221
|
if(typeof element === "string") {
|
|
1218
1222
|
switch(type){
|
|
@@ -1230,7 +1234,7 @@
|
|
|
1230
1234
|
else this.target = element?.parentElement;
|
|
1231
1235
|
Object.assign(this.cache, {
|
|
1232
1236
|
name,
|
|
1233
|
-
isInteractive,
|
|
1237
|
+
isInteractive : false,
|
|
1234
1238
|
parent:null,
|
|
1235
1239
|
isBody:false,
|
|
1236
1240
|
isRoot:false,
|
|
@@ -1270,19 +1274,6 @@
|
|
|
1270
1274
|
this.items = new UIStore();
|
|
1271
1275
|
globalThis.__Ziko__.__UI__[this.cache.name]?globalThis.__Ziko__.__UI__[this.cache.name]?.push(this):globalThis.__Ziko__.__UI__[this.cache.name]=[this];
|
|
1272
1276
|
element && render && this?.render?.();
|
|
1273
|
-
if(
|
|
1274
|
-
// globalThis.__Ziko__.__Config__.renderingMode !== "spa"
|
|
1275
|
-
// &&
|
|
1276
|
-
// !globalThis.__Ziko__.__Config__.isSSC
|
|
1277
|
-
// &&
|
|
1278
|
-
this.isInteractive()){
|
|
1279
|
-
// this.setAttr("ziko-hydration-index", globalThis.__Ziko__.__HYDRATION__.index);
|
|
1280
|
-
// this.element.setAttribute('ziko-hydration-index', globalThis.__Ziko__.__HYDRATION__.index)
|
|
1281
|
-
// console.log({i : globalThis.__Ziko__.__HYDRATION__.index})
|
|
1282
|
-
// const index = globalThis.__Ziko__.__HYDRATION__.index
|
|
1283
|
-
// this.element.setAttribute('data-hydration-index', globalThis.__Ziko__.__HYDRATION__.index)
|
|
1284
|
-
globalThis.__Ziko__.__HYDRATION__.register(this.element, () => this);
|
|
1285
|
-
}
|
|
1286
1277
|
globalThis.__Ziko__.__UI__.push(this);
|
|
1287
1278
|
}
|
|
1288
1279
|
get element(){
|
|
@@ -2372,6 +2363,15 @@
|
|
|
2372
2363
|
isInteractive(){
|
|
2373
2364
|
return this.cache.isInteractive;
|
|
2374
2365
|
}
|
|
2366
|
+
useClient(directive){
|
|
2367
|
+
if(!this.cache.isInteractive){
|
|
2368
|
+
this.element.setAttribute('data-hydration-index', globalThis.__Ziko__.__HYDRATION__.index);
|
|
2369
|
+
globalThis.__Ziko__.__HYDRATION__.register(() => this);
|
|
2370
|
+
this.cache.isInteractive = true;
|
|
2371
|
+
}
|
|
2372
|
+
if(directive)this.element.setAttribute('data-hydration-directive', directive);
|
|
2373
|
+
return this;
|
|
2374
|
+
}
|
|
2375
2375
|
// isUIElement(){
|
|
2376
2376
|
// return true;
|
|
2377
2377
|
// }
|
package/dist/ziko.min.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/*
|
|
2
2
|
Project: ziko.js
|
|
3
3
|
Author: Zakaria Elalaoui
|
|
4
|
-
Date :
|
|
4
|
+
Date : Mon Nov 10 2025 12:33:51 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:n,cos:i,sin:a,tan:o,acos:c,asin:h,atan:l,cosh:u,sinh:f,tanh:m,acosh:p,asinh:d,atanh:g,log:b}=Math;let w={cos:i,sin:a,tan:o,sinc:t=>a(n*t)/(n*t),sec:t=>1/i(t),csc:t=>1/a(t),cot:t=>1/o(t),acos:c,asin:h,atan:l,acot:t=>n/2-l(t),cosh:u,sinh:f,tanh:m,coth:t=>.5*b((1+t)/(1-t)),acosh:p,asinh:d,atanh:g};w=new Proxy(w,{get(t,e){if(e in t)return s=>+t[e](s).toFixed(15)}});class y{}const _=(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=>_(t,e)));if(ArrayBuffer.isView(e))return e.map((e=>t(e)));if(e instanceof Set)return new Set(_(t,...e));if(e instanceof Map)return new Map([...e].map((e=>[e[0],_(t,e[1])])));if(e instanceof Ge)return new Ge(e.rows,e.cols,_(e.arr.flat(1)));if(e instanceof Ke){const[s,r,n,i]=[e.a,e.b,e.z,e.phi];switch(t){case Math.log:return Je(ss(n),i);case Math.exp:return Je(es(s)*rs(r),es(s)*ns(r));case Math.abs:return n;case Math.sqrt:return Je(Ye(n)*rs(i/2),Ye(n)*ns(i/2));case w.cos:return Je(rs(s)*as(r),-ns(s)*os(r));case w.sin:return Je(ns(s)*as(r),rs(s)*os(r));case w.tan:{const t=rs(2*s)+as(2*r);return Je(ns(2*s)/t,os(2*r)/t)}case w.cosh:return Je(as(s)*rs(r),os(s)*ns(r));case w.sinh:return Je(os(s)*rs(r),as(s)*ns(r));case w.tanh:{const t=as(2*s)+rs(2*r);return Je(os(2*s)/t,ns(2*r)/t)}default:return t(e)}}else if(e instanceof Object)return Object.fromEntries(Object.entries(e).map((e=>[e[0],_(t,e[1])])))}));return 1==s.length?s[0]:s},v=(t,e)=>{if("number"==typeof t){if("number"==typeof e)return t+e;if(e instanceof Ke)return Je(t+e.a,e.b);if(e instanceof Ge)return Ge.nums(e.rows,e.cols,t).add(e);if(e instanceof Array)return e.map((e=>O(e,t)))}else{if(t instanceof Ke||t instanceof Ge)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])))}}},x=(t,e)=>{if("number"==typeof t){if("number"==typeof e)return t-e;if(e instanceof Ke)return Je(t-e.a,-e.b);if(e instanceof Ge)return Ge.nums(e.rows,e.cols,t).sub(e);if(e instanceof Array)return e.map((e=>S(e,t)))}else{if(t instanceof Ke||t instanceof Ge)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])))}}},E=(t,e)=>{if("number"==typeof t){if("number"==typeof e)return t*e;if(e instanceof Ke)return Je(t*e.a,t*e.b);if(e instanceof Ge)return Ge.nums(e.rows,e.cols,t).mul(e);if(e instanceof Array)return e.map((e=>T(t,e)))}else{if(t instanceof Ke||t instanceof Ge)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=>T(t,e)));if(e instanceof Array&&t.length===e.length)return t.map(((t,s)=>T(t,e[s])))}}},k=(t,e)=>{if("number"==typeof t){if("number"==typeof e)return t/e;if(e instanceof Ke)return Je(t/e.a,t/e.b);if(e instanceof Ge)return Ge.nums(e.rows,e.cols,t).div(e);if(e instanceof Array)return e.map((e=>j(t,e)))}else{if(t instanceof Ke||t instanceof Ge)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=>j(t,e)));if(e instanceof Array&&t.length===e.length)return t.map(((t,s)=>j(t,e[s])))}}},A=(t,e)=>{if("number"==typeof t){if("number"==typeof e)return t%e;if(e instanceof Ke)return Je(t%e.a,t%e.b);if(e instanceof Ge)return Ge.nums(e.rows,e.cols,t).modulo(e);if(e instanceof Array)return e.map((e=>j(t,e)))}else{if(t instanceof Ke||t instanceof Ge)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=v(s,e[t]);return s},S=(t,...e)=>{var s=t;for(let t=0;t<e.length;t++)s=x(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},j=(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=A(s,e[t]);return s},C=t=>new Array(t).fill(0),M=t=>new Array(t).fill(1),P=(t,e)=>new Array(e).fill(t),D=(t,e,s)=>{if("number"==typeof t)return e!==s?(t-e)/(s-e):0;if(t instanceof Ge)return new Ge(t.rows,t.cols,D(t.arr.flat(1),e,s));if(t instanceof Ke)return new Ke(D(t.a,e,s),D(t.b,e,s));if(t instanceof Array){if(t.every((t=>typeof("number"===t))))return t.map((t=>D(t,e,s)));{let e=new Array(t.length);for(let s=0;s<t.length;s++)e[s]=D(t[s])}}},$=(t,e,s)=>{if("number"==typeof t)return(s-e)*t+e;if(t instanceof Ge)return new Ge(t.rows,t.cols,$(t.arr.flat(1),e,s));if(t instanceof Ke)return new Ke($(t.a,e,s),$(t.b,e,s));if(t instanceof Array){if(t.every((t=>typeof("number"===t))))return t.map((t=>$(t,e,s)));{let e=new Array(t.length);for(let s=0;s<t.length;s++)e[s]=$(t[s])}}},R=(t,e,s,r,n)=>{if("number"==typeof t)return $(D(t,e,s),r,n);if(t instanceof Ge)return new Ge(t.rows,t.cols,R(t.arr.flat(1),e,s,r,n));if(t instanceof Ke)return new Ke(R(t.a,s,r,n),R(t.b,e,s,r,n));if(t instanceof Array){if(t.every((t=>typeof("number"===t))))return t.map((t=>R(t,e,s,r,n)));{let i=new Array(t.length);for(let a=0;a<t.length;a++)i[a]=R(t[a],e,s,r,n)}}},L=(t,e,s)=>{const[r,n]=[H(e,s),G(e,s)];if("number"==typeof t)return H(G(t,r),n);if(t instanceof Ge)return new Ge(t.rows,t.cols,L(t.arr.flat(1),r,n));if(t instanceof Ke)return new Ke(L(t.a,r,n),L(t.b,r,n));if(t instanceof Array){if(t.every((t=>typeof("number"===t))))return t.map((t=>L(t,r,n)));{let e=new Array(t.length);for(let s=0;s<t.length;s++)e[s]=L(t[s],r,n)}}},F=(t,e,s,r=!1)=>{let n=[];if(t<e)for(let i=t;r?i<=e:i<e;i+=s)n.push(10*i/10);else for(let i=t;r?i>=e:i>e;i-=s)n.push(10*i/10);return n},N=(t,e,s=Qe(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 n=[];let c;c=r?(a-o)/(s-1):(a-o)/s;for(var i=0;i<s;i++)t<e?n.push(o+c*i):n.push(a-c*i);return n}if([t,e].some((t=>t instanceof Ke))){const n=Je(t),i=Je(e);s=s||Math.abs(n.a-i.a)+1;const a=N(n.a,i.a,s,r),o=N(n.b,i.b,s,r);let c=new Array(s).fill(null);return c=c.map(((t,e)=>Je(a[e],o[e]))),c}}},z=(t,e,r=e-t+1,n=s,i=!0)=>N(t,e,r,i).map((t=>Xe(n,t))),B=(t,e,s=Qe(e-t)+1,r=!0)=>{if(Math.floor(s)===s){if([t,e].every((t=>"number"==typeof t))){const[n,i]=[t,e].sort(((t,e)=>e-t));let a;a=ts(n/i,r?s-1:s);const o=[i];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 Ke))){const n=Je(t),i=Je(e);let a;s=s||Math.abs(n.a-i.a)+1,a=ts(i.div(n),r?s-1:s);const o=[n];for(let t=1;t<s;t++)o.push(T(o[t-1],a));return o}}},U=(...t)=>mapfun((t=>t*Math.PI/180),...t),Z=(...t)=>mapfun((t=>t/Math.PI*180),...t),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))){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(V(...t[s])):t[s]instanceof Object&&e.push(V(...Object.values(t[s])));return 1===e.length?e[0]:e},H=(...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(H(...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},G=(...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(H(...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},W=(...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(W(...t[s])):t[s]instanceof Object&&e.push(null);return 1===e.length?e[0]:e},K=(t,e,s)=>{const[r,n]=[Math.min(e,s),Math.max(e,s)];return t>=r&&t<=n},J=(t,e,s=1e-4)=>Math.abs(t-e)<=s,Q=(t,e)=>t.reduce(((t,s)=>[...t,...e.map((t=>[s,t]))]),[]),Y=(t,e)=>{let s,r=1;if(t==cs(t)&&e==cs(e)){for(s=2;s<=t&&s<=e;++s)t%s==0&&e%s==0&&(r=s);return r}console.log("error")},X=(t,e)=>{let s;if(t==cs(t)&&e==cs(e)){for(s=t>e?t:e;s%t!=0||s%e!=0;)++s;return s}console.log("error")},tt={add:O,sub:S,mul:T,div:j,modulo:I,zeros:C,ones:M,nums:P,norm:D,lerp:$,map:R,clamp:L,arange:F,linspace:N,logspace:z,geomspace:B,sum:q,prod:V,accum:W,cartesianProduct:Q,ppcm:X,pgcd:Y,deg2rad:U,rad2deg:Z,inRange:K,isApproximatlyEqual:J},et={_mode:Number,_map:function(t,e,s){return e instanceof Ge?new Ge(e.rows,e.cols,e.arr.flat(1).map((e=>t(e,s)))):e instanceof Ke?new Ke(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}},st={_mode:Number,_map:function(t,e,s){return e instanceof Ge?new Ge(e.rows,e.cols,e.arr.flat(1).map((e=>t(e,s)))):e instanceof Ke?new Ke(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)?st._mode(!t):this._map(this.not,t)},and:function(t,...e){return["number","boolean"].includes(typeof t)?st._mode(e.reduce(((t,e)=>t&e),t)):this._map(this.and,t,e)},or:function(t,...e){return["number","boolean"].includes(typeof t)?st._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 st.not(st.xor(t,e))}};class rt{static withDiscount(t,e){if(1===e)return t.map((t=>[t]));const s=[];return t.forEach(((r,n)=>{this.withDiscount(t.slice(n),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,n)=>{this.withoutDiscount(t.slice(n+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=tt.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 We(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"#"+et.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 Ke(this.float(t[0],t[1]),this.float(e[0],e[1])):new Ke(...this.floats(2,t,e))}static complexInt(t=[0,1],e=[0,1]){return new Ke(this.int(t[0],t[1]),this.int(e[0],e[1]))}static complexBin(){return new Ke(...this.bins(2))}static complexOct(){return new Ke(...this.octs(2))}static complexDec(){return new Ke(...this.decs(10))}static complexHex(){return new Ke(...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 We(t,e,this.floats(t*e,s,r))}static matrixInt(t,e,s,r){return We(t,e,this.ints(t*e,s,r))}static matrixBin(t,e){return We(t,e,this.bins(t*e))}static matrixOct(t,e){return We(t,e,this.octs(t*e))}static matrixDec(t,e){return We(t,e,this.decs(t*e))}static matrixHex(t,e){return We(t,e,this.hex(t*e))}static matrixColor(t,e){return We(t,e,this.colors(t*e))}static matrixComplex(t,e,s,r){return We(t,e,this.complexes(t*e,s,r))}static matrixComplexInt(t,e,s,r){return We(t,e,this.complexesInt(t*e,s,r))}static matrixComplexBin(t,e){return We(t,e,this.complexesBin(t*e))}static matrixComplexOct(t,e){return We(t,e,this.complexesBin(t*e))}static matrixComplexDec(t,e){return We(t,e,this.complexesBin(t*e))}static matrixComplexHex(t,e){return We(t,e,this.complexesBin(t*e))}}const it=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}`)};globalThis.fetchdom=async function(t="https://github.com/zakarialaoui10"){const e=await fetch(t),s=await e.text();return(new DOMParser).parseFromString(s,"text/xml").documentElement},globalThis.fetchdomSync=function(t="https://github.com/zakarialaoui10"){const e=it(t);return(new DOMParser).parseFromString(e,"text/xml").documentElement};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}))},ct=t=>t instanceof Array?[Object.keys(t[0]),...t.map((t=>Object.values(t)))]:[Object.keys(t)],ht=(t,e)=>ct(t).map((t=>t.join(e))).join("\n"),lt=(t,e=",")=>ht(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 n=t[r];if("object"==typeof n&&null!==n){s.push(`${e}${r}:`);const t=ut(n,`${e} `);s.push(...t)}else s.push(`${e}${r}: ${n}`)}return s},ft=(t,e="")=>ut(t,e).join("\n"),mt=(t,e)=>ft(t instanceof Object?t:JSON.parse(t),e),pt=(t,e=1)=>{let s="";for(const r in t)if(t.hasOwnProperty(r)){const n=t[r];s+="\n"+" ".repeat(e)+`<${r}>`,s+="object"==typeof n?pt(n,e+2):`${n}`,s+=`</${r}>`}return s.trim()};class dt{constructor(t){this.cache={node:t}}isZikoUINode(){return!0}get node(){return this.cache.node}}class gt extends Array{constructor(...t){super(...t)}getItemById(t){return this.find((e=>e.element.id===t))}getItemsByTagName(t){return this.filter((e=>e.element.tagName.toLowerCase()===t.toLowerCase()))}getElementsByClassName(t){return this.filter((e=>e.element.classList?.contains(t)))}querySelector(t){const e=globalThis?.document?.querySelector(t);return e&&this.find((t=>t.element===e))||null}querySelectorAll(t){const e=globalThis?.document?.querySelectorAll(t);return Array.from(e).map((t=>this.find((e=>e.element===t)))).filter(Boolean)}}const bt=new gt,wt={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},yt={store:new Map,index:0,register:function(t){this.store.set(this.index++,t)},reset(){this.index=0,this.store.clear()}},_t={ui_index:0,get_ui_index:function(){return this.ui_index++},register_ui:function(t){}},vt={store:new Map,index:0,register:function(t){console.log({index:this.index}),this.store.set(this.index++,t)}};function xt(){var t;globalThis?.__Ziko__||(globalThis.__Ziko__={__UI__:bt,__HYDRATION__:yt,__State__:vt,__Config__:wt,__CACHE__:_t},t=__Ziko__,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}}))}xt();class Et extends dt{constructor(){super()}init(t,e,s,r,n=!0){if(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);break;default:throw Error("Not supported")}else this.target=t?.parentElement;Object.assign(this.cache,{name:e,isInteractive:n,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.items=new gt,globalThis.__Ziko__.__UI__[this.cache.name]?globalThis.__Ziko__.__UI__[this.cache.name]?.push(this):globalThis.__Ziko__.__UI__[this.cache.name]=[this],t&&r&&this?.render?.(),this.isInteractive()&&globalThis.__Ziko__.__HYDRATION__.register(this.element,(()=>this)),globalThis.__Ziko__.__UI__.push(this)}get element(){return this.cache.element}[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})}isInteractive(){return this.cache.isInteractive}isUIElement(){return!0}}function kt(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 At(t){const{store:e,index:s}=__Ziko__.__State__;__Ziko__.__State__.register({value:t,subscribers:new Set,paused:!1});const r=e.get(s);return[function(){return{value:r.value,isStateGetter:()=>!0,_subscribe:t=>r.subscribers.add(t)}},function(t){r.paused||("function"==typeof t&&(t=t(r.value)),t!==r.value&&(r.value=t,r.subscribers.forEach((t=>t(r.value)))))},{pause:()=>{r.paused=!0},resume:()=>{r.paused=!1},clear:()=>{r.subscribers.clear()},force:t=>{"function"==typeof t&&(t=t(r.value)),r.value=t,r.subscribers.forEach((t=>t(r.value)))},getSubscribers:()=>new Set(r.subscribers)}]}globalThis.__Ziko__||xt();const Ot=t=>"function"==typeof t&&t?.()?.isStateGetter?.(),St=(t="")=>t.replace(/[A-Z]/g,(t=>"-"+t.toLowerCase())),Tt=(t="")=>{if(0===t.length)return!1;return/^[a-z][a-zA-Z0-9]*$/.test(t)};class jt extends dt{constructor(...t){super("span","text",!1,...t),this.element=globalThis?.document?.createTextNode(...t)}isText(){return!0}}const It=(...t)=>new jt(...t);async function Ct(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]=It(s[r])),s[r]instanceof Function){const t=s[r]();t.isStateGetter&&(s[r]=It(t.value),t._subscribe((t=>s[r].element.textContent=t),s[r]))}if("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]);else if(s[r]instanceof Promise){const n=await s[r];n.cache.parent=this,this.element?.[t](n.element),n.target=this.element,this.items[e](n)}else 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}function Mt(t,e){if(globalThis.SVGAElement&&this.element instanceof globalThis.SVGAElement&&(t=Tt(t)?St(t):t),!this?.attr[t]||this?.attr[t]!==e){if(Ot(e)){e()._subscribe((e=>this.element?.setAttribute(t,e)),this)}else this.element?.setAttribute(t,e);Object.assign(this.cache.attributes,{[t]:e})}}var Pt=Object.freeze({__proto__:null,getAttr:function(t){return t=is_camelcase(t)?camel2hyphencase(t):t,this.element.attributes[t].value},removeAttr:function(...t){for(let e=0;e<t.length;e++)this.element?.removeAttribute(t[e]);return this},setAttr:function(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(" ")),Mt.call(this,s[t],r[t])}else e instanceof Array&&(e=e.join(" ")),Mt.call(this,t,e);return this},setContentEditable:function(t=!0){return this.setAttr("contenteditable",t),this}});var Dt=Object.freeze({__proto__:null,after:function(t){return t?.isUIElement&&(t=t.element),this.element?.after(t),this},append:function(...t){return Ct.call(this,"append","push",...t),this},before:function(t){return t?.isUIElement&&(t=t.element),this.element?.before(t),this},clear:function(){return this?.items?.forEach((t=>t.unrender())),this.element.innerHTML="",this},insertAt:function(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]=It(e[s])),this.element?.insertBefore(e[s].element,this.items[t].element),this.items.splice(t,0,e[s]);return this},prepend:function(...t){return this.__addItem__.call(this,"prepend","unshift",...t),this},remove:function(...t){const e=t=>{"number"==typeof t&&(t=this.items[t]),t?.isUIElement&&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},render:function(t=this.target){if(!this.isBody)return t?.isUIElement&&(t=t.element),this.target=t,this.target?.appendChild(this.element),this},renderAfter:function(t=1){return setTimeout((()=>this.render()),t),this},replaceElementWith:function(t){return this.cache.element.replaceWith(t),this.cache.element=t,this},unrender:function(){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},unrenderAfter:function(t=1){return setTimeout((()=>this.unrender()),t),this}});const $t={Click:["Click","DblClick","ClickAway"],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"]},Rt=(t="")=>t.startsWith("Ptr")?`pointer${t.split("Ptr")[1].toLowerCase()}`:t.toLowerCase();function Lt(t,e,s,r,n){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]&&n&&this.cache.stream.history[e].push(n),this.cache.callbacks[e]?.map((t=>t(this)))}class Ft{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 n=t?.map((t=>Rt(t)));return n?.forEach(((n,i)=>{Object.assign(this.cache.preventDefault,{[n]:!1}),Object.assign(this.cache.options,{[n]:{}}),Object.assign(this.cache.paused,{[n]:!1}),Object.assign(this.cache.stream.enabled,{[n]:!1}),Object.assign(this.cache.stream.clear,{[n]:!1}),Object.assign(this.cache.stream.history,{[n]:[]}),Object.assign(this.cache.__controllers__,{[n]:t=>Lt.call(this,t,n,e,s)}),r&&Object.assign(this,{[`on${t[i]}`]:(...t)=>this.__onEvent(n,this.cache.options[n],{},...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[Rt(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 Nt extends Ft{constructor(t,e){super(t,$t.Click,zt,e)}}function zt(){"click"===this.currentEvent?this.dx=0:this.dx=1}const Bt=(t,e)=>new Nt(t,e);class Ut extends Ft{constructor(t,e){super(t,$t.Clipboard,Zt,e)}}function Zt(){}const qt=(t,e)=>new Ut(t,e);class Vt extends Ft{constructor(t,e,s){super(t,e,Ht,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 Ht(){}class Gt extends Ft{constructor(t,e){super(t,$t.Drag,Wt,e)}}function Wt(){}const Kt=(t,e)=>new Gt(t,e);class Jt extends Ft{constructor(t,e){super(t,$t.Focus,Qt,e)}}function Qt(){}const Yt=(t,e)=>new Jt(t,e);class Xt extends Ft{constructor(t,e){super(t,$t.Hash,te,e)}}function te(){}class ee extends Ft{constructor(t,e){super(t,$t.Key,se,e)}}function se(){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 re=(t,e)=>new ee(t,e);class ne extends Ft{constructor(t,e){super(t,$t.Mouse,ie,e)}}function ie(){}const ae=(t,e)=>new ne(t,e);class oe extends Ft{constructor(t,e){super(t,$t.Ptr,ce,e),this.isDown=!1}}function ce(){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 he=(t,e)=>new oe(t,e);class le extends Ft{constructor(t,e){super(t,$t.Touch,ue,e)}}function ue(){}class fe extends Ft{constructor(t,e){super(t,$t.Wheel,me,e)}}function me(){}const pe=(t,e)=>new fe(t,e),de={ptr:he,mouse:ae,key:re,click:Bt,drag:Kt,clipboard:qt,focus:Yt,wheel:pe},ge={};Object.entries($t).forEach((([t,e])=>{e.forEach((e=>{const s=`on${e}`;ge[s]=function(...e){return this.events[t]||(this.events[t]=de[t.toLowerCase()](this)),this.events[t][s](...e),this}}))}));var be=Object.freeze({__proto__:null,at:function(t){return this.items.at(t)},find:function(t){return this.items.filter(t)},forEach:function(t){return this.items.forEach(t),this},map:function(t){return this.items.map(t)}});var we=Object.freeze({__proto__:null,animate:function(t,{duration:e=1e3,iterations:s=1,easing:r="ease"}={}){return this.element?.animate(t,{duration:e,iterations:s,easing:r}),this},hide:function(){},show:function(){},size:function(t,e){return this.style({width:t,height:e})},style:function(t){if(!this.element?.style)return this;for(let e in t){const s=t[e];if(Ot(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}});function ye(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 _e{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}}const ve=t=>function(e){ye.call(this,e,t,null,null)};class xe extends _e{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]=ve(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 Ee=t=>new xe(t);let ke=class extends Et{constructor({element:t,name:e="",type:s="html",render:r=__Ziko__.__Config__.default.render}={}){super(),kt(this,Pt,Dt,we,be,ge),t&&this.init(t,e,s,r)}get element(){return this.cache.element}isInteractive(){return this.cache.isInteractive}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}on(t,...e){return this.events.custom||(this.events.custom=Ee(this)),this.events.custom.on(t,...e),this}emit(t,e={}){return this.events.custom||(this.events.custom=Ee(this)),this.events.custom.emit(t,e),this}};class Ae extends ke{constructor(...t){super({element:"div",name:"view"}),this.append(...t)}}const Oe=["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","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr"],Se=["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"],Te=new Proxy({},{get(t,e){if("string"!=typeof e)return;let s,r=e.replaceAll("_","-").toLowerCase();return Oe.includes(r)&&(s="html"),Se.includes(r)&&(s="svg"),(...t)=>0===t.length?new ke({element:r,name:r,type:s}):["string","number"].includes(typeof t[0])||t[0]instanceof ke||"function"==typeof t[0]&&t[0]().isStateGetter()?new ke({element:r,name:r,type:s}).append(...t):new ke({element:r,type:s}).setAttr(t.shift()).append(...t)}});class je extends ke{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 Ie.call(this,s),this.style({alignItems:"number"==typeof t?Me.call(this,t):t,justifyContent:"number"==typeof e?Pe.call(this,e):e}),this}horizontal(t,e,s=1){return Ce.call(this,s),this.style({alignItems:"number"==typeof e?Pe.call(this,e):e,justifyContent:"number"==typeof t?Me.call(this,t):t}),this}show(){return this.isHidden=!1,this.style({display:"flex"}),this}}function Ie(t){return 1==t?this.style({flexDirection:"column"}):-1==t&&this.style({flexDirection:"column-reverse"}),this}function Ce(t){return 1==t?this.style({flexDirection:"row"}):-1==t&&this.style({flexDirection:"row-reverse"}),this}function Me(t){return"number"==typeof t&&(t=["flex-start","center","flex-end"][t+1]),t}function Pe(t){return Me(-t)}class De extends Et{constructor({element:t,name:e,type:s,render:r}){super({element:t,name:e,type:s,render:r})}}class $e extends De{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 Re extends ke{constructor(t){super({element:"div",name:"html_wrappper"}),this.element.append(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)),this.style({display:"contents"})}}class Le extends ke{constructor(t){super({element:"div",name:"html_wrappper"}),this.element.append(function(t){if("undefined"!=typeof DOMParser){const e=(new DOMParser).parseFromString(t.trim(),"image/svg+xml").documentElement;if("parsererror"===e.nodeName)throw new Error("Invalid SVG string");if(e.hasAttribute("xmlns"))return e;const{children:s,attributes:r}=e,n=document.createElementNS("http://www.w3.org/2000/svg","svg");for(let{name:t,value:e}of r)n.setAttribute(t,e);return n.append(...s),globalThis.svg=e,globalThis.children=s,globalThis.attributes=r,globalThis.element=n,n}throw new Error("DOMParser is not available in this environment")}(t)),this.style({display:"contents"})}}class Fe extends ke{constructor(t,e){super(),this.key=t,this.cases=e,this.init()}init(){Object.values(this.cases).filter((t=>t!=this.current)).forEach((t=>t.unrender())),super.init(this.current.element)}get current(){const t=Object.keys(this.cases).find((t=>t==this.key))??"default";return this.cases[t]}updateKey(t){return this.key=t,this.replaceElementWith(this.current.element),this}}const Ne=t=>(new XMLSerializer).serializeToString(t),ze=t=>btoa(Ne(t)),Be=t=>"data:image/svg+xml;base64,"+ze(t),Ue=t=>JSON.stringify(_((t=>["number","string","boolean","bigint"].includes(typeof t)?String(t):t instanceof Ke||t instanceof Ge?t.toString():t instanceof Array?qe(t):void 0),t),null," ").replace(/"([^"]+)":/g,"$1:").replace(/: "([^"]+)"/g,": $1"),Ze=t=>{if(!Array.isArray(t))return 0;let e=1;for(const s of t)if(Array.isArray(s)){const t=Ze(s);t+1>e&&(e=t+1)}return e},qe=t=>{let e=0;return function t(s){let r=Ze(s),n=0;return s.some((t=>Array.isArray(t)))&&(e++,n=1),"["+s.map(((r,n)=>["number","string","boolean","bigint"].includes(typeof r)?String(r):r instanceof Ke?r.toString():r instanceof Array?`\n${" ".repeat(e)}${t(r)}${n===s.length-1?"\n":""}`:r instanceof Object?Ue(r):void 0))+`${" ".repeat((r+e+1)*n)}]`}(t)},Ve=(t,e=0)=>{t=He(t);let s="";const r=" ".repeat(e);for(let n in t)if("object"==typeof t[n]){s+=`${r}${n} {\n`;const i=t[n];for(let t in i)"object"==typeof i[t]?s+=Ve({[t]:i[t]},e+1):s+=`${r} ${t.replace(/[A-Z]/g,(t=>"-"+t.toLowerCase()))}: ${i[t]};\n`;s+=`${r}}\n`}return s};function He(t){return"object"!=typeof t||null===t?t:Object.keys(t).reduce(((e,s)=>(e[s.trim()]=He(t[s]),e)),Array.isArray(t)?[]:{})}class Ge extends y{constructor(t,e,s=[]){if(super(),t instanceof Ge)this.arr=t.arr,this.rows=t.rows,this.cols=t.cols;else{let r,n,i=[];if(arguments[0]instanceof Array)t=arguments[0].length,e=arguments[0][0].length,i=arguments[0];else for(r=0;r<t;r++)for(i.push([]),i[r].push(new Array(e)),n=0;n<e;n++)i[r][n]=s[r*e+n],null==s[r*e+n]&&(i[r][n]=0);this.rows=t,this.cols=e,this.arr=i}this.#s()}toString(){return qe(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 Ge(t,e,this.arr.flat(1));console.error("Err")}static eye(t){let e=new Ge(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 Ge(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 Ge(this.cols,this.rows,this.arr.flat(1).reel)}get imag(){return new Ge(this.cols,this.rows,this.arr.flat(1).imag)}[Symbol.iterator](){return this.arr[Symbol.iterator]()}#s(){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==Ge.sub(e,t).max&&0==Ge.sub(e,t).min}get isAntiSym(){if(!this.isSquare)return!1;const t=this.T,e=this.clone;return 0==Ge.add(e,t).max&&0==Ge.add(e,t).min}get isDiag(){if(!this.isSquare)return!1;const t=this.T,e=this.clone,s=Ge.mul(e,t),r=Ge.dot(t,e);return 0==Ge.sub(s,r).max&&0==Ge.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=Ge.dot(t,t);return 0==Ge.sub(e,t).max&&0==Ge.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 Ge(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 Ge))?void console.warn("Tensors are not completely supported yet ..."):tt.sub(tt.mul(s[0][0],s[1][1]),tt.mul(s[0][1],s[1][0]));for(var r=0,n=0;n<s.length;n++){const i=tt.add(tt.mul(Xe(-1,n),tt.mul(s[0][n],e(t(s,n)))));r=tt.add(r,i)}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,n=t.length,i=0,a=[],o=[];for(e=0;e<n;e+=1)for(a[a.length]=[],o[o.length]=[],r=0;r<n;r+=1)a[e][r]=e==r?1:0,o[e][r]=t[e][r];for(e=0;e<n;e+=1){if(0==(i=o[e][e])){for(s=e+1;s<n;s+=1)if(0!=o[s][e]){for(r=0;r<n;r++)i=o[e][r],o[e][r]=o[s][r],o[s][r]=i,i=a[e][r],a[e][r]=a[s][r],a[s][r]=i;break}if(0==(i=o[e][e]))return}for(r=0;r<n;r++)o[e][r]=o[e][r]/i,a[e][r]=a[e][r]/i;for(s=0;s<n;s++)if(s!=e)for(i=o[s][e],r=0;r<n;r++)o[s][r]-=i*o[e][r],a[s][r]-=i*a[e][r]}return a}(this.arr);return new Ge(this.rows,this.cols,t.flat(1))}static zeros(t,e){let s=new Ge(t,e);for(let n=0;n<t;n++)for(var r=0;r<e;r++)s.arr[n][r]=0;return s}static ones(t,e){let s=new Ge(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 Ge(t,e);for(let n=0;n<t;n++)for(let t=0;t<e;t++)r.arr[n][t]=s;return r}static get rand(){return{int:(t,e,s,r)=>{let n=new Ge(t,e);for(let i=0;i<t;i++)for(let t=0;t<e;t++)n.arr[i][t]=nt.randInt(s,r);return n},bin:(t,e)=>{let s=new Ge(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 Ge(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 n=new Ge(t,e);for(let i=0;i<t;i++)for(let t=0;t<e;t++)n.arr[i][t]=nt.choice(s,r);return n},permutation:(t,e,s)=>{}}}static rands(t,e,s=1,r){let n=new Ge(t,e);for(let i=0;i<t;i++)for(let t=0;t<e;t++)n.arr[i][t]=nt.rand(s,r);return n}map(t,e,s,r){return tt.map(this,t,e,s,r)}lerp(t,e){return tt.lerp(this,t,e)}norm(t,e){return tt.norm(this,t,e)}clamp(t,e){return tt.clamp(this,t,e)}static map(t,e,s,r,n){return tt.map(t,e,s,r,n)}static lerp(t,e,s){return tt.lerp(t,e,s)}static norm(t,e,s){return tt.norm(t,e,s)}static clamp(t,e,s){return tt.clamp(We,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 Ge(this.rows,this.cols,t)}get toOct(){let t=this.arr.flat(1).toOct;return new Ge(this.rows,this.cols,t)}get toHex(){let t=this.arr.flat(1).toHex;return new Ge(this.rows,this.cols,t)}max2min(){let t=this.arr.flat(1).max2min;return new Ge(this.rows,this.cols,t)}min2max(){let t=this.arr.flat(1).min2max;return new Ge(this.rows,this.cols,t)}sortRows(t=void 0){let e=this.arr.map((e=>e.sort(t))).flat(1);return new Ge(this.rows,this.cols,e)}sortCols(t=void 0){let e=this.T.arr.map((e=>e.sort(t))).flat(1);return new Ge(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 Ge(s)}filterByCols(t){return new Ge(this.T.arr.filter((e=>e.includes(t))))}sortAll(t=void 0){let e=this.arr.flat(1).sort(t);return new Ge(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 Ge(this.rows,this.cols,e)}#r(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 Ge(this.rows,this.cols,e.flat(1))}hstack(...t){const e=[this,...t].reduce(((t,e)=>t.#r(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 Ge(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.#r(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 n=s-t,i=r-e,a=new Array(i);for(let s=0;s<n;s++){a[s]=[];for(let r=0;r<i;r++)a[s][r]=this.arr[s+t][r+e]}return new Ge(n,i,a.flat(1))}static slice(t,e=0,s=0,r=this.rows-1,n=this.cols-1){return t.slice(e,s,r,n)}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 Ke)&&(t[s]=Ge.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]=tt.add(this.arr[r][e],t[s].arr[r][e])}return new Ge(this.rows,this.cols,this.arr.flat(1))}sub(...t){for(let s=0;s<t.length;s++){"number"==typeof t[s]&&(t[s]=Ge.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]=tt.sub(this.arr[r][e],t[s].arr[r][e])}return new Ge(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]=Ge.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]=tt.mul(this.arr[e][s],t[r].arr[e][s])}return new Ge(this.rows,this.cols,this.arr.flat(1))}div(...t){for(let s=0;s<t.length;s++){"number"==typeof t[s]&&(t[s]=Ge.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]=tt.div(this.arr[r][e],t[s].arr[r][e])}return new Ge(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]=Ge.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]=tt.modulo(this.arr[r][e],t[s].arr[r][e])}return new Ge(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 n=0;n<this.arr[0].length;n++)e[s][r]=tt.add(e[s][r],tt.mul(this.arr[s][n],t.arr[n][r]))}}return new Ge(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 Ke))}get min(){this.DoesItContainComplexNumbers&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(H(...this.arr[e]));return H(...t)}get max(){this.DoesItContainComplexNumbers&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(G(...this.arr[e]));return G(...t)}get minRows(){this.DoesItContainComplexNumbers&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(H(...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(G(...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 Ge(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 Ge(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}))))),n=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&&n[e].map(((t,n)=>t.x=r[e][s[n]].x));n[t]=r[t];var i=n.map((t=>t.map((t=>t.x))));return new Ge(i).T}}const We=(t,e,s)=>new Ge(t,e,s);class Ke extends y{constructor(t=0,e=0){super(),t instanceof Ke?(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=Ye(t.z**2-t.a**2)):"a"in e&&"phi"in t?(this.a=t.a,this.b=t.a*is(t.phi)):"b"in e&&"z"in t?(this.b=t.b,this.a=Ye(t.z**2-t.b**2)):"b"in e&&"phi"in t?(this.b=e,this.a=t.b/is(t.phi)):"z"in e&&"phi"in t&&(this.a=t.z*rs(t.phi),this.a=t.z*ns(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 Ke(this.a,this.b)}get z(){return ls(this.a,this.b)}get phi(){return hs(this.b,this.a)}static Zero(){return new Ke(0,0)}get conj(){return new Ke(this.a,-this.b)}get inv(){return new Ke(this.a/(Xe(this.a,2)+Xe(this.b,2)),-this.b/(Xe(this.a,2)+Xe(this.b,2)))}add(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new Ke(t[e],0));let e=t.map((t=>t.a)),s=t.map((t=>t.b));return this.a+=+q(...e).toFixed(15),this.b+=+q(...s).toFixed(15),this}sub(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new Ke(t[e],0));let e=t.map((t=>t.a)),s=t.map((t=>t.b));return this.a-=+q(...e).toFixed(15),this.b-=+q(...s).toFixed(15),this}mul(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new Ke(t[e],0));let e=+V(this.z,...t.map((t=>t.z))).toFixed(15),s=+q(this.phi,...t.map((t=>t.phi))).toFixed(15);return this.a=+(e*rs(s).toFixed(15)).toFixed(14),this.b=+(e*ns(s).toFixed(15)).toFixed(14),this}div(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new Ke(t[e],0));let e=+(this.z/V(...t.map((t=>t.z)))).toFixed(15),s=+(this.phi-q(...t.map((t=>t.phi)))).toFixed(15);return this.a=+(e*rs(s).toFixed(15)).toFixed(15),this.b=+(e*ns(s).toFixed(15)).toFixed(15),this}pow(t){if(cs(t)===t&&t>0){let e=+(this.z**t).toFixed(15),s=+(this.phi*t).toFixed(15);this.a=+(e*rs(s).toFixed(15)).toFixed(15),this.b=+(e*ns(s).toFixed(15)).toFixed(15)}return this}static fromExpo(t,e){return new Ke(+(t*rs(e)).toFixed(13),+(t*ns(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 Je(t**this.a*rs(this.b*ss(t)),t**this.a*ns(this.b*ss(t)))}sqrtn(t=2){return Je(ts(this.z,t)*rs(this.phi/t),ts(this.z,t)*ns(this.phi/t))}get sqrt(){return this.sqrtn(2)}get log(){return Je(this.z,this.phi)}get cos(){return Je(rs(this.a)*as(this.b),ns(this.a)*os(this.b))}get sin(){return Je(ns(this.a)*as(this.b),rs(this.a)*os(this.b))}get tan(){const t=rs(2*this.a)+as(2*this.b);return Je(ns(2*this.a)/t,os(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 Je=(t,e)=>{if((t instanceof Array||ArrayBuffer.isView(t))&&(e instanceof Array||ArrayBuffer.isView(t)))return t.map(((s,r)=>Je(t[r],e[r])));if(t instanceof Ge&&e instanceof Ge){if(t.shape[0]!==e.shape[0]||t.shape[1]!==e.shape[1])return Error(0);const s=t.arr.map(((s,r)=>Je(t.arr[r],e.arr[r])));return new Ge(t.rows,t.cols,...s)}return new Ke(t,e)},Qe=(...t)=>_(Math.abs,...t),Ye=(...t)=>_(Math.sqrt,...t),Xe=(t,e)=>{if("number"==typeof t)return"number"==typeof e?Math.pow(t,e):e instanceof Ke?Ke.fromExpo(t**e.a,e.b*ss(t)):_((e=>Xe(t,e)),...e);if(t instanceof Ke)return"number"==typeof e?Ke.fromExpo(t.z**e,t.phi*e):e instanceof Ke?Ke.fromExpo(t.z**e.a*es(-t.phi*e.b),ss(t.z)*e.b+e.a*t.phi):_((e=>Xe(t,e)),...e);if(t instanceof Array){if("number"==typeof e)return _((t=>Xe(t,e)),...t);if(e instanceof Array){const s=[];for(let r=0;r<t.length;r++)s.push(_((e=>Xe(t[r],e)),...e));return s}}},ts=(t,e)=>{if("number"==typeof t)return"number"==typeof e?Math.pow(t,1/e):_((e=>ts(t,e)),...e);if(t instanceof Ke)return"number"==typeof e?Ke.fromExpo(ts(t.z,e),t.phi/e):_((e=>ts(t,e)),...e);if(t instanceof Array){if("number"==typeof e)return _((t=>ts(t,e)),...t);if(e instanceof Array){const s=[];for(let r=0;r<t.length;r++)s.push(_((e=>ts(t[r],e)),...e));return s}}},es=(...t)=>_(Math.exp,...t),ss=(...t)=>_(Math.log,...t),rs=(...t)=>_(w.cos,...t),ns=(...t)=>_(w.sin,...t),is=(...t)=>_(w.tan,...t),as=(...t)=>_(w.cosh,...t),os=(...t)=>_(w.sinh,...t),cs=(...t)=>_(Math.floor,...t),hs=(t,e,s=!0)=>{if("number"==typeof t)return"number"==typeof e?s?Math.atan2(t,e):180*Math.atan2(t,e)/Math.PI:_((e=>hs(t,e,s)),...e);if(t instanceof Array){if("number"==typeof e)return _((t=>hs(t,e,s)),...t);if(e instanceof Array){const s=[];for(let r=0;r<t.length;r++)s.push(_((e=>Xe(t[r],e)),...e));return s}}},ls=(...t)=>t.every((t=>"number"==typeof t))?Math.hypot(...t):t.every((t=>t instanceof Array))?_(Math.hypot,...t):void 0,{PI:us,sqrt:fs,cos:ms,sin:ps,acos:ds,pow:gs}=Math,bs=t=>t,ws=(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 ys{constructor(t,{ease:e=bs,step:s=50,t0:r=0,start:n=!0,duration:i=3e3}={}){this.callback=t,this.state={isRunning:!1,animationId:null,startTime:null,ease:e,step:s,autoStart:n,duration:i},this.t=0,this.tx=0,this.ty=0,this.i=0,this.state.autoStart&&this.start()}#i=()=>{this.t+=this.state.step,this.i++,this.tx=R(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)};#a(t=!0){return this.state.isRunning||(t&&this.reset(!1),this.state.isRunning=!0,this.state.startTime=Date.now(),this.state.animationId=setInterval(this.#i,this.state.step)),this}start(){return this.#a(!0)}pause(){return this.state.isRunning&&(clearInterval(this.state.animationId),this.state.isRunning=!1),this}resume(){return this.#a(!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 _s{constructor(t,e,s=1/0,r){this.ms=e,this.fn=t,this.count=s,this.frame=1,this.id=null,this.running=!1,r&&this.start()}start(){return this.running||(this.running=!0,this.frame=1,this.id=setInterval((()=>{this.frame>this.count?this.stop():(this.fn.call(null,this),this.frame++)}),this.ms)),this}stop(){return this.running&&(this.running=!1,clearInterval(this.id),this.id=null),this}isRunning(){return this.running}}class vs extends _s{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 xs{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 Es{constructor(t,{step:e=1e3,t0:s=0,t1:r=1/0,autoplay:n=!0}={}){this.callback=t,this.cache={isRunning:!1,id:null,last_tick:null,step:e,t0:s,t1:r,autoplay:n,pauseTime:null,frame:0},n&&(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 ks{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 As=()=>new ks;class Os{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=As(),this}}class Ss{constructor({viewport:t,charset:e,description:s,author:r,keywords:n}){this.document=globalThis?.document,this.meta={},this.init({viewport:t,charset:e,description:s,author:r,keywords:n})}init({viewport:t,charset:e,description:s,author:r,keywords:n}){t&&this.setViewport(t),e&&this.setCharset(e),s&&this.describe(s),r&&this.setAuthor(r),n&&this.setKeywords(n)}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}}class Ts{constructor(t=document.title,e=!0){this.cache={Emitter:null},e&&this.useEventEmitter(),this.set(t)}useEventEmitter(){return this.cache.Emitter=As(),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}}class js{constructor({title:t,lang:e,icon:s,meta:r,noscript:n}){this.html=globalThis?.document?.documentElement,this.head=globalThis?.document?.head,t&&((t,e)=>{new Ts(t,e)})(t),e&&this.setLang(e),s&&((t,e)=>{new Os(t,e)})(s),r&&(({viewport:t,charset:e,description:s,author:r,keywords:n})=>{new Ss({viewport:t,charset:e,description:s,author:r,keywords:n})})(r),n&&this.setNoScript()}setLang(t){this.html.setAttribute("lang",t)}setNoScript(t){}}class Is{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?.isUIElement?this.wrapper=t:"function"==typeof t&&(this.wrapper=t()),this}setHead(t){return this.head=t instanceof js?t:(({title:t,lang:e,icon:s,meta:r,noscript:n})=>new js({title:t,lang:e,icon:s,meta:r,noscript:n}))(t),this}}function Cs(t){return/:\w+/.test(t)}class Ms extends Is{constructor({head:t,wrapper:e,target:s,routes:r}){super({head:t,wrapper:e,target:s}),this.routes=new Map([["404",It("Error 404")],...Object.entries(r)]),this.clear(),globalThis.onpopstate=this.render(location.pathname)}clear(){return[...this.routes].forEach((t=>{!Cs(t[0])&&t[1]?.isUIElement&&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],n=r[t];if(!e.startsWith(":")&&e!==n)return!1}return!0}(e[0],t)));let r;if(Cs(e)){const n=function(t,e){const s=t.split("/"),r=e.split("/"),n={};if(s.length!==r.length)return n;for(let t=0;t<s.length;t++){const e=s[t],i=r[t];if(e.startsWith(":"))n[e.slice(1)]=i;else if(e!==i)return{}}return n}(e,t);r=s.call(this,n)}else s?.isUIElement&&s.render(this.wrapper),"function"==typeof s&&(r=s());return r?.isUIElement&&r.render(this.wrapper),r instanceof Promise&&r.then((t=>t.render(this.wrapper))),globalThis.history.pushState({},"",t),this}}const Ps=({head:t,wrapper:e,target:s,routes:r})=>new Ms({head:t,wrapper:e,target:s,routes:r});function Ds(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("/"),n=e.split("/"),i=r.indexOf(n.at(-1));if(-1!==i){const t=r.slice(i+1),e=r.at(-1),n="index.js"===e||"index.ts"===e,a=s.some((t=>e===`.${t}`||e.endsWith(`.${t}`)));if(n)return"/"+(t.length>1?t.slice(0,-1).join("/"):"");if(a)return"/"+t.join("/").replace(/\.(js|ts)$/,"")}return""}class $s{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.#o(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}#o(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 Rs=t=>new $s(t);class Ls{#h;constructor(){this.#h=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.#h],{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 Fs{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.#s(),this}#s(){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 Ns{constructor(t,e,s){this.cache={storage:t,globalKey:e,channel:Rs(`Ziko:useStorage-${e}`),oldItemKeys:new Set},this.#e(s),this.#s()}get items(){return JSON.parse(this.cache.storage[this.cache.globalKey]??null)}#s(){for(let t in this.items)Object.assign(this,{[[t]]:this.items[t]})}#e(t){this.cache.channel=Rs(`Ziko:useStorage-${this.cache.globalKey}`),this.cache.channel.on("Ziko-Storage-Updated",(()=>this.#s())),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.#s(),this}add(t){const e={...this.items,...t};return this.cache.storage.setItem(this.cache.globalKey,JSON.stringify(e)),this.#s(),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.#s(),this}}let{sqrt:zs,cos:Bs,sin:Us,exp:Zs,log:qs,cosh:Vs,sinh:Hs}=Math;for(const t of Object.getOwnPropertyNames(Math)){const e=Math[t];"function"==typeof e&&(Math[t]=new Proxy(e,{apply(e,s,r){const n=r[0];if("number"==typeof n||0===r.length)return e.apply(s,r);if(n?.isComplex?.()){const{a:t,b:i,z:a,phi:o}=n,c=(t,e)=>new n.constructor(t,e);switch(e.name){case"abs":return n.z;case"sqrt":return c(zs(a)*Bs(o/2),zs(a)*Us(o/2));case"log":return c(qs(a),o);case"exp":return c(Zs(t)*Bs(i),Zs(t)*Us(i));case"cos":return c(Bs(t)*Vs(i),-Us(t)*Hs(i));case"sin":return c(Us(t)*Vs(i),Bs(t)*Hs(i));case"tan":{const e=Bs(2*t)+Vs(2*i);return c(Us(2*t)/e,Hs(2*i)/e)}case"cosh":return c(Vs(t)*Bs(i),Hs(t)*Us(i));case"sinh":return c(Hs(t)*Bs(i),Vs(t)*Us(i));case"tanh":{const e=Vs(2*t)+Bs(2*i);return c(Hs(2*t)/e,Us(2*i)/e)}default:return e.apply(s,r)}}throw new TypeError(`Math.${t} expects only numbers`)}}))}globalThis?.document&&document?.addEventListener("DOMContentLoaded",__Ziko__.__Config__.init()),t.App=({head:t,wrapper:e,target:s})=>new Is({head:t,wrapper:e,target:s}),t.Arc=t=>1-ps(ds(t)),t.Back=(t,e=1)=>t**2*((e+1)*t-e),t.Base=et,t.Clock=vs,t.Combinaison=rt,t.Complex=Ke,t.Discret=(t,e=5)=>Math.ceil(t*e)/e,t.E=s,t.EPSILON=r,t.Elastic=t=>-2*gs(2,10*(t-1))*ms(20*us*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 n=0;n<e.length;n++){const i=await t[e[n]](),a=await i.default;Object.assign(r,{[Ds(e[n],s)]:a})}return Ps({target:document.body,routes:{"/":()=>{},...r},wrapper:Te.section()})},t.Flex=(...t)=>{let e="div";return"string"==typeof t[0]&&(e=t[0],t.pop()),new je(e).append(...t)},t.HTMLWrapper=t=>new Re(t),t.InBack=(t,e=1.70158,s=e+1)=>s*gs(t,3)-e*t**2,t.InBounce=(t,e=7.5625,s=2.75)=>1-ws(1-t,e,s),t.InCirc=t=>1-fs(1-t**2),t.InCubic=t=>t**3,t.InElastic=(t,e=2*us/3)=>0===t?0:1===t?1:-gs(2,10*t-10)*ps((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?gs(2*t,2)*(2*(s+1)*t-s)/2:(gs(2*t-2,2)*((s+1)*(2*t-2)+s)+2)/2,t.InOutBounce=(t,e=7.5625,s=2.75)=>t<.5?ws(1-2*t,e,s)/2:ws(2*t-1,e,s)/2,t.InOutCirc=t=>t<.5?(1-fs(1-(2*t)**2))/2:(fs(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*us/4.5)=>0===t?0:1===t?1:t<.5?-gs(2,20*t-10)*ps((20*t-11.125)*e)/2:gs(2,-20*t+10)*ps((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=>-(ms(us*t)-1)/2,t.InQuad=t=>t**2,t.InQuart=t=>t**4,t.InQuint=t=>t**5,t.InSin=t=>1-ms(t*us/2),t.Linear=bs,t.Logic=st,t.Matrix=Ge,t.OutBack=(t,e=1.70158,s=e+1)=>1+s*gs(t-1,3)+e*gs(t-1,2),t.OutBounce=ws,t.OutCirc=t=>fs(1-(t-1)**2),t.OutCubic=t=>1-(1-t)**3,t.OutElastic=(t,e=2*us/3)=>0===t?0:1===t?1:gs(2,-10*t)*ps((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=>ps(t*us/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 n=s[t];for(let t=0;t<=n.length;t++){const s=n.slice(0,t),i=n.slice(t);e.push(s.concat([r],i))}}return e}},t.Random=nt,t.SPA=Ps,t.SVGWrapper=t=>new Le(t),t.Scheduler=(t,{repeat:e=null}={})=>new xs(t,{repeat:e}),t.Step=(t,e=5)=>Math.floor(t*e)/e,t.Suspense=(t,e)=>new $e(t,e),t.Switch=({key:t,cases:e})=>new Fe(t,e),t.Tick=_s,t.TimeAnimation=ys,t.TimeLoop=Es,t.TimeScheduler=xs,t.UIElement=ke,t.UIHTMLWrapper=Re,t.UINode=dt,t.UISVGWrapper=Le,t.UISwitch=Fe,t.UIView=Ae,t.Utils=tt,t.View=(...t)=>new Ae(...t),t.ZikoApp=Is,t.ZikoEventClick=Nt,t.ZikoEventClipboard=Ut,t.ZikoEventCustom=Vt,t.ZikoEventDrag=Gt,t.ZikoEventFocus=Jt,t.ZikoEventHash=Xt,t.ZikoEventKey=ee,t.ZikoEventMouse=ne,t.ZikoEventPointer=oe,t.ZikoEventTouch=le,t.ZikoEventWheel=fe,t.ZikoSPA=Ms,t.ZikoUIFlex=je,t.ZikoUISuspense=$e,t.ZikoUIText=jt,t.ZikoUseRoot=Fs,t.__ZikoEvent__=Ft,t.abs=Qe,t.accum=W,t.acos=(...t)=>_(w.acos,...t),t.acosh=(...t)=>_(w.acosh,...t),t.acot=(...t)=>_(w.acot,...t),t.add=O,t.animation=(t,{ease:e,t0:s,t1:r,start:n,duration:i}={})=>new ys(t,{ease:e,t0:s,t1:r,start:n,duration:i}),t.arange=F,t.arr2str=qe,t.asin=(...t)=>_(w.asin,...t),t.asinh=(...t)=>_(w.asinh,...t),t.atan=(...t)=>_(w.atan,...t),t.atan2=hs,t.atanh=(...t)=>_(w.atanh,...t),t.bindCustomEvent=(t,e,s)=>new Vt(t,e,s),t.bindHashEvent=(t,e)=>new Xt(t,e),t.bindTouchEvent=(t,e)=>new le(t,e),t.bind_click_event=Bt,t.bind_clipboard_event=qt,t.bind_drag_event=Kt,t.bind_focus_event=Yt,t.bind_key_event=re,t.bind_mouse_event=ae,t.bind_pointer_event=he,t.bind_wheel_event=pe,t.cartesianProduct=Q,t.ceil=(...t)=>_(Math.ceil,...t),t.clamp=L,t.clock=t=>new vs(t),t.combinaison=(t,e,s=!1)=>rt[s?"withDiscount":"withoutDiscount"](t,e),t.complex=Je,t.cos=rs,t.cosh=as,t.cot=(...t)=>_(w.cot,...t),t.coth=(...t)=>_(w.coth,...t),t.csc=(...t)=>_(w.csc,...t),t.csv2arr=at,t.csv2json=(t,e=",")=>JSON.stringify(ot(t,e)),t.csv2matrix=(t,e=",")=>new Ge(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 `,n=[];for(let t=1;t<s.length;t++){const e=s[t].split(",");n.push(`(${e})`)}return r+n.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.define_wc=function(t,e,s={},{mode:r="open"}={}){globalThis.customElements?.get(t)?console.warn(`Custom element "${t}" is already defined`):-1!==t.search("-")?globalThis.customElements?.define(t,class extends HTMLElement{static get observedAttributes(){return["style",...Object.keys(s)]}constructor(){super(),this.attachShadow({mode:r}),this.props={},this.mask={...s}}connectedCallback(){this.render()}render(){this.shadowRoot.innerHTML="",this.UIElement=e(this.props).render(this.shadowRoot)}attributeChangedCallback(t,e,s){Object.assign(this.props,{[t]:this.mask[t].type(s)}),this.render()}}):console.warn(`"${t}" is not a valid custom element name`)},t.deg2rad=U,t.div=j,t.e=es,t.fact=(...t)=>_((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=cs,t.geomspace=B,t.getEvent=Rt,t.hypot=ls,t.inRange=K,t.isApproximatlyEqual=J,t.isStateGetter=Ot,t.json2arr=t=>ct(t instanceof Object?t:JSON.parse(t)),t.json2css=Ve,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=pt,t.json2xmlFile=(t,e)=>{const s=pt(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=$,t.linspace=N,t.ln=ss,t.logspace=z,t.loop=(t,e={})=>new Es(t,e),t.map=R,t.mapfun=_,t.matrix=We,t.matrix2=(...t)=>new Ge(2,2,t),t.matrix3=(...t)=>new Ge(3,3,t),t.matrix4=(...t)=>new Ge(4,4,t),t.max=G,t.min=H,t.modulo=I,t.mul=T,t.norm=D,t.nums=P,t.obj2str=Ue,t.ones=M,t.pgcd=Y,t.pow=Xe,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=X,t.preload=it,t.prod=V,t.rad2deg=Z,t.round=(...t)=>_(Math.round,...t),t.sec=(...t)=>_(w.sec,...t),t.sig=(...t)=>_((t=>1/(1+es(-t))),...t),t.sign=(...t)=>_(Math.sign,...t),t.sin=ns,t.sinc=(...t)=>_(w.sinc,...t),t.sinh=os,t.sleep=t=>new Promise((e=>setTimeout(e,t))),t.sqrt=Ye,t.sqrtn=ts,t.step_fps=t=>1e3/t,t.sub=S,t.subSet=null,t.sum=q,t.svg2ascii=ze,t.svg2img=(t,e=!0)=>Te.img(Be(t)).render(e),t.svg2imgUrl=Be,t.svg2str=Ne,t.tags=Te,t.tan=is,t.tanh=(...t)=>_(w.tanh,...t),t.text=It,t.throttle=(t,e)=>{let s=0;return(...r)=>{const n=(new Date).getTime();n-s<e||(s=n,t(...r))}},t.tick=(t,e,s=1/0,r=!0)=>new _s(t,e,s,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.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=Rs,t.useDerived=function(t,e){let s=t(...e.map((t=>t().value)));const r=new Set;return e.forEach((n=>{n()._subscribe((()=>{{const n=t(...e.map((t=>t().value)));n!==s&&(s=n,r.forEach((t=>t(s))))}}))})),()=>({value:s,isStateGetter:()=>!0,_subscribe:t=>r.add(t)})},t.useEventEmitter=As,t.useLocaleStorage=(t,e)=>new Ns(localStorage,t,e),t.useReactive=t=>_((t=>{const e=At(t);return{get:e[0],set:e[1]}}),t),t.useRoot=(t,{namespace:e,register:s,ValidateCssProps:r}={})=>new Fs(t,{namespace:e,register:s,ValidateCssProps:r}),t.useSessionStorage=(t,e)=>new Ns(sessionStorage,t,e),t.useState=At,t.useThread=(t,e,s)=>{const r=new Ls;return t&&r.call(t,e,s),r},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.zeros=C}));
|
|
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:n,cos:i,sin:a,tan:o,acos:c,asin:h,atan:l,cosh:u,sinh:f,tanh:m,acosh:p,asinh:d,atanh:g,log:b}=Math;let w={cos:i,sin:a,tan:o,sinc:t=>a(n*t)/(n*t),sec:t=>1/i(t),csc:t=>1/a(t),cot:t=>1/o(t),acos:c,asin:h,atan:l,acot:t=>n/2-l(t),cosh:u,sinh:f,tanh:m,coth:t=>.5*b((1+t)/(1-t)),acosh:p,asinh:d,atanh:g};w=new Proxy(w,{get(t,e){if(e in t)return s=>+t[e](s).toFixed(15)}});class y{}const _=(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=>_(t,e)));if(ArrayBuffer.isView(e))return e.map((e=>t(e)));if(e instanceof Set)return new Set(_(t,...e));if(e instanceof Map)return new Map([...e].map((e=>[e[0],_(t,e[1])])));if(e instanceof Ge)return new Ge(e.rows,e.cols,_(e.arr.flat(1)));if(e instanceof Ke){const[s,r,n,i]=[e.a,e.b,e.z,e.phi];switch(t){case Math.log:return Je(ss(n),i);case Math.exp:return Je(es(s)*rs(r),es(s)*ns(r));case Math.abs:return n;case Math.sqrt:return Je(Ye(n)*rs(i/2),Ye(n)*ns(i/2));case w.cos:return Je(rs(s)*as(r),-ns(s)*os(r));case w.sin:return Je(ns(s)*as(r),rs(s)*os(r));case w.tan:{const t=rs(2*s)+as(2*r);return Je(ns(2*s)/t,os(2*r)/t)}case w.cosh:return Je(as(s)*rs(r),os(s)*ns(r));case w.sinh:return Je(os(s)*rs(r),as(s)*ns(r));case w.tanh:{const t=as(2*s)+rs(2*r);return Je(os(2*s)/t,ns(2*r)/t)}default:return t(e)}}else if(e instanceof Object)return Object.fromEntries(Object.entries(e).map((e=>[e[0],_(t,e[1])])))}));return 1==s.length?s[0]:s},v=(t,e)=>{if("number"==typeof t){if("number"==typeof e)return t+e;if(e instanceof Ke)return Je(t+e.a,e.b);if(e instanceof Ge)return Ge.nums(e.rows,e.cols,t).add(e);if(e instanceof Array)return e.map((e=>O(e,t)))}else{if(t instanceof Ke||t instanceof Ge)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])))}}},x=(t,e)=>{if("number"==typeof t){if("number"==typeof e)return t-e;if(e instanceof Ke)return Je(t-e.a,-e.b);if(e instanceof Ge)return Ge.nums(e.rows,e.cols,t).sub(e);if(e instanceof Array)return e.map((e=>S(e,t)))}else{if(t instanceof Ke||t instanceof Ge)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])))}}},E=(t,e)=>{if("number"==typeof t){if("number"==typeof e)return t*e;if(e instanceof Ke)return Je(t*e.a,t*e.b);if(e instanceof Ge)return Ge.nums(e.rows,e.cols,t).mul(e);if(e instanceof Array)return e.map((e=>T(t,e)))}else{if(t instanceof Ke||t instanceof Ge)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=>T(t,e)));if(e instanceof Array&&t.length===e.length)return t.map(((t,s)=>T(t,e[s])))}}},k=(t,e)=>{if("number"==typeof t){if("number"==typeof e)return t/e;if(e instanceof Ke)return Je(t/e.a,t/e.b);if(e instanceof Ge)return Ge.nums(e.rows,e.cols,t).div(e);if(e instanceof Array)return e.map((e=>j(t,e)))}else{if(t instanceof Ke||t instanceof Ge)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=>j(t,e)));if(e instanceof Array&&t.length===e.length)return t.map(((t,s)=>j(t,e[s])))}}},A=(t,e)=>{if("number"==typeof t){if("number"==typeof e)return t%e;if(e instanceof Ke)return Je(t%e.a,t%e.b);if(e instanceof Ge)return Ge.nums(e.rows,e.cols,t).modulo(e);if(e instanceof Array)return e.map((e=>j(t,e)))}else{if(t instanceof Ke||t instanceof Ge)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=v(s,e[t]);return s},S=(t,...e)=>{var s=t;for(let t=0;t<e.length;t++)s=x(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},j=(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=A(s,e[t]);return s},C=t=>new Array(t).fill(0),M=t=>new Array(t).fill(1),D=(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 Ge)return new Ge(t.rows,t.cols,P(t.arr.flat(1),e,s));if(t instanceof Ke)return new Ke(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])}}},$=(t,e,s)=>{if("number"==typeof t)return(s-e)*t+e;if(t instanceof Ge)return new Ge(t.rows,t.cols,$(t.arr.flat(1),e,s));if(t instanceof Ke)return new Ke($(t.a,e,s),$(t.b,e,s));if(t instanceof Array){if(t.every((t=>typeof("number"===t))))return t.map((t=>$(t,e,s)));{let e=new Array(t.length);for(let s=0;s<t.length;s++)e[s]=$(t[s])}}},R=(t,e,s,r,n)=>{if("number"==typeof t)return $(P(t,e,s),r,n);if(t instanceof Ge)return new Ge(t.rows,t.cols,R(t.arr.flat(1),e,s,r,n));if(t instanceof Ke)return new Ke(R(t.a,s,r,n),R(t.b,e,s,r,n));if(t instanceof Array){if(t.every((t=>typeof("number"===t))))return t.map((t=>R(t,e,s,r,n)));{let i=new Array(t.length);for(let a=0;a<t.length;a++)i[a]=R(t[a],e,s,r,n)}}},L=(t,e,s)=>{const[r,n]=[H(e,s),G(e,s)];if("number"==typeof t)return H(G(t,r),n);if(t instanceof Ge)return new Ge(t.rows,t.cols,L(t.arr.flat(1),r,n));if(t instanceof Ke)return new Ke(L(t.a,r,n),L(t.b,r,n));if(t instanceof Array){if(t.every((t=>typeof("number"===t))))return t.map((t=>L(t,r,n)));{let e=new Array(t.length);for(let s=0;s<t.length;s++)e[s]=L(t[s],r,n)}}},N=(t,e,s,r=!1)=>{let n=[];if(t<e)for(let i=t;r?i<=e:i<e;i+=s)n.push(10*i/10);else for(let i=t;r?i>=e:i>e;i-=s)n.push(10*i/10);return n},F=(t,e,s=Qe(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 n=[];let c;c=r?(a-o)/(s-1):(a-o)/s;for(var i=0;i<s;i++)t<e?n.push(o+c*i):n.push(a-c*i);return n}if([t,e].some((t=>t instanceof Ke))){const n=Je(t),i=Je(e);s=s||Math.abs(n.a-i.a)+1;const a=F(n.a,i.a,s,r),o=F(n.b,i.b,s,r);let c=new Array(s).fill(null);return c=c.map(((t,e)=>Je(a[e],o[e]))),c}}},z=(t,e,r=e-t+1,n=s,i=!0)=>F(t,e,r,i).map((t=>Xe(n,t))),B=(t,e,s=Qe(e-t)+1,r=!0)=>{if(Math.floor(s)===s){if([t,e].every((t=>"number"==typeof t))){const[n,i]=[t,e].sort(((t,e)=>e-t));let a;a=ts(n/i,r?s-1:s);const o=[i];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 Ke))){const n=Je(t),i=Je(e);let a;s=s||Math.abs(n.a-i.a)+1,a=ts(i.div(n),r?s-1:s);const o=[n];for(let t=1;t<s;t++)o.push(T(o[t-1],a));return o}}},U=(...t)=>mapfun((t=>t*Math.PI/180),...t),Z=(...t)=>mapfun((t=>t/Math.PI*180),...t),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))){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(V(...t[s])):t[s]instanceof Object&&e.push(V(...Object.values(t[s])));return 1===e.length?e[0]:e},H=(...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(H(...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},G=(...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(H(...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},W=(...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(W(...t[s])):t[s]instanceof Object&&e.push(null);return 1===e.length?e[0]:e},K=(t,e,s)=>{const[r,n]=[Math.min(e,s),Math.max(e,s)];return t>=r&&t<=n},J=(t,e,s=1e-4)=>Math.abs(t-e)<=s,Q=(t,e)=>t.reduce(((t,s)=>[...t,...e.map((t=>[s,t]))]),[]),Y=(t,e)=>{let s,r=1;if(t==cs(t)&&e==cs(e)){for(s=2;s<=t&&s<=e;++s)t%s==0&&e%s==0&&(r=s);return r}console.log("error")},X=(t,e)=>{let s;if(t==cs(t)&&e==cs(e)){for(s=t>e?t:e;s%t!=0||s%e!=0;)++s;return s}console.log("error")},tt={add:O,sub:S,mul:T,div:j,modulo:I,zeros:C,ones:M,nums:D,norm:P,lerp:$,map:R,clamp:L,arange:N,linspace:F,logspace:z,geomspace:B,sum:q,prod:V,accum:W,cartesianProduct:Q,ppcm:X,pgcd:Y,deg2rad:U,rad2deg:Z,inRange:K,isApproximatlyEqual:J},et={_mode:Number,_map:function(t,e,s){return e instanceof Ge?new Ge(e.rows,e.cols,e.arr.flat(1).map((e=>t(e,s)))):e instanceof Ke?new Ke(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}},st={_mode:Number,_map:function(t,e,s){return e instanceof Ge?new Ge(e.rows,e.cols,e.arr.flat(1).map((e=>t(e,s)))):e instanceof Ke?new Ke(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)?st._mode(!t):this._map(this.not,t)},and:function(t,...e){return["number","boolean"].includes(typeof t)?st._mode(e.reduce(((t,e)=>t&e),t)):this._map(this.and,t,e)},or:function(t,...e){return["number","boolean"].includes(typeof t)?st._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 st.not(st.xor(t,e))}};class rt{static withDiscount(t,e){if(1===e)return t.map((t=>[t]));const s=[];return t.forEach(((r,n)=>{this.withDiscount(t.slice(n),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,n)=>{this.withoutDiscount(t.slice(n+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=tt.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 We(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"#"+et.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 Ke(this.float(t[0],t[1]),this.float(e[0],e[1])):new Ke(...this.floats(2,t,e))}static complexInt(t=[0,1],e=[0,1]){return new Ke(this.int(t[0],t[1]),this.int(e[0],e[1]))}static complexBin(){return new Ke(...this.bins(2))}static complexOct(){return new Ke(...this.octs(2))}static complexDec(){return new Ke(...this.decs(10))}static complexHex(){return new Ke(...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 We(t,e,this.floats(t*e,s,r))}static matrixInt(t,e,s,r){return We(t,e,this.ints(t*e,s,r))}static matrixBin(t,e){return We(t,e,this.bins(t*e))}static matrixOct(t,e){return We(t,e,this.octs(t*e))}static matrixDec(t,e){return We(t,e,this.decs(t*e))}static matrixHex(t,e){return We(t,e,this.hex(t*e))}static matrixColor(t,e){return We(t,e,this.colors(t*e))}static matrixComplex(t,e,s,r){return We(t,e,this.complexes(t*e,s,r))}static matrixComplexInt(t,e,s,r){return We(t,e,this.complexesInt(t*e,s,r))}static matrixComplexBin(t,e){return We(t,e,this.complexesBin(t*e))}static matrixComplexOct(t,e){return We(t,e,this.complexesBin(t*e))}static matrixComplexDec(t,e){return We(t,e,this.complexesBin(t*e))}static matrixComplexHex(t,e){return We(t,e,this.complexesBin(t*e))}}const it=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}`)};globalThis.fetchdom=async function(t="https://github.com/zakarialaoui10"){const e=await fetch(t),s=await e.text();return(new DOMParser).parseFromString(s,"text/xml").documentElement},globalThis.fetchdomSync=function(t="https://github.com/zakarialaoui10"){const e=it(t);return(new DOMParser).parseFromString(e,"text/xml").documentElement};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}))},ct=t=>t instanceof Array?[Object.keys(t[0]),...t.map((t=>Object.values(t)))]:[Object.keys(t)],ht=(t,e)=>ct(t).map((t=>t.join(e))).join("\n"),lt=(t,e=",")=>ht(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 n=t[r];if("object"==typeof n&&null!==n){s.push(`${e}${r}:`);const t=ut(n,`${e} `);s.push(...t)}else s.push(`${e}${r}: ${n}`)}return s},ft=(t,e="")=>ut(t,e).join("\n"),mt=(t,e)=>ft(t instanceof Object?t:JSON.parse(t),e),pt=(t,e=1)=>{let s="";for(const r in t)if(t.hasOwnProperty(r)){const n=t[r];s+="\n"+" ".repeat(e)+`<${r}>`,s+="object"==typeof n?pt(n,e+2):`${n}`,s+=`</${r}>`}return s.trim()};class dt{constructor(t){this.cache={node:t}}isZikoUINode(){return!0}get node(){return this.cache.node}}class gt extends Array{constructor(...t){super(...t)}clear(){return this.length=0,this}getItemById(t){return this.find((e=>e.element.id===t))}getItemsByTagName(t){return this.filter((e=>e.element.tagName.toLowerCase()===t.toLowerCase()))}getElementsByClassName(t){return this.filter((e=>e.element.classList?.contains(t)))}querySelector(t){const e=globalThis?.document?.querySelector(t);return e&&this.find((t=>t.element===e))||null}querySelectorAll(t){const e=globalThis?.document?.querySelectorAll(t);return Array.from(e).map((t=>this.find((e=>e.element===t)))).filter(Boolean)}}const bt=new gt,wt={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},yt={store:new Map,index:0,register:function(t){this.store.set(this.index++,t)},reset(){this.index=0,this.store.clear()}},_t={ui_index:0,get_ui_index:function(){return this.ui_index++},register_ui:function(t){}},vt={store:new Map,index:0,register:function(t){console.log({index:this.index}),this.store.set(this.index++,t)}};function xt(){var t;globalThis?.__Ziko__||(globalThis.__Ziko__={__UI__:bt,__HYDRATION__:yt,__State__:vt,__Config__:wt,__CACHE__:_t},t=__Ziko__,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}}))}xt();class Et extends dt{constructor(){super()}init(t,e,s,r){if(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);break;default:throw Error("Not supported")}else this.target=t?.parentElement;Object.assign(this.cache,{name:e,isInteractive:!1,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.items=new gt,globalThis.__Ziko__.__UI__[this.cache.name]?globalThis.__Ziko__.__UI__[this.cache.name]?.push(this):globalThis.__Ziko__.__UI__[this.cache.name]=[this],t&&r&&this?.render?.(),globalThis.__Ziko__.__UI__.push(this)}get element(){return this.cache.element}[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})}isInteractive(){return this.cache.isInteractive}isUIElement(){return!0}}function kt(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 At(t){const{store:e,index:s}=__Ziko__.__State__;__Ziko__.__State__.register({value:t,subscribers:new Set,paused:!1});const r=e.get(s);return[function(){return{value:r.value,isStateGetter:()=>!0,_subscribe:t=>r.subscribers.add(t)}},function(t){r.paused||("function"==typeof t&&(t=t(r.value)),t!==r.value&&(r.value=t,r.subscribers.forEach((t=>t(r.value)))))},{pause:()=>{r.paused=!0},resume:()=>{r.paused=!1},clear:()=>{r.subscribers.clear()},force:t=>{"function"==typeof t&&(t=t(r.value)),r.value=t,r.subscribers.forEach((t=>t(r.value)))},getSubscribers:()=>new Set(r.subscribers)}]}globalThis.__Ziko__||xt();const Ot=t=>"function"==typeof t&&t?.()?.isStateGetter?.(),St=(t="")=>t.replace(/[A-Z]/g,(t=>"-"+t.toLowerCase())),Tt=(t="")=>{if(0===t.length)return!1;return/^[a-z][a-zA-Z0-9]*$/.test(t)};class jt extends dt{constructor(...t){super("span","text",!1,...t),this.element=globalThis?.document?.createTextNode(...t)}isText(){return!0}}const It=(...t)=>new jt(...t);async function Ct(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]=It(s[r])),s[r]instanceof Function){const t=s[r]();t.isStateGetter&&(s[r]=It(t.value),t._subscribe((t=>s[r].element.textContent=t),s[r]))}if("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]);else if(s[r]instanceof Promise){const n=await s[r];n.cache.parent=this,this.element?.[t](n.element),n.target=this.element,this.items[e](n)}else 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}function Mt(t,e){if(globalThis.SVGAElement&&this.element instanceof globalThis.SVGAElement&&(t=Tt(t)?St(t):t),!this?.attr[t]||this?.attr[t]!==e){if(Ot(e)){e()._subscribe((e=>this.element?.setAttribute(t,e)),this)}else this.element?.setAttribute(t,e);Object.assign(this.cache.attributes,{[t]:e})}}var Dt=Object.freeze({__proto__:null,getAttr:function(t){return t=is_camelcase(t)?camel2hyphencase(t):t,this.element.attributes[t].value},removeAttr:function(...t){for(let e=0;e<t.length;e++)this.element?.removeAttribute(t[e]);return this},setAttr:function(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(" ")),Mt.call(this,s[t],r[t])}else e instanceof Array&&(e=e.join(" ")),Mt.call(this,t,e);return this},setContentEditable:function(t=!0){return this.setAttr("contenteditable",t),this}});var Pt=Object.freeze({__proto__:null,after:function(t){return t?.isUIElement&&(t=t.element),this.element?.after(t),this},append:function(...t){return Ct.call(this,"append","push",...t),this},before:function(t){return t?.isUIElement&&(t=t.element),this.element?.before(t),this},clear:function(){return this?.items?.forEach((t=>t.unrender())),this.element.innerHTML="",this},insertAt:function(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]=It(e[s])),this.element?.insertBefore(e[s].element,this.items[t].element),this.items.splice(t,0,e[s]);return this},prepend:function(...t){return this.__addItem__.call(this,"prepend","unshift",...t),this},remove:function(...t){const e=t=>{"number"==typeof t&&(t=this.items[t]),t?.isUIElement&&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},render:function(t=this.target){if(!this.isBody)return t?.isUIElement&&(t=t.element),this.target=t,this.target?.appendChild(this.element),this},renderAfter:function(t=1){return setTimeout((()=>this.render()),t),this},replaceElementWith:function(t){return this.cache.element.replaceWith(t),this.cache.element=t,this},unrender:function(){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},unrenderAfter:function(t=1){return setTimeout((()=>this.unrender()),t),this}});const $t={Click:["Click","DblClick","ClickAway"],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"]},Rt=(t="")=>t.startsWith("Ptr")?`pointer${t.split("Ptr")[1].toLowerCase()}`:t.toLowerCase();function Lt(t,e,s,r,n){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]&&n&&this.cache.stream.history[e].push(n),this.cache.callbacks[e]?.map((t=>t(this)))}class Nt{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 n=t?.map((t=>Rt(t)));return n?.forEach(((n,i)=>{Object.assign(this.cache.preventDefault,{[n]:!1}),Object.assign(this.cache.options,{[n]:{}}),Object.assign(this.cache.paused,{[n]:!1}),Object.assign(this.cache.stream.enabled,{[n]:!1}),Object.assign(this.cache.stream.clear,{[n]:!1}),Object.assign(this.cache.stream.history,{[n]:[]}),Object.assign(this.cache.__controllers__,{[n]:t=>Lt.call(this,t,n,e,s)}),r&&Object.assign(this,{[`on${t[i]}`]:(...t)=>this.__onEvent(n,this.cache.options[n],{},...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[Rt(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 Ft extends Nt{constructor(t,e){super(t,$t.Click,zt,e)}}function zt(){"click"===this.currentEvent?this.dx=0:this.dx=1}const Bt=(t,e)=>new Ft(t,e);class Ut extends Nt{constructor(t,e){super(t,$t.Clipboard,Zt,e)}}function Zt(){}const qt=(t,e)=>new Ut(t,e);class Vt extends Nt{constructor(t,e,s){super(t,e,Ht,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 Ht(){}class Gt extends Nt{constructor(t,e){super(t,$t.Drag,Wt,e)}}function Wt(){}const Kt=(t,e)=>new Gt(t,e);class Jt extends Nt{constructor(t,e){super(t,$t.Focus,Qt,e)}}function Qt(){}const Yt=(t,e)=>new Jt(t,e);class Xt extends Nt{constructor(t,e){super(t,$t.Hash,te,e)}}function te(){}class ee extends Nt{constructor(t,e){super(t,$t.Key,se,e)}}function se(){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 re=(t,e)=>new ee(t,e);class ne extends Nt{constructor(t,e){super(t,$t.Mouse,ie,e)}}function ie(){}const ae=(t,e)=>new ne(t,e);class oe extends Nt{constructor(t,e){super(t,$t.Ptr,ce,e),this.isDown=!1}}function ce(){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 he=(t,e)=>new oe(t,e);class le extends Nt{constructor(t,e){super(t,$t.Touch,ue,e)}}function ue(){}class fe extends Nt{constructor(t,e){super(t,$t.Wheel,me,e)}}function me(){}const pe=(t,e)=>new fe(t,e),de={ptr:he,mouse:ae,key:re,click:Bt,drag:Kt,clipboard:qt,focus:Yt,wheel:pe},ge={};Object.entries($t).forEach((([t,e])=>{e.forEach((e=>{const s=`on${e}`;ge[s]=function(...e){return this.events[t]||(this.events[t]=de[t.toLowerCase()](this)),this.events[t][s](...e),this}}))}));var be=Object.freeze({__proto__:null,at:function(t){return this.items.at(t)},find:function(t){return this.items.filter(t)},forEach:function(t){return this.items.forEach(t),this},map:function(t){return this.items.map(t)}});var we=Object.freeze({__proto__:null,animate:function(t,{duration:e=1e3,iterations:s=1,easing:r="ease"}={}){return this.element?.animate(t,{duration:e,iterations:s,easing:r}),this},hide:function(){},show:function(){},size:function(t,e){return this.style({width:t,height:e})},style:function(t){if(!this.element?.style)return this;for(let e in t){const s=t[e];if(Ot(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}});function ye(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 _e{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}}const ve=t=>function(e){ye.call(this,e,t,null,null)};class xe extends _e{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]=ve(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 Ee=t=>new xe(t);let ke=class extends Et{constructor({element:t,name:e="",type:s="html",render:r=__Ziko__.__Config__.default.render}={}){super(),kt(this,Dt,Pt,we,be,ge),t&&this.init(t,e,s,r)}get element(){return this.cache.element}isInteractive(){return this.cache.isInteractive}useClient(t){return this.cache.isInteractive||(this.element.setAttribute("data-hydration-index",globalThis.__Ziko__.__HYDRATION__.index),globalThis.__Ziko__.__HYDRATION__.register((()=>this)),this.cache.isInteractive=!0),t&&this.element.setAttribute("data-hydration-directive",t),this}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}on(t,...e){return this.events.custom||(this.events.custom=Ee(this)),this.events.custom.on(t,...e),this}emit(t,e={}){return this.events.custom||(this.events.custom=Ee(this)),this.events.custom.emit(t,e),this}};class Ae extends ke{constructor(...t){super({element:"div",name:"view"}),this.append(...t)}}const Oe=["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","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr"],Se=["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"],Te=new Proxy({},{get(t,e){if("string"!=typeof e)return;let s,r=e.replaceAll("_","-").toLowerCase();return Oe.includes(r)&&(s="html"),Se.includes(r)&&(s="svg"),(...t)=>0===t.length?new ke({element:r,name:r,type:s}):["string","number"].includes(typeof t[0])||t[0]instanceof ke||"function"==typeof t[0]&&t[0]().isStateGetter()?new ke({element:r,name:r,type:s}).append(...t):new ke({element:r,type:s}).setAttr(t.shift()).append(...t)}});class je extends ke{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 Ie.call(this,s),this.style({alignItems:"number"==typeof t?Me.call(this,t):t,justifyContent:"number"==typeof e?De.call(this,e):e}),this}horizontal(t,e,s=1){return Ce.call(this,s),this.style({alignItems:"number"==typeof e?De.call(this,e):e,justifyContent:"number"==typeof t?Me.call(this,t):t}),this}show(){return this.isHidden=!1,this.style({display:"flex"}),this}}function Ie(t){return 1==t?this.style({flexDirection:"column"}):-1==t&&this.style({flexDirection:"column-reverse"}),this}function Ce(t){return 1==t?this.style({flexDirection:"row"}):-1==t&&this.style({flexDirection:"row-reverse"}),this}function Me(t){return"number"==typeof t&&(t=["flex-start","center","flex-end"][t+1]),t}function De(t){return Me(-t)}class Pe extends Et{constructor({element:t,name:e,type:s,render:r}){super({element:t,name:e,type:s,render:r})}}class $e extends Pe{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 Re extends ke{constructor(t){super({element:"div",name:"html_wrappper"}),this.element.append(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)),this.style({display:"contents"})}}class Le extends ke{constructor(t){super({element:"div",name:"html_wrappper"}),this.element.append(function(t){if("undefined"!=typeof DOMParser){const e=(new DOMParser).parseFromString(t.trim(),"image/svg+xml").documentElement;if("parsererror"===e.nodeName)throw new Error("Invalid SVG string");if(e.hasAttribute("xmlns"))return e;const{children:s,attributes:r}=e,n=document.createElementNS("http://www.w3.org/2000/svg","svg");for(let{name:t,value:e}of r)n.setAttribute(t,e);return n.append(...s),globalThis.svg=e,globalThis.children=s,globalThis.attributes=r,globalThis.element=n,n}throw new Error("DOMParser is not available in this environment")}(t)),this.style({display:"contents"})}}class Ne extends ke{constructor(t,e){super(),this.key=t,this.cases=e,this.init()}init(){Object.values(this.cases).filter((t=>t!=this.current)).forEach((t=>t.unrender())),super.init(this.current.element)}get current(){const t=Object.keys(this.cases).find((t=>t==this.key))??"default";return this.cases[t]}updateKey(t){return this.key=t,this.replaceElementWith(this.current.element),this}}const Fe=t=>(new XMLSerializer).serializeToString(t),ze=t=>btoa(Fe(t)),Be=t=>"data:image/svg+xml;base64,"+ze(t),Ue=t=>JSON.stringify(_((t=>["number","string","boolean","bigint"].includes(typeof t)?String(t):t instanceof Ke||t instanceof Ge?t.toString():t instanceof Array?qe(t):void 0),t),null," ").replace(/"([^"]+)":/g,"$1:").replace(/: "([^"]+)"/g,": $1"),Ze=t=>{if(!Array.isArray(t))return 0;let e=1;for(const s of t)if(Array.isArray(s)){const t=Ze(s);t+1>e&&(e=t+1)}return e},qe=t=>{let e=0;return function t(s){let r=Ze(s),n=0;return s.some((t=>Array.isArray(t)))&&(e++,n=1),"["+s.map(((r,n)=>["number","string","boolean","bigint"].includes(typeof r)?String(r):r instanceof Ke?r.toString():r instanceof Array?`\n${" ".repeat(e)}${t(r)}${n===s.length-1?"\n":""}`:r instanceof Object?Ue(r):void 0))+`${" ".repeat((r+e+1)*n)}]`}(t)},Ve=(t,e=0)=>{t=He(t);let s="";const r=" ".repeat(e);for(let n in t)if("object"==typeof t[n]){s+=`${r}${n} {\n`;const i=t[n];for(let t in i)"object"==typeof i[t]?s+=Ve({[t]:i[t]},e+1):s+=`${r} ${t.replace(/[A-Z]/g,(t=>"-"+t.toLowerCase()))}: ${i[t]};\n`;s+=`${r}}\n`}return s};function He(t){return"object"!=typeof t||null===t?t:Object.keys(t).reduce(((e,s)=>(e[s.trim()]=He(t[s]),e)),Array.isArray(t)?[]:{})}class Ge extends y{constructor(t,e,s=[]){if(super(),t instanceof Ge)this.arr=t.arr,this.rows=t.rows,this.cols=t.cols;else{let r,n,i=[];if(arguments[0]instanceof Array)t=arguments[0].length,e=arguments[0][0].length,i=arguments[0];else for(r=0;r<t;r++)for(i.push([]),i[r].push(new Array(e)),n=0;n<e;n++)i[r][n]=s[r*e+n],null==s[r*e+n]&&(i[r][n]=0);this.rows=t,this.cols=e,this.arr=i}this.#s()}toString(){return qe(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 Ge(t,e,this.arr.flat(1));console.error("Err")}static eye(t){let e=new Ge(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 Ge(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 Ge(this.cols,this.rows,this.arr.flat(1).reel)}get imag(){return new Ge(this.cols,this.rows,this.arr.flat(1).imag)}[Symbol.iterator](){return this.arr[Symbol.iterator]()}#s(){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==Ge.sub(e,t).max&&0==Ge.sub(e,t).min}get isAntiSym(){if(!this.isSquare)return!1;const t=this.T,e=this.clone;return 0==Ge.add(e,t).max&&0==Ge.add(e,t).min}get isDiag(){if(!this.isSquare)return!1;const t=this.T,e=this.clone,s=Ge.mul(e,t),r=Ge.dot(t,e);return 0==Ge.sub(s,r).max&&0==Ge.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=Ge.dot(t,t);return 0==Ge.sub(e,t).max&&0==Ge.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 Ge(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 Ge))?void console.warn("Tensors are not completely supported yet ..."):tt.sub(tt.mul(s[0][0],s[1][1]),tt.mul(s[0][1],s[1][0]));for(var r=0,n=0;n<s.length;n++){const i=tt.add(tt.mul(Xe(-1,n),tt.mul(s[0][n],e(t(s,n)))));r=tt.add(r,i)}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,n=t.length,i=0,a=[],o=[];for(e=0;e<n;e+=1)for(a[a.length]=[],o[o.length]=[],r=0;r<n;r+=1)a[e][r]=e==r?1:0,o[e][r]=t[e][r];for(e=0;e<n;e+=1){if(0==(i=o[e][e])){for(s=e+1;s<n;s+=1)if(0!=o[s][e]){for(r=0;r<n;r++)i=o[e][r],o[e][r]=o[s][r],o[s][r]=i,i=a[e][r],a[e][r]=a[s][r],a[s][r]=i;break}if(0==(i=o[e][e]))return}for(r=0;r<n;r++)o[e][r]=o[e][r]/i,a[e][r]=a[e][r]/i;for(s=0;s<n;s++)if(s!=e)for(i=o[s][e],r=0;r<n;r++)o[s][r]-=i*o[e][r],a[s][r]-=i*a[e][r]}return a}(this.arr);return new Ge(this.rows,this.cols,t.flat(1))}static zeros(t,e){let s=new Ge(t,e);for(let n=0;n<t;n++)for(var r=0;r<e;r++)s.arr[n][r]=0;return s}static ones(t,e){let s=new Ge(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 Ge(t,e);for(let n=0;n<t;n++)for(let t=0;t<e;t++)r.arr[n][t]=s;return r}static get rand(){return{int:(t,e,s,r)=>{let n=new Ge(t,e);for(let i=0;i<t;i++)for(let t=0;t<e;t++)n.arr[i][t]=nt.randInt(s,r);return n},bin:(t,e)=>{let s=new Ge(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 Ge(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 n=new Ge(t,e);for(let i=0;i<t;i++)for(let t=0;t<e;t++)n.arr[i][t]=nt.choice(s,r);return n},permutation:(t,e,s)=>{}}}static rands(t,e,s=1,r){let n=new Ge(t,e);for(let i=0;i<t;i++)for(let t=0;t<e;t++)n.arr[i][t]=nt.rand(s,r);return n}map(t,e,s,r){return tt.map(this,t,e,s,r)}lerp(t,e){return tt.lerp(this,t,e)}norm(t,e){return tt.norm(this,t,e)}clamp(t,e){return tt.clamp(this,t,e)}static map(t,e,s,r,n){return tt.map(t,e,s,r,n)}static lerp(t,e,s){return tt.lerp(t,e,s)}static norm(t,e,s){return tt.norm(t,e,s)}static clamp(t,e,s){return tt.clamp(We,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 Ge(this.rows,this.cols,t)}get toOct(){let t=this.arr.flat(1).toOct;return new Ge(this.rows,this.cols,t)}get toHex(){let t=this.arr.flat(1).toHex;return new Ge(this.rows,this.cols,t)}max2min(){let t=this.arr.flat(1).max2min;return new Ge(this.rows,this.cols,t)}min2max(){let t=this.arr.flat(1).min2max;return new Ge(this.rows,this.cols,t)}sortRows(t=void 0){let e=this.arr.map((e=>e.sort(t))).flat(1);return new Ge(this.rows,this.cols,e)}sortCols(t=void 0){let e=this.T.arr.map((e=>e.sort(t))).flat(1);return new Ge(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 Ge(s)}filterByCols(t){return new Ge(this.T.arr.filter((e=>e.includes(t))))}sortAll(t=void 0){let e=this.arr.flat(1).sort(t);return new Ge(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 Ge(this.rows,this.cols,e)}#r(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 Ge(this.rows,this.cols,e.flat(1))}hstack(...t){const e=[this,...t].reduce(((t,e)=>t.#r(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 Ge(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.#r(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 n=s-t,i=r-e,a=new Array(i);for(let s=0;s<n;s++){a[s]=[];for(let r=0;r<i;r++)a[s][r]=this.arr[s+t][r+e]}return new Ge(n,i,a.flat(1))}static slice(t,e=0,s=0,r=this.rows-1,n=this.cols-1){return t.slice(e,s,r,n)}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 Ke)&&(t[s]=Ge.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]=tt.add(this.arr[r][e],t[s].arr[r][e])}return new Ge(this.rows,this.cols,this.arr.flat(1))}sub(...t){for(let s=0;s<t.length;s++){"number"==typeof t[s]&&(t[s]=Ge.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]=tt.sub(this.arr[r][e],t[s].arr[r][e])}return new Ge(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]=Ge.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]=tt.mul(this.arr[e][s],t[r].arr[e][s])}return new Ge(this.rows,this.cols,this.arr.flat(1))}div(...t){for(let s=0;s<t.length;s++){"number"==typeof t[s]&&(t[s]=Ge.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]=tt.div(this.arr[r][e],t[s].arr[r][e])}return new Ge(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]=Ge.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]=tt.modulo(this.arr[r][e],t[s].arr[r][e])}return new Ge(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 n=0;n<this.arr[0].length;n++)e[s][r]=tt.add(e[s][r],tt.mul(this.arr[s][n],t.arr[n][r]))}}return new Ge(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 Ke))}get min(){this.DoesItContainComplexNumbers&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(H(...this.arr[e]));return H(...t)}get max(){this.DoesItContainComplexNumbers&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(G(...this.arr[e]));return G(...t)}get minRows(){this.DoesItContainComplexNumbers&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(H(...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(G(...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 Ge(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 Ge(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}))))),n=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&&n[e].map(((t,n)=>t.x=r[e][s[n]].x));n[t]=r[t];var i=n.map((t=>t.map((t=>t.x))));return new Ge(i).T}}const We=(t,e,s)=>new Ge(t,e,s);class Ke extends y{constructor(t=0,e=0){super(),t instanceof Ke?(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=Ye(t.z**2-t.a**2)):"a"in e&&"phi"in t?(this.a=t.a,this.b=t.a*is(t.phi)):"b"in e&&"z"in t?(this.b=t.b,this.a=Ye(t.z**2-t.b**2)):"b"in e&&"phi"in t?(this.b=e,this.a=t.b/is(t.phi)):"z"in e&&"phi"in t&&(this.a=t.z*rs(t.phi),this.a=t.z*ns(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 Ke(this.a,this.b)}get z(){return ls(this.a,this.b)}get phi(){return hs(this.b,this.a)}static Zero(){return new Ke(0,0)}get conj(){return new Ke(this.a,-this.b)}get inv(){return new Ke(this.a/(Xe(this.a,2)+Xe(this.b,2)),-this.b/(Xe(this.a,2)+Xe(this.b,2)))}add(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new Ke(t[e],0));let e=t.map((t=>t.a)),s=t.map((t=>t.b));return this.a+=+q(...e).toFixed(15),this.b+=+q(...s).toFixed(15),this}sub(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new Ke(t[e],0));let e=t.map((t=>t.a)),s=t.map((t=>t.b));return this.a-=+q(...e).toFixed(15),this.b-=+q(...s).toFixed(15),this}mul(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new Ke(t[e],0));let e=+V(this.z,...t.map((t=>t.z))).toFixed(15),s=+q(this.phi,...t.map((t=>t.phi))).toFixed(15);return this.a=+(e*rs(s).toFixed(15)).toFixed(14),this.b=+(e*ns(s).toFixed(15)).toFixed(14),this}div(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new Ke(t[e],0));let e=+(this.z/V(...t.map((t=>t.z)))).toFixed(15),s=+(this.phi-q(...t.map((t=>t.phi)))).toFixed(15);return this.a=+(e*rs(s).toFixed(15)).toFixed(15),this.b=+(e*ns(s).toFixed(15)).toFixed(15),this}pow(t){if(cs(t)===t&&t>0){let e=+(this.z**t).toFixed(15),s=+(this.phi*t).toFixed(15);this.a=+(e*rs(s).toFixed(15)).toFixed(15),this.b=+(e*ns(s).toFixed(15)).toFixed(15)}return this}static fromExpo(t,e){return new Ke(+(t*rs(e)).toFixed(13),+(t*ns(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 Je(t**this.a*rs(this.b*ss(t)),t**this.a*ns(this.b*ss(t)))}sqrtn(t=2){return Je(ts(this.z,t)*rs(this.phi/t),ts(this.z,t)*ns(this.phi/t))}get sqrt(){return this.sqrtn(2)}get log(){return Je(this.z,this.phi)}get cos(){return Je(rs(this.a)*as(this.b),ns(this.a)*os(this.b))}get sin(){return Je(ns(this.a)*as(this.b),rs(this.a)*os(this.b))}get tan(){const t=rs(2*this.a)+as(2*this.b);return Je(ns(2*this.a)/t,os(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 Je=(t,e)=>{if((t instanceof Array||ArrayBuffer.isView(t))&&(e instanceof Array||ArrayBuffer.isView(t)))return t.map(((s,r)=>Je(t[r],e[r])));if(t instanceof Ge&&e instanceof Ge){if(t.shape[0]!==e.shape[0]||t.shape[1]!==e.shape[1])return Error(0);const s=t.arr.map(((s,r)=>Je(t.arr[r],e.arr[r])));return new Ge(t.rows,t.cols,...s)}return new Ke(t,e)},Qe=(...t)=>_(Math.abs,...t),Ye=(...t)=>_(Math.sqrt,...t),Xe=(t,e)=>{if("number"==typeof t)return"number"==typeof e?Math.pow(t,e):e instanceof Ke?Ke.fromExpo(t**e.a,e.b*ss(t)):_((e=>Xe(t,e)),...e);if(t instanceof Ke)return"number"==typeof e?Ke.fromExpo(t.z**e,t.phi*e):e instanceof Ke?Ke.fromExpo(t.z**e.a*es(-t.phi*e.b),ss(t.z)*e.b+e.a*t.phi):_((e=>Xe(t,e)),...e);if(t instanceof Array){if("number"==typeof e)return _((t=>Xe(t,e)),...t);if(e instanceof Array){const s=[];for(let r=0;r<t.length;r++)s.push(_((e=>Xe(t[r],e)),...e));return s}}},ts=(t,e)=>{if("number"==typeof t)return"number"==typeof e?Math.pow(t,1/e):_((e=>ts(t,e)),...e);if(t instanceof Ke)return"number"==typeof e?Ke.fromExpo(ts(t.z,e),t.phi/e):_((e=>ts(t,e)),...e);if(t instanceof Array){if("number"==typeof e)return _((t=>ts(t,e)),...t);if(e instanceof Array){const s=[];for(let r=0;r<t.length;r++)s.push(_((e=>ts(t[r],e)),...e));return s}}},es=(...t)=>_(Math.exp,...t),ss=(...t)=>_(Math.log,...t),rs=(...t)=>_(w.cos,...t),ns=(...t)=>_(w.sin,...t),is=(...t)=>_(w.tan,...t),as=(...t)=>_(w.cosh,...t),os=(...t)=>_(w.sinh,...t),cs=(...t)=>_(Math.floor,...t),hs=(t,e,s=!0)=>{if("number"==typeof t)return"number"==typeof e?s?Math.atan2(t,e):180*Math.atan2(t,e)/Math.PI:_((e=>hs(t,e,s)),...e);if(t instanceof Array){if("number"==typeof e)return _((t=>hs(t,e,s)),...t);if(e instanceof Array){const s=[];for(let r=0;r<t.length;r++)s.push(_((e=>Xe(t[r],e)),...e));return s}}},ls=(...t)=>t.every((t=>"number"==typeof t))?Math.hypot(...t):t.every((t=>t instanceof Array))?_(Math.hypot,...t):void 0,{PI:us,sqrt:fs,cos:ms,sin:ps,acos:ds,pow:gs}=Math,bs=t=>t,ws=(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 ys{constructor(t,{ease:e=bs,step:s=50,t0:r=0,start:n=!0,duration:i=3e3}={}){this.callback=t,this.state={isRunning:!1,animationId:null,startTime:null,ease:e,step:s,autoStart:n,duration:i},this.t=0,this.tx=0,this.ty=0,this.i=0,this.state.autoStart&&this.start()}#i=()=>{this.t+=this.state.step,this.i++,this.tx=R(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)};#a(t=!0){return this.state.isRunning||(t&&this.reset(!1),this.state.isRunning=!0,this.state.startTime=Date.now(),this.state.animationId=setInterval(this.#i,this.state.step)),this}start(){return this.#a(!0)}pause(){return this.state.isRunning&&(clearInterval(this.state.animationId),this.state.isRunning=!1),this}resume(){return this.#a(!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 _s{constructor(t,e,s=1/0,r){this.ms=e,this.fn=t,this.count=s,this.frame=1,this.id=null,this.running=!1,r&&this.start()}start(){return this.running||(this.running=!0,this.frame=1,this.id=setInterval((()=>{this.frame>this.count?this.stop():(this.fn.call(null,this),this.frame++)}),this.ms)),this}stop(){return this.running&&(this.running=!1,clearInterval(this.id),this.id=null),this}isRunning(){return this.running}}class vs extends _s{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 xs{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 Es{constructor(t,{step:e=1e3,t0:s=0,t1:r=1/0,autoplay:n=!0}={}){this.callback=t,this.cache={isRunning:!1,id:null,last_tick:null,step:e,t0:s,t1:r,autoplay:n,pauseTime:null,frame:0},n&&(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 ks{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 As=()=>new ks;class Os{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=As(),this}}class Ss{constructor({viewport:t,charset:e,description:s,author:r,keywords:n}){this.document=globalThis?.document,this.meta={},this.init({viewport:t,charset:e,description:s,author:r,keywords:n})}init({viewport:t,charset:e,description:s,author:r,keywords:n}){t&&this.setViewport(t),e&&this.setCharset(e),s&&this.describe(s),r&&this.setAuthor(r),n&&this.setKeywords(n)}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}}class Ts{constructor(t=document.title,e=!0){this.cache={Emitter:null},e&&this.useEventEmitter(),this.set(t)}useEventEmitter(){return this.cache.Emitter=As(),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}}class js{constructor({title:t,lang:e,icon:s,meta:r,noscript:n}){this.html=globalThis?.document?.documentElement,this.head=globalThis?.document?.head,t&&((t,e)=>{new Ts(t,e)})(t),e&&this.setLang(e),s&&((t,e)=>{new Os(t,e)})(s),r&&(({viewport:t,charset:e,description:s,author:r,keywords:n})=>{new Ss({viewport:t,charset:e,description:s,author:r,keywords:n})})(r),n&&this.setNoScript()}setLang(t){this.html.setAttribute("lang",t)}setNoScript(t){}}class Is{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?.isUIElement?this.wrapper=t:"function"==typeof t&&(this.wrapper=t()),this}setHead(t){return this.head=t instanceof js?t:(({title:t,lang:e,icon:s,meta:r,noscript:n})=>new js({title:t,lang:e,icon:s,meta:r,noscript:n}))(t),this}}function Cs(t){return/:\w+/.test(t)}class Ms extends Is{constructor({head:t,wrapper:e,target:s,routes:r}){super({head:t,wrapper:e,target:s}),this.routes=new Map([["404",It("Error 404")],...Object.entries(r)]),this.clear(),globalThis.onpopstate=this.render(location.pathname)}clear(){return[...this.routes].forEach((t=>{!Cs(t[0])&&t[1]?.isUIElement&&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],n=r[t];if(!e.startsWith(":")&&e!==n)return!1}return!0}(e[0],t)));let r;if(Cs(e)){const n=function(t,e){const s=t.split("/"),r=e.split("/"),n={};if(s.length!==r.length)return n;for(let t=0;t<s.length;t++){const e=s[t],i=r[t];if(e.startsWith(":"))n[e.slice(1)]=i;else if(e!==i)return{}}return n}(e,t);r=s.call(this,n)}else s?.isUIElement&&s.render(this.wrapper),"function"==typeof s&&(r=s());return r?.isUIElement&&r.render(this.wrapper),r instanceof Promise&&r.then((t=>t.render(this.wrapper))),globalThis.history.pushState({},"",t),this}}const Ds=({head:t,wrapper:e,target:s,routes:r})=>new Ms({head:t,wrapper:e,target:s,routes:r});function Ps(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("/"),n=e.split("/"),i=r.indexOf(n.at(-1));if(-1!==i){const t=r.slice(i+1),e=r.at(-1),n="index.js"===e||"index.ts"===e,a=s.some((t=>e===`.${t}`||e.endsWith(`.${t}`)));if(n)return"/"+(t.length>1?t.slice(0,-1).join("/"):"");if(a)return"/"+t.join("/").replace(/\.(js|ts)$/,"")}return""}class $s{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.#o(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}#o(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 Rs=t=>new $s(t);class Ls{#h;constructor(){this.#h=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.#h],{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 Ns{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.#s(),this}#s(){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 Fs{constructor(t,e,s){this.cache={storage:t,globalKey:e,channel:Rs(`Ziko:useStorage-${e}`),oldItemKeys:new Set},this.#e(s),this.#s()}get items(){return JSON.parse(this.cache.storage[this.cache.globalKey]??null)}#s(){for(let t in this.items)Object.assign(this,{[[t]]:this.items[t]})}#e(t){this.cache.channel=Rs(`Ziko:useStorage-${this.cache.globalKey}`),this.cache.channel.on("Ziko-Storage-Updated",(()=>this.#s())),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.#s(),this}add(t){const e={...this.items,...t};return this.cache.storage.setItem(this.cache.globalKey,JSON.stringify(e)),this.#s(),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.#s(),this}}let{sqrt:zs,cos:Bs,sin:Us,exp:Zs,log:qs,cosh:Vs,sinh:Hs}=Math;for(const t of Object.getOwnPropertyNames(Math)){const e=Math[t];"function"==typeof e&&(Math[t]=new Proxy(e,{apply(e,s,r){const n=r[0];if("number"==typeof n||0===r.length)return e.apply(s,r);if(n?.isComplex?.()){const{a:t,b:i,z:a,phi:o}=n,c=(t,e)=>new n.constructor(t,e);switch(e.name){case"abs":return n.z;case"sqrt":return c(zs(a)*Bs(o/2),zs(a)*Us(o/2));case"log":return c(qs(a),o);case"exp":return c(Zs(t)*Bs(i),Zs(t)*Us(i));case"cos":return c(Bs(t)*Vs(i),-Us(t)*Hs(i));case"sin":return c(Us(t)*Vs(i),Bs(t)*Hs(i));case"tan":{const e=Bs(2*t)+Vs(2*i);return c(Us(2*t)/e,Hs(2*i)/e)}case"cosh":return c(Vs(t)*Bs(i),Hs(t)*Us(i));case"sinh":return c(Hs(t)*Bs(i),Vs(t)*Us(i));case"tanh":{const e=Vs(2*t)+Bs(2*i);return c(Hs(2*t)/e,Us(2*i)/e)}default:return e.apply(s,r)}}throw new TypeError(`Math.${t} expects only numbers`)}}))}globalThis?.document&&document?.addEventListener("DOMContentLoaded",__Ziko__.__Config__.init()),t.App=({head:t,wrapper:e,target:s})=>new Is({head:t,wrapper:e,target:s}),t.Arc=t=>1-ps(ds(t)),t.Back=(t,e=1)=>t**2*((e+1)*t-e),t.Base=et,t.Clock=vs,t.Combinaison=rt,t.Complex=Ke,t.Discret=(t,e=5)=>Math.ceil(t*e)/e,t.E=s,t.EPSILON=r,t.Elastic=t=>-2*gs(2,10*(t-1))*ms(20*us*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 n=0;n<e.length;n++){const i=await t[e[n]](),a=await i.default;Object.assign(r,{[Ps(e[n],s)]:a})}return Ds({target:document.body,routes:{"/":()=>{},...r},wrapper:Te.section()})},t.Flex=(...t)=>{let e="div";return"string"==typeof t[0]&&(e=t[0],t.pop()),new je(e).append(...t)},t.HTMLWrapper=t=>new Re(t),t.InBack=(t,e=1.70158,s=e+1)=>s*gs(t,3)-e*t**2,t.InBounce=(t,e=7.5625,s=2.75)=>1-ws(1-t,e,s),t.InCirc=t=>1-fs(1-t**2),t.InCubic=t=>t**3,t.InElastic=(t,e=2*us/3)=>0===t?0:1===t?1:-gs(2,10*t-10)*ps((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?gs(2*t,2)*(2*(s+1)*t-s)/2:(gs(2*t-2,2)*((s+1)*(2*t-2)+s)+2)/2,t.InOutBounce=(t,e=7.5625,s=2.75)=>t<.5?ws(1-2*t,e,s)/2:ws(2*t-1,e,s)/2,t.InOutCirc=t=>t<.5?(1-fs(1-(2*t)**2))/2:(fs(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*us/4.5)=>0===t?0:1===t?1:t<.5?-gs(2,20*t-10)*ps((20*t-11.125)*e)/2:gs(2,-20*t+10)*ps((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=>-(ms(us*t)-1)/2,t.InQuad=t=>t**2,t.InQuart=t=>t**4,t.InQuint=t=>t**5,t.InSin=t=>1-ms(t*us/2),t.Linear=bs,t.Logic=st,t.Matrix=Ge,t.OutBack=(t,e=1.70158,s=e+1)=>1+s*gs(t-1,3)+e*gs(t-1,2),t.OutBounce=ws,t.OutCirc=t=>fs(1-(t-1)**2),t.OutCubic=t=>1-(1-t)**3,t.OutElastic=(t,e=2*us/3)=>0===t?0:1===t?1:gs(2,-10*t)*ps((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=>ps(t*us/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 n=s[t];for(let t=0;t<=n.length;t++){const s=n.slice(0,t),i=n.slice(t);e.push(s.concat([r],i))}}return e}},t.Random=nt,t.SPA=Ds,t.SVGWrapper=t=>new Le(t),t.Scheduler=(t,{repeat:e=null}={})=>new xs(t,{repeat:e}),t.Step=(t,e=5)=>Math.floor(t*e)/e,t.Suspense=(t,e)=>new $e(t,e),t.Switch=({key:t,cases:e})=>new Ne(t,e),t.Tick=_s,t.TimeAnimation=ys,t.TimeLoop=Es,t.TimeScheduler=xs,t.UIElement=ke,t.UIHTMLWrapper=Re,t.UINode=dt,t.UISVGWrapper=Le,t.UISwitch=Ne,t.UIView=Ae,t.Utils=tt,t.View=(...t)=>new Ae(...t),t.ZikoApp=Is,t.ZikoEventClick=Ft,t.ZikoEventClipboard=Ut,t.ZikoEventCustom=Vt,t.ZikoEventDrag=Gt,t.ZikoEventFocus=Jt,t.ZikoEventHash=Xt,t.ZikoEventKey=ee,t.ZikoEventMouse=ne,t.ZikoEventPointer=oe,t.ZikoEventTouch=le,t.ZikoEventWheel=fe,t.ZikoSPA=Ms,t.ZikoUIFlex=je,t.ZikoUISuspense=$e,t.ZikoUIText=jt,t.ZikoUseRoot=Ns,t.__ZikoEvent__=Nt,t.abs=Qe,t.accum=W,t.acos=(...t)=>_(w.acos,...t),t.acosh=(...t)=>_(w.acosh,...t),t.acot=(...t)=>_(w.acot,...t),t.add=O,t.animation=(t,{ease:e,t0:s,t1:r,start:n,duration:i}={})=>new ys(t,{ease:e,t0:s,t1:r,start:n,duration:i}),t.arange=N,t.arr2str=qe,t.asin=(...t)=>_(w.asin,...t),t.asinh=(...t)=>_(w.asinh,...t),t.atan=(...t)=>_(w.atan,...t),t.atan2=hs,t.atanh=(...t)=>_(w.atanh,...t),t.bindCustomEvent=(t,e,s)=>new Vt(t,e,s),t.bindHashEvent=(t,e)=>new Xt(t,e),t.bindTouchEvent=(t,e)=>new le(t,e),t.bind_click_event=Bt,t.bind_clipboard_event=qt,t.bind_drag_event=Kt,t.bind_focus_event=Yt,t.bind_key_event=re,t.bind_mouse_event=ae,t.bind_pointer_event=he,t.bind_wheel_event=pe,t.cartesianProduct=Q,t.ceil=(...t)=>_(Math.ceil,...t),t.clamp=L,t.clock=t=>new vs(t),t.combinaison=(t,e,s=!1)=>rt[s?"withDiscount":"withoutDiscount"](t,e),t.complex=Je,t.cos=rs,t.cosh=as,t.cot=(...t)=>_(w.cot,...t),t.coth=(...t)=>_(w.coth,...t),t.csc=(...t)=>_(w.csc,...t),t.csv2arr=at,t.csv2json=(t,e=",")=>JSON.stringify(ot(t,e)),t.csv2matrix=(t,e=",")=>new Ge(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 `,n=[];for(let t=1;t<s.length;t++){const e=s[t].split(",");n.push(`(${e})`)}return r+n.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.define_wc=function(t,e,s={},{mode:r="open"}={}){globalThis.customElements?.get(t)?console.warn(`Custom element "${t}" is already defined`):-1!==t.search("-")?globalThis.customElements?.define(t,class extends HTMLElement{static get observedAttributes(){return["style",...Object.keys(s)]}constructor(){super(),this.attachShadow({mode:r}),this.props={},this.mask={...s}}connectedCallback(){this.render()}render(){this.shadowRoot.innerHTML="",this.UIElement=e(this.props).render(this.shadowRoot)}attributeChangedCallback(t,e,s){Object.assign(this.props,{[t]:this.mask[t].type(s)}),this.render()}}):console.warn(`"${t}" is not a valid custom element name`)},t.deg2rad=U,t.div=j,t.e=es,t.fact=(...t)=>_((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=cs,t.geomspace=B,t.getEvent=Rt,t.hypot=ls,t.inRange=K,t.isApproximatlyEqual=J,t.isStateGetter=Ot,t.json2arr=t=>ct(t instanceof Object?t:JSON.parse(t)),t.json2css=Ve,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=pt,t.json2xmlFile=(t,e)=>{const s=pt(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=$,t.linspace=F,t.ln=ss,t.logspace=z,t.loop=(t,e={})=>new Es(t,e),t.map=R,t.mapfun=_,t.matrix=We,t.matrix2=(...t)=>new Ge(2,2,t),t.matrix3=(...t)=>new Ge(3,3,t),t.matrix4=(...t)=>new Ge(4,4,t),t.max=G,t.min=H,t.modulo=I,t.mul=T,t.norm=P,t.nums=D,t.obj2str=Ue,t.ones=M,t.pgcd=Y,t.pow=Xe,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=X,t.preload=it,t.prod=V,t.rad2deg=Z,t.round=(...t)=>_(Math.round,...t),t.sec=(...t)=>_(w.sec,...t),t.sig=(...t)=>_((t=>1/(1+es(-t))),...t),t.sign=(...t)=>_(Math.sign,...t),t.sin=ns,t.sinc=(...t)=>_(w.sinc,...t),t.sinh=os,t.sleep=t=>new Promise((e=>setTimeout(e,t))),t.sqrt=Ye,t.sqrtn=ts,t.step_fps=t=>1e3/t,t.sub=S,t.subSet=null,t.sum=q,t.svg2ascii=ze,t.svg2img=(t,e=!0)=>Te.img(Be(t)).render(e),t.svg2imgUrl=Be,t.svg2str=Fe,t.tags=Te,t.tan=is,t.tanh=(...t)=>_(w.tanh,...t),t.text=It,t.throttle=(t,e)=>{let s=0;return(...r)=>{const n=(new Date).getTime();n-s<e||(s=n,t(...r))}},t.tick=(t,e,s=1/0,r=!0)=>new _s(t,e,s,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.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=Rs,t.useDerived=function(t,e){let s=t(...e.map((t=>t().value)));const r=new Set;return e.forEach((n=>{n()._subscribe((()=>{{const n=t(...e.map((t=>t().value)));n!==s&&(s=n,r.forEach((t=>t(s))))}}))})),()=>({value:s,isStateGetter:()=>!0,_subscribe:t=>r.add(t)})},t.useEventEmitter=As,t.useLocaleStorage=(t,e)=>new Fs(localStorage,t,e),t.useReactive=t=>_((t=>{const e=At(t);return{get:e[0],set:e[1]}}),t),t.useRoot=(t,{namespace:e,register:s,ValidateCssProps:r}={})=>new Ns(t,{namespace:e,register:s,ValidateCssProps:r}),t.useSessionStorage=(t,e)=>new Fs(sessionStorage,t,e),t.useState=At,t.useThread=(t,e,s)=>{const r=new Ls;return t&&r.call(t,e,s),r},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.zeros=C}));
|
package/dist/ziko.mjs
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/*
|
|
3
3
|
Project: ziko.js
|
|
4
4
|
Author: Zakaria Elalaoui
|
|
5
|
-
Date :
|
|
5
|
+
Date : Mon Nov 10 2025 12:33:51 GMT+0100 (UTC+01:00)
|
|
6
6
|
Git-Repo : https://github.com/zakarialaoui10/ziko.js
|
|
7
7
|
Git-Wiki : https://github.com/zakarialaoui10/ziko.js/wiki
|
|
8
8
|
Released under MIT License
|
|
@@ -1107,6 +1107,10 @@ class UIStore extends Array {
|
|
|
1107
1107
|
constructor(...args) {
|
|
1108
1108
|
super(...args);
|
|
1109
1109
|
}
|
|
1110
|
+
clear(){
|
|
1111
|
+
this.length = 0;
|
|
1112
|
+
return this;
|
|
1113
|
+
}
|
|
1110
1114
|
getItemById(id) {
|
|
1111
1115
|
return this.find(n => n.element.id === id);
|
|
1112
1116
|
}
|
|
@@ -1206,7 +1210,7 @@ class UIElementCore extends UINode{
|
|
|
1206
1210
|
constructor(){
|
|
1207
1211
|
super();
|
|
1208
1212
|
}
|
|
1209
|
-
init(element, name, type, render
|
|
1213
|
+
init(element, name, type, render){
|
|
1210
1214
|
this.target = globalThis.__Ziko__.__Config__.default.target||globalThis?.document?.body;
|
|
1211
1215
|
if(typeof element === "string") {
|
|
1212
1216
|
switch(type){
|
|
@@ -1224,7 +1228,7 @@ class UIElementCore extends UINode{
|
|
|
1224
1228
|
else this.target = element?.parentElement;
|
|
1225
1229
|
Object.assign(this.cache, {
|
|
1226
1230
|
name,
|
|
1227
|
-
isInteractive,
|
|
1231
|
+
isInteractive : false,
|
|
1228
1232
|
parent:null,
|
|
1229
1233
|
isBody:false,
|
|
1230
1234
|
isRoot:false,
|
|
@@ -1264,19 +1268,6 @@ class UIElementCore extends UINode{
|
|
|
1264
1268
|
this.items = new UIStore();
|
|
1265
1269
|
globalThis.__Ziko__.__UI__[this.cache.name]?globalThis.__Ziko__.__UI__[this.cache.name]?.push(this):globalThis.__Ziko__.__UI__[this.cache.name]=[this];
|
|
1266
1270
|
element && render && this?.render?.();
|
|
1267
|
-
if(
|
|
1268
|
-
// globalThis.__Ziko__.__Config__.renderingMode !== "spa"
|
|
1269
|
-
// &&
|
|
1270
|
-
// !globalThis.__Ziko__.__Config__.isSSC
|
|
1271
|
-
// &&
|
|
1272
|
-
this.isInteractive()){
|
|
1273
|
-
// this.setAttr("ziko-hydration-index", globalThis.__Ziko__.__HYDRATION__.index);
|
|
1274
|
-
// this.element.setAttribute('ziko-hydration-index', globalThis.__Ziko__.__HYDRATION__.index)
|
|
1275
|
-
// console.log({i : globalThis.__Ziko__.__HYDRATION__.index})
|
|
1276
|
-
// const index = globalThis.__Ziko__.__HYDRATION__.index
|
|
1277
|
-
// this.element.setAttribute('data-hydration-index', globalThis.__Ziko__.__HYDRATION__.index)
|
|
1278
|
-
globalThis.__Ziko__.__HYDRATION__.register(this.element, () => this);
|
|
1279
|
-
}
|
|
1280
1271
|
globalThis.__Ziko__.__UI__.push(this);
|
|
1281
1272
|
}
|
|
1282
1273
|
get element(){
|
|
@@ -2366,6 +2357,15 @@ let UIElement$1 = class UIElement extends UIElementCore{
|
|
|
2366
2357
|
isInteractive(){
|
|
2367
2358
|
return this.cache.isInteractive;
|
|
2368
2359
|
}
|
|
2360
|
+
useClient(directive){
|
|
2361
|
+
if(!this.cache.isInteractive){
|
|
2362
|
+
this.element.setAttribute('data-hydration-index', globalThis.__Ziko__.__HYDRATION__.index);
|
|
2363
|
+
globalThis.__Ziko__.__HYDRATION__.register(() => this);
|
|
2364
|
+
this.cache.isInteractive = true;
|
|
2365
|
+
}
|
|
2366
|
+
if(directive)this.element.setAttribute('data-hydration-directive', directive);
|
|
2367
|
+
return this;
|
|
2368
|
+
}
|
|
2369
2369
|
// isUIElement(){
|
|
2370
2370
|
// return true;
|
|
2371
2371
|
// }
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ziko",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.48.0",
|
|
4
4
|
"description": "A versatile JavaScript library offering a rich set of Hyperscript Based UI components, advanced mathematical utilities, interactivity ,animations, client side routing and more ...",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"front-end",
|
|
@@ -21,8 +21,10 @@
|
|
|
21
21
|
"files": [
|
|
22
22
|
"src",
|
|
23
23
|
"dist",
|
|
24
|
+
"types",
|
|
24
25
|
"LICENCE"
|
|
25
26
|
],
|
|
27
|
+
"types": "./types/global.d.ts",
|
|
26
28
|
"exports": {
|
|
27
29
|
"./*": "./src/*",
|
|
28
30
|
".": {
|
package/src/__ziko__/__ui__.js
CHANGED
|
@@ -36,6 +36,15 @@ class UIElement extends UIElementCore{
|
|
|
36
36
|
isInteractive(){
|
|
37
37
|
return this.cache.isInteractive;
|
|
38
38
|
}
|
|
39
|
+
useClient(directive){
|
|
40
|
+
if(!this.cache.isInteractive){
|
|
41
|
+
this.element.setAttribute('data-hydration-index', globalThis.__Ziko__.__HYDRATION__.index);
|
|
42
|
+
globalThis.__Ziko__.__HYDRATION__.register(() => this);
|
|
43
|
+
this.cache.isInteractive = true;
|
|
44
|
+
}
|
|
45
|
+
if(directive)this.element.setAttribute('data-hydration-directive', directive);
|
|
46
|
+
return this;
|
|
47
|
+
}
|
|
39
48
|
// isUIElement(){
|
|
40
49
|
// return true;
|
|
41
50
|
// }
|
|
@@ -5,7 +5,7 @@ class UIElementCore extends UINode{
|
|
|
5
5
|
constructor(){
|
|
6
6
|
super()
|
|
7
7
|
}
|
|
8
|
-
init(element, name, type, render
|
|
8
|
+
init(element, name, type, render){
|
|
9
9
|
this.target = globalThis.__Ziko__.__Config__.default.target||globalThis?.document?.body;
|
|
10
10
|
if(typeof element === "string") {
|
|
11
11
|
switch(type){
|
|
@@ -23,7 +23,7 @@ class UIElementCore extends UINode{
|
|
|
23
23
|
else this.target = element?.parentElement;
|
|
24
24
|
Object.assign(this.cache, {
|
|
25
25
|
name,
|
|
26
|
-
isInteractive,
|
|
26
|
+
isInteractive : false,
|
|
27
27
|
parent:null,
|
|
28
28
|
isBody:false,
|
|
29
29
|
isRoot:false,
|
|
@@ -63,19 +63,6 @@ class UIElementCore extends UINode{
|
|
|
63
63
|
this.items = new UIStore();
|
|
64
64
|
globalThis.__Ziko__.__UI__[this.cache.name]?globalThis.__Ziko__.__UI__[this.cache.name]?.push(this):globalThis.__Ziko__.__UI__[this.cache.name]=[this];
|
|
65
65
|
element && render && this?.render?.()
|
|
66
|
-
if(
|
|
67
|
-
// globalThis.__Ziko__.__Config__.renderingMode !== "spa"
|
|
68
|
-
// &&
|
|
69
|
-
// !globalThis.__Ziko__.__Config__.isSSC
|
|
70
|
-
// &&
|
|
71
|
-
this.isInteractive()){
|
|
72
|
-
// this.setAttr("ziko-hydration-index", globalThis.__Ziko__.__HYDRATION__.index);
|
|
73
|
-
// this.element.setAttribute('ziko-hydration-index', globalThis.__Ziko__.__HYDRATION__.index)
|
|
74
|
-
// console.log({i : globalThis.__Ziko__.__HYDRATION__.index})
|
|
75
|
-
// const index = globalThis.__Ziko__.__HYDRATION__.index
|
|
76
|
-
// this.element.setAttribute('data-hydration-index', globalThis.__Ziko__.__HYDRATION__.index)
|
|
77
|
-
globalThis.__Ziko__.__HYDRATION__.register(this.element, () => this)
|
|
78
|
-
}
|
|
79
66
|
globalThis.__Ziko__.__UI__.push(this)
|
|
80
67
|
}
|
|
81
68
|
get element(){
|