ziko 0.0.25 → 0.0.27
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/README.md +1 -1
- package/dist/ziko.cjs +50 -8
- package/dist/ziko.js +269 -15
- package/dist/ziko.min.js +2 -2
- package/dist/ziko.mjs +267 -16
- package/package.json +1 -1
- package/src/app/globals.js +30 -2
- package/src/index.js +2 -1
- package/src/math/index.js +1 -0
- package/src/reactivity/events/ZikoEvent.js +1 -0
- package/src/reactivity/events/click.js +43 -1
- package/src/reactivity/events-exp/__Events__.js +47 -0
- package/src/reactivity/events-exp/__ZikoEvent__.js +160 -0
- package/src/reactivity/events-exp/click.js +19 -0
- package/src/reactivity/events-exp/index.js +5 -0
- package/src/reactivity/events-exp/key.js +27 -0
- package/src/reactivity/events-exp/pointer.js +48 -0
- package/src/reactivity/events-exp/utils.js +7 -0
- package/src/reactivity/index.js +3 -0
- package/src/ui/elements/ZikoUIElement.js +11 -8
- package/src/ui/elements/misc/index.js +0 -1
- package/src/ui/elements/text/__ZikoUIText__.js +3 -3
- /package/src/{_global (To Be Replaced ) → _global (To Be Removed )}/_themes/dark.js +0 -0
- /package/src/{_global (To Be Replaced ) → _global (To Be Removed )}/_themes/index.js +0 -0
- /package/src/{_global (To Be Replaced ) → _global (To Be Removed )}/_themes/light.js +0 -0
- /package/src/{_global (To Be Replaced ) → _global (To Be Removed )}/app/index.js +0 -0
- /package/src/{_global (To Be Replaced ) → _global (To Be Removed )}/component/index.js +0 -0
- /package/src/{_global (To Be Replaced ) → _global (To Be Removed )}/globals/index.js +0 -0
- /package/src/{_global (To Be Replaced ) → _global (To Be Removed )}/index.js +0 -0
- /package/src/{_global (To Be Replaced ) → _global (To Be Removed )}/params/index.js +0 -0
- /package/src/{_global (To Be Replaced ) → _global (To Be Removed )}/router/index.js +0 -0
- /package/src/{_global (To Be Replaced ) → _global (To Be Removed )}/seo/index.js +0 -0
- /package/src/{_global (To Be Replaced ) → _global (To Be Removed )}/style/index.js +0 -0
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { getEvent } from "./utils.js"
|
|
2
|
+
function event_controller(e, event_name, details_setter, customizer, push_object){
|
|
3
|
+
this.cache.currentEvent = event_name;
|
|
4
|
+
this.cache.event = e;
|
|
5
|
+
details_setter?.call(this);
|
|
6
|
+
if(customizer?.hasOwnProperty("prototype"))customizer?.call(this)
|
|
7
|
+
else customizer?.call(null, this)
|
|
8
|
+
if(this.cache.preventDefault[event_name]) e.preventDefault();
|
|
9
|
+
if(this.cache.stopPropagation[event_name]) e.stopPropagation();
|
|
10
|
+
if(this.cache.stopImmediatePropagation[event_name]) e.stopImmediatePropagation();
|
|
11
|
+
|
|
12
|
+
if(this.cache.stream.enabled[event_name]&&push_object)this.cache.stream.history[event_name].push(push_object);
|
|
13
|
+
this.cache.callbacks[event_name]?.map(n=>n(this));
|
|
14
|
+
}
|
|
15
|
+
class __ZikoEvent__ {
|
|
16
|
+
constructor(target = null, Events = [], details_setter, customizer){
|
|
17
|
+
this.target = target;
|
|
18
|
+
this.cache = {
|
|
19
|
+
currentEvent : null,
|
|
20
|
+
event: null,
|
|
21
|
+
options : {},
|
|
22
|
+
preventDefault : {},
|
|
23
|
+
stopPropagation : {},
|
|
24
|
+
stopImmediatePropagation : {},
|
|
25
|
+
event_flow : {},
|
|
26
|
+
paused : {},
|
|
27
|
+
stream : {
|
|
28
|
+
enabled : {},
|
|
29
|
+
clear : {},
|
|
30
|
+
history : {}
|
|
31
|
+
},
|
|
32
|
+
callbacks : {},
|
|
33
|
+
__controllers__:{}
|
|
34
|
+
}
|
|
35
|
+
const events = Events.map(n=>getEvent(n))
|
|
36
|
+
events.forEach((event,i)=>{
|
|
37
|
+
Object.assign(this.cache.preventDefault, {[event] : false});
|
|
38
|
+
Object.assign(this.cache.options, {[event] : {}});
|
|
39
|
+
Object.assign(this.cache.paused, {[event] : false});
|
|
40
|
+
Object.assign(this.cache.stream.enabled, {[event] : false});
|
|
41
|
+
Object.assign(this.cache.stream.clear, {[event] : false});
|
|
42
|
+
Object.assign(this.cache.stream.history, {[event] : []});
|
|
43
|
+
Object.assign(this.cache.__controllers__, {[event] : e=>event_controller.call(this, e, event, details_setter, customizer)});
|
|
44
|
+
Object.assign(this, { [`on${Events[i]}`] : (...callbacks)=> this.__onEvent(event, this.cache.options[event], {}, ...callbacks)})
|
|
45
|
+
})
|
|
46
|
+
}
|
|
47
|
+
get targetElement(){
|
|
48
|
+
return this.target?.element;
|
|
49
|
+
}
|
|
50
|
+
get isParent(){
|
|
51
|
+
return this.target?.element === this.event.srcElement;
|
|
52
|
+
}
|
|
53
|
+
get item(){
|
|
54
|
+
return this.target.find(n=>n.element == this.event?.srcElement)?.[0];
|
|
55
|
+
}
|
|
56
|
+
get currentEvent(){
|
|
57
|
+
return this.cache.currentEvent;
|
|
58
|
+
}
|
|
59
|
+
get event(){
|
|
60
|
+
return this.cache.event;
|
|
61
|
+
}
|
|
62
|
+
setTarget(UI){
|
|
63
|
+
this.target=UI;
|
|
64
|
+
return this;
|
|
65
|
+
}
|
|
66
|
+
__handle(event, handler, options, dispose){
|
|
67
|
+
this.targetElement?.addEventListener(event, handler, options);
|
|
68
|
+
return this;
|
|
69
|
+
}
|
|
70
|
+
__onEvent(event, options, dispose, ...callbacks){
|
|
71
|
+
if(callbacks.length===0){
|
|
72
|
+
console.log("00")
|
|
73
|
+
if(this.cache.callbacks[event]){
|
|
74
|
+
console.log("Call")
|
|
75
|
+
// this.cache.callbacks.map(n=>e=>n.call(this,e));
|
|
76
|
+
this.cache.callbacks[event].map(n=>e=>n.call(this,e))
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
return this;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
else this.cache.callbacks[event] = callbacks.map(n=>e=>n.call(this,e));
|
|
83
|
+
this.__handle(event, this.cache.__controllers__[event],options, dispose)
|
|
84
|
+
return this;
|
|
85
|
+
}
|
|
86
|
+
#override(methode, overrides, defaultValue){
|
|
87
|
+
if(defaultValue === "default") Object.assign(this.cache[methode], {...this.cache[methode], ...overrides});
|
|
88
|
+
const all = defaultValue === "default"
|
|
89
|
+
? this.cache[methode]
|
|
90
|
+
: Object.fromEntries(Object.keys(this.cache.preventDefault).map(n=>[n,defaultValue]))
|
|
91
|
+
Object.assign(this.cache[methode], {...all,...overrides});
|
|
92
|
+
return this
|
|
93
|
+
}
|
|
94
|
+
preventDefault(overrides = {}, defaultValue = "default"){
|
|
95
|
+
this.#override("preventDefault", overrides, defaultValue);
|
|
96
|
+
// const all=Object.fromEntries(Object.keys(this.cache.preventDefault).map(n=>[n,defaultValue]))
|
|
97
|
+
// Object.assign(this.cache.preventDefault, {...all,...overrides});
|
|
98
|
+
return this;
|
|
99
|
+
}
|
|
100
|
+
stopPropagation(overrides = {}, defaultValue = "default"){
|
|
101
|
+
this.#override("stopPropagation", overrides, defaultValue);
|
|
102
|
+
return this;
|
|
103
|
+
}
|
|
104
|
+
stopImmediatePropagation(overrides = {}, defaultValue = "default"){
|
|
105
|
+
this.#override("stopImmediatePropagation", overrides, defaultValue);
|
|
106
|
+
return this;
|
|
107
|
+
}
|
|
108
|
+
setEventOptions(event, options){
|
|
109
|
+
this.pause({[event] : true, }, "default");
|
|
110
|
+
Object.assign(this.cache.options[getEvent(event)], options);
|
|
111
|
+
this.resume({[event] : true, }, "default");
|
|
112
|
+
return this;
|
|
113
|
+
}
|
|
114
|
+
pause(overrides = {}, defaultValue = "default"){
|
|
115
|
+
const all = defaultValue === "default"
|
|
116
|
+
? this.cache.stream.enabled
|
|
117
|
+
: Object.entries(Object.keys(this.cache.stream.enabled).map(n=>[n,defaultValue]));
|
|
118
|
+
overrides={...all,...overrides};
|
|
119
|
+
for(let key in overrides){
|
|
120
|
+
if(overrides[key]){
|
|
121
|
+
this.targetElement?.removeEventListener(key, this.cache.__controllers__[key], this.cache.options[key]);
|
|
122
|
+
this.cache.paused[key]=true;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
return this;
|
|
126
|
+
}
|
|
127
|
+
resume(overrides = {}, defaultValue = "default"){
|
|
128
|
+
const all = defaultValue === "default"
|
|
129
|
+
? this.cache.stream.enabled
|
|
130
|
+
: Object.entries(Object.keys(this.cache.stream.enabled).map(n=>[n,defaultValue]));
|
|
131
|
+
overrides={...all,...overrides};
|
|
132
|
+
for(let key in overrides){
|
|
133
|
+
if(overrides[key]){
|
|
134
|
+
this.targetElement?.addEventListener(key,this.cache.__controllers__[key], this.cache.options[key]);
|
|
135
|
+
this.cache.paused[key]=false;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
return this;
|
|
139
|
+
}
|
|
140
|
+
stream(overrides = {}, defaultValue = "default"){
|
|
141
|
+
this.cache.stream.t0=Date.now();
|
|
142
|
+
const all=Object.fromEntries(Object.keys(this.cache.stream.enabled).map(n=>[n,defaultValue]))
|
|
143
|
+
overrides={...all,...overrides}
|
|
144
|
+
Object.assign(this.cache.stream.enabled,overrides);
|
|
145
|
+
return this;
|
|
146
|
+
}
|
|
147
|
+
clear(){
|
|
148
|
+
|
|
149
|
+
}
|
|
150
|
+
dispose(overrides = {}, defaultValue = "default"){
|
|
151
|
+
this.pause(overrides, defaultValue);
|
|
152
|
+
|
|
153
|
+
return this;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
export {
|
|
158
|
+
__ZikoEvent__,
|
|
159
|
+
getEvent
|
|
160
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { __ZikoEvent__ } from "./__ZikoEvent__.js";
|
|
2
|
+
import { Events } from "./__Events__.js";
|
|
3
|
+
class ZikoEventClick extends __ZikoEvent__{
|
|
4
|
+
constructor(target, customizer){
|
|
5
|
+
super(target, Events.Click, details_setter, customizer)
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
function details_setter(){
|
|
9
|
+
if(this.currentEvent==="click") this.dx = 0
|
|
10
|
+
else this.dx = 1
|
|
11
|
+
// console.log(this.currentEvent)
|
|
12
|
+
}
|
|
13
|
+
const __useClickEvent = (target, customizer) => new ZikoEventClick(target, customizer)
|
|
14
|
+
|
|
15
|
+
globalThis.expClick = __useClickEvent
|
|
16
|
+
export{
|
|
17
|
+
__useClickEvent,
|
|
18
|
+
ZikoEventClick
|
|
19
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { __ZikoEvent__ } from "./__ZikoEvent__.js";
|
|
2
|
+
import { Events } from "./__Events__.js";
|
|
3
|
+
class ZikoEventKey extends __ZikoEvent__{
|
|
4
|
+
constructor(target, customizer){
|
|
5
|
+
super(target, Events.Key, details_setter, customizer)
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
function details_setter(){
|
|
9
|
+
switch(this.currentEvent){
|
|
10
|
+
case "keydown" : {
|
|
11
|
+
this.kd = this.event.key
|
|
12
|
+
}; break;
|
|
13
|
+
case "keypress" : {
|
|
14
|
+
this.kp = this.event.key
|
|
15
|
+
}; break;
|
|
16
|
+
case "keyup" : {
|
|
17
|
+
this.ku = this.event.key
|
|
18
|
+
}; break;
|
|
19
|
+
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
const __useKeyEvent = (target, customizer) => new ZikoEventKey(target, customizer)
|
|
23
|
+
|
|
24
|
+
export{
|
|
25
|
+
__useKeyEvent,
|
|
26
|
+
ZikoEventKey
|
|
27
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { __ZikoEvent__ } from "./__ZikoEvent__.js";
|
|
2
|
+
import { Events } from "./__Events__.js";
|
|
3
|
+
class ZikoEventPointer extends __ZikoEvent__{
|
|
4
|
+
constructor(target, customizer){
|
|
5
|
+
super(target, Events.Pointer, details_setter, customizer);
|
|
6
|
+
this.isDown = false;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
function details_setter(){
|
|
10
|
+
switch(this.currentEvent){
|
|
11
|
+
case "pointerdown" : {
|
|
12
|
+
this.dx = parseInt(this.event.offsetX);
|
|
13
|
+
this.dy = parseInt(this.event.offsetY);
|
|
14
|
+
this.isDown = true
|
|
15
|
+
}; break;
|
|
16
|
+
case "pointermove" : {
|
|
17
|
+
this.mx = parseInt(this.event.offsetX);
|
|
18
|
+
this.my = parseInt(this.event.offsetY);
|
|
19
|
+
this.isMove = true
|
|
20
|
+
}; break;
|
|
21
|
+
case "pointerup" : {
|
|
22
|
+
this.ux = parseInt(this.event.offsetX);
|
|
23
|
+
this.uy = parseInt(this.event.offsetY);
|
|
24
|
+
this.isDown = false;
|
|
25
|
+
console.log(this.target.width)
|
|
26
|
+
const delta_x=(this.ux-this.dx)/this.target.width;
|
|
27
|
+
const delta_y=(this.dy-this.uy)/this.target.height;
|
|
28
|
+
const HORIZONTAL_SWIPPE=(delta_x<0)?"left":(delta_x>0)?"right":"none";
|
|
29
|
+
const VERTICAL_SWIPPE=(delta_y<0)?"bottom":(delta_y>0)?"top":"none";
|
|
30
|
+
this.swippe={
|
|
31
|
+
h:HORIZONTAL_SWIPPE,
|
|
32
|
+
v:VERTICAL_SWIPPE,
|
|
33
|
+
delta_x,
|
|
34
|
+
delta_y
|
|
35
|
+
}
|
|
36
|
+
}; break;
|
|
37
|
+
}
|
|
38
|
+
// if(this.currentEvent==="click") this.dx = 0
|
|
39
|
+
// else this.dx = 1
|
|
40
|
+
// console.log(this.currentEvent)
|
|
41
|
+
}
|
|
42
|
+
const __usePointerEvent = (target, customizer) => new ZikoEventPointer(target, customizer)
|
|
43
|
+
|
|
44
|
+
globalThis.expPointer = __usePointerEvent
|
|
45
|
+
export{
|
|
46
|
+
__usePointerEvent,
|
|
47
|
+
ZikoEventPointer
|
|
48
|
+
}
|
package/src/reactivity/index.js
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import * as Events from "./events";
|
|
2
2
|
import * as Observer from "./observer"
|
|
3
3
|
import * as Hooks from "./hooks"
|
|
4
|
+
import * as EventsExp from "./events-exp"
|
|
4
5
|
const Reactivity={
|
|
5
6
|
...Events,
|
|
6
7
|
...Observer,
|
|
7
8
|
...Hooks,
|
|
9
|
+
...EventsExp,
|
|
8
10
|
}
|
|
9
11
|
export * from "./events";
|
|
10
12
|
export * from "./observer";
|
|
11
13
|
export * from "./hooks";
|
|
14
|
+
export * from "./events-exp";
|
|
12
15
|
export default Reactivity;
|
|
@@ -65,6 +65,7 @@ class ZikoUIElement {
|
|
|
65
65
|
intersection:null
|
|
66
66
|
}
|
|
67
67
|
this.uuid = `${this.cache.name}-${Random.string(16)}`
|
|
68
|
+
this.ui_index = globalThis.__Ziko__.__CACHE__.get_ui_index()
|
|
68
69
|
this.cache.style.linkTo(this);
|
|
69
70
|
useDefaultStyle && this.style({
|
|
70
71
|
position: "relative",
|
|
@@ -77,7 +78,7 @@ class ZikoUIElement {
|
|
|
77
78
|
this.items = [];
|
|
78
79
|
globalThis.__Ziko__.__UI__[this.cache.name]?globalThis.__Ziko__.__UI__[this.cache.name]?.push(this):globalThis.__Ziko__.__UI__[this.cache.name]=[this];
|
|
79
80
|
element && globalThis.__Ziko__.__Config__.default.render && this.render()
|
|
80
|
-
this.setAttr("data-
|
|
81
|
+
this.setAttr("data-ui-index", this.ui_index);
|
|
81
82
|
if(globalThis.__Ziko__.__Config__.renderingMode !== "spa" && !globalThis.__Ziko__.__Config__.isSSC) {
|
|
82
83
|
globalThis.__Ziko__.__HYDRATION_MAP__.set(this.uuid, ()=>this)
|
|
83
84
|
}
|
|
@@ -161,12 +162,14 @@ class ZikoUIElement {
|
|
|
161
162
|
}
|
|
162
163
|
for (let i = 0; i < ele.length; i++) {
|
|
163
164
|
if (["number", "string"].includes(typeof ele[i])) ele[i] = text(ele[i]);
|
|
164
|
-
if
|
|
165
|
+
if(ele[i] instanceof Node) ele[i] = new ZikoUIElement(ele[i]);
|
|
166
|
+
if (ele[i]?.isZikoUIElement) {
|
|
165
167
|
ele[i].cache.parent = this;
|
|
166
168
|
this.element[adder](ele[i].element);
|
|
167
169
|
ele[i].target = this.element;
|
|
168
170
|
this.items[pusher](ele[i]);
|
|
169
|
-
}
|
|
171
|
+
}
|
|
172
|
+
else if (ele[i] instanceof Object) {
|
|
170
173
|
if (ele[i]?.style) this.style(ele[i]?.style);
|
|
171
174
|
if (ele[i]?.attr) {
|
|
172
175
|
Object.entries(ele[i].attr).forEach((n) =>
|
|
@@ -199,7 +202,7 @@ class ZikoUIElement {
|
|
|
199
202
|
remove(...ele) {
|
|
200
203
|
const remove = (ele) => {
|
|
201
204
|
if (typeof ele === "number") ele = this.items[ele];
|
|
202
|
-
if (ele
|
|
205
|
+
if (ele?.isZikoUIElement) this.element?.removeChild(ele.element);
|
|
203
206
|
this.items = this.items.filter((n) => n !== ele);
|
|
204
207
|
};
|
|
205
208
|
for (let i = 0; i < ele.length; i++) remove(ele[i]);
|
|
@@ -300,7 +303,7 @@ class ZikoUIElement {
|
|
|
300
303
|
}
|
|
301
304
|
setTarget(tg) {
|
|
302
305
|
if(this.isBody) return ;
|
|
303
|
-
if (tg
|
|
306
|
+
if (tg?.isZikoUIElement) tg = tg.element;
|
|
304
307
|
this.unrender();
|
|
305
308
|
this.target = tg;
|
|
306
309
|
this.render();
|
|
@@ -316,7 +319,7 @@ class ZikoUIElement {
|
|
|
316
319
|
}
|
|
317
320
|
render(target = this.target) {
|
|
318
321
|
if(this.isBody)return ;
|
|
319
|
-
if(target
|
|
322
|
+
if(target?.isZikoUIElement)target=target.element;
|
|
320
323
|
this.target=target;
|
|
321
324
|
this.target?.appendChild(this.element);
|
|
322
325
|
return this;
|
|
@@ -335,12 +338,12 @@ class ZikoUIElement {
|
|
|
335
338
|
return this;
|
|
336
339
|
}
|
|
337
340
|
after(ui){
|
|
338
|
-
if(ui
|
|
341
|
+
if(ui?.isZikoUIElement) ui=ui.element;
|
|
339
342
|
this.element?.after(ui)
|
|
340
343
|
return this;
|
|
341
344
|
}
|
|
342
345
|
before(ui){
|
|
343
|
-
if(ui
|
|
346
|
+
if(ui?.isZikoUIElement) ui=ui.element;
|
|
344
347
|
this.element?.before(ui)
|
|
345
348
|
return this;
|
|
346
349
|
}
|
|
@@ -7,7 +7,6 @@ class ZikoUIHtmlTag extends ZikoUIElement {
|
|
|
7
7
|
class ZikoUIBtn extends ZikoUIElement {
|
|
8
8
|
constructor(value = "button") {
|
|
9
9
|
super("button","btn");
|
|
10
|
-
this.element = document?.createElement("button");
|
|
11
10
|
this.setValue(value);
|
|
12
11
|
this.st.cursor("pointer");
|
|
13
12
|
globalThis.__Ziko__.__Config__.default.render && this.render();
|
|
@@ -47,9 +47,9 @@ class __ZikoUIText__ extends ZikoUIElement {
|
|
|
47
47
|
|
|
48
48
|
if(this.cache.lineBreak)this.element?.appendChild(globalThis.document?.createElement("br"));
|
|
49
49
|
});
|
|
50
|
-
if(this.element?.innerHTML){
|
|
51
|
-
|
|
52
|
-
}
|
|
50
|
+
// if(this.element?.innerHTML){
|
|
51
|
+
// this.element.innerHTML = this.element.innerHTML.replace(/\n/g, '<br>').replace(/(?<!<[^>]+) /g, ' ');
|
|
52
|
+
// }
|
|
53
53
|
return this
|
|
54
54
|
}
|
|
55
55
|
setValue(...value) {
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|