ziko 0.0.13 → 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 (290) hide show
  1. package/dist/ziko.cjs +13310 -11794
  2. package/dist/ziko.js +13868 -12352
  3. package/dist/ziko.min.js +2 -2
  4. package/dist/ziko.mjs +13286 -11774
  5. package/package.json +5 -4
  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 -0
  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 -49
  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 -478
  200. package/src/ui/elements/primitives/embaded/html.js +20 -0
  201. package/src/ui/elements/primitives/embaded/index.js +3 -0
  202. package/src/ui/elements/primitives/embaded/pdf.js +17 -0
  203. package/src/ui/elements/primitives/embaded/youtube.js +24 -0
  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 -97
  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 -35
  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 -99
  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/embaded/index.js +0 -1
  256. package/src/user-interface/elements/primitives/io/Inputs/input-email-password/index.js +0 -2
  257. package/src/user-interface/elements/primitives/media/Image/index.js +0 -2
  258. package/src/user-interface/elements/primitives/table/index.js +0 -3
  259. package/src/user-interface/index.js +0 -188
  260. /package/src/app/{globals/index.js → globals.js} +0 -0
  261. /package/src/app/{params/index.js → params.js} +0 -0
  262. /package/src/reactivity/events/{Partiel/Media.js → media.js} +0 -0
  263. /package/src/{app/accessibility/index.js → reactivity/events/touch.js} +0 -0
  264. /package/src/reactivity/hooks/{Contexte → contexte}/index.js +0 -0
  265. /package/src/reactivity/hooks/{Interactions → interactions}/useSerial.js +0 -0
  266. /package/src/reactivity/hooks/{Interactions → interactions}/useUsb.js +0 -0
  267. /package/src/reactivity/hooks/{Sensors → sensors}/useCamera.js +0 -0
  268. /package/src/reactivity/hooks/{Sensors → sensors}/useMicro.js +0 -0
  269. /package/src/reactivity/hooks/{Sensors → sensors}/useOrientation.js +0 -0
  270. /package/src/reactivity/hooks/{Storage → storage}/index.js +0 -0
  271. /package/src/reactivity/hooks/{Storage → storage}/useCookie.js +0 -0
  272. /package/src/reactivity/hooks/{Storage → storage}/useIndexedDb.js +0 -0
  273. /package/src/reactivity/hooks/{UI → ui}/useCssLink.js +0 -0
  274. /package/src/reactivity/hooks/{UI → ui}/useLinearGradient.js +0 -0
  275. /package/src/reactivity/hooks/{UI → ui}/useRadialGradient.js +0 -0
  276. /package/src/{user-interface/elements/derived/elements → ui/elements/derived}/alert/index.js +0 -0
  277. /package/src/{user-interface → ui}/elements/derived/elements/Notification.js +0 -0
  278. /package/src/{user-interface → ui}/elements/derived/elements/Popover.js +0 -0
  279. /package/src/{user-interface → ui}/elements/derived/elements/Popup.js +0 -0
  280. /package/src/{user-interface → ui}/elements/derived/elements/Timeline.js +0 -0
  281. /package/src/{user-interface → ui}/elements/derived/elements/Toast.js +0 -0
  282. /package/src/{user-interface → ui}/elements/derived/elements/Treeview.js +0 -0
  283. /package/src/{user-interface → ui}/elements/derived/elements/columns.js +0 -0
  284. /package/src/{user-interface → ui}/elements/derived/elements/fab.js +0 -0
  285. /package/src/{user-interface/elements/derived/elements → ui/elements/derived}/menu/index.js +0 -0
  286. /package/src/{user-interface/elements/derived/elements → ui/elements/derived}/pagination/index.js +0 -0
  287. /package/src/{user-interface → ui}/elements/primitives/io/Inputs/input-file/index.js +0 -0
  288. /package/src/{user-interface → ui}/elements/primitives/io/Inputs/input-file/input-file.js +0 -0
  289. /package/src/{user-interface → ui}/elements/primitives/list/elements.js +0 -0
  290. /package/src/{user-interface → ui}/elements/primitives/text/pre.js +0 -0
