ziko 0.0.14 → 0.0.15

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 (289) hide show
  1. package/dist/ziko.cjs +13347 -11831
  2. package/dist/ziko.js +13867 -12409
  3. package/dist/ziko.min.js +2 -2
  4. package/dist/ziko.mjs +13282 -11828
  5. package/package.json +2 -1
  6. package/src/__helpers__/index.js +61 -41
  7. package/src/app/index.js +20 -12
  8. package/src/app/json-style-sheet.js +64 -0
  9. package/src/app/routes.js +58 -0
  10. package/src/app/spa.js +56 -0
  11. package/src/app/ziko-app.js +39 -0
  12. package/src/data/api/fetchdom.js +13 -13
  13. package/src/data/api/index.js +3 -3
  14. package/src/data/api/preload.js +10 -10
  15. package/src/data/converter/adoc.js +130 -130
  16. package/src/data/converter/array.js +42 -42
  17. package/src/data/converter/canvas.js +24 -24
  18. package/src/data/converter/css.js +37 -0
  19. package/src/data/converter/csv.js +32 -32
  20. package/src/data/converter/idea.txt +9 -9
  21. package/src/data/converter/index.js +37 -34
  22. package/src/data/converter/json.js +80 -80
  23. package/src/data/converter/markdown.js +95 -95
  24. package/src/data/converter/object.js +69 -69
  25. package/src/data/converter/svg.js +10 -10
  26. package/src/data/index.js +16 -73
  27. package/src/data/parser/index.js +1 -0
  28. package/src/data/parser/xml.js +46 -46
  29. package/src/data/string/patterns.js +11 -11
  30. package/src/data/string/string.js +169 -169
  31. package/src/{app/app.js → global/app/index.js} +45 -45
  32. package/src/{app → global}/component/index.js +38 -38
  33. package/src/global/globals/index.js +20 -0
  34. package/src/global/index.js +12 -0
  35. package/src/global/params/index.js +40 -0
  36. package/src/{app → global}/router/index.js +66 -66
  37. package/src/{app → global}/seo/index.js +42 -42
  38. package/src/global/style/index.js +1 -0
  39. package/src/{app → global}/themes/dark.js +884 -884
  40. package/src/{app → global}/themes/index.js +10 -10
  41. package/src/{app → global}/themes/light.js +254 -254
  42. package/src/graphics/canvas/canvas.js +188 -188
  43. package/src/graphics/canvas/elements/Basic/arc.js +42 -42
  44. package/src/graphics/canvas/elements/Basic/line.js +25 -25
  45. package/src/graphics/canvas/elements/Basic/points.js +47 -47
  46. package/src/graphics/canvas/elements/Basic/polygon.js +6 -6
  47. package/src/graphics/canvas/elements/Basic/rect.js +45 -45
  48. package/src/graphics/canvas/elements/Chart/scatter.js +2 -2
  49. package/src/graphics/canvas/elements/Element.js +114 -114
  50. package/src/graphics/canvas/elements/index.js +12 -12
  51. package/src/graphics/canvas/index.js +14 -14
  52. package/src/graphics/canvas/utils/color.js +7 -7
  53. package/src/graphics/canvas/utils/floodFill.js +57 -57
  54. package/src/graphics/index.js +68 -68
  55. package/src/graphics/svg/Elements/Basic/circle.js +25 -25
  56. package/src/graphics/svg/Elements/Basic/ellipse.js +20 -20
  57. package/src/graphics/svg/Elements/Basic/foreignObject.js +32 -32
  58. package/src/graphics/svg/Elements/Basic/groupe.js +29 -29
  59. package/src/graphics/svg/Elements/Basic/image.js +32 -32
  60. package/src/graphics/svg/Elements/Basic/line.js +28 -28
  61. package/src/graphics/svg/Elements/Basic/link.js +30 -30
  62. package/src/graphics/svg/Elements/Basic/path.js +58 -58
  63. package/src/graphics/svg/Elements/Basic/polygon.js +31 -31
  64. package/src/graphics/svg/Elements/Basic/polyline.js +3 -3
  65. package/src/graphics/svg/Elements/Basic/rect.js +42 -42
  66. package/src/graphics/svg/Elements/Basic/text.js +25 -25
  67. package/src/graphics/svg/Elements/Derived/grid.js +8 -8
  68. package/src/graphics/svg/Elements/ZikoSvgElement.js +46 -46
  69. package/src/graphics/svg/Elements/index.js +14 -14
  70. package/src/graphics/svg/index.js +1 -1
  71. package/src/graphics/svg/svg.js +114 -114
  72. package/src/index.js +83 -88
  73. package/src/math/calculus/derivation/index.js +7 -0
  74. package/src/math/calculus/index.js +2 -1
  75. package/src/math/calculus/special-functions/bessel.js +30 -30
  76. package/src/math/calculus/special-functions/beta.js +37 -37
  77. package/src/math/calculus/special-functions/gamma.js +29 -29
  78. package/src/math/calculus/special-functions/index.js +4 -4
  79. package/src/math/complex/index.js +202 -202
  80. package/src/math/const.js +2 -2
  81. package/src/math/discret/Combinaison/index.js +33 -33
  82. package/src/math/discret/Conversion/index.js +85 -85
  83. package/src/math/discret/Logic/index.js +45 -45
  84. package/src/math/discret/Permutation/index.js +30 -30
  85. package/src/math/discret/Set/index.js +1 -1
  86. package/src/math/discret/Set/power-set.js +14 -14
  87. package/src/math/discret/Set/sub-set.js +10 -10
  88. package/src/math/discret/index.js +12 -23
  89. package/src/math/functions/helper.js +20 -0
  90. package/src/math/functions/index.js +161 -181
  91. package/src/math/index.js +32 -189
  92. package/src/math/matrix/Decomposition.js +90 -90
  93. package/src/math/matrix/LinearSystem.js +9 -9
  94. package/src/math/matrix/Matrix.js +716 -716
  95. package/src/math/matrix/index.js +2 -2
  96. package/src/math/random/index.js +172 -172
  97. package/src/math/signal/__np.py.txt +39 -39
  98. package/src/math/signal/conv.js +174 -174
  99. package/src/math/signal/fft.js +54 -54
  100. package/src/math/signal/filter.js +38 -38
  101. package/src/math/signal/functions.js +145 -145
  102. package/src/math/signal/index.js +109 -109
  103. package/src/math/statistics/Functions/index.js +99 -99
  104. package/src/math/statistics/index.js +15 -15
  105. package/src/math/utils/arithmetic.js +138 -138
  106. package/src/math/utils/checkers.js +29 -29
  107. package/src/math/utils/conversions.js +19 -19
  108. package/src/math/utils/discret.js +51 -51
  109. package/src/math/utils/index.js +101 -101
  110. package/src/math/utils/mapfun.js +49 -49
  111. package/src/reactivity/events/{Partiel/Input.js → Input.js} +62 -59
  112. package/src/reactivity/events/{Global/Pointer.js → Pointer.js} +232 -234
  113. package/src/reactivity/events/ZikoEvent.js +90 -90
  114. package/src/reactivity/events/{Global/Click.js → click.js} +60 -56
  115. package/src/reactivity/events/{Global/Clipboard.js → clipboard.js} +88 -84
  116. package/src/reactivity/events/{Global/CustomEvent.js → custom-event.js} +57 -53
  117. package/src/reactivity/events/{Global/Drag.js → drag.js} +136 -136
  118. package/src/reactivity/events/{Global/Focus.js → focus.js} +59 -56
  119. package/src/reactivity/events/{Partiel/Hash.js → hash.js} +47 -44
  120. package/src/reactivity/events/index.js +62 -62
  121. package/src/reactivity/events/{Global/Key.js → key.js} +102 -104
  122. package/src/reactivity/events/{Global/Mouse.js → mouse.js} +233 -230
  123. package/src/reactivity/events/{Global/Swipe.js → swipe.js} +149 -147
  124. package/src/reactivity/events/{Global/Wheel.js → wheel.js} +47 -44
  125. package/src/reactivity/hooks/{Contexte → contexte}/useSuccesifKeys.js +13 -13
  126. package/src/reactivity/hooks/{Decorators → decorators}/index.js +6 -6
  127. package/src/reactivity/hooks/{Decorators → decorators}/time.js +16 -16
  128. package/src/reactivity/hooks/{Decorators → decorators}/type.js +87 -87
  129. package/src/reactivity/hooks/head/index.js +5 -0
  130. package/src/reactivity/hooks/{UI → head}/useCssText.js +21 -21
  131. package/src/reactivity/hooks/{UI → head}/useFavIcon.js +37 -37
  132. package/src/reactivity/hooks/head/useHead.js +28 -0
  133. package/src/reactivity/hooks/head/useMeta.js +52 -0
  134. package/src/reactivity/hooks/{UI → head}/useTitle.js +29 -29
  135. package/src/reactivity/hooks/index.js +91 -85
  136. package/src/reactivity/hooks/{Interactions → interactions}/index.js +3 -3
  137. package/src/reactivity/hooks/{Interactions → interactions}/useBluetooth.js +47 -47
  138. package/src/reactivity/hooks/{Interactions → interactions}/useChannel.js +49 -49
  139. package/src/reactivity/hooks/{Interactions → interactions}/useEventEmmiter.js +63 -63
  140. package/src/reactivity/hooks/{Interactions → interactions}/useThread.js +43 -43
  141. package/src/reactivity/hooks/sensors/index.js +2 -0
  142. package/src/reactivity/hooks/{Sensors → sensors}/useBattery.js +35 -35
  143. package/src/reactivity/hooks/{Sensors → sensors}/useGeolocation.js +16 -16
  144. package/src/reactivity/hooks/{Storage → storage}/useStorage.js +72 -72
  145. package/src/reactivity/hooks/todo.md +26 -26
  146. package/src/reactivity/hooks/ui/index.js +5 -0
  147. package/src/reactivity/hooks/{UI → ui}/useMediaQuery.js +43 -43
  148. package/src/reactivity/hooks/{UI → ui}/useStyle.js +79 -79
  149. package/src/reactivity/hooks/{UI → ui}/useTheme.js +61 -61
  150. package/src/reactivity/idea +1 -1
  151. package/src/reactivity/index.js +11 -21
  152. package/src/reactivity/observer/attributes.js +28 -28
  153. package/src/reactivity/observer/children.js +36 -36
  154. package/src/reactivity/observer/index.js +6 -44
  155. package/src/reactivity/observer/intersection.js +43 -43
  156. package/src/reactivity/observer/mutation.js +112 -112
  157. package/src/reactivity/observer/resize.js +46 -46
  158. package/src/reactivity/observer/screen.js +44 -44
  159. package/src/reactivity/observer/screen.js.txt +83 -83
  160. package/src/reactivity/observer/screen.txt +12 -12
  161. package/src/time/animation.js +75 -75
  162. package/src/time/index.js +12 -54
  163. package/src/time/loop.js +87 -87
  164. package/src/time/utils/decorators.js +16 -16
  165. package/src/time/utils/ease.js +143 -143
  166. package/src/time/utils/index.js +17 -17
  167. package/src/time/utils/performance.js +15 -15
  168. package/src/time/utils/ui.js +25 -25
  169. package/src/types.js +73 -71
  170. package/src/{user-interface/elements/derived/elements → ui/elements/derived}/accordion/accordion.js +42 -45
  171. package/src/{user-interface/elements/derived/elements → ui/elements/derived}/accordion/collapsible.js +82 -82
  172. package/src/{user-interface/elements/derived/elements → ui/elements/derived}/accordion/index.js +1 -1
  173. package/src/{user-interface/elements/derived/elements → ui/elements/derived}/alert/alert.js +80 -80
  174. package/src/{user-interface/elements/derived/elements → ui/elements/derived}/alert/palette.js +51 -51
  175. package/src/{user-interface/elements/derived/elements → ui/elements/derived}/carousel/index.js +50 -50
  176. package/src/{user-interface/elements/derived/elements → ui/elements/derived}/code-note/SubElements.js.txt +104 -104
  177. package/src/{user-interface/elements/derived/elements → ui/elements/derived}/code-note/code-cell.js +194 -194
  178. package/src/{user-interface/elements/derived/elements → ui/elements/derived}/code-note/code-note.js +71 -71
  179. package/src/{user-interface/elements/derived/elements → ui/elements/derived}/code-note/index.js +1 -1
  180. package/src/{user-interface/elements/derived/elements → ui/elements/derived}/code-note/sub-elements.js +66 -66
  181. package/src/{user-interface → ui}/elements/derived/elements/Swipper.js +3 -3
  182. package/src/{user-interface → ui}/elements/derived/elements/index.js +9 -9
  183. package/src/{user-interface/elements/derived/Flex.js → ui/elements/derived/flex/index.js} +102 -102
  184. package/src/{user-interface/elements/derived/Grid.js → ui/elements/derived/grid/index.js} +32 -32
  185. package/src/ui/elements/derived/index.js +12 -0
  186. package/src/{user-interface/elements/derived/elements → ui/elements/derived}/menu/menu3d.js +259 -259
  187. package/src/{user-interface/elements/derived/elements → ui/elements/derived}/modal/index.js +91 -91
  188. package/src/{user-interface/elements/derived/elements → ui/elements/derived}/pagination/breadcrumbs.js +53 -53
  189. package/src/ui/elements/derived/slider/__ZikoUISlider__.js +112 -0
  190. package/src/ui/elements/derived/slider/hSlider.js +34 -0
  191. package/src/ui/elements/derived/slider/index.js +12 -0
  192. package/src/ui/elements/derived/slider/vSlider.js +27 -0
  193. package/src/{user-interface/elements/derived/elements → ui/elements/derived}/splitter/__ZikoUISplitter__.js +61 -61
  194. package/src/{user-interface/elements/derived/elements → ui/elements/derived}/splitter/hsplitter.js +39 -39
  195. package/src/ui/elements/derived/splitter/index.js +12 -0
  196. package/src/{user-interface/elements/derived/elements → ui/elements/derived}/splitter/vsplitter.js +39 -39
  197. package/src/{user-interface/elements/derived/elements → ui/elements/derived}/tabs/index.js +179 -179
  198. package/src/{user-interface → ui}/elements/primitives/ZikoUIContainerElement.js +126 -126
  199. package/src/{user-interface → ui}/elements/primitives/ZikoUIElement.js +492 -480
  200. package/src/{user-interface → ui}/elements/primitives/embaded/html.js +19 -20
  201. package/src/{user-interface → ui}/elements/primitives/embaded/index.js +3 -3
  202. package/src/{user-interface → ui}/elements/primitives/embaded/pdf.js +16 -17
  203. package/src/{user-interface → ui}/elements/primitives/embaded/youtube.js +23 -25
  204. package/src/{user-interface → ui}/elements/primitives/index.js +7 -7
  205. package/src/{user-interface → ui}/elements/primitives/io/Form/index.js +41 -41
  206. package/src/{user-interface → ui}/elements/primitives/io/Form/index.js.txt +104 -104
  207. package/src/{user-interface → ui}/elements/primitives/io/Inputs/__helpers__.js +51 -51
  208. package/src/{user-interface → ui}/elements/primitives/io/Inputs/index.js +12 -12
  209. package/src/{user-interface → ui}/elements/primitives/io/Inputs/input/index.js +98 -98
  210. package/src/{user-interface → ui}/elements/primitives/io/Inputs/input-camera/index.js +26 -26
  211. package/src/{user-interface → ui}/elements/primitives/io/Inputs/input-checkbox/index.js +25 -25
  212. package/src/{user-interface → ui}/elements/primitives/io/Inputs/input-color/index.js +15 -15
  213. package/src/{user-interface → ui}/elements/primitives/io/Inputs/input-date-time/index.js +2 -2
  214. package/src/{user-interface → ui}/elements/primitives/io/Inputs/input-date-time/input-date-time.js +13 -13
  215. package/src/{user-interface → ui}/elements/primitives/io/Inputs/input-date-time/input-date.js +13 -13
  216. package/src/{user-interface → ui}/elements/primitives/io/Inputs/input-date-time/input-time.js +13 -13
  217. package/src/ui/elements/primitives/io/Inputs/input-email-password/index.js +2 -0
  218. package/src/{user-interface → ui}/elements/primitives/io/Inputs/input-email-password/input-email.js +14 -14
  219. package/src/{user-interface → ui}/elements/primitives/io/Inputs/input-email-password/input-password.js +13 -13
  220. package/src/{user-interface → ui}/elements/primitives/io/Inputs/input-file/input-image.js +42 -42
  221. package/src/{user-interface → ui}/elements/primitives/io/Inputs/input-number/index.js +36 -36
  222. package/src/{user-interface → ui}/elements/primitives/io/Inputs/input-radio/index.js +25 -25
  223. package/src/{user-interface → ui}/elements/primitives/io/Inputs/input-search/index.js +45 -45
  224. package/src/{user-interface → ui}/elements/primitives/io/Inputs/input-slider/index.js +34 -34
  225. package/src/{user-interface → ui}/elements/primitives/io/Select/index.js +19 -19
  226. package/src/{user-interface → ui}/elements/primitives/io/Textarea/index.js +17 -17
  227. package/src/{user-interface → ui}/elements/primitives/io/index.js +3 -3
  228. package/src/{user-interface → ui}/elements/primitives/list/index.js +138 -138
  229. package/src/{user-interface → ui}/elements/primitives/media/Audio/index.js +16 -16
  230. package/src/{user-interface → ui}/elements/primitives/media/Image/figure.js +18 -18
  231. package/src/{user-interface → ui}/elements/primitives/media/Image/image.js +36 -36
  232. package/src/ui/elements/primitives/media/Image/index.js +2 -0
  233. package/src/{user-interface → ui}/elements/primitives/media/Video/index.js +26 -26
  234. package/src/{user-interface → ui}/elements/primitives/media/__ZikoUIDynamicMediaELement__.js +46 -46
  235. package/src/{user-interface → ui}/elements/primitives/media/index.js +2 -2
  236. package/src/{user-interface → ui}/elements/primitives/misc/index.js +100 -100
  237. package/src/{user-interface → ui}/elements/primitives/semantic/index.js +81 -81
  238. package/src/{user-interface → ui}/elements/primitives/table/elements.js +93 -93
  239. package/src/ui/elements/primitives/table/index.js +3 -0
  240. package/src/{user-interface → ui}/elements/primitives/table/table.js +115 -115
  241. package/src/{user-interface → ui}/elements/primitives/table/utils.js +11 -11
  242. package/src/{user-interface → ui}/elements/primitives/text/__ZikoUIText__.js +71 -71
  243. package/src/{user-interface → ui}/elements/primitives/text/heading.js +35 -35
  244. package/src/{user-interface → ui}/elements/primitives/text/index.js +2 -2
  245. package/src/{user-interface → ui}/elements/primitives/text/p.js +26 -26
  246. package/src/{user-interface → ui}/elements/primitives/text/text.js +80 -80
  247. package/src/ui/index.js +29 -0
  248. package/src/{user-interface → ui}/style/index.js +515 -509
  249. package/src/{user-interface → ui}/utils/index.js +69 -69
  250. package/src/reactivity/events/Global/Touch.js +0 -0
  251. package/src/reactivity/hooks/Sensors/index.js +0 -2
  252. package/src/reactivity/hooks/UI/index.js +0 -5
  253. package/src/user-interface/elements/derived/elements/splitter/index.js +0 -2
  254. package/src/user-interface/elements/derived/index.js +0 -3
  255. package/src/user-interface/elements/primitives/io/Inputs/input-email-password/index.js +0 -2
  256. package/src/user-interface/elements/primitives/media/Image/index.js +0 -2
  257. package/src/user-interface/elements/primitives/table/index.js +0 -3
  258. package/src/user-interface/index.js +0 -190
  259. /package/src/app/{globals/index.js → globals.js} +0 -0
  260. /package/src/app/{params/index.js → params.js} +0 -0
  261. /package/src/reactivity/events/{Partiel/Media.js → media.js} +0 -0
  262. /package/src/{app/accessibility/index.js → reactivity/events/touch.js} +0 -0
  263. /package/src/reactivity/hooks/{Contexte → contexte}/index.js +0 -0
  264. /package/src/reactivity/hooks/{Interactions → interactions}/useSerial.js +0 -0
  265. /package/src/reactivity/hooks/{Interactions → interactions}/useUsb.js +0 -0
  266. /package/src/reactivity/hooks/{Sensors → sensors}/useCamera.js +0 -0
  267. /package/src/reactivity/hooks/{Sensors → sensors}/useMicro.js +0 -0
  268. /package/src/reactivity/hooks/{Sensors → sensors}/useOrientation.js +0 -0
  269. /package/src/reactivity/hooks/{Storage → storage}/index.js +0 -0
  270. /package/src/reactivity/hooks/{Storage → storage}/useCookie.js +0 -0
  271. /package/src/reactivity/hooks/{Storage → storage}/useIndexedDb.js +0 -0
  272. /package/src/reactivity/hooks/{UI → ui}/useCssLink.js +0 -0
  273. /package/src/reactivity/hooks/{UI → ui}/useLinearGradient.js +0 -0
  274. /package/src/reactivity/hooks/{UI → ui}/useRadialGradient.js +0 -0
  275. /package/src/{user-interface/elements/derived/elements → ui/elements/derived}/alert/index.js +0 -0
  276. /package/src/{user-interface → ui}/elements/derived/elements/Notification.js +0 -0
  277. /package/src/{user-interface → ui}/elements/derived/elements/Popover.js +0 -0
  278. /package/src/{user-interface → ui}/elements/derived/elements/Popup.js +0 -0
  279. /package/src/{user-interface → ui}/elements/derived/elements/Timeline.js +0 -0
  280. /package/src/{user-interface → ui}/elements/derived/elements/Toast.js +0 -0
  281. /package/src/{user-interface → ui}/elements/derived/elements/Treeview.js +0 -0
  282. /package/src/{user-interface → ui}/elements/derived/elements/columns.js +0 -0
  283. /package/src/{user-interface → ui}/elements/derived/elements/fab.js +0 -0
  284. /package/src/{user-interface/elements/derived/elements → ui/elements/derived}/menu/index.js +0 -0
  285. /package/src/{user-interface/elements/derived/elements → ui/elements/derived}/pagination/index.js +0 -0
  286. /package/src/{user-interface → ui}/elements/primitives/io/Inputs/input-file/index.js +0 -0
  287. /package/src/{user-interface → ui}/elements/primitives/io/Inputs/input-file/input-file.js +0 -0
  288. /package/src/{user-interface → ui}/elements/primitives/list/elements.js +0 -0
  289. /package/src/{user-interface → ui}/elements/primitives/text/pre.js +0 -0
