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.
Files changed (33) hide show
  1. package/README.md +1 -1
  2. package/dist/ziko.cjs +50 -8
  3. package/dist/ziko.js +269 -15
  4. package/dist/ziko.min.js +2 -2
  5. package/dist/ziko.mjs +267 -16
  6. package/package.json +1 -1
  7. package/src/app/globals.js +30 -2
  8. package/src/index.js +2 -1
  9. package/src/math/index.js +1 -0
  10. package/src/reactivity/events/ZikoEvent.js +1 -0
  11. package/src/reactivity/events/click.js +43 -1
  12. package/src/reactivity/events-exp/__Events__.js +47 -0
  13. package/src/reactivity/events-exp/__ZikoEvent__.js +160 -0
  14. package/src/reactivity/events-exp/click.js +19 -0
  15. package/src/reactivity/events-exp/index.js +5 -0
  16. package/src/reactivity/events-exp/key.js +27 -0
  17. package/src/reactivity/events-exp/pointer.js +48 -0
  18. package/src/reactivity/events-exp/utils.js +7 -0
  19. package/src/reactivity/index.js +3 -0
  20. package/src/ui/elements/ZikoUIElement.js +11 -8
  21. package/src/ui/elements/misc/index.js +0 -1
  22. package/src/ui/elements/text/__ZikoUIText__.js +3 -3
  23. /package/src/{_global (To Be Replaced ) → _global (To Be Removed )}/_themes/dark.js +0 -0
  24. /package/src/{_global (To Be Replaced ) → _global (To Be Removed )}/_themes/index.js +0 -0
  25. /package/src/{_global (To Be Replaced ) → _global (To Be Removed )}/_themes/light.js +0 -0
  26. /package/src/{_global (To Be Replaced ) → _global (To Be Removed )}/app/index.js +0 -0
  27. /package/src/{_global (To Be Replaced ) → _global (To Be Removed )}/component/index.js +0 -0
  28. /package/src/{_global (To Be Replaced ) → _global (To Be Removed )}/globals/index.js +0 -0
  29. /package/src/{_global (To Be Replaced ) → _global (To Be Removed )}/index.js +0 -0
  30. /package/src/{_global (To Be Replaced ) → _global (To Be Removed )}/params/index.js +0 -0
  31. /package/src/{_global (To Be Replaced ) → _global (To Be Removed )}/router/index.js +0 -0
  32. /package/src/{_global (To Be Replaced ) → _global (To Be Removed )}/seo/index.js +0 -0
  33. /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,5 @@
1
+ export * from "./__ZikoEvent__.js";
2
+ export * from "./utils.js";
3
+ // export * from "./click.js";
4
+ // export * from "./key.js";
5
+ // export * from "./pointer.js"
@@ -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
+ }
@@ -0,0 +1,7 @@
1
+ const getEvent=(event = "")=>{
2
+ if(event.startsWith("Ptr"))return `pointer${event.split("Ptr")[1].toLowerCase()}`;
3
+ return event.toLowerCase()
4
+ }
5
+ export{
6
+ getEvent
7
+ }
@@ -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-ref", this.uuid);
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 (ele[i] instanceof ZikoUIElement) {
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
- } else if (ele[i] instanceof Object) {
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 instanceof ZikoUIElement) this.element?.removeChild(ele.element);
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 instanceof ZikoUIElement) tg = tg.element;
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 instanceof ZikoUIElement)target=target.element;
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 instanceof ZikoUIElement) ui=ui.element;
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 instanceof ZikoUIElement) ui=ui.element;
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
- this.element.innerHTML = this.element.innerHTML.replace(/\n/g, '<br>').replace(/(?<!<[^>]+) /g, '&nbsp;');
52
- }
50
+ // if(this.element?.innerHTML){
51
+ // this.element.innerHTML = this.element.innerHTML.replace(/\n/g, '<br>').replace(/(?<!<[^>]+) /g, '&nbsp;');
52
+ // }
53
53
  return this
54
54
  }
55
55
  setValue(...value) {