@@ -1,51 +1,51 @@
1
- /** @module Math */
2
- import { floor } from "../functions/index.js";
3
-
4
- /**
5
- * Computes the cartesian product of two arrays.
6
- * @param {Array} a - The first array.
7
- * @param {Array} b - The second array.
8
- * @returns {Array} Returns an array representing the cartesian product of the input arrays.
9
- */
10
- const cartesianProduct = (a, b) => a.reduce((p, x) => [...p, ...b.map((y) => [x, y])], []);
11
-
12
- /**
13
- * Computes the greatest common divisor (GCD) of two numbers.
14
- * @param {number} n1 - The first number.
15
- * @param {number} n2 - The second number.
16
- * @returns {number} Returns the greatest common divisor of the two input numbers.
17
- */
18
- const pgcd = (n1, n2) => {
19
- let i,
20
- pgcd = 1;
21
- if (n1 == floor(n1) && n2 == floor(n2)) {
22
- for (i = 2; i <= n1 && i <= n2; ++i) {
23
- if (n1 % i == 0 && n2 % i == 0) pgcd = i;
24
- }
25
- return pgcd;
26
- } else console.log("error");
27
- }
28
-
29
- /**
30
- * Computes the least common multiple (LCM) of two numbers.
31
- * @param {number} n1 - The first number.
32
- * @param {number} n2 - The second number.
33
- * @returns {number} Returns the least common multiple of the two input numbers.
34
- */
35
- const ppcm = (n1, n2) => {
36
- let ppcm;
37
- if (n1 == floor(n1) && n2 == floor(n2)) {
38
- ppcm = n1 > n2 ? n1 : n2;
39
- while (true) {
40
- if (ppcm % n1 == 0 && ppcm % n2 == 0) break;
41
- ++ppcm;
42
- }
43
- return ppcm;
44
- } else console.log("error");
45
- }
46
-
47
- export {
48
- cartesianProduct,
49
- ppcm,
50
- pgcd
51
- }
1
+ /** @module Math */
2
+ import { floor } from "../functions/index.js";
3
+
4
+ /**
5
+ * Computes the cartesian product of two arrays.
6
+ * @param {Array} a - The first array.
7
+ * @param {Array} b - The second array.
8
+ * @returns {Array} Returns an array representing the cartesian product of the input arrays.
9
+ */
10
+ const cartesianProduct = (a, b) => a.reduce((p, x) => [...p, ...b.map((y) => [x, y])], []);
11
+
12
+ /**
13
+ * Computes the greatest common divisor (GCD) of two numbers.
14
+ * @param {number} n1 - The first number.
15
+ * @param {number} n2 - The second number.
16
+ * @returns {number} Returns the greatest common divisor of the two input numbers.
17
+ */
18
+ const pgcd = (n1, n2) => {
19
+ let i,
20
+ pgcd = 1;
21
+ if (n1 == floor(n1) && n2 == floor(n2)) {
22
+ for (i = 2; i <= n1 && i <= n2; ++i) {
23
+ if (n1 % i == 0 && n2 % i == 0) pgcd = i;
24
+ }
25
+ return pgcd;
26
+ } else console.log("error");
27
+ }
28
+
29
+ /**
30
+ * Computes the least common multiple (LCM) of two numbers.
31
+ * @param {number} n1 - The first number.
32
+ * @param {number} n2 - The second number.
33
+ * @returns {number} Returns the least common multiple of the two input numbers.
34
+ */
35
+ const ppcm = (n1, n2) => {
36
+ let ppcm;
37
+ if (n1 == floor(n1) && n2 == floor(n2)) {
38
+ ppcm = n1 > n2 ? n1 : n2;
39
+ while (true) {
40
+ if (ppcm % n1 == 0 && ppcm % n2 == 0) break;
41
+ ++ppcm;
42
+ }
43
+ return ppcm;
44
+ } else console.log("error");
45
+ }
46
+
47
+ export {
48
+ cartesianProduct,
49
+ ppcm,
50
+ pgcd
51
+ }
@@ -1,102 +1,102 @@
1
- import { mapfun } from "./mapfun.js";
2
- import {
3
- add,
4
- sub,
5
- mul,
6
- div,
7
- modulo
8
- } from "./arithmetic.js";
9
- import {
10
- zeros,
11
- ones,
12
- nums,
13
- norm,
14
- lerp,
15
- map,
16
- clamp,
17
- arange,
18
- linspace,
19
- logspace,
20
- geomspace
21
- } from "../signal/functions.js"
22
- import {
23
- deg2rad,
24
- rad2deg
25
- } from "./conversions.js"
26
- import{
27
- sum,
28
- prod,
29
- accum
30
- } from "../statistics/index.js"
31
- import{
32
- inRange,
33
- isApproximatlyEqual
34
- } from "./checkers.js"
35
- import{
36
- cartesianProduct,
37
- ppcm,
38
- pgcd
39
- } from "./discret.js"
40
- const Utils={
41
- add,
42
- sub,
43
- mul,
44
- div,
45
- modulo,
46
-
47
- zeros,
48
- ones,
49
- nums,
50
- norm,
51
- lerp,
52
- map,
53
- clamp,
54
- arange,
55
- linspace,
56
- logspace,
57
- geomspace,
58
-
59
- sum,
60
- prod,
61
- accum,
62
-
63
- cartesianProduct,
64
- ppcm,
65
- pgcd,
66
-
67
- deg2rad,
68
- rad2deg,
69
-
70
- inRange,
71
- isApproximatlyEqual
72
- }
73
- export {
74
- mapfun,
75
- Utils,
76
- zeros,
77
- ones,
78
- nums,
79
- sum,
80
- prod,
81
- add,
82
- mul,
83
- sub,
84
- div,
85
- modulo,
86
- rad2deg,
87
- deg2rad,
88
- arange,
89
- linspace,
90
- logspace,
91
- geomspace,
92
- norm,
93
- lerp,
94
- map,
95
- clamp,
96
- pgcd,
97
- ppcm,
98
- isApproximatlyEqual,
99
- inRange,
100
- cartesianProduct,
101
- };
1
+ import { mapfun } from "./mapfun.js";
2
+ import {
3
+ add,
4
+ sub,
5
+ mul,
6
+ div,
7
+ modulo
8
+ } from "./arithmetic.js";
9
+ import {
10
+ zeros,
11
+ ones,
12
+ nums,
13
+ norm,
14
+ lerp,
15
+ map,
16
+ clamp,
17
+ arange,
18
+ linspace,
19
+ logspace,
20
+ geomspace
21
+ } from "../signal/functions.js"
22
+ import {
23
+ deg2rad,
24
+ rad2deg
25
+ } from "./conversions.js"
26
+ import{
27
+ sum,
28
+ prod,
29
+ accum
30
+ } from "../statistics/index.js"
31
+ import{
32
+ inRange,
33
+ isApproximatlyEqual
34
+ } from "./checkers.js"
35
+ import{
36
+ cartesianProduct,
37
+ ppcm,
38
+ pgcd
39
+ } from "./discret.js"
40
+ const Utils={
41
+ add,
42
+ sub,
43
+ mul,
44
+ div,
45
+ modulo,
46
+
47
+ zeros,
48
+ ones,
49
+ nums,
50
+ norm,
51
+ lerp,
52
+ map,
53
+ clamp,
54
+ arange,
55
+ linspace,
56
+ logspace,
57
+ geomspace,
58
+
59
+ sum,
60
+ prod,
61
+ accum,
62
+
63
+ cartesianProduct,
64
+ ppcm,
65
+ pgcd,
66
+
67
+ deg2rad,
68
+ rad2deg,
69
+
70
+ inRange,
71
+ isApproximatlyEqual
72
+ }
73
+ export {
74
+ mapfun,
75
+ Utils,
76
+ zeros,
77
+ ones,
78
+ nums,
79
+ sum,
80
+ prod,
81
+ add,
82
+ mul,
83
+ sub,
84
+ div,
85
+ modulo,
86
+ rad2deg,
87
+ deg2rad,
88
+ arange,
89
+ linspace,
90
+ logspace,
91
+ geomspace,
92
+ norm,
93
+ lerp,
94
+ map,
95
+ clamp,
96
+ pgcd,
97
+ ppcm,
98
+ isApproximatlyEqual,
99
+ inRange,
100
+ cartesianProduct,
101
+ };
102
102
 
@@ -1,50 +1,50 @@
1
- /** @module Math */
2
- import { Matrix } from "../matrix/index.js";
3
- import { Complex , complex } from "../complex/index.js";
4
- import {ln,e,cos,sin,sqrt,cosh,sinh} from "../functions/index.js";
5
- import { Fixed } from "../functions/index.js";
6
- /**
7
- * map a function to ...X
8
- * @param {function} fun
9
- * @param {...any} X
10
- * @returns {any|any[]}
11
- */
12
- const mapfun=(fun,...X)=>{
13
- const Y=X.map(x=>{
14
- if(x===null)return fun(null);
15
- if(["number","string","boolean","bigint","undefined"].includes(typeof x))return fun(x);
16
- if(x instanceof Array)return x.map(n=>mapfun(fun,n));
17
- if(ArrayBuffer.isView(x))return x.map(n=>fun(n));
18
- if(x instanceof Set)return new Set(mapfun(fun,...[...x]));
19
- if(x instanceof Map)return new Map([...x].map(n=>[n[0],mapfun(fun,n[1])]));
20
- if(x instanceof Matrix){
21
- return new Matrix(x.rows,x.cols,mapfun(x.arr.flat(1)))
22
- }
23
- if(x instanceof Complex){
24
- const [a,b,z,phi]=[x.a,x.b,x.z,x.phi];
25
- switch(fun){
26
- case Math.log:return complex(ln(z),phi); // Done
27
- case Math.exp:return complex(e(a)*cos(b),e(a)*sin(b)); // Done
28
- case Math.abs:return z; // Done
29
- case Math.sqrt:return complex(sqrt(z)*cos(phi/2),sqrt(z)*sin(phi/2)); // Done
30
- case Fixed.cos:return complex(cos(a)*cosh(b),-(sin(a)*sinh(b)));
31
- case Fixed.sin:return complex(sin(a)*cosh(b),cos(a)*sinh(b));
32
- case Fixed.tan:{
33
- const DEN=cos(2*a)+cosh(2*b);
34
- return complex(sin(2*a)/DEN,sinh(2*b)/DEN);
35
- }
36
- case Fixed.cosh:return complex(cosh(a)*cos(b),sinh(a)*sin(b));
37
- case Fixed.sinh:return complex(sinh(a)*cos(b),cosh(a)*sin(b));
38
- case Fixed.tanh:{
39
- const DEN=cosh(2*a)+cos(2*b);
40
- return complex(sinh(2*a)/DEN,sin(2*b)/DEN)
41
- }
42
- default : return fun(x)
43
- }
44
- }
45
- else if(x instanceof Object)return Object.fromEntries(Object.entries(x).map(n=>n=[n[0],mapfun(fun,n[1])]))
46
-
47
- });
48
- return Y.length==1?Y[0]:Y;
49
- }
1
+ /** @module Math */
2
+ import { Matrix } from "../matrix/index.js";
3
+ import { Complex , complex } from "../complex/index.js";
4
+ import {ln,e,cos,sin,sqrt,cosh,sinh} from "../functions/index.js";
5
+ import { Fixed } from "../functions/helper.js";
6
+ /**
7
+ * map a function to ...X
8
+ * @param {function} fun
9
+ * @param {...any} X
10
+ * @returns {any|any[]}
11
+ */
12
+ const mapfun=(fun,...X)=>{
13
+ const Y=X.map(x=>{
14
+ if(x===null)return fun(null);
15
+ if(["number","string","boolean","bigint","undefined"].includes(typeof x))return fun(x);
16
+ if(x instanceof Array)return x.map(n=>mapfun(fun,n));
17
+ if(ArrayBuffer.isView(x))return x.map(n=>fun(n));
18
+ if(x instanceof Set)return new Set(mapfun(fun,...[...x]));
19
+ if(x instanceof Map)return new Map([...x].map(n=>[n[0],mapfun(fun,n[1])]));
20
+ if(x instanceof Matrix){
21
+ return new Matrix(x.rows,x.cols,mapfun(x.arr.flat(1)))
22
+ }
23
+ if(x instanceof Complex){
24
+ const [a,b,z,phi]=[x.a,x.b,x.z,x.phi];
25
+ switch(fun){
26
+ case Math.log:return complex(ln(z),phi); // Done
27
+ case Math.exp:return complex(e(a)*cos(b),e(a)*sin(b)); // Done
28
+ case Math.abs:return z; // Done
29
+ case Math.sqrt:return complex(sqrt(z)*cos(phi/2),sqrt(z)*sin(phi/2)); // Done
30
+ case Fixed.cos:return complex(cos(a)*cosh(b),-(sin(a)*sinh(b)));
31
+ case Fixed.sin:return complex(sin(a)*cosh(b),cos(a)*sinh(b));
32
+ case Fixed.tan:{
33
+ const DEN=cos(2*a)+cosh(2*b);
34
+ return complex(sin(2*a)/DEN,sinh(2*b)/DEN);
35
+ }
36
+ case Fixed.cosh:return complex(cosh(a)*cos(b),sinh(a)*sin(b));
37
+ case Fixed.sinh:return complex(sinh(a)*cos(b),cosh(a)*sin(b));
38
+ case Fixed.tanh:{
39
+ const DEN=cosh(2*a)+cos(2*b);
40
+ return complex(sinh(2*a)/DEN,sin(2*b)/DEN)
41
+ }
42
+ default : return fun(x)
43
+ }
44
+ }
45
+ else if(x instanceof Object)return Object.fromEntries(Object.entries(x).map(n=>n=[n[0],mapfun(fun,n[1])]))
46
+
47
+ });
48
+ return Y.length==1?Y[0]:Y;
49
+ }
50
50
  export {mapfun}
@@ -1,59 +1,62 @@
1
- import { ZikoEvent , EVENT_CONTROLLER } from "../ZikoEvent.js";
2
- function input_controller(e){
3
- EVENT_CONTROLLER.call(this,e,"input",null,null)
4
- }
5
- function change_controller(e){
6
- EVENT_CONTROLLER.call(this,e,"change",null,null)
7
- }
8
- class ZikoEventInput extends ZikoEvent{
9
- constructor(target){
10
- super(target);
11
- this.event=null;
12
- this.cache={
13
- prefixe:"",
14
- preventDefault:{
15
- input:false,
16
- change:false,
17
- },
18
- paused:{
19
- input:false,
20
- change:false,
21
- },
22
- stream:{
23
- enabled:{
24
- input:false,
25
- change:false,
26
- },
27
- clear:{
28
- input:false,
29
- change:false,
30
- },
31
- history:{
32
- input:[],
33
- change:[],
34
- }
35
- },
36
- callbacks:{
37
- input:[],
38
- change:[],
39
- }
40
- }
41
- this.__controller={
42
- input:input_controller.bind(this),
43
- change:change_controller.bind(this),
44
- }
45
- }
46
- get value(){
47
- return this.target.value;
48
- }
49
- onInput(...callbacks){
50
- this.__onEvent("input",{},...callbacks)
51
- return this;
52
- }
53
- onChange(...callbacks){
54
- this.__onEvent("change",{},...callbacks)
55
- return this;
56
- }
57
- }
58
- const useInputEvent=target=>new ZikoEventInput(target);
59
- export default useInputEvent
1
+ import { ZikoEvent , EVENT_CONTROLLER } from "./ZikoEvent.js";
2
+ function input_controller(e){
3
+ EVENT_CONTROLLER.call(this,e,"input",null,null)
4
+ }
5
+ function change_controller(e){
6
+ EVENT_CONTROLLER.call(this,e,"change",null,null)
7
+ }
8
+ class ZikoEventInput extends ZikoEvent{
9
+ constructor(target){
10
+ super(target);
11
+ this.event=null;
12
+ this.cache={
13
+ prefixe:"",
14
+ preventDefault:{
15
+ input:false,
16
+ change:false,
17
+ },
18
+ paused:{
19
+ input:false,
20
+ change:false,
21
+ },
22
+ stream:{
23
+ enabled:{
24
+ input:false,
25
+ change:false,
26
+ },
27
+ clear:{
28
+ input:false,
29
+ change:false,
30
+ },
31
+ history:{
32
+ input:[],
33
+ change:[],
34
+ }
35
+ },
36
+ callbacks:{
37
+ input:[],
38
+ change:[],
39
+ }
40
+ }
41
+ this.__controller={
42
+ input:input_controller.bind(this),
43
+ change:change_controller.bind(this),
44
+ }
45
+ }
46
+ get value(){
47
+ return this.target.value;
48
+ }
49
+ onInput(...callbacks){
50
+ this.__onEvent("input",{},...callbacks)
51
+ return this;
52
+ }
53
+ onChange(...callbacks){
54
+ this.__onEvent("change",{},...callbacks)
55
+ return this;
56
+ }
57
+ }
58
+ const useInputEvent=target=>new ZikoEventInput(target);
59
+ export{
60
+ useInputEvent,
61
+ ZikoEventInput
62
+ }