ziko 0.44.0 → 0.45.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 +58 -51
- package/dist/ziko.js +626 -712
- package/dist/ziko.min.js +2 -2
- package/dist/ziko.mjs +617 -692
- package/package.json +1 -1
- package/src/__helpers__/register/index.js +3 -1
- package/src/__helpers__/register/register-to-instance.js +17 -5
- package/src/app/spa.js +3 -3
- package/src/app/ziko-app.js +1 -1
- package/src/events/__Events__.js +2 -1
- package/src/events/binders/click.js +20 -0
- package/src/events/binders/clipboard.js +16 -0
- package/src/events/{custom-event.js → binders/custom-event.js} +1 -1
- package/src/events/binders/drag.js +16 -0
- package/src/events/binders/focus.js +16 -0
- package/src/events/{hash.js → binders/hash.js} +2 -2
- package/src/events/binders/index.js +16 -0
- package/src/events/{key.js → binders/key.js} +4 -4
- package/src/events/binders/mouse.js +16 -0
- package/src/events/{pointer.js → binders/pointer.js} +4 -4
- package/src/events/{touch.js → binders/touch.js} +2 -2
- package/src/events/binders/wheel.js +16 -0
- package/src/events/custom-events/click-away.js +39 -0
- package/src/events/custom-events/index.js +1 -0
- package/src/events/custom-events/swipe.js +58 -0
- package/src/events/custom-events/view.js +43 -0
- package/src/events/index.js +2 -14
- package/src/events/types/clipboard.d.ts +2 -2
- package/src/events/types/focus.d.ts +2 -2
- package/src/events/types/pointer.d.ts +2 -2
- package/src/lite.js +2 -0
- package/src/ui/__methods__/attrs.js +29 -45
- package/src/ui/__methods__/dom.js +65 -111
- package/src/ui/__methods__/events.js +17 -17
- package/src/ui/__methods__/index.js +10 -1
- package/src/ui/__methods__/indexing.js +14 -15
- package/src/ui/__methods__/style.js +28 -30
- package/src/ui/__methods__/utils/index.js +64 -0
- package/src/ui/constructors/UIElement-lite.js +10 -0
- package/src/ui/constructors/UIElement.js +87 -154
- package/src/ui/constructors/UIElementCore.js +236 -0
- package/src/ui/index.js +3 -3
- package/src/ui/suspense/index.js +1 -1
- package/src/events/click.js +0 -18
- package/src/events/clipboard.js +0 -16
- package/src/events/drag.js +0 -16
- package/src/events/focus.js +0 -16
- package/src/events/mouse.js +0 -16
- package/src/events/wheel.js +0 -16
- package/src/ui/__methods__/observer.js +0 -0
- /package/src/ui/constructors/{ZikoUIElementMethodesToBeMoved-dep.js → _m.js.txt} +0 -0
|
@@ -1,115 +1,69 @@
|
|
|
1
1
|
import { text } from "../text/index.js";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}
|
|
19
|
-
return this;
|
|
20
|
-
},
|
|
21
|
-
remove(...ele) {
|
|
22
|
-
const remove = (ele) => {
|
|
23
|
-
if (typeof ele === "number") ele = this.items[ele];
|
|
24
|
-
if (ele?.isZikoUIElement) this.element?.removeChild(ele.element);
|
|
25
|
-
this.items = this.items.filter((n) => n !== ele);
|
|
26
|
-
};
|
|
27
|
-
for (let i = 0; i < ele.length; i++) remove(ele[i]);
|
|
28
|
-
for (let i = 0; i < this.items.length; i++)
|
|
29
|
-
Object.assign(this, { [[i]]: this.items[i] });
|
|
30
|
-
// Remove from item
|
|
31
|
-
return this;
|
|
32
|
-
},
|
|
33
|
-
clear(){
|
|
34
|
-
this?.items?.forEach(n=>n.unrender());
|
|
35
|
-
this.element.innerHTML = "";
|
|
36
|
-
return this;
|
|
37
|
-
},
|
|
38
|
-
render(target = this.target) {
|
|
39
|
-
if(this.isBody)return ;
|
|
40
|
-
if(target?.isZikoUIElement)target=target.element;
|
|
41
|
-
this.target=target;
|
|
42
|
-
this.target?.appendChild(this.element);
|
|
43
|
-
return this;
|
|
44
|
-
},
|
|
45
|
-
unrender(){
|
|
46
|
-
if(this.cache.parent)this.cache.parent.remove(this);
|
|
47
|
-
else if(this.target?.children?.length && [...this.target?.children].includes(this.element)) this.target.removeChild(this.element);
|
|
48
|
-
return this;
|
|
49
|
-
},
|
|
50
|
-
renderAfter(t = 1) {
|
|
51
|
-
setTimeout(() => this.render(), t);
|
|
52
|
-
return this;
|
|
53
|
-
},
|
|
54
|
-
unrenderAfter(t = 1) {
|
|
55
|
-
setTimeout(() => this.unrender(), t);
|
|
56
|
-
return this;
|
|
57
|
-
},
|
|
58
|
-
after(ui){
|
|
59
|
-
if(ui?.isZikoUIElement) ui=ui.element;
|
|
60
|
-
this.element?.after(ui)
|
|
61
|
-
return this;
|
|
62
|
-
},
|
|
63
|
-
before(ui){
|
|
64
|
-
if(ui?.isZikoUIElement) ui=ui.element;
|
|
65
|
-
this.element?.before(ui)
|
|
66
|
-
return this;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
};
|
|
70
|
-
|
|
71
|
-
async function __addItem__(adder, pusher, ...ele) {
|
|
72
|
-
if (this.cache.isFrozzen) {
|
|
73
|
-
console.warn("You can't append new item to frozzen element");
|
|
74
|
-
return this;
|
|
75
|
-
}
|
|
76
|
-
for (let i = 0; i < ele.length; i++) {
|
|
77
|
-
if (["number", "string"].includes(typeof ele[i])) ele[i] = text(ele[i]);
|
|
78
|
-
// Fix Items Latter
|
|
79
|
-
if (ele[i] instanceof Function) {
|
|
80
|
-
const getter = ele[i]();
|
|
81
|
-
if (getter.isStateGetter) {
|
|
82
|
-
ele[i] = text(getter.value);
|
|
83
|
-
getter._subscribe(
|
|
84
|
-
(newValue) => (ele[i].element.textContent = newValue),
|
|
85
|
-
ele[i]
|
|
86
|
-
);
|
|
87
|
-
// this.element.appendChild(textNode);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
if (typeof globalThis?.Node === "function" && ele[i] instanceof globalThis?.Node) ele[i] = new this.constructor(ele[i]);
|
|
91
|
-
if (ele[i]?.isZikoUINode) {
|
|
92
|
-
ele[i].cache.parent = this;
|
|
93
|
-
this.element?.[adder](ele[i].element);
|
|
94
|
-
ele[i].target = this.element;
|
|
95
|
-
this.items[pusher](ele[i]);
|
|
96
|
-
}
|
|
97
|
-
else if(ele[i] instanceof Promise){
|
|
98
|
-
const UIEle = await ele[i]
|
|
99
|
-
UIEle.cache.parent = this;
|
|
100
|
-
this.element?.[adder](UIEle.element);
|
|
101
|
-
UIEle.target = this.element;
|
|
102
|
-
this.items[pusher](UIEle)
|
|
103
|
-
}
|
|
104
|
-
else if (ele[i] instanceof Object) {
|
|
105
|
-
if (ele[i]?.style) this.style(ele[i]?.style);
|
|
106
|
-
if (ele[i]?.attr) {
|
|
107
|
-
Object.entries(ele[i].attr).forEach((n) =>
|
|
108
|
-
this.setAttr("" + n[0], n[1]),
|
|
109
|
-
);
|
|
110
|
-
}
|
|
2
|
+
import { __addItem__ } from "./utils/index.js";
|
|
3
|
+
export function append(...ele) {
|
|
4
|
+
__addItem__.call(this, "append", "push", ...ele);
|
|
5
|
+
return this;
|
|
6
|
+
}
|
|
7
|
+
export function prepend(...ele) {
|
|
8
|
+
this.__addItem__.call(this, "prepend", "unshift", ...ele);
|
|
9
|
+
return this;
|
|
10
|
+
}
|
|
11
|
+
export function insertAt(index, ...ele) {
|
|
12
|
+
if (index >= this.element.children.length) this.append(...ele);
|
|
13
|
+
else
|
|
14
|
+
for (let i = 0; i < ele.length; i++) {
|
|
15
|
+
if (["number", "string"].includes(typeof ele[i])) ele[i] = text(ele[i]);
|
|
16
|
+
this.element?.insertBefore(ele[i].element, this.items[index].element);
|
|
17
|
+
this.items.splice(index, 0, ele[i]);
|
|
111
18
|
}
|
|
112
|
-
}
|
|
113
|
-
this.maintain();
|
|
114
19
|
return this;
|
|
115
20
|
}
|
|
21
|
+
export function remove(...ele) {
|
|
22
|
+
const remove = (ele) => {
|
|
23
|
+
if (typeof ele === "number") ele = this.items[ele];
|
|
24
|
+
if (ele?.isUIElement) this.element?.removeChild(ele.element);
|
|
25
|
+
this.items = this.items.filter((n) => n !== ele);
|
|
26
|
+
};
|
|
27
|
+
for (let i = 0; i < ele.length; i++) remove(ele[i]);
|
|
28
|
+
for (let i = 0; i < this.items.length; i++)
|
|
29
|
+
Object.assign(this, { [[i]]: this.items[i] });
|
|
30
|
+
// Remove from item
|
|
31
|
+
return this;
|
|
32
|
+
}
|
|
33
|
+
export function clear(){
|
|
34
|
+
this?.items?.forEach(n=>n.unrender());
|
|
35
|
+
this.element.innerHTML = "";
|
|
36
|
+
return this;
|
|
37
|
+
}
|
|
38
|
+
export function render(target = this.target) {
|
|
39
|
+
if(this.isBody)return ;
|
|
40
|
+
if(target?.isUIElement)target=target.element;
|
|
41
|
+
this.target=target;
|
|
42
|
+
this.target?.appendChild(this.element);
|
|
43
|
+
return this;
|
|
44
|
+
}
|
|
45
|
+
export function unrender(){
|
|
46
|
+
if(this.cache.parent)this.cache.parent.remove(this);
|
|
47
|
+
else if(this.target?.children?.length && [...this.target?.children].includes(this.element)) this.target.removeChild(this.element);
|
|
48
|
+
return this;
|
|
49
|
+
}
|
|
50
|
+
export function renderAfter(t = 1) {
|
|
51
|
+
setTimeout(() => this.render(), t);
|
|
52
|
+
return this;
|
|
53
|
+
}
|
|
54
|
+
export function unrenderAfter(t = 1) {
|
|
55
|
+
setTimeout(() => this.unrender(), t);
|
|
56
|
+
return this;
|
|
57
|
+
}
|
|
58
|
+
export function after(ui){
|
|
59
|
+
if(ui?.isUIElement) ui=ui.element;
|
|
60
|
+
this.element?.after(ui)
|
|
61
|
+
return this;
|
|
62
|
+
}
|
|
63
|
+
export function before(ui){
|
|
64
|
+
if(ui?.isUIElement) ui=ui.element;
|
|
65
|
+
this.element?.before(ui)
|
|
66
|
+
return this;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
import { Events } from "../../events/__Events__";
|
|
2
2
|
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
} from "../../events/index.js";
|
|
3
|
+
bind_pointer_event,
|
|
4
|
+
bind_mouse_event,
|
|
5
|
+
bind_key_event,
|
|
6
|
+
bind_click_event,
|
|
7
|
+
bind_drag_event,
|
|
8
|
+
bind_clipboard_event,
|
|
9
|
+
bind_focus_event,
|
|
10
|
+
bind_wheel_event
|
|
11
|
+
} from "../../events/binders/index.js";
|
|
12
12
|
|
|
13
13
|
const binderMap = {
|
|
14
|
-
ptr:
|
|
15
|
-
mouse :
|
|
16
|
-
key:
|
|
17
|
-
click :
|
|
18
|
-
drag :
|
|
19
|
-
clipboard :
|
|
20
|
-
focus :
|
|
21
|
-
wheel :
|
|
14
|
+
ptr: bind_pointer_event,
|
|
15
|
+
mouse : bind_mouse_event,
|
|
16
|
+
key: bind_key_event,
|
|
17
|
+
click : bind_click_event,
|
|
18
|
+
drag : bind_drag_event,
|
|
19
|
+
clipboard : bind_clipboard_event,
|
|
20
|
+
focus : bind_focus_event,
|
|
21
|
+
wheel : bind_wheel_event
|
|
22
22
|
};
|
|
23
23
|
|
|
24
24
|
const EventsMethodes = {};
|
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
export * from './attrs.js'
|
|
2
|
+
export * as AttrsMethods from './attrs.js'
|
|
3
|
+
|
|
2
4
|
export * from './dom.js'
|
|
5
|
+
export * as DomMethods from './dom.js'
|
|
6
|
+
|
|
3
7
|
export * from './events.js'
|
|
8
|
+
|
|
4
9
|
export * from './indexing.js'
|
|
5
|
-
export * from './
|
|
10
|
+
export * as IndexingMethods from './indexing.js'
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
export * from './style.js'
|
|
14
|
+
export * as StyleMethods from './style.js'
|
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
export
|
|
2
|
-
at(index)
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
forEach(callback)
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
map(callback)
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
};
|
|
1
|
+
export function at(index) {
|
|
2
|
+
return this.items.at(index);
|
|
3
|
+
}
|
|
4
|
+
export function forEach(callback) {
|
|
5
|
+
this.items.forEach(callback);
|
|
6
|
+
return this;
|
|
7
|
+
}
|
|
8
|
+
export function map(callback) {
|
|
9
|
+
return this.items.map(callback);
|
|
10
|
+
}
|
|
11
|
+
export function find(condition) {
|
|
12
|
+
return this.items.filter(condition);
|
|
13
|
+
}
|
|
14
|
+
|
|
@@ -1,34 +1,32 @@
|
|
|
1
1
|
import { isStateGetter } from '../../hooks/use-state.js'
|
|
2
|
-
export
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
(newValue)
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
);
|
|
16
|
-
}
|
|
17
|
-
else Object.assign(this.element.style, {[key] : value})
|
|
2
|
+
export function style(styles){
|
|
3
|
+
for(let key in styles){
|
|
4
|
+
const value = styles[key];
|
|
5
|
+
if(isStateGetter(value)){
|
|
6
|
+
const getter = value()
|
|
7
|
+
Object.assign(this.element.style, {[key] : getter.value})
|
|
8
|
+
getter._subscribe(
|
|
9
|
+
(newValue) => {
|
|
10
|
+
console.log({newValue})
|
|
11
|
+
Object.assign(this.element.style, {[key] : newValue})
|
|
12
|
+
},
|
|
13
|
+
// this
|
|
14
|
+
);
|
|
18
15
|
}
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
16
|
+
else Object.assign(this.element.style, {[key] : value})
|
|
17
|
+
}
|
|
18
|
+
return this;
|
|
19
|
+
}
|
|
20
|
+
export function size(width, height){
|
|
21
|
+
return this.style({width, height})
|
|
22
|
+
}
|
|
23
|
+
export function hide(){
|
|
25
24
|
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
}
|
|
26
|
+
export function show(){
|
|
28
27
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
}
|
|
28
|
+
}
|
|
29
|
+
export function animate(keyframe, {duration=1000, iterations=1, easing="ease"}={}){
|
|
30
|
+
this.element?.animate(keyframe,{duration, iterations, easing});
|
|
31
|
+
return this;
|
|
32
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { isStateGetter } from "../../../hooks/use-state.js";
|
|
2
|
+
import {
|
|
3
|
+
is_camelcase,
|
|
4
|
+
camel2hyphencase
|
|
5
|
+
} from '../../../data/string/index.js'
|
|
6
|
+
import { text } from "../../text/index.js";
|
|
7
|
+
export async function __addItem__(adder, pusher, ...ele) {
|
|
8
|
+
if (this.cache.isFrozzen) {
|
|
9
|
+
console.warn("You can't append new item to frozzen element");
|
|
10
|
+
return this;
|
|
11
|
+
}
|
|
12
|
+
for (let i = 0; i < ele.length; i++) {
|
|
13
|
+
if (["number", "string"].includes(typeof ele[i])) ele[i] = text(ele[i]);
|
|
14
|
+
// Fix Items Latter
|
|
15
|
+
if (ele[i] instanceof Function) {
|
|
16
|
+
const getter = ele[i]();
|
|
17
|
+
if (getter.isStateGetter) {
|
|
18
|
+
ele[i] = text(getter.value);
|
|
19
|
+
getter._subscribe(
|
|
20
|
+
(newValue) => (ele[i].element.textContent = newValue),
|
|
21
|
+
ele[i]
|
|
22
|
+
);
|
|
23
|
+
// this.element.appendChild(textNode);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
if (typeof globalThis?.Node === "function" && ele[i] instanceof globalThis?.Node) ele[i] = new this.constructor(ele[i]);
|
|
27
|
+
if (ele[i]?.isZikoUINode) {
|
|
28
|
+
ele[i].cache.parent = this;
|
|
29
|
+
this.element?.[adder](ele[i].element);
|
|
30
|
+
ele[i].target = this.element;
|
|
31
|
+
this.items[pusher](ele[i]);
|
|
32
|
+
}
|
|
33
|
+
else if(ele[i] instanceof Promise){
|
|
34
|
+
const UIEle = await ele[i]
|
|
35
|
+
UIEle.cache.parent = this;
|
|
36
|
+
this.element?.[adder](UIEle.element);
|
|
37
|
+
UIEle.target = this.element;
|
|
38
|
+
this.items[pusher](UIEle)
|
|
39
|
+
}
|
|
40
|
+
else if (ele[i] instanceof Object) {
|
|
41
|
+
if (ele[i]?.style) this.style(ele[i]?.style);
|
|
42
|
+
if (ele[i]?.attr) {
|
|
43
|
+
Object.entries(ele[i].attr).forEach((n) =>
|
|
44
|
+
this.setAttr("" + n[0], n[1]),
|
|
45
|
+
);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
this.maintain();
|
|
50
|
+
return this;
|
|
51
|
+
}
|
|
52
|
+
export function _set_attrs_(name, value){
|
|
53
|
+
if(this.element?.tagName !== "svg") name = is_camelcase(name) ? camel2hyphencase(name) : name;
|
|
54
|
+
if(this?.attr[name] && this?.attr[name]===value) return;
|
|
55
|
+
if(isStateGetter(value)){
|
|
56
|
+
const getter = value()
|
|
57
|
+
getter._subscribe(
|
|
58
|
+
(newValue) => this.element?.setAttribute(name, newValue),
|
|
59
|
+
this
|
|
60
|
+
);
|
|
61
|
+
}
|
|
62
|
+
else this.element?.setAttribute(name, value)
|
|
63
|
+
Object.assign(this.cache.attributes, {[name]:value});
|
|
64
|
+
}
|