ziko 0.49.7 → 0.50.2

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 (108) hide show
  1. package/dist/ziko.cjs +817 -976
  2. package/dist/ziko.js +817 -976
  3. package/dist/ziko.min.js +2 -2
  4. package/dist/ziko.mjs +808 -961
  5. package/package.json +4 -1
  6. package/src/{reactivity → --reactivity-deprecated}/hooks/index.js +3 -3
  7. package/src/{reactivity → --reactivity-deprecated}/index.js +1 -1
  8. package/src/__ziko__/__state__.js +1 -1
  9. package/src/app/ziko-app.js +6 -6
  10. package/src/data/api/fetchdom.js +27 -11
  11. package/src/events/binders/custom-event.js +12 -8
  12. package/src/events/binders/index.js +97 -13
  13. package/src/events/custom-events-registry/index.js +3 -0
  14. package/src/events/custom-events-registry/swipe.js +76 -0
  15. package/src/events/custom-events-registry/view.js +74 -0
  16. package/src/events/details-setter/index.js +2 -0
  17. package/src/events/details-setter/key.js +14 -0
  18. package/src/events/{binders → details-setter}/pointer.js +1 -15
  19. package/src/events/{__Events__.js → events-map/index.js} +16 -4
  20. package/src/events/index.js +1 -1
  21. package/src/events/types/__Shared__.d.ts +3 -3
  22. package/src/events/types/clipboard.d.ts +2 -2
  23. package/src/events/types/focus.d.ts +2 -2
  24. package/src/events/types/pointer.d.ts +2 -2
  25. package/src/events/utils.js +31 -0
  26. package/src/events/ziko-event.js +108 -0
  27. package/src/hooks/index.js +1 -1
  28. package/src/hooks/{use-channel.js → use-ipc.js} +3 -3
  29. package/src/hooks/use-storage.js +2 -2
  30. package/src/index.js +1 -1
  31. package/src/ui/__methods__/dom.js +0 -20
  32. package/src/ui/__methods__/events.js +26 -8
  33. package/src/ui/__methods__/index.js +3 -0
  34. package/src/ui/__methods__/lifecycle.js +54 -0
  35. package/src/ui/constructors/UIElement.js +8 -32
  36. package/src/ui/constructors/UIElementCore.js +3 -136
  37. package/src/ui/{constructors/UIElement-lite.js → mini/UIElement.js} +1 -1
  38. package/src/ui/suspense/index.js +1 -2
  39. package/types/data/api/index.d.ts +15 -0
  40. package/types/data/index.d.ts +1 -0
  41. package/types/data/string/checkers.d.ts +51 -0
  42. package/types/data/string/converters.d.ts +101 -0
  43. package/types/data/string/index.d.ts +2 -0
  44. package/types/hooks/index.d.ts +1 -1
  45. package/types/hooks/{use-channel.d.ts → use-ipc.d.ts} +2 -2
  46. package/types/index.d.ts +2 -1
  47. package/src/events/__ZikoEvent__.js +0 -165
  48. package/src/events/binders/click.js +0 -20
  49. package/src/events/binders/clipboard.js +0 -16
  50. package/src/events/binders/drag.js +0 -16
  51. package/src/events/binders/focus.js +0 -16
  52. package/src/events/binders/hash.js +0 -16
  53. package/src/events/binders/key.js +0 -27
  54. package/src/events/binders/mouse.js +0 -16
  55. package/src/events/binders/touch.js +0 -16
  56. package/src/events/binders/wheel.js +0 -16
  57. package/src/events/custom-events/index.js +0 -1
  58. package/src/events/custom-events/swipe.js +0 -58
  59. package/src/events/custom-events/view.js +0 -43
  60. package/src/events/index.d.ts.txt +0 -3
  61. /package/src/{reactivity → --reactivity-deprecated}/events/Input.js +0 -0
  62. /package/src/{reactivity → --reactivity-deprecated}/events/ZikoEvent.js +0 -0
  63. /package/src/{reactivity → --reactivity-deprecated}/events/__note__ +0 -0
  64. /package/src/{reactivity → --reactivity-deprecated}/events/custom-event.js +0 -0
  65. /package/src/{reactivity → --reactivity-deprecated}/events/hash.js +0 -0
  66. /package/src/{reactivity → --reactivity-deprecated}/events/index.js +0 -0
  67. /package/src/{reactivity → --reactivity-deprecated}/events/media.js +0 -0
  68. /package/src/{reactivity → --reactivity-deprecated}/events/mouse.js +0 -0
  69. /package/src/{reactivity → --reactivity-deprecated}/events/swipe.js +0 -0
  70. /package/src/{reactivity → --reactivity-deprecated}/events/touch.js +0 -0
  71. /package/src/{reactivity → --reactivity-deprecated}/hooks/Contexte/index.js +0 -0
  72. /package/src/{reactivity → --reactivity-deprecated}/hooks/Contexte/useSuccesifKeys.js +0 -0
  73. /package/src/{reactivity → --reactivity-deprecated}/hooks/UI/index.js +0 -0
  74. /package/src/{reactivity → --reactivity-deprecated}/hooks/UI/useCssLink.js +0 -0
  75. /package/src/{reactivity → --reactivity-deprecated}/hooks/UI/useLinearGradient.js +0 -0
  76. /package/src/{reactivity → --reactivity-deprecated}/hooks/UI/useMediaQuery.js +0 -0
  77. /package/src/{reactivity → --reactivity-deprecated}/hooks/UI/useRadialGradient.js +0 -0
  78. /package/src/{reactivity → --reactivity-deprecated}/hooks/UI/useRoot.js +0 -0
  79. /package/src/{reactivity → --reactivity-deprecated}/hooks/UI/useStyle.js +0 -0
  80. /package/src/{reactivity → --reactivity-deprecated}/hooks/UI/useTheme.js +0 -0
  81. /package/src/{reactivity → --reactivity-deprecated}/hooks/head/_useCssText.js +0 -0
  82. /package/src/{reactivity → --reactivity-deprecated}/hooks/head/index.js +0 -0
  83. /package/src/{reactivity → --reactivity-deprecated}/hooks/head/useFavIcon.js +0 -0
  84. /package/src/{reactivity → --reactivity-deprecated}/hooks/head/useHead.js +0 -0
  85. /package/src/{reactivity → --reactivity-deprecated}/hooks/head/useMeta.js +0 -0
  86. /package/src/{reactivity → --reactivity-deprecated}/hooks/head/useTitle.js +0 -0
  87. /package/src/{reactivity → --reactivity-deprecated}/hooks/todo.md +0 -0
  88. /package/src/{reactivity → --reactivity-deprecated}/idea +0 -0
  89. /package/src/{reactivity → --reactivity-deprecated}/observer/attributes.js +0 -0
  90. /package/src/{reactivity → --reactivity-deprecated}/observer/children.js +0 -0
  91. /package/src/{reactivity → --reactivity-deprecated}/observer/index.js +0 -0
  92. /package/src/{reactivity → --reactivity-deprecated}/observer/intersection.js +0 -0
  93. /package/src/{reactivity → --reactivity-deprecated}/observer/mutation.js +0 -0
  94. /package/src/{reactivity → --reactivity-deprecated}/observer/resize.js +0 -0
  95. /package/src/{reactivity → --reactivity-deprecated}/observer/screen.js +0 -0
  96. /package/src/{reactivity → --reactivity-deprecated}/observer/screen.js.txt +0 -0
  97. /package/src/{reactivity → --reactivity-deprecated}/observer/screen.txt +0 -0
  98. /package/src/{use → --use-deprecated}/index.js +0 -0
  99. /package/src/{use → --use-deprecated}/use-channel.js.txt +0 -0
  100. /package/src/{use → --use-deprecated}/use-event-emmiter.js.txt +0 -0
  101. /package/src/{use → --use-deprecated}/use-favicon.js +0 -0
  102. /package/src/{use → --use-deprecated}/use-link.js +0 -0
  103. /package/src/{use → --use-deprecated}/use-meta.js +0 -0
  104. /package/src/{use → --use-deprecated}/use-root.js +0 -0
  105. /package/src/{use → --use-deprecated}/use-storage.js.txt +0 -0
  106. /package/src/{use → --use-deprecated}/use-thread.js +0 -0
  107. /package/src/{use → --use-deprecated}/use-title.js +0 -0
  108. /package/src/events/{custom-events → custom-events-registry}/click-away.js +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ziko",