@@ -1,147 +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 default useSwipeEvent;
122
-
123
- /*
124
- a=p("ALLL").size("300px","300px").style({background:"red",userSelect:"none"})
125
- t=text("")
126
- ev=useSwipeEvent(a, .1, .3)
127
- ev.onSwipe(e=>{
128
- // t.setValue(`
129
- // vertical direction : ${e.event.detail.direction.y}
130
- // horizontal direction : ${e.event.detail.direction.x}
131
- // deltaX : ${e.event.detail.deltaX}
132
- // deltaY : ${e.event.detail.deltaY}
133
- // `)
134
- e.target.st.translate(e.event.detail.deltaX * 200, e.event.detail.deltaY * 200,0, 500)
135
- })
136
- */
137
- /*
138
- a=p("ALLL")
139
- .size("300px","300px")
140
- .style({background:"red",userSelect:"none"})
141
- .onSwipe(
142
- .3,
143
- .3,
144
- e=>{
145
- e.target.st.translate(e.event.detail.deltaX * 200, e.event.detail.deltaY * 200,0, 500)
146
- })
147
- */
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,44 +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 useWheelEventnent=target=>new ZikoEventWheel(target);
44
- export default useWheelEventnent
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
+ }
@@ -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
  }
@@ -0,0 +1,5 @@
1
+ export * from "./useCssText"
2
+ export * from "./useFavIcon"
3
+ export * from "./useMeta";
4
+ export * from "./useTitle";
5
+ export * from "./useHead"