ziko 2.0.0-beta.16.2 → 2.0.0-beta.17.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ziko.cjs +50 -40
- package/dist/ziko.js +50 -40
- package/dist/ziko.min.js +2 -2
- package/dist/ziko.min.js.map +1 -1
- package/dist/ziko.mjs +50 -40
- package/package.json +1 -4
- package/src/__ziko__/__config__.js +4 -7
- package/src/dom/UIElement/index.js +42 -33
- package/src/mini-dom/UIElement/index.js +2 -2
package/dist/ziko.cjs
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/*
|
|
3
3
|
Project: ziko
|
|
4
4
|
Author: Zakaria Elalaoui
|
|
5
|
-
Date: 2026-10-
|
|
5
|
+
Date: 2026-10-10
|
|
6
6
|
Git-Repo : https://github.com/zikojs/ziko
|
|
7
7
|
Git-Wiki : https://github.com/zikojs/ziko/wiki
|
|
8
8
|
Released under MIT License
|
|
@@ -171,20 +171,17 @@ const __UI__ = new UIStore();
|
|
|
171
171
|
const __Config__ = {
|
|
172
172
|
default:{
|
|
173
173
|
target:null,
|
|
174
|
-
|
|
175
|
-
// math:{
|
|
176
|
-
// mode:"deg"
|
|
177
|
-
// }
|
|
174
|
+
autoMount:false,
|
|
178
175
|
},
|
|
179
176
|
setDefault:function(pairs){
|
|
180
|
-
const keys=Object.keys(pairs);
|
|
181
|
-
const values=Object.values(pairs);
|
|
177
|
+
const keys = Object.keys(pairs);
|
|
178
|
+
const values = Object.values(pairs);
|
|
182
179
|
for(let i=0; i<keys.length; i++) this.default[keys[i]]=values[i];
|
|
183
180
|
},
|
|
184
181
|
init:()=>{
|
|
185
182
|
// document.documentElement.setAttribute("data-engine","zikojs")
|
|
186
183
|
},
|
|
187
|
-
renderingMode :
|
|
184
|
+
renderingMode :'spa',
|
|
188
185
|
isSSC : false,
|
|
189
186
|
};
|
|
190
187
|
|
|
@@ -278,7 +275,7 @@ let UIElement$1 = class UIElement extends UINode{
|
|
|
278
275
|
constructor(){
|
|
279
276
|
super();
|
|
280
277
|
}
|
|
281
|
-
init({element, name, type,
|
|
278
|
+
init({element, name, type, autoMount, props = {}, items = []} = {}){
|
|
282
279
|
this.target = globalThis.__Ziko__.__Config__.default.target||globalThis?.document?.body;
|
|
283
280
|
if(typeof element === "string") {
|
|
284
281
|
switch(type){
|
|
@@ -323,7 +320,7 @@ let UIElement$1 = class UIElement extends UINode{
|
|
|
323
320
|
globalThis.__Ziko__.__UI__[this.cache.name]
|
|
324
321
|
? globalThis.__Ziko__.__UI__[this.cache.name]?.push(this)
|
|
325
322
|
: globalThis.__Ziko__.__UI__[this.cache.name]=[this];
|
|
326
|
-
element &&
|
|
323
|
+
element && autoMount && this?.mount?.();
|
|
327
324
|
globalThis.__Ziko__.__UI__.push(this);
|
|
328
325
|
|
|
329
326
|
const parsed_props = parse_props(props);
|
|
@@ -1153,7 +1150,7 @@ class UIElement extends UIElement$1 {
|
|
|
1153
1150
|
element,
|
|
1154
1151
|
name = "",
|
|
1155
1152
|
type = "html",
|
|
1156
|
-
|
|
1153
|
+
autoMount = __Ziko__.__Config__.default.autoMount,
|
|
1157
1154
|
props,
|
|
1158
1155
|
} = {}) {
|
|
1159
1156
|
super();
|
|
@@ -1162,18 +1159,14 @@ class UIElement extends UIElement$1 {
|
|
|
1162
1159
|
};
|
|
1163
1160
|
register_to_class(
|
|
1164
1161
|
this,
|
|
1165
|
-
// LifecycleMethods,
|
|
1166
1162
|
AttrsMethods,
|
|
1167
|
-
// DomMethods,
|
|
1168
|
-
// StyleMethods,
|
|
1169
|
-
// IndexingMethods,
|
|
1170
1163
|
PtrListeners,
|
|
1171
1164
|
ClickListeners,
|
|
1172
1165
|
KeyListeners,
|
|
1173
1166
|
ViewListeners,
|
|
1174
1167
|
);
|
|
1175
1168
|
|
|
1176
|
-
if (element) this.init({ element, name, type,
|
|
1169
|
+
if (element) this.init({ element, name, type, autoMount, props });
|
|
1177
1170
|
}
|
|
1178
1171
|
on(
|
|
1179
1172
|
event_name,
|
|
@@ -1349,11 +1342,11 @@ class UIElement extends UIElement$1 {
|
|
|
1349
1342
|
// Dom
|
|
1350
1343
|
|
|
1351
1344
|
append(...ele) {
|
|
1352
|
-
this
|
|
1345
|
+
this.#__addItems__("append", "push", ...ele);
|
|
1353
1346
|
return this;
|
|
1354
1347
|
}
|
|
1355
1348
|
prepend(...ele) {
|
|
1356
|
-
this.this
|
|
1349
|
+
this.this.#__addItems__("prepend", "unshift", ...ele);
|
|
1357
1350
|
return this;
|
|
1358
1351
|
}
|
|
1359
1352
|
insertAt(index, ...ele) {
|
|
@@ -1380,29 +1373,36 @@ class UIElement extends UIElement$1 {
|
|
|
1380
1373
|
return this;
|
|
1381
1374
|
}
|
|
1382
1375
|
|
|
1383
|
-
async __addItem__(adder, pusher, item, referenceNode = null, index = null) {
|
|
1376
|
+
async #__addItem__(adder, pusher, item, referenceNode = null, index = null) {
|
|
1384
1377
|
const { element: itemsTargetEl, items } = this.itemsTarget;
|
|
1385
|
-
if
|
|
1386
|
-
if
|
|
1378
|
+
if(["number", "string"].includes(typeof item)) item = text(item);
|
|
1379
|
+
if(typeof item === "function" && isStateGetter(item)) {
|
|
1387
1380
|
const getter = item();
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
getter._subscribe((
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
|
|
1381
|
+
let currentItem = normalize(getter.value);
|
|
1382
|
+
item = currentItem;
|
|
1383
|
+
getter._subscribe((value) => {
|
|
1384
|
+
const nextItem = normalize(value);
|
|
1385
|
+
if (nextItem === currentItem) return;
|
|
1386
|
+
const currentIndex = items.indexOf(currentItem);
|
|
1387
|
+
if (currentIndex !== -1) {
|
|
1388
|
+
currentItem.element.replaceWith(nextItem.element);
|
|
1389
|
+
items[currentIndex] = nextItem;
|
|
1390
|
+
}
|
|
1391
|
+
else if (currentItem.element.parentNode) {
|
|
1392
|
+
currentItem.element.replaceWith(nextItem.element);
|
|
1393
|
+
}
|
|
1394
|
+
else {
|
|
1395
|
+
return;
|
|
1396
1396
|
}
|
|
1397
|
+
nextItem.cache.parent = this;
|
|
1398
|
+
nextItem.target = itemsTargetEl;
|
|
1399
|
+
currentItem = nextItem;
|
|
1397
1400
|
});
|
|
1398
1401
|
}
|
|
1399
|
-
if
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
)
|
|
1403
|
-
item = new UIElement({element : item});
|
|
1404
|
-
if (item instanceof Promise) item = await item;
|
|
1405
|
-
if (item?.isUINode) {
|
|
1402
|
+
if( typeof globalThis?.Node === "function" && item instanceof globalThis.Node)
|
|
1403
|
+
item = new UIElement({ element: item });
|
|
1404
|
+
if(item instanceof Promise) item = await item;
|
|
1405
|
+
if(item?.isUINode) {
|
|
1406
1406
|
item.cache.parent = this;
|
|
1407
1407
|
item.target = itemsTargetEl;
|
|
1408
1408
|
if (adder === "insertBefore" && itemsTargetEl)
|
|
@@ -1414,15 +1414,25 @@ class UIElement extends UIElement$1 {
|
|
|
1414
1414
|
return;
|
|
1415
1415
|
}
|
|
1416
1416
|
}
|
|
1417
|
-
|
|
1418
|
-
async __addItems__(adder, pusher, ...elements) {
|
|
1417
|
+
async #__addItems__(adder, pusher, ...elements) {
|
|
1419
1418
|
for (const item of elements) {
|
|
1420
|
-
await this
|
|
1419
|
+
await this.#__addItem__(adder, pusher, item);
|
|
1421
1420
|
}
|
|
1422
1421
|
this.maintain();
|
|
1423
1422
|
return this;
|
|
1424
1423
|
}
|
|
1425
|
-
}
|
|
1424
|
+
}
|
|
1425
|
+
|
|
1426
|
+
const normalize = (value) => {
|
|
1427
|
+
if (value?.isUINode) return value;
|
|
1428
|
+
if (
|
|
1429
|
+
typeof globalThis.Node === "function" &&
|
|
1430
|
+
value instanceof globalThis.Node
|
|
1431
|
+
) {
|
|
1432
|
+
return new UIElement({ element: value });
|
|
1433
|
+
}
|
|
1434
|
+
return text(value ?? "");
|
|
1435
|
+
};
|
|
1426
1436
|
|
|
1427
1437
|
const HTMLTags = [
|
|
1428
1438
|
'a',
|
package/dist/ziko.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/*
|
|
3
3
|
Project: ziko
|
|
4
4
|
Author: Zakaria Elalaoui
|
|
5
|
-
Date: 2026-10-
|
|
5
|
+
Date: 2026-10-10
|
|
6
6
|
Git-Repo : https://github.com/zikojs/ziko
|
|
7
7
|
Git-Wiki : https://github.com/zikojs/ziko/wiki
|
|
8
8
|
Released under MIT License
|
|
@@ -175,20 +175,17 @@
|
|
|
175
175
|
const __Config__ = {
|
|
176
176
|
default:{
|
|
177
177
|
target:null,
|
|
178
|
-
|
|
179
|
-
// math:{
|
|
180
|
-
// mode:"deg"
|
|
181
|
-
// }
|
|
178
|
+
autoMount:false,
|
|
182
179
|
},
|
|
183
180
|
setDefault:function(pairs){
|
|
184
|
-
const keys=Object.keys(pairs);
|
|
185
|
-
const values=Object.values(pairs);
|
|
181
|
+
const keys = Object.keys(pairs);
|
|
182
|
+
const values = Object.values(pairs);
|
|
186
183
|
for(let i=0; i<keys.length; i++) this.default[keys[i]]=values[i];
|
|
187
184
|
},
|
|
188
185
|
init:()=>{
|
|
189
186
|
// document.documentElement.setAttribute("data-engine","zikojs")
|
|
190
187
|
},
|
|
191
|
-
renderingMode :
|
|
188
|
+
renderingMode :'spa',
|
|
192
189
|
isSSC : false,
|
|
193
190
|
};
|
|
194
191
|
|
|
@@ -282,7 +279,7 @@
|
|
|
282
279
|
constructor(){
|
|
283
280
|
super();
|
|
284
281
|
}
|
|
285
|
-
init({element, name, type,
|
|
282
|
+
init({element, name, type, autoMount, props = {}, items = []} = {}){
|
|
286
283
|
this.target = globalThis.__Ziko__.__Config__.default.target||globalThis?.document?.body;
|
|
287
284
|
if(typeof element === "string") {
|
|
288
285
|
switch(type){
|
|
@@ -327,7 +324,7 @@
|
|
|
327
324
|
globalThis.__Ziko__.__UI__[this.cache.name]
|
|
328
325
|
? globalThis.__Ziko__.__UI__[this.cache.name]?.push(this)
|
|
329
326
|
: globalThis.__Ziko__.__UI__[this.cache.name]=[this];
|
|
330
|
-
element &&
|
|
327
|
+
element && autoMount && this?.mount?.();
|
|
331
328
|
globalThis.__Ziko__.__UI__.push(this);
|
|
332
329
|
|
|
333
330
|
const parsed_props = parse_props(props);
|
|
@@ -1157,7 +1154,7 @@
|
|
|
1157
1154
|
element,
|
|
1158
1155
|
name = "",
|
|
1159
1156
|
type = "html",
|
|
1160
|
-
|
|
1157
|
+
autoMount = __Ziko__.__Config__.default.autoMount,
|
|
1161
1158
|
props,
|
|
1162
1159
|
} = {}) {
|
|
1163
1160
|
super();
|
|
@@ -1166,18 +1163,14 @@
|
|
|
1166
1163
|
};
|
|
1167
1164
|
register_to_class(
|
|
1168
1165
|
this,
|
|
1169
|
-
// LifecycleMethods,
|
|
1170
1166
|
AttrsMethods,
|
|
1171
|
-
// DomMethods,
|
|
1172
|
-
// StyleMethods,
|
|
1173
|
-
// IndexingMethods,
|
|
1174
1167
|
PtrListeners,
|
|
1175
1168
|
ClickListeners,
|
|
1176
1169
|
KeyListeners,
|
|
1177
1170
|
ViewListeners,
|
|
1178
1171
|
);
|
|
1179
1172
|
|
|
1180
|
-
if (element) this.init({ element, name, type,
|
|
1173
|
+
if (element) this.init({ element, name, type, autoMount, props });
|
|
1181
1174
|
}
|
|
1182
1175
|
on(
|
|
1183
1176
|
event_name,
|
|
@@ -1353,11 +1346,11 @@
|
|
|
1353
1346
|
// Dom
|
|
1354
1347
|
|
|
1355
1348
|
append(...ele) {
|
|
1356
|
-
this
|
|
1349
|
+
this.#__addItems__("append", "push", ...ele);
|
|
1357
1350
|
return this;
|
|
1358
1351
|
}
|
|
1359
1352
|
prepend(...ele) {
|
|
1360
|
-
this.this
|
|
1353
|
+
this.this.#__addItems__("prepend", "unshift", ...ele);
|
|
1361
1354
|
return this;
|
|
1362
1355
|
}
|
|
1363
1356
|
insertAt(index, ...ele) {
|
|
@@ -1384,29 +1377,36 @@
|
|
|
1384
1377
|
return this;
|
|
1385
1378
|
}
|
|
1386
1379
|
|
|
1387
|
-
async __addItem__(adder, pusher, item, referenceNode = null, index = null) {
|
|
1380
|
+
async #__addItem__(adder, pusher, item, referenceNode = null, index = null) {
|
|
1388
1381
|
const { element: itemsTargetEl, items } = this.itemsTarget;
|
|
1389
|
-
if
|
|
1390
|
-
if
|
|
1382
|
+
if(["number", "string"].includes(typeof item)) item = text(item);
|
|
1383
|
+
if(typeof item === "function" && isStateGetter(item)) {
|
|
1391
1384
|
const getter = item();
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
getter._subscribe((
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
|
|
1385
|
+
let currentItem = normalize(getter.value);
|
|
1386
|
+
item = currentItem;
|
|
1387
|
+
getter._subscribe((value) => {
|
|
1388
|
+
const nextItem = normalize(value);
|
|
1389
|
+
if (nextItem === currentItem) return;
|
|
1390
|
+
const currentIndex = items.indexOf(currentItem);
|
|
1391
|
+
if (currentIndex !== -1) {
|
|
1392
|
+
currentItem.element.replaceWith(nextItem.element);
|
|
1393
|
+
items[currentIndex] = nextItem;
|
|
1394
|
+
}
|
|
1395
|
+
else if (currentItem.element.parentNode) {
|
|
1396
|
+
currentItem.element.replaceWith(nextItem.element);
|
|
1397
|
+
}
|
|
1398
|
+
else {
|
|
1399
|
+
return;
|
|
1400
1400
|
}
|
|
1401
|
+
nextItem.cache.parent = this;
|
|
1402
|
+
nextItem.target = itemsTargetEl;
|
|
1403
|
+
currentItem = nextItem;
|
|
1401
1404
|
});
|
|
1402
1405
|
}
|
|
1403
|
-
if
|
|
1404
|
-
|
|
1405
|
-
|
|
1406
|
-
)
|
|
1407
|
-
item = new UIElement({element : item});
|
|
1408
|
-
if (item instanceof Promise) item = await item;
|
|
1409
|
-
if (item?.isUINode) {
|
|
1406
|
+
if( typeof globalThis?.Node === "function" && item instanceof globalThis.Node)
|
|
1407
|
+
item = new UIElement({ element: item });
|
|
1408
|
+
if(item instanceof Promise) item = await item;
|
|
1409
|
+
if(item?.isUINode) {
|
|
1410
1410
|
item.cache.parent = this;
|
|
1411
1411
|
item.target = itemsTargetEl;
|
|
1412
1412
|
if (adder === "insertBefore" && itemsTargetEl)
|
|
@@ -1418,15 +1418,25 @@
|
|
|
1418
1418
|
return;
|
|
1419
1419
|
}
|
|
1420
1420
|
}
|
|
1421
|
-
|
|
1422
|
-
async __addItems__(adder, pusher, ...elements) {
|
|
1421
|
+
async #__addItems__(adder, pusher, ...elements) {
|
|
1423
1422
|
for (const item of elements) {
|
|
1424
|
-
await this
|
|
1423
|
+
await this.#__addItem__(adder, pusher, item);
|
|
1425
1424
|
}
|
|
1426
1425
|
this.maintain();
|
|
1427
1426
|
return this;
|
|
1428
1427
|
}
|
|
1429
|
-
}
|
|
1428
|
+
}
|
|
1429
|
+
|
|
1430
|
+
const normalize = (value) => {
|
|
1431
|
+
if (value?.isUINode) return value;
|
|
1432
|
+
if (
|
|
1433
|
+
typeof globalThis.Node === "function" &&
|
|
1434
|
+
value instanceof globalThis.Node
|
|
1435
|
+
) {
|
|
1436
|
+
return new UIElement({ element: value });
|
|
1437
|
+
}
|
|
1438
|
+
return text(value ?? "");
|
|
1439
|
+
};
|
|
1430
1440
|
|
|
1431
1441
|
const HTMLTags = [
|
|
1432
1442
|
'a',
|
package/dist/ziko.min.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/*
|
|
2
2
|
Project: ziko
|
|
3
3
|
Author: Zakaria Elalaoui
|
|
4
|
-
Date: 2026-10-
|
|
4
|
+
Date: 2026-10-10
|
|
5
5
|
Git-Repo : https://github.com/zikojs/ziko
|
|
6
6
|
Git-Wiki : https://github.com/zikojs/ziko/wiki
|
|
7
7
|
Released under MIT License
|
|
8
8
|
*/
|
|
9
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Ziko={})}(this,function(e){"use strict";const{PI:t,E:s}=Math,n=Number.EPSILON,i=e=>"object"!=typeof e&&"function"!=typeof e||null===e,r=(e,...t)=>{const s=t.map(t=>i(t)||t?.__mapfun__?e(t):t instanceof Array?t.map(t=>r(e,t)):ArrayBuffer.isView(t)?t.map(t=>e(t)):t instanceof Set?new Set(r(e,...t)):t instanceof Map?new Map([...t].map(t=>[t[0],r(e,t[1])])):t.isMatrix?.()?new t.constructor(t.rows,t.cols,r(t.arr.flat(1))):t instanceof Object?Object.fromEntries(Object.entries(t).map(t=>[t[0],r(e,t[1])])):void 0);return 1==s.length?s[0]:s},a=(e,t)=>e.isComplex?.()?new e.constructor(t(e.a),t(e.b)):e.isMatrix?.()?new e.constructor(e.rows,e.cols,e.arr.flat(1).map(t)):e instanceof Array?r(t,...e):t(e),o=(e,t,s)=>a(e,e=>t!==s?(e-t)/(s-t):0),c=(e,t,s)=>a(e,e=>(s-t)*e+t),l=(e,t,s=!0)=>{if(e instanceof Array&&!(t instanceof Array))return r(e=>l(e,t,s),...e);if(t instanceof Array&&!(e instanceof Array))return r(t=>l(e,t,s),...t);if(e instanceof Array&&t instanceof Array)return e.map((e,n)=>l(e,t[n],s));const n=Math.atan2(e,t);return s?n:180*n/Math.PI};class h{constructor(e){this.cache={node:e}}isUINode(){return!0}get node(){return this.cache.node}}class u extends Array{constructor(...e){super(...e)}clear(){return this.length=0,this}getItemById(e){return this.find(t=>t.element.id===e)}getItemsByTagName(e){return this.filter(t=>t.element.tagName.toLowerCase()===e.toLowerCase())}getElementsByClassName(e){return this.filter(t=>t.element.classList?.contains(e))}querySelector(e){const t=globalThis?.document?.querySelector(e);return t&&this.find(e=>e.element===t)||null}querySelectorAll(e){const t=globalThis?.document?.querySelectorAll(e);return Array.from(t).map(e=>this.find(t=>t.element===e)).filter(Boolean)}}const p=new u,m={default:{target:null,render:!0},setDefault:function(e){const t=Object.keys(e),s=Object.values(e);for(let e=0;e<t.length;e++)this.default[t[e]]=s[e]},init:()=>{},renderingMode:"spa",isSSC:!1},d={store:new Map,index:0,register:function(e){this.store.set(this.index++,e)},reset(){this.index=0,this.store.clear()}},f={ui_index:0,get_ui_index:function(){return this.ui_index++},register_ui:function(e){}};var g={store:new Map,index:0,session_storage:null,register:function(e){},update:function(e,t){}};var y;globalThis?.__Ziko__||(globalThis.__Ziko__={__UI__:p,__HYDRATION__:d,__State__:g,__Config__:m,__CACHE__:f,__PROVIDERS__:{}},y=__Ziko__,Object.defineProperties(y,{QueryParams:{get:function(){return function(e){const t={};return e.replace(/[A-Z0-9]+?=([\w|:|\/\.]*)/gi,e=>{const[s,n]=e.split("=");t[s]=n}),t}(globalThis.location.search.substring(1))},configurable:!1,enumerable:!0},HashParams:{get:function(){return globalThis.location.hash.substring(1).split("#")},configurable:!1,enumerable:!0}}));let b=class extends h{constructor(){super()}init({element:e,name:t,type:s,mount:n,props:i={},items:r=[]}={}){if(this.target=globalThis.__Ziko__.__Config__.default.target||globalThis?.document?.body,"string"==typeof e)switch(s){case"html":e=globalThis?.document?.createElement(e);break;case"svg":e=globalThis?.document?.createElementNS("http://www.w3.org/2000/svg",e);break;default:throw Error("Not supported")}else this.target=e?.parentElement;Object.assign(this.cache,{name:t,itemsTarget:this,isInteractive:!1,parent:null}),e&&Object.assign(this.cache,{element:e}),this.items=new u,globalThis.__Ziko__.__UI__[this.cache.name]?globalThis.__Ziko__.__UI__[this.cache.name]?.push(this):globalThis.__Ziko__.__UI__[this.cache.name]=[this],e&&n&&this?.mount?.(),globalThis.__Ziko__.__UI__.push(this);const a=((e={})=>{const t={methods:{},events:{},style:{},attrs:{}};for(const[s,n]of Object.entries(e))"style"===s?t.style=n:s.startsWith("$")?t.methods[s.slice(1)]=n:/^on[A-Z]/.test(s)?t.events[s]=n:t.attrs[s]=n;return t})(i);this.parsed_props=a,this.style(a.style),this.setAttr(a.attrs);Object.entries(a.events).forEach(([e,t])=>this[e](t.bind(this))),r.length>0&&this.append(...r)}get element(){return this.cache.element}[Symbol.iterator](){return this.items[Symbol.iterator]()}maintain(){for(let e=0;e<this.items.length;e++)Object.defineProperty(this,e,{value:this.items[e],writable:!0,configurable:!0,enumerable:!1})}isInteractive(){return this.cache.isInteractive}isUIElement(){return!0}};function _(e,...t){t.forEach(t=>function(e,t){const s=Object.getOwnPropertyDescriptors(t);for(const t of Reflect.ownKeys(s)){const n=s[t];"get"in n||"set"in n||"function"!=typeof n.value?Object.defineProperty(Object.getPrototypeOf(e),t,n):"function"==typeof n.value&&(Object.getPrototypeOf(e).hasOwnProperty(t)||Object.defineProperty(Object.getPrototypeOf(e),t,n))}}(e,t))}const v=Symbol.for("ziko/hooks/STATE_GETTER");function w(e){const t={value:e,subscribers:new Set,paused:!1};function s(){return{value:t.value,_subscribe:e=>(t.subscribers.add(e),()=>t.subscribers.delete(e))}}s[v]=!0;return[s,function(e){t.paused||("function"==typeof e&&(e=e(t.value)),Object.is(e,t.value)||(t.value=e,t.subscribers.forEach(e=>e(t.value))))},{pause:()=>{t.paused=!0},resume:()=>{t.paused=!1},clear:()=>{t.subscribers.clear()},force:e=>{"function"==typeof e&&(e=e(t.value)),t.value=e,t.subscribers.forEach(e=>e(t.value))},getSubscribers:()=>new Set(t.subscribers)}]}const k=e=>"function"==typeof e&&!0===e[v],E=(e="")=>e.replace(/[A-Z]/g,(e,t)=>t?`-${e.toLowerCase()}`:e.toLowerCase()),x=(e="")=>{if(0===e.length)return!1;return/^[a-z][a-zA-Z0-9]*$/.test(e)};function C(e,t){if(globalThis.SVGAElement&&this.element instanceof globalThis.SVGAElement&&(e=x(e)?E(e):e),k(t)){t()._subscribe(t=>this.element?.setAttribute(e,t),this)}else this.element?.setAttribute(e,t)}var T=Object.freeze({__proto__:null,_set_attrs_:C,getAttr:function(e){return this.element.attributes[e].value},removeAttr:function(...e){for(let t=0;t<e.length;t++)this.element?.removeAttribute(e[t]);return this},setAttr:function(e,t){if(e instanceof Object){const[s,n]=[Object.keys(e),Object.values(e)];for(let e=0;e<s.length;e++)n[e]instanceof Array&&(t[e]=n[e].join(" ")),C.call(this,s[e],n[e])}else t instanceof Array&&(t=t.join(" ")),C.call(this,e,t);return this},setContentEditable:function(e=!0){return this.setAttr("contenteditable",e),this}});class A extends h{constructor(...e){super("span","text",!1,...e),this.element=globalThis?.document?.createTextNode(...e)}isText(){return!0}}const I=(...e)=>new A(...e);class S{constructor(e,t){this.cache={category:t,target:e,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(e,t,{preventDefault:s=!1,paused:n=!1}={}){return this.cache.listeners[e]={callback:s=>{this.cache.event=s,this.cache.listeners[e].preventDefault&&s.preventDefault(),this.cache.listeners[e].paused||(this.cache.currentEvent=e,t.call(this,this))},preventDefault:s,paused:n},this.element.addEventListener(e,this.cache.listeners[e].callback),this}removeListener(e){return this.element.removeEventListener(e,this.cache.listeners[e].callback),this}pause(e){return this.cache.listeners[e].paused=!0,this}resume(e){return this.cache.listeners[e].paused=!1,this}preventDefault(e){return this.cache.listeners[e].preventDefault=!0,this}useDefault(e){return this.cache.listeners[e].preventDefault=!1,this}}class L extends Event{constructor(e,t){super("clickaway",{bubbles:!0,cancelable:!0}),this.originalEvent=e,this.targetElement=t}}function O(e){function t(t){if(!e.contains(t.target)){const s=new L(t,e);e.dispatchEvent(s)}}return globalThis?.document?.addEventListener("click",t),()=>globalThis?.document?.removeEventListener("click",t)}const j=(e,t=!1)=>{const s=e.element.getBoundingClientRect(),n=e.event;let i=n?.clientX-s.left|0,r=n?.clientY-s.top|0;if(t){const t=e.element.clientWidth,s=e.element.clientHeight;i=+(i/t*2-1).toFixed(8),r=+(r/s*-2+1).toFixed(8)}return{x:i,y:r}},P="click",M={onClick(e){return this.on("click",e,{category:P})},onDblClick(e){return this.on("dblclick",e,{category:P})},onClickAway(e){var t,s,n;return t=this,s=P,n="clickaway",t.exp.events?.[s]?.cache?.customEvents?.has(n)||O(this.element),this.on("clickaway",e,{category:P,isCustom:!0})}},D="ptr",W={onPtrDown(e,t=!1){return this.on("pointerdown",e,{category:D,details_setter:e=>{const{x:s,y:n}=j(e,t);e.dx=s,e.dy=n,e.isDown=!0,e.isDragging=e.isMoving??!1}})},onPtrMove(e,t=!1){return this.on("pointermove",e,{category:D,details_setter:e=>{const{x:s,y:n}=j(e,t);e.mx=s,e.my=n,e.isMoving=!0,e.isDragging=e.isDown??!1}})},onPtrUp(e,t=!1){return this.on("pointerup",e,{category:D,details_setter:e=>{const{x:s,y:n}=j(e,t);e.ux=s,e.uy=n,e.isDown=!1,e.isMoving=!1,e.isDragging=!1}})}},U="key",Z={onKeyDown(e){return this.on("keydown",e,{category:U,details_setter:e=>{e.kd=e.event.key}})},onKeyPress(e){return this.on("keypress",e,{category:U,details_setter:e=>{e.kp=e.event.key}})},onKeyUp(e){return this.on("keydown",e,{category:U,details_setter:e=>{e.ku=e.event.key}})}};class R{constructor(e,t,s=1/0,n){this.ms=t,this.fn=e,this.count=s,this.frame=1,this.id=null,this.running=!1,n&&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 $ extends R{constructor(e=1e3/60){super(e,()=>this._tick()),this.elapsed=0,this._lastTime=performance.now(),this._callbacks=new Set}_tick(){const e=performance.now(),t=e-this._lastTime;this.elapsed+=t,this._lastTime=e;for(const e of this._callbacks)e({elapsed:this.elapsed,delta:t})}onTick(e){return this._callbacks.add(e),()=>this._callbacks.delete(e)}reset(){this.elapsed=0,this._lastTime=performance.now()}pause(){super.stop()}resume(){this._lastTime=performance.now(),super.start()}}class F{constructor(e=[],{repeat:t=1,loop:s=!1}={}){this.tasks=e,this.repeat=t,this.loop=s,this.stopped=!1,this.running=!1,this.onStart=null,this.onTask=null,this.onEnd=null}async run(){if(this.running)return;this.running=!0,this.stopped=!1,this.onStart&&this.onStart();let e=this.repeat;do{for(const e of this.tasks){if(this.stopped)return;if(Array.isArray(e))await Promise.all(e.map(({fn:e,delay:t=0})=>new Promise(async s=>{t>0&&await new Promise(e=>setTimeout(e,t)),this.onTask&&this.onTask(e),await e(),s()})));else{const{fn:t,delay:s=0}=e;s>0&&await new Promise(e=>setTimeout(e,s)),this.onTask&&this.onTask(t),await t()}}}while(this.loop&&!this.stopped&&(e===1/0||e-- >1));!this.stopped&&this.onEnd&&this.onEnd(),this.running=!1}stop(){this.stopped=!0,this.running=!1}addTask(e){this.tasks.push(e)}clearTasks(){this.tasks=[]}}const N=(e,t)=>{let s=0;return(...n)=>{const i=(new Date).getTime();i-s<t||(s=i,e(...n))}};class B extends CustomEvent{constructor(e,t,{bubbles:s=!0,cancelable:n=!0}={}){super(e,{detail:t,bubbles:s,cancelable:n})}}function z(e,{intersection:t=!0,resize:s=!0,threshold:n=0,throttleResize:i=100,throttleEnterExit:r=0}={}){let a,o;const c=t=>{for(let s of t){const{width:t,height:n}=s.contentRect;e.dispatchEvent(new B("resizeview",{width:t,height:n,entry:s}))}},l=i>0?N(c,i):c,h=t=>{for(let s of t){const t=s.isIntersecting?"enterview":"exitview";e.dispatchEvent(new B(t,s))}},u=r>0?N(h,r):h;return t&&(a=new IntersectionObserver(u,{threshold:n}),a.observe(e)),s&&(o=new ResizeObserver(l),o.observe(e)),()=>{a&&(a.unobserve(e),a.disconnect()),o&&(o.unobserve(e),o.disconnect())}}const G="view",V={onEnterView(e){return this.exp.events?.[G]||z(this.element),this.on("enterview",e,{category:G,isCustom:!0})},onExitView(e){return this.exp.events?.[G]||z(this.element),this.on("exitview",e,{category:G,isCustom:!0})},onResizeView(e){return this.exp.events?.[G]||z(this.element),this.on("resizeview",e,{category:G,isCustom:!0})}};class H extends CustomEvent{constructor(e,t){super(e,{detail:t,bubbles:!0,cancelable:!0})}}class Y extends b{constructor({element:e,name:t="",type:s="html",render:n=__Ziko__.__Config__.default.render,props:i}={}){super(),this.exp={events:{}},_(this,T,W,M,Z,V),e&&this.init({element:e,name:t,type:s,render:n,props:i})}on(e,t,{details_setter:s,category:n="global",isCustom:i=!1,preventDefault:r=!1}={}){e instanceof Array&&e.forEach(e=>this.on(e,t,{details_setter:s,category:n,isCustom:i,preventDefault:r})),n&&!this.exp.events.hasOwnProperty(n)&&(this.exp.events[n]=new S(this,n)),i&&this.exp.events[n].cache.customEvents.add(e);const a=this.exp.events[n];return a.addListener(e,e=>{s&&s(a),t(e)},{preventDefault:r}),this}off(e,t="global"){return this.exp.events[t].removeListener(e),this}get element(){return this.cache.element}get itemsTarget(){return this.cache.itemsTarget}get itemsTargetElement(){return this.itemsTarget.element}setItemsTarget(e){return this.cache.itemsTarget=e,this.items=e.items,this}isInteractive(){return this.cache.isInteractive}useClient(e){return this.cache.isInteractive||(this.element.setAttribute("data-hydration-index",globalThis.__Ziko__.__HYDRATION__.index),globalThis.__Ziko__.__HYDRATION__.register(()=>this.constructor),this.cache.isInteractive=!0),e&&this.element.setAttribute("data-hydration-directive",e),this}get attr(){return this.cache.attributes}get evt(){return this.events}get html(){return this.element.innerHTML}get text(){return this.element.textContent}get parent(){return this.cache.parent}get rect(){return this.element.getBoundingClientRect()}mount(e=this.target,t=0){return this.isBody||(e?.isUIElement&&(e=e.element),this.target=e,this.target?.appendChild(this.element)),this}unmount(){return this.cache.parent?this.cache.parent.remove(this):this.target?.children?.length&&[...this.target.children].includes(this.element)&&this.target.removeChild(this.element),this}at(e){return this.items.at(e)}forEach(e){return this.items.forEach(e),this}map(e){return this.items.map(e)}find(e){return this.items.filter(e)}style(e){if(!this.element?.style)return this;for(let t in e){const s=e[t];if(k(s)){const e=s();Object.assign(this.element.style,{[t]:e.value}),e._subscribe(e=>{Object.assign(this.element.style,{[t]:e})})}else Object.assign(this.element.style,{[t]:s})}return this}size(e,t){return this.style({width:e,height:t})}hide(){}show(){}append(...e){return this.__addItems__("append","push",...e),this}prepend(...e){return this.this.__addItems__("prepend","unshift",...e),this}insertAt(e,...t){const s=this.itemsTarget;if(e>=s.items.length)return this.append(...t);for(let n=0;n<t.length;n++)["number","string"].includes(typeof t[n])&&(t[n]=I(t[n])),s.element?.insertBefore(t[n].element,s.items[e].element),s.items.splice(e,0,t[n]);return s.maintain(),this}remove(...e){const t=e=>{"number"==typeof e&&(e=this.items[e]),e?.isUIElement&&this.itemsTarget.element?.removeChild(e.element),this.items=this.items.filter(t=>t!==e)};for(let s=0;s<e.length;s++)t(e[s]);for(let e=0;e<this.items.length;e++)Object.assign(this,{[[e]]:this.items[e]});return this}async __addItem__(e,t,s,n=null,i=null){const{element:r,items:a}=this.itemsTarget;if(["number","string"].includes(typeof s)&&(s=I(s)),"function"==typeof s&&k(s)){const e=s();s=e.value,e._subscribe(e=>{e?.isUIElement?.()?(s.element.replaceWith(e.element),s=e):s.element.textContent=e})}if("function"==typeof globalThis?.Node&&s instanceof globalThis.Node&&(s=new Y({element:s})),s instanceof Promise&&(s=await s),s?.isUINode)return s.cache.parent=this,s.target=r,"insertBefore"===e&&r?r.insertBefore(s.element,n):"function"==typeof r?.[e]&&r[e](s.element),void("splice"===t&&null!==i?a.splice(i,0,s):"function"==typeof a?.[t]&&a[t](s))}async __addItems__(e,t,...s){for(const n of s)await this.__addItem__(e,t,n);return this.maintain(),this}}const q=["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"],K=["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"],X=["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"],Q=e=>(...t)=>{const s=t[0];return s?.isUIElement?.()||i(s)?new e({},...t):new e(s,...t.slice(1))},J=new Proxy({},{get(e,t){if("string"!=typeof t)return;let s,n=t.replaceAll("_","-").toLowerCase();return q.includes(n)&&(s="html"),K.includes(n)&&(s="svg"),X.includes(n)&&(s="mathml"),(...e)=>{const t=new Y({element:n,name:n,type:s}),i=e[0];return 0===e.length?t:["string","number"].includes(typeof i)||i instanceof Y||k(i)||i instanceof HTMLElement?t.append(...e):new Y({element:n,type:s,props:e.shift()}).append(...e)}}});class ee{constructor(e=10){this.events={},this.maxListeners=e}on(e,t){return this.events[e]||(this.events[e]=[]),this.events[e].push(t),this.events[e].length>this.maxListeners&&console.warn(`Warning: Possible memory leak. Event '${e}' has more than ${this.maxListeners} listeners.`),this}once(e,t){const s=(...n)=>{this.off(e,s),t(...n)};return this.on(e,s)}off(e,t){const s=this.events[e];if(!s)return this;const n=s.indexOf(t);return-1!==n&&s.splice(n,1),this}emit(e,t){const s=this.events[e];return!!s&&([...s].forEach(s=>{try{s(t)}catch(t){console.error(`Error in listener for '${e}':`,t)}}),!0)}remove(e){return delete this.events[e],this}clear(){return this.events={},this}setMaxListeners(e){return this.maxListeners=e,this}}function te(e,t="./src/pages",s=["js","ts","jsx","tsx"]){let n=t.endsWith("/")?t.slice(0,-1):t;const i=e.replace(/\\/g,"/");let r=i;n&&i.includes(n)&&(r=i.split(n).pop());const a=r.split("/").filter(Boolean).filter(e=>!/^\([^)]+\)$/.test(e));if(0===a.length)return"/";const o=a[a.length-1],c=new RegExp(`\\.(${s.join("|")})$`),l=s.some(e=>o===`index.${e}`),h=o.replace(c,"");if(a.pop(),!l){const e=h.split(/\.(?![^\[]*\])/);a.push(...e)}return"/"+a.join("/")}function se(e,t){const s=e.split("/").filter(Boolean),n=t.split("/").filter(Boolean);let i=0,r=0;for(;i<s.length&&r<n.length;){const e=s[i];if(e.startsWith("[[...")&&e.endsWith("]]")){if(0===s.length-i-1)return!0;let e=0;for(let t=i+1;t<s.length;t++)s[t].endsWith("]+")||e++;const t=n.length-r-e;if(t<0)return!1;r+=t,i++;continue}if(e.startsWith("[...")&&e.endsWith("]")){if(0===s.length-i-1)return!0;let e=0;for(let t=i+1;t<s.length;t++)s[t].endsWith("]+")||e++;const t=n.length-r;if(t<e)return!1;const a=t-e;if(a<1)return!1;r+=a,i++;continue}if(e.startsWith("[")&&e.endsWith("]+"))n[r]&&r++,i++;else if(e.startsWith("[")&&e.endsWith("]"))i++,r++;else{if(e!==n[r])return!1;i++,r++}}for(;i<s.length;){const e=s[i];if(e.startsWith("[[...")&&e.endsWith("]]"))i++;else{if(!e.endsWith("]+"))return!1;i++}}return i===s.length&&r===n.length}function ne(e){return/(:\w+|\[\[\.\.\.\w+\]\]|\[\.\.\.\w+\]|\[\w+\]\+?)/.test(e)}function ie(e){return[...e].sort((e,t)=>{const s=e.includes("[[..."),n=t.includes("[[..."),i=e.includes("[...")&&!s,r=t.includes("[...")&&!n,a=ne(e),o=ne(t);return s&&!n?1:!s&&n?-1:i&&!r?1:!i&&r||!a&&o?-1:a&&!o?1:t.length-e.length})}const{meta:re,link:ae,script:oe}=J;class ce{constructor({title:e,icon:t,description:s,lang:n,links:i=[],script:r=[],meta:a=[]}={},...o){this.options={title:e,icon:t,description:s,lang:n,links:i,meta:a,script:r},this.ui=o,this.render()}render(){if("undefined"==typeof document)return{...this.options,body:this.ui};const{title:e,icon:t,description:s,lang:n,links:i,meta:r,script:a}=this.options;e&&(document.title=e),n&&(document.documentElement.lang=n),t&&document.head.appendChild(ae({rel:"icon",href:t})),s&&document.head.appendChild(re({name:"description",content:s}));for(const e of i)document.head.appendChild(ae(e));for(const e of r)document.head.appendChild(re(e));for(const e of a)document.head.appendChild(oe(e))}mount(e){return this.ui.forEach(t=>t.mount(e)),this}}const le=async(e,t,s,n)=>{if(!t)return;let i=await t(s);if(n&&(i=n(i)),i instanceof ce)return i.ui.forEach(t=>t.mount(e));i instanceof Array?i.forEach(t=>t.mount(e)):i.mount(e)};const he=e=>Object.fromEntries(new URLSearchParams(globalThis?.location?.search));class ue extends Y{constructor(e,t){super({element:"div",name:"suspense"}),this.setAttr({dataTemp:"suspense"}),this.fallback_ui=e,this.append(e),(async()=>{try{const s=await t();e.unmount(),this.append(s)}catch(e){console.log({error:e})}})()}}class pe extends Y{#e=new WeakMap;constructor({activeIndex:e=0}={},...t){super({element:"div"}),this.style({display:"contents"}),this.states={activeIndex:e},this.append(...t),requestAnimationFrame(()=>{this.render()})}get activeItem(){return this.items[this.states.activeIndex]}render(){this.items.forEach((e,t)=>{const s=getComputedStyle(e.element).display;this.#e.set(e,s),t!==this.states.activeIndex&&e.style({display:"none"})})}get DS(){return this.#e}next(e=1){return this.activate(this.states.activeIndex+e)}previous(e=1){return this.activate(this.states.activeIndex-e)}activate(e){if(!this.items.length)return this;const t=this.items.at(this.states.activeIndex);t&&t.style({display:"none"});const s=this.items.length;this.states.activeIndex=(e%s+s)%s;const n=this.items.at(this.states.activeIndex);if(n){const e=this.#e.get(n)||"block";n.style({display:"none"===e?"block":e})}return this}}const me=Q(pe);class de extends Y{constructor(...e){super({element:document.createDocumentFragment()}),this.append(...e)}isFragment(){return!0}}class fe extends de{constructor({each:e,fallback:t,mapFn:s=()=>{}}={}){super(),this.config={each:e,fallback:t,mapFn:s},this.append(...this.config.each.map((e,t)=>this.config.mapFn(e,t)))}}class ge extends Y{constructor(e,t){super(),this.key=e,this.cases=t,this.init()}init(){Object.values(this.cases).filter(e=>e!=this.current).forEach(e=>e.unmount()),super.init(this.current.element)}get current(){const e=Object.keys(this.cases).find(e=>e==this.key)??"default";return this.cases[e]}updateKey(e){return this.key=e,this.replaceElementWith(this.current.element),this}}class ye extends Y{constructor(e){super({element:"div",name:"html_wrappper"}),this.element.append(function(e){if(globalThis?.DOMParser){const t=(new DOMParser).parseFromString(`<div>${e}</div>`,"text/html");return t.body.firstChild.style.display="contents",t.body.firstChild}}(e)),this.style({display:"contents"})}}class be extends Y{constructor(e){super({element:"div",name:"html_wrappper"}),this.element.append(function(e){if("undefined"!=typeof DOMParser){const t=(new DOMParser).parseFromString(e.trim(),"image/svg+xml").documentElement;if("parsererror"===t.nodeName)throw new Error("Invalid SVG string");if(t.hasAttribute("xmlns"))return t;const{children:s,attributes:n}=t,i=document.createElementNS("http://www.w3.org/2000/svg","svg");for(let{name:e,value:t}of n)i.setAttribute(e,t);return i.append(...s),i}throw new Error("DOMParser is not available in this environment")}(e)),this.style({display:"contents"})}}globalThis?.document&&document?.addEventListener("DOMContentLoaded",__Ziko__.__Config__.init()),e.ClickAwayEvent=L,e.ClickListeners=M,e.Clock=$,e.E=s,e.EPSILON=n,e.EventController=S,e.For=({each:e,fallback:t,mapFn:s}={})=>new fe({each:e,fallback:t,mapFn:s}),e.Fragment=(...e)=>new de(...e),e.HTMLWrapper=e=>new ye(e),e.KeyListeners=Z,e.PI=t,e.PtrListeners=W,e.SVGWrapper=e=>new be(e),e.Scheduler=(e,{repeat:t=null}={})=>new F(e,{repeat:t}),e.Suspense=(e,t)=>new ue(e,t),e.Swap=me,e.SwipeEvent=H,e.Switch=({key:e,cases:t})=>new ge(e,t),e.Tick=R,e.TimeScheduler=F,e.UIElement=Y,e.UIFragment=de,e.UIHTMLWrapper=ye,e.UISVGWrapper=be,e.UISuspense=ue,e.UISwap=pe,e.UISwitch=ge,e.UIView=class extends Y{constructor(...e){super({element:"div",name:"view"}),this.append(...e)}},e.View=(...e)=>Q(Y),e.ViewEvent=B,e.ViewListeners=V,e.apply_fun=a,e.atan2=l,e.camel2constantcase=(e="")=>e.replace(/[A-Z]/g,(e,t)=>t?`_${e}`:e).toUpperCase(),e.camel2hyphencase=E,e.camel2pascalcase=(e="")=>e.charAt(0).toUpperCase()+e.slice(1),e.camel2snakecase=(e="")=>e.replace(/[A-Z]/g,(e,t)=>t?`_${e.toLowerCase()}`:e.toLowerCase()),e.clamp=(e,t,s)=>a(e,e=>Math.min(Math.max(e,t),s)),e.clock=e=>new $(e),e.constant2camelcase=(e="")=>e.toLowerCase().replace(/_([a-z])/g,(e,t)=>t.toUpperCase()),e.constant2hyphencase=(e="")=>e.toLowerCase().replace(/_/g,"-"),e.constant2pascalcase=(e="")=>e.toLowerCase().split("_").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(""),e.constant2snakecase=(e="")=>e.toLowerCase(),e.createFileBasedRouter=async function({pages:e={},url:t=("undefined"!=typeof location?location.pathname:"/"),target:s=("undefined"!=typeof document?document.body:null),extensions:n=["js","ts"],base:i="/",lazy:r=!0,renderer:a=le,wrapper:o,namedExportHandler:c={Get:async(e,t)=>{if("function"==typeof e)return await e(t)}}}={}){let l=s;s&&"object"==typeof s&&"element"in s&&(l=s.element);let h="."===i?"":i.replace(/\/$/,"");h&&!h.startsWith("/")&&(h="/"+h);let u=decodeURIComponent(t.replace(/\/$/,""))||"/";h&&u.startsWith(h)&&(u=u.slice(h.length)||"/");let p=u.startsWith("/")?u:"/"+u;const m=Object.keys(e),d=function(e){if(0===e.length)return"";const t=e.map(e=>{const t=e.split("/");return t.pop(),t}),s=Math.min(...t.map(e=>e.length));let n=[];for(let e=0;e<s;e++){const s=t[0][e];if(!t.every(t=>t[e]===s||t[e].startsWith("[")))break;n.push(s)}return n.join("/")+(n.length?"/":"")}(m);let f=null,g=null,y=null,b=null,_={};if(r){const t={};for(const e of m){t[te(e,d,n)]=e}const s=ie(Object.keys(t));for(const e of s)if(se(e,p)){f=e;break}if(null===f)return{mask:null,component:null,params:{},matched:!1};b=t[f];try{y=await e[b]();const{default:t,...s}=y;g=t,_=s}catch(e){return console.error(`[Router] Failed to load module for route: ${b}`,e),{mask:null,component:null,params:{},matched:!1,error:e}}}else{const t={},s={};for(const i of m){const r=await e[i](),{default:a}=r,o=te(i,d,n);t[o]=a,s[o]={module:r,rawRoute:i}}const i=ie(Object.keys(t));for(const e of i)if(se(e,p)){f=e,g=t[e];break}if(null===f)return{mask:null,component:null,params:{},matched:!1};if(f in s){y=s[f].module,b=s[f].rawRoute;const{default:e,...t}=y;_=t}}const v=ne(f)?function(e,t){const s=e.split("/").filter(Boolean),n=t.split("/").filter(Boolean),i={};let r=0,a=0;for(;r<s.length&&a<n.length;){const e=s[r];if(e.startsWith("[[...")&&e.endsWith("]]")){const t=e.slice(5,-2);if(0==s.length-r-1){i[t]=n.slice(a).join("/");break}let o=0;for(let e=r+1;e<s.length;e++)s[e].endsWith("]+")||o++;const c=n.length-a-o;if(!(c>=0))return{};i[t]=n.slice(a,a+c).join("/"),a+=c,r++;continue}if(e.startsWith("[...")&&e.endsWith("]")){const t=e.slice(4,-1);if(0==s.length-r-1){i[t]=n.slice(a).join("/");break}let o=0;for(let e=r+1;e<s.length;e++)s[e].endsWith("]+")||o++;const c=n.length-a-o;if(!(c>=1))return{};i[t]=n.slice(a,a+c).join("/"),a+=c,r++;continue}if(e.startsWith("[")&&e.endsWith("]+")){const t=e.slice(1,-2);n[a]&&(i[t]=n[a],a++),r++;continue}if(e.startsWith("[")&&e.endsWith("]"))i[e.slice(1,-1)]=n[a];else if(e!==n[a])return{};r++,a++}for(;r<s.length;){const e=s[r];if(e.startsWith("[[...")&&e.endsWith("]]")){const t=e.slice(5,-2);t in i||(i[t]="")}r++}return i}(f,p):{};for(const e in c)e in _&&"function"==typeof c[e]&&await c[e](_[e],{route:b,mask:f,module:y,currentPath:p,params:v});return l&&"function"==typeof a&&await a(l,g,v,o),{mask:f,component:g,params:v,namedExports:_,matched:!0}},e.debounce=(e,t=1e3)=>(...s)=>setTimeout(()=>e(...s),t),e.deg2rad=(...e)=>r(e=>e*Math.PI/180,...e),e.hyphen2camelcase=(e="")=>e.replace(/-([a-zA-Z])/g,(e,t)=>t.toUpperCase()),e.hyphen2constantcase=(e="")=>e.replace(/-/g,"_").toUpperCase(),e.hyphen2pascalcase=(e="")=>e.split("-").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(""),e.hyphen2snakecase=(e="")=>e.replace(/-/g,"_"),e.hypot=(...e)=>{const t=e.find(e=>e.isComplex?.());if(t){const s=e.map(e=>e.isComplex?.()?e:new t.constructor(e,0));return Math.hypot(...s.map(e=>e.z))}return Math.hypot(...e)},e.isStateGetter=k,e.is_anagram=(e,t)=>(e=e.split("").sort(),t=t.split("").sort(),JSON.stringify(e)===JSON.stringify(t)),e.is_camelcase=x,e.is_hyphencase=(e="")=>e.split("-").length>0,e.is_isogram=(e="")=>[...new Set(e.toLowerCase())].length===e.length,e.is_palindrome=e=>{const t=e.toLocaleLowerCase();let s,n=t.length;for(s=0;s<n/2;s++)if(t[s]!=t[n-s-1])return!1;return!0},e.is_pascalcalse=(e="")=>{if(0===e.length)return!1;return/^[A-Z][a-zA-Z0-9]*$/.test(e)},e.is_snakeCase=(e="")=>e.split("_").length>0,e.lerp=c,e.map=(e,t,s,n,i)=>a(e,e=>c(o(e,t,s),n,i)),e.mapfun=r,e.norm=o,e.pascal2camelcase=(e="")=>e.charAt(0).toLowerCase()+e.slice(1),e.pascal2constantcase=(e="")=>e.replace(/[A-Z]/g,(e,t)=>0===t?e:`_${e}`).toUpperCase(),e.pascal2hyphencase=(e="")=>e.replace(/[A-Z]/g,(e,t)=>0===t?e.toLowerCase():`-${e.toLowerCase()}`),e.pascal2snakecase=(e="")=>e.replace(/[A-Z]/g,(e,t)=>0===t?e.toLowerCase():`_${e.toLowerCase()}`),e.rad2deg=(...e)=>r(e=>e/Math.PI*180,...e),e.register_click_away_event=O,e.register_swipe_event=function(e,t=5,s=100,n=500){let i=0,r=0,a=0,o=!1;function c(e){i=e.clientX,r=e.clientY,a=performance.now(),o=!0}function l(c){if(!o)return;o=!1;const l=c.clientX-i,h=c.clientY-r;let u=null,p=null;performance.now()-a<=n&&(Math.abs(l)>=t&&Math.abs(h)<=s?(u=l<0?"left":"right",p="swipe"+u):Math.abs(h)>=t&&Math.abs(l)<=s&&(u=h<0?"up":"down",p="swipe"+u)),p&&e.dispatchEvent(new H(p,{direction:u,distX:l,distY:h,originalEvent:c}))}return e.addEventListener("pointerdown",c,{passive:!0}),e.addEventListener("pointerup",l,{passive:!0}),()=>{e.removeEventListener("pointerdown",c),e.removeEventListener("pointerup",l)}},e.register_view_event=z,e.sleep=e=>new Promise(t=>setTimeout(t,e)),e.snake2camelcase=(e="")=>e.replace(/_([a-zA-Z])/g,(e,t)=>t.toUpperCase()),e.snake2constantcase=(e="")=>e.toUpperCase(),e.snake2hyphencase=(e="")=>e.replace(/_/g,"-"),e.snake2pascalcase=(e="")=>e.split("_").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(""),e.tags=J,e.throttle=N,e.tick=(e,t,s=1/0,n=!0)=>new R(e,t,s,n),e.timeout=function(e,t){let s;const n=new Promise(n=>{s=setTimeout(()=>{t&&t(),n()},e)});return{id:s,clear:()=>clearTimeout(s),promise:n}},e.useDerived=function(e,t){const s=()=>e(...t.map(e=>e().value));let n=s();const i=new Set,r=()=>{const e=s();Object.is(e,n)||(n=e,i.forEach(e=>e(n)))};t.map(e=>e()._subscribe(r));const a=()=>({value:n,_subscribe:e=>(i.add(e),()=>i.delete(e))});return a[v]=!0,a},e.useEffect=(e,t=[])=>{const s=t.filter(k);let n;const i=()=>{"function"==typeof n&&n(),n=e(s.map(e=>e().value))},r=s.map(e=>e()._subscribe(i));return i(),()=>{r.forEach(e=>e()),"function"==typeof n&&(n(),n=void 0)}},e.useEventEmitter=e=>new ee(e),e.useQueryParams=function(){const e=()=>he();return[e,(t,s=!0)=>{const n=e(),i="function"==typeof t?t(n):t,r=s?{...n,...i}:i,a=new URLSearchParams(r).toString();window.history.pushState({},"",`${window.location.pathname}${a?`?${a}`:""}`),window.dispatchEvent(new CustomEvent("queryparamschange",{detail:r}))}]},e.useReactive=e=>r(e=>{const t=w(e);return{get:t[0],set:t[1]}},e),e.useState=w,e.watchQueryParams=function(e){let t=location.search;const s=()=>{const s=location.search;s!==t&&(t=s,e(he()))};window.addEventListener("popstate",s);const n=history.pushState;history.pushState=function(...e){n.apply(this,e),s()};const i=history.replaceState;return history.replaceState=function(...e){i.apply(this,e),s()},e(he()),()=>{window.removeEventListener("popstate",s)}}});
|
|
9
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Ziko={})}(this,function(e){"use strict";const{PI:t,E:s}=Math,n=Number.EPSILON,i=e=>"object"!=typeof e&&"function"!=typeof e||null===e,r=(e,...t)=>{const s=t.map(t=>i(t)||t?.__mapfun__?e(t):t instanceof Array?t.map(t=>r(e,t)):ArrayBuffer.isView(t)?t.map(t=>e(t)):t instanceof Set?new Set(r(e,...t)):t instanceof Map?new Map([...t].map(t=>[t[0],r(e,t[1])])):t.isMatrix?.()?new t.constructor(t.rows,t.cols,r(t.arr.flat(1))):t instanceof Object?Object.fromEntries(Object.entries(t).map(t=>[t[0],r(e,t[1])])):void 0);return 1==s.length?s[0]:s},a=(e,t)=>e.isComplex?.()?new e.constructor(t(e.a),t(e.b)):e.isMatrix?.()?new e.constructor(e.rows,e.cols,e.arr.flat(1).map(t)):e instanceof Array?r(t,...e):t(e),o=(e,t,s)=>a(e,e=>t!==s?(e-t)/(s-t):0),c=(e,t,s)=>a(e,e=>(s-t)*e+t),l=(e,t,s=!0)=>{if(e instanceof Array&&!(t instanceof Array))return r(e=>l(e,t,s),...e);if(t instanceof Array&&!(e instanceof Array))return r(t=>l(e,t,s),...t);if(e instanceof Array&&t instanceof Array)return e.map((e,n)=>l(e,t[n],s));const n=Math.atan2(e,t);return s?n:180*n/Math.PI};class h{constructor(e){this.cache={node:e}}isUINode(){return!0}get node(){return this.cache.node}}class u extends Array{constructor(...e){super(...e)}clear(){return this.length=0,this}getItemById(e){return this.find(t=>t.element.id===e)}getItemsByTagName(e){return this.filter(t=>t.element.tagName.toLowerCase()===e.toLowerCase())}getElementsByClassName(e){return this.filter(t=>t.element.classList?.contains(e))}querySelector(e){const t=globalThis?.document?.querySelector(e);return t&&this.find(e=>e.element===t)||null}querySelectorAll(e){const t=globalThis?.document?.querySelectorAll(e);return Array.from(t).map(e=>this.find(t=>t.element===e)).filter(Boolean)}}const p=new u,m={default:{target:null,autoMount:!1},setDefault:function(e){const t=Object.keys(e),s=Object.values(e);for(let e=0;e<t.length;e++)this.default[t[e]]=s[e]},init:()=>{},renderingMode:"spa",isSSC:!1},d={store:new Map,index:0,register:function(e){this.store.set(this.index++,e)},reset(){this.index=0,this.store.clear()}},f={ui_index:0,get_ui_index:function(){return this.ui_index++},register_ui:function(e){}};var g={store:new Map,index:0,session_storage:null,register:function(e){},update:function(e,t){}};var y;globalThis?.__Ziko__||(globalThis.__Ziko__={__UI__:p,__HYDRATION__:d,__State__:g,__Config__:m,__CACHE__:f,__PROVIDERS__:{}},y=__Ziko__,Object.defineProperties(y,{QueryParams:{get:function(){return function(e){const t={};return e.replace(/[A-Z0-9]+?=([\w|:|\/\.]*)/gi,e=>{const[s,n]=e.split("=");t[s]=n}),t}(globalThis.location.search.substring(1))},configurable:!1,enumerable:!0},HashParams:{get:function(){return globalThis.location.hash.substring(1).split("#")},configurable:!1,enumerable:!0}}));let b=class extends h{constructor(){super()}init({element:e,name:t,type:s,autoMount:n,props:i={},items:r=[]}={}){if(this.target=globalThis.__Ziko__.__Config__.default.target||globalThis?.document?.body,"string"==typeof e)switch(s){case"html":e=globalThis?.document?.createElement(e);break;case"svg":e=globalThis?.document?.createElementNS("http://www.w3.org/2000/svg",e);break;default:throw Error("Not supported")}else this.target=e?.parentElement;Object.assign(this.cache,{name:t,itemsTarget:this,isInteractive:!1,parent:null}),e&&Object.assign(this.cache,{element:e}),this.items=new u,globalThis.__Ziko__.__UI__[this.cache.name]?globalThis.__Ziko__.__UI__[this.cache.name]?.push(this):globalThis.__Ziko__.__UI__[this.cache.name]=[this],e&&n&&this?.mount?.(),globalThis.__Ziko__.__UI__.push(this);const a=((e={})=>{const t={methods:{},events:{},style:{},attrs:{}};for(const[s,n]of Object.entries(e))"style"===s?t.style=n:s.startsWith("$")?t.methods[s.slice(1)]=n:/^on[A-Z]/.test(s)?t.events[s]=n:t.attrs[s]=n;return t})(i);this.parsed_props=a,this.style(a.style),this.setAttr(a.attrs);Object.entries(a.events).forEach(([e,t])=>this[e](t.bind(this))),r.length>0&&this.append(...r)}get element(){return this.cache.element}[Symbol.iterator](){return this.items[Symbol.iterator]()}maintain(){for(let e=0;e<this.items.length;e++)Object.defineProperty(this,e,{value:this.items[e],writable:!0,configurable:!0,enumerable:!1})}isInteractive(){return this.cache.isInteractive}isUIElement(){return!0}};function _(e,...t){t.forEach(t=>function(e,t){const s=Object.getOwnPropertyDescriptors(t);for(const t of Reflect.ownKeys(s)){const n=s[t];"get"in n||"set"in n||"function"!=typeof n.value?Object.defineProperty(Object.getPrototypeOf(e),t,n):"function"==typeof n.value&&(Object.getPrototypeOf(e).hasOwnProperty(t)||Object.defineProperty(Object.getPrototypeOf(e),t,n))}}(e,t))}const v=Symbol.for("ziko/hooks/STATE_GETTER");function w(e){const t={value:e,subscribers:new Set,paused:!1};function s(){return{value:t.value,_subscribe:e=>(t.subscribers.add(e),()=>t.subscribers.delete(e))}}s[v]=!0;return[s,function(e){t.paused||("function"==typeof e&&(e=e(t.value)),Object.is(e,t.value)||(t.value=e,t.subscribers.forEach(e=>e(t.value))))},{pause:()=>{t.paused=!0},resume:()=>{t.paused=!1},clear:()=>{t.subscribers.clear()},force:e=>{"function"==typeof e&&(e=e(t.value)),t.value=e,t.subscribers.forEach(e=>e(t.value))},getSubscribers:()=>new Set(t.subscribers)}]}const k=e=>"function"==typeof e&&!0===e[v],x=(e="")=>e.replace(/[A-Z]/g,(e,t)=>t?`-${e.toLowerCase()}`:e.toLowerCase()),E=(e="")=>{if(0===e.length)return!1;return/^[a-z][a-zA-Z0-9]*$/.test(e)};function T(e,t){if(globalThis.SVGAElement&&this.element instanceof globalThis.SVGAElement&&(e=E(e)?x(e):e),k(t)){t()._subscribe(t=>this.element?.setAttribute(e,t),this)}else this.element?.setAttribute(e,t)}var C=Object.freeze({__proto__:null,_set_attrs_:T,getAttr:function(e){return this.element.attributes[e].value},removeAttr:function(...e){for(let t=0;t<e.length;t++)this.element?.removeAttribute(e[t]);return this},setAttr:function(e,t){if(e instanceof Object){const[s,n]=[Object.keys(e),Object.values(e)];for(let e=0;e<s.length;e++)n[e]instanceof Array&&(t[e]=n[e].join(" ")),T.call(this,s[e],n[e])}else t instanceof Array&&(t=t.join(" ")),T.call(this,e,t);return this},setContentEditable:function(e=!0){return this.setAttr("contenteditable",e),this}});class A extends h{constructor(...e){super("span","text",!1,...e),this.element=globalThis?.document?.createTextNode(...e)}isText(){return!0}}const I=(...e)=>new A(...e);class S{constructor(e,t){this.cache={category:t,target:e,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(e,t,{preventDefault:s=!1,paused:n=!1}={}){return this.cache.listeners[e]={callback:s=>{this.cache.event=s,this.cache.listeners[e].preventDefault&&s.preventDefault(),this.cache.listeners[e].paused||(this.cache.currentEvent=e,t.call(this,this))},preventDefault:s,paused:n},this.element.addEventListener(e,this.cache.listeners[e].callback),this}removeListener(e){return this.element.removeEventListener(e,this.cache.listeners[e].callback),this}pause(e){return this.cache.listeners[e].paused=!0,this}resume(e){return this.cache.listeners[e].paused=!1,this}preventDefault(e){return this.cache.listeners[e].preventDefault=!0,this}useDefault(e){return this.cache.listeners[e].preventDefault=!1,this}}class L extends Event{constructor(e,t){super("clickaway",{bubbles:!0,cancelable:!0}),this.originalEvent=e,this.targetElement=t}}function O(e){function t(t){if(!e.contains(t.target)){const s=new L(t,e);e.dispatchEvent(s)}}return globalThis?.document?.addEventListener("click",t),()=>globalThis?.document?.removeEventListener("click",t)}const j=(e,t=!1)=>{const s=e.element.getBoundingClientRect(),n=e.event;let i=n?.clientX-s.left|0,r=n?.clientY-s.top|0;if(t){const t=e.element.clientWidth,s=e.element.clientHeight;i=+(i/t*2-1).toFixed(8),r=+(r/s*-2+1).toFixed(8)}return{x:i,y:r}},M="click",P={onClick(e){return this.on("click",e,{category:M})},onDblClick(e){return this.on("dblclick",e,{category:M})},onClickAway(e){var t,s,n;return t=this,s=M,n="clickaway",t.exp.events?.[s]?.cache?.customEvents?.has(n)||O(this.element),this.on("clickaway",e,{category:M,isCustom:!0})}},D="ptr",W={onPtrDown(e,t=!1){return this.on("pointerdown",e,{category:D,details_setter:e=>{const{x:s,y:n}=j(e,t);e.dx=s,e.dy=n,e.isDown=!0,e.isDragging=e.isMoving??!1}})},onPtrMove(e,t=!1){return this.on("pointermove",e,{category:D,details_setter:e=>{const{x:s,y:n}=j(e,t);e.mx=s,e.my=n,e.isMoving=!0,e.isDragging=e.isDown??!1}})},onPtrUp(e,t=!1){return this.on("pointerup",e,{category:D,details_setter:e=>{const{x:s,y:n}=j(e,t);e.ux=s,e.uy=n,e.isDown=!1,e.isMoving=!1,e.isDragging=!1}})}},U="key",Z={onKeyDown(e){return this.on("keydown",e,{category:U,details_setter:e=>{e.kd=e.event.key}})},onKeyPress(e){return this.on("keypress",e,{category:U,details_setter:e=>{e.kp=e.event.key}})},onKeyUp(e){return this.on("keydown",e,{category:U,details_setter:e=>{e.ku=e.event.key}})}};class N{constructor(e,t,s=1/0,n){this.ms=t,this.fn=e,this.count=s,this.frame=1,this.id=null,this.running=!1,n&&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 R extends N{constructor(e=1e3/60){super(e,()=>this._tick()),this.elapsed=0,this._lastTime=performance.now(),this._callbacks=new Set}_tick(){const e=performance.now(),t=e-this._lastTime;this.elapsed+=t,this._lastTime=e;for(const e of this._callbacks)e({elapsed:this.elapsed,delta:t})}onTick(e){return this._callbacks.add(e),()=>this._callbacks.delete(e)}reset(){this.elapsed=0,this._lastTime=performance.now()}pause(){super.stop()}resume(){this._lastTime=performance.now(),super.start()}}class ${constructor(e=[],{repeat:t=1,loop:s=!1}={}){this.tasks=e,this.repeat=t,this.loop=s,this.stopped=!1,this.running=!1,this.onStart=null,this.onTask=null,this.onEnd=null}async run(){if(this.running)return;this.running=!0,this.stopped=!1,this.onStart&&this.onStart();let e=this.repeat;do{for(const e of this.tasks){if(this.stopped)return;if(Array.isArray(e))await Promise.all(e.map(({fn:e,delay:t=0})=>new Promise(async s=>{t>0&&await new Promise(e=>setTimeout(e,t)),this.onTask&&this.onTask(e),await e(),s()})));else{const{fn:t,delay:s=0}=e;s>0&&await new Promise(e=>setTimeout(e,s)),this.onTask&&this.onTask(t),await t()}}}while(this.loop&&!this.stopped&&(e===1/0||e-- >1));!this.stopped&&this.onEnd&&this.onEnd(),this.running=!1}stop(){this.stopped=!0,this.running=!1}addTask(e){this.tasks.push(e)}clearTasks(){this.tasks=[]}}const F=(e,t)=>{let s=0;return(...n)=>{const i=(new Date).getTime();i-s<t||(s=i,e(...n))}};class B extends CustomEvent{constructor(e,t,{bubbles:s=!0,cancelable:n=!0}={}){super(e,{detail:t,bubbles:s,cancelable:n})}}function z(e,{intersection:t=!0,resize:s=!0,threshold:n=0,throttleResize:i=100,throttleEnterExit:r=0}={}){let a,o;const c=t=>{for(let s of t){const{width:t,height:n}=s.contentRect;e.dispatchEvent(new B("resizeview",{width:t,height:n,entry:s}))}},l=i>0?F(c,i):c,h=t=>{for(let s of t){const t=s.isIntersecting?"enterview":"exitview";e.dispatchEvent(new B(t,s))}},u=r>0?F(h,r):h;return t&&(a=new IntersectionObserver(u,{threshold:n}),a.observe(e)),s&&(o=new ResizeObserver(l),o.observe(e)),()=>{a&&(a.unobserve(e),a.disconnect()),o&&(o.unobserve(e),o.disconnect())}}const G="view",V={onEnterView(e){return this.exp.events?.[G]||z(this.element),this.on("enterview",e,{category:G,isCustom:!0})},onExitView(e){return this.exp.events?.[G]||z(this.element),this.on("exitview",e,{category:G,isCustom:!0})},onResizeView(e){return this.exp.events?.[G]||z(this.element),this.on("resizeview",e,{category:G,isCustom:!0})}};class H extends CustomEvent{constructor(e,t){super(e,{detail:t,bubbles:!0,cancelable:!0})}}class Y extends b{constructor({element:e,name:t="",type:s="html",autoMount:n=__Ziko__.__Config__.default.autoMount,props:i}={}){super(),this.exp={events:{}},_(this,C,W,P,Z,V),e&&this.init({element:e,name:t,type:s,autoMount:n,props:i})}on(e,t,{details_setter:s,category:n="global",isCustom:i=!1,preventDefault:r=!1}={}){e instanceof Array&&e.forEach(e=>this.on(e,t,{details_setter:s,category:n,isCustom:i,preventDefault:r})),n&&!this.exp.events.hasOwnProperty(n)&&(this.exp.events[n]=new S(this,n)),i&&this.exp.events[n].cache.customEvents.add(e);const a=this.exp.events[n];return a.addListener(e,e=>{s&&s(a),t(e)},{preventDefault:r}),this}off(e,t="global"){return this.exp.events[t].removeListener(e),this}get element(){return this.cache.element}get itemsTarget(){return this.cache.itemsTarget}get itemsTargetElement(){return this.itemsTarget.element}setItemsTarget(e){return this.cache.itemsTarget=e,this.items=e.items,this}isInteractive(){return this.cache.isInteractive}useClient(e){return this.cache.isInteractive||(this.element.setAttribute("data-hydration-index",globalThis.__Ziko__.__HYDRATION__.index),globalThis.__Ziko__.__HYDRATION__.register(()=>this.constructor),this.cache.isInteractive=!0),e&&this.element.setAttribute("data-hydration-directive",e),this}get attr(){return this.cache.attributes}get evt(){return this.events}get html(){return this.element.innerHTML}get text(){return this.element.textContent}get parent(){return this.cache.parent}get rect(){return this.element.getBoundingClientRect()}mount(e=this.target,t=0){return this.isBody||(e?.isUIElement&&(e=e.element),this.target=e,this.target?.appendChild(this.element)),this}unmount(){return this.cache.parent?this.cache.parent.remove(this):this.target?.children?.length&&[...this.target.children].includes(this.element)&&this.target.removeChild(this.element),this}at(e){return this.items.at(e)}forEach(e){return this.items.forEach(e),this}map(e){return this.items.map(e)}find(e){return this.items.filter(e)}style(e){if(!this.element?.style)return this;for(let t in e){const s=e[t];if(k(s)){const e=s();Object.assign(this.element.style,{[t]:e.value}),e._subscribe(e=>{Object.assign(this.element.style,{[t]:e})})}else Object.assign(this.element.style,{[t]:s})}return this}size(e,t){return this.style({width:e,height:t})}hide(){}show(){}append(...e){return this.#e("append","push",...e),this}prepend(...e){return this.this.#e("prepend","unshift",...e),this}insertAt(e,...t){const s=this.itemsTarget;if(e>=s.items.length)return this.append(...t);for(let n=0;n<t.length;n++)["number","string"].includes(typeof t[n])&&(t[n]=I(t[n])),s.element?.insertBefore(t[n].element,s.items[e].element),s.items.splice(e,0,t[n]);return s.maintain(),this}remove(...e){const t=e=>{"number"==typeof e&&(e=this.items[e]),e?.isUIElement&&this.itemsTarget.element?.removeChild(e.element),this.items=this.items.filter(t=>t!==e)};for(let s=0;s<e.length;s++)t(e[s]);for(let e=0;e<this.items.length;e++)Object.assign(this,{[[e]]:this.items[e]});return this}async#t(e,t,s,n=null,i=null){const{element:r,items:a}=this.itemsTarget;if(["number","string"].includes(typeof s)&&(s=I(s)),"function"==typeof s&&k(s)){const e=s();let t=q(e.value);s=t,e._subscribe(e=>{const s=q(e);if(s===t)return;const n=a.indexOf(t);if(-1!==n)t.element.replaceWith(s.element),a[n]=s;else{if(!t.element.parentNode)return;t.element.replaceWith(s.element)}s.cache.parent=this,s.target=r,t=s})}if("function"==typeof globalThis?.Node&&s instanceof globalThis.Node&&(s=new Y({element:s})),s instanceof Promise&&(s=await s),s?.isUINode)return s.cache.parent=this,s.target=r,"insertBefore"===e&&r?r.insertBefore(s.element,n):"function"==typeof r?.[e]&&r[e](s.element),void("splice"===t&&null!==i?a.splice(i,0,s):"function"==typeof a?.[t]&&a[t](s))}async#e(e,t,...s){for(const n of s)await this.#t(e,t,n);return this.maintain(),this}}const q=e=>e?.isUINode?e:"function"==typeof globalThis.Node&&e instanceof globalThis.Node?new Y({element:e}):I(e??""),K=["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"],X=["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"],Q=["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"],J=e=>(...t)=>{const s=t[0];return s?.isUIElement?.()||i(s)?new e({},...t):new e(s,...t.slice(1))},ee=new Proxy({},{get(e,t){if("string"!=typeof t)return;let s,n=t.replaceAll("_","-").toLowerCase();return K.includes(n)&&(s="html"),X.includes(n)&&(s="svg"),Q.includes(n)&&(s="mathml"),(...e)=>{const t=new Y({element:n,name:n,type:s}),i=e[0];return 0===e.length?t:["string","number"].includes(typeof i)||i instanceof Y||k(i)||i instanceof HTMLElement?t.append(...e):new Y({element:n,type:s,props:e.shift()}).append(...e)}}});class te{constructor(e=10){this.events={},this.maxListeners=e}on(e,t){return this.events[e]||(this.events[e]=[]),this.events[e].push(t),this.events[e].length>this.maxListeners&&console.warn(`Warning: Possible memory leak. Event '${e}' has more than ${this.maxListeners} listeners.`),this}once(e,t){const s=(...n)=>{this.off(e,s),t(...n)};return this.on(e,s)}off(e,t){const s=this.events[e];if(!s)return this;const n=s.indexOf(t);return-1!==n&&s.splice(n,1),this}emit(e,t){const s=this.events[e];return!!s&&([...s].forEach(s=>{try{s(t)}catch(t){console.error(`Error in listener for '${e}':`,t)}}),!0)}remove(e){return delete this.events[e],this}clear(){return this.events={},this}setMaxListeners(e){return this.maxListeners=e,this}}function se(e,t="./src/pages",s=["js","ts","jsx","tsx"]){let n=t.endsWith("/")?t.slice(0,-1):t;const i=e.replace(/\\/g,"/");let r=i;n&&i.includes(n)&&(r=i.split(n).pop());const a=r.split("/").filter(Boolean).filter(e=>!/^\([^)]+\)$/.test(e));if(0===a.length)return"/";const o=a[a.length-1],c=new RegExp(`\\.(${s.join("|")})$`),l=s.some(e=>o===`index.${e}`),h=o.replace(c,"");if(a.pop(),!l){const e=h.split(/\.(?![^\[]*\])/);a.push(...e)}return"/"+a.join("/")}function ne(e,t){const s=e.split("/").filter(Boolean),n=t.split("/").filter(Boolean);let i=0,r=0;for(;i<s.length&&r<n.length;){const e=s[i];if(e.startsWith("[[...")&&e.endsWith("]]")){if(0===s.length-i-1)return!0;let e=0;for(let t=i+1;t<s.length;t++)s[t].endsWith("]+")||e++;const t=n.length-r-e;if(t<0)return!1;r+=t,i++;continue}if(e.startsWith("[...")&&e.endsWith("]")){if(0===s.length-i-1)return!0;let e=0;for(let t=i+1;t<s.length;t++)s[t].endsWith("]+")||e++;const t=n.length-r;if(t<e)return!1;const a=t-e;if(a<1)return!1;r+=a,i++;continue}if(e.startsWith("[")&&e.endsWith("]+"))n[r]&&r++,i++;else if(e.startsWith("[")&&e.endsWith("]"))i++,r++;else{if(e!==n[r])return!1;i++,r++}}for(;i<s.length;){const e=s[i];if(e.startsWith("[[...")&&e.endsWith("]]"))i++;else{if(!e.endsWith("]+"))return!1;i++}}return i===s.length&&r===n.length}function ie(e){return/(:\w+|\[\[\.\.\.\w+\]\]|\[\.\.\.\w+\]|\[\w+\]\+?)/.test(e)}function re(e){return[...e].sort((e,t)=>{const s=e.includes("[[..."),n=t.includes("[[..."),i=e.includes("[...")&&!s,r=t.includes("[...")&&!n,a=ie(e),o=ie(t);return s&&!n?1:!s&&n?-1:i&&!r?1:!i&&r||!a&&o?-1:a&&!o?1:t.length-e.length})}const{meta:ae,link:oe,script:ce}=ee;class le{constructor({title:e,icon:t,description:s,lang:n,links:i=[],script:r=[],meta:a=[]}={},...o){this.options={title:e,icon:t,description:s,lang:n,links:i,meta:a,script:r},this.ui=o,this.render()}render(){if("undefined"==typeof document)return{...this.options,body:this.ui};const{title:e,icon:t,description:s,lang:n,links:i,meta:r,script:a}=this.options;e&&(document.title=e),n&&(document.documentElement.lang=n),t&&document.head.appendChild(oe({rel:"icon",href:t})),s&&document.head.appendChild(ae({name:"description",content:s}));for(const e of i)document.head.appendChild(oe(e));for(const e of r)document.head.appendChild(ae(e));for(const e of a)document.head.appendChild(ce(e))}mount(e){return this.ui.forEach(t=>t.mount(e)),this}}const he=async(e,t,s,n)=>{if(!t)return;let i=await t(s);if(n&&(i=n(i)),i instanceof le)return i.ui.forEach(t=>t.mount(e));i instanceof Array?i.forEach(t=>t.mount(e)):i.mount(e)};const ue=e=>Object.fromEntries(new URLSearchParams(globalThis?.location?.search));class pe extends Y{constructor(e,t){super({element:"div",name:"suspense"}),this.setAttr({dataTemp:"suspense"}),this.fallback_ui=e,this.append(e),(async()=>{try{const s=await t();e.unmount(),this.append(s)}catch(e){console.log({error:e})}})()}}class me extends Y{#s=new WeakMap;constructor({activeIndex:e=0}={},...t){super({element:"div"}),this.style({display:"contents"}),this.states={activeIndex:e},this.append(...t),requestAnimationFrame(()=>{this.render()})}get activeItem(){return this.items[this.states.activeIndex]}render(){this.items.forEach((e,t)=>{const s=getComputedStyle(e.element).display;this.#s.set(e,s),t!==this.states.activeIndex&&e.style({display:"none"})})}get DS(){return this.#s}next(e=1){return this.activate(this.states.activeIndex+e)}previous(e=1){return this.activate(this.states.activeIndex-e)}activate(e){if(!this.items.length)return this;const t=this.items.at(this.states.activeIndex);t&&t.style({display:"none"});const s=this.items.length;this.states.activeIndex=(e%s+s)%s;const n=this.items.at(this.states.activeIndex);if(n){const e=this.#s.get(n)||"block";n.style({display:"none"===e?"block":e})}return this}}const de=J(me);class fe extends Y{constructor(...e){super({element:document.createDocumentFragment()}),this.append(...e)}isFragment(){return!0}}class ge extends fe{constructor({each:e,fallback:t,mapFn:s=()=>{}}={}){super(),this.config={each:e,fallback:t,mapFn:s},this.append(...this.config.each.map((e,t)=>this.config.mapFn(e,t)))}}class ye extends Y{constructor(e,t){super(),this.key=e,this.cases=t,this.init()}init(){Object.values(this.cases).filter(e=>e!=this.current).forEach(e=>e.unmount()),super.init(this.current.element)}get current(){const e=Object.keys(this.cases).find(e=>e==this.key)??"default";return this.cases[e]}updateKey(e){return this.key=e,this.replaceElementWith(this.current.element),this}}class be extends Y{constructor(e){super({element:"div",name:"html_wrappper"}),this.element.append(function(e){if(globalThis?.DOMParser){const t=(new DOMParser).parseFromString(`<div>${e}</div>`,"text/html");return t.body.firstChild.style.display="contents",t.body.firstChild}}(e)),this.style({display:"contents"})}}class _e extends Y{constructor(e){super({element:"div",name:"html_wrappper"}),this.element.append(function(e){if("undefined"!=typeof DOMParser){const t=(new DOMParser).parseFromString(e.trim(),"image/svg+xml").documentElement;if("parsererror"===t.nodeName)throw new Error("Invalid SVG string");if(t.hasAttribute("xmlns"))return t;const{children:s,attributes:n}=t,i=document.createElementNS("http://www.w3.org/2000/svg","svg");for(let{name:e,value:t}of n)i.setAttribute(e,t);return i.append(...s),i}throw new Error("DOMParser is not available in this environment")}(e)),this.style({display:"contents"})}}globalThis?.document&&document?.addEventListener("DOMContentLoaded",__Ziko__.__Config__.init()),e.ClickAwayEvent=L,e.ClickListeners=P,e.Clock=R,e.E=s,e.EPSILON=n,e.EventController=S,e.For=({each:e,fallback:t,mapFn:s}={})=>new ge({each:e,fallback:t,mapFn:s}),e.Fragment=(...e)=>new fe(...e),e.HTMLWrapper=e=>new be(e),e.KeyListeners=Z,e.PI=t,e.PtrListeners=W,e.SVGWrapper=e=>new _e(e),e.Scheduler=(e,{repeat:t=null}={})=>new $(e,{repeat:t}),e.Suspense=(e,t)=>new pe(e,t),e.Swap=de,e.SwipeEvent=H,e.Switch=({key:e,cases:t})=>new ye(e,t),e.Tick=N,e.TimeScheduler=$,e.UIElement=Y,e.UIFragment=fe,e.UIHTMLWrapper=be,e.UISVGWrapper=_e,e.UISuspense=pe,e.UISwap=me,e.UISwitch=ye,e.UIView=class extends Y{constructor(...e){super({element:"div",name:"view"}),this.append(...e)}},e.View=(...e)=>J(Y),e.ViewEvent=B,e.ViewListeners=V,e.apply_fun=a,e.atan2=l,e.camel2constantcase=(e="")=>e.replace(/[A-Z]/g,(e,t)=>t?`_${e}`:e).toUpperCase(),e.camel2hyphencase=x,e.camel2pascalcase=(e="")=>e.charAt(0).toUpperCase()+e.slice(1),e.camel2snakecase=(e="")=>e.replace(/[A-Z]/g,(e,t)=>t?`_${e.toLowerCase()}`:e.toLowerCase()),e.clamp=(e,t,s)=>a(e,e=>Math.min(Math.max(e,t),s)),e.clock=e=>new R(e),e.constant2camelcase=(e="")=>e.toLowerCase().replace(/_([a-z])/g,(e,t)=>t.toUpperCase()),e.constant2hyphencase=(e="")=>e.toLowerCase().replace(/_/g,"-"),e.constant2pascalcase=(e="")=>e.toLowerCase().split("_").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(""),e.constant2snakecase=(e="")=>e.toLowerCase(),e.createFileBasedRouter=async function({pages:e={},url:t=("undefined"!=typeof location?location.pathname:"/"),target:s=("undefined"!=typeof document?document.body:null),extensions:n=["js","ts"],base:i="/",lazy:r=!0,renderer:a=he,wrapper:o,namedExportHandler:c={Get:async(e,t)=>{if("function"==typeof e)return await e(t)}}}={}){let l=s;s&&"object"==typeof s&&"element"in s&&(l=s.element);let h="."===i?"":i.replace(/\/$/,"");h&&!h.startsWith("/")&&(h="/"+h);let u=decodeURIComponent(t.replace(/\/$/,""))||"/";h&&u.startsWith(h)&&(u=u.slice(h.length)||"/");let p=u.startsWith("/")?u:"/"+u;const m=Object.keys(e),d=function(e){if(0===e.length)return"";const t=e.map(e=>{const t=e.split("/");return t.pop(),t}),s=Math.min(...t.map(e=>e.length));let n=[];for(let e=0;e<s;e++){const s=t[0][e];if(!t.every(t=>t[e]===s||t[e].startsWith("[")))break;n.push(s)}return n.join("/")+(n.length?"/":"")}(m);let f=null,g=null,y=null,b=null,_={};if(r){const t={};for(const e of m){t[se(e,d,n)]=e}const s=re(Object.keys(t));for(const e of s)if(ne(e,p)){f=e;break}if(null===f)return{mask:null,component:null,params:{},matched:!1};b=t[f];try{y=await e[b]();const{default:t,...s}=y;g=t,_=s}catch(e){return console.error(`[Router] Failed to load module for route: ${b}`,e),{mask:null,component:null,params:{},matched:!1,error:e}}}else{const t={},s={};for(const i of m){const r=await e[i](),{default:a}=r,o=se(i,d,n);t[o]=a,s[o]={module:r,rawRoute:i}}const i=re(Object.keys(t));for(const e of i)if(ne(e,p)){f=e,g=t[e];break}if(null===f)return{mask:null,component:null,params:{},matched:!1};if(f in s){y=s[f].module,b=s[f].rawRoute;const{default:e,...t}=y;_=t}}const v=ie(f)?function(e,t){const s=e.split("/").filter(Boolean),n=t.split("/").filter(Boolean),i={};let r=0,a=0;for(;r<s.length&&a<n.length;){const e=s[r];if(e.startsWith("[[...")&&e.endsWith("]]")){const t=e.slice(5,-2);if(0==s.length-r-1){i[t]=n.slice(a).join("/");break}let o=0;for(let e=r+1;e<s.length;e++)s[e].endsWith("]+")||o++;const c=n.length-a-o;if(!(c>=0))return{};i[t]=n.slice(a,a+c).join("/"),a+=c,r++;continue}if(e.startsWith("[...")&&e.endsWith("]")){const t=e.slice(4,-1);if(0==s.length-r-1){i[t]=n.slice(a).join("/");break}let o=0;for(let e=r+1;e<s.length;e++)s[e].endsWith("]+")||o++;const c=n.length-a-o;if(!(c>=1))return{};i[t]=n.slice(a,a+c).join("/"),a+=c,r++;continue}if(e.startsWith("[")&&e.endsWith("]+")){const t=e.slice(1,-2);n[a]&&(i[t]=n[a],a++),r++;continue}if(e.startsWith("[")&&e.endsWith("]"))i[e.slice(1,-1)]=n[a];else if(e!==n[a])return{};r++,a++}for(;r<s.length;){const e=s[r];if(e.startsWith("[[...")&&e.endsWith("]]")){const t=e.slice(5,-2);t in i||(i[t]="")}r++}return i}(f,p):{};for(const e in c)e in _&&"function"==typeof c[e]&&await c[e](_[e],{route:b,mask:f,module:y,currentPath:p,params:v});return l&&"function"==typeof a&&await a(l,g,v,o),{mask:f,component:g,params:v,namedExports:_,matched:!0}},e.debounce=(e,t=1e3)=>(...s)=>setTimeout(()=>e(...s),t),e.deg2rad=(...e)=>r(e=>e*Math.PI/180,...e),e.hyphen2camelcase=(e="")=>e.replace(/-([a-zA-Z])/g,(e,t)=>t.toUpperCase()),e.hyphen2constantcase=(e="")=>e.replace(/-/g,"_").toUpperCase(),e.hyphen2pascalcase=(e="")=>e.split("-").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(""),e.hyphen2snakecase=(e="")=>e.replace(/-/g,"_"),e.hypot=(...e)=>{const t=e.find(e=>e.isComplex?.());if(t){const s=e.map(e=>e.isComplex?.()?e:new t.constructor(e,0));return Math.hypot(...s.map(e=>e.z))}return Math.hypot(...e)},e.isStateGetter=k,e.is_anagram=(e,t)=>(e=e.split("").sort(),t=t.split("").sort(),JSON.stringify(e)===JSON.stringify(t)),e.is_camelcase=E,e.is_hyphencase=(e="")=>e.split("-").length>0,e.is_isogram=(e="")=>[...new Set(e.toLowerCase())].length===e.length,e.is_palindrome=e=>{const t=e.toLocaleLowerCase();let s,n=t.length;for(s=0;s<n/2;s++)if(t[s]!=t[n-s-1])return!1;return!0},e.is_pascalcalse=(e="")=>{if(0===e.length)return!1;return/^[A-Z][a-zA-Z0-9]*$/.test(e)},e.is_snakeCase=(e="")=>e.split("_").length>0,e.lerp=c,e.map=(e,t,s,n,i)=>a(e,e=>c(o(e,t,s),n,i)),e.mapfun=r,e.norm=o,e.pascal2camelcase=(e="")=>e.charAt(0).toLowerCase()+e.slice(1),e.pascal2constantcase=(e="")=>e.replace(/[A-Z]/g,(e,t)=>0===t?e:`_${e}`).toUpperCase(),e.pascal2hyphencase=(e="")=>e.replace(/[A-Z]/g,(e,t)=>0===t?e.toLowerCase():`-${e.toLowerCase()}`),e.pascal2snakecase=(e="")=>e.replace(/[A-Z]/g,(e,t)=>0===t?e.toLowerCase():`_${e.toLowerCase()}`),e.rad2deg=(...e)=>r(e=>e/Math.PI*180,...e),e.register_click_away_event=O,e.register_swipe_event=function(e,t=5,s=100,n=500){let i=0,r=0,a=0,o=!1;function c(e){i=e.clientX,r=e.clientY,a=performance.now(),o=!0}function l(c){if(!o)return;o=!1;const l=c.clientX-i,h=c.clientY-r;let u=null,p=null;performance.now()-a<=n&&(Math.abs(l)>=t&&Math.abs(h)<=s?(u=l<0?"left":"right",p="swipe"+u):Math.abs(h)>=t&&Math.abs(l)<=s&&(u=h<0?"up":"down",p="swipe"+u)),p&&e.dispatchEvent(new H(p,{direction:u,distX:l,distY:h,originalEvent:c}))}return e.addEventListener("pointerdown",c,{passive:!0}),e.addEventListener("pointerup",l,{passive:!0}),()=>{e.removeEventListener("pointerdown",c),e.removeEventListener("pointerup",l)}},e.register_view_event=z,e.sleep=e=>new Promise(t=>setTimeout(t,e)),e.snake2camelcase=(e="")=>e.replace(/_([a-zA-Z])/g,(e,t)=>t.toUpperCase()),e.snake2constantcase=(e="")=>e.toUpperCase(),e.snake2hyphencase=(e="")=>e.replace(/_/g,"-"),e.snake2pascalcase=(e="")=>e.split("_").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(""),e.tags=ee,e.throttle=F,e.tick=(e,t,s=1/0,n=!0)=>new N(e,t,s,n),e.timeout=function(e,t){let s;const n=new Promise(n=>{s=setTimeout(()=>{t&&t(),n()},e)});return{id:s,clear:()=>clearTimeout(s),promise:n}},e.useDerived=function(e,t){const s=()=>e(...t.map(e=>e().value));let n=s();const i=new Set,r=()=>{const e=s();Object.is(e,n)||(n=e,i.forEach(e=>e(n)))};t.map(e=>e()._subscribe(r));const a=()=>({value:n,_subscribe:e=>(i.add(e),()=>i.delete(e))});return a[v]=!0,a},e.useEffect=(e,t=[])=>{const s=t.filter(k);let n;const i=()=>{"function"==typeof n&&n(),n=e(s.map(e=>e().value))},r=s.map(e=>e()._subscribe(i));return i(),()=>{r.forEach(e=>e()),"function"==typeof n&&(n(),n=void 0)}},e.useEventEmitter=e=>new te(e),e.useQueryParams=function(){const e=()=>ue();return[e,(t,s=!0)=>{const n=e(),i="function"==typeof t?t(n):t,r=s?{...n,...i}:i,a=new URLSearchParams(r).toString();window.history.pushState({},"",`${window.location.pathname}${a?`?${a}`:""}`),window.dispatchEvent(new CustomEvent("queryparamschange",{detail:r}))}]},e.useReactive=e=>r(e=>{const t=w(e);return{get:t[0],set:t[1]}},e),e.useState=w,e.watchQueryParams=function(e){let t=location.search;const s=()=>{const s=location.search;s!==t&&(t=s,e(ue()))};window.addEventListener("popstate",s);const n=history.pushState;history.pushState=function(...e){n.apply(this,e),s()};const i=history.replaceState;return history.replaceState=function(...e){i.apply(this,e),s()},e(ue()),()=>{window.removeEventListener("popstate",s)}}});
|
|
10
10
|
//# sourceMappingURL=ziko.min.js.map
|