3
- "version": "0.49.7",
3
+ "version": "0.50.2",
4
4
  "description": "A versatile JavaScript library offering a rich set of Hyperscript Based UI components, advanced mathematical utilities, interactivity ,animations, client side routing and more ...",
5
5
  "keywords": [
6
6
  "front-end",
@@ -25,6 +25,9 @@
25
25
  "LICENCE"
26
26
  ],
27
27
  "exports": {
28
+ "./src/*": {
29
+ "import" : "./src/*"
30
+ },
28
31
  "./*": {
29
32
  "types" : "./types/*/index.d.ts",
30
33
  "import" : "./src/*/index.js"
@@ -1,8 +1,8 @@
1
- export * from "./contexte"
1
+ // export * from "./contexte"
2
2
  // export * from "./decorators"
3
- export * from "./head"
3
+ // export * from "./head"
4
4
  // export * from "./interactions"
5
5
  // export * from "./sensors"
6
6
  // export * from "./storage"
7
- export * from "./UI"
7
+ // export * from "./UI"
8
8
  // export * from "./window"
@@ -1,3 +1,3 @@
1
1
  export * from "./events";
2
2
  export * from "./observer";
3
- export * from "./hooks";
3
+ // export * from "./hooks";
@@ -1,5 +1,5 @@
1
1
  import { useSessionStorage } from '../hooks/use-storage.js'
2
- export const __State__ = {
2
+ export var __State__ = {
3
3
  store : new Map(),
4
4
  index : 0,
5
5
  session_storage : null,
@@ -1,4 +1,4 @@
1
- import { ZikoHead , useHead} from "../reactivity/hooks/head/index.js";
1
+ // import { ZikoHead , useHead} from "../reactivity/hooks/head/index.js";
2
2
  class ZikoApp {
3
3
  constructor({head = null, wrapper = null, target = null}){
4
4
  this.head = head;
@@ -25,11 +25,11 @@ class ZikoApp {
25
25
  else if(typeof wrapper === "function") this.wrapper = wrapper();
26
26
  return this;
27
27
  }
28
- setHead(head){
29
- if(head instanceof ZikoHead) this.head = head;
30
- else this.head = useHead(head);
31
- return this;
32
- }
28
+ // setHead(head){
29
+ // if(head instanceof ZikoHead) this.head = head;
30
+ // else this.head = useHead(head);
31
+ // return this;
32
+ // }
33
33
 
34
34
  }
35
35
  const App = ({head, wrapper, target}) => new ZikoApp({head, wrapper, target})
@@ -1,14 +1,30 @@
1
- import { preload } from "./preload"
1
+ import { preload } from "./preload";
2
2
 
3
- async function fetchdom(url='https://github.com/zakarialaoui10'){
4
- const data=await fetch(url)
5
- const html=await data.text()
6
- const dom= new DOMParser().parseFromString(html,'text/xml')
7
- return dom.documentElement
3
+ async function fetchdom(url='https://github.com/zakarialaoui10') {
4
+ try {
5
+ const response = await fetch(url);
6
+ if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`);
7
+ const html = await response.text();
8
+ const dom = new DOMParser().parseFromString(html, 'text/html');
9
+ return dom.documentElement;
10
+ } catch (err) {
11
+ console.error('Failed to fetch DOM:', err);
12
+ throw err;
13
+ }
8
14
  }
9
- function fetchdomSync(url='https://github.com/zakarialaoui10'){
10
- const data=preload(url);
11
- const dom= new DOMParser().parseFromString(data,'text/xml')
12
- return dom.documentElement;
15
+
16
+ function fetchdomSync(url='https://github.com/zakarialaoui10') {
17
+ try {
18
+ const data = preload(url);
19
+ const dom = new DOMParser().parseFromString(data, 'text/html');
20
+ return dom.documentElement;
21
+ } catch (err) {
22
+ console.error('Failed to fetch DOM synchronously:', err);
23
+ throw err;
24
+ }
13
25
  }
14
- export {fetchdom,fetchdomSync}
26
+
27
+ export {
28
+ fetchdom,
29
+ fetchdomSync
30
+ };
@@ -1,14 +1,18 @@
1
- import { __ZikoEvent__ } from "../__ZikoEvent__.js";
2
- class ZikoEventCustom extends __ZikoEvent__{
1
+ import { ZikoEvent } from "../ziko-event.js";
2
+ class ZikoCustomEvent extends ZikoEvent{
3
3
  constructor(target, events, customizer){
4
- super(target, events, details_setter, customizer)
4
+ super('custom', target, events, details_setter, customizer)
5
5
  }
6
6
  _register_events(events){
7
7
  super._register_events(events, null, null, false);
8
8
  return this;
9
9
  }
10
- emit(event_name, details = {}){
11
- const event=new Event(event_name);
10
+ emit(event_name, detail = {}){
11
+ const event = new CustomEvent(event_name, {
12
+ detail,
13
+ bubbles: true,
14
+ cancelable: true
15
+ });
12
16
  this.targetElement.dispatchEvent(event);
13
17
  return this;
14
18
  }
@@ -21,9 +25,9 @@ class ZikoEventCustom extends __ZikoEvent__{
21
25
  function details_setter(){
22
26
 
23
27
  }
24
- const bindCustomEvent = (target, events, customizer) => new ZikoEventCustom(target, events, customizer)
28
+ const bind_custom_event = (target, events, customizer) => new ZikoCustomEvent(target, events, customizer)
25
29
 
26
30
  export{
27
- bindCustomEvent,
28
- ZikoEventCustom
31
+ bind_custom_event,
32
+ ZikoCustomEvent
29
33
  }
@@ -1,16 +1,100 @@
1
- export * from "./click.js";
2
- export * from "./clipboard.js";
3
- export * from "./custom-event.js";
4
- export * from "./drag.js";
5
- export * from "./focus.js";
6
- export * from "./hash.js";
7
- export * from "./key.js";
8
- export * from "./mouse.js";
9
- export * from "./pointer.js";
10
- export * from "./touch.js";
11
- export * from "./wheel.js";
1
+ import { ZikoEvent } from "../ziko-event.js";
2
+ import { EventsMap } from "../events-map/index.js";
3
+ import {
4
+ ptr_details_setter,
5
+ key_details_setter
6
+ } from '../details-setter/index.js'
7
+ import {
8
+ register_click_away_event,
9
+ register_view_event,
10
+ register_swipe_event
11
+ } from "../custom-events-registry/index.js";
12
12
 
13
+ export const bind_click_event = (target, customizer) => {
14
+ register_click_away_event(target.element)
15
+ return new ZikoEvent(
16
+ 'click',
17
+ target,
18
+ EventsMap.Click,
19
+ null,
20
+ customizer
21
+ );
22
+ }
23
+ export const bind_clipboard_event = (target, customizer) => new ZikoEvent(
24
+ 'clipboard',
25
+ target,
26
+ EventsMap.Clipboard,
27
+ null,
28
+ customizer
29
+ );
30
+ export const bind_drag_event = (target, customizer) => new ZikoEvent(
31
+ 'drag',
32
+ target,
33
+ EventsMap.Drag,
34
+ null,
35
+ customizer
36
+ );
37
+ export const bind_focus_event = (target, customizer) => new ZikoEvent(
38
+ 'focus',
39
+ target,
40
+ EventsMap.Focus,
41
+ null,
42
+ customizer
43
+ );
44
+ export const bind_key_event = (target, customizer) => new ZikoEvent(
45
+ 'key',
46
+ target,
47
+ EventsMap.Key,
48
+ key_details_setter,
49
+ customizer
50
+ );
51
+ export const bind_mouse_event = (target, customizer) => new ZikoEvent(
52
+ 'mouse',
53
+ target,
54
+ EventsMap.Mouse,
55
+ null,
56
+ customizer
57
+ );
58
+ export const bind_pointer_event = (target, customizer) => new ZikoEvent(
59
+ 'ptr',
60
+ target,
61
+ EventsMap.Ptr,
62
+ ptr_details_setter,
63
+ customizer
64
+ );
65
+ export const bind_touch_event = (target, customizer) => new ZikoEvent(
66
+ 'touch',
67
+ target,
68
+ EventsMap.Touch,
69
+ null,
70
+ customizer
71
+ );
72
+ export const bind_wheel_event = (target, customizer) => new ZikoEvent(
73
+ 'wheel',
74
+ target,
75
+ EventsMap.Wheel,
76
+ null,
77
+ customizer
78
+ );
13
79
 
80
+ export const bind_view_event = (target, customizer) => {
81
+ register_view_event(target.element)
82
+ return new ZikoEvent(
83
+ 'view',
84
+ target,
85
+ EventsMap.View,
86
+ null,
87
+ customizer
88
+ )
89
+ }
14
90
 
15
-
16
- export * from './custom-event.js'
91
+ export const bind_swipe_event = (target, customizer) => {
92
+ register_swipe_event(target.element)
93
+ return new ZikoEvent(
94
+ 'swipe',
95
+ target,
96
+ EventsMap.Swipe,
97
+ null,
98
+ customizer
99
+ )
100
+ }
@@ -0,0 +1,3 @@
1
+ export * from './click-away.js'
2
+ export * from './view.js'
3
+ export * from './swipe.js'
@@ -0,0 +1,76 @@
1
+ class SwipeEvent extends CustomEvent {
2
+ constructor(type, detail) {
3
+ super(type, {
4
+ detail,
5
+ bubbles: true,
6
+ cancelable: true
7
+ });
8
+ }
9
+ }
10
+
11
+ function register_swipe_event(
12
+ element,
13
+ threshold = 50,
14
+ restraint = 100,
15
+ allowedTime = 500
16
+ ) {
17
+ let startX = 0,
18
+ startY = 0,
19
+ startTime = 0,
20
+ isPointerDown = false;
21
+
22
+ function onPointerDown(e) {
23
+ startX = e.clientX;
24
+ startY = e.clientY;
25
+ startTime = performance.now();
26
+ isPointerDown = true;
27
+ }
28
+
29
+ function onPointerUp(e) {
30
+ if (!isPointerDown) return;
31
+ isPointerDown = false;
32
+
33
+ const distX = e.clientX - startX;
34
+ const distY = e.clientY - startY;
35
+ const elapsed = performance.now() - startTime;
36
+
37
+ let direction = null;
38
+ let eventName = null;
39
+
40
+ if (elapsed <= allowedTime) {
41
+ if (Math.abs(distX) >= threshold && Math.abs(distY) <= restraint) {
42
+ direction = distX < 0 ? "left" : "right";
43
+ eventName = "swipe" + direction;
44
+ }
45
+ else if (Math.abs(distY) >= threshold && Math.abs(distX) <= restraint) {
46
+ direction = distY < 0 ? "up" : "down";
47
+ eventName = "swipe" + direction;
48
+ }
49
+ }
50
+
51
+ // Emit event
52
+ if (eventName) {
53
+ element.dispatchEvent(
54
+ new SwipeEvent(eventName, {
55
+ direction,
56
+ distX,
57
+ distY,
58
+ originalEvent: e
59
+ })
60
+ );
61
+ }
62
+ }
63
+
64
+ element.addEventListener("pointerdown", onPointerDown, { passive: true });
65
+ element.addEventListener("pointerup", onPointerUp, { passive: true });
66
+
67
+ return () => {
68
+ element.removeEventListener("pointerdown", onPointerDown);
69
+ element.removeEventListener("pointerup", onPointerUp);
70
+ };
71
+ }
72
+
73
+ export {
74
+ SwipeEvent,
75
+ register_swipe_event
76
+ };
@@ -0,0 +1,74 @@
1
+ import { throttle } from "../../time/decorators/index.js";
2
+ class ViewEvent extends CustomEvent {
3
+ constructor(type, detail, { bubbles = true, cancelable = true } = {}) {
4
+ super(type, { detail, bubbles, cancelable });
5
+ }
6
+ }
7
+
8
+ function register_view_event(
9
+ element,
10
+ {
11
+ intersection = true,
12
+ resize = true,
13
+ threshold = 0,
14
+ throttleResize = 100,
15
+ throttleEnterExit = 0
16
+ } = {}
17
+ ) {
18
+ let intersectionObserver, resizeObserver;
19
+ const resizeCallback = entries => {
20
+ for (let entry of entries) {
21
+ const { width, height } = entry.contentRect;
22
+
23
+ element.dispatchEvent(
24
+ new ViewEvent("resizeview", {
25
+ width,
26
+ height,
27
+ entry
28
+ })
29
+ );
30
+ }
31
+ };
32
+
33
+ const throttledResize = throttleResize > 0
34
+ ? throttle(resizeCallback, throttleResize)
35
+ : resizeCallback;
36
+
37
+ const intersectionCallback = entries => {
38
+ for (let entry of entries) {
39
+ const type = entry.isIntersecting ? "enterview" : "exitview";
40
+ element.dispatchEvent(new ViewEvent(type, entry));
41
+ }
42
+ };
43
+
44
+ const throttledIntersections = throttleEnterExit > 0
45
+ ? throttle(intersectionCallback, throttleEnterExit)
46
+ : intersectionCallback;
47
+
48
+ if (intersection) {
49
+ intersectionObserver = new IntersectionObserver(throttledIntersections, { threshold });
50
+ intersectionObserver.observe(element);
51
+ }
52
+
53
+ if (resize) {
54
+ resizeObserver = new ResizeObserver(throttledResize);
55
+ resizeObserver.observe(element);
56
+ }
57
+
58
+ // ---- UNREGISTER ----
59
+ return () => {
60
+ if (intersectionObserver) {
61
+ intersectionObserver.unobserve(element);
62
+ intersectionObserver.disconnect();
63
+ }
64
+ if (resizeObserver) {
65
+ resizeObserver.unobserve(element);
66
+ resizeObserver.disconnect();
67
+ }
68
+ };
69
+ }
70
+
71
+ export {
72
+ ViewEvent,
73
+ register_view_event
74
+ };
@@ -0,0 +1,2 @@
1
+ export * from './key.js'
2
+ export * from './pointer.js'
@@ -0,0 +1,14 @@
1
+ export function key_details_setter(){
2
+ switch(this.currentEvent){
3
+ case "keydown" : {
4
+ this.kd = this.event.key
5
+ }; break;
6
+ case "keypress" : {
7
+ this.kp = this.event.key
8
+ }; break;
9
+ case "keyup" : {
10
+ this.ku = this.event.key
11
+ }; break;
12
+
13
+ }
14
+ }
@@ -1,12 +1,4 @@
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.Ptr, details_setter, customizer);
6
- this.isDown = false;
7
- }
8
- }
9
- function details_setter(){
1
+ export function ptr_details_setter(){
10
2
  switch(this.currentEvent){
11
3
  case "pointerdown" : {
12
4
  this.dx = parseInt(this.event.offsetX);
@@ -38,10 +30,4 @@ function details_setter(){
38
30
  // if(this.currentEvent==="click") this.dx = 0
39
31
  // else this.dx = 1
40
32
  // console.log(this.currentEvent)
41
- }
42
- const bind_pointer_event = (target, customizer) => new ZikoEventPointer(target, customizer)
43
-
44
- export{
45
- bind_pointer_event,
46
- ZikoEventPointer
47
33
  }
@@ -1,4 +1,4 @@
1
- const Events = {
1
+ const EventsMap = {
2
2
  'Click' : [
3
3
  'Click',
4
4
  'DblClick',
@@ -44,15 +44,27 @@ const Events = {
44
44
  ],
45
45
  'Wheel': [
46
46
  'Wheel'
47
- ]
47
+ ],
48
48
  // 'Media':[
49
49
 
50
50
  // ],
51
51
  // 'Hash':[
52
52
  // "HashChange"
53
53
  // ]
54
+
55
+ 'View':[
56
+ 'EnterView',
57
+ 'ExitView',
58
+ 'ResizeView'
59
+ ],
60
+ 'Swipe':[
61
+ 'SwipeLeft',
62
+ 'SwipeUp',
63
+ 'SwipeRight',
64
+ 'SwipeDown'
65
+ ]
54
66
  }
55
67
 
56
68
  export {
57
- Events
58
- }
69
+ EventsMap
70
+ }
@@ -1,3 +1,3 @@
1
1
  export * from './binders/index.js'
2
- export * from "./__ZikoEvent__.js";
2
+ export * from "./ziko-event.js"
3
3
  export * from "./utils.js";
@@ -1,4 +1,4 @@
1
- export type EventCustomizer = ((this: __ZikoEvent__) => void) | ((ctx: __ZikoEvent__) => void);
1
+ export type EventCustomizer = ((this: ZikoEvent) => void) | ((ctx: ZikoEvent) => void);
2
2
 
3
3
  export type EventMethodesBinder<
4
4
  EventKeys extends string,
@@ -30,11 +30,11 @@ export interface ZikoEventCache {
30
30
  __controllers__: Record<string, (e: Event) => void>;
31
31
  }
32
32
 
33
- export declare class __ZikoEvent__ {
33
+ export declare class ZikoEvent {
34
34
  constructor(
35
35
  target: any,
36
36
  Events: string[],
37
- details_setter?: (this: __ZikoEvent__) => void,
37
+ details_setter?: (this: ZikoEvent) => void,
38
38
  customizer?: EventCustomizer
39
39
  );
40
40
 
@@ -1,8 +1,8 @@
1
- import { __ZikoEvent__ } from "../__ZikoEvent__.js";
1
+ import { ZikoEvent } from "../ziko-event.js";
2
2
  import type { Callback, ClipboardEventKeys } from './__Shared__.js';
3
3
  import { UIElement } from "../../ui/index.js";
4
4
 
5
- declare class ZikoEventClipboard extends __ZikoEvent__ {
5
+ declare class ZikoEventClipboard extends ZikoEvent {
6
6
  constructor(target: any, customizer?: Function);
7
7
 
8
8
  // Explicitly declare the dynamic methods to get editor support
@@ -1,8 +1,8 @@
1
- import { __ZikoEvent__ } from "../__ZikoEvent__.js";
1
+ import { ZikoEvent } from "../ziko-event.js";
2
2
  import type { Callback } from './__Shared__.js';
3
3
  import { UIElement } from "../../ui/index.js";
4
4
 
5
- declare class ZikoEventFocus extends __ZikoEvent__ {
5
+ declare class ZikoEventFocus extends ZikoEvent {
6
6
  constructor(target: any, customizer?: Function);
7
7
 
8
8
  // Explicitly declare the dynamic methods to get editor support
@@ -1,10 +1,10 @@
1
- import { __ZikoEvent__ } from "../__ZikoEvent__.js";
1
+ import { ZikoEvent } from "../ziko-event.js";
2
2
  import type { EventMethodesBinder, Callback, PointerEventKeys } from './__Shared__.js';
3
3
  import { UIElement } from "../../ui/index.js";
4
4
 
5
5
  type PointerEventMethodesBinder = EventMethodesBinder<PointerEventKeys, ZikoEventPointer>;
6
6
 
7
- declare class ZikoEventPointer extends __ZikoEvent__ implements PointerEventMethodesBinder {
7
+ declare class ZikoEventPointer extends ZikoEvent implements PointerEventMethodesBinder {
8
8
  constructor(target: any, customizer?: Function);
9
9
 
10
10
  isDown: boolean;
@@ -1,3 +1,34 @@
1
+ export function event_controller(e, event_name, details_setter, customizer) {
2
+ this.cache.currentEvent = event_name;
3
+ this.cache.event = e;
4
+
5
+ details_setter?.call(this);
6
+ if (customizer?.hasOwnProperty('prototype')) customizer?.call(this);
7
+ else customizer?.call(null, this);
8
+
9
+ if (this.cache.preventDefault[event_name]) e.preventDefault();
10
+ if (this.cache.stopPropagation[event_name]) e.stopPropagation();
11
+ if (this.cache.stopImmediatePropagation[event_name]) e.stopImmediatePropagation();
12
+
13
+ // Call the single callback if it exists
14
+ this.cache.callbacks[event_name]?.(this);
15
+ }
16
+
17
+ export function toggle_event_listener(method, ...events) {
18
+ const keys = events.length === 0
19
+ ? Object.keys(this.cache.paused)
20
+ : events;
21
+ keys.forEach(key => {
22
+ if (!this.cache.paused.hasOwnProperty(key)) return;
23
+ this.targetElement?.[method](
24
+ key,
25
+ this.cache.__controllers__[key],
26
+ this.cache.options[key]
27
+ );
28
+ this.cache.paused[key] = method === 'removeEventListener';
29
+ });
30
+ return this;
31
+ }
1
32
  const getEvent=(event = "")=>{
2
33
  if(event.startsWith("Ptr"))return `pointer${event.split("Ptr")[1].toLowerCase()}`;
3
34
  return event.toLowerCase()