ziko 1.5.0 → 1.6.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 +49 -28
- package/dist/ziko.js +49 -28
- package/dist/ziko.min.js +2 -2
- package/dist/ziko.mjs +49 -28
- package/package.json +1 -1
- package/src/dom/components/swap/index.js +3 -3
- package/src/dom/constructors/UIElement.js +14 -2
- package/src/dom/constructors/UIElementCore.js +2 -1
- package/src/dom/constructors/mixins/dom.js +31 -22
package/dist/ziko.cjs
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/*
|
|
3
3
|
Project: ziko.js
|
|
4
4
|
Author: Zakaria Elalaoui
|
|
5
|
-
Date : Fri Jul 31 2026
|
|
5
|
+
Date : Fri Jul 31 2026 17:26:32 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
|
|
@@ -2252,6 +2252,7 @@ class UIElementCore extends UINode{
|
|
|
2252
2252
|
else this.target = element?.parentElement;
|
|
2253
2253
|
Object.assign(this.cache, {
|
|
2254
2254
|
name,
|
|
2255
|
+
itemsTarget : this,
|
|
2255
2256
|
isInteractive : false,
|
|
2256
2257
|
parent:null,
|
|
2257
2258
|
isBody:false,
|
|
@@ -2288,7 +2289,7 @@ class UIElementCore extends UINode{
|
|
|
2288
2289
|
get element(){
|
|
2289
2290
|
return this.cache.element;
|
|
2290
2291
|
}
|
|
2291
|
-
|
|
2292
|
+
[Symbol.iterator](){
|
|
2292
2293
|
return this.items[Symbol.iterator]();
|
|
2293
2294
|
}
|
|
2294
2295
|
maintain() {
|
|
@@ -2514,12 +2515,6 @@ class ZikoUIText extends UINode {
|
|
|
2514
2515
|
}
|
|
2515
2516
|
const text = (...str) => new ZikoUIText(...str);
|
|
2516
2517
|
|
|
2517
|
-
// import { isStateGetter } from "../../../hooks/use-state.js";
|
|
2518
|
-
// import {
|
|
2519
|
-
// is_camelcase,
|
|
2520
|
-
// camel2hyphencase
|
|
2521
|
-
// } from '../../../data/string/index.js';
|
|
2522
|
-
|
|
2523
2518
|
function append(...ele) {
|
|
2524
2519
|
__addItem__.call(this, "append", "push", ...ele);
|
|
2525
2520
|
return this;
|
|
@@ -2529,19 +2524,30 @@ function prepend(...ele) {
|
|
|
2529
2524
|
return this;
|
|
2530
2525
|
}
|
|
2531
2526
|
function insertAt(index, ...ele) {
|
|
2532
|
-
|
|
2533
|
-
|
|
2527
|
+
const target = this.itemsTarget;
|
|
2528
|
+
|
|
2529
|
+
if (index >= target.items.length) return this.append(...ele);
|
|
2530
|
+
|
|
2534
2531
|
for (let i = 0; i < ele.length; i++) {
|
|
2535
|
-
|
|
2536
|
-
|
|
2537
|
-
|
|
2532
|
+
if (["number", "string"].includes(typeof ele[i]))
|
|
2533
|
+
ele[i] = text(ele[i]);
|
|
2534
|
+
|
|
2535
|
+
target.element?.insertBefore(
|
|
2536
|
+
ele[i].element,
|
|
2537
|
+
target.items[index].element
|
|
2538
|
+
);
|
|
2539
|
+
|
|
2540
|
+
target.items.splice(index, 0, ele[i]);
|
|
2538
2541
|
}
|
|
2539
|
-
|
|
2542
|
+
|
|
2543
|
+
target.maintain();
|
|
2544
|
+
|
|
2545
|
+
return this;
|
|
2540
2546
|
}
|
|
2541
2547
|
function remove(...ele) {
|
|
2542
2548
|
const remove = (ele) => {
|
|
2543
2549
|
if (typeof ele === "number") ele = this.items[ele];
|
|
2544
|
-
if (ele?.isUIElement) this.element?.removeChild(ele.element);
|
|
2550
|
+
if (ele?.isUIElement) this.itemsTarget.element?.removeChild(ele.element);
|
|
2545
2551
|
this.items = this.items.filter((n) => n !== ele);
|
|
2546
2552
|
};
|
|
2547
2553
|
for (let i = 0; i < ele.length; i++) remove(ele[i]);
|
|
@@ -2552,7 +2558,7 @@ function remove(...ele) {
|
|
|
2552
2558
|
}
|
|
2553
2559
|
function clear(){
|
|
2554
2560
|
this?.items?.forEach(n=>n.unmount());
|
|
2555
|
-
this.element.innerHTML =
|
|
2561
|
+
this.itemsTarget.element.innerHTML = '';
|
|
2556
2562
|
return this;
|
|
2557
2563
|
}
|
|
2558
2564
|
function replaceElementWith(new_element){
|
|
@@ -2564,12 +2570,12 @@ function replaceElementWith(new_element){
|
|
|
2564
2570
|
}
|
|
2565
2571
|
function after(ui){
|
|
2566
2572
|
if(ui?.isUIElement) ui=ui.element;
|
|
2567
|
-
this.element?.after(ui);
|
|
2573
|
+
this.itemsTarget.element?.after(ui);
|
|
2568
2574
|
return this;
|
|
2569
2575
|
}
|
|
2570
2576
|
function before(ui){
|
|
2571
2577
|
if(ui?.isUIElement) ui=ui.element;
|
|
2572
|
-
this.element?.before(ui);
|
|
2578
|
+
this.itemsTarget.element?.before(ui);
|
|
2573
2579
|
return this;
|
|
2574
2580
|
}
|
|
2575
2581
|
|
|
@@ -2577,6 +2583,9 @@ function before(ui){
|
|
|
2577
2583
|
|
|
2578
2584
|
|
|
2579
2585
|
async function __addItem__(adder, pusher, ...ele) {
|
|
2586
|
+
const itemsTarget_el = this.itemsTarget.element;
|
|
2587
|
+
const itemsTarget = this.itemsTarget;
|
|
2588
|
+
|
|
2580
2589
|
if (this.cache.isFrozzen) {
|
|
2581
2590
|
console.warn("You can't append new item to frozzen element");
|
|
2582
2591
|
return this;
|
|
@@ -2592,22 +2601,22 @@ async function __addItem__(adder, pusher, ...ele) {
|
|
|
2592
2601
|
(newValue) => (ele[i].element.textContent = newValue),
|
|
2593
2602
|
ele[i]
|
|
2594
2603
|
);
|
|
2595
|
-
// this.element.appendChild(textNode);
|
|
2604
|
+
// this.itemsTarget.element.appendChild(textNode);
|
|
2596
2605
|
}
|
|
2597
2606
|
}
|
|
2598
2607
|
if (typeof globalThis?.Node === "function" && ele[i] instanceof globalThis?.Node) ele[i] = new this.constructor(ele[i]);
|
|
2599
2608
|
if (ele[i]?.isUINode) {
|
|
2600
2609
|
ele[i].cache.parent = this;
|
|
2601
|
-
|
|
2602
|
-
ele[i].target = this.element;
|
|
2603
|
-
|
|
2610
|
+
itemsTarget_el?.[adder](ele[i].element);
|
|
2611
|
+
ele[i].target = this.itemsTarget.element;
|
|
2612
|
+
itemsTarget.items[pusher](ele[i]);
|
|
2604
2613
|
}
|
|
2605
2614
|
else if(ele[i] instanceof Promise){
|
|
2606
2615
|
const UIEle = await ele[i];
|
|
2607
2616
|
UIEle.cache.parent = this;
|
|
2608
|
-
|
|
2609
|
-
UIEle.target = this.element;
|
|
2610
|
-
|
|
2617
|
+
itemsTarget_el?.[adder](UIEle.element);
|
|
2618
|
+
UIEle.target = this.itemsTarget.element;
|
|
2619
|
+
itemsTarget.items[pusher](UIEle);
|
|
2611
2620
|
}
|
|
2612
2621
|
else if (ele[i] instanceof Object) {
|
|
2613
2622
|
if (ele[i]?.style) this.style(ele[i]?.style);
|
|
@@ -3119,10 +3128,22 @@ let UIElement$1 = class UIElement extends UIElementCore{
|
|
|
3119
3128
|
}
|
|
3120
3129
|
_off(event, category = 'global'){
|
|
3121
3130
|
this.exp.events[category].removeListener(event);
|
|
3131
|
+
return this
|
|
3122
3132
|
}
|
|
3123
3133
|
get element(){
|
|
3124
3134
|
return this.cache.element;
|
|
3125
3135
|
}
|
|
3136
|
+
get itemsTarget(){
|
|
3137
|
+
return this.cache.itemsTarget;
|
|
3138
|
+
}
|
|
3139
|
+
get itemsTargetElement(){
|
|
3140
|
+
return this.itemsTarget.element;
|
|
3141
|
+
}
|
|
3142
|
+
setItemsTarget(parent){
|
|
3143
|
+
this.cache.itemsTarget = parent;
|
|
3144
|
+
this.items = parent.items;
|
|
3145
|
+
return this;
|
|
3146
|
+
}
|
|
3126
3147
|
isInteractive(){
|
|
3127
3148
|
return this.cache.isInteractive;
|
|
3128
3149
|
}
|
|
@@ -3729,14 +3750,14 @@ class UISwap extends UIElement$1 {
|
|
|
3729
3750
|
};
|
|
3730
3751
|
|
|
3731
3752
|
this.append(...items);
|
|
3732
|
-
this
|
|
3753
|
+
this.render();
|
|
3733
3754
|
}
|
|
3734
3755
|
get activeItem(){
|
|
3735
3756
|
return this.items[this.states.activeIndex]
|
|
3736
3757
|
}
|
|
3737
|
-
|
|
3758
|
+
render() {
|
|
3738
3759
|
this.items.forEach((n, i) => {
|
|
3739
|
-
|
|
3760
|
+
|
|
3740
3761
|
const initialDisplay = n.element?.style?.display || '';
|
|
3741
3762
|
this.#DISPLAYS_MAP.set(n, initialDisplay);
|
|
3742
3763
|
|
package/dist/ziko.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/*
|
|
3
3
|
Project: ziko.js
|
|
4
4
|
Author: Zakaria Elalaoui
|
|
5
|
-
Date : Fri Jul 31 2026
|
|
5
|
+
Date : Fri Jul 31 2026 17:26:32 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
|
|
@@ -2256,6 +2256,7 @@
|
|
|
2256
2256
|
else this.target = element?.parentElement;
|
|
2257
2257
|
Object.assign(this.cache, {
|
|
2258
2258
|
name,
|
|
2259
|
+
itemsTarget : this,
|
|
2259
2260
|
isInteractive : false,
|
|
2260
2261
|
parent:null,
|
|
2261
2262
|
isBody:false,
|
|
@@ -2292,7 +2293,7 @@
|
|
|
2292
2293
|
get element(){
|
|
2293
2294
|
return this.cache.element;
|
|
2294
2295
|
}
|
|
2295
|
-
|
|
2296
|
+
[Symbol.iterator](){
|
|
2296
2297
|
return this.items[Symbol.iterator]();
|
|
2297
2298
|
}
|
|
2298
2299
|
maintain() {
|
|
@@ -2518,12 +2519,6 @@
|
|
|
2518
2519
|
}
|
|
2519
2520
|
const text = (...str) => new ZikoUIText(...str);
|
|
2520
2521
|
|
|
2521
|
-
// import { isStateGetter } from "../../../hooks/use-state.js";
|
|
2522
|
-
// import {
|
|
2523
|
-
// is_camelcase,
|
|
2524
|
-
// camel2hyphencase
|
|
2525
|
-
// } from '../../../data/string/index.js';
|
|
2526
|
-
|
|
2527
2522
|
function append(...ele) {
|
|
2528
2523
|
__addItem__.call(this, "append", "push", ...ele);
|
|
2529
2524
|
return this;
|
|
@@ -2533,19 +2528,30 @@
|
|
|
2533
2528
|
return this;
|
|
2534
2529
|
}
|
|
2535
2530
|
function insertAt(index, ...ele) {
|
|
2536
|
-
|
|
2537
|
-
|
|
2531
|
+
const target = this.itemsTarget;
|
|
2532
|
+
|
|
2533
|
+
if (index >= target.items.length) return this.append(...ele);
|
|
2534
|
+
|
|
2538
2535
|
for (let i = 0; i < ele.length; i++) {
|
|
2539
|
-
|
|
2540
|
-
|
|
2541
|
-
|
|
2536
|
+
if (["number", "string"].includes(typeof ele[i]))
|
|
2537
|
+
ele[i] = text(ele[i]);
|
|
2538
|
+
|
|
2539
|
+
target.element?.insertBefore(
|
|
2540
|
+
ele[i].element,
|
|
2541
|
+
target.items[index].element
|
|
2542
|
+
);
|
|
2543
|
+
|
|
2544
|
+
target.items.splice(index, 0, ele[i]);
|
|
2542
2545
|
}
|
|
2543
|
-
|
|
2546
|
+
|
|
2547
|
+
target.maintain();
|
|
2548
|
+
|
|
2549
|
+
return this;
|
|
2544
2550
|
}
|
|
2545
2551
|
function remove(...ele) {
|
|
2546
2552
|
const remove = (ele) => {
|
|
2547
2553
|
if (typeof ele === "number") ele = this.items[ele];
|
|
2548
|
-
if (ele?.isUIElement) this.element?.removeChild(ele.element);
|
|
2554
|
+
if (ele?.isUIElement) this.itemsTarget.element?.removeChild(ele.element);
|
|
2549
2555
|
this.items = this.items.filter((n) => n !== ele);
|
|
2550
2556
|
};
|
|
2551
2557
|
for (let i = 0; i < ele.length; i++) remove(ele[i]);
|
|
@@ -2556,7 +2562,7 @@
|
|
|
2556
2562
|
}
|
|
2557
2563
|
function clear(){
|
|
2558
2564
|
this?.items?.forEach(n=>n.unmount());
|
|
2559
|
-
this.element.innerHTML =
|
|
2565
|
+
this.itemsTarget.element.innerHTML = '';
|
|
2560
2566
|
return this;
|
|
2561
2567
|
}
|
|
2562
2568
|
function replaceElementWith(new_element){
|
|
@@ -2568,12 +2574,12 @@
|
|
|
2568
2574
|
}
|
|
2569
2575
|
function after(ui){
|
|
2570
2576
|
if(ui?.isUIElement) ui=ui.element;
|
|
2571
|
-
this.element?.after(ui);
|
|
2577
|
+
this.itemsTarget.element?.after(ui);
|
|
2572
2578
|
return this;
|
|
2573
2579
|
}
|
|
2574
2580
|
function before(ui){
|
|
2575
2581
|
if(ui?.isUIElement) ui=ui.element;
|
|
2576
|
-
this.element?.before(ui);
|
|
2582
|
+
this.itemsTarget.element?.before(ui);
|
|
2577
2583
|
return this;
|
|
2578
2584
|
}
|
|
2579
2585
|
|
|
@@ -2581,6 +2587,9 @@
|
|
|
2581
2587
|
|
|
2582
2588
|
|
|
2583
2589
|
async function __addItem__(adder, pusher, ...ele) {
|
|
2590
|
+
const itemsTarget_el = this.itemsTarget.element;
|
|
2591
|
+
const itemsTarget = this.itemsTarget;
|
|
2592
|
+
|
|
2584
2593
|
if (this.cache.isFrozzen) {
|
|
2585
2594
|
console.warn("You can't append new item to frozzen element");
|
|
2586
2595
|
return this;
|
|
@@ -2596,22 +2605,22 @@
|
|
|
2596
2605
|
(newValue) => (ele[i].element.textContent = newValue),
|
|
2597
2606
|
ele[i]
|
|
2598
2607
|
);
|
|
2599
|
-
// this.element.appendChild(textNode);
|
|
2608
|
+
// this.itemsTarget.element.appendChild(textNode);
|
|
2600
2609
|
}
|
|
2601
2610
|
}
|
|
2602
2611
|
if (typeof globalThis?.Node === "function" && ele[i] instanceof globalThis?.Node) ele[i] = new this.constructor(ele[i]);
|
|
2603
2612
|
if (ele[i]?.isUINode) {
|
|
2604
2613
|
ele[i].cache.parent = this;
|
|
2605
|
-
|
|
2606
|
-
ele[i].target = this.element;
|
|
2607
|
-
|
|
2614
|
+
itemsTarget_el?.[adder](ele[i].element);
|
|
2615
|
+
ele[i].target = this.itemsTarget.element;
|
|
2616
|
+
itemsTarget.items[pusher](ele[i]);
|
|
2608
2617
|
}
|
|
2609
2618
|
else if(ele[i] instanceof Promise){
|
|
2610
2619
|
const UIEle = await ele[i];
|
|
2611
2620
|
UIEle.cache.parent = this;
|
|
2612
|
-
|
|
2613
|
-
UIEle.target = this.element;
|
|
2614
|
-
|
|
2621
|
+
itemsTarget_el?.[adder](UIEle.element);
|
|
2622
|
+
UIEle.target = this.itemsTarget.element;
|
|
2623
|
+
itemsTarget.items[pusher](UIEle);
|
|
2615
2624
|
}
|
|
2616
2625
|
else if (ele[i] instanceof Object) {
|
|
2617
2626
|
if (ele[i]?.style) this.style(ele[i]?.style);
|
|
@@ -3123,10 +3132,22 @@
|
|
|
3123
3132
|
}
|
|
3124
3133
|
_off(event, category = 'global'){
|
|
3125
3134
|
this.exp.events[category].removeListener(event);
|
|
3135
|
+
return this
|
|
3126
3136
|
}
|
|
3127
3137
|
get element(){
|
|
3128
3138
|
return this.cache.element;
|
|
3129
3139
|
}
|
|
3140
|
+
get itemsTarget(){
|
|
3141
|
+
return this.cache.itemsTarget;
|
|
3142
|
+
}
|
|
3143
|
+
get itemsTargetElement(){
|
|
3144
|
+
return this.itemsTarget.element;
|
|
3145
|
+
}
|
|
3146
|
+
setItemsTarget(parent){
|
|
3147
|
+
this.cache.itemsTarget = parent;
|
|
3148
|
+
this.items = parent.items;
|
|
3149
|
+
return this;
|
|
3150
|
+
}
|
|
3130
3151
|
isInteractive(){
|
|
3131
3152
|
return this.cache.isInteractive;
|
|
3132
3153
|
}
|
|
@@ -3733,14 +3754,14 @@
|
|
|
3733
3754
|
};
|
|
3734
3755
|
|
|
3735
3756
|
this.append(...items);
|
|
3736
|
-
this
|
|
3757
|
+
this.render();
|
|
3737
3758
|
}
|
|
3738
3759
|
get activeItem(){
|
|
3739
3760
|
return this.items[this.states.activeIndex]
|
|
3740
3761
|
}
|
|
3741
|
-
|
|
3762
|
+
render() {
|
|
3742
3763
|
this.items.forEach((n, i) => {
|
|
3743
|
-
|
|
3764
|
+
|
|
3744
3765
|
const initialDisplay = n.element?.style?.display || '';
|
|
3745
3766
|
this.#DISPLAYS_MAP.set(n, initialDisplay);
|
|
3746
3767
|
|
package/dist/ziko.min.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/*
|
|
2
2
|
Project: ziko.js
|
|
3
3
|
Author: Zakaria Elalaoui
|
|
4
|
-
Date : Fri Jul 31 2026
|
|
4
|
+
Date : Fri Jul 31 2026 17:26:32 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:r}=Math,s=Number.EPSILON,n=(t,...e)=>{const r=e.map(e=>{return"object"!=typeof(r=e)&&"function"!=typeof r||null===r||e?.__mapfun__?t(e):e instanceof Array?e.map(e=>n(t,e)):ArrayBuffer.isView(e)?e.map(e=>t(e)):e instanceof Set?new Set(n(t,...e)):e instanceof Map?new Map([...e].map(e=>[e[0],n(t,e[1])])):e.isMatrix?.()?new e.constructor(e.rows,e.cols,n(e.arr.flat(1))):e instanceof Object?Object.fromEntries(Object.entries(e).map(e=>[e[0],n(t,e[1])])):void 0;var r});return 1==r.length?r[0]:r},i=(t,e)=>t.isComplex?.()?new t.constructor(e(t.a),e(t.b)):t.isMatrix?.()?new t.constructor(t.rows,t.cols,t.arr.flat(1).map(e)):(t instanceof Array&&n(e,...t),e(t)),o=(t,e)=>{if(0===t.length)return NaN;let r=t.sort((t,e)=>t-e),s=e/100*(r.length-1),n=Math.floor(s),i=s-n;return n===r.length-1?r[n]:r[n]*(1-i)+r[n+1]*i},h=t=>o(t,25),c=t=>o(t,75),l=(...t)=>t.reduce((t,e)=>t+e)/t.length,u=(...t)=>{const e=t.length;if(0===e)return NaN;const r=l(...t);return t.reduce((t,e)=>t+(e-r)**2,0)/e},m=(...t)=>{const e=t.length;if(e<2)return NaN;const r=l(...t);return t.reduce((t,e)=>t+(e-r)**2,0)/(e-1)},p=(t,e)=>{const r=t.length;if(0===r||e.length!==r)return NaN;const s=e.reduce((t,e)=>t+e,0),n=t.reduce((t,r,s)=>t+r*e[s],0)/s;return t.reduce((t,r,s)=>t+e[s]*(r-n)**2,0)/s},f=(t,e)=>{if(e<1||t.length<e)return[];let r=[];for(let s=0;s<=t.length-e;s++){const n=t.slice(s,s+e);r.push(m(n))}return r},d=t=>{let e=[],r=0;for(let s of t)r+=s,e.push(r);return e};class g{static int(t,e){return Math.floor(this.float(t,e))}static float(t,e){return void 0!==e?Math.random()*(e-t)+t:Math.random()*t}static bin(){return this.int(2)}static oct(){return this.int(8)}static dec(){return this.int(10)}static hex(){return((t,e,r)=>{const s=parseInt(t,e);if(Number.isNaN(s))throw new TypeError("Invalid value for the given base");return s.toString(r)})(this.int(16),10,16)}static char(t=!1){const e=t?this.int(65,91):this.int(97,123);return String.fromCharCode(e)}static bool(){return Boolean(this.int(2))}static get color(){return{hex:()=>`#${this.int(16777215).toString(16).padStart(6,"0")}`,hexa:()=>{const[t,e,r,s]=Array.from({length:4},()=>this.int(255).toString(16).padStart(2,"0"));return`#${t}${e}${r}${s}`},rgb:()=>{const[t,e,r]=Array.from({length:3},()=>this.int(255));return`rgb(${t}, ${e}, ${r})`},rgba:()=>{const[t,e,r]=Array.from({length:3},()=>this.int(255));return`rgba(${t}, ${e}, ${r}, ${Math.random().toFixed(2)})`},hsl:()=>`hsl(${this.int(360)}, ${this.int(100)}%, ${this.int(100)}%)`,hsla:()=>`hsla(${this.int(360)}, ${this.int(100)}%, ${this.int(100)}%, ${Math.random().toFixed(2)})`,gray:()=>{const t=this.int(255);return`rgb(${t}, ${t}, ${t})`}}}static get sample(){const t=this;return{int:(e,r,s)=>Array.from({length:e},()=>t.int(r,s)),float:(e,r,s)=>Array.from({length:e},()=>t.float(r,s)),char:(e,r=!1)=>Array.from({length:e},()=>t.char(r)),bool:e=>Array.from({length:e},()=>t.bool()),bin:e=>Array.from({length:e},()=>t.bin()),oct:e=>Array.from({length:e},()=>t.oct()),dec:e=>Array.from({length:e},()=>t.dec()),hex:e=>Array.from({length:e},()=>t.hex()),get color(){return{hex:e=>Array.from({length:e},()=>t.color.hex()),hexa:e=>Array.from({length:e},()=>t.color.hexa()),rgb:e=>Array.from({length:e},()=>t.color.rgb()),rgba:e=>Array.from({length:e},()=>t.color.rgba()),hsl:e=>Array.from({length:e},()=>t.color.hsl()),hsla:e=>Array.from({length:e},()=>t.color.hsla()),gray:e=>Array.from({length:e},()=>t.color.gray())}},choice:(e,r,s)=>Array.from({length:e},()=>t.choice(r,s))}}static shuffle(t){return[...t].sort(()=>.5-Math.random())}static choice(t=[1,2,3],e=new Array(t.length).fill(1/t.length)){const r=d(...e).map(t=>100*t),s=new Array(100);s.fill(t[0],0,r[0]);for(let e=1;e<t.length;e++)s.fill(t[e],r[e-1],r[e]);return s[this.int(s.length)]}}globalThis.Random=g;class w{constructor(t=0,e=0){[this.a,this.b]=((t,e,r)=>{let s,n;return e instanceof t?(s=e.a,n=e.b):"object"==typeof e?"a"in e&&"b"in e?(s=e.a,n=e.b):"a"in e&&"z"in e?(s=e.a,n=Math.sqrt(e.z**2-e.a**2)):"a"in e&&"phi"in e?(s=e.a,n=e.a*Math.tan(e.phi)):"b"in e&&"z"in e?(n=e.b,s=Math.sqrt(e.z**2-e.b**2)):"b"in e&&"phi"in e?(n=r,s=e.b/Math.tan(e.phi)):"z"in e&&"phi"in e&&(s=+e.z*Math.cos(e.phi).toFixed(15),n=+e.z*Math.sin(e.phi).toFixed(15)):"number"==typeof e&&"number"==typeof r&&(s=+e.toFixed(32),n=+r.toFixed(32)),[s,n]})(w,t,e)}get __mapfun__(){return!0}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}serialize(){return JSON.stringify({type:"complex",data:this})}static deserialize(t){"string"==typeof t&&(t=JSON.parse(t));let{data:e,type:r}=t;return"complex"===r&&"a"in e&&"b"in e?new w(e.a,e.b):TypeError("Not a valid complex")}toFixed(t){return this.a=+this.a.toFixed(t),this.b=+this.b.toFixed(t),this}toPrecision(t){return this.a=+this.a.toPrecision(t),this.b=+this.b.toPrecision(t),this}clone(){return new w(this.a,this.b)}get z(){return Math.hypot(this.a,this.b)}get phi(){return Math.atan2(this.b,this.a)}static zero(){return new w(0,0)}static fromPolar(t,e){return new w(+(t*cos(e)).toFixed(13),+(t*sin(e)).toFixed(13))}static get random(){return{int:(t,e)=>new w(...g.sample.int(2,t,e)),float:(t,e)=>new w(...g.sample.float(2,t,e))}}static twiddle(t,e){const r=-2*Math.PI*t/e;return new w(Math.cos(r),Math.sin(r))}get conj(){return new w(this.a,-this.b)}get inv(){return new w(this.a/Math.hypot(this.a,this.b),-this.b/Math.hypot(this.a,this.b))}add(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new w(t[e],0)),this.a+=t[e].a,this.b+=t[e].b;return this}sub(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new w(t[e],0)),this.a-=t[e].a,this.b-=t[e].b;return this}mul(...t){let{z:e,phi:r}=this;for(let s=0;s<t.length;s++)"number"==typeof t[s]&&(t[s]=new w(t[s],0)),e*=t[s].z,r+=t[s].phi;return this.a=e*Math.cos(r),this.b=e*Math.sin(r),this.toFixed(8)}div(...t){let{z:e,phi:r}=this;for(let s=0;s<t.length;s++)"number"==typeof t[s]&&(t[s]=new w(t[s],0)),e/=t[s].z,r-=t[s].phi;return this.a=e*Math.cos(r),this.b=e*Math.sin(r),this.toFixed(8)}modulo(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new w(t[e],0)),this.a%=t[e].a,this.b%=t[e].b;return this}pow(...t){let{z:e,phi:r}=this;for(let s=0;s<t.length;s++)"number"==typeof t[s]&&(t[s]=new w(t[s],0)),e*=Math.exp(t[s].a*Math.log(e)-t[s].b*r),r+=t[s].b*Math.log(e)+t[s].a*r;return this.a=e*Math.cos(r),this.b=e*Math.sin(r),this}get expo(){return[this.z,this.phi]}nthr(t=2){return y({z:this.z**(1/t),phi:this.phi/t})}get sqrt(){return this.nthr(2)}get cbrt(){return this.nthr(3)}get log(){return y(this.z,this.phi)}get cos(){return y(Math.cos(this.a)*Math.cosh(this.b),Math.sin(this.a)*Math.sinh(this.b))}get sin(){return y(Math.sin(this.a)*Math.cosh(this.b),Math.cos(this.a)*Math.sinh(this.b))}get tan(){const t=cos(2*this.a)+cosh(2*this.b);return y(Math.sin(2*this.a)/t,Math.sinh(2*this.b)/t)}}const y=(t,e)=>{if((t instanceof Array||ArrayBuffer.isView(t))&&(e instanceof Array||ArrayBuffer.isView(t)))return t.map((r,s)=>y(t[s],e[s]));if(t.isMatrix?.()&&e.isMatrix?.()){if(t.shape[0]!==e.shape[0]||t.shape[1]!==e.shape[1])return Error(0);const r=t.arr.map((r,s)=>y(t.arr[s],e.arr[s]));return new t.constructor(t.rows,t.cols,...r)}return new w(t,e)},v=(...t)=>{const e=t.pop();return n(t=>t.isComplex?.()?e.isComplex?.()?new t.constructor({z:Math.exp(e.a*Math.log(t.z)-e.b*t.phi),phi:e.b*Math.log(t.z)+e.a*t.phi}):new t.constructor({z:t.z**e,phi:t.phi*e}):e.isComplex?.()?new t.constructor({z:Math.exp(e.a*Math.log(t)),phi:e.b*Math.log(t)}):Math.pow(t,e),...t)},x=(...t)=>n(t=>t.isComplex?.()?new t.constructor({z:t.z**.5,phi:t.phi/2}):t<0?y(0,Math.sqrt(-t)).toFixed(8):+Math.sqrt(t).toFixed(8),...t),_=(...t)=>n(t=>t.isComplex?.()?new t.constructor(Math.log(t.z),t.phi).toFixed(8):+Math.log(t).toFixed(8),...t),M=(t,e,r)=>{if("number"==typeof e){if("number"==typeof r)switch(t){case"add":return e+r;case"sub":return e-r;case"mul":return e*r;case"div":return e/r;case"modulo":return e%r}return r?.isComplex?.()&&(e=new r.constructor(e,0)),r?.isMatrix?.()&&(e=r.constructor.nums(r.rows,r.cols,e)),e[t](r)}if(e?.isComplex?.()){if("number"==typeof r||r?.isComplex?.())return e.clone()[t](r);if(r?.isMatrix?.())return(e=r.constructor.nums(r.rows,r.cols,e)).clone()[t](r)}if(e?.isMatrix?.())return e.clone()[t](r)},E=(t,...e)=>{let r=t;for(let t=0;t<e.length;t++)r=M("add",r,e[t]);return r},k=(t,...e)=>{let r=t;for(let t=0;t<e.length;t++)r=M("sub",r,e[t]);return r},C=(t,...e)=>{let r=t;for(let t=0;t<e.length;t++)r=M("mul",r,e[t]);return r},S=(t,...e)=>{let r=t;for(let t=0;t<e.length;t++)r=M("div",r,e[t]);return r},T=(t,...e)=>{let r=t;for(let t=0;t<e.length;t++)r=M("modulo",r,e[t]);return r},j=(t,e,r)=>i(t,t=>e!==r?(t-e)/(r-e):0),O=(t,e,r)=>i(t,t=>(r-e)*t+e),A=(t,e,r)=>i(t,t=>Math.min(Math.max(t,e),r)),I=(t,e,r,s,n)=>i(t,t=>O(j(t,e,r),s,n)),R=(t,e,r=!0)=>{if(t instanceof Array&&!(e instanceof Array))return n(t=>R(t,e,r),...t);if(e instanceof Array&&!(t instanceof Array))return n(e=>R(t,e,r),...e);if(t instanceof Array&&e instanceof Array)return t.map((t,s)=>R(t,e[s],r));const s=Math.atan2(t,e);return r?s:180*s/Math.PI},F=t=>t.isComplex?.()?new t.constructor(F(t.a),F(t.b)):t.isMatrix?.()?new t.constructor(t.rows,t.cols,t.arr.flat(1).map(F)):+!t,P=(t,e)=>{if(t.every(t=>t.isComplex?.())){const r=t.map(t=>t.a),s=t.map(t=>t.b);return new t[0].constructor(e(...r),e(...s))}if(t.every(t=>t.isMatrix?.())){if(!t.every(e=>e.rows===t[0].rows&&e.cols===t[0].cols))return TypeError("All matrices must have the same shape");const{rows:r,cols:s}=t[0],n=Array.from({length:r},(r,n)=>Array.from({length:s},(r,s)=>e(...t.map(t=>t.arr[n][s]))));return new t[0].constructor(n)}return null},z=(...t)=>{const e=P(t,z);return null!==e?e:t.reduce((t,e)=>t&e,1)},$=(...t)=>{const e=P(t,$);return null!==e?e:t.reduce((t,e)=>t|e,0)},D=(...t)=>{const e=P(t,D);return null!==e?e:t.reduce((t,e)=>t^e,0)},L=(t,e)=>{for(let e=0;e<t.arr.length;e++)Object.defineProperty(t,e,{value:t.arr[e],writable:!0,configurable:!0,enumerable:!1});for(let r=t.arr.length;r<e;r++)delete t[r]};function U(t,e){var r=[];for(let e=0;e<t.length;e++)r.push(t[e].slice(0));r.splice(0,1);for(let t=0;t<r.length;t++)r[t].splice(e,1);return r}function q(t,e){if(t=t.clone(),e=e.clone(),t.rows!==e.rows)return;let r=t.arr;for(let s=0;s<t.rows;s++)for(let n=t.cols;n<t.cols+e.cols;n++)r[s][n]=e.arr[s][n-t.cols];return t.cols+=e.cols,new t.constructor(t.rows,t.cols,r.flat(1))}function N(t,e){if(t=t.clone(),e=e.clone(),t.cols!==e.cols)return;let r=t.arr;for(let s=t.rows;s<t.rows+e.rows;s++){r[s]=[];for(let n=0;n<t.cols;n++)r[s][n]=e.arr[s-t.rows][n]}return t.rows+=e.rows,new t.constructor(t.rows,t.cols,r.flat(1))}class B{constructor(t,e,r=[]){[this.rows,this.cols,this.arr]=((t,e,r,s)=>{if(!(e instanceof t)){let t,n,i=[];if(e instanceof Array)i=e,e=i.length,r=i[0].length;else for(t=0;t<e;t++)for(i.push([]),i[t].push(new Array(r)),n=0;n<r;n++)i[t][n]=s[t*r+n],null==s[t*r+n]&&(i[t][n]=0);return[e,r,i]}arr=e.arr,r=(e=e.rows).cols})(B,t,e,r),L(this)}isMatrix(){return!0}clone(){return new B(this.rows,this.cols,this.arr.flat(1))}toComplex(){return this.arr=n(t=>t?.isComplex?.()?t:new w(t,0),...this.arr),L(this),this}[Symbol.iterator](){return this.arr[Symbol.iterator]()}get size(){return this.rows*this.cols}get shape(){return[this.rows,this.cols]}at(t=0,e=void 0){if(t<0&&(t+=this.rows),t<0||t>=this.rows)throw new Error("Row index out of bounds");if(void 0===e)return this.arr[t];if(e<0&&(e+=this.cols),e<0||e>=this.cols)throw new Error("Column index out of bounds");return this.arr[t][e]}slice(t=0,e=0,r=this.rows-1,s=this.cols-1){r<0&&(r=this.rows+r),s<0&&(s=this.cols+s);let n=r-t,i=s-e,a=new Array(i);for(let r=0;r<n;r++){a[r]=[];for(let s=0;s<i;s++)a[r][s]=this.arr[r+t][s+e]}return this.arr=a,L(this.rows),this.rows=n,this.cols=i,this}reshape(t,e){if(t*e!==this.rows*this.cols)throw Error("size not matched");const r=this.rows;return Object.assign(this,new B(t,e,this.arr.flat(1))),L(r),this}get T(){let t=[];for(let e=0;e<this.arr[0].length;e++){t[e]=[];for(let r=0;r<this.arr.length;r++)t[e][r]=this.arr[r][e]}return new B(this.cols,this.rows,t.flat(1))}get det(){return(t=this).isSquare?1==t.rows?t.arr[0][0]:function t(e){if(2==e.length)return e.flat(1).some(t=>t?.isMatrix?.())?void console.warn("Tensors are not completely supported yet ..."):k(C(e[0][0],e[1][1]),C(e[0][1],e[1][0]));for(var r=0,s=0;s<e.length;s++){const n=E(C(v(-1,s),C(e[0][s],t(U(e,s)))));r=E(r,n)}return r}(t.arr):new Error("is not square matrix");var t}get inv(){return function(t){if(t.row!==t.cols)throw Error('is not a square matrix"');if(0===t.det)throw Error("determinant should not equal 0");const{arr:e}=t;if(e.length===e[0].length){var r=0,s=0,n=0,i=e.length,a=0,o=[],h=[];for(r=0;r<i;r+=1)for(o[o.length]=[],h[h.length]=[],n=0;n<i;n+=1)o[r][n]=r==n?1:0,h[r][n]=e[r][n];for(r=0;r<i;r+=1){if(0==(a=h[r][r])){for(s=r+1;s<i;s+=1)if(0!=h[s][r]){for(n=0;n<i;n++)a=h[r][n],h[r][n]=h[s][n],h[s][n]=a,a=o[r][n],o[r][n]=o[s][n],o[s][n]=a;break}if(0==(a=h[r][r]))return}for(n=0;n<i;n++)h[r][n]=h[r][n]/a,o[r][n]=o[r][n]/a;for(s=0;s<i;s++)if(s!=r)for(a=h[s][r],n=0;n<i;n++)h[s][n]-=a*h[r][n],o[s][n]-=a*o[r][n]}return new t.constructor(o)}}(this)}static eye(t){let e=new B(t,t);for(let r=0;r<t;r++)for(let s=0;s<t;s++)e.arr[r][s]=r===s?1:0;return e}static zeros(t,e){let r=new B(t,e);for(let n=0;n<t;n++)for(var s=0;s<e;s++)r.arr[n][s]=0;return r}static ones(t,e){let r=new B(t,e);for(let s=0;s<t;s++)for(let t=0;t<e;t++)r.arr[s][t]=1;return r}static nums(t,e,r){let s=new B(t,e);for(let n=0;n<t;n++)for(let t=0;t<e;t++)s.arr[n][t]=r;return s}static get random(){return{int:(t,e,r,s)=>new B(t,e,g.sample.int(t*e,r,s)),float:(t,e,r)=>new B(t,e,g.sample.float(t*e,r,b))}}get range(){return{map:(t,e,r,s)=>(this.arr=I(this.arr,t,e,r,s),this),norm:(t,e)=>(this.arr=j(this.arr,t,e),this),lerp:(t,e)=>(this.arr=O(this.arr,t,e),this),clamp:(t,e)=>(this.arr=A(this.arr,t,e),this)}}hstack(...t){const e=[this,...t].reduce((t,e)=>q(t,e));return Object.assign(this,e),L(this),this}vstack(...t){const e=[this,...t].reduce((t,e)=>N(t,e));return Object.assign(this,e),L(this),this}hqueue(...t){const e=[this,...t].reverse().reduce((t,e)=>q(t,e));return Object.assign(this,e),L(this),this}vqueue(...t){const e=[this,...t].reverse().reduce((t,e)=>N(t,e));return Object.assign(this,e),L(this),this}forEach(t){return this.arr.flat(1).forEach(t),this}forEachRow(t){return this.arr.forEach(t),this}forEachCol(t){return this.clone().T.forEachRow(t),this}map(t){const e=this.arr.flat(1).map(t);return new B(this.rows,this.cols,e)}mapRows(t=()=>{}){return this.arr=this.arr.map(t),this}mapCols(t){return this.clone().T.mapRows(t).T}sort(t=()=>{}){const e=this.arr.flat(1).sort(t);return new B(this.rows,this.cols,e)}shuffle(){return this.sort(()=>.5-Math.random())}sortRows(t=()=>{}){return this.arr=this.arr.map(e=>e.sort(t)),this}shuffleRows(){return this.sortRows(()=>.5-Math.random())}sortCols(t){return this.clone().T.sortRows(t).T}shuffleCols(){return this.sortCols(()=>.5-Math.random())}reduce(t,e){const r=e?this.arr.flat(1).reduce(t,e):this.arr.flat(1).reduce(t);return new B([[r]])}reduceRows(t,e){const r=e?this.arr.map(r=>r.reduce(t,e)):this.arr.map(e=>e.reduce(t));return new B(1,this.cols,r)}reduceCols(t,e){return this.T.reduceRows(t,e).T}filterRows(t){const e=this.arr.map(e=>e.some(e=>t(e))),r=[];let s;for(s=0;s<e.length;s++)e[s]&&r.push(this.arr[s]);return new B(r)}filterCols(t){const e=this.T.filterRows(t);return new B(e).T}every(t){return this.arr.flat(1).every(t)}everyRow(t){return this.arr.map(e=>e.every(t))}everyCol(t){return this.T.arr.map(e=>e.every(t))}some(t){return this.arr.flat(1).some(t)}someRow(t){return this.arr.map(e=>e.some(t))}someCol(t){return this.T.arr.map(e=>e.some(t))}get isSquare(){return this.rows===this.cols}get isSym(){if(!this.isSquare)return!1;for(let t=0;t<this.rows;t++)for(let e=t+1;e<this.cols;e++)if(this.arr[t][e]!==this.arr[e][t])return!1;return!0}get isAntiSym(){if(!this.isSquare)return!1;const t=this.rows;for(let e=0;e<t;e++){if(0!==this.arr[e][e])return!1;for(let r=e+1;r<t;r++)if(this.arr[e][r]!==-this.arr[r][e])return!1}return!0}get isDiag(){if(!this.isSquare)return!1;const t=this.rows;for(let e=0;e<t;e++)for(let r=e+1;r<t;r++)if(0!==this.arr[e][r]||0!==this.arr[r][e])return!1;return!0}get isOrtho(){return!!this.isSquare&&(this.isDiag&&(1==this.det||-1==this.det))}get isIdemp(){if(!this.isSquare)return!1;const t=this.rows,e=this.arr,r=[];for(let s=0;s<t;s++){r[s]=[];for(let n=0;n<t;n++){let i=0;for(let r=0;r<t;r++)i+=e[s][r]*e[r][n];r[s][n]=i}}for(let s=0;s<t;s++)for(let n=0;n<t;n++)if(r[s][n]!==e[s][n])return!1;return!0}get isUpperTri(){if(!this.isSquare)return!1;const t=this.rows;for(let e=1;e<t;e++)for(let t=0;t<e;t++)if(0!==this.arr[e][t])return!1;return!0}get isLowerTri(){if(!this.isSquare)return!1;const t=this.rows;for(let e=0;e<t-1;e++)for(let r=e+1;r<t;r++)if(0!==this.arr[e][r])return!1;return!0}toPrecision(t){for(let e=0;e<this.cols;e++)for(let r=0;r<this.rows;r++)this.arr[e][r]=+this.arr[e][r].toPrecision(t);return this}toFixed(t){for(let e=0;e<this.cols;e++)for(let r=0;r<this.rows;r++)this.arr[e][r]=+this.arr[e][r].toFixed(t);return this}splice(t,e,r,...s){}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)}#t(t,...e){for(let s=0;s<e.length;s++){("number"==typeof e[s]||e[s]?.isComplex?.())&&(e[s]=B.nums(this.rows,this.cols,e[s]));for(let n=0;n<this.rows;n++)for(var r=0;r<this.cols;r++)this.arr[n][r]=t(this.arr[n][r],e[s].arr[n][r])}return new B(this.rows,this.cols,this.arr.flat(1))}add(...t){return this.#t(E,...t)}sub(...t){return this.#t(k,...t)}mul(...t){return this.#t(C,...t)}div(...t){return this.#t(S,...t)}modulo(...t){return this.#t(T,...t)}dot(t){for(var e=[],r=0;r<this.arr.length;r++){e[r]=[];for(var s=0;s<t.arr[0].length;s++){e[r][s]=0;for(var n=0;n<this.arr[0].length;n++)e[r][s]=E(e[r][s],C(this.arr[r][n],t.arr[n][s]))}}return new B(this.arr.length,t.arr[0].length,e.flat(1))}pow(t){let e=this.clone(),r=this.clone();for(let s=0;s<t-1;s++)r=r.dot(e);return r}sum(){let t=0;for(let e=0;e<this.rows;e++)for(let r=0;r<this.cols;r++)t=E(t,this.arr[e][r]);return t}prod(){let t=1;for(let e=0;e<this.rows;e++)for(let r=0;r<this.cols;r++)t=C(t,this.arr[e][r]);return t}hasComplex(){return this.arr.flat(1/0).some(t=>t instanceof w)}get min(){this.hasComplex()&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(Math.min(...this.arr[e]));return Math.min(...t)}get max(){this.hasComplex()&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(Math.max(...this.arr[e]));return Math.max(...t)}get minRows(){this.hasComplex()&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(Math.min(...this.arr[e]));return t}get maxRows(){this.hasComplex()&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(Math.max(...this.arr[e]));return t}get minCols(){return this.hasComplex()&&console.error("Complex numbers are not comparable"),this.T.minRows}get maxCols(){return this.hasComplex()&&console.error("Complex numbers are not comparable"),this.T.maxRows}static fromVector(t){return new B(t.length,1,t)}serialize(){const t=n(t=>t.serialize?.()||t,...this.arr);return JSON.stringify({type:"matrix",data:{rows:this.rows,cols:this.cols,arr:t}})}static deserialize(t){"string"==typeof t&&(t=JSON.parse(t));const{type:e,data:r}=t;if("matrix"!==e)return TypeError("Not a valid Matrix");let{arr:s}=r;return s=n(t=>{if("string"==typeof t){const e=JSON.parse(t),{type:r}=e;if("complex"===r)return w.deserialize(e)}return t},...s),new B(s)}flip(){return this.flipeH().flipeV()}flipeH(){return this.arr=this.arr.map(t=>[...t].reverse()),L(this),this}flipeV(){return this.arr=this.arr.reverse(),L(this),this}}class V{constructor(t){this.cache={node:t}}isUINode(){return!0}get node(){return this.cache.node}}class Z 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 G=new Z,H={default:{target:null,render:!0,math:{mode:"deg"}},setDefault:function(t){const e=Object.keys(t),r=Object.values(t);for(let t=0;t<e.length;t++)this.default[e[t]]=r[t]},init:()=>{},renderingMode:"spa",isSSC:!1},W={store:new Map,index:0,register:function(t){this.store.set(this.index++,t)},reset(){this.index=0,this.store.clear()}},K={ui_index:0,get_ui_index:function(){return this.ui_index++},register_ui:function(t){}};class J{#e;#r;#s;#n;#i;#a;constructor(t=""){this.#e=new BroadcastChannel(t),this.#r=new Map,this.#s=new Map,this.#n="ziko-channel:"+1e17*Math.random(),this.#i=new Set([this.#n]),this.#a=new Set,this.#e.addEventListener("message",t=>{const{last_sent_event:e,userId:r,eventData:s,rooms:n}=t.data;if(r===this.#n)return;if(n&&n.length&&!n.some(t=>this.#a.has(t)))return;this.#i.add(r),this.#r=new Map(s);const i=this.#s.get(e);i&&i.forEach(({fn:t,rooms:r})=>{r&&0!==r.length&&n&&!n.some(t=>r.includes(t))||t(this.#r.get(e))})})}emit(t,e,r){return this.#r.set(t,e),"string"==typeof r&&(r=[r]),this.#e.postMessage({eventData:Array.from(this.#r.entries()),last_sent_event:t,userId:this.#n,rooms:r&&r.length?r:void 0}),this}on(t,e=console.log,r){return this.#s.has(t)||this.#s.set(t,[]),"string"==typeof r&&(r=[r]),this.#s.get(t).push({fn:e,rooms:r}),this}off(t,e){return this.#s.has(t)?(this.#s.set(t,this.#s.get(t).filter(t=>t.fn!==e)),this):this}once(t,e,r){const s=r=>{e(r),this.off(t,s)};return this.on(t,s,r),this}join(...t){return t.forEach(t=>this.#a.add(t)),this}leave(...t){return t.length?t.forEach(t=>this.#a.delete(t)):this.#a.clear(),this}close(){return this.#e.close(),this}}const Y=t=>new J(t);class Q{static RESERVED_KEYS=new Set(["cache","items","set","add","remove","get","clear","onStorageUpdated"]);constructor(t,e,r,s=!0){this.cache={storage:t,globalKey:e,channel:s?Y(`Ziko:useStorage-${e}`):null,oldItemKeys:new Set},this.#o(r,s)}get items(){const t=this.cache.storage.getItem(this.cache.globalKey);if(!t)return{};try{return JSON.parse(t)}catch{return{}}}#h(){const t=this.items,e=new Set(Object.keys(t));this.cache.oldItemKeys.forEach(t=>{e.has(t)||(delete this[t],this.cache.oldItemKeys.delete(t))});for(const e in t)Q.RESERVED_KEYS.has(e)||(this[e]=t[e],this.cache.oldItemKeys.add(e))}#o(t,e){e&&this.cache.channel&&this.cache.channel.on("Ziko-Storage-Updated",()=>this.#h());null!==this.cache.storage.getItem(this.cache.globalKey)?this.#h():void 0!==t?this.set(t):this.#h()}set(t){return this.cache.storage.setItem(this.cache.globalKey,JSON.stringify(t)),this.cache.channel&&this.cache.channel.emit("Ziko-Storage-Updated",t),this.#h(),this}add(t){return this.set({...this.items,...t})}remove(...t){const e={...this.items};return t.forEach(t=>delete e[t]),this.set(e)}get(t){return this.items[t]}clear(){return this.cache.storage.removeItem(this.cache.globalKey),this.#h(),this}onStorageUpdated(t){return this.cache.channel&&this.cache.channel.on("Ziko-Storage-Updated",t),this}}var X,tt={store:new Map,index:0,session_storage:null,register:function(t){},update:function(t,e){}};globalThis?.__Ziko__||(globalThis.__Ziko__={__UI__:G,__HYDRATION__:W,__State__:tt,__Config__:H,__CACHE__:K,__PROVIDERS__:{}},X=__Ziko__,Object.defineProperties(X,{QueryParams:{get:function(){return function(t){const e={};return t.replace(/[A-Z0-9]+?=([\w|:|\/\.]*)/gi,t=>{const[r,s]=t.split("=");e[r]=s}),e}(globalThis.location.search.substring(1))},configurable:!1,enumerable:!0},HashParams:{get:function(){return globalThis.location.hash.substring(1).split("#")},configurable:!1,enumerable:!0}}));class et extends V{constructor(){super()}init(t,e,r,s){if(this.target=globalThis.__Ziko__.__Config__.default.target||globalThis?.document?.body,"string"==typeof t)switch(r){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,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 Z,globalThis.__Ziko__.__UI__[this.cache.name]?globalThis.__Ziko__.__UI__[this.cache.name]?.push(this):globalThis.__Ziko__.__UI__[this.cache.name]=[this],t&&s&&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 rt(t,...e){e.forEach(e=>function(t,e){const r=Object.getOwnPropertyDescriptors(e);for(const e of Reflect.ownKeys(r)){const s=r[e];"get"in s||"set"in s||"function"!=typeof s.value?Object.defineProperty(Object.getPrototypeOf(t),e,s):"function"==typeof s.value&&(Object.getPrototypeOf(t).hasOwnProperty(e)||Object.defineProperty(Object.getPrototypeOf(t),e,s))}}(t,e))}var st=Object.freeze({__proto__:null,mount:function(t=this.target,e=0){return e>0?(setTimeout(()=>this.mount(t,0),e),this):(this.isBody||(t?.isUIElement&&(t=t.element),this.target=t,this.target?.appendChild(this.element)),this)},unmount:function(t=0){return t>0?(setTimeout(()=>this.unmount(0),t),this):(this.cache.parent?this.cache.parent.remove(this):this.target?.children?.length&&[...this.target.children].includes(this.element)&&this.target.removeChild(this.element),this)}});function nt(t){const e={value:t,subscribers:new Set,paused:!1};return[function(){return{value:e.value,isStateGetter:()=>!0,_subscribe:t=>(e.subscribers.add(t),()=>e.subscribers.delete(t))}},function(t){e.paused||("function"==typeof t&&(t=t(e.value)),Object.is(t,e.value)||(e.value=t,e.subscribers.forEach(t=>t(e.value))))},{pause:()=>{e.paused=!0},resume:()=>{e.paused=!1},clear:()=>{e.subscribers.clear()},force:t=>{"function"==typeof t&&(t=t(e.value)),e.value=t,e.subscribers.forEach(t=>t(e.value))},getSubscribers:()=>new Set(e.subscribers)}]}const it=t=>"function"==typeof t&&!0===t?.()?.isStateGetter?.(),at=(t="")=>t.replace(/[A-Z]/g,t=>"-"+t.toLowerCase()),ot=(t="")=>{if(0===t.length)return!1;return/^[a-z][a-zA-Z0-9]*$/.test(t)};function ht(t,e){if(globalThis.SVGAElement&&this.element instanceof globalThis.SVGAElement&&(t=ot(t)?at(t):t),!this?.attr[t]||this?.attr[t]!==e){if(it(e)){e()._subscribe(e=>this.element?.setAttribute(t,e),this)}else this.element?.setAttribute(t,e);Object.assign(this.cache.attributes,{[t]:e})}}var ct=Object.freeze({__proto__:null,_set_attrs_:ht,getAttr:function(t){return t=ot(t)?at(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[r,s]=[Object.keys(t),Object.values(t)];for(let t=0;t<r.length;t++)s[t]instanceof Array&&(e[t]=s[t].join(" ")),ht.call(this,r[t],s[t])}else e instanceof Array&&(e=e.join(" ")),ht.call(this,t,e);return this},setContentEditable:function(t=!0){return this.setAttr("contenteditable",t),this}});class lt extends V{constructor(...t){super("span","text",!1,...t),this.element=globalThis?.document?.createTextNode(...t)}isText(){return!0}}const ut=(...t)=>new lt(...t);async function mt(t,e,...r){if(this.cache.isFrozzen)return console.warn("You can't append new item to frozzen element"),this;for(let s=0;s<r.length;s++){if(["number","string"].includes(typeof r[s])&&(r[s]=ut(r[s])),r[s]instanceof Function){const t=r[s]();t.isStateGetter&&(r[s]=ut(t.value),t._subscribe(t=>r[s].element.textContent=t,r[s]))}if("function"==typeof globalThis?.Node&&r[s]instanceof globalThis?.Node&&(r[s]=new this.constructor(r[s])),r[s]?.isUINode)r[s].cache.parent=this,this.element?.[t](r[s].element),r[s].target=this.element,this.items[e](r[s]);else if(r[s]instanceof Promise){const n=await r[s];n.cache.parent=this,this.element?.[t](n.element),n.target=this.element,this.items[e](n)}else r[s]instanceof Object&&(r[s]?.style&&this.style(r[s]?.style),r[s]?.attr&&Object.entries(r[s].attr).forEach(t=>this.setAttr(""+t[0],t[1])))}return this.maintain(),this}var pt=Object.freeze({__proto__:null,__addItem__:mt,after:function(t){return t?.isUIElement&&(t=t.element),this.element?.after(t),this},append:function(...t){return mt.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.unmount()),this.element.innerHTML="",this},insertAt:function(t,...e){if(t>=this.element.children.length)this.append(...e);else for(let r=0;r<e.length;r++)["number","string"].includes(typeof e[r])&&(e[r]=ut(e[r])),this.element?.insertBefore(e[r].element,this.items[t].element),this.items.splice(t,0,e[r]);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 r=0;r<t.length;r++)e(t[r]);for(let t=0;t<this.items.length;t++)Object.assign(this,{[[t]]:this.items[t]});return this},replaceElementWith:function(t){return this.cache.element.replaceWith(t),this.cache.element=t,this}});var ft=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 dt=Object.freeze({__proto__:null,animate:function(t,{duration:e=1e3,iterations:r=1,easing:s="ease"}={}){return this.element?.animate(t,{duration:e,iterations:r,easing:s}),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 r=t[e];if(it(r)){const t=r();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]:r})}return this}});class gt{constructor(t,e){this.cache={category:e,target:t,listeners:{},currentEvent:null,event:null,customEvents:new Set}}get event(){return this.cache.event}get target(){return this.cache.target}get element(){return this.cache.target.element}get currentEvent(){return this.cache.currentEvent}addListener(t,e,{preventDefault:r=!1,paused:s=!1}={}){return this.cache.listeners[t]={callback:r=>{this.cache.event=r,this.cache.listeners[t].preventDefault&&r.preventDefault(),this.cache.listeners[t].paused||(this.cache.currentEvent=t,e.call(this,this))},preventDefault:r,paused:s},this.element.addEventListener(t,this.cache.listeners[t].callback),this}removeListener(t){return this.element.removeEventListener(t,this.cache.listeners[t].callback),this}pause(t){return this.cache.listeners[t].paused=!0,this}resume(t){return this.cache.listeners[t].paused=!1,this}preventDefault(t){return this.cache.listeners[t].preventDefault=!0,this}useDefault(t){return this.cache.listeners[t].preventDefault=!1,this}}class bt extends Event{constructor(t,e){super("clickaway",{bubbles:!0,cancelable:!0}),this.originalEvent=t,this.targetElement=e}}function wt(t){function e(e){if(!t.contains(e.target)){const r=new bt(e,t);t.dispatchEvent(r)}}return globalThis?.document?.addEventListener("click",e),()=>globalThis?.document?.removeEventListener("click",e)}const yt=(t,e=!1)=>{const r=t.element.getBoundingClientRect(),s=t.event;let n=s?.clientX-r.left|0,i=s?.clientY-r.top|0;if(e){const e=t.element.clientWidth,r=t.element.clientHeight;n=+(n/e*2-1).toFixed(8),i=+(i/r*-2+1).toFixed(8)}return{x:n,y:i}},vt="click",xt={onClick(t){return this.on("click",t,{category:vt})},onDblClick(t){return this.on("dblclick",t,{category:vt})},onClickAway(t){var e,r,s;return e=this,r=vt,s="clickaway",e.exp.events?.[r]?.cache?.customEvents?.has(s)||wt(this.element),this.on("clickaway",t,{category:vt,isCustom:!0})}},_t="ptr",Mt={onPtrDown(t,e=!1){return this.on("pointerdown",t,{category:_t,details_setter:t=>{const{x:r,y:s}=yt(t,e);t.dx=r,t.dy=s,t.isDown=!0,t.isDragging=t.isMoving??!1}})},onPtrMove(t,e=!1){return this.on("pointermove",t,{category:_t,details_setter:t=>{const{x:r,y:s}=yt(t,e);t.mx=r,t.my=s,t.isMoving=!0,t.isDragging=t.isDown??!1}})},onPtrUp(t,e=!1){return this.on("pointerup",t,{category:_t,details_setter:t=>{const{x:r,y:s}=yt(t,e);t.ux=r,t.uy=s,t.isDown=!1,t.isMoving=!1,t.isDragging=!1}})}},Et="key",kt={onKeyDown(t){return this.on("keydown",t,{category:Et,details_setter:t=>{t.kd=t.event.key}})},onKeyPress(t){return this.on("keypress",t,{category:Et,details_setter:t=>{t.kp=t.event.key}})},onKeyUp(t){return this.on("keydown",t,{category:Et,details_setter:t=>{t.ku=t.event.key}})}},Ct=(t,e)=>{let r=0;return(...s)=>{const n=(new Date).getTime();n-r<e||(r=n,t(...s))}};class St extends CustomEvent{constructor(t,e,{bubbles:r=!0,cancelable:s=!0}={}){super(t,{detail:e,bubbles:r,cancelable:s})}}function Tt(t,{intersection:e=!0,resize:r=!0,threshold:s=0,throttleResize:n=100,throttleEnterExit:i=0}={}){let a,o;const h=e=>{for(let r of e){const{width:e,height:s}=r.contentRect;t.dispatchEvent(new St("resizeview",{width:e,height:s,entry:r}))}},c=n>0?Ct(h,n):h,l=e=>{for(let r of e){const e=r.isIntersecting?"enterview":"exitview";t.dispatchEvent(new St(e,r))}},u=i>0?Ct(l,i):l;return e&&(a=new IntersectionObserver(u,{threshold:s}),a.observe(t)),r&&(o=new ResizeObserver(c),o.observe(t)),()=>{a&&(a.unobserve(t),a.disconnect()),o&&(o.unobserve(t),o.disconnect())}}const jt="view",Ot={onEnterView(t){return this.exp.events?.[jt]||Tt(this.element),this.on("enterview",t,{category:jt,isCustom:!0})},onExitView(t){return this.exp.events?.[jt]||Tt(this.element),this.on("exitview",t,{category:jt,isCustom:!0})},onResizeView(t){return this.exp.events?.[jt]||Tt(this.element),this.on("resizeview",t,{category:jt,isCustom:!0})}};class At extends CustomEvent{constructor(t,e){super(t,{detail:e,bubbles:!0,cancelable:!0})}}let It=class extends et{constructor({element:t,name:e="",type:r="html",render:s=__Ziko__.__Config__.default.render}={}){super(),this.exp={events:{}},rt(this,st,ct,pt,dt,ft,Mt,xt,kt,Ot),t&&this.init(t,e,r,s)}on(t,e,{details_setter:r,category:s="global",isCustom:n=!1,preventDefault:i=!1}={}){t instanceof Array&&t.forEach(t=>this.on(t,e,{details_setter:r,category:s,isCustom:n,preventDefault:i})),s&&!this.exp.events.hasOwnProperty(s)&&(this.exp.events[s]=new gt(this,s)),n&&this.exp.events[s].cache.customEvents.add(t);const a=this.exp.events[s];return a.addListener(t,t=>{r&&r(a),e(t)},{preventDefault:i}),this}_off(t,e="global"){this.exp.events[e].removeListener(t)}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}};const Rt=t=>(...e)=>{const r=e[0];return r?.isUIElement?.()||Ft(r)?new t({},...e):new t(r,...e.slice(1))};function Ft(t){return"object"!=typeof t&&"function"!=typeof t||null===t}class Pt extends It{constructor(...t){super({element:"div",name:"view"}),this.append(...t)}}const zt=["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"],$t=["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"],Dt=["math","annotation","merror","mfrac","mi","mprescripts","mn","mo","mover","mpadded","mphantom","mprescripts","mroot","mrow","ms","semantics","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover"],Lt=new Proxy({},{get(t,e){if("string"!=typeof e)return;let r,s=e.replaceAll("_","-").toLowerCase();return zt.includes(s)&&(r="html"),$t.includes(s)&&(r="svg"),Dt.includes(s)&&(r="mathml"),(...t)=>0===t.length?new It({element:s,name:s,type:r}):["string","number"].includes(typeof t[0])||t[0]instanceof It||"function"==typeof t[0]&&t[0]().isStateGetter()?new It({element:s,name:s,type:r}).append(...t):new It({element:s,type:r}).setAttr(t.shift()).append(...t)}});function Ut(t){return 1==t?this.style({flexDirection:"column"}):-1==t&&this.style({flexDirection:"column-reverse"}),this}function qt(t){return 1==t?this.style({flexDirection:"row"}):-1==t&&this.style({flexDirection:"row-reverse"}),this}function Nt(t){return"number"==typeof t&&(t=["flex-start","center","flex-end"][t+1]),t}function Bt(t){return Nt(-t)}class Vt extends It{constructor({tag:t="div",orientation:e="h",order:r,w:s="100%",h:n="100%"}={}){super({element:t,name:"Flex"}),this.direction="cols",this.style({display:"flex"})}isFlex(){return!0}responsify(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,r=1){return Ut.call(this,r),this.style({alignItems:"number"==typeof t?Nt.call(this,t):t,justifyContent:"number"==typeof e?Bt.call(this,e):e}),this}horizontal(t,e,r=1){return qt.call(this,r),this.style({alignItems:"number"==typeof e?Bt.call(this,e):e,justifyContent:"number"==typeof t?Nt.call(this,t):t}),this}show(){return this.isHidden=!1,this.style({display:"flex"}),this}}class Zt extends et{constructor({element:t,name:e,type:r,render:s}){super({element:t,name:e,type:r,render:s})}}class Gt extends Zt{constructor(t,e){super({element:"div",name:"suspense"}),this.setAttr({dataTemp:"suspense"}),this.fallback_ui=t,this.append(t),(async()=>{try{const r=await e();t.unmount(),this.append(r)}catch(t){console.log({error:t})}})()}}class Ht extends It{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 Wt extends It{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:r,attributes:s}=e,n=document.createElementNS("http://www.w3.org/2000/svg","svg");for(let{name:t,value:e}of s)n.setAttribute(t,e);return n.append(...r),globalThis.svg=e,globalThis.children=r,globalThis.attributes=s,globalThis.element=n,n}throw new Error("DOMParser is not available in this environment")}(t)),this.style({display:"contents"})}}class Kt extends It{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.unmount()),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}}class Jt extends It{#c=new WeakMap;constructor({activeIndex:t=0}={},...e){super({element:"div"}),this.style({display:"contents"}),this.states={activeIndex:t},this.append(...e),this.#l()}get activeItem(){return this.items[this.states.activeIndex]}#l(){this.items.forEach((t,e)=>{const r=t.element?.style?.display||"";this.#c.set(t,r),e!==this.states.activeIndex&&t.style({display:"none"})})}next(t=1){return this.activate(this.states.activeIndex+t)}previous(t=1){return this.activate(this.states.activeIndex-t)}activate(t){if(!this.items.length)return this;const e=this.items.at(this.states.activeIndex);e&&e.style({display:"none"});const r=this.items.length;this.states.activeIndex=(t%r+r)%r;const s=this.items.at(this.states.activeIndex);if(s){const t=this.#c.get(s)||"block";s.style({display:"none"===t?"block":t})}return this}}const Yt=Rt(Jt);class Qt extends It{constructor(...t){super({element:document.createDocumentFragment()}),this.append(...t)}isFragment(){return!0}}class Xt extends Qt{constructor({each:t,fallback:e,mapFn:r=()=>{}}={}){super(),this.config={each:t,fallback:e,mapFn:r},this.append(...this.config.each.map((t,e)=>this.config.mapFn(t,e)))}}const{PI:te,sqrt:ee,cos:re,sin:se,acos:ne,pow:ie}=Math,ae=t=>t,oe=(t,e=7.5625,r=2.75)=>t<1/r?e*t*t:t<2/r?e*(t-=1.5/r)*t+.75:t<2.5/r?e*(t-=2.25/r)*t+.9375:e*(t-=2.625/r)*t+.984375;class he{constructor(t,{ease:e=ae,step:r=50,t0:s=0,start:n=!0,duration:i=3e3}={}){this.callback=t,this.state={isRunning:!1,animationId:null,startTime:null,ease:e,step:r,autoStart:n,duration:i},this.t=0,this.tx=0,this.ty=0,this.i=0,this.state.autoStart&&this.start()}#u=()=>{this.t+=this.state.step,this.i++,this.tx=I(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)};#m(t=!0){return this.state.isRunning||(t&&this.reset(!1),this.state.isRunning=!0,this.state.startTime=Date.now(),this.state.animationId=setInterval(this.#u,this.state.step)),this}start(){return this.#m(!0)}pause(){return this.state.isRunning&&(clearInterval(this.state.animationId),this.state.isRunning=!1),this}resume(){return this.#m(!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 ce{constructor(t,e,r=1/0,s){this.ms=e,this.fn=t,this.count=r,this.frame=1,this.id=null,this.running=!1,s&&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 le extends ce{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 ue{constructor(t=[],{repeat:e=1,loop:r=!1}={}){this.tasks=t,this.repeat=e,this.loop=r,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 r=>{e>0&&await new Promise(t=>setTimeout(t,e)),this.onTask&&this.onTask(t),await t(),r()})));else{const{fn:e,delay:r=0}=t;r>0&&await new Promise(t=>setTimeout(t,r)),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 me{constructor(t,{step:e=1e3,t0:r=0,t1:s=1/0,autoplay:n=!0}={}){this.callback=t,this.cache={isRunning:!1,id:null,last_tick:null,step:e,t0:r,t1:s,autoplay:n,pauseTime:null,frame:0},n&&(r?this.startAfter(r):this.start(),s!==1/0&&this.stopAfter(s))}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)}}}const pe=(t,e=",")=>t.trim().trimEnd().split("\n").map(t=>t.split(e)),fe=(t,e=",")=>{const[r,...s]=pe(t,e);return s.map(t=>{const e={};return r.forEach((r,s)=>{e[r]=t[s]}),e})},de=t=>t instanceof Array?[Object.keys(t[0]),...t.map(t=>Object.values(t))]:[Object.keys(t)],ge=(t,e)=>de(t).map(t=>t.join(e)).join("\n"),be=(t,e=",")=>ge(t instanceof Object?t:JSON.parse(t),e),we=(t,e)=>{const r=[];if(Array.isArray(t))t.forEach(t=>{if("object"==typeof t&&null!==t){r.push(`${e}-`);const s=we(t,`${e} `);r.push(...s)}else r.push(`${e}- ${t}`)});else for(const s in t)if(t.hasOwnProperty(s)){const n=t[s];if("object"==typeof n&&null!==n){r.push(`${e}${s}:`);const t=we(n,`${e} `);r.push(...t)}else r.push(`${e}${s}: ${n}`)}return r},ye=(t,e="")=>we(t,e).join("\n"),ve=(t,e)=>ye(t instanceof Object?t:JSON.parse(t),e),xe=(t,e=1)=>{let r="";for(const s in t)if(t.hasOwnProperty(s)){const n=t[s];r+="\n"+" ".repeat(e)+`<${s}>`,r+="object"==typeof n?xe(n,e+2):`${n}`,r+=`</${s}>`}return r.trim()},_e=t=>(new XMLSerializer).serializeToString(t),Me=t=>btoa(_e(t)),Ee=t=>"data:image/svg+xml;base64,"+Me(t),ke=(t,e=0)=>{t=Ce(t);let r="";const s=" ".repeat(e);for(let n in t)if("object"==typeof t[n]){r+=`${s}${n} {\n`;const i=t[n];for(let t in i)"object"==typeof i[t]?r+=ke({[t]:i[t]},e+1):r+=`${s} ${t.replace(/[A-Z]/g,t=>"-"+t.toLowerCase())}: ${i[t]};\n`;r+=`${s}}\n`}return r};function Ce(t){return"object"!=typeof t||null===t?t:Object.keys(t).reduce((e,r)=>(e[r.trim()]=Ce(t[r]),e),Array.isArray(t)?[]:{})}class Se{constructor({head:t=null,wrapper:e=null,target:r=null}){this.head=t,this.wrapper=e,this.target=r,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.mount(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}}function Te(t){return/:\w+/.test(t)}class je extends Se{constructor({head:t,wrapper:e,target:r,routes:s}){super({head:t,wrapper:e,target:r}),this.routes=new Map([["404",ut("Error 404")],...Object.entries(s)]),this.clear(),globalThis.onpopstate=this.mount(location.pathname)}clear(){return[...this.routes].forEach(t=>{!Te(t[0])&&t[1]?.isUIElement&&t[1].unmount()}),this}mount(t){const[e,r]=[...this.routes].find(e=>function(t,e){const r=t.split("/"),s=e.split("/");if(r.length!==s.length)return!1;for(let t=0;t<r.length;t++){const e=r[t],n=s[t];if(!e.startsWith(":")&&e!==n)return!1}return!0}(e[0],t));let s;if(Te(e)){const n=function(t,e){const r=t.split("/"),s=e.split("/"),n={};if(r.length!==s.length)return n;for(let t=0;t<r.length;t++){const e=r[t],i=s[t];if(e.startsWith(":"))n[e.slice(1)]=i;else if(e!==i)return{}}return n}(e,t);s=r.call(this,n)}else r?.isUIElement&&r.mount(this.wrapper),"function"==typeof r&&(s=r());return s?.isUIElement&&s.mount(this.wrapper),s instanceof Promise&&s.then(t=>t.mount(this.wrapper)),globalThis.history.pushState({},"",t),this}}const Oe=({head:t,wrapper:e,target:r,routes:s})=>new je({head:t,wrapper:e,target:r,routes:s});function Ae(t,e="./src/pages",r=["js","ts"]){"/"===e.at(-1)&&(e=e.slice(0,-1));const s=t.replace(/\\/g,"/").replace(/\[(\w+)\]/g,"$1/:$1").split("/"),n=e.split("/"),i=s.indexOf(n.at(-1));if(-1!==i){const t=s.slice(i+1),e=s.at(-1),n="index.js"===e||"index.ts"===e,a=r.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""}const Ie=(t,...e)=>{const r=e.map(e=>null===e||["number","string","boolean","bigint","undefined"].includes(typeof e)||e?.__mapfun__?t(e):e instanceof Array?e.map(e=>Ie(t,e)):ArrayBuffer.isView(e)?e.map(e=>t(e)):e instanceof Set?new Set(Ie(t,...e)):e instanceof Map?new Map([...e].map(e=>[e[0],Ie(t,e[1])])):e.isMatrix?.()?new e.constructor(e.rows,e.cols,Ie(e.arr.flat(1))):e instanceof Object?Object.fromEntries(Object.entries(e).map(e=>[e[0],Ie(t,e[1])])):void 0);return 1==r.length?r[0]:r};class Re{#p;#f=new Map;#d=0;constructor(){const t=new Blob(['\n this.onmessage = function(e) {\n const { id, funStr, args, close } = e.data;\n try {\n const func = new Function("return " + funStr)();\n const result = func(...args);\n postMessage({ id, result });\n } catch (error) {\n postMessage({ id, error: error.message });\n } finally {\n if (close) self.close();\n }\n }\n '],{type:"text/javascript"});this.#p=new Worker(URL.createObjectURL(t)),this.#p.addEventListener("message",t=>{const{id:e,result:r,error:s}=t.data,n=this.#f.get(e);n&&(n(r,s),this.#f.delete(e))})}call(t,e,r=[],s=!0){if("function"!=typeof t)throw new TypeError("func must be a function");const n=++this.#d;return this.#f.set(n,e),this.#p.postMessage({id:n,funStr:t.toString(),args:r,close:s}),this}terminate(){this.#p.terminate()}}class Fe{constructor(t=10){this.events={},this.maxListeners=t}on(t,e){return 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.`),this}once(t,e){const r=(...s)=>{this.off(t,r),e(...s)};return this.on(t,r)}off(t,e){const r=this.events[t];if(!r)return this;const s=r.indexOf(e);return-1!==s&&r.splice(s,1),this}emit(t,e){const r=this.events[t];return!!r&&([...r].forEach(r=>{try{r(e)}catch(e){console.error(`Error in listener for '${t}':`,e)}}),!0)}remove(t){return delete this.events[t],this}clear(){return this.events={},this}setMaxListeners(t){return this.maxListeners=t,this}}const Pe=t=>new Fe(t);class ze{#g;#b;#w=null;constructor(t=[],e=()=>{}){this.#g=t,this.#b=e,this.#o()}#y(){return this.#g.some(({query:t})=>globalThis.matchMedia(t).matches)}#o(){this.#g.forEach(({query:t,callback:e})=>{const r=globalThis.matchMedia(t),s=()=>{const t=this.#y();r.matches?(e(),this.#w=e):t||this.#w===this.#b||(this.#b(),this.#w=this.#b)};s(),r.addEventListener("change",s)})}}class $e{constructor(t=document.title,e=!0){this.cache={emitter:null},e&&this.useEventEmitter(),this.set(t)}useEventEmitter(){return this.cache.emitter=Pe(),this}setTitle(t){return t!==document.title&&(document.title=t,this.cache.emitter&&this.cache.emitter.emit("ziko:title-changed",t)),this}get current(){return document.title}onChange(t){return this.cache.emitter&&this.cache.emitter.on("ziko:title-changed",t),this}}class De{constructor(t,{namespace:e="Ziko",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(const r in t)if(!e.has(r))throw new Error(`Invalid CSS property: "${r}"`)}(t),this.currentPropsMap=t,this.#h(),this}#h(){const t=globalThis?.document?.documentElement?.style;for(const e in this.currentPropsMap){const r=this.namespace?`--${this.namespace}-${e}`:`--${e}`;t.setProperty(r,this.currentPropsMap[e]),Object.defineProperty(this,e,{value:`var(${r})`,writable:!0,configurable:!0,enumerable:!1})}}}const Le=t=>Object.fromEntries(new URLSearchParams(globalThis?.location?.search));let{sqrt:Ue,cos:qe,sin:Ne,exp:Be,log:Ve,cosh:Ze,sinh:Ge}=Math;for(const t of Object.getOwnPropertyNames(Math)){const e=Math[t];"function"==typeof e&&(Math[t]=new Proxy(e,{apply(e,r,s){const n=s[0];if("number"==typeof n||0===s.length)return e.apply(r,s);if(n?.isComplex?.()){const{a:t,b:i,z:a,phi:o}=n,h=(t,e)=>new n.constructor(t,e);switch(e.name){case"abs":return n.z;case"sqrt":return h(Ue(a)*qe(o/2),Ue(a)*Ne(o/2));case"log":return h(Ve(a),o);case"exp":return h(Be(t)*qe(i),Be(t)*Ne(i));case"cos":return h(qe(t)*Ze(i),-Ne(t)*Ge(i));case"sin":return h(Ne(t)*Ze(i),qe(t)*Ge(i));case"tan":{const e=qe(2*t)+Ze(2*i);return h(Ne(2*t)/e,Ge(2*i)/e)}case"cosh":return h(Ze(t)*qe(i),Ge(t)*Ne(i));case"sinh":return h(Ge(t)*qe(i),Ze(t)*Ne(i));case"tanh":{const e=Ze(2*t)+qe(2*i);return h(Ge(2*t)/e,Ne(2*i)/e)}default:return e.apply(r,s)}}throw new TypeError(`Math.${t} expects only numbers`)}}))}globalThis?.document&&document?.addEventListener("DOMContentLoaded",__Ziko__.__Config__.init()),t.App=({head:t,wrapper:e,target:r})=>new Se({head:t,wrapper:e,target:r}),t.ClickAwayEvent=bt,t.ClickListeners=xt,t.Clock=le,t.CloneElement=t=>new t.__proto__.constructor,t.Complex=w,t.E=r,t.EPSILON=s,t.EventController=gt,t.FileBasedRouting=async function(t){const e=Object.keys(t),r=function(t){if(0===t.length)return"";const e=t.map(t=>t.split("/")),r=Math.min(...e.map(t=>t.length));let s=[];for(let t=0;t<r;t++){const r=e[0][t];if(!e.every(e=>e[t]===r||e[t].startsWith("[")))break;s.push(r)}return s.join("/")+(s.length?"/":"")}(e),s={};for(let n=0;n<e.length;n++){const i=await t[e[n]](),a=await i.default;Object.assign(s,{[Ae(e[n],r)]:a})}return Oe({target:document.body,routes:{"/":()=>{},...s},wrapper:Lt.section()})},t.Flex=(...t)=>{let e="div";return"string"==typeof t[0]&&(e=t[0],t.pop()),new Vt(e).append(...t)},t.For=({each:t,fallback:e,mapFn:r}={})=>new Xt({each:t,fallback:e,mapFn:r}),t.Fragment=(...t)=>new Qt(...t),t.HTMLWrapper=t=>new Ht(t),t.KeyListeners=kt,t.Matrix=B,t.PI=e,t.PtrListeners=Mt,t.Random=g,t.SPA=Oe,t.SVGWrapper=t=>new Wt(t),t.Scheduler=(t,{repeat:e=null}={})=>new ue(t,{repeat:e}),t.Suspense=(t,e)=>new Gt(t,e),t.Swap=Yt,t.SwipeEvent=At,t.Switch=({key:t,cases:e})=>new Kt(t,e),t.Tick=ce,t.TimeAnimation=he,t.TimeLoop=me,t.TimeScheduler=ue,t.UIElement=It,t.UIFlex=Vt,t.UIFragment=Qt,t.UIHTMLWrapper=Ht,t.UINode=V,t.UISVGWrapper=Wt,t.UISwap=Jt,t.UISwitch=Kt,t.UIView=Pt,t.UseRoot=De,t.UseThread=Re,t.View=(...t)=>new Pt(...t),t.ViewEvent=St,t.ViewListeners=Ot,t.ZikoApp=Se,t.ZikoSPA=je,t.ZikoUISuspense=Gt,t.ZikoUIText=lt,t.abs=(...t)=>n(t=>t.isComplex?.()?t.z:Math.abs(t),...t),t.accum_max=t=>{let e=[],r=-1/0;for(let s of t)r=Math.max(r,s),e.push(r);return e},t.accum_min=t=>{let e=[],r=1/0;for(let s of t)r=Math.min(r,s),e.push(r);return e},t.accum_prod=(...t)=>{let e,r=[],s=1,n=t.length;for(e=0;e<n;e++)s=C(s,t[e]),r.push(s);return r},t.accum_product=t=>{let e=[],r=1;for(let s of t)r*=s,e.push(r);return e},t.accum_sum=d,t.acos=(...t)=>n(t=>{if(t?.isComplex){const{a:e,b:r}=t,s=Math.hypot(e+1,r),n=Math.hypot(e-1,r);return globalThis.Rp=s,globalThis.Rm=n,new t.constructor(Math.acos((s-n)/2),-Math.acosh((s+n)/2)).toFixed(8)}return+Math.acos(t).toFixed(8)},...t),t.acosh=(...t)=>n(t=>t?.isComplex?_(t.clone().add(x(t.clone().mul(t.clone()).sub(1)))):+Math.acosh(t).toFixed(8),...t),t.acot=(...t)=>n(t=>{if(t?.isComplex){const{a:e,b:r}=t;return new t.constructor(Math.atan(2*e/(e**2+(r-1)*(r+1)))/2,Math.log((e**2+(r-1)**2)/(e**2+(r+1)**2))/4).toFixed(8)}return+(Math.PI/2-Math.atan(t)).toFixed(8)},...t),t.add=E,t.add_class=(t,e)=>t.element.className=t.element.className.replace(/\s+$/gi,"")+" "+e,t.add_vendor_prefix=function(t){const e=t.slice(0,1).toUpperCase()+t.slice(1),r=["Webkit","Moz","O","ms"];for(let t=0,s=r.length;t<s;t++){const s=r[t];if(void 0!==(globalThis?.document?.body).style[s+e])return s+e}return t},t.and=z,t.animation=(t,{ease:e,t0:r,t1:s,start:n,duration:i}={})=>new he(t,{ease:e,t0:r,t1:s,start:n,duration:i}),t.apply_fun=i,t.arc=t=>1-se(ne(t)),t.asin=(...t)=>n(t=>{if(t?.isComplex){const{a:e,b:r}=t,s=Math.hypot(e+1,r),n=Math.hypot(e-1,r);return new t.constructor(Math.asin((s-n)/2),Math.acosh((s+n)/2)).toFixed(8)}return+Math.asin(t).toFixed(8)},...t),t.asinh=(...t)=>n(t=>t?.isComplex?_(t.clone().add(x(t.clone().mul(t.clone()).add(1)))):+Math.asinh(t).toFixed(8),...t),t.atan=(...t)=>n(t=>{if(t?.isComplex){const{a:e,b:r}=t;return new t.constructor(Math.atan(2*e/(1-e**2-r**2))/2,Math.log((e**2+(1+r)**2)/(e**2+(1-r)**2))/4).toFixed(8)}return+Math.atan(t).toFixed(8)},...t),t.atan2=R,t.atanh=(...t)=>n(t=>+Math.atanh(t).toFixed(8),...t),t.back=(t,e=1)=>t**2*((e+1)*t-e),t.binomial=(t,e)=>{if(t!==Math.floor(t))return TypeError("n must be an integer");if(e!==Math.floor(e))return TypeError("k must be an integer");if(t<0)return TypeError("n must be non-negative");if(e<0||t<0||e>t)return 0;e>t-e&&(e=t-e);let r,s=1;for(r=0;r<e;r++)s=s*(t-r)/(r+1);return s},t.call_with_optional_props=Rt,t.cbrt=(...t)=>n(t=>t.isComplex?.()?new t.constructor({z:t.z**(1/3),phi:t.phi/3}).toFixed(8):+Math.cbrt(t).toFixed(8),...t),t.ceil=(...t)=>n(t=>t.isComplex?.()?new t.constructor(Math.ceil(t.a),Math.ceil(t.b)):Math.ceil(t),...t),t.clamp=A,t.clock=t=>new le(t),t.cloneUI=t=>Object.assign(Object.create(Object.getPrototypeOf(t)),t),t.complex=y,t.contraharmonic_mean=(...t)=>{let e,r=0,s=0,n=t.length;for(e=0;e<n;e++)r+=t[e]**2,s+=t[e];return r/s},t.cos=(...t)=>n(t=>t.isComplex?.()?new t.constructor(Math.cos(t.a)*Math.cosh(t.b),-Math.sin(t.a)*Math.sinh(t.b)).toFixed(8):+Math.cos(t).toFixed(8),...t),t.cosh=(...t)=>n(t=>t?.isComplex?new t.constructor(Math.cosh(t.a)*Math.cos(t.b),Math.sinh(t.a)*Math.sin(t.b)).toFixed(8):+Math.cosh(t).toFixed(8),...t),t.coth=(...t)=>n(t=>{if(t?.isComplex){const{a:e,b:r}=t,s=Math.sinh(e)**2*Math.cos(r)**2+Math.cosh(e)**2*Math.sin(r)**2;return new t.constructor(Math.cosh(e)*Math.sinh(e)/s,-Math.sin(r)*Math.cos(r)/s).toFixed(8)}return+(1/Math.tanh(t)).toFixed(8)},...t),t.croot=(...t)=>{const e=t.pop();if(!e.isComplex?.())throw Error("croot expect Complex number as root");return n(t=>{"number"==typeof t&&(t=new e.constructor(t,0));const{a:r,b:s}=e,{z:n,phi:i}=t,a=Math.hypot(r,s),o=Math.exp((Math.log(n)*r+i*s)/a),h=(i*r-Math.log(n)*s)/a;return new e.constructor(o*Math.cos(h),o*Math.sin(h)).toFixed(8)},...t)},t.csv2arr=pe,t.csv2json=(t,e=",")=>JSON.stringify(fe(t,e)),t.csv2matrix=(t,e=",")=>new B(pe(t,e)),t.csv2object=fe,t.csv2sql=(t,e)=>{const r=t.trim().trimEnd().split("\n").filter(t=>t);let s=`INSERT INTO ${e} (${r[0].split(",").join(", ")}) Values `,n=[];for(let t=1;t<r.length;t++){const e=r[t].split(",");n.push(`(${e})`)}return s+n.join(",\n")},t.debounce=(t,e=1e3)=>(...r)=>setTimeout(()=>t(...r),e),t.defineParamsGetter=function(t){Object.defineProperties(t,{QueryParams:{get:function(){return globalThis.location.search.substring(1),Object.fromEntries(new URLSearchParams(location.search))},configurable:!1,enumerable:!0},HashParams:{get:function(){return globalThis.location.hash.substring(1).split("#")},configurable:!1,enumerable:!0}})},t.define_wc=function(t,e,r={},{mode:s="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(r)]}constructor(){super(),this.attachShadow({mode:s}),this.props={},this.mask={...r}}connectedCallback(){this.render()}render(){this.shadowRoot.innerHTML="";const t=e(this.props);t instanceof Array?t.forEach(t=>t.mount(this.shadowRoot)):t.mount(this.shadowRoot)}attributeChangedCallback(t,e,r){Object.assign(this.props,{[t]:this.mask[t].type(r)}),this.render()}}):console.warn(`"${t}" is not a valid custom element name`)},t.deg2rad=(...t)=>n(t=>t*Math.PI/180,...t),t.discret=(t,e=5)=>Math.ceil(t*e)/e,t.div=S,t.elastic=t=>-2*ie(2,10*(t-1))*re(20*te*t/3*t),t.ema=(t,e)=>{let r=[],s=t[0];r.push(s);for(let n=1;n<t.length;n++)s=e*t[n]+(1-e)*s,r.push(s);return r},t.exp=(...t)=>n(t=>t.isComplex?.()?new t.constructor(Math.exp(t.a)*Math.cos(t.b),Math.exp(t.a)*Math.sin(t.b)).toFixed(8):+Math.exp(t).toFixed(8),...t),t.floor=(...t)=>n(t=>t.isComplex?.()?new t.constructor(Math.floor(t.a),Math.floor(t.b)):Math.floor(t),...t),t.fract=(...t)=>n(t=>t.isComplex?.()?new t.constructor(t.a-Math.trunc(t.a),t.b-Math.trunc(t.b)):t-Math.trunc(t),...t),t.geo_mean=(...t)=>t.reduce((t,e)=>t*e)**(1/t.length),t.harmonic_mean=(...t)=>{let e=0,r=0;for(r=0;r<t.length;r++)e+=1/t[r];return t.length/e},t.hypot=(...t)=>{const e=t.find(t=>t.isComplex?.());if(e){const r=t.map(t=>t.isComplex?.()?t:new e.constructor(t,0));return Math.hypot(...r.map(t=>t.z))}return Math.hypot(...t)},t.in_back=(t,e=1.70158,r=e+1)=>r*ie(t,3)-e*t**2,t.in_bounce=(t,e=7.5625,r=2.75)=>1-oe(1-t,e,r),t.in_circ=t=>1-ee(1-t**2),t.in_cubic=t=>t**3,t.in_elastic=(t,e=2*te/3)=>0===t?0:1===t?1:-ie(2,10*t-10)*se((10*t-10.75)*e),t.in_expo=t=>0===t?0:2**(10*t-10),t.in_out_back=(t,e=1.70158,r=1.525*e)=>t<.5?ie(2*t,2)*(2*(r+1)*t-r)/2:(ie(2*t-2,2)*((r+1)*(2*t-2)+r)+2)/2,t.in_out_bounce=(t,e=7.5625,r=2.75)=>t<.5?oe(1-2*t,e,r)/2:oe(2*t-1,e,r)/2,t.in_out_circ=t=>t<.5?(1-ee(1-(2*t)**2))/2:(ee(1-(-2*t+2)**2)+1)/2,t.in_out_cubic=t=>t<.5?4*t**3:1-(-2*t+2)**3/2,t.in_out_elastic=(t,e=2*te/4.5)=>0===t?0:1===t?1:t<.5?-ie(2,20*t-10)*se((20*t-11.125)*e)/2:ie(2,-20*t+10)*se((20*t-11.125)*e)/2+1,t.in_out_expo=t=>0===t?0:1===t?1:t<.5?2**(20*t-10)/2:(2-2**(-20*t+10))/2,t.in_out_quad=t=>t<.5?2*t**2:1-(-2*t+2)**2/2,t.in_out_quart=t=>t<.5?8*t**4:1-(-2*t+2)**4/2,t.in_out_quint=t=>t<.5?16*t**5:1-(-2*t+2)**5/2,t.in_out_sin=t=>-(re(te*t)-1)/2,t.in_quad=t=>t**2,t.in_quart=t=>t**4,t.in_quint=t=>t**5,t.in_sin=t=>1-re(t*te/2),t.interquartile_mean=(...t)=>{let e=t.sort((t,e)=>t-e),r=e[Math.floor(.25*(e.length-1))],s=e[Math.floor(.75*(e.length-1))],n=e.filter(t=>t>=r&&t<=s);return l(n)},t.iqr=t=>c(t)-h(t),t.isPrimitive=Ft,t.isStateGetter=it,t.json2arr=t=>de(t instanceof Object?t:JSON.parse(t)),t.json2css=ke,t.json2csv=be,t.json2csvFile=(t,e)=>{const r=be(t,e),s=new Blob([r],{type:"text/csv;charset=utf-8;"});return{str:r,blob:s,url:URL.createObjectURL(s)}},t.json2xml=xe,t.json2xmlFile=(t,e)=>{const r=xe(t,e),s=new Blob([r],{type:"text/xml;charset=utf-8;"});return{str:r,blob:s,url:URL.createObjectURL(s)}},t.json2yml=ve,t.json2ymlFile=(t,e)=>{const r=ve(t,e),s=new Blob([r],{type:"text/yml;charset=utf-8;"});return{str:r,blob:s,url:URL.createObjectURL(s)}},t.lerp=O,t.linear=ae,t.linkStyle=function(t){const e=document?.createElement("link");e.setAttribute("rel","stylesheet"),e.setAttribute("href",t),document.head.appendChild(e)},t.ln=_,t.loop=(t,e={})=>new me(t,e),t.map=I,t.mapfun=n,t.matrix=(t,e,r)=>new B(t,e,r),t.matrix2=(...t)=>new B(2,2,t),t.matrix3=(...t)=>new B(3,3,t),t.matrix4=(...t)=>new B(4,4,t),t.max=(...t)=>Math.max(...t),t.mean=l,t.median=t=>o(t,50),t.midhinge=(...t)=>{let e=t.sort((t,e)=>t-e);return(e[Math.floor(.25*(e.length-1))]+e[Math.floor(.75*(e.length-1))])/2},t.midrange=t=>(Math.min(...t)+Math.max(...t))/2,t.min=(...t)=>Math.min(...t),t.modulo=T,t.mul=C,t.nand=(...t)=>F(z(...t)),t.nor=(...t)=>F($(...t)),t.norm=j,t.normalize_css_value=t=>"number"==typeof t?t+"px":t,t.not=F,t.nthr=(...t)=>{const e=t.pop();if("number"!=typeof e)throw Error("nthr expects a real number n");return n(t=>t.isComplex?.()?new t.constructor({z:t.z**(1/e),phi:t.phi/e}):t<0?e%2==2?y(0,(-t)**(1/e)).toFixed(8):+(-1*(-t)**(1/e)).toFixed(8):+(t**(1/e)).toFixed(8),...t)},t.or=$,t.out_back=(t,e=1.70158,r=e+1)=>1+r*ie(t-1,3)+e*ie(t-1,2),t.out_bounce=oe,t.out_circ=t=>ee(1-(t-1)**2),t.out_cubic=t=>1-(1-t)**3,t.out_elastic=(t,e=2*te/3)=>0===t?0:1===t?1:ie(2,-10*t)*se((10*t-.75)*e)+1,t.out_expo=t=>1===t?1:1-2**(-10*t),t.out_quad=t=>1-(1-t)**2,t.out_quart=t=>1-(1-t)**4,t.out_quint=t=>1-(1-t)**5,t.out_sin=t=>se(t*te/2),t.percentile=o,t.pow=v,t.power_mean=(t,e)=>{let r=0,s=0,n=t.length;for(s=0;s<n;s++)r+=t[s]**e;return(r/n)**(1/e)},t.q1=h,t.q3=c,t.rad2deg=(...t)=>n(t=>t/Math.PI*180,...t),t.register_click_away_event=wt,t.register_swipe_event=function(t,e=5,r=100,s=500){let n=0,i=0,a=0,o=!1;function h(t){n=t.clientX,i=t.clientY,a=performance.now(),o=!0}function c(h){if(!o)return;o=!1;const c=h.clientX-n,l=h.clientY-i;let u=null,m=null;performance.now()-a<=s&&(Math.abs(c)>=e&&Math.abs(l)<=r?(u=c<0?"left":"right",m="swipe"+u):Math.abs(l)>=e&&Math.abs(c)<=r&&(u=l<0?"up":"down",m="swipe"+u)),m&&t.dispatchEvent(new At(m,{direction:u,distX:c,distY:l,originalEvent:h}))}return t.addEventListener("pointerdown",h,{passive:!0}),t.addEventListener("pointerup",c,{passive:!0}),()=>{t.removeEventListener("pointerdown",h),t.removeEventListener("pointerup",c)}},t.register_view_event=Tt,t.remove_class=(t,e)=>t.element.className=t.element.className.replace(e,""),t.rms=(...t)=>{const e=t.length;return(Math.hypot(...t)/e)**(1/e)},t.rolling_std=(t,e)=>Math.sqrt(f(t,e)),t.rolling_variance=f,t.round=(...t)=>n(t=>t.isComplex?.()?new t.constructor(Math.round(t.a),Math.round(t.b)):Math.round(t),...t),t.sample_std=(...t)=>Math.sqrt(m(...t)),t.sample_variance=m,t.script=function(t){const e=document?.createElement("script");e.setAttribute("src",t),document.head.appendChild(e)},t.sec=(...t)=>n(t=>(t.isComplex?.(),+(1/Math.cos(t)).toFixed(8)),...t),t.sig=(...t)=>n(t=>1/(1+Math.exp(-t)).toFixed(8),...t),t.sign=(...t)=>n(t=>{if(t.isComplex?.()){const{z:e,phi:r}=t;return 0===e?new t.constructor(0,0):new t.constructor({z:1,phi:r})}return Math.sign(t)},...t),t.sin=(...t)=>n(t=>t?.isComplex?new t.constructor(Math.sin(t.a)*Math.cosh(t.b),Math.cos(t.a)*Math.sinh(t.b)).toFixed(8):+Math.sin(t).toFixed(8),...t),t.sinh=(...t)=>n(t=>t?.isComplex?new t.constructor(Math.sinh(t.a)*Math.cos(t.b),Math.cosh(t.a)*Math.sin(t.b)).toFixed(8):+Math.sinh(t).toFixed(8),...t),t.sleep=t=>new Promise(e=>setTimeout(e,t)),t.sma=(t,e)=>{let r=[];for(let s=0;s<=t.length-e;s++){let n=0;for(let r=0;r<e;r++)n+=t[s+r];r.push(n/e)}return r},t.sqrt=x,t.std=(...t)=>Math.sqrt(u(...t)),t.step=(t,e=5)=>Math.floor(t*e)/e,t.step_fps=t=>1e3/t,t.style=(t,e)=>{t&&Object.assign(t.style,e)},t.sub=k,t.svg2ascii=Me,t.svg2img=(t,e=!0)=>Lt.img(Ee(t)).mount(e),t.svg2imgUrl=Ee,t.svg2str=_e,t.tags=Lt,t.tan=(...t)=>n(t=>{if(t?.isComplex){const e=Math.cos(2*t.a)+Math.cosh(2*t.b);return new t.constructor(Math.sin(2*t.a)/e,Math.sinh(2*t.b)/e).toFixed(8)}return+Math.tan(t).toFixed(8)},...t),t.tanh=(...t)=>n(t=>{if(t?.isComplex){const e=Math.cosh(2*a)+Math.cos(2*b);return new t.constructor(Math.sinh(2*a)/e,Math.sin(2*b)/e).toFixed(8)}return+Math.tanh(t).toFixed(8)},...t),t.text=ut,t.throttle=Ct,t.tick=(t,e,r=1/0,s=!0)=>new ce(t,e,r,s),t.timeTaken=t=>{console.time("timeTaken");const e=t();return console.timeEnd("timeTaken"),e},t.time_memory_Taken=t=>{const e=Date.now(),r=performance.memory.usedJSHeapSize,s=t();return{elapsedTime:Date.now()-e,usedMemory:performance.memory.usedJSHeapSize-r,result:s}},t.timeout=function(t,e){let r;const s=new Promise(s=>{r=setTimeout(()=>{e&&e(),s()},t)});return{id:r,clear:()=>clearTimeout(r),promise:s}},t.trimmed_mean=(t,e)=>{let r=[...t].sort((t,e)=>t-e).slice(e,t.length-e);return l(...r)},t.trunc=(...t)=>n(t=>t.isComplex?.()?new t.constructor(Math.trunc(t.a),Math.trunc(t.b)):Math.trunc(t),...t),t.useDerived=function(t,e){let r=t(...e.map(t=>t().value));const s=new Set;return e.forEach(n=>{n()._subscribe(()=>{{const n=t(...e.map(t=>t().value));n!==r&&(r=n,s.forEach(t=>t(r)))}})}),()=>({value:r,isStateGetter:()=>!0,_subscribe:t=>s.add(t)})},t.useEventEmitter=Pe,t.useIPC=Y,t.useLocalStorage=(t,e,r=!0)=>new Q(localStorage,t,e,r),t.useMediaQuery=(t,e)=>new ze(t,e),t.useQueryParams=function(){const t=()=>Le();return[t,(e,r=!0)=>{const s=t(),n="function"==typeof e?e(s):e,i=r?{...s,...n}:n,a=new URLSearchParams(i).toString();window.history.pushState({},"",`${window.location.pathname}${a?`?${a}`:""}`),window.dispatchEvent(new CustomEvent("queryparamschange",{detail:i}))}]},t.useReactive=t=>Ie(t=>{const e=nt(t);return{get:e[0],set:e[1]}},t),t.useRoot=(t,e={})=>new De(t,e),t.useSessionStorage=(t,e,r=!0)=>new Q(sessionStorage,t,e,r),t.useState=nt,t.useThread=(t,e,r=[],s=!0)=>(new Re).call(t,e,r,s),t.useTitle=(t,e=!0)=>new $e(t,e),t.variance=u,t.wait=t=>new Promise(e=>setTimeout(e,t)),t.waitElm=t=>new Promise(e=>{if(t)return e(t);const r=new MutationObserver(()=>{t&&(e(t),r.disconnect())});r.observe(document?.body,{childList:!0,subtree:!0})}),t.waitForUIElm=t=>new Promise(e=>{if(t.element)return e(t.element);const r=new MutationObserver(()=>{t.element&&(e(t.element),r.disconnect())});r.observe(document?.body,{childList:!0,subtree:!0})}),t.waitForUIElmSync=(t,e=2e3)=>{const r=Date.now();for(;Date.now()-r<e;)if(t.element)return t.element},t.watchQueryParams=function(t){let e=location.search;const r=()=>{const r=location.search;r!==e&&(e=r,t(Le()))};window.addEventListener("popstate",r);const s=history.pushState;history.pushState=function(...t){s.apply(this,t),r()};const n=history.replaceState;return history.replaceState=function(...t){n.apply(this,t),r()},t(Le()),()=>{window.removeEventListener("popstate",r)}},t.weighted_mean=(t,e)=>{let r=0,s=0;for(let n=0;n<t.length;n++)r+=t[n]*e[n],s+=e[n];return r/s},t.weighted_std=(t,e)=>Math.sqrt(p(t,e)),t.weighted_variance=p,t.winsorized_mean=(t,e)=>{let r=[...t].sort((t,e)=>t-e),s=r[e],n=r[r.length-e-1];return r=r.map(t=>Math.max(s,Math.min(n,t))),l(r)},t.wma=(t,e)=>{let r=e.length,s=e.reduce((t,e)=>t+e,0),n=[];for(let i=0;i<=t.length-r;i++){let a=0;for(let s=0;s<r;s++)a+=t[i+s]*e[s];n.push(a/s)}return n},t.xnor=(...t)=>F(D(...t)),t.xor=D});
|
|
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:r}=Math,s=Number.EPSILON,n=(t,...e)=>{const r=e.map(e=>{return"object"!=typeof(r=e)&&"function"!=typeof r||null===r||e?.__mapfun__?t(e):e instanceof Array?e.map(e=>n(t,e)):ArrayBuffer.isView(e)?e.map(e=>t(e)):e instanceof Set?new Set(n(t,...e)):e instanceof Map?new Map([...e].map(e=>[e[0],n(t,e[1])])):e.isMatrix?.()?new e.constructor(e.rows,e.cols,n(e.arr.flat(1))):e instanceof Object?Object.fromEntries(Object.entries(e).map(e=>[e[0],n(t,e[1])])):void 0;var r});return 1==r.length?r[0]:r},i=(t,e)=>t.isComplex?.()?new t.constructor(e(t.a),e(t.b)):t.isMatrix?.()?new t.constructor(t.rows,t.cols,t.arr.flat(1).map(e)):(t instanceof Array&&n(e,...t),e(t)),o=(t,e)=>{if(0===t.length)return NaN;let r=t.sort((t,e)=>t-e),s=e/100*(r.length-1),n=Math.floor(s),i=s-n;return n===r.length-1?r[n]:r[n]*(1-i)+r[n+1]*i},h=t=>o(t,25),c=t=>o(t,75),l=(...t)=>t.reduce((t,e)=>t+e)/t.length,u=(...t)=>{const e=t.length;if(0===e)return NaN;const r=l(...t);return t.reduce((t,e)=>t+(e-r)**2,0)/e},m=(...t)=>{const e=t.length;if(e<2)return NaN;const r=l(...t);return t.reduce((t,e)=>t+(e-r)**2,0)/(e-1)},p=(t,e)=>{const r=t.length;if(0===r||e.length!==r)return NaN;const s=e.reduce((t,e)=>t+e,0),n=t.reduce((t,r,s)=>t+r*e[s],0)/s;return t.reduce((t,r,s)=>t+e[s]*(r-n)**2,0)/s},f=(t,e)=>{if(e<1||t.length<e)return[];let r=[];for(let s=0;s<=t.length-e;s++){const n=t.slice(s,s+e);r.push(m(n))}return r},d=t=>{let e=[],r=0;for(let s of t)r+=s,e.push(r);return e};class g{static int(t,e){return Math.floor(this.float(t,e))}static float(t,e){return void 0!==e?Math.random()*(e-t)+t:Math.random()*t}static bin(){return this.int(2)}static oct(){return this.int(8)}static dec(){return this.int(10)}static hex(){return((t,e,r)=>{const s=parseInt(t,e);if(Number.isNaN(s))throw new TypeError("Invalid value for the given base");return s.toString(r)})(this.int(16),10,16)}static char(t=!1){const e=t?this.int(65,91):this.int(97,123);return String.fromCharCode(e)}static bool(){return Boolean(this.int(2))}static get color(){return{hex:()=>`#${this.int(16777215).toString(16).padStart(6,"0")}`,hexa:()=>{const[t,e,r,s]=Array.from({length:4},()=>this.int(255).toString(16).padStart(2,"0"));return`#${t}${e}${r}${s}`},rgb:()=>{const[t,e,r]=Array.from({length:3},()=>this.int(255));return`rgb(${t}, ${e}, ${r})`},rgba:()=>{const[t,e,r]=Array.from({length:3},()=>this.int(255));return`rgba(${t}, ${e}, ${r}, ${Math.random().toFixed(2)})`},hsl:()=>`hsl(${this.int(360)}, ${this.int(100)}%, ${this.int(100)}%)`,hsla:()=>`hsla(${this.int(360)}, ${this.int(100)}%, ${this.int(100)}%, ${Math.random().toFixed(2)})`,gray:()=>{const t=this.int(255);return`rgb(${t}, ${t}, ${t})`}}}static get sample(){const t=this;return{int:(e,r,s)=>Array.from({length:e},()=>t.int(r,s)),float:(e,r,s)=>Array.from({length:e},()=>t.float(r,s)),char:(e,r=!1)=>Array.from({length:e},()=>t.char(r)),bool:e=>Array.from({length:e},()=>t.bool()),bin:e=>Array.from({length:e},()=>t.bin()),oct:e=>Array.from({length:e},()=>t.oct()),dec:e=>Array.from({length:e},()=>t.dec()),hex:e=>Array.from({length:e},()=>t.hex()),get color(){return{hex:e=>Array.from({length:e},()=>t.color.hex()),hexa:e=>Array.from({length:e},()=>t.color.hexa()),rgb:e=>Array.from({length:e},()=>t.color.rgb()),rgba:e=>Array.from({length:e},()=>t.color.rgba()),hsl:e=>Array.from({length:e},()=>t.color.hsl()),hsla:e=>Array.from({length:e},()=>t.color.hsla()),gray:e=>Array.from({length:e},()=>t.color.gray())}},choice:(e,r,s)=>Array.from({length:e},()=>t.choice(r,s))}}static shuffle(t){return[...t].sort(()=>.5-Math.random())}static choice(t=[1,2,3],e=new Array(t.length).fill(1/t.length)){const r=d(...e).map(t=>100*t),s=new Array(100);s.fill(t[0],0,r[0]);for(let e=1;e<t.length;e++)s.fill(t[e],r[e-1],r[e]);return s[this.int(s.length)]}}globalThis.Random=g;class w{constructor(t=0,e=0){[this.a,this.b]=((t,e,r)=>{let s,n;return e instanceof t?(s=e.a,n=e.b):"object"==typeof e?"a"in e&&"b"in e?(s=e.a,n=e.b):"a"in e&&"z"in e?(s=e.a,n=Math.sqrt(e.z**2-e.a**2)):"a"in e&&"phi"in e?(s=e.a,n=e.a*Math.tan(e.phi)):"b"in e&&"z"in e?(n=e.b,s=Math.sqrt(e.z**2-e.b**2)):"b"in e&&"phi"in e?(n=r,s=e.b/Math.tan(e.phi)):"z"in e&&"phi"in e&&(s=+e.z*Math.cos(e.phi).toFixed(15),n=+e.z*Math.sin(e.phi).toFixed(15)):"number"==typeof e&&"number"==typeof r&&(s=+e.toFixed(32),n=+r.toFixed(32)),[s,n]})(w,t,e)}get __mapfun__(){return!0}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}serialize(){return JSON.stringify({type:"complex",data:this})}static deserialize(t){"string"==typeof t&&(t=JSON.parse(t));let{data:e,type:r}=t;return"complex"===r&&"a"in e&&"b"in e?new w(e.a,e.b):TypeError("Not a valid complex")}toFixed(t){return this.a=+this.a.toFixed(t),this.b=+this.b.toFixed(t),this}toPrecision(t){return this.a=+this.a.toPrecision(t),this.b=+this.b.toPrecision(t),this}clone(){return new w(this.a,this.b)}get z(){return Math.hypot(this.a,this.b)}get phi(){return Math.atan2(this.b,this.a)}static zero(){return new w(0,0)}static fromPolar(t,e){return new w(+(t*cos(e)).toFixed(13),+(t*sin(e)).toFixed(13))}static get random(){return{int:(t,e)=>new w(...g.sample.int(2,t,e)),float:(t,e)=>new w(...g.sample.float(2,t,e))}}static twiddle(t,e){const r=-2*Math.PI*t/e;return new w(Math.cos(r),Math.sin(r))}get conj(){return new w(this.a,-this.b)}get inv(){return new w(this.a/Math.hypot(this.a,this.b),-this.b/Math.hypot(this.a,this.b))}add(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new w(t[e],0)),this.a+=t[e].a,this.b+=t[e].b;return this}sub(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new w(t[e],0)),this.a-=t[e].a,this.b-=t[e].b;return this}mul(...t){let{z:e,phi:r}=this;for(let s=0;s<t.length;s++)"number"==typeof t[s]&&(t[s]=new w(t[s],0)),e*=t[s].z,r+=t[s].phi;return this.a=e*Math.cos(r),this.b=e*Math.sin(r),this.toFixed(8)}div(...t){let{z:e,phi:r}=this;for(let s=0;s<t.length;s++)"number"==typeof t[s]&&(t[s]=new w(t[s],0)),e/=t[s].z,r-=t[s].phi;return this.a=e*Math.cos(r),this.b=e*Math.sin(r),this.toFixed(8)}modulo(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new w(t[e],0)),this.a%=t[e].a,this.b%=t[e].b;return this}pow(...t){let{z:e,phi:r}=this;for(let s=0;s<t.length;s++)"number"==typeof t[s]&&(t[s]=new w(t[s],0)),e*=Math.exp(t[s].a*Math.log(e)-t[s].b*r),r+=t[s].b*Math.log(e)+t[s].a*r;return this.a=e*Math.cos(r),this.b=e*Math.sin(r),this}get expo(){return[this.z,this.phi]}nthr(t=2){return y({z:this.z**(1/t),phi:this.phi/t})}get sqrt(){return this.nthr(2)}get cbrt(){return this.nthr(3)}get log(){return y(this.z,this.phi)}get cos(){return y(Math.cos(this.a)*Math.cosh(this.b),Math.sin(this.a)*Math.sinh(this.b))}get sin(){return y(Math.sin(this.a)*Math.cosh(this.b),Math.cos(this.a)*Math.sinh(this.b))}get tan(){const t=cos(2*this.a)+cosh(2*this.b);return y(Math.sin(2*this.a)/t,Math.sinh(2*this.b)/t)}}const y=(t,e)=>{if((t instanceof Array||ArrayBuffer.isView(t))&&(e instanceof Array||ArrayBuffer.isView(t)))return t.map((r,s)=>y(t[s],e[s]));if(t.isMatrix?.()&&e.isMatrix?.()){if(t.shape[0]!==e.shape[0]||t.shape[1]!==e.shape[1])return Error(0);const r=t.arr.map((r,s)=>y(t.arr[s],e.arr[s]));return new t.constructor(t.rows,t.cols,...r)}return new w(t,e)},v=(...t)=>{const e=t.pop();return n(t=>t.isComplex?.()?e.isComplex?.()?new t.constructor({z:Math.exp(e.a*Math.log(t.z)-e.b*t.phi),phi:e.b*Math.log(t.z)+e.a*t.phi}):new t.constructor({z:t.z**e,phi:t.phi*e}):e.isComplex?.()?new t.constructor({z:Math.exp(e.a*Math.log(t)),phi:e.b*Math.log(t)}):Math.pow(t,e),...t)},x=(...t)=>n(t=>t.isComplex?.()?new t.constructor({z:t.z**.5,phi:t.phi/2}):t<0?y(0,Math.sqrt(-t)).toFixed(8):+Math.sqrt(t).toFixed(8),...t),_=(...t)=>n(t=>t.isComplex?.()?new t.constructor(Math.log(t.z),t.phi).toFixed(8):+Math.log(t).toFixed(8),...t),M=(t,e,r)=>{if("number"==typeof e){if("number"==typeof r)switch(t){case"add":return e+r;case"sub":return e-r;case"mul":return e*r;case"div":return e/r;case"modulo":return e%r}return r?.isComplex?.()&&(e=new r.constructor(e,0)),r?.isMatrix?.()&&(e=r.constructor.nums(r.rows,r.cols,e)),e[t](r)}if(e?.isComplex?.()){if("number"==typeof r||r?.isComplex?.())return e.clone()[t](r);if(r?.isMatrix?.())return(e=r.constructor.nums(r.rows,r.cols,e)).clone()[t](r)}if(e?.isMatrix?.())return e.clone()[t](r)},E=(t,...e)=>{let r=t;for(let t=0;t<e.length;t++)r=M("add",r,e[t]);return r},k=(t,...e)=>{let r=t;for(let t=0;t<e.length;t++)r=M("sub",r,e[t]);return r},T=(t,...e)=>{let r=t;for(let t=0;t<e.length;t++)r=M("mul",r,e[t]);return r},C=(t,...e)=>{let r=t;for(let t=0;t<e.length;t++)r=M("div",r,e[t]);return r},S=(t,...e)=>{let r=t;for(let t=0;t<e.length;t++)r=M("modulo",r,e[t]);return r},j=(t,e,r)=>i(t,t=>e!==r?(t-e)/(r-e):0),O=(t,e,r)=>i(t,t=>(r-e)*t+e),A=(t,e,r)=>i(t,t=>Math.min(Math.max(t,e),r)),I=(t,e,r,s,n)=>i(t,t=>O(j(t,e,r),s,n)),R=(t,e,r=!0)=>{if(t instanceof Array&&!(e instanceof Array))return n(t=>R(t,e,r),...t);if(e instanceof Array&&!(t instanceof Array))return n(e=>R(t,e,r),...e);if(t instanceof Array&&e instanceof Array)return t.map((t,s)=>R(t,e[s],r));const s=Math.atan2(t,e);return r?s:180*s/Math.PI},F=t=>t.isComplex?.()?new t.constructor(F(t.a),F(t.b)):t.isMatrix?.()?new t.constructor(t.rows,t.cols,t.arr.flat(1).map(F)):+!t,P=(t,e)=>{if(t.every(t=>t.isComplex?.())){const r=t.map(t=>t.a),s=t.map(t=>t.b);return new t[0].constructor(e(...r),e(...s))}if(t.every(t=>t.isMatrix?.())){if(!t.every(e=>e.rows===t[0].rows&&e.cols===t[0].cols))return TypeError("All matrices must have the same shape");const{rows:r,cols:s}=t[0],n=Array.from({length:r},(r,n)=>Array.from({length:s},(r,s)=>e(...t.map(t=>t.arr[n][s]))));return new t[0].constructor(n)}return null},z=(...t)=>{const e=P(t,z);return null!==e?e:t.reduce((t,e)=>t&e,1)},$=(...t)=>{const e=P(t,$);return null!==e?e:t.reduce((t,e)=>t|e,0)},D=(...t)=>{const e=P(t,D);return null!==e?e:t.reduce((t,e)=>t^e,0)},L=(t,e)=>{for(let e=0;e<t.arr.length;e++)Object.defineProperty(t,e,{value:t.arr[e],writable:!0,configurable:!0,enumerable:!1});for(let r=t.arr.length;r<e;r++)delete t[r]};function U(t,e){var r=[];for(let e=0;e<t.length;e++)r.push(t[e].slice(0));r.splice(0,1);for(let t=0;t<r.length;t++)r[t].splice(e,1);return r}function q(t,e){if(t=t.clone(),e=e.clone(),t.rows!==e.rows)return;let r=t.arr;for(let s=0;s<t.rows;s++)for(let n=t.cols;n<t.cols+e.cols;n++)r[s][n]=e.arr[s][n-t.cols];return t.cols+=e.cols,new t.constructor(t.rows,t.cols,r.flat(1))}function N(t,e){if(t=t.clone(),e=e.clone(),t.cols!==e.cols)return;let r=t.arr;for(let s=t.rows;s<t.rows+e.rows;s++){r[s]=[];for(let n=0;n<t.cols;n++)r[s][n]=e.arr[s-t.rows][n]}return t.rows+=e.rows,new t.constructor(t.rows,t.cols,r.flat(1))}class B{constructor(t,e,r=[]){[this.rows,this.cols,this.arr]=((t,e,r,s)=>{if(!(e instanceof t)){let t,n,i=[];if(e instanceof Array)i=e,e=i.length,r=i[0].length;else for(t=0;t<e;t++)for(i.push([]),i[t].push(new Array(r)),n=0;n<r;n++)i[t][n]=s[t*r+n],null==s[t*r+n]&&(i[t][n]=0);return[e,r,i]}arr=e.arr,r=(e=e.rows).cols})(B,t,e,r),L(this)}isMatrix(){return!0}clone(){return new B(this.rows,this.cols,this.arr.flat(1))}toComplex(){return this.arr=n(t=>t?.isComplex?.()?t:new w(t,0),...this.arr),L(this),this}[Symbol.iterator](){return this.arr[Symbol.iterator]()}get size(){return this.rows*this.cols}get shape(){return[this.rows,this.cols]}at(t=0,e=void 0){if(t<0&&(t+=this.rows),t<0||t>=this.rows)throw new Error("Row index out of bounds");if(void 0===e)return this.arr[t];if(e<0&&(e+=this.cols),e<0||e>=this.cols)throw new Error("Column index out of bounds");return this.arr[t][e]}slice(t=0,e=0,r=this.rows-1,s=this.cols-1){r<0&&(r=this.rows+r),s<0&&(s=this.cols+s);let n=r-t,i=s-e,a=new Array(i);for(let r=0;r<n;r++){a[r]=[];for(let s=0;s<i;s++)a[r][s]=this.arr[r+t][s+e]}return this.arr=a,L(this.rows),this.rows=n,this.cols=i,this}reshape(t,e){if(t*e!==this.rows*this.cols)throw Error("size not matched");const r=this.rows;return Object.assign(this,new B(t,e,this.arr.flat(1))),L(r),this}get T(){let t=[];for(let e=0;e<this.arr[0].length;e++){t[e]=[];for(let r=0;r<this.arr.length;r++)t[e][r]=this.arr[r][e]}return new B(this.cols,this.rows,t.flat(1))}get det(){return(t=this).isSquare?1==t.rows?t.arr[0][0]:function t(e){if(2==e.length)return e.flat(1).some(t=>t?.isMatrix?.())?void console.warn("Tensors are not completely supported yet ..."):k(T(e[0][0],e[1][1]),T(e[0][1],e[1][0]));for(var r=0,s=0;s<e.length;s++){const n=E(T(v(-1,s),T(e[0][s],t(U(e,s)))));r=E(r,n)}return r}(t.arr):new Error("is not square matrix");var t}get inv(){return function(t){if(t.row!==t.cols)throw Error('is not a square matrix"');if(0===t.det)throw Error("determinant should not equal 0");const{arr:e}=t;if(e.length===e[0].length){var r=0,s=0,n=0,i=e.length,a=0,o=[],h=[];for(r=0;r<i;r+=1)for(o[o.length]=[],h[h.length]=[],n=0;n<i;n+=1)o[r][n]=r==n?1:0,h[r][n]=e[r][n];for(r=0;r<i;r+=1){if(0==(a=h[r][r])){for(s=r+1;s<i;s+=1)if(0!=h[s][r]){for(n=0;n<i;n++)a=h[r][n],h[r][n]=h[s][n],h[s][n]=a,a=o[r][n],o[r][n]=o[s][n],o[s][n]=a;break}if(0==(a=h[r][r]))return}for(n=0;n<i;n++)h[r][n]=h[r][n]/a,o[r][n]=o[r][n]/a;for(s=0;s<i;s++)if(s!=r)for(a=h[s][r],n=0;n<i;n++)h[s][n]-=a*h[r][n],o[s][n]-=a*o[r][n]}return new t.constructor(o)}}(this)}static eye(t){let e=new B(t,t);for(let r=0;r<t;r++)for(let s=0;s<t;s++)e.arr[r][s]=r===s?1:0;return e}static zeros(t,e){let r=new B(t,e);for(let n=0;n<t;n++)for(var s=0;s<e;s++)r.arr[n][s]=0;return r}static ones(t,e){let r=new B(t,e);for(let s=0;s<t;s++)for(let t=0;t<e;t++)r.arr[s][t]=1;return r}static nums(t,e,r){let s=new B(t,e);for(let n=0;n<t;n++)for(let t=0;t<e;t++)s.arr[n][t]=r;return s}static get random(){return{int:(t,e,r,s)=>new B(t,e,g.sample.int(t*e,r,s)),float:(t,e,r)=>new B(t,e,g.sample.float(t*e,r,b))}}get range(){return{map:(t,e,r,s)=>(this.arr=I(this.arr,t,e,r,s),this),norm:(t,e)=>(this.arr=j(this.arr,t,e),this),lerp:(t,e)=>(this.arr=O(this.arr,t,e),this),clamp:(t,e)=>(this.arr=A(this.arr,t,e),this)}}hstack(...t){const e=[this,...t].reduce((t,e)=>q(t,e));return Object.assign(this,e),L(this),this}vstack(...t){const e=[this,...t].reduce((t,e)=>N(t,e));return Object.assign(this,e),L(this),this}hqueue(...t){const e=[this,...t].reverse().reduce((t,e)=>q(t,e));return Object.assign(this,e),L(this),this}vqueue(...t){const e=[this,...t].reverse().reduce((t,e)=>N(t,e));return Object.assign(this,e),L(this),this}forEach(t){return this.arr.flat(1).forEach(t),this}forEachRow(t){return this.arr.forEach(t),this}forEachCol(t){return this.clone().T.forEachRow(t),this}map(t){const e=this.arr.flat(1).map(t);return new B(this.rows,this.cols,e)}mapRows(t=()=>{}){return this.arr=this.arr.map(t),this}mapCols(t){return this.clone().T.mapRows(t).T}sort(t=()=>{}){const e=this.arr.flat(1).sort(t);return new B(this.rows,this.cols,e)}shuffle(){return this.sort(()=>.5-Math.random())}sortRows(t=()=>{}){return this.arr=this.arr.map(e=>e.sort(t)),this}shuffleRows(){return this.sortRows(()=>.5-Math.random())}sortCols(t){return this.clone().T.sortRows(t).T}shuffleCols(){return this.sortCols(()=>.5-Math.random())}reduce(t,e){const r=e?this.arr.flat(1).reduce(t,e):this.arr.flat(1).reduce(t);return new B([[r]])}reduceRows(t,e){const r=e?this.arr.map(r=>r.reduce(t,e)):this.arr.map(e=>e.reduce(t));return new B(1,this.cols,r)}reduceCols(t,e){return this.T.reduceRows(t,e).T}filterRows(t){const e=this.arr.map(e=>e.some(e=>t(e))),r=[];let s;for(s=0;s<e.length;s++)e[s]&&r.push(this.arr[s]);return new B(r)}filterCols(t){const e=this.T.filterRows(t);return new B(e).T}every(t){return this.arr.flat(1).every(t)}everyRow(t){return this.arr.map(e=>e.every(t))}everyCol(t){return this.T.arr.map(e=>e.every(t))}some(t){return this.arr.flat(1).some(t)}someRow(t){return this.arr.map(e=>e.some(t))}someCol(t){return this.T.arr.map(e=>e.some(t))}get isSquare(){return this.rows===this.cols}get isSym(){if(!this.isSquare)return!1;for(let t=0;t<this.rows;t++)for(let e=t+1;e<this.cols;e++)if(this.arr[t][e]!==this.arr[e][t])return!1;return!0}get isAntiSym(){if(!this.isSquare)return!1;const t=this.rows;for(let e=0;e<t;e++){if(0!==this.arr[e][e])return!1;for(let r=e+1;r<t;r++)if(this.arr[e][r]!==-this.arr[r][e])return!1}return!0}get isDiag(){if(!this.isSquare)return!1;const t=this.rows;for(let e=0;e<t;e++)for(let r=e+1;r<t;r++)if(0!==this.arr[e][r]||0!==this.arr[r][e])return!1;return!0}get isOrtho(){return!!this.isSquare&&(this.isDiag&&(1==this.det||-1==this.det))}get isIdemp(){if(!this.isSquare)return!1;const t=this.rows,e=this.arr,r=[];for(let s=0;s<t;s++){r[s]=[];for(let n=0;n<t;n++){let i=0;for(let r=0;r<t;r++)i+=e[s][r]*e[r][n];r[s][n]=i}}for(let s=0;s<t;s++)for(let n=0;n<t;n++)if(r[s][n]!==e[s][n])return!1;return!0}get isUpperTri(){if(!this.isSquare)return!1;const t=this.rows;for(let e=1;e<t;e++)for(let t=0;t<e;t++)if(0!==this.arr[e][t])return!1;return!0}get isLowerTri(){if(!this.isSquare)return!1;const t=this.rows;for(let e=0;e<t-1;e++)for(let r=e+1;r<t;r++)if(0!==this.arr[e][r])return!1;return!0}toPrecision(t){for(let e=0;e<this.cols;e++)for(let r=0;r<this.rows;r++)this.arr[e][r]=+this.arr[e][r].toPrecision(t);return this}toFixed(t){for(let e=0;e<this.cols;e++)for(let r=0;r<this.rows;r++)this.arr[e][r]=+this.arr[e][r].toFixed(t);return this}splice(t,e,r,...s){}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)}#t(t,...e){for(let s=0;s<e.length;s++){("number"==typeof e[s]||e[s]?.isComplex?.())&&(e[s]=B.nums(this.rows,this.cols,e[s]));for(let n=0;n<this.rows;n++)for(var r=0;r<this.cols;r++)this.arr[n][r]=t(this.arr[n][r],e[s].arr[n][r])}return new B(this.rows,this.cols,this.arr.flat(1))}add(...t){return this.#t(E,...t)}sub(...t){return this.#t(k,...t)}mul(...t){return this.#t(T,...t)}div(...t){return this.#t(C,...t)}modulo(...t){return this.#t(S,...t)}dot(t){for(var e=[],r=0;r<this.arr.length;r++){e[r]=[];for(var s=0;s<t.arr[0].length;s++){e[r][s]=0;for(var n=0;n<this.arr[0].length;n++)e[r][s]=E(e[r][s],T(this.arr[r][n],t.arr[n][s]))}}return new B(this.arr.length,t.arr[0].length,e.flat(1))}pow(t){let e=this.clone(),r=this.clone();for(let s=0;s<t-1;s++)r=r.dot(e);return r}sum(){let t=0;for(let e=0;e<this.rows;e++)for(let r=0;r<this.cols;r++)t=E(t,this.arr[e][r]);return t}prod(){let t=1;for(let e=0;e<this.rows;e++)for(let r=0;r<this.cols;r++)t=T(t,this.arr[e][r]);return t}hasComplex(){return this.arr.flat(1/0).some(t=>t instanceof w)}get min(){this.hasComplex()&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(Math.min(...this.arr[e]));return Math.min(...t)}get max(){this.hasComplex()&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(Math.max(...this.arr[e]));return Math.max(...t)}get minRows(){this.hasComplex()&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(Math.min(...this.arr[e]));return t}get maxRows(){this.hasComplex()&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(Math.max(...this.arr[e]));return t}get minCols(){return this.hasComplex()&&console.error("Complex numbers are not comparable"),this.T.minRows}get maxCols(){return this.hasComplex()&&console.error("Complex numbers are not comparable"),this.T.maxRows}static fromVector(t){return new B(t.length,1,t)}serialize(){const t=n(t=>t.serialize?.()||t,...this.arr);return JSON.stringify({type:"matrix",data:{rows:this.rows,cols:this.cols,arr:t}})}static deserialize(t){"string"==typeof t&&(t=JSON.parse(t));const{type:e,data:r}=t;if("matrix"!==e)return TypeError("Not a valid Matrix");let{arr:s}=r;return s=n(t=>{if("string"==typeof t){const e=JSON.parse(t),{type:r}=e;if("complex"===r)return w.deserialize(e)}return t},...s),new B(s)}flip(){return this.flipeH().flipeV()}flipeH(){return this.arr=this.arr.map(t=>[...t].reverse()),L(this),this}flipeV(){return this.arr=this.arr.reverse(),L(this),this}}class V{constructor(t){this.cache={node:t}}isUINode(){return!0}get node(){return this.cache.node}}class Z 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 G=new Z,H={default:{target:null,render:!0,math:{mode:"deg"}},setDefault:function(t){const e=Object.keys(t),r=Object.values(t);for(let t=0;t<e.length;t++)this.default[e[t]]=r[t]},init:()=>{},renderingMode:"spa",isSSC:!1},W={store:new Map,index:0,register:function(t){this.store.set(this.index++,t)},reset(){this.index=0,this.store.clear()}},K={ui_index:0,get_ui_index:function(){return this.ui_index++},register_ui:function(t){}};class J{#e;#r;#s;#n;#i;#a;constructor(t=""){this.#e=new BroadcastChannel(t),this.#r=new Map,this.#s=new Map,this.#n="ziko-channel:"+1e17*Math.random(),this.#i=new Set([this.#n]),this.#a=new Set,this.#e.addEventListener("message",t=>{const{last_sent_event:e,userId:r,eventData:s,rooms:n}=t.data;if(r===this.#n)return;if(n&&n.length&&!n.some(t=>this.#a.has(t)))return;this.#i.add(r),this.#r=new Map(s);const i=this.#s.get(e);i&&i.forEach(({fn:t,rooms:r})=>{r&&0!==r.length&&n&&!n.some(t=>r.includes(t))||t(this.#r.get(e))})})}emit(t,e,r){return this.#r.set(t,e),"string"==typeof r&&(r=[r]),this.#e.postMessage({eventData:Array.from(this.#r.entries()),last_sent_event:t,userId:this.#n,rooms:r&&r.length?r:void 0}),this}on(t,e=console.log,r){return this.#s.has(t)||this.#s.set(t,[]),"string"==typeof r&&(r=[r]),this.#s.get(t).push({fn:e,rooms:r}),this}off(t,e){return this.#s.has(t)?(this.#s.set(t,this.#s.get(t).filter(t=>t.fn!==e)),this):this}once(t,e,r){const s=r=>{e(r),this.off(t,s)};return this.on(t,s,r),this}join(...t){return t.forEach(t=>this.#a.add(t)),this}leave(...t){return t.length?t.forEach(t=>this.#a.delete(t)):this.#a.clear(),this}close(){return this.#e.close(),this}}const Y=t=>new J(t);class Q{static RESERVED_KEYS=new Set(["cache","items","set","add","remove","get","clear","onStorageUpdated"]);constructor(t,e,r,s=!0){this.cache={storage:t,globalKey:e,channel:s?Y(`Ziko:useStorage-${e}`):null,oldItemKeys:new Set},this.#o(r,s)}get items(){const t=this.cache.storage.getItem(this.cache.globalKey);if(!t)return{};try{return JSON.parse(t)}catch{return{}}}#h(){const t=this.items,e=new Set(Object.keys(t));this.cache.oldItemKeys.forEach(t=>{e.has(t)||(delete this[t],this.cache.oldItemKeys.delete(t))});for(const e in t)Q.RESERVED_KEYS.has(e)||(this[e]=t[e],this.cache.oldItemKeys.add(e))}#o(t,e){e&&this.cache.channel&&this.cache.channel.on("Ziko-Storage-Updated",()=>this.#h());null!==this.cache.storage.getItem(this.cache.globalKey)?this.#h():void 0!==t?this.set(t):this.#h()}set(t){return this.cache.storage.setItem(this.cache.globalKey,JSON.stringify(t)),this.cache.channel&&this.cache.channel.emit("Ziko-Storage-Updated",t),this.#h(),this}add(t){return this.set({...this.items,...t})}remove(...t){const e={...this.items};return t.forEach(t=>delete e[t]),this.set(e)}get(t){return this.items[t]}clear(){return this.cache.storage.removeItem(this.cache.globalKey),this.#h(),this}onStorageUpdated(t){return this.cache.channel&&this.cache.channel.on("Ziko-Storage-Updated",t),this}}var X,tt={store:new Map,index:0,session_storage:null,register:function(t){},update:function(t,e){}};globalThis?.__Ziko__||(globalThis.__Ziko__={__UI__:G,__HYDRATION__:W,__State__:tt,__Config__:H,__CACHE__:K,__PROVIDERS__:{}},X=__Ziko__,Object.defineProperties(X,{QueryParams:{get:function(){return function(t){const e={};return t.replace(/[A-Z0-9]+?=([\w|:|\/\.]*)/gi,t=>{const[r,s]=t.split("=");e[r]=s}),e}(globalThis.location.search.substring(1))},configurable:!1,enumerable:!0},HashParams:{get:function(){return globalThis.location.hash.substring(1).split("#")},configurable:!1,enumerable:!0}}));class et extends V{constructor(){super()}init(t,e,r,s){if(this.target=globalThis.__Ziko__.__Config__.default.target||globalThis?.document?.body,"string"==typeof t)switch(r){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,itemsTarget:this,isInteractive:!1,parent:null,isBody:!1,isRoot:!1,isHidden:!1,isFrozzen:!1,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 Z,globalThis.__Ziko__.__UI__[this.cache.name]?globalThis.__Ziko__.__UI__[this.cache.name]?.push(this):globalThis.__Ziko__.__UI__[this.cache.name]=[this],t&&s&&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 rt(t,...e){e.forEach(e=>function(t,e){const r=Object.getOwnPropertyDescriptors(e);for(const e of Reflect.ownKeys(r)){const s=r[e];"get"in s||"set"in s||"function"!=typeof s.value?Object.defineProperty(Object.getPrototypeOf(t),e,s):"function"==typeof s.value&&(Object.getPrototypeOf(t).hasOwnProperty(e)||Object.defineProperty(Object.getPrototypeOf(t),e,s))}}(t,e))}var st=Object.freeze({__proto__:null,mount:function(t=this.target,e=0){return e>0?(setTimeout(()=>this.mount(t,0),e),this):(this.isBody||(t?.isUIElement&&(t=t.element),this.target=t,this.target?.appendChild(this.element)),this)},unmount:function(t=0){return t>0?(setTimeout(()=>this.unmount(0),t),this):(this.cache.parent?this.cache.parent.remove(this):this.target?.children?.length&&[...this.target.children].includes(this.element)&&this.target.removeChild(this.element),this)}});function nt(t){const e={value:t,subscribers:new Set,paused:!1};return[function(){return{value:e.value,isStateGetter:()=>!0,_subscribe:t=>(e.subscribers.add(t),()=>e.subscribers.delete(t))}},function(t){e.paused||("function"==typeof t&&(t=t(e.value)),Object.is(t,e.value)||(e.value=t,e.subscribers.forEach(t=>t(e.value))))},{pause:()=>{e.paused=!0},resume:()=>{e.paused=!1},clear:()=>{e.subscribers.clear()},force:t=>{"function"==typeof t&&(t=t(e.value)),e.value=t,e.subscribers.forEach(t=>t(e.value))},getSubscribers:()=>new Set(e.subscribers)}]}const it=t=>"function"==typeof t&&!0===t?.()?.isStateGetter?.(),at=(t="")=>t.replace(/[A-Z]/g,t=>"-"+t.toLowerCase()),ot=(t="")=>{if(0===t.length)return!1;return/^[a-z][a-zA-Z0-9]*$/.test(t)};function ht(t,e){if(globalThis.SVGAElement&&this.element instanceof globalThis.SVGAElement&&(t=ot(t)?at(t):t),!this?.attr[t]||this?.attr[t]!==e){if(it(e)){e()._subscribe(e=>this.element?.setAttribute(t,e),this)}else this.element?.setAttribute(t,e);Object.assign(this.cache.attributes,{[t]:e})}}var ct=Object.freeze({__proto__:null,_set_attrs_:ht,getAttr:function(t){return t=ot(t)?at(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[r,s]=[Object.keys(t),Object.values(t)];for(let t=0;t<r.length;t++)s[t]instanceof Array&&(e[t]=s[t].join(" ")),ht.call(this,r[t],s[t])}else e instanceof Array&&(e=e.join(" ")),ht.call(this,t,e);return this},setContentEditable:function(t=!0){return this.setAttr("contenteditable",t),this}});class lt extends V{constructor(...t){super("span","text",!1,...t),this.element=globalThis?.document?.createTextNode(...t)}isText(){return!0}}const ut=(...t)=>new lt(...t);async function mt(t,e,...r){const s=this.itemsTarget.element,n=this.itemsTarget;if(this.cache.isFrozzen)return console.warn("You can't append new item to frozzen element"),this;for(let i=0;i<r.length;i++){if(["number","string"].includes(typeof r[i])&&(r[i]=ut(r[i])),r[i]instanceof Function){const t=r[i]();t.isStateGetter&&(r[i]=ut(t.value),t._subscribe(t=>r[i].element.textContent=t,r[i]))}if("function"==typeof globalThis?.Node&&r[i]instanceof globalThis?.Node&&(r[i]=new this.constructor(r[i])),r[i]?.isUINode)r[i].cache.parent=this,s?.[t](r[i].element),r[i].target=this.itemsTarget.element,n.items[e](r[i]);else if(r[i]instanceof Promise){const a=await r[i];a.cache.parent=this,s?.[t](a.element),a.target=this.itemsTarget.element,n.items[e](a)}else r[i]instanceof Object&&(r[i]?.style&&this.style(r[i]?.style),r[i]?.attr&&Object.entries(r[i].attr).forEach(t=>this.setAttr(""+t[0],t[1])))}return this.maintain(),this}var pt=Object.freeze({__proto__:null,__addItem__:mt,after:function(t){return t?.isUIElement&&(t=t.element),this.itemsTarget.element?.after(t),this},append:function(...t){return mt.call(this,"append","push",...t),this},before:function(t){return t?.isUIElement&&(t=t.element),this.itemsTarget.element?.before(t),this},clear:function(){return this?.items?.forEach(t=>t.unmount()),this.itemsTarget.element.innerHTML="",this},insertAt:function(t,...e){const r=this.itemsTarget;if(t>=r.items.length)return this.append(...e);for(let s=0;s<e.length;s++)["number","string"].includes(typeof e[s])&&(e[s]=ut(e[s])),r.element?.insertBefore(e[s].element,r.items[t].element),r.items.splice(t,0,e[s]);return r.maintain(),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.itemsTarget.element?.removeChild(t.element),this.items=this.items.filter(e=>e!==t)};for(let r=0;r<t.length;r++)e(t[r]);for(let t=0;t<this.items.length;t++)Object.assign(this,{[[t]]:this.items[t]});return this},replaceElementWith:function(t){return this.cache.element.replaceWith(t),this.cache.element=t,this}});var ft=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 dt=Object.freeze({__proto__:null,animate:function(t,{duration:e=1e3,iterations:r=1,easing:s="ease"}={}){return this.element?.animate(t,{duration:e,iterations:r,easing:s}),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 r=t[e];if(it(r)){const t=r();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]:r})}return this}});class gt{constructor(t,e){this.cache={category:e,target:t,listeners:{},currentEvent:null,event:null,customEvents:new Set}}get event(){return this.cache.event}get target(){return this.cache.target}get element(){return this.cache.target.element}get currentEvent(){return this.cache.currentEvent}addListener(t,e,{preventDefault:r=!1,paused:s=!1}={}){return this.cache.listeners[t]={callback:r=>{this.cache.event=r,this.cache.listeners[t].preventDefault&&r.preventDefault(),this.cache.listeners[t].paused||(this.cache.currentEvent=t,e.call(this,this))},preventDefault:r,paused:s},this.element.addEventListener(t,this.cache.listeners[t].callback),this}removeListener(t){return this.element.removeEventListener(t,this.cache.listeners[t].callback),this}pause(t){return this.cache.listeners[t].paused=!0,this}resume(t){return this.cache.listeners[t].paused=!1,this}preventDefault(t){return this.cache.listeners[t].preventDefault=!0,this}useDefault(t){return this.cache.listeners[t].preventDefault=!1,this}}class bt extends Event{constructor(t,e){super("clickaway",{bubbles:!0,cancelable:!0}),this.originalEvent=t,this.targetElement=e}}function wt(t){function e(e){if(!t.contains(e.target)){const r=new bt(e,t);t.dispatchEvent(r)}}return globalThis?.document?.addEventListener("click",e),()=>globalThis?.document?.removeEventListener("click",e)}const yt=(t,e=!1)=>{const r=t.element.getBoundingClientRect(),s=t.event;let n=s?.clientX-r.left|0,i=s?.clientY-r.top|0;if(e){const e=t.element.clientWidth,r=t.element.clientHeight;n=+(n/e*2-1).toFixed(8),i=+(i/r*-2+1).toFixed(8)}return{x:n,y:i}},vt="click",xt={onClick(t){return this.on("click",t,{category:vt})},onDblClick(t){return this.on("dblclick",t,{category:vt})},onClickAway(t){var e,r,s;return e=this,r=vt,s="clickaway",e.exp.events?.[r]?.cache?.customEvents?.has(s)||wt(this.element),this.on("clickaway",t,{category:vt,isCustom:!0})}},_t="ptr",Mt={onPtrDown(t,e=!1){return this.on("pointerdown",t,{category:_t,details_setter:t=>{const{x:r,y:s}=yt(t,e);t.dx=r,t.dy=s,t.isDown=!0,t.isDragging=t.isMoving??!1}})},onPtrMove(t,e=!1){return this.on("pointermove",t,{category:_t,details_setter:t=>{const{x:r,y:s}=yt(t,e);t.mx=r,t.my=s,t.isMoving=!0,t.isDragging=t.isDown??!1}})},onPtrUp(t,e=!1){return this.on("pointerup",t,{category:_t,details_setter:t=>{const{x:r,y:s}=yt(t,e);t.ux=r,t.uy=s,t.isDown=!1,t.isMoving=!1,t.isDragging=!1}})}},Et="key",kt={onKeyDown(t){return this.on("keydown",t,{category:Et,details_setter:t=>{t.kd=t.event.key}})},onKeyPress(t){return this.on("keypress",t,{category:Et,details_setter:t=>{t.kp=t.event.key}})},onKeyUp(t){return this.on("keydown",t,{category:Et,details_setter:t=>{t.ku=t.event.key}})}},Tt=(t,e)=>{let r=0;return(...s)=>{const n=(new Date).getTime();n-r<e||(r=n,t(...s))}};class Ct extends CustomEvent{constructor(t,e,{bubbles:r=!0,cancelable:s=!0}={}){super(t,{detail:e,bubbles:r,cancelable:s})}}function St(t,{intersection:e=!0,resize:r=!0,threshold:s=0,throttleResize:n=100,throttleEnterExit:i=0}={}){let a,o;const h=e=>{for(let r of e){const{width:e,height:s}=r.contentRect;t.dispatchEvent(new Ct("resizeview",{width:e,height:s,entry:r}))}},c=n>0?Tt(h,n):h,l=e=>{for(let r of e){const e=r.isIntersecting?"enterview":"exitview";t.dispatchEvent(new Ct(e,r))}},u=i>0?Tt(l,i):l;return e&&(a=new IntersectionObserver(u,{threshold:s}),a.observe(t)),r&&(o=new ResizeObserver(c),o.observe(t)),()=>{a&&(a.unobserve(t),a.disconnect()),o&&(o.unobserve(t),o.disconnect())}}const jt="view",Ot={onEnterView(t){return this.exp.events?.[jt]||St(this.element),this.on("enterview",t,{category:jt,isCustom:!0})},onExitView(t){return this.exp.events?.[jt]||St(this.element),this.on("exitview",t,{category:jt,isCustom:!0})},onResizeView(t){return this.exp.events?.[jt]||St(this.element),this.on("resizeview",t,{category:jt,isCustom:!0})}};class At extends CustomEvent{constructor(t,e){super(t,{detail:e,bubbles:!0,cancelable:!0})}}let It=class extends et{constructor({element:t,name:e="",type:r="html",render:s=__Ziko__.__Config__.default.render}={}){super(),this.exp={events:{}},rt(this,st,ct,pt,dt,ft,Mt,xt,kt,Ot),t&&this.init(t,e,r,s)}on(t,e,{details_setter:r,category:s="global",isCustom:n=!1,preventDefault:i=!1}={}){t instanceof Array&&t.forEach(t=>this.on(t,e,{details_setter:r,category:s,isCustom:n,preventDefault:i})),s&&!this.exp.events.hasOwnProperty(s)&&(this.exp.events[s]=new gt(this,s)),n&&this.exp.events[s].cache.customEvents.add(t);const a=this.exp.events[s];return a.addListener(t,t=>{r&&r(a),e(t)},{preventDefault:i}),this}_off(t,e="global"){return this.exp.events[e].removeListener(t),this}get element(){return this.cache.element}get itemsTarget(){return this.cache.itemsTarget}get itemsTargetElement(){return this.itemsTarget.element}setItemsTarget(t){return this.cache.itemsTarget=t,this.items=t.items,this}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}};const Rt=t=>(...e)=>{const r=e[0];return r?.isUIElement?.()||Ft(r)?new t({},...e):new t(r,...e.slice(1))};function Ft(t){return"object"!=typeof t&&"function"!=typeof t||null===t}class Pt extends It{constructor(...t){super({element:"div",name:"view"}),this.append(...t)}}const zt=["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"],$t=["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"],Dt=["math","annotation","merror","mfrac","mi","mprescripts","mn","mo","mover","mpadded","mphantom","mprescripts","mroot","mrow","ms","semantics","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover"],Lt=new Proxy({},{get(t,e){if("string"!=typeof e)return;let r,s=e.replaceAll("_","-").toLowerCase();return zt.includes(s)&&(r="html"),$t.includes(s)&&(r="svg"),Dt.includes(s)&&(r="mathml"),(...t)=>0===t.length?new It({element:s,name:s,type:r}):["string","number"].includes(typeof t[0])||t[0]instanceof It||"function"==typeof t[0]&&t[0]().isStateGetter()?new It({element:s,name:s,type:r}).append(...t):new It({element:s,type:r}).setAttr(t.shift()).append(...t)}});function Ut(t){return 1==t?this.style({flexDirection:"column"}):-1==t&&this.style({flexDirection:"column-reverse"}),this}function qt(t){return 1==t?this.style({flexDirection:"row"}):-1==t&&this.style({flexDirection:"row-reverse"}),this}function Nt(t){return"number"==typeof t&&(t=["flex-start","center","flex-end"][t+1]),t}function Bt(t){return Nt(-t)}class Vt extends It{constructor({tag:t="div",orientation:e="h",order:r,w:s="100%",h:n="100%"}={}){super({element:t,name:"Flex"}),this.direction="cols",this.style({display:"flex"})}isFlex(){return!0}responsify(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,r=1){return Ut.call(this,r),this.style({alignItems:"number"==typeof t?Nt.call(this,t):t,justifyContent:"number"==typeof e?Bt.call(this,e):e}),this}horizontal(t,e,r=1){return qt.call(this,r),this.style({alignItems:"number"==typeof e?Bt.call(this,e):e,justifyContent:"number"==typeof t?Nt.call(this,t):t}),this}show(){return this.isHidden=!1,this.style({display:"flex"}),this}}class Zt extends et{constructor({element:t,name:e,type:r,render:s}){super({element:t,name:e,type:r,render:s})}}class Gt extends Zt{constructor(t,e){super({element:"div",name:"suspense"}),this.setAttr({dataTemp:"suspense"}),this.fallback_ui=t,this.append(t),(async()=>{try{const r=await e();t.unmount(),this.append(r)}catch(t){console.log({error:t})}})()}}class Ht extends It{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 Wt extends It{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:r,attributes:s}=e,n=document.createElementNS("http://www.w3.org/2000/svg","svg");for(let{name:t,value:e}of s)n.setAttribute(t,e);return n.append(...r),globalThis.svg=e,globalThis.children=r,globalThis.attributes=s,globalThis.element=n,n}throw new Error("DOMParser is not available in this environment")}(t)),this.style({display:"contents"})}}class Kt extends It{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.unmount()),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}}class Jt extends It{#c=new WeakMap;constructor({activeIndex:t=0}={},...e){super({element:"div"}),this.style({display:"contents"}),this.states={activeIndex:t},this.append(...e),this.render()}get activeItem(){return this.items[this.states.activeIndex]}render(){this.items.forEach((t,e)=>{const r=t.element?.style?.display||"";this.#c.set(t,r),e!==this.states.activeIndex&&t.style({display:"none"})})}next(t=1){return this.activate(this.states.activeIndex+t)}previous(t=1){return this.activate(this.states.activeIndex-t)}activate(t){if(!this.items.length)return this;const e=this.items.at(this.states.activeIndex);e&&e.style({display:"none"});const r=this.items.length;this.states.activeIndex=(t%r+r)%r;const s=this.items.at(this.states.activeIndex);if(s){const t=this.#c.get(s)||"block";s.style({display:"none"===t?"block":t})}return this}}const Yt=Rt(Jt);class Qt extends It{constructor(...t){super({element:document.createDocumentFragment()}),this.append(...t)}isFragment(){return!0}}class Xt extends Qt{constructor({each:t,fallback:e,mapFn:r=()=>{}}={}){super(),this.config={each:t,fallback:e,mapFn:r},this.append(...this.config.each.map((t,e)=>this.config.mapFn(t,e)))}}const{PI:te,sqrt:ee,cos:re,sin:se,acos:ne,pow:ie}=Math,ae=t=>t,oe=(t,e=7.5625,r=2.75)=>t<1/r?e*t*t:t<2/r?e*(t-=1.5/r)*t+.75:t<2.5/r?e*(t-=2.25/r)*t+.9375:e*(t-=2.625/r)*t+.984375;class he{constructor(t,{ease:e=ae,step:r=50,t0:s=0,start:n=!0,duration:i=3e3}={}){this.callback=t,this.state={isRunning:!1,animationId:null,startTime:null,ease:e,step:r,autoStart:n,duration:i},this.t=0,this.tx=0,this.ty=0,this.i=0,this.state.autoStart&&this.start()}#l=()=>{this.t+=this.state.step,this.i++,this.tx=I(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)};#u(t=!0){return this.state.isRunning||(t&&this.reset(!1),this.state.isRunning=!0,this.state.startTime=Date.now(),this.state.animationId=setInterval(this.#l,this.state.step)),this}start(){return this.#u(!0)}pause(){return this.state.isRunning&&(clearInterval(this.state.animationId),this.state.isRunning=!1),this}resume(){return this.#u(!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 ce{constructor(t,e,r=1/0,s){this.ms=e,this.fn=t,this.count=r,this.frame=1,this.id=null,this.running=!1,s&&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 le extends ce{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 ue{constructor(t=[],{repeat:e=1,loop:r=!1}={}){this.tasks=t,this.repeat=e,this.loop=r,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 r=>{e>0&&await new Promise(t=>setTimeout(t,e)),this.onTask&&this.onTask(t),await t(),r()})));else{const{fn:e,delay:r=0}=t;r>0&&await new Promise(t=>setTimeout(t,r)),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 me{constructor(t,{step:e=1e3,t0:r=0,t1:s=1/0,autoplay:n=!0}={}){this.callback=t,this.cache={isRunning:!1,id:null,last_tick:null,step:e,t0:r,t1:s,autoplay:n,pauseTime:null,frame:0},n&&(r?this.startAfter(r):this.start(),s!==1/0&&this.stopAfter(s))}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)}}}const pe=(t,e=",")=>t.trim().trimEnd().split("\n").map(t=>t.split(e)),fe=(t,e=",")=>{const[r,...s]=pe(t,e);return s.map(t=>{const e={};return r.forEach((r,s)=>{e[r]=t[s]}),e})},de=t=>t instanceof Array?[Object.keys(t[0]),...t.map(t=>Object.values(t))]:[Object.keys(t)],ge=(t,e)=>de(t).map(t=>t.join(e)).join("\n"),be=(t,e=",")=>ge(t instanceof Object?t:JSON.parse(t),e),we=(t,e)=>{const r=[];if(Array.isArray(t))t.forEach(t=>{if("object"==typeof t&&null!==t){r.push(`${e}-`);const s=we(t,`${e} `);r.push(...s)}else r.push(`${e}- ${t}`)});else for(const s in t)if(t.hasOwnProperty(s)){const n=t[s];if("object"==typeof n&&null!==n){r.push(`${e}${s}:`);const t=we(n,`${e} `);r.push(...t)}else r.push(`${e}${s}: ${n}`)}return r},ye=(t,e="")=>we(t,e).join("\n"),ve=(t,e)=>ye(t instanceof Object?t:JSON.parse(t),e),xe=(t,e=1)=>{let r="";for(const s in t)if(t.hasOwnProperty(s)){const n=t[s];r+="\n"+" ".repeat(e)+`<${s}>`,r+="object"==typeof n?xe(n,e+2):`${n}`,r+=`</${s}>`}return r.trim()},_e=t=>(new XMLSerializer).serializeToString(t),Me=t=>btoa(_e(t)),Ee=t=>"data:image/svg+xml;base64,"+Me(t),ke=(t,e=0)=>{t=Te(t);let r="";const s=" ".repeat(e);for(let n in t)if("object"==typeof t[n]){r+=`${s}${n} {\n`;const i=t[n];for(let t in i)"object"==typeof i[t]?r+=ke({[t]:i[t]},e+1):r+=`${s} ${t.replace(/[A-Z]/g,t=>"-"+t.toLowerCase())}: ${i[t]};\n`;r+=`${s}}\n`}return r};function Te(t){return"object"!=typeof t||null===t?t:Object.keys(t).reduce((e,r)=>(e[r.trim()]=Te(t[r]),e),Array.isArray(t)?[]:{})}class Ce{constructor({head:t=null,wrapper:e=null,target:r=null}){this.head=t,this.wrapper=e,this.target=r,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.mount(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}}function Se(t){return/:\w+/.test(t)}class je extends Ce{constructor({head:t,wrapper:e,target:r,routes:s}){super({head:t,wrapper:e,target:r}),this.routes=new Map([["404",ut("Error 404")],...Object.entries(s)]),this.clear(),globalThis.onpopstate=this.mount(location.pathname)}clear(){return[...this.routes].forEach(t=>{!Se(t[0])&&t[1]?.isUIElement&&t[1].unmount()}),this}mount(t){const[e,r]=[...this.routes].find(e=>function(t,e){const r=t.split("/"),s=e.split("/");if(r.length!==s.length)return!1;for(let t=0;t<r.length;t++){const e=r[t],n=s[t];if(!e.startsWith(":")&&e!==n)return!1}return!0}(e[0],t));let s;if(Se(e)){const n=function(t,e){const r=t.split("/"),s=e.split("/"),n={};if(r.length!==s.length)return n;for(let t=0;t<r.length;t++){const e=r[t],i=s[t];if(e.startsWith(":"))n[e.slice(1)]=i;else if(e!==i)return{}}return n}(e,t);s=r.call(this,n)}else r?.isUIElement&&r.mount(this.wrapper),"function"==typeof r&&(s=r());return s?.isUIElement&&s.mount(this.wrapper),s instanceof Promise&&s.then(t=>t.mount(this.wrapper)),globalThis.history.pushState({},"",t),this}}const Oe=({head:t,wrapper:e,target:r,routes:s})=>new je({head:t,wrapper:e,target:r,routes:s});function Ae(t,e="./src/pages",r=["js","ts"]){"/"===e.at(-1)&&(e=e.slice(0,-1));const s=t.replace(/\\/g,"/").replace(/\[(\w+)\]/g,"$1/:$1").split("/"),n=e.split("/"),i=s.indexOf(n.at(-1));if(-1!==i){const t=s.slice(i+1),e=s.at(-1),n="index.js"===e||"index.ts"===e,a=r.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""}const Ie=(t,...e)=>{const r=e.map(e=>null===e||["number","string","boolean","bigint","undefined"].includes(typeof e)||e?.__mapfun__?t(e):e instanceof Array?e.map(e=>Ie(t,e)):ArrayBuffer.isView(e)?e.map(e=>t(e)):e instanceof Set?new Set(Ie(t,...e)):e instanceof Map?new Map([...e].map(e=>[e[0],Ie(t,e[1])])):e.isMatrix?.()?new e.constructor(e.rows,e.cols,Ie(e.arr.flat(1))):e instanceof Object?Object.fromEntries(Object.entries(e).map(e=>[e[0],Ie(t,e[1])])):void 0);return 1==r.length?r[0]:r};class Re{#m;#p=new Map;#f=0;constructor(){const t=new Blob(['\n this.onmessage = function(e) {\n const { id, funStr, args, close } = e.data;\n try {\n const func = new Function("return " + funStr)();\n const result = func(...args);\n postMessage({ id, result });\n } catch (error) {\n postMessage({ id, error: error.message });\n } finally {\n if (close) self.close();\n }\n }\n '],{type:"text/javascript"});this.#m=new Worker(URL.createObjectURL(t)),this.#m.addEventListener("message",t=>{const{id:e,result:r,error:s}=t.data,n=this.#p.get(e);n&&(n(r,s),this.#p.delete(e))})}call(t,e,r=[],s=!0){if("function"!=typeof t)throw new TypeError("func must be a function");const n=++this.#f;return this.#p.set(n,e),this.#m.postMessage({id:n,funStr:t.toString(),args:r,close:s}),this}terminate(){this.#m.terminate()}}class Fe{constructor(t=10){this.events={},this.maxListeners=t}on(t,e){return 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.`),this}once(t,e){const r=(...s)=>{this.off(t,r),e(...s)};return this.on(t,r)}off(t,e){const r=this.events[t];if(!r)return this;const s=r.indexOf(e);return-1!==s&&r.splice(s,1),this}emit(t,e){const r=this.events[t];return!!r&&([...r].forEach(r=>{try{r(e)}catch(e){console.error(`Error in listener for '${t}':`,e)}}),!0)}remove(t){return delete this.events[t],this}clear(){return this.events={},this}setMaxListeners(t){return this.maxListeners=t,this}}const Pe=t=>new Fe(t);class ze{#d;#g;#b=null;constructor(t=[],e=()=>{}){this.#d=t,this.#g=e,this.#o()}#w(){return this.#d.some(({query:t})=>globalThis.matchMedia(t).matches)}#o(){this.#d.forEach(({query:t,callback:e})=>{const r=globalThis.matchMedia(t),s=()=>{const t=this.#w();r.matches?(e(),this.#b=e):t||this.#b===this.#g||(this.#g(),this.#b=this.#g)};s(),r.addEventListener("change",s)})}}class $e{constructor(t=document.title,e=!0){this.cache={emitter:null},e&&this.useEventEmitter(),this.set(t)}useEventEmitter(){return this.cache.emitter=Pe(),this}setTitle(t){return t!==document.title&&(document.title=t,this.cache.emitter&&this.cache.emitter.emit("ziko:title-changed",t)),this}get current(){return document.title}onChange(t){return this.cache.emitter&&this.cache.emitter.on("ziko:title-changed",t),this}}class De{constructor(t,{namespace:e="Ziko",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(const r in t)if(!e.has(r))throw new Error(`Invalid CSS property: "${r}"`)}(t),this.currentPropsMap=t,this.#h(),this}#h(){const t=globalThis?.document?.documentElement?.style;for(const e in this.currentPropsMap){const r=this.namespace?`--${this.namespace}-${e}`:`--${e}`;t.setProperty(r,this.currentPropsMap[e]),Object.defineProperty(this,e,{value:`var(${r})`,writable:!0,configurable:!0,enumerable:!1})}}}const Le=t=>Object.fromEntries(new URLSearchParams(globalThis?.location?.search));let{sqrt:Ue,cos:qe,sin:Ne,exp:Be,log:Ve,cosh:Ze,sinh:Ge}=Math;for(const t of Object.getOwnPropertyNames(Math)){const e=Math[t];"function"==typeof e&&(Math[t]=new Proxy(e,{apply(e,r,s){const n=s[0];if("number"==typeof n||0===s.length)return e.apply(r,s);if(n?.isComplex?.()){const{a:t,b:i,z:a,phi:o}=n,h=(t,e)=>new n.constructor(t,e);switch(e.name){case"abs":return n.z;case"sqrt":return h(Ue(a)*qe(o/2),Ue(a)*Ne(o/2));case"log":return h(Ve(a),o);case"exp":return h(Be(t)*qe(i),Be(t)*Ne(i));case"cos":return h(qe(t)*Ze(i),-Ne(t)*Ge(i));case"sin":return h(Ne(t)*Ze(i),qe(t)*Ge(i));case"tan":{const e=qe(2*t)+Ze(2*i);return h(Ne(2*t)/e,Ge(2*i)/e)}case"cosh":return h(Ze(t)*qe(i),Ge(t)*Ne(i));case"sinh":return h(Ge(t)*qe(i),Ze(t)*Ne(i));case"tanh":{const e=Ze(2*t)+qe(2*i);return h(Ge(2*t)/e,Ne(2*i)/e)}default:return e.apply(r,s)}}throw new TypeError(`Math.${t} expects only numbers`)}}))}globalThis?.document&&document?.addEventListener("DOMContentLoaded",__Ziko__.__Config__.init()),t.App=({head:t,wrapper:e,target:r})=>new Ce({head:t,wrapper:e,target:r}),t.ClickAwayEvent=bt,t.ClickListeners=xt,t.Clock=le,t.CloneElement=t=>new t.__proto__.constructor,t.Complex=w,t.E=r,t.EPSILON=s,t.EventController=gt,t.FileBasedRouting=async function(t){const e=Object.keys(t),r=function(t){if(0===t.length)return"";const e=t.map(t=>t.split("/")),r=Math.min(...e.map(t=>t.length));let s=[];for(let t=0;t<r;t++){const r=e[0][t];if(!e.every(e=>e[t]===r||e[t].startsWith("[")))break;s.push(r)}return s.join("/")+(s.length?"/":"")}(e),s={};for(let n=0;n<e.length;n++){const i=await t[e[n]](),a=await i.default;Object.assign(s,{[Ae(e[n],r)]:a})}return Oe({target:document.body,routes:{"/":()=>{},...s},wrapper:Lt.section()})},t.Flex=(...t)=>{let e="div";return"string"==typeof t[0]&&(e=t[0],t.pop()),new Vt(e).append(...t)},t.For=({each:t,fallback:e,mapFn:r}={})=>new Xt({each:t,fallback:e,mapFn:r}),t.Fragment=(...t)=>new Qt(...t),t.HTMLWrapper=t=>new Ht(t),t.KeyListeners=kt,t.Matrix=B,t.PI=e,t.PtrListeners=Mt,t.Random=g,t.SPA=Oe,t.SVGWrapper=t=>new Wt(t),t.Scheduler=(t,{repeat:e=null}={})=>new ue(t,{repeat:e}),t.Suspense=(t,e)=>new Gt(t,e),t.Swap=Yt,t.SwipeEvent=At,t.Switch=({key:t,cases:e})=>new Kt(t,e),t.Tick=ce,t.TimeAnimation=he,t.TimeLoop=me,t.TimeScheduler=ue,t.UIElement=It,t.UIFlex=Vt,t.UIFragment=Qt,t.UIHTMLWrapper=Ht,t.UINode=V,t.UISVGWrapper=Wt,t.UISwap=Jt,t.UISwitch=Kt,t.UIView=Pt,t.UseRoot=De,t.UseThread=Re,t.View=(...t)=>new Pt(...t),t.ViewEvent=Ct,t.ViewListeners=Ot,t.ZikoApp=Ce,t.ZikoSPA=je,t.ZikoUISuspense=Gt,t.ZikoUIText=lt,t.abs=(...t)=>n(t=>t.isComplex?.()?t.z:Math.abs(t),...t),t.accum_max=t=>{let e=[],r=-1/0;for(let s of t)r=Math.max(r,s),e.push(r);return e},t.accum_min=t=>{let e=[],r=1/0;for(let s of t)r=Math.min(r,s),e.push(r);return e},t.accum_prod=(...t)=>{let e,r=[],s=1,n=t.length;for(e=0;e<n;e++)s=T(s,t[e]),r.push(s);return r},t.accum_product=t=>{let e=[],r=1;for(let s of t)r*=s,e.push(r);return e},t.accum_sum=d,t.acos=(...t)=>n(t=>{if(t?.isComplex){const{a:e,b:r}=t,s=Math.hypot(e+1,r),n=Math.hypot(e-1,r);return globalThis.Rp=s,globalThis.Rm=n,new t.constructor(Math.acos((s-n)/2),-Math.acosh((s+n)/2)).toFixed(8)}return+Math.acos(t).toFixed(8)},...t),t.acosh=(...t)=>n(t=>t?.isComplex?_(t.clone().add(x(t.clone().mul(t.clone()).sub(1)))):+Math.acosh(t).toFixed(8),...t),t.acot=(...t)=>n(t=>{if(t?.isComplex){const{a:e,b:r}=t;return new t.constructor(Math.atan(2*e/(e**2+(r-1)*(r+1)))/2,Math.log((e**2+(r-1)**2)/(e**2+(r+1)**2))/4).toFixed(8)}return+(Math.PI/2-Math.atan(t)).toFixed(8)},...t),t.add=E,t.add_class=(t,e)=>t.element.className=t.element.className.replace(/\s+$/gi,"")+" "+e,t.add_vendor_prefix=function(t){const e=t.slice(0,1).toUpperCase()+t.slice(1),r=["Webkit","Moz","O","ms"];for(let t=0,s=r.length;t<s;t++){const s=r[t];if(void 0!==(globalThis?.document?.body).style[s+e])return s+e}return t},t.and=z,t.animation=(t,{ease:e,t0:r,t1:s,start:n,duration:i}={})=>new he(t,{ease:e,t0:r,t1:s,start:n,duration:i}),t.apply_fun=i,t.arc=t=>1-se(ne(t)),t.asin=(...t)=>n(t=>{if(t?.isComplex){const{a:e,b:r}=t,s=Math.hypot(e+1,r),n=Math.hypot(e-1,r);return new t.constructor(Math.asin((s-n)/2),Math.acosh((s+n)/2)).toFixed(8)}return+Math.asin(t).toFixed(8)},...t),t.asinh=(...t)=>n(t=>t?.isComplex?_(t.clone().add(x(t.clone().mul(t.clone()).add(1)))):+Math.asinh(t).toFixed(8),...t),t.atan=(...t)=>n(t=>{if(t?.isComplex){const{a:e,b:r}=t;return new t.constructor(Math.atan(2*e/(1-e**2-r**2))/2,Math.log((e**2+(1+r)**2)/(e**2+(1-r)**2))/4).toFixed(8)}return+Math.atan(t).toFixed(8)},...t),t.atan2=R,t.atanh=(...t)=>n(t=>+Math.atanh(t).toFixed(8),...t),t.back=(t,e=1)=>t**2*((e+1)*t-e),t.binomial=(t,e)=>{if(t!==Math.floor(t))return TypeError("n must be an integer");if(e!==Math.floor(e))return TypeError("k must be an integer");if(t<0)return TypeError("n must be non-negative");if(e<0||t<0||e>t)return 0;e>t-e&&(e=t-e);let r,s=1;for(r=0;r<e;r++)s=s*(t-r)/(r+1);return s},t.call_with_optional_props=Rt,t.cbrt=(...t)=>n(t=>t.isComplex?.()?new t.constructor({z:t.z**(1/3),phi:t.phi/3}).toFixed(8):+Math.cbrt(t).toFixed(8),...t),t.ceil=(...t)=>n(t=>t.isComplex?.()?new t.constructor(Math.ceil(t.a),Math.ceil(t.b)):Math.ceil(t),...t),t.clamp=A,t.clock=t=>new le(t),t.cloneUI=t=>Object.assign(Object.create(Object.getPrototypeOf(t)),t),t.complex=y,t.contraharmonic_mean=(...t)=>{let e,r=0,s=0,n=t.length;for(e=0;e<n;e++)r+=t[e]**2,s+=t[e];return r/s},t.cos=(...t)=>n(t=>t.isComplex?.()?new t.constructor(Math.cos(t.a)*Math.cosh(t.b),-Math.sin(t.a)*Math.sinh(t.b)).toFixed(8):+Math.cos(t).toFixed(8),...t),t.cosh=(...t)=>n(t=>t?.isComplex?new t.constructor(Math.cosh(t.a)*Math.cos(t.b),Math.sinh(t.a)*Math.sin(t.b)).toFixed(8):+Math.cosh(t).toFixed(8),...t),t.coth=(...t)=>n(t=>{if(t?.isComplex){const{a:e,b:r}=t,s=Math.sinh(e)**2*Math.cos(r)**2+Math.cosh(e)**2*Math.sin(r)**2;return new t.constructor(Math.cosh(e)*Math.sinh(e)/s,-Math.sin(r)*Math.cos(r)/s).toFixed(8)}return+(1/Math.tanh(t)).toFixed(8)},...t),t.croot=(...t)=>{const e=t.pop();if(!e.isComplex?.())throw Error("croot expect Complex number as root");return n(t=>{"number"==typeof t&&(t=new e.constructor(t,0));const{a:r,b:s}=e,{z:n,phi:i}=t,a=Math.hypot(r,s),o=Math.exp((Math.log(n)*r+i*s)/a),h=(i*r-Math.log(n)*s)/a;return new e.constructor(o*Math.cos(h),o*Math.sin(h)).toFixed(8)},...t)},t.csv2arr=pe,t.csv2json=(t,e=",")=>JSON.stringify(fe(t,e)),t.csv2matrix=(t,e=",")=>new B(pe(t,e)),t.csv2object=fe,t.csv2sql=(t,e)=>{const r=t.trim().trimEnd().split("\n").filter(t=>t);let s=`INSERT INTO ${e} (${r[0].split(",").join(", ")}) Values `,n=[];for(let t=1;t<r.length;t++){const e=r[t].split(",");n.push(`(${e})`)}return s+n.join(",\n")},t.debounce=(t,e=1e3)=>(...r)=>setTimeout(()=>t(...r),e),t.defineParamsGetter=function(t){Object.defineProperties(t,{QueryParams:{get:function(){return globalThis.location.search.substring(1),Object.fromEntries(new URLSearchParams(location.search))},configurable:!1,enumerable:!0},HashParams:{get:function(){return globalThis.location.hash.substring(1).split("#")},configurable:!1,enumerable:!0}})},t.define_wc=function(t,e,r={},{mode:s="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(r)]}constructor(){super(),this.attachShadow({mode:s}),this.props={},this.mask={...r}}connectedCallback(){this.render()}render(){this.shadowRoot.innerHTML="";const t=e(this.props);t instanceof Array?t.forEach(t=>t.mount(this.shadowRoot)):t.mount(this.shadowRoot)}attributeChangedCallback(t,e,r){Object.assign(this.props,{[t]:this.mask[t].type(r)}),this.render()}}):console.warn(`"${t}" is not a valid custom element name`)},t.deg2rad=(...t)=>n(t=>t*Math.PI/180,...t),t.discret=(t,e=5)=>Math.ceil(t*e)/e,t.div=C,t.elastic=t=>-2*ie(2,10*(t-1))*re(20*te*t/3*t),t.ema=(t,e)=>{let r=[],s=t[0];r.push(s);for(let n=1;n<t.length;n++)s=e*t[n]+(1-e)*s,r.push(s);return r},t.exp=(...t)=>n(t=>t.isComplex?.()?new t.constructor(Math.exp(t.a)*Math.cos(t.b),Math.exp(t.a)*Math.sin(t.b)).toFixed(8):+Math.exp(t).toFixed(8),...t),t.floor=(...t)=>n(t=>t.isComplex?.()?new t.constructor(Math.floor(t.a),Math.floor(t.b)):Math.floor(t),...t),t.fract=(...t)=>n(t=>t.isComplex?.()?new t.constructor(t.a-Math.trunc(t.a),t.b-Math.trunc(t.b)):t-Math.trunc(t),...t),t.geo_mean=(...t)=>t.reduce((t,e)=>t*e)**(1/t.length),t.harmonic_mean=(...t)=>{let e=0,r=0;for(r=0;r<t.length;r++)e+=1/t[r];return t.length/e},t.hypot=(...t)=>{const e=t.find(t=>t.isComplex?.());if(e){const r=t.map(t=>t.isComplex?.()?t:new e.constructor(t,0));return Math.hypot(...r.map(t=>t.z))}return Math.hypot(...t)},t.in_back=(t,e=1.70158,r=e+1)=>r*ie(t,3)-e*t**2,t.in_bounce=(t,e=7.5625,r=2.75)=>1-oe(1-t,e,r),t.in_circ=t=>1-ee(1-t**2),t.in_cubic=t=>t**3,t.in_elastic=(t,e=2*te/3)=>0===t?0:1===t?1:-ie(2,10*t-10)*se((10*t-10.75)*e),t.in_expo=t=>0===t?0:2**(10*t-10),t.in_out_back=(t,e=1.70158,r=1.525*e)=>t<.5?ie(2*t,2)*(2*(r+1)*t-r)/2:(ie(2*t-2,2)*((r+1)*(2*t-2)+r)+2)/2,t.in_out_bounce=(t,e=7.5625,r=2.75)=>t<.5?oe(1-2*t,e,r)/2:oe(2*t-1,e,r)/2,t.in_out_circ=t=>t<.5?(1-ee(1-(2*t)**2))/2:(ee(1-(-2*t+2)**2)+1)/2,t.in_out_cubic=t=>t<.5?4*t**3:1-(-2*t+2)**3/2,t.in_out_elastic=(t,e=2*te/4.5)=>0===t?0:1===t?1:t<.5?-ie(2,20*t-10)*se((20*t-11.125)*e)/2:ie(2,-20*t+10)*se((20*t-11.125)*e)/2+1,t.in_out_expo=t=>0===t?0:1===t?1:t<.5?2**(20*t-10)/2:(2-2**(-20*t+10))/2,t.in_out_quad=t=>t<.5?2*t**2:1-(-2*t+2)**2/2,t.in_out_quart=t=>t<.5?8*t**4:1-(-2*t+2)**4/2,t.in_out_quint=t=>t<.5?16*t**5:1-(-2*t+2)**5/2,t.in_out_sin=t=>-(re(te*t)-1)/2,t.in_quad=t=>t**2,t.in_quart=t=>t**4,t.in_quint=t=>t**5,t.in_sin=t=>1-re(t*te/2),t.interquartile_mean=(...t)=>{let e=t.sort((t,e)=>t-e),r=e[Math.floor(.25*(e.length-1))],s=e[Math.floor(.75*(e.length-1))],n=e.filter(t=>t>=r&&t<=s);return l(n)},t.iqr=t=>c(t)-h(t),t.isPrimitive=Ft,t.isStateGetter=it,t.json2arr=t=>de(t instanceof Object?t:JSON.parse(t)),t.json2css=ke,t.json2csv=be,t.json2csvFile=(t,e)=>{const r=be(t,e),s=new Blob([r],{type:"text/csv;charset=utf-8;"});return{str:r,blob:s,url:URL.createObjectURL(s)}},t.json2xml=xe,t.json2xmlFile=(t,e)=>{const r=xe(t,e),s=new Blob([r],{type:"text/xml;charset=utf-8;"});return{str:r,blob:s,url:URL.createObjectURL(s)}},t.json2yml=ve,t.json2ymlFile=(t,e)=>{const r=ve(t,e),s=new Blob([r],{type:"text/yml;charset=utf-8;"});return{str:r,blob:s,url:URL.createObjectURL(s)}},t.lerp=O,t.linear=ae,t.linkStyle=function(t){const e=document?.createElement("link");e.setAttribute("rel","stylesheet"),e.setAttribute("href",t),document.head.appendChild(e)},t.ln=_,t.loop=(t,e={})=>new me(t,e),t.map=I,t.mapfun=n,t.matrix=(t,e,r)=>new B(t,e,r),t.matrix2=(...t)=>new B(2,2,t),t.matrix3=(...t)=>new B(3,3,t),t.matrix4=(...t)=>new B(4,4,t),t.max=(...t)=>Math.max(...t),t.mean=l,t.median=t=>o(t,50),t.midhinge=(...t)=>{let e=t.sort((t,e)=>t-e);return(e[Math.floor(.25*(e.length-1))]+e[Math.floor(.75*(e.length-1))])/2},t.midrange=t=>(Math.min(...t)+Math.max(...t))/2,t.min=(...t)=>Math.min(...t),t.modulo=S,t.mul=T,t.nand=(...t)=>F(z(...t)),t.nor=(...t)=>F($(...t)),t.norm=j,t.normalize_css_value=t=>"number"==typeof t?t+"px":t,t.not=F,t.nthr=(...t)=>{const e=t.pop();if("number"!=typeof e)throw Error("nthr expects a real number n");return n(t=>t.isComplex?.()?new t.constructor({z:t.z**(1/e),phi:t.phi/e}):t<0?e%2==2?y(0,(-t)**(1/e)).toFixed(8):+(-1*(-t)**(1/e)).toFixed(8):+(t**(1/e)).toFixed(8),...t)},t.or=$,t.out_back=(t,e=1.70158,r=e+1)=>1+r*ie(t-1,3)+e*ie(t-1,2),t.out_bounce=oe,t.out_circ=t=>ee(1-(t-1)**2),t.out_cubic=t=>1-(1-t)**3,t.out_elastic=(t,e=2*te/3)=>0===t?0:1===t?1:ie(2,-10*t)*se((10*t-.75)*e)+1,t.out_expo=t=>1===t?1:1-2**(-10*t),t.out_quad=t=>1-(1-t)**2,t.out_quart=t=>1-(1-t)**4,t.out_quint=t=>1-(1-t)**5,t.out_sin=t=>se(t*te/2),t.percentile=o,t.pow=v,t.power_mean=(t,e)=>{let r=0,s=0,n=t.length;for(s=0;s<n;s++)r+=t[s]**e;return(r/n)**(1/e)},t.q1=h,t.q3=c,t.rad2deg=(...t)=>n(t=>t/Math.PI*180,...t),t.register_click_away_event=wt,t.register_swipe_event=function(t,e=5,r=100,s=500){let n=0,i=0,a=0,o=!1;function h(t){n=t.clientX,i=t.clientY,a=performance.now(),o=!0}function c(h){if(!o)return;o=!1;const c=h.clientX-n,l=h.clientY-i;let u=null,m=null;performance.now()-a<=s&&(Math.abs(c)>=e&&Math.abs(l)<=r?(u=c<0?"left":"right",m="swipe"+u):Math.abs(l)>=e&&Math.abs(c)<=r&&(u=l<0?"up":"down",m="swipe"+u)),m&&t.dispatchEvent(new At(m,{direction:u,distX:c,distY:l,originalEvent:h}))}return t.addEventListener("pointerdown",h,{passive:!0}),t.addEventListener("pointerup",c,{passive:!0}),()=>{t.removeEventListener("pointerdown",h),t.removeEventListener("pointerup",c)}},t.register_view_event=St,t.remove_class=(t,e)=>t.element.className=t.element.className.replace(e,""),t.rms=(...t)=>{const e=t.length;return(Math.hypot(...t)/e)**(1/e)},t.rolling_std=(t,e)=>Math.sqrt(f(t,e)),t.rolling_variance=f,t.round=(...t)=>n(t=>t.isComplex?.()?new t.constructor(Math.round(t.a),Math.round(t.b)):Math.round(t),...t),t.sample_std=(...t)=>Math.sqrt(m(...t)),t.sample_variance=m,t.script=function(t){const e=document?.createElement("script");e.setAttribute("src",t),document.head.appendChild(e)},t.sec=(...t)=>n(t=>(t.isComplex?.(),+(1/Math.cos(t)).toFixed(8)),...t),t.sig=(...t)=>n(t=>1/(1+Math.exp(-t)).toFixed(8),...t),t.sign=(...t)=>n(t=>{if(t.isComplex?.()){const{z:e,phi:r}=t;return 0===e?new t.constructor(0,0):new t.constructor({z:1,phi:r})}return Math.sign(t)},...t),t.sin=(...t)=>n(t=>t?.isComplex?new t.constructor(Math.sin(t.a)*Math.cosh(t.b),Math.cos(t.a)*Math.sinh(t.b)).toFixed(8):+Math.sin(t).toFixed(8),...t),t.sinh=(...t)=>n(t=>t?.isComplex?new t.constructor(Math.sinh(t.a)*Math.cos(t.b),Math.cosh(t.a)*Math.sin(t.b)).toFixed(8):+Math.sinh(t).toFixed(8),...t),t.sleep=t=>new Promise(e=>setTimeout(e,t)),t.sma=(t,e)=>{let r=[];for(let s=0;s<=t.length-e;s++){let n=0;for(let r=0;r<e;r++)n+=t[s+r];r.push(n/e)}return r},t.sqrt=x,t.std=(...t)=>Math.sqrt(u(...t)),t.step=(t,e=5)=>Math.floor(t*e)/e,t.step_fps=t=>1e3/t,t.style=(t,e)=>{t&&Object.assign(t.style,e)},t.sub=k,t.svg2ascii=Me,t.svg2img=(t,e=!0)=>Lt.img(Ee(t)).mount(e),t.svg2imgUrl=Ee,t.svg2str=_e,t.tags=Lt,t.tan=(...t)=>n(t=>{if(t?.isComplex){const e=Math.cos(2*t.a)+Math.cosh(2*t.b);return new t.constructor(Math.sin(2*t.a)/e,Math.sinh(2*t.b)/e).toFixed(8)}return+Math.tan(t).toFixed(8)},...t),t.tanh=(...t)=>n(t=>{if(t?.isComplex){const e=Math.cosh(2*a)+Math.cos(2*b);return new t.constructor(Math.sinh(2*a)/e,Math.sin(2*b)/e).toFixed(8)}return+Math.tanh(t).toFixed(8)},...t),t.text=ut,t.throttle=Tt,t.tick=(t,e,r=1/0,s=!0)=>new ce(t,e,r,s),t.timeTaken=t=>{console.time("timeTaken");const e=t();return console.timeEnd("timeTaken"),e},t.time_memory_Taken=t=>{const e=Date.now(),r=performance.memory.usedJSHeapSize,s=t();return{elapsedTime:Date.now()-e,usedMemory:performance.memory.usedJSHeapSize-r,result:s}},t.timeout=function(t,e){let r;const s=new Promise(s=>{r=setTimeout(()=>{e&&e(),s()},t)});return{id:r,clear:()=>clearTimeout(r),promise:s}},t.trimmed_mean=(t,e)=>{let r=[...t].sort((t,e)=>t-e).slice(e,t.length-e);return l(...r)},t.trunc=(...t)=>n(t=>t.isComplex?.()?new t.constructor(Math.trunc(t.a),Math.trunc(t.b)):Math.trunc(t),...t),t.useDerived=function(t,e){let r=t(...e.map(t=>t().value));const s=new Set;return e.forEach(n=>{n()._subscribe(()=>{{const n=t(...e.map(t=>t().value));n!==r&&(r=n,s.forEach(t=>t(r)))}})}),()=>({value:r,isStateGetter:()=>!0,_subscribe:t=>s.add(t)})},t.useEventEmitter=Pe,t.useIPC=Y,t.useLocalStorage=(t,e,r=!0)=>new Q(localStorage,t,e,r),t.useMediaQuery=(t,e)=>new ze(t,e),t.useQueryParams=function(){const t=()=>Le();return[t,(e,r=!0)=>{const s=t(),n="function"==typeof e?e(s):e,i=r?{...s,...n}:n,a=new URLSearchParams(i).toString();window.history.pushState({},"",`${window.location.pathname}${a?`?${a}`:""}`),window.dispatchEvent(new CustomEvent("queryparamschange",{detail:i}))}]},t.useReactive=t=>Ie(t=>{const e=nt(t);return{get:e[0],set:e[1]}},t),t.useRoot=(t,e={})=>new De(t,e),t.useSessionStorage=(t,e,r=!0)=>new Q(sessionStorage,t,e,r),t.useState=nt,t.useThread=(t,e,r=[],s=!0)=>(new Re).call(t,e,r,s),t.useTitle=(t,e=!0)=>new $e(t,e),t.variance=u,t.wait=t=>new Promise(e=>setTimeout(e,t)),t.waitElm=t=>new Promise(e=>{if(t)return e(t);const r=new MutationObserver(()=>{t&&(e(t),r.disconnect())});r.observe(document?.body,{childList:!0,subtree:!0})}),t.waitForUIElm=t=>new Promise(e=>{if(t.element)return e(t.element);const r=new MutationObserver(()=>{t.element&&(e(t.element),r.disconnect())});r.observe(document?.body,{childList:!0,subtree:!0})}),t.waitForUIElmSync=(t,e=2e3)=>{const r=Date.now();for(;Date.now()-r<e;)if(t.element)return t.element},t.watchQueryParams=function(t){let e=location.search;const r=()=>{const r=location.search;r!==e&&(e=r,t(Le()))};window.addEventListener("popstate",r);const s=history.pushState;history.pushState=function(...t){s.apply(this,t),r()};const n=history.replaceState;return history.replaceState=function(...t){n.apply(this,t),r()},t(Le()),()=>{window.removeEventListener("popstate",r)}},t.weighted_mean=(t,e)=>{let r=0,s=0;for(let n=0;n<t.length;n++)r+=t[n]*e[n],s+=e[n];return r/s},t.weighted_std=(t,e)=>Math.sqrt(p(t,e)),t.weighted_variance=p,t.winsorized_mean=(t,e)=>{let r=[...t].sort((t,e)=>t-e),s=r[e],n=r[r.length-e-1];return r=r.map(t=>Math.max(s,Math.min(n,t))),l(r)},t.wma=(t,e)=>{let r=e.length,s=e.reduce((t,e)=>t+e,0),n=[];for(let i=0;i<=t.length-r;i++){let a=0;for(let s=0;s<r;s++)a+=t[i+s]*e[s];n.push(a/s)}return n},t.xnor=(...t)=>F(D(...t)),t.xor=D});
|
package/dist/ziko.mjs
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/*
|
|
3
3
|
Project: ziko.js
|
|
4
4
|
Author: Zakaria Elalaoui
|
|
5
|
-
Date : Fri Jul 31 2026
|
|
5
|
+
Date : Fri Jul 31 2026 17:26:32 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
|
|
@@ -2250,6 +2250,7 @@ class UIElementCore extends UINode{
|
|
|
2250
2250
|
else this.target = element?.parentElement;
|
|
2251
2251
|
Object.assign(this.cache, {
|
|
2252
2252
|
name,
|
|
2253
|
+
itemsTarget : this,
|
|
2253
2254
|
isInteractive : false,
|
|
2254
2255
|
parent:null,
|
|
2255
2256
|
isBody:false,
|
|
@@ -2286,7 +2287,7 @@ class UIElementCore extends UINode{
|
|
|
2286
2287
|
get element(){
|
|
2287
2288
|
return this.cache.element;
|
|
2288
2289
|
}
|
|
2289
|
-
|
|
2290
|
+
[Symbol.iterator](){
|
|
2290
2291
|
return this.items[Symbol.iterator]();
|
|
2291
2292
|
}
|
|
2292
2293
|
maintain() {
|
|
@@ -2512,12 +2513,6 @@ class ZikoUIText extends UINode {
|
|
|
2512
2513
|
}
|
|
2513
2514
|
const text = (...str) => new ZikoUIText(...str);
|
|
2514
2515
|
|
|
2515
|
-
// import { isStateGetter } from "../../../hooks/use-state.js";
|
|
2516
|
-
// import {
|
|
2517
|
-
// is_camelcase,
|
|
2518
|
-
// camel2hyphencase
|
|
2519
|
-
// } from '../../../data/string/index.js';
|
|
2520
|
-
|
|
2521
2516
|
function append(...ele) {
|
|
2522
2517
|
__addItem__.call(this, "append", "push", ...ele);
|
|
2523
2518
|
return this;
|
|
@@ -2527,19 +2522,30 @@ function prepend(...ele) {
|
|
|
2527
2522
|
return this;
|
|
2528
2523
|
}
|
|
2529
2524
|
function insertAt(index, ...ele) {
|
|
2530
|
-
|
|
2531
|
-
|
|
2525
|
+
const target = this.itemsTarget;
|
|
2526
|
+
|
|
2527
|
+
if (index >= target.items.length) return this.append(...ele);
|
|
2528
|
+
|
|
2532
2529
|
for (let i = 0; i < ele.length; i++) {
|
|
2533
|
-
|
|
2534
|
-
|
|
2535
|
-
|
|
2530
|
+
if (["number", "string"].includes(typeof ele[i]))
|
|
2531
|
+
ele[i] = text(ele[i]);
|
|
2532
|
+
|
|
2533
|
+
target.element?.insertBefore(
|
|
2534
|
+
ele[i].element,
|
|
2535
|
+
target.items[index].element
|
|
2536
|
+
);
|
|
2537
|
+
|
|
2538
|
+
target.items.splice(index, 0, ele[i]);
|
|
2536
2539
|
}
|
|
2537
|
-
|
|
2540
|
+
|
|
2541
|
+
target.maintain();
|
|
2542
|
+
|
|
2543
|
+
return this;
|
|
2538
2544
|
}
|
|
2539
2545
|
function remove(...ele) {
|
|
2540
2546
|
const remove = (ele) => {
|
|
2541
2547
|
if (typeof ele === "number") ele = this.items[ele];
|
|
2542
|
-
if (ele?.isUIElement) this.element?.removeChild(ele.element);
|
|
2548
|
+
if (ele?.isUIElement) this.itemsTarget.element?.removeChild(ele.element);
|
|
2543
2549
|
this.items = this.items.filter((n) => n !== ele);
|
|
2544
2550
|
};
|
|
2545
2551
|
for (let i = 0; i < ele.length; i++) remove(ele[i]);
|
|
@@ -2550,7 +2556,7 @@ function remove(...ele) {
|
|
|
2550
2556
|
}
|
|
2551
2557
|
function clear(){
|
|
2552
2558
|
this?.items?.forEach(n=>n.unmount());
|
|
2553
|
-
this.element.innerHTML =
|
|
2559
|
+
this.itemsTarget.element.innerHTML = '';
|
|
2554
2560
|
return this;
|
|
2555
2561
|
}
|
|
2556
2562
|
function replaceElementWith(new_element){
|
|
@@ -2562,12 +2568,12 @@ function replaceElementWith(new_element){
|
|
|
2562
2568
|
}
|
|
2563
2569
|
function after(ui){
|
|
2564
2570
|
if(ui?.isUIElement) ui=ui.element;
|
|
2565
|
-
this.element?.after(ui);
|
|
2571
|
+
this.itemsTarget.element?.after(ui);
|
|
2566
2572
|
return this;
|
|
2567
2573
|
}
|
|
2568
2574
|
function before(ui){
|
|
2569
2575
|
if(ui?.isUIElement) ui=ui.element;
|
|
2570
|
-
this.element?.before(ui);
|
|
2576
|
+
this.itemsTarget.element?.before(ui);
|
|
2571
2577
|
return this;
|
|
2572
2578
|
}
|
|
2573
2579
|
|
|
@@ -2575,6 +2581,9 @@ function before(ui){
|
|
|
2575
2581
|
|
|
2576
2582
|
|
|
2577
2583
|
async function __addItem__(adder, pusher, ...ele) {
|
|
2584
|
+
const itemsTarget_el = this.itemsTarget.element;
|
|
2585
|
+
const itemsTarget = this.itemsTarget;
|
|
2586
|
+
|
|
2578
2587
|
if (this.cache.isFrozzen) {
|
|
2579
2588
|
console.warn("You can't append new item to frozzen element");
|
|
2580
2589
|
return this;
|
|
@@ -2590,22 +2599,22 @@ async function __addItem__(adder, pusher, ...ele) {
|
|
|
2590
2599
|
(newValue) => (ele[i].element.textContent = newValue),
|
|
2591
2600
|
ele[i]
|
|
2592
2601
|
);
|
|
2593
|
-
// this.element.appendChild(textNode);
|
|
2602
|
+
// this.itemsTarget.element.appendChild(textNode);
|
|
2594
2603
|
}
|
|
2595
2604
|
}
|
|
2596
2605
|
if (typeof globalThis?.Node === "function" && ele[i] instanceof globalThis?.Node) ele[i] = new this.constructor(ele[i]);
|
|
2597
2606
|
if (ele[i]?.isUINode) {
|
|
2598
2607
|
ele[i].cache.parent = this;
|
|
2599
|
-
|
|
2600
|
-
ele[i].target = this.element;
|
|
2601
|
-
|
|
2608
|
+
itemsTarget_el?.[adder](ele[i].element);
|
|
2609
|
+
ele[i].target = this.itemsTarget.element;
|
|
2610
|
+
itemsTarget.items[pusher](ele[i]);
|
|
2602
2611
|
}
|
|
2603
2612
|
else if(ele[i] instanceof Promise){
|
|
2604
2613
|
const UIEle = await ele[i];
|
|
2605
2614
|
UIEle.cache.parent = this;
|
|
2606
|
-
|
|
2607
|
-
UIEle.target = this.element;
|
|
2608
|
-
|
|
2615
|
+
itemsTarget_el?.[adder](UIEle.element);
|
|
2616
|
+
UIEle.target = this.itemsTarget.element;
|
|
2617
|
+
itemsTarget.items[pusher](UIEle);
|
|
2609
2618
|
}
|
|
2610
2619
|
else if (ele[i] instanceof Object) {
|
|
2611
2620
|
if (ele[i]?.style) this.style(ele[i]?.style);
|
|
@@ -3117,10 +3126,22 @@ let UIElement$1 = class UIElement extends UIElementCore{
|
|
|
3117
3126
|
}
|
|
3118
3127
|
_off(event, category = 'global'){
|
|
3119
3128
|
this.exp.events[category].removeListener(event);
|
|
3129
|
+
return this
|
|
3120
3130
|
}
|
|
3121
3131
|
get element(){
|
|
3122
3132
|
return this.cache.element;
|
|
3123
3133
|
}
|
|
3134
|
+
get itemsTarget(){
|
|
3135
|
+
return this.cache.itemsTarget;
|
|
3136
|
+
}
|
|
3137
|
+
get itemsTargetElement(){
|
|
3138
|
+
return this.itemsTarget.element;
|
|
3139
|
+
}
|
|
3140
|
+
setItemsTarget(parent){
|
|
3141
|
+
this.cache.itemsTarget = parent;
|
|
3142
|
+
this.items = parent.items;
|
|
3143
|
+
return this;
|
|
3144
|
+
}
|
|
3124
3145
|
isInteractive(){
|
|
3125
3146
|
return this.cache.isInteractive;
|
|
3126
3147
|
}
|
|
@@ -3727,14 +3748,14 @@ class UISwap extends UIElement$1 {
|
|
|
3727
3748
|
};
|
|
3728
3749
|
|
|
3729
3750
|
this.append(...items);
|
|
3730
|
-
this
|
|
3751
|
+
this.render();
|
|
3731
3752
|
}
|
|
3732
3753
|
get activeItem(){
|
|
3733
3754
|
return this.items[this.states.activeIndex]
|
|
3734
3755
|
}
|
|
3735
|
-
|
|
3756
|
+
render() {
|
|
3736
3757
|
this.items.forEach((n, i) => {
|
|
3737
|
-
|
|
3758
|
+
|
|
3738
3759
|
const initialDisplay = n.element?.style?.display || '';
|
|
3739
3760
|
this.#DISPLAYS_MAP.set(n, initialDisplay);
|
|
3740
3761
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ziko",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.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",
|
|
@@ -12,14 +12,14 @@ export class UISwap extends UIElement {
|
|
|
12
12
|
};
|
|
13
13
|
|
|
14
14
|
this.append(...items);
|
|
15
|
-
this
|
|
15
|
+
this.render();
|
|
16
16
|
}
|
|
17
17
|
get activeItem(){
|
|
18
18
|
return this.items[this.states.activeIndex]
|
|
19
19
|
}
|
|
20
|
-
|
|
20
|
+
render() {
|
|
21
21
|
this.items.forEach((n, i) => {
|
|
22
|
-
|
|
22
|
+
|
|
23
23
|
const initialDisplay = n.element?.style?.display || '';
|
|
24
24
|
this.#DISPLAYS_MAP.set(n, initialDisplay);
|
|
25
25
|
|
|
@@ -36,7 +36,7 @@ class UIElement extends UIElementCore{
|
|
|
36
36
|
ViewListeners,
|
|
37
37
|
);
|
|
38
38
|
|
|
39
|
-
if(element)this.init(element, name, type, render)
|
|
39
|
+
if(element)this.init(element, name, type, render);
|
|
40
40
|
}
|
|
41
41
|
on(event_name, callback, {details_setter, category = 'global', isCustom = false, preventDefault = false} = {}){
|
|
42
42
|
if(event_name instanceof Array) event_name.forEach(
|
|
@@ -58,11 +58,23 @@ class UIElement extends UIElementCore{
|
|
|
58
58
|
return this;
|
|
59
59
|
}
|
|
60
60
|
_off(event, category = 'global'){
|
|
61
|
-
this.exp.events[category].removeListener(event)
|
|
61
|
+
this.exp.events[category].removeListener(event);
|
|
62
|
+
return this
|
|
62
63
|
}
|
|
63
64
|
get element(){
|
|
64
65
|
return this.cache.element;
|
|
65
66
|
}
|
|
67
|
+
get itemsTarget(){
|
|
68
|
+
return this.cache.itemsTarget;
|
|
69
|
+
}
|
|
70
|
+
get itemsTargetElement(){
|
|
71
|
+
return this.itemsTarget.element;
|
|
72
|
+
}
|
|
73
|
+
setItemsTarget(parent){
|
|
74
|
+
this.cache.itemsTarget = parent;
|
|
75
|
+
this.items = parent.items;
|
|
76
|
+
return this;
|
|
77
|
+
}
|
|
66
78
|
isInteractive(){
|
|
67
79
|
return this.cache.isInteractive;
|
|
68
80
|
}
|
|
@@ -24,6 +24,7 @@ class UIElementCore extends UINode{
|
|
|
24
24
|
else this.target = element?.parentElement;
|
|
25
25
|
Object.assign(this.cache, {
|
|
26
26
|
name,
|
|
27
|
+
itemsTarget : this,
|
|
27
28
|
isInteractive : false,
|
|
28
29
|
parent:null,
|
|
29
30
|
isBody:false,
|
|
@@ -60,7 +61,7 @@ class UIElementCore extends UINode{
|
|
|
60
61
|
get element(){
|
|
61
62
|
return this.cache.element;
|
|
62
63
|
}
|
|
63
|
-
|
|
64
|
+
[Symbol.iterator](){
|
|
64
65
|
return this.items[Symbol.iterator]();
|
|
65
66
|
}
|
|
66
67
|
maintain() {
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
// import { isStateGetter } from "../../../hooks/use-state.js";
|
|
2
|
-
// import {
|
|
3
|
-
// is_camelcase,
|
|
4
|
-
// camel2hyphencase
|
|
5
|
-
// } from '../../../data/string/index.js';
|
|
6
1
|
import { text } from "../../text/index.js";
|
|
7
2
|
|
|
8
3
|
export function append(...ele) {
|
|
@@ -14,19 +9,30 @@ export function prepend(...ele) {
|
|
|
14
9
|
return this;
|
|
15
10
|
}
|
|
16
11
|
export function insertAt(index, ...ele) {
|
|
17
|
-
|
|
18
|
-
|
|
12
|
+
const target = this.itemsTarget;
|
|
13
|
+
|
|
14
|
+
if (index >= target.items.length) return this.append(...ele);
|
|
15
|
+
|
|
19
16
|
for (let i = 0; i < ele.length; i++) {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
17
|
+
if (["number", "string"].includes(typeof ele[i]))
|
|
18
|
+
ele[i] = text(ele[i]);
|
|
19
|
+
|
|
20
|
+
target.element?.insertBefore(
|
|
21
|
+
ele[i].element,
|
|
22
|
+
target.items[index].element
|
|
23
|
+
);
|
|
24
|
+
|
|
25
|
+
target.items.splice(index, 0, ele[i]);
|
|
23
26
|
}
|
|
24
|
-
|
|
27
|
+
|
|
28
|
+
target.maintain();
|
|
29
|
+
|
|
30
|
+
return this;
|
|
25
31
|
}
|
|
26
32
|
export function remove(...ele) {
|
|
27
33
|
const remove = (ele) => {
|
|
28
34
|
if (typeof ele === "number") ele = this.items[ele];
|
|
29
|
-
if (ele?.isUIElement) this.element?.removeChild(ele.element);
|
|
35
|
+
if (ele?.isUIElement) this.itemsTarget.element?.removeChild(ele.element);
|
|
30
36
|
this.items = this.items.filter((n) => n !== ele);
|
|
31
37
|
};
|
|
32
38
|
for (let i = 0; i < ele.length; i++) remove(ele[i]);
|
|
@@ -37,7 +43,7 @@ export function remove(...ele) {
|
|
|
37
43
|
}
|
|
38
44
|
export function clear(){
|
|
39
45
|
this?.items?.forEach(n=>n.unmount());
|
|
40
|
-
this.element.innerHTML =
|
|
46
|
+
this.itemsTarget.element.innerHTML = '';
|
|
41
47
|
return this;
|
|
42
48
|
}
|
|
43
49
|
export function replaceElementWith(new_element){
|
|
@@ -49,12 +55,12 @@ export function replaceElementWith(new_element){
|
|
|
49
55
|
}
|
|
50
56
|
export function after(ui){
|
|
51
57
|
if(ui?.isUIElement) ui=ui.element;
|
|
52
|
-
this.element?.after(ui)
|
|
58
|
+
this.itemsTarget.element?.after(ui)
|
|
53
59
|
return this;
|
|
54
60
|
}
|
|
55
61
|
export function before(ui){
|
|
56
62
|
if(ui?.isUIElement) ui=ui.element;
|
|
57
|
-
this.element?.before(ui)
|
|
63
|
+
this.itemsTarget.element?.before(ui)
|
|
58
64
|
return this;
|
|
59
65
|
}
|
|
60
66
|
|
|
@@ -62,6 +68,9 @@ export function before(ui){
|
|
|
62
68
|
|
|
63
69
|
|
|
64
70
|
export async function __addItem__(adder, pusher, ...ele) {
|
|
71
|
+
const itemsTarget_el = this.itemsTarget.element;
|
|
72
|
+
const itemsTarget = this.itemsTarget
|
|
73
|
+
|
|
65
74
|
if (this.cache.isFrozzen) {
|
|
66
75
|
console.warn("You can't append new item to frozzen element");
|
|
67
76
|
return this;
|
|
@@ -77,22 +86,22 @@ export async function __addItem__(adder, pusher, ...ele) {
|
|
|
77
86
|
(newValue) => (ele[i].element.textContent = newValue),
|
|
78
87
|
ele[i]
|
|
79
88
|
);
|
|
80
|
-
// this.element.appendChild(textNode);
|
|
89
|
+
// this.itemsTarget.element.appendChild(textNode);
|
|
81
90
|
}
|
|
82
91
|
}
|
|
83
92
|
if (typeof globalThis?.Node === "function" && ele[i] instanceof globalThis?.Node) ele[i] = new this.constructor(ele[i]);
|
|
84
93
|
if (ele[i]?.isUINode) {
|
|
85
94
|
ele[i].cache.parent = this;
|
|
86
|
-
|
|
87
|
-
ele[i].target = this.element;
|
|
88
|
-
|
|
95
|
+
itemsTarget_el?.[adder](ele[i].element);
|
|
96
|
+
ele[i].target = this.itemsTarget.element;
|
|
97
|
+
itemsTarget.items[pusher](ele[i]);
|
|
89
98
|
}
|
|
90
99
|
else if(ele[i] instanceof Promise){
|
|
91
100
|
const UIEle = await ele[i]
|
|
92
101
|
UIEle.cache.parent = this;
|
|
93
|
-
|
|
94
|
-
UIEle.target = this.element;
|
|
95
|
-
|
|
102
|
+
itemsTarget_el?.[adder](UIEle.element);
|
|
103
|
+
UIEle.target = this.itemsTarget.element;
|
|
104
|
+
itemsTarget.items[pusher](UIEle)
|
|
96
105
|
}
|
|
97
106
|
else if (ele[i] instanceof Object) {
|
|
98
107
|
if (ele[i]?.style) this.style(ele[i]?.style);
|