ziko 0.0.18 → 0.0.19

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 (267) hide show
  1. package/package.json +16 -45
  2. package/src/__helpers__/index.js +61 -61
  3. package/src/app/json-style-sheet.js +64 -64
  4. package/src/app/ziko-app.js +38 -38
  5. package/src/data/api/fetchdom.js +13 -13
  6. package/src/data/api/index.js +3 -3
  7. package/src/data/api/preload.js +10 -10
  8. package/src/data/converter/adoc.js +130 -130
  9. package/src/data/converter/array.js +42 -42
  10. package/src/data/converter/canvas.js +24 -24
  11. package/src/data/converter/css.js +36 -36
  12. package/src/data/converter/csv.js +32 -32
  13. package/src/data/converter/idea.txt +9 -9
  14. package/src/data/converter/index.js +36 -36
  15. package/src/data/converter/json.js +80 -80
  16. package/src/data/converter/markdown.js +95 -95
  17. package/src/data/converter/object.js +69 -69
  18. package/src/data/converter/svg.js +10 -10
  19. package/src/data/index.js +16 -16
  20. package/src/data/parser/xml.js +46 -46
  21. package/src/data/string/patterns.js +11 -11
  22. package/src/data/string/string.js +169 -169
  23. package/src/global/{themes → _themes}/dark.js +884 -884
  24. package/src/global/{themes → _themes}/index.js +10 -10
  25. package/src/global/{themes → _themes}/light.js +254 -254
  26. package/src/global/app/index.js +45 -45
  27. package/src/global/component/index.js +38 -38
  28. package/src/global/globals/index.js +20 -20
  29. package/src/global/index.js +3 -11
  30. package/src/global/params/index.js +39 -39
  31. package/src/global/router/index.js +66 -66
  32. package/src/global/seo/index.js +42 -42
  33. package/src/graphics/canvas/canvas.js +176 -176
  34. package/src/graphics/canvas/elements/{basic → Basic}/arc.js +42 -42
  35. package/src/graphics/canvas/elements/{basic → Basic}/line.js +25 -25
  36. package/src/graphics/canvas/elements/{basic → Basic}/points.js +47 -47
  37. package/src/graphics/canvas/elements/{basic → Basic}/polygon.js +6 -6
  38. package/src/graphics/canvas/elements/{basic → Basic}/rect.js +45 -45
  39. package/src/graphics/canvas/elements/{chart → Chart}/scatter.js +2 -2
  40. package/src/graphics/canvas/elements/{element.js → Element.js} +114 -114
  41. package/src/graphics/canvas/elements/index.js +12 -12
  42. package/src/graphics/canvas/index.js +1 -1
  43. package/src/graphics/canvas/utils/color.js +7 -7
  44. package/src/graphics/canvas/utils/floodFill.js +57 -57
  45. package/src/graphics/index.js +9 -9
  46. package/src/graphics/svg/{elements/basic → Elements/Basic}/circle.js +28 -28
  47. package/src/graphics/svg/{elements/basic → Elements/Basic}/ellipse.js +23 -23
  48. package/src/graphics/svg/{elements/basic → Elements/Basic}/foreign-object.js +35 -35
  49. package/src/graphics/svg/{elements/basic → Elements/Basic}/groupe.js +32 -32
  50. package/src/graphics/svg/{elements/basic → Elements/Basic}/image.js +35 -35
  51. package/src/graphics/svg/{elements/basic → Elements/Basic}/line.js +31 -31
  52. package/src/graphics/svg/{elements/basic → Elements/Basic}/link.js +33 -33
  53. package/src/graphics/svg/{elements/basic → Elements/Basic}/path.js +61 -61
  54. package/src/graphics/svg/{elements/basic → Elements/Basic}/polygon.js +31 -31
  55. package/src/graphics/svg/{elements/basic → Elements/Basic}/polyline.js +6 -6
  56. package/src/graphics/svg/{elements/basic → Elements/Basic}/rect.js +45 -45
  57. package/src/graphics/svg/{elements/basic → Elements/Basic}/text.js +28 -28
  58. package/src/graphics/svg/{elements/derived → Elements/Derived}/grid.js +8 -8
  59. package/src/graphics/svg/{elements → Elements}/index.js +2 -2
  60. package/src/graphics/svg/{elements → Elements}/ziko-svg-element.js +48 -48
  61. package/src/graphics/svg/index.js +1 -1
  62. package/src/graphics/svg/svg.js +68 -68
  63. package/src/index.js +85 -85
  64. package/src/math/calculus/index.js +2 -2
  65. package/src/math/calculus/special-functions/bessel.js +30 -30
  66. package/src/math/calculus/special-functions/beta.js +37 -37
  67. package/src/math/calculus/special-functions/gamma.js +29 -29
  68. package/src/math/calculus/special-functions/index.js +4 -4
  69. package/src/math/complex/index.js +202 -202
  70. package/src/math/const.js +2 -2
  71. package/src/math/discret/Combinaison/index.js +33 -33
  72. package/src/math/discret/Conversion/index.js +85 -85
  73. package/src/math/discret/Logic/index.js +45 -45
  74. package/src/math/discret/Permutation/index.js +30 -30
  75. package/src/math/discret/Set/index.js +1 -1
  76. package/src/math/discret/Set/power-set.js +14 -14
  77. package/src/math/discret/Set/sub-set.js +10 -10
  78. package/src/math/discret/index.js +11 -11
  79. package/src/math/functions/index.js +161 -161
  80. package/src/math/index.js +32 -32
  81. package/src/math/matrix/Decomposition.js +90 -90
  82. package/src/math/matrix/LinearSystem.js +9 -9
  83. package/src/math/matrix/Matrix.js +716 -716
  84. package/src/math/matrix/index.js +2 -2
  85. package/src/math/random/index.js +172 -172
  86. package/src/math/signal/__np.py.txt +39 -39
  87. package/src/math/signal/conv.js +174 -174
  88. package/src/math/signal/fft.js +54 -54
  89. package/src/math/signal/filter.js +38 -38
  90. package/src/math/signal/functions.js +145 -145
  91. package/src/math/signal/index.js +109 -109
  92. package/src/math/statistics/Functions/index.js +99 -99
  93. package/src/math/statistics/index.js +15 -15
  94. package/src/math/utils/arithmetic.js +138 -138
  95. package/src/math/utils/checkers.js +29 -29
  96. package/src/math/utils/conversions.js +19 -19
  97. package/src/math/utils/discret.js +51 -51
  98. package/src/math/utils/index.js +101 -101
  99. package/src/math/utils/mapfun.js +49 -49
  100. package/src/reactivity/events/Input.js +61 -61
  101. package/src/reactivity/events/Pointer.js +231 -231
  102. package/src/reactivity/events/ZikoEvent.js +90 -90
  103. package/src/reactivity/events/click.js +59 -59
  104. package/src/reactivity/events/clipboard.js +87 -87
  105. package/src/reactivity/events/custom-event.js +56 -56
  106. package/src/reactivity/events/drag.js +136 -136
  107. package/src/reactivity/events/focus.js +58 -58
  108. package/src/reactivity/events/hash.js +46 -46
  109. package/src/reactivity/events/index.js +12 -12
  110. package/src/reactivity/events/key.js +101 -101
  111. package/src/reactivity/events/mouse.js +232 -232
  112. package/src/reactivity/events/swipe.js +149 -149
  113. package/src/reactivity/events/wheel.js +46 -46
  114. package/src/reactivity/hooks/{contexte → Contexte}/useSuccesifKeys.js +13 -13
  115. package/src/reactivity/hooks/{decorators → Decorators}/index.js +6 -6
  116. package/src/reactivity/hooks/{decorators → Decorators}/time.js +16 -16
  117. package/src/reactivity/hooks/{decorators → Decorators}/type.js +87 -87
  118. package/src/reactivity/hooks/{head/useCssText.js → Head/_useCssText.js} +20 -20
  119. package/src/reactivity/hooks/{head → Head}/index.js +5 -5
  120. package/src/reactivity/hooks/{head → Head}/useFavIcon.js +37 -37
  121. package/src/reactivity/hooks/{head → Head}/useHead.js +27 -27
  122. package/src/reactivity/hooks/{head → Head}/useMeta.js +52 -52
  123. package/src/reactivity/hooks/{head → Head}/useTitle.js +29 -29
  124. package/src/reactivity/hooks/{interactions/useBluetooth.js → Interactions/_useBluetooth.js} +47 -47
  125. package/src/reactivity/hooks/{interactions → Interactions}/index.js +4 -4
  126. package/src/reactivity/hooks/{interactions → Interactions}/useChannel.js +49 -49
  127. package/src/reactivity/hooks/{interactions → Interactions}/useEventEmmiter.js +63 -63
  128. package/src/reactivity/hooks/{interactions → Interactions}/useThread.js +43 -43
  129. package/src/reactivity/hooks/Sensors/index.js +2 -0
  130. package/src/reactivity/hooks/{sensors → Sensors}/useBattery.js +35 -35
  131. package/src/reactivity/hooks/{sensors → Sensors}/useGeolocation.js +16 -16
  132. package/src/reactivity/hooks/{storage → Storage}/useStorage.js +72 -72
  133. package/src/reactivity/hooks/{ui → UI}/index.js +5 -5
  134. package/src/reactivity/hooks/{ui → UI}/useMediaQuery.js +43 -43
  135. package/src/reactivity/hooks/{ui → UI}/useStyle.js +79 -79
  136. package/src/reactivity/hooks/{ui → UI}/useTheme.js +61 -61
  137. package/src/reactivity/hooks/index.js +7 -7
  138. package/src/reactivity/hooks/todo.md +26 -26
  139. package/src/reactivity/idea +1 -1
  140. package/src/reactivity/index.js +11 -11
  141. package/src/reactivity/observer/attributes.js +28 -28
  142. package/src/reactivity/observer/children.js +36 -36
  143. package/src/reactivity/observer/index.js +6 -6
  144. package/src/reactivity/observer/intersection.js +43 -43
  145. package/src/reactivity/observer/mutation.js +112 -112
  146. package/src/reactivity/observer/resize.js +46 -46
  147. package/src/reactivity/observer/screen.js +44 -44
  148. package/src/reactivity/observer/screen.js.txt +83 -83
  149. package/src/reactivity/observer/screen.txt +12 -12
  150. package/src/time/animation.js +75 -75
  151. package/src/time/index.js +11 -11
  152. package/src/time/loop.js +87 -87
  153. package/src/time/utils/decorators.js +16 -16
  154. package/src/time/utils/ease.js +143 -143
  155. package/src/time/utils/index.js +17 -17
  156. package/src/time/utils/performance.js +15 -15
  157. package/src/time/utils/ui.js +25 -25
  158. package/src/types.js +73 -73
  159. package/src/ui/elements/derived/accordion/accordion.js +42 -42
  160. package/src/ui/elements/derived/accordion/collapsible.js +82 -82
  161. package/src/ui/elements/derived/accordion/index.js +1 -1
  162. package/src/ui/elements/derived/alert/alert.js +80 -80
  163. package/src/ui/elements/derived/alert/palette.js +51 -51
  164. package/src/ui/elements/derived/carousel/index.js +50 -50
  165. package/src/ui/elements/derived/code-note/SubElements.js.txt +104 -104
  166. package/src/ui/elements/derived/code-note/code-cell.js +194 -194
  167. package/src/ui/elements/derived/code-note/code-note.js +71 -71
  168. package/src/ui/elements/derived/code-note/index.js +1 -1
  169. package/src/ui/elements/derived/code-note/sub-elements.js +66 -66
  170. package/src/ui/elements/derived/elements/Swipper.js +3 -3
  171. package/src/ui/elements/derived/elements/index.js +9 -9
  172. package/src/ui/elements/derived/flex/index.js +102 -102
  173. package/src/ui/elements/derived/grid/index.js +32 -32
  174. package/src/ui/elements/derived/index.js +11 -11
  175. package/src/ui/elements/derived/menu/menu3d.js +259 -259
  176. package/src/ui/elements/derived/modal/index.js +91 -91
  177. package/src/ui/elements/derived/pagination/breadcrumbs.js +53 -53
  178. package/src/ui/elements/derived/slider/__ZikoUISlider__.js +111 -111
  179. package/src/ui/elements/derived/slider/hSlider.js +33 -33
  180. package/src/ui/elements/derived/slider/index.js +11 -11
  181. package/src/ui/elements/derived/slider/vSlider.js +26 -26
  182. package/src/ui/elements/derived/splitter/__ZikoUISplitter__.js +61 -61
  183. package/src/ui/elements/derived/splitter/hsplitter.js +39 -39
  184. package/src/ui/elements/derived/splitter/index.js +11 -11
  185. package/src/ui/elements/derived/splitter/vsplitter.js +39 -39
  186. package/src/ui/elements/derived/tabs/index.js +179 -179
  187. package/src/ui/elements/primitives/ZikoUIContainerElement.js +163 -163
  188. package/src/ui/elements/primitives/ZikoUIElement.js +492 -492
  189. package/src/ui/elements/primitives/embaded/html.js +19 -19
  190. package/src/ui/elements/primitives/embaded/index.js +3 -3
  191. package/src/ui/elements/primitives/embaded/pdf.js +16 -16
  192. package/src/ui/elements/primitives/embaded/youtube.js +23 -23
  193. package/src/ui/elements/primitives/index.js +7 -7
  194. package/src/ui/elements/primitives/io/Form/index.js +41 -41
  195. package/src/ui/elements/primitives/io/Form/index.js.txt +104 -104
  196. package/src/ui/elements/primitives/io/Inputs/__helpers__.js +51 -51
  197. package/src/ui/elements/primitives/io/Inputs/index.js +12 -12
  198. package/src/ui/elements/primitives/io/Inputs/input/index.js +98 -98
  199. package/src/ui/elements/primitives/io/Inputs/input-camera/index.js +26 -26
  200. package/src/ui/elements/primitives/io/Inputs/input-checkbox/index.js +25 -25
  201. package/src/ui/elements/primitives/io/Inputs/input-color/index.js +15 -15
  202. package/src/ui/elements/primitives/io/Inputs/input-date-time/index.js +2 -2
  203. package/src/ui/elements/primitives/io/Inputs/input-date-time/input-date-time.js +13 -13
  204. package/src/ui/elements/primitives/io/Inputs/input-date-time/input-date.js +13 -13
  205. package/src/ui/elements/primitives/io/Inputs/input-date-time/input-time.js +13 -13
  206. package/src/ui/elements/primitives/io/Inputs/input-email-password/index.js +1 -1
  207. package/src/ui/elements/primitives/io/Inputs/input-email-password/input-email.js +14 -14
  208. package/src/ui/elements/primitives/io/Inputs/input-email-password/input-password.js +13 -13
  209. package/src/ui/elements/primitives/io/Inputs/input-file/input-image.js +42 -42
  210. package/src/ui/elements/primitives/io/Inputs/input-number/index.js +36 -36
  211. package/src/ui/elements/primitives/io/Inputs/input-radio/index.js +25 -25
  212. package/src/ui/elements/primitives/io/Inputs/input-search/index.js +45 -45
  213. package/src/ui/elements/primitives/io/Inputs/input-slider/index.js +34 -34
  214. package/src/ui/elements/primitives/io/Select/index.js +19 -19
  215. package/src/ui/elements/primitives/io/Textarea/index.js +17 -17
  216. package/src/ui/elements/primitives/io/index.js +3 -3
  217. package/src/ui/elements/primitives/list/index.js +138 -138
  218. package/src/ui/elements/primitives/media/Audio/index.js +16 -16
  219. package/src/ui/elements/primitives/media/Image/figure.js +18 -18
  220. package/src/ui/elements/primitives/media/Image/image.js +36 -36
  221. package/src/ui/elements/primitives/media/Image/index.js +1 -1
  222. package/src/ui/elements/primitives/media/Video/index.js +26 -26
  223. package/src/ui/elements/primitives/media/__ZikoUIDynamicMediaELement__.js +46 -46
  224. package/src/ui/elements/primitives/media/index.js +2 -2
  225. package/src/ui/elements/primitives/misc/index.js +101 -101
  226. package/src/ui/elements/primitives/semantic/index.js +81 -81
  227. package/src/ui/elements/primitives/table/elements.js +93 -93
  228. package/src/ui/elements/primitives/table/index.js +2 -2
  229. package/src/ui/elements/primitives/table/table.js +115 -115
  230. package/src/ui/elements/primitives/table/utils.js +11 -11
  231. package/src/ui/elements/primitives/text/__ZikoUIText__.js +71 -71
  232. package/src/ui/elements/primitives/text/heading.js +35 -35
  233. package/src/ui/elements/primitives/text/index.js +2 -2
  234. package/src/ui/elements/primitives/text/p.js +26 -26
  235. package/src/ui/elements/primitives/text/text.js +80 -80
  236. package/src/ui/index.js +37 -37
  237. package/src/ui/style/index.js +504 -515
  238. package/src/ui/utils/index.js +69 -69
  239. package/starter/bin/index.js +11 -11
  240. package/dist/ziko.cjs +0 -12596
  241. package/dist/ziko.js +0 -13487
  242. package/dist/ziko.min.js +0 -9
  243. package/dist/ziko.mjs +0 -13118
  244. package/src/reactivity/hooks/sensors/index.js +0 -2
  245. /package/{readme.md → README.md} +0 -0
  246. /package/src/graphics/canvas/elements/{basic → Basic}/image.js +0 -0
  247. /package/src/graphics/canvas/elements/{basic → Basic}/path.js +0 -0
  248. /package/src/graphics/canvas/elements/{basic → Basic}/polyline.js +0 -0
  249. /package/src/graphics/canvas/elements/{basic → Basic}/text.js +0 -0
  250. /package/src/graphics/canvas/elements/{chart → Chart}/histogram.js +0 -0
  251. /package/src/graphics/canvas/elements/{chart → Chart}/plot.js +0 -0
  252. /package/src/graphics/canvas/elements/{chart → Chart}/stem.js +0 -0
  253. /package/src/graphics/svg/{elements/basic → Elements/Basic}/index.js +0 -0
  254. /package/src/graphics/svg/{elements/derived → Elements/Derived}/index.js +0 -0
  255. /package/src/reactivity/hooks/{contexte → Contexte}/index.js +0 -0
  256. /package/src/reactivity/hooks/{interactions → Interactions}/useSerial.js +0 -0
  257. /package/src/reactivity/hooks/{interactions → Interactions}/useUsb.js +0 -0
  258. /package/src/reactivity/hooks/{sensors → Sensors}/useCamera.js +0 -0
  259. /package/src/reactivity/hooks/{sensors → Sensors}/useMicro.js +0 -0
  260. /package/src/reactivity/hooks/{sensors → Sensors}/useOrientation.js +0 -0
  261. /package/src/reactivity/hooks/{storage → Storage}/index.js +0 -0
  262. /package/src/reactivity/hooks/{storage → Storage}/useCookie.js +0 -0
  263. /package/src/reactivity/hooks/{storage → Storage}/useIndexedDb.js +0 -0
  264. /package/src/reactivity/hooks/{ui → UI}/useCssLink.js +0 -0
  265. /package/src/reactivity/hooks/{ui → UI}/useLinearGradient.js +0 -0
  266. /package/src/reactivity/hooks/{ui → UI}/useRadialGradient.js +0 -0
  267. /package/src/reactivity/hooks/{ui → UI}/useRoot.js +0 -0
@@ -1,149 +1,149 @@
1
- import { ZikoEvent, EVENT_CONTROLLER } from "./ZikoEvent.js";
2
- import { norm, lerp, abs, sign } from "../../math/index.js";
3
- class ZikoEventSwipe extends ZikoEvent {
4
- constructor(target, width_threshold = 0.3, height_threshold = 0.3) {
5
- super(target);
6
- const { removeListener, setWidthThreshold, setHeightThreshold } = init_swipe_event_handler(
7
- this.target?.element,
8
- width_threshold,
9
- height_threshold,
10
- this.target.width,
11
- this.target.height,
12
- );
13
- this.cache = {
14
- width_threshold,
15
- height_threshold,
16
- removeListener,
17
- setWidthThreshold,
18
- setHeightThreshold,
19
- legacyTouchAction : globalThis?.document?.body?.style?.touchAction,
20
- prefixe: "",
21
- preventDefault: {
22
- swipe: false,
23
- },
24
- paused: {
25
- swipe: false,
26
- },
27
- stream: {
28
- enabled: {
29
- swipe: false,
30
- },
31
- clear: {
32
- swipe: false,
33
- },
34
- history: {
35
- swipe: [],
36
- },
37
- },
38
- callbacks: {
39
- swipe: [],
40
- },
41
- };
42
- this.__controller = {
43
- swipe: swipe_controller.bind(this),
44
- };
45
- }
46
- onSwipe(...callbacks) {
47
- Object.assign(globalThis?.document?.body?.style,{touchAction:"none"})
48
- this.__onEvent("swipe", {}, ...callbacks);
49
- return this;
50
- }
51
- updateThresholds(width_threshold = this.cache.width_threshold, height_threshold = this.cache.height_threshold) {
52
- if (width_threshold !== undefined) {
53
- this.cache.setWidthThreshold(width_threshold);
54
- }
55
- if (height_threshold !== undefined) {
56
- this.cache.setHeightThreshold(height_threshold);
57
- }
58
- return this;
59
- }
60
- destroy() {
61
- this.cache.removeListener();
62
- Object.assign(globalThis?.document?.body?.style,{touchAction:this.cache.legacyTouchAction})
63
- return this;
64
- }
65
- }
66
- function init_swipe_event_handler(element, width_threshold = 0.50, height_threshold = 0.5, width, height) {
67
- let Interpolated_width_threshold = lerp(width_threshold, 0, width);
68
- let Interpolated_height_threshold = lerp(height_threshold, 0, height);
69
- let startX = 0, startY = 0, endX = 0, endY = 0;
70
- const pointerDownHandler = (event) => {
71
- startX = event.clientX;
72
- startY = event.clientY;
73
- };
74
- const pointerUpHandler = (event) => {
75
- endX = event.clientX;
76
- endY = event.clientY;
77
- handleSwipe();
78
- };
79
- element?.addEventListener('pointerdown', pointerDownHandler);
80
- element?.addEventListener('pointerup', pointerUpHandler);
81
- function handleSwipe() {
82
- const deltaX = endX - startX;
83
- const deltaY = endY - startY;
84
- if (Math.abs(deltaX) > Interpolated_width_threshold || Math.abs(deltaY) > Interpolated_height_threshold) {
85
- dispatchSwipeEvent(deltaX, deltaY);
86
- }
87
- }
88
- function dispatchSwipeEvent(deltaX, deltaY) {
89
- const event = globalThis?.CustomEvent ? new CustomEvent('swipe', {
90
- detail: {
91
- deltaX: abs(deltaX) < Interpolated_width_threshold ? 0 : sign(deltaX) * norm(abs(deltaX), 0, width),
92
- deltaY: abs(deltaY) < Interpolated_height_threshold ? 0 : sign(deltaY) * norm(abs(deltaY), 0, height),
93
- direction: {
94
- x : abs(deltaX) < Interpolated_width_threshold ? "none" : deltaX > 0 ? "right" : "left",
95
- y : abs(deltaY) < Interpolated_height_threshold ? "none" : deltaY > 0 ? 'down' : 'up',
96
- },
97
- },
98
- }) : null;
99
- element?.dispatchEvent(event);
100
- }
101
- function setWidthThreshold(new_width_threshold) {
102
- Interpolated_width_threshold = lerp(new_width_threshold, 0, width);
103
- }
104
- function setHeightThreshold(new_height_threshold) {
105
- Interpolated_height_threshold = lerp(new_height_threshold, 0, height);
106
- }
107
- return {
108
- removeListener() {
109
- element?.removeEventListener('pointerdown', pointerDownHandler);
110
- element?.removeEventListener('pointerup', pointerUpHandler);
111
- console.log('Swipe event listeners removed');
112
- },
113
- setWidthThreshold,
114
- setHeightThreshold,
115
- };
116
- }
117
- function swipe_controller(e) {
118
- EVENT_CONTROLLER.call(this, e, "swipe", null, null);
119
- }
120
- const useSwipeEvent = (target, width_threshold, height_threshold) => new ZikoEventSwipe(target, width_threshold, height_threshold);
121
- export{
122
- useSwipeEvent,
123
- ZikoEventSwipe
124
- }
125
- /*
126
- a=p("ALLL").size("300px","300px").style({background:"red",userSelect:"none"})
127
- t=text("")
128
- ev=useSwipeEvent(a, .1, .3)
129
- ev.onSwipe(e=>{
130
- // t.setValue(`
131
- // vertical direction : ${e.event.detail.direction.y}
132
- // horizontal direction : ${e.event.detail.direction.x}
133
- // deltaX : ${e.event.detail.deltaX}
134
- // deltaY : ${e.event.detail.deltaY}
135
- // `)
136
- e.target.st.translate(e.event.detail.deltaX * 200, e.event.detail.deltaY * 200,0, 500)
137
- })
138
- */
139
- /*
140
- a=p("ALLL")
141
- .size("300px","300px")
142
- .style({background:"red",userSelect:"none"})
143
- .onSwipe(
144
- .3,
145
- .3,
146
- e=>{
147
- e.target.st.translate(e.event.detail.deltaX * 200, e.event.detail.deltaY * 200,0, 500)
148
- })
149
- */
1
+ import { ZikoEvent, EVENT_CONTROLLER } from "./ZikoEvent.js";
2
+ import { norm, lerp, abs, sign } from "../../math/index.js";
3
+ class ZikoEventSwipe extends ZikoEvent {
4
+ constructor(target, width_threshold = 0.3, height_threshold = 0.3) {
5
+ super(target);
6
+ const { removeListener, setWidthThreshold, setHeightThreshold } = init_swipe_event_handler(
7
+ this.target?.element,
8
+ width_threshold,
9
+ height_threshold,
10
+ this.target.width,
11
+ this.target.height,
12
+ );
13
+ this.cache = {
14
+ width_threshold,
15
+ height_threshold,
16
+ removeListener,
17
+ setWidthThreshold,
18
+ setHeightThreshold,
19
+ legacyTouchAction : globalThis?.document?.body?.style?.touchAction,
20
+ prefixe: "",
21
+ preventDefault: {
22
+ swipe: false,
23
+ },
24
+ paused: {
25
+ swipe: false,
26
+ },
27
+ stream: {
28
+ enabled: {
29
+ swipe: false,
30
+ },
31
+ clear: {
32
+ swipe: false,
33
+ },
34
+ history: {
35
+ swipe: [],
36
+ },
37
+ },
38
+ callbacks: {
39
+ swipe: [],
40
+ },
41
+ };
42
+ this.__controller = {
43
+ swipe: swipe_controller.bind(this),
44
+ };
45
+ }
46
+ onSwipe(...callbacks) {
47
+ Object.assign(globalThis?.document?.body?.style,{touchAction:"none"})
48
+ this.__onEvent("swipe", {}, ...callbacks);
49
+ return this;
50
+ }
51
+ updateThresholds(width_threshold = this.cache.width_threshold, height_threshold = this.cache.height_threshold) {
52
+ if (width_threshold !== undefined) {
53
+ this.cache.setWidthThreshold(width_threshold);
54
+ }
55
+ if (height_threshold !== undefined) {
56
+ this.cache.setHeightThreshold(height_threshold);
57
+ }
58
+ return this;
59
+ }
60
+ destroy() {
61
+ this.cache.removeListener();
62
+ Object.assign(globalThis?.document?.body?.style,{touchAction:this.cache.legacyTouchAction})
63
+ return this;
64
+ }
65
+ }
66
+ function init_swipe_event_handler(element, width_threshold = 0.50, height_threshold = 0.5, width, height) {
67
+ let Interpolated_width_threshold = lerp(width_threshold, 0, width);
68
+ let Interpolated_height_threshold = lerp(height_threshold, 0, height);
69
+ let startX = 0, startY = 0, endX = 0, endY = 0;
70
+ const pointerDownHandler = (event) => {
71
+ startX = event.clientX;
72
+ startY = event.clientY;
73
+ };
74
+ const pointerUpHandler = (event) => {
75
+ endX = event.clientX;
76
+ endY = event.clientY;
77
+ handleSwipe();
78
+ };
79
+ element?.addEventListener('pointerdown', pointerDownHandler);
80
+ element?.addEventListener('pointerup', pointerUpHandler);
81
+ function handleSwipe() {
82
+ const deltaX = endX - startX;
83
+ const deltaY = endY - startY;
84
+ if (Math.abs(deltaX) > Interpolated_width_threshold || Math.abs(deltaY) > Interpolated_height_threshold) {
85
+ dispatchSwipeEvent(deltaX, deltaY);
86
+ }
87
+ }
88
+ function dispatchSwipeEvent(deltaX, deltaY) {
89
+ const event = globalThis?.CustomEvent ? new CustomEvent('swipe', {
90
+ detail: {
91
+ deltaX: abs(deltaX) < Interpolated_width_threshold ? 0 : sign(deltaX) * norm(abs(deltaX), 0, width),
92
+ deltaY: abs(deltaY) < Interpolated_height_threshold ? 0 : sign(deltaY) * norm(abs(deltaY), 0, height),
93
+ direction: {
94
+ x : abs(deltaX) < Interpolated_width_threshold ? "none" : deltaX > 0 ? "right" : "left",
95
+ y : abs(deltaY) < Interpolated_height_threshold ? "none" : deltaY > 0 ? 'down' : 'up',
96
+ },
97
+ },
98
+ }) : null;
99
+ element?.dispatchEvent(event);
100
+ }
101
+ function setWidthThreshold(new_width_threshold) {
102
+ Interpolated_width_threshold = lerp(new_width_threshold, 0, width);
103
+ }
104
+ function setHeightThreshold(new_height_threshold) {
105
+ Interpolated_height_threshold = lerp(new_height_threshold, 0, height);
106
+ }
107
+ return {
108
+ removeListener() {
109
+ element?.removeEventListener('pointerdown', pointerDownHandler);
110
+ element?.removeEventListener('pointerup', pointerUpHandler);
111
+ console.log('Swipe event listeners removed');
112
+ },
113
+ setWidthThreshold,
114
+ setHeightThreshold,
115
+ };
116
+ }
117
+ function swipe_controller(e) {
118
+ EVENT_CONTROLLER.call(this, e, "swipe", null, null);
119
+ }
120
+ const useSwipeEvent = (target, width_threshold, height_threshold) => new ZikoEventSwipe(target, width_threshold, height_threshold);
121
+ export{
122
+ useSwipeEvent,
123
+ ZikoEventSwipe
124
+ }
125
+ /*
126
+ a=p("ALLL").size("300px","300px").style({background:"red",userSelect:"none"})
127
+ t=text("")
128
+ ev=useSwipeEvent(a, .1, .3)
129
+ ev.onSwipe(e=>{
130
+ // t.setValue(`
131
+ // vertical direction : ${e.event.detail.direction.y}
132
+ // horizontal direction : ${e.event.detail.direction.x}
133
+ // deltaX : ${e.event.detail.deltaX}
134
+ // deltaY : ${e.event.detail.deltaY}
135
+ // `)
136
+ e.target.st.translate(e.event.detail.deltaX * 200, e.event.detail.deltaY * 200,0, 500)
137
+ })
138
+ */
139
+ /*
140
+ a=p("ALLL")
141
+ .size("300px","300px")
142
+ .style({background:"red",userSelect:"none"})
143
+ .onSwipe(
144
+ .3,
145
+ .3,
146
+ e=>{
147
+ e.target.st.translate(e.event.detail.deltaX * 200, e.event.detail.deltaY * 200,0, 500)
148
+ })
149
+ */
@@ -1,47 +1,47 @@
1
- import { ZikoEvent , EVENT_CONTROLLER } from "./ZikoEvent.js";
2
- function wheel_controller(e){
3
- EVENT_CONTROLLER.call(this,e,"wheel",null,null)
4
- }
5
- class ZikoEventWheel extends ZikoEvent{
6
- constructor(target){
7
- super(target);
8
- this.event=null;
9
- this.cache={
10
- prefixe:"",
11
- preventDefault:{
12
- wheel:false,
13
- },
14
- paused:{
15
- wheel:false,
16
- },
17
- stream:{
18
- enabled:{
19
- wheel:false,
20
-
21
- },
22
- clear:{
23
- wheel:false,
24
-
25
- },
26
- history:{
27
- wheel:[],
28
- }
29
- },
30
- callbacks:{
31
- click:[],
32
- }
33
- }
34
- this.__controller={
35
- wheel:wheel_controller.bind(this),
36
- }
37
- }
38
- onWheel(...callbacks){
39
- this.__onEvent("wheel",{},...callbacks)
40
- return this;
41
- }
42
- }
43
- const useWheelEvent=target=>new ZikoEventWheel(target);
44
- export{
45
- useWheelEvent,
46
- ZikoEventWheel
1
+ import { ZikoEvent , EVENT_CONTROLLER } from "./ZikoEvent.js";
2
+ function wheel_controller(e){
3
+ EVENT_CONTROLLER.call(this,e,"wheel",null,null)
4
+ }
5
+ class ZikoEventWheel extends ZikoEvent{
6
+ constructor(target){
7
+ super(target);
8
+ this.event=null;
9
+ this.cache={
10
+ prefixe:"",
11
+ preventDefault:{
12
+ wheel:false,
13
+ },
14
+ paused:{
15
+ wheel:false,
16
+ },
17
+ stream:{
18
+ enabled:{
19
+ wheel:false,
20
+
21
+ },
22
+ clear:{
23
+ wheel:false,
24
+
25
+ },
26
+ history:{
27
+ wheel:[],
28
+ }
29
+ },
30
+ callbacks:{
31
+ click:[],
32
+ }
33
+ }
34
+ this.__controller={
35
+ wheel:wheel_controller.bind(this),
36
+ }
37
+ }
38
+ onWheel(...callbacks){
39
+ this.__onEvent("wheel",{},...callbacks)
40
+ return this;
41
+ }
42
+ }
43
+ const useWheelEvent=target=>new ZikoEventWheel(target);
44
+ export{
45
+ useWheelEvent,
46
+ ZikoEventWheel
47
47
  }
@@ -1,14 +1,14 @@
1
- const useSuccesifKeys=(self,keys=[],callback=()=>{})=>{
2
- self.cache.stream.enabled.down=true;
3
- const length=keys.length;
4
- const LastKeysDown=self.cache.stream.history.down.slice(-length).map(n=>n.key);
5
-
6
- if(keys.join("")===LastKeysDown.join("")){
7
- self.event.preventDefault();
8
- callback.call(self,self);
9
- }
10
-
11
- }
12
- export {
13
- useSuccesifKeys
1
+ const useSuccesifKeys=(self,keys=[],callback=()=>{})=>{
2
+ self.cache.stream.enabled.down=true;
3
+ const length=keys.length;
4
+ const LastKeysDown=self.cache.stream.history.down.slice(-length).map(n=>n.key);
5
+
6
+ if(keys.join("")===LastKeysDown.join("")){
7
+ self.event.preventDefault();
8
+ callback.call(self,self);
9
+ }
10
+
11
+ }
12
+ export {
13
+ useSuccesifKeys
14
14
  }
@@ -1,6 +1,6 @@
1
- export { useType } from "./type";
2
-
3
- export {
4
- useThrottle,
5
- useDebounce
6
- } from "../../../time";
1
+ export { useType } from "./type";
2
+
3
+ export {
4
+ useThrottle,
5
+ useDebounce
6
+ } from "../../../time";
@@ -1,17 +1,17 @@
1
- const useDebounce=(fn,delay=1000)=>{
2
- let id;
3
- return(...args)=>id?clearTimeout(id):setTimeout(()=>fn(...args),delay)
4
- }
5
- const useThrottle=(fn,delay)=>{
6
- let lastTime=0;
7
- return (...args)=>{
8
- const now=new Date().getTime()
9
- if(now-lastTime<delay)return;
10
- lastTime=now;
11
- fn(...args);
12
- }
13
- }
14
- export{
15
- useDebounce,
16
- useThrottle
1
+ const useDebounce=(fn,delay=1000)=>{
2
+ let id;
3
+ return(...args)=>id?clearTimeout(id):setTimeout(()=>fn(...args),delay)
4
+ }
5
+ const useThrottle=(fn,delay)=>{
6
+ let lastTime=0;
7
+ return (...args)=>{
8
+ const now=new Date().getTime()
9
+ if(now-lastTime<delay)return;
10
+ lastTime=now;
11
+ fn(...args);
12
+ }
13
+ }
14
+ export{
15
+ useDebounce,
16
+ useThrottle
17
17
  }
@@ -1,88 +1,88 @@
1
- function useType(func, ...expectedTypes) {
2
- const argNames = func.toString()
3
- .match(/\(([^)]*)\)/)[1]
4
- .split(',')
5
- .map(arg => arg.trim());
6
- return function(...args) {
7
- const lastExpectedType = expectedTypes[expectedTypes.length - 1];
8
- for (let i = 0; i < args.length; i++) {
9
- const isRestParam = i >= expectedTypes.length;
10
- const expectedType = isRestParam ? lastExpectedType : expectedTypes[i];
11
- const arg = args[i];
12
- const argName = isRestParam ? `${argNames[argNames.length - 1]}[${i - expectedTypes.length + 1}]` : argNames[i] || `Argument ${i + 1}`;
13
- let isValid = false;
14
- if(typeof expectedType === "object"){
15
- if (expectedType.or) {
16
- for (const type of expectedType.types) {
17
- if (checkTypeOrInstance(type, arg)) {
18
- isValid = true;
19
- break;
20
- }
21
- }
22
- }
23
- if (expectedType.nor) {
24
- for (const type of expectedType.types) {
25
- if (checkTypeOrInstance(type, arg)) {
26
- isValid = false;
27
- break;
28
- }
29
- isValid = true
30
- }
31
- }
32
- else if (expectedType.not) isValid = !checkTypeOrInstance(expectedType.type, arg);
33
- }
34
- else isValid = checkTypeOrInstance(expectedType, arg);
35
- // Should Fix Nor error Message
36
- if (!isValid) {
37
- // const expectedTypeName = typeof expectedType === 'object'
38
- // ? expectedType.or
39
- // ? expectedType.types.map(type => (typeof type === 'string' ? type : type.name)).join(' or ')
40
- // : expectedType.not
41
- // ? `not ${typeof expectedType.type === 'string' ? expectedType.type : expectedType.type.name}`
42
- // : Array.isArray(expectedType)
43
- // ? `[${expectedType.map(type => (typeof type === 'string' ? type : type.name)).join(', ')}]`
44
- // : `{${Object.entries(expectedType).map(([key, type]) => `${key}: ${typeof type === 'string' ? type : type.name}`).join(', ')}}`
45
- // : typeof expectedType === 'string'
46
- // ? expectedType
47
- // : expectedType.name;
48
- // throw new TypeError(`${argName} should be of type ${expectedTypeName}`);
49
- throw new TypeError("jjj")
50
- }
51
- }
52
- return func(...args);
53
- };
54
- }
55
-
56
- function useOr(...types) {
57
- return { or: true, types };
58
- }
59
- function useNot(type) {
60
- return { not: true, type };
61
- }
62
- function useNor(...types){
63
- return { nor: true, types}
64
- }
65
- const checkTypeOrInstance = (type, arg) => {
66
- if (typeof type === 'string') return typeof arg === type;
67
- else if (type instanceof Function) return arg instanceof type;
68
- else if (Array.isArray(type))
69
- return (!Array.isArray(arg) || arg.length !== type.length)? false: arg.every((item, index) => checkTypeOrInstance(type[index], item));
70
- else if (typeof type === 'object' && !Array.isArray(type))
71
- return (typeof arg !== 'object' || arg === null)? false : Object.keys(type).every(key => key in arg && checkTypeOrInstance(type[key], arg[key]))
72
- return false;
73
- };
74
- // globalThis.useType = useType
75
- // globalThis.useNot = useNot
76
- // globalThis.useOr = useOr
77
-
78
- // function add(a, b = 0){
79
- // return a+b
80
- // }
81
-
82
- // add = useType(add,"number",useNor("string","number"))
83
-
84
- // console.log(add(1))
85
-
86
- export{
87
- useType
1
+ function useType(func, ...expectedTypes) {
2
+ const argNames = func.toString()
3
+ .match(/\(([^)]*)\)/)[1]
4
+ .split(',')
5
+ .map(arg => arg.trim());
6
+ return function(...args) {
7
+ const lastExpectedType = expectedTypes[expectedTypes.length - 1];
8
+ for (let i = 0; i < args.length; i++) {
9
+ const isRestParam = i >= expectedTypes.length;
10
+ const expectedType = isRestParam ? lastExpectedType : expectedTypes[i];
11
+ const arg = args[i];
12
+ const argName = isRestParam ? `${argNames[argNames.length - 1]}[${i - expectedTypes.length + 1}]` : argNames[i] || `Argument ${i + 1}`;
13
+ let isValid = false;
14
+ if(typeof expectedType === "object"){
15
+ if (expectedType.or) {
16
+ for (const type of expectedType.types) {
17
+ if (checkTypeOrInstance(type, arg)) {
18
+ isValid = true;
19
+ break;
20
+ }
21
+ }
22
+ }
23
+ if (expectedType.nor) {
24
+ for (const type of expectedType.types) {
25
+ if (checkTypeOrInstance(type, arg)) {
26
+ isValid = false;
27
+ break;
28
+ }
29
+ isValid = true
30
+ }
31
+ }
32
+ else if (expectedType.not) isValid = !checkTypeOrInstance(expectedType.type, arg);
33
+ }
34
+ else isValid = checkTypeOrInstance(expectedType, arg);
35
+ // Should Fix Nor error Message
36
+ if (!isValid) {
37
+ // const expectedTypeName = typeof expectedType === 'object'
38
+ // ? expectedType.or
39
+ // ? expectedType.types.map(type => (typeof type === 'string' ? type : type.name)).join(' or ')
40
+ // : expectedType.not
41
+ // ? `not ${typeof expectedType.type === 'string' ? expectedType.type : expectedType.type.name}`
42
+ // : Array.isArray(expectedType)
43
+ // ? `[${expectedType.map(type => (typeof type === 'string' ? type : type.name)).join(', ')}]`
44
+ // : `{${Object.entries(expectedType).map(([key, type]) => `${key}: ${typeof type === 'string' ? type : type.name}`).join(', ')}}`
45
+ // : typeof expectedType === 'string'
46
+ // ? expectedType
47
+ // : expectedType.name;
48
+ // throw new TypeError(`${argName} should be of type ${expectedTypeName}`);
49
+ throw new TypeError("jjj")
50
+ }
51
+ }
52
+ return func(...args);
53
+ };
54
+ }
55
+
56
+ function useOr(...types) {
57
+ return { or: true, types };
58
+ }
59
+ function useNot(type) {
60
+ return { not: true, type };
61
+ }
62
+ function useNor(...types){
63
+ return { nor: true, types}
64
+ }
65
+ const checkTypeOrInstance = (type, arg) => {
66
+ if (typeof type === 'string') return typeof arg === type;
67
+ else if (type instanceof Function) return arg instanceof type;
68
+ else if (Array.isArray(type))
69
+ return (!Array.isArray(arg) || arg.length !== type.length)? false: arg.every((item, index) => checkTypeOrInstance(type[index], item));
70
+ else if (typeof type === 'object' && !Array.isArray(type))
71
+ return (typeof arg !== 'object' || arg === null)? false : Object.keys(type).every(key => key in arg && checkTypeOrInstance(type[key], arg[key]))
72
+ return false;
73
+ };
74
+ // globalThis.useType = useType
75
+ // globalThis.useNot = useNot
76
+ // globalThis.useOr = useOr
77
+
78
+ // function add(a, b = 0){
79
+ // return a+b
80
+ // }
81
+
82
+ // add = useType(add,"number",useNor("string","number"))
83
+
84
+ // console.log(add(1))
85
+
86
+ export{
87
+ useType
88
88
  }