@studiometa/js-toolkit 2.12.0 → 3.0.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (346) hide show
  1. package/Base/Base.d.ts +2 -2
  2. package/Base/Base.js +8 -45
  3. package/Base/Base.js.map +2 -2
  4. package/Base/features.d.ts +10 -2
  5. package/Base/features.js +23 -1
  6. package/Base/features.js.map +2 -2
  7. package/Base/managers/AbstractManager.d.ts +3 -3
  8. package/Base/managers/ActionManager.d.ts +4 -0
  9. package/Base/managers/ActionManager.js +10 -0
  10. package/Base/managers/ActionManager.js.map +7 -0
  11. package/Base/managers/ChildrenManager.d.ts +1 -1
  12. package/Base/managers/ChildrenManager.js +3 -3
  13. package/Base/managers/ChildrenManager.js.map +2 -2
  14. package/Base/managers/ServicesManager.d.ts +2 -4
  15. package/Base/managers/ServicesManager.js +2 -3
  16. package/Base/managers/ServicesManager.js.map +2 -2
  17. package/Base/utils.js +1 -1
  18. package/Base/utils.js.map +2 -2
  19. package/decorators/index.d.ts +0 -1
  20. package/decorators/index.js +0 -1
  21. package/decorators/index.js.map +2 -2
  22. package/decorators/withBreakpointObserver.js +1 -1
  23. package/decorators/withBreakpointObserver.js.map +2 -2
  24. package/decorators/withIntersectionObserver.js +3 -5
  25. package/decorators/withIntersectionObserver.js.map +2 -2
  26. package/decorators/withMountOnMediaQuery.js +1 -1
  27. package/decorators/withMountOnMediaQuery.js.map +2 -2
  28. package/decorators/withMountWhenInView.js +1 -1
  29. package/decorators/withMountWhenInView.js.map +2 -2
  30. package/decorators/withScrolledInView/utils.d.ts +12 -1
  31. package/decorators/withScrolledInView/utils.js.map +2 -2
  32. package/decorators/withScrolledInView/withScrolledInView.js +7 -62
  33. package/decorators/withScrolledInView/withScrolledInView.js.map +2 -2
  34. package/helpers/createApp.d.ts +2 -1
  35. package/helpers/createApp.js.map +2 -2
  36. package/package.json +2 -10
  37. package/services/index.d.ts +1 -1
  38. package/services/index.js.map +2 -2
  39. package/services/pointer.d.ts +1 -1
  40. package/services/pointer.js +3 -3
  41. package/services/pointer.js.map +2 -2
  42. package/services/raf.js +2 -4
  43. package/services/raf.js.map +2 -2
  44. package/services/resize.d.ts +7 -6
  45. package/services/resize.js +19 -26
  46. package/services/resize.js.map +2 -2
  47. package/services/scroll.js +8 -8
  48. package/services/scroll.js.map +2 -2
  49. package/utils/SmartQueue.d.ts +1 -1
  50. package/utils/SmartQueue.js +1 -1
  51. package/utils/SmartQueue.js.map +2 -2
  52. package/utils/css/animate.d.ts +33 -15
  53. package/utils/css/animate.js +67 -26
  54. package/utils/css/animate.js.map +2 -2
  55. package/utils/css/getOffsetSizes.js +2 -2
  56. package/utils/css/getOffsetSizes.js.map +1 -1
  57. package/utils/css/index.d.ts +2 -1
  58. package/utils/css/index.js +4 -4
  59. package/utils/css/index.js.map +2 -2
  60. package/utils/css/matrix.d.ts +1 -1
  61. package/utils/css/matrix.js.map +2 -2
  62. package/utils/css/transform.d.ts +1 -1
  63. package/utils/css/transform.js +1 -1
  64. package/utils/css/transform.js.map +2 -2
  65. package/utils/css/utils.d.ts +1 -1
  66. package/utils/css/utils.js +1 -1
  67. package/utils/css/utils.js.map +2 -2
  68. package/utils/index.d.ts +5 -4
  69. package/utils/index.js +16 -16
  70. package/utils/index.js.map +2 -2
  71. package/utils/is.d.ts +12 -0
  72. package/utils/is.js +17 -0
  73. package/utils/is.js.map +2 -2
  74. package/utils/math/createRange.d.ts +4 -0
  75. package/utils/math/createRange.js +13 -0
  76. package/utils/math/createRange.js.map +7 -0
  77. package/utils/math/ease.d.ts +1 -0
  78. package/utils/math/ease.js +2 -0
  79. package/utils/math/ease.js.map +2 -2
  80. package/utils/math/index.d.ts +5 -3
  81. package/utils/math/index.js +7 -3
  82. package/utils/math/index.js.map +2 -2
  83. package/utils/math/mean.d.ts +1 -0
  84. package/utils/math/mean.js +17 -0
  85. package/utils/math/mean.js.map +7 -0
  86. package/utils/nextFrame.d.ts +4 -22
  87. package/utils/nextFrame.js +3 -10
  88. package/utils/nextFrame.js.map +2 -2
  89. package/utils/nextMicrotask.d.ts +4 -1
  90. package/utils/nextMicrotask.js +3 -3
  91. package/utils/nextMicrotask.js.map +2 -2
  92. package/utils/nextTick.d.ts +4 -1
  93. package/utils/nextTick.js +3 -3
  94. package/utils/nextTick.js.map +2 -2
  95. package/utils/random.d.ts +15 -0
  96. package/utils/random.js +15 -0
  97. package/utils/random.js.map +7 -0
  98. package/utils/scrollTo.d.ts +30 -6
  99. package/utils/scrollTo.js +97 -43
  100. package/utils/scrollTo.js.map +2 -2
  101. package/utils/{focusTrap.d.ts → trapFocus.d.ts} +2 -10
  102. package/utils/{focusTrap.js → trapFocus.js} +5 -9
  103. package/utils/trapFocus.js.map +7 -0
  104. package/utils/tween.d.ts +59 -10
  105. package/utils/tween.js +24 -18
  106. package/utils/tween.js.map +2 -2
  107. package/Base/Base.cjs +0 -420
  108. package/Base/Base.cjs.map +0 -7
  109. package/Base/features.cjs +0 -27
  110. package/Base/features.cjs.map +0 -7
  111. package/Base/index.cjs +0 -21
  112. package/Base/index.cjs.map +0 -7
  113. package/Base/managers/AbstractManager.cjs +0 -78
  114. package/Base/managers/AbstractManager.cjs.map +0 -7
  115. package/Base/managers/ChildrenManager.cjs +0 -156
  116. package/Base/managers/ChildrenManager.cjs.map +0 -7
  117. package/Base/managers/EventsManager.cjs +0 -305
  118. package/Base/managers/EventsManager.cjs.map +0 -7
  119. package/Base/managers/OptionsManager.cjs +0 -198
  120. package/Base/managers/OptionsManager.cjs.map +0 -7
  121. package/Base/managers/RefsManager.cjs +0 -118
  122. package/Base/managers/RefsManager.cjs.map +0 -7
  123. package/Base/managers/ResponsiveOptionsManager.cjs +0 -79
  124. package/Base/managers/ResponsiveOptionsManager.cjs.map +0 -7
  125. package/Base/managers/ServicesManager.cjs +0 -161
  126. package/Base/managers/ServicesManager.cjs.map +0 -7
  127. package/Base/managers/index.cjs +0 -39
  128. package/Base/managers/index.cjs.map +0 -7
  129. package/Base/types.cjs +0 -19
  130. package/Base/types.cjs.map +0 -7
  131. package/Base/utils.cjs +0 -95
  132. package/Base/utils.cjs.map +0 -7
  133. package/decorators/index.cjs +0 -33
  134. package/decorators/index.cjs.map +0 -7
  135. package/decorators/withBreakpointManager.cjs +0 -102
  136. package/decorators/withBreakpointManager.cjs.map +0 -7
  137. package/decorators/withBreakpointObserver.cjs +0 -128
  138. package/decorators/withBreakpointObserver.cjs.map +0 -7
  139. package/decorators/withDrag.cjs +0 -56
  140. package/decorators/withDrag.cjs.map +0 -7
  141. package/decorators/withExtraConfig.cjs +0 -50
  142. package/decorators/withExtraConfig.cjs.map +0 -7
  143. package/decorators/withFreezedOptions.cjs +0 -50
  144. package/decorators/withFreezedOptions.cjs.map +0 -7
  145. package/decorators/withIntersectionObserver.cjs +0 -71
  146. package/decorators/withIntersectionObserver.cjs.map +0 -7
  147. package/decorators/withMountOnMediaQuery.cjs +0 -86
  148. package/decorators/withMountOnMediaQuery.cjs.map +0 -7
  149. package/decorators/withMountWhenInView.cjs +0 -92
  150. package/decorators/withMountWhenInView.cjs.map +0 -7
  151. package/decorators/withMountWhenPrefersMotion.cjs +0 -30
  152. package/decorators/withMountWhenPrefersMotion.cjs.map +0 -7
  153. package/decorators/withRelativePointer.cjs +0 -56
  154. package/decorators/withRelativePointer.cjs.map +0 -7
  155. package/decorators/withResponsiveOptions.cjs +0 -41
  156. package/decorators/withResponsiveOptions.cjs.map +0 -7
  157. package/decorators/withScrolledInView/index.cjs +0 -22
  158. package/decorators/withScrolledInView/index.cjs.map +0 -7
  159. package/decorators/withScrolledInView/types.cjs +0 -19
  160. package/decorators/withScrolledInView/types.cjs.map +0 -7
  161. package/decorators/withScrolledInView/utils.cjs +0 -99
  162. package/decorators/withScrolledInView/utils.cjs.map +0 -7
  163. package/decorators/withScrolledInView/withScrolledInView.cjs +0 -249
  164. package/decorators/withScrolledInView/withScrolledInView.cjs.map +0 -7
  165. package/decorators/withVue2.cjs +0 -68
  166. package/decorators/withVue2.cjs.map +0 -7
  167. package/decorators/withVue2.d.ts +0 -16
  168. package/decorators/withVue2.js +0 -46
  169. package/decorators/withVue2.js.map +0 -7
  170. package/helpers/createApp.cjs +0 -58
  171. package/helpers/createApp.cjs.map +0 -7
  172. package/helpers/getClosestParent.cjs +0 -45
  173. package/helpers/getClosestParent.cjs.map +0 -7
  174. package/helpers/getDirectChildren.cjs +0 -47
  175. package/helpers/getDirectChildren.cjs.map +0 -7
  176. package/helpers/getInstanceFromElement.cjs +0 -32
  177. package/helpers/getInstanceFromElement.cjs.map +0 -7
  178. package/helpers/importOnInteraction.cjs +0 -48
  179. package/helpers/importOnInteraction.cjs.map +0 -7
  180. package/helpers/importOnMediaQuery.cjs +0 -44
  181. package/helpers/importOnMediaQuery.cjs.map +0 -7
  182. package/helpers/importWhenIdle.cjs +0 -46
  183. package/helpers/importWhenIdle.cjs.map +0 -7
  184. package/helpers/importWhenPrefersMotion.cjs +0 -40
  185. package/helpers/importWhenPrefersMotion.cjs.map +0 -7
  186. package/helpers/importWhenVisible.cjs +0 -44
  187. package/helpers/importWhenVisible.cjs.map +0 -7
  188. package/helpers/index.cjs +0 -53
  189. package/helpers/index.cjs.map +0 -7
  190. package/helpers/utils.cjs +0 -37
  191. package/helpers/utils.cjs.map +0 -7
  192. package/index.cjs +0 -31
  193. package/index.cjs.map +0 -7
  194. package/services/drag.cjs +0 -231
  195. package/services/drag.cjs.map +0 -7
  196. package/services/index.cjs +0 -51
  197. package/services/index.cjs.map +0 -7
  198. package/services/key.cjs +0 -97
  199. package/services/key.cjs.map +0 -7
  200. package/services/load.cjs +0 -60
  201. package/services/load.cjs.map +0 -7
  202. package/services/pointer.cjs +0 -145
  203. package/services/pointer.cjs.map +0 -7
  204. package/services/raf.cjs +0 -80
  205. package/services/raf.cjs.map +0 -7
  206. package/services/resize.cjs +0 -107
  207. package/services/resize.cjs.map +0 -7
  208. package/services/scroll.cjs +0 -119
  209. package/services/scroll.cjs.map +0 -7
  210. package/services/service.cjs +0 -69
  211. package/services/service.cjs.map +0 -7
  212. package/utils/Queue.cjs +0 -93
  213. package/utils/Queue.cjs.map +0 -7
  214. package/utils/SmartQueue.cjs +0 -73
  215. package/utils/SmartQueue.cjs.map +0 -7
  216. package/utils/collide/boundingRectToCircle.cjs +0 -36
  217. package/utils/collide/boundingRectToCircle.cjs.map +0 -7
  218. package/utils/collide/collideCircleCircle.cjs +0 -35
  219. package/utils/collide/collideCircleCircle.cjs.map +0 -7
  220. package/utils/collide/collideCircleRect.cjs +0 -47
  221. package/utils/collide/collideCircleRect.cjs.map +0 -7
  222. package/utils/collide/collidePointCircle.cjs +0 -32
  223. package/utils/collide/collidePointCircle.cjs.map +0 -7
  224. package/utils/collide/collidePointRect.cjs +0 -32
  225. package/utils/collide/collidePointRect.cjs.map +0 -7
  226. package/utils/collide/collideRectRect.cjs +0 -32
  227. package/utils/collide/collideRectRect.cjs.map +0 -7
  228. package/utils/collide/index.cjs +0 -47
  229. package/utils/collide/index.cjs.map +0 -7
  230. package/utils/css/animate.cjs +0 -202
  231. package/utils/css/animate.cjs.map +0 -7
  232. package/utils/css/classes.cjs +0 -51
  233. package/utils/css/classes.cjs.map +0 -7
  234. package/utils/css/getOffsetSizes.cjs +0 -48
  235. package/utils/css/getOffsetSizes.cjs.map +0 -7
  236. package/utils/css/index.cjs +0 -52
  237. package/utils/css/index.cjs.map +0 -7
  238. package/utils/css/matrix.cjs +0 -30
  239. package/utils/css/matrix.cjs.map +0 -7
  240. package/utils/css/styles.cjs +0 -45
  241. package/utils/css/styles.cjs.map +0 -7
  242. package/utils/css/transform.cjs +0 -91
  243. package/utils/css/transform.cjs.map +0 -7
  244. package/utils/css/transition.cjs +0 -145
  245. package/utils/css/transition.cjs.map +0 -7
  246. package/utils/css/utils.cjs +0 -32
  247. package/utils/css/utils.cjs.map +0 -7
  248. package/utils/debounce.cjs +0 -35
  249. package/utils/debounce.cjs.map +0 -7
  250. package/utils/dom/ancestors.cjs +0 -37
  251. package/utils/dom/ancestors.cjs.map +0 -7
  252. package/utils/dom/index.cjs +0 -21
  253. package/utils/dom/index.cjs.map +0 -7
  254. package/utils/focusTrap.cjs +0 -93
  255. package/utils/focusTrap.cjs.map +0 -7
  256. package/utils/focusTrap.js.map +0 -7
  257. package/utils/getComponentResolver.cjs +0 -38
  258. package/utils/getComponentResolver.cjs.map +0 -7
  259. package/utils/has.cjs +0 -29
  260. package/utils/has.cjs.map +0 -7
  261. package/utils/history.cjs +0 -92
  262. package/utils/history.cjs.map +0 -7
  263. package/utils/index.cjs +0 -76
  264. package/utils/index.cjs.map +0 -7
  265. package/utils/is.cjs +0 -41
  266. package/utils/is.cjs.map +0 -7
  267. package/utils/keyCodes.cjs +0 -36
  268. package/utils/keyCodes.cjs.map +0 -7
  269. package/utils/math/clamp.cjs +0 -29
  270. package/utils/math/clamp.cjs.map +0 -7
  271. package/utils/math/clamp01.cjs +0 -40
  272. package/utils/math/clamp01.cjs.map +0 -7
  273. package/utils/math/createEases.cjs +0 -33
  274. package/utils/math/createEases.cjs.map +0 -7
  275. package/utils/math/damp.cjs +0 -29
  276. package/utils/math/damp.cjs.map +0 -7
  277. package/utils/math/ease.cjs +0 -82
  278. package/utils/math/ease.cjs.map +0 -7
  279. package/utils/math/index.cjs +0 -54
  280. package/utils/math/index.cjs.map +0 -7
  281. package/utils/math/inertiaFinalValue.cjs +0 -47
  282. package/utils/math/inertiaFinalValue.cjs.map +0 -7
  283. package/utils/math/lerp.cjs +0 -29
  284. package/utils/math/lerp.cjs.map +0 -7
  285. package/utils/math/map.cjs +0 -29
  286. package/utils/math/map.cjs.map +0 -7
  287. package/utils/math/round.cjs +0 -29
  288. package/utils/math/round.cjs.map +0 -7
  289. package/utils/memoize.cjs +0 -48
  290. package/utils/memoize.cjs.map +0 -7
  291. package/utils/nextFrame.cjs +0 -41
  292. package/utils/nextFrame.cjs.map +0 -7
  293. package/utils/nextMicrotask.cjs +0 -30
  294. package/utils/nextMicrotask.cjs.map +0 -7
  295. package/utils/nextTick.cjs +0 -31
  296. package/utils/nextTick.cjs.map +0 -7
  297. package/utils/noop.cjs +0 -32
  298. package/utils/noop.cjs.map +0 -7
  299. package/utils/object/autoBind.cjs +0 -60
  300. package/utils/object/autoBind.cjs.map +0 -7
  301. package/utils/object/autoBind.d.ts +0 -14
  302. package/utils/object/autoBind.js +0 -28
  303. package/utils/object/autoBind.js.map +0 -7
  304. package/utils/object/getAllProperties.cjs +0 -39
  305. package/utils/object/getAllProperties.cjs.map +0 -7
  306. package/utils/object/index.cjs +0 -39
  307. package/utils/object/index.cjs.map +0 -7
  308. package/utils/object/index.d.ts +0 -2
  309. package/utils/object/index.js +0 -7
  310. package/utils/object/index.js.map +0 -7
  311. package/utils/scheduler.cjs +0 -75
  312. package/utils/scheduler.cjs.map +0 -7
  313. package/utils/scrollTo.cjs +0 -88
  314. package/utils/scrollTo.cjs.map +0 -7
  315. package/utils/string/endsWith.cjs +0 -35
  316. package/utils/string/endsWith.cjs.map +0 -7
  317. package/utils/string/index.cjs +0 -58
  318. package/utils/string/index.cjs.map +0 -7
  319. package/utils/string/startsWith.cjs +0 -35
  320. package/utils/string/startsWith.cjs.map +0 -7
  321. package/utils/string/withLeadingCharacters.cjs +0 -40
  322. package/utils/string/withLeadingCharacters.cjs.map +0 -7
  323. package/utils/string/withLeadingSlash.cjs +0 -40
  324. package/utils/string/withLeadingSlash.cjs.map +0 -7
  325. package/utils/string/withTrailingCharacters.cjs +0 -40
  326. package/utils/string/withTrailingCharacters.cjs.map +0 -7
  327. package/utils/string/withTrailingSlash.cjs +0 -40
  328. package/utils/string/withTrailingSlash.cjs.map +0 -7
  329. package/utils/string/withoutLeadingCharacters.cjs +0 -29
  330. package/utils/string/withoutLeadingCharacters.cjs.map +0 -7
  331. package/utils/string/withoutLeadingCharactersRecursive.cjs +0 -45
  332. package/utils/string/withoutLeadingCharactersRecursive.cjs.map +0 -7
  333. package/utils/string/withoutLeadingSlash.cjs +0 -40
  334. package/utils/string/withoutLeadingSlash.cjs.map +0 -7
  335. package/utils/string/withoutTrailingCharacters.cjs +0 -29
  336. package/utils/string/withoutTrailingCharacters.cjs.map +0 -7
  337. package/utils/string/withoutTrailingCharactersRecursive.cjs +0 -45
  338. package/utils/string/withoutTrailingCharactersRecursive.cjs.map +0 -7
  339. package/utils/string/withoutTrailingSlash.cjs +0 -40
  340. package/utils/string/withoutTrailingSlash.cjs.map +0 -7
  341. package/utils/throttle.cjs +0 -37
  342. package/utils/throttle.cjs.map +0 -7
  343. package/utils/tween.cjs +0 -122
  344. package/utils/tween.cjs.map +0 -7
  345. package/utils/wait.cjs +0 -31
  346. package/utils/wait.cjs.map +0 -7
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../packages/js-toolkit/utils/css/utils.ts"],
4
- "sourcesContent": ["export function eachElements<S extends Node = Node, T = void>(\n elementOrElements: S | S[] | NodeListOf<S>,\n callback: (element: S, index?: number, elements?: S[]) => T,\n): T[] {\n if (elementOrElements instanceof Node) {\n return [callback(elementOrElements)];\n }\n\n return Array.from(elementOrElements).map(callback);\n}\n"],
5
- "mappings": "AAAO,SAAS,aACd,mBACA,UACK;AACL,MAAI,6BAA6B,MAAM;AACrC,WAAO,CAAC,SAAS,iBAAiB,CAAC;AAAA,EACrC;AAEA,SAAO,MAAM,KAAK,iBAAiB,EAAE,IAAI,QAAQ;AACnD;",
4
+ "sourcesContent": ["export function eachElements<S extends Node = Node, T = void>(\n elementOrElements: S | S[] | NodeListOf<S>,\n callback: (element: S, index: number, elements: S[]) => T,\n): T[] {\n if (elementOrElements instanceof Node) {\n return [callback(elementOrElements, 0, [elementOrElements])];\n }\n\n return Array.from(elementOrElements).map(callback);\n}\n"],
5
+ "mappings": "AAAO,SAAS,aACd,mBACA,UACK;AACL,MAAI,6BAA6B,MAAM;AACrC,WAAO,CAAC,SAAS,mBAAmB,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAAA,EAC7D;AAEA,SAAO,MAAM,KAAK,iBAAiB,EAAE,IAAI,QAAQ;AACnD;",
6
6
  "names": []
7
7
  }
package/utils/index.d.ts CHANGED
@@ -1,12 +1,12 @@
1
1
  export { default as debounce } from './debounce.js';
2
- export { default as focusTrap } from './focusTrap.js';
2
+ export * from './trapFocus.js';
3
3
  export { default as keyCodes } from './keyCodes.js';
4
4
  export { default as memoize } from './memoize.js';
5
5
  export { nextFrame } from './nextFrame.js';
6
- export { default as nextTick } from './nextTick.js';
7
- export { default as nextMicrotask } from './nextMicrotask.js';
6
+ export { nextTick } from './nextTick.js';
7
+ export { nextMicrotask } from './nextMicrotask.js';
8
8
  export { default as throttle } from './throttle.js';
9
- export { default as scrollTo } from './scrollTo.js';
9
+ export { scrollTo } from './scrollTo.js';
10
10
  export { default as getComponentResolver } from './getComponentResolver.js';
11
11
  export * from './is.js';
12
12
  export * from './has.js';
@@ -22,3 +22,4 @@ export { Queue } from './Queue.js';
22
22
  export { SmartQueue } from './SmartQueue.js';
23
23
  export * from './dom/index.js';
24
24
  export * from './wait.js';
25
+ export * from './random.js';
package/utils/index.js CHANGED
@@ -1,13 +1,13 @@
1
1
  import { default as default2 } from "./debounce.js";
2
- import { default as default3 } from "./focusTrap.js";
3
- import { default as default4 } from "./keyCodes.js";
4
- import { default as default5 } from "./memoize.js";
2
+ export * from "./trapFocus.js";
3
+ import { default as default3 } from "./keyCodes.js";
4
+ import { default as default4 } from "./memoize.js";
5
5
  import { nextFrame } from "./nextFrame.js";
6
- import { default as default6 } from "./nextTick.js";
7
- import { default as default7 } from "./nextMicrotask.js";
8
- import { default as default8 } from "./throttle.js";
9
- import { default as default9 } from "./scrollTo.js";
10
- import { default as default10 } from "./getComponentResolver.js";
6
+ import { nextTick } from "./nextTick.js";
7
+ import { nextMicrotask } from "./nextMicrotask.js";
8
+ import { default as default5 } from "./throttle.js";
9
+ import { scrollTo } from "./scrollTo.js";
10
+ import { default as default6 } from "./getComponentResolver.js";
11
11
  export * from "./is.js";
12
12
  export * from "./has.js";
13
13
  export * from "./css/index.js";
@@ -26,22 +26,22 @@ import { Queue } from "./Queue.js";
26
26
  import { SmartQueue } from "./SmartQueue.js";
27
27
  export * from "./dom/index.js";
28
28
  export * from "./wait.js";
29
+ export * from "./random.js";
29
30
  export {
30
31
  Queue,
31
32
  SmartQueue,
32
33
  default2 as debounce,
33
- default3 as focusTrap,
34
- default10 as getComponentResolver,
34
+ default6 as getComponentResolver,
35
35
  push as historyPush,
36
36
  replace as historyReplace,
37
- default4 as keyCodes,
38
- default5 as memoize,
37
+ default3 as keyCodes,
38
+ default4 as memoize,
39
39
  nextFrame,
40
- default7 as nextMicrotask,
41
- default6 as nextTick,
40
+ nextMicrotask,
41
+ nextTick,
42
42
  objectToURLSearchParams,
43
- default9 as scrollTo,
44
- default8 as throttle,
43
+ scrollTo,
44
+ default5 as throttle,
45
45
  tween
46
46
  };
47
47
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../packages/js-toolkit/utils/index.ts"],
4
- "sourcesContent": ["export { default as debounce } from './debounce.js';\nexport { default as focusTrap } from './focusTrap.js';\nexport { default as keyCodes } from './keyCodes.js';\nexport { default as memoize } from './memoize.js';\nexport { nextFrame } from './nextFrame.js';\nexport { default as nextTick } from './nextTick.js';\nexport { default as nextMicrotask } from './nextMicrotask.js';\nexport { default as throttle } from './throttle.js';\nexport { default as scrollTo } from './scrollTo.js';\nexport { default as getComponentResolver } from './getComponentResolver.js';\nexport * from './is.js';\nexport * from './has.js';\n// eslint-disable-next-line import/extensions\nexport * from './css/index.js';\nexport {\n objectToURLSearchParams,\n push as historyPush,\n replace as historyReplace,\n} from './history.js';\nexport * from './collide/index.js';\nexport * from './math/index.js';\nexport * from './string/index.js';\nexport * from './scheduler.js';\nexport * from './noop.js';\nexport { tween } from './tween.js';\nexport { Queue } from './Queue.js';\nexport { SmartQueue } from './SmartQueue.js';\nexport * from './dom/index.js';\nexport * from './wait.js';\n"],
5
- "mappings": "AAAA,SAAoB,WAAXA,gBAA2B;AACpC,SAAoB,WAAXA,gBAA4B;AACrC,SAAoB,WAAXA,gBAA2B;AACpC,SAAoB,WAAXA,gBAA0B;AACnC,SAAS,iBAAiB;AAC1B,SAAoB,WAAXA,gBAA2B;AACpC,SAAoB,WAAXA,gBAAgC;AACzC,SAAoB,WAAXA,gBAA2B;AACpC,SAAoB,WAAXA,gBAA2B;AACpC,SAAoB,WAAXA,iBAAuC;AAChD,cAAc;AACd,cAAc;AAEd,cAAc;AACd;AAAA,EACE;AAAA,EACQ;AAAA,EACG;AAAA,OACN;AACP,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAAS,aAAa;AACtB,SAAS,aAAa;AACtB,SAAS,kBAAkB;AAC3B,cAAc;AACd,cAAc;",
4
+ "sourcesContent": ["export { default as debounce } from './debounce.js';\nexport * from './trapFocus.js';\nexport { default as keyCodes } from './keyCodes.js';\nexport { default as memoize } from './memoize.js';\nexport { nextFrame } from './nextFrame.js';\nexport { nextTick } from './nextTick.js';\nexport { nextMicrotask } from './nextMicrotask.js';\nexport { default as throttle } from './throttle.js';\nexport { scrollTo } from './scrollTo.js';\nexport { default as getComponentResolver } from './getComponentResolver.js';\nexport * from './is.js';\nexport * from './has.js';\nexport * from './css/index.js';\nexport {\n objectToURLSearchParams,\n push as historyPush,\n replace as historyReplace,\n} from './history.js';\nexport * from './collide/index.js';\nexport * from './math/index.js';\nexport * from './string/index.js';\nexport * from './scheduler.js';\nexport * from './noop.js';\nexport { tween } from './tween.js';\nexport { Queue } from './Queue.js';\nexport { SmartQueue } from './SmartQueue.js';\nexport * from './dom/index.js';\nexport * from './wait.js';\nexport * from './random.js';\n"],
5
+ "mappings": "AAAA,SAAoB,WAAXA,gBAA2B;AACpC,cAAc;AACd,SAAoB,WAAXA,gBAA2B;AACpC,SAAoB,WAAXA,gBAA0B;AACnC,SAAS,iBAAiB;AAC1B,SAAS,gBAAgB;AACzB,SAAS,qBAAqB;AAC9B,SAAoB,WAAXA,gBAA2B;AACpC,SAAS,gBAAgB;AACzB,SAAoB,WAAXA,gBAAuC;AAChD,cAAc;AACd,cAAc;AACd,cAAc;AACd;AAAA,EACE;AAAA,EACQ;AAAA,EACG;AAAA,OACN;AACP,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAAS,aAAa;AACtB,SAAS,aAAa;AACtB,SAAS,kBAAkB;AAC3B,cAAc;AACd,cAAc;AACd,cAAc;",
6
6
  "names": ["default"]
7
7
  }
package/utils/is.d.ts CHANGED
@@ -1,4 +1,8 @@
1
1
  export declare const isDev: boolean;
2
+ /**
3
+ * Test is the given value is null.
4
+ */
5
+ export declare const isNull: (value: unknown) => value is null;
2
6
  /**
3
7
  * Test if the given value is a function.
4
8
  */
@@ -24,3 +28,11 @@ export declare const isNumber: (value: unknown) => value is number;
24
28
  */
25
29
  export declare const isBoolean: (value: unknown) => value is boolean;
26
30
  export declare const isArray: (arg: any) => arg is any[];
31
+ /**
32
+ * Test if a given value is an empty string.
33
+ */
34
+ export declare const isEmptyString: (value?: unknown) => boolean;
35
+ /**
36
+ * Test if the given value is empty.
37
+ */
38
+ export declare const isEmpty: (value?: any) => boolean;
package/utils/is.js CHANGED
@@ -1,4 +1,5 @@
1
1
  const isDev = typeof __DEV__ !== "undefined" && __DEV__;
2
+ const isNull = (value) => value === null;
2
3
  const isFunction = (value) => typeof value === "function";
3
4
  const isDefined = (value) => typeof value !== "undefined";
4
5
  const isString = (value) => typeof value === "string";
@@ -6,12 +7,28 @@ const isObject = (value) => typeof value === "object" && !!value && value.toStri
6
7
  const isNumber = (value) => typeof value === "number" && !Number.isNaN(value);
7
8
  const isBoolean = (value) => typeof value === "boolean";
8
9
  const isArray = Array.isArray;
10
+ const isEmptyString = (value) => isString(value) && value.length === 0;
11
+ const isEmpty = (value) => {
12
+ if (isNull(value) || !isDefined(value)) {
13
+ return true;
14
+ }
15
+ if (isString(value) || isArray(value)) {
16
+ return value.length === 0;
17
+ }
18
+ if (isObject(value)) {
19
+ return value.constructor === Object && Object.keys(value).length === 0;
20
+ }
21
+ return false;
22
+ };
9
23
  export {
10
24
  isArray,
11
25
  isBoolean,
12
26
  isDefined,
13
27
  isDev,
28
+ isEmpty,
29
+ isEmptyString,
14
30
  isFunction,
31
+ isNull,
15
32
  isNumber,
16
33
  isObject,
17
34
  isString
package/utils/is.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../packages/js-toolkit/utils/is.ts"],
4
- "sourcesContent": ["// eslint-disable-next-line no-undef\nexport const isDev = typeof __DEV__ !== 'undefined' && __DEV__;\n\n/**\n * Test if the given value is a function.\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport const isFunction = (value: unknown): value is Function => typeof value === 'function';\n\n/**\n * Test if a value is defined or not.\n */\nexport const isDefined = (value: unknown): boolean => typeof value !== 'undefined';\n\n/**\n * Test if value is a string.\n */\nexport const isString = (value: unknown): value is string => typeof value === 'string';\n\n/**\n * Test if the given value is an object.\n */\nexport const isObject = (value: unknown): boolean =>\n typeof value === 'object' && !!value && value.toString() === '[object Object]';\n\n/**\n * Test if a given value is a number.\n */\nexport const isNumber = (value: unknown): value is number =>\n typeof value === 'number' && !Number.isNaN(value);\n\n/**\n * Test if a given value is a boolean.\n */\nexport const isBoolean = (value: unknown): value is boolean => typeof value === 'boolean';\n\n// eslint-disable-next-line prefer-destructuring\nexport const isArray = Array.isArray;\n"],
5
- "mappings": "AACO,MAAM,QAAQ,OAAO,YAAY,eAAe;AAMhD,MAAM,aAAa,CAAC,UAAsC,OAAO,UAAU;AAK3E,MAAM,YAAY,CAAC,UAA4B,OAAO,UAAU;AAKhE,MAAM,WAAW,CAAC,UAAoC,OAAO,UAAU;AAKvE,MAAM,WAAW,CAAC,UACvB,OAAO,UAAU,YAAY,CAAC,CAAC,SAAS,MAAM,SAAS,MAAM;AAKxD,MAAM,WAAW,CAAC,UACvB,OAAO,UAAU,YAAY,CAAC,OAAO,MAAM,KAAK;AAK3C,MAAM,YAAY,CAAC,UAAqC,OAAO,UAAU;AAGzE,MAAM,UAAU,MAAM;",
4
+ "sourcesContent": ["// eslint-disable-next-line no-undef\nexport const isDev = typeof __DEV__ !== 'undefined' && __DEV__;\n\n/**\n * Test is the given value is null.\n */\nexport const isNull = (value: unknown): value is null => value === null;\n\n/**\n * Test if the given value is a function.\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport const isFunction = (value: unknown): value is Function => typeof value === 'function';\n\n/**\n * Test if a value is defined or not.\n */\nexport const isDefined = (value: unknown): boolean => typeof value !== 'undefined';\n\n/**\n * Test if value is a string.\n */\nexport const isString = (value: unknown): value is string => typeof value === 'string';\n\n/**\n * Test if the given value is an object.\n */\nexport const isObject = (value: unknown): boolean =>\n typeof value === 'object' && !!value && value.toString() === '[object Object]';\n\n/**\n * Test if a given value is a number.\n */\nexport const isNumber = (value: unknown): value is number =>\n typeof value === 'number' && !Number.isNaN(value);\n\n/**\n * Test if a given value is a boolean.\n */\nexport const isBoolean = (value: unknown): value is boolean => typeof value === 'boolean';\n\n// eslint-disable-next-line prefer-destructuring\nexport const isArray = Array.isArray;\n\n/**\n * Test if a given value is an empty string.\n */\nexport const isEmptyString = (value?: unknown): boolean => isString(value) && value.length === 0;\n\n/**\n * Test if the given value is empty.\n */\nexport const isEmpty = (value?) => {\n if (isNull(value) || !isDefined(value)) {\n return true;\n }\n\n if (isString(value) || isArray(value)) {\n return value.length === 0;\n }\n\n if (isObject(value)) {\n return value.constructor === Object && Object.keys(value).length === 0;\n }\n\n return false;\n};\n"],
5
+ "mappings": "AACO,MAAM,QAAQ,OAAO,YAAY,eAAe;AAKhD,MAAM,SAAS,CAAC,UAAkC,UAAU;AAM5D,MAAM,aAAa,CAAC,UAAsC,OAAO,UAAU;AAK3E,MAAM,YAAY,CAAC,UAA4B,OAAO,UAAU;AAKhE,MAAM,WAAW,CAAC,UAAoC,OAAO,UAAU;AAKvE,MAAM,WAAW,CAAC,UACvB,OAAO,UAAU,YAAY,CAAC,CAAC,SAAS,MAAM,SAAS,MAAM;AAKxD,MAAM,WAAW,CAAC,UACvB,OAAO,UAAU,YAAY,CAAC,OAAO,MAAM,KAAK;AAK3C,MAAM,YAAY,CAAC,UAAqC,OAAO,UAAU;AAGzE,MAAM,UAAU,MAAM;AAKtB,MAAM,gBAAgB,CAAC,UAA6B,SAAS,KAAK,KAAK,MAAM,WAAW;AAKxF,MAAM,UAAU,CAAC,UAAW;AACjC,MAAI,OAAO,KAAK,KAAK,CAAC,UAAU,KAAK,GAAG;AACtC,WAAO;AAAA,EACT;AAEA,MAAI,SAAS,KAAK,KAAK,QAAQ,KAAK,GAAG;AACrC,WAAO,MAAM,WAAW;AAAA,EAC1B;AAEA,MAAI,SAAS,KAAK,GAAG;AACnB,WAAO,MAAM,gBAAgB,UAAU,OAAO,KAAK,KAAK,EAAE,WAAW;AAAA,EACvE;AAEA,SAAO;AACT;",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Create an array from a given range and with the given incremental step.
3
+ */
4
+ export declare function createRange(min: number, max: number, step: number): number[];
@@ -0,0 +1,13 @@
1
+ function createRange(min, max, step) {
2
+ const result = [];
3
+ let value = min;
4
+ while (value <= max) {
5
+ result.push(value);
6
+ value += step;
7
+ }
8
+ return result;
9
+ }
10
+ export {
11
+ createRange
12
+ };
13
+ //# sourceMappingURL=createRange.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../packages/js-toolkit/utils/math/createRange.ts"],
4
+ "sourcesContent": ["/**\n * Create an array from a given range and with the given incremental step.\n */\nexport function createRange(min: number, max: number, step: number): number[] {\n const result: number[] = [];\n let value = min;\n\n while (value <= max) {\n result.push(value);\n value += step;\n }\n\n return result;\n}\n"],
5
+ "mappings": "AAGO,SAAS,YAAY,KAAa,KAAa,MAAwB;AAC5E,QAAM,SAAmB,CAAC;AAC1B,MAAI,QAAQ;AAEZ,SAAO,SAAS,KAAK;AACnB,WAAO,KAAK,KAAK;AACjB,aAAS;AAAA,EACX;AAEA,SAAO;AACT;",
6
+ "names": []
7
+ }
@@ -1,3 +1,4 @@
1
+ export { noopValue as easeLinear } from '../noop.js';
1
2
  /**
2
3
  * @param {number} progress Progress value betwen 0 and 1.
3
4
  * @returns {number} Eased value between 0 and 1.
@@ -1,4 +1,5 @@
1
1
  import { createEaseOut, createEaseInOut } from "./createEases.js";
2
+ import { noopValue } from "../noop.js";
2
3
  function easeInQuad(progress) {
3
4
  return progress ** 2;
4
5
  }
@@ -49,6 +50,7 @@ export {
49
50
  easeInQuart,
50
51
  easeInQuint,
51
52
  easeInSine,
53
+ noopValue as easeLinear,
52
54
  easeOutCirc,
53
55
  easeOutCubic,
54
56
  easeOutExpo,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../packages/js-toolkit/utils/math/ease.ts"],
4
- "sourcesContent": ["import { createEaseOut, createEaseInOut } from './createEases.js';\n\n/**\n * @param {number} progress Progress value betwen 0 and 1.\n * @returns {number} Eased value between 0 and 1.\n */\nexport function easeInQuad(progress: number) {\n return progress ** 2;\n}\n\nexport const easeOutQuad = createEaseOut(easeInQuad);\nexport const easeInOutQuad = createEaseInOut(easeInQuad);\n\n/**\n * Ease in cubic.\n *\n * @param {number} progress Progress value betwen 0 and 1.\n * @returns {number} Eased value between 0 and 1.\n */\nexport function easeInCubic(progress: number) {\n return progress ** 3;\n}\n\nexport const easeOutCubic = createEaseOut(easeInCubic);\nexport const easeInOutCubic = createEaseInOut(easeInCubic);\n\n/**\n * Ease in quart.\n *\n * @param {number} progress Progress value betwen 0 and 1.\n * @returns {number} Eased value between 0 and 1.\n */\nexport function easeInQuart(progress: number) {\n return progress ** 4;\n}\n\nexport const easeOutQuart = createEaseOut(easeInQuart);\nexport const easeInOutQuart = createEaseInOut(easeInQuart);\n\n/**\n * Ease in quint.\n *\n * @param {number} progress Progress value betwen 0 and 1.\n * @returns {number} Eased value between 0 and 1.\n */\nexport function easeInQuint(progress: number) {\n return progress ** 5;\n}\n\nexport const easeOutQuint = createEaseOut(easeInQuint);\nexport const easeInOutQuint = createEaseInOut(easeInQuint);\n\n/**\n * Ease in sine.\n *\n * @param {number} progress Progress value betwen 0 and 1.\n * @returns {number} Eased value between 0 and 1.\n */\nexport function easeInSine(progress: number) {\n return progress === 1 ? 1 : -Math.cos((progress * Math.PI) / 2) + 1;\n}\n\nexport const easeOutSine = createEaseOut(easeInSine);\nexport const easeInOutSine = createEaseInOut(easeInSine);\n\n/**\n * Ease in circ.\n *\n * @param {number} progress Progress value betwen 0 and 1.\n * @returns {number} Eased value between 0 and 1.\n */\nexport function easeInCirc(progress: number) {\n return -(Math.sqrt(1 - progress * progress) - 1);\n}\n\nexport const easeOutCirc = createEaseOut(easeInCirc);\nexport const easeInOutCirc = createEaseInOut(easeInCirc);\n\n/**\n * Ease in exponential.\n *\n * @param {number} progress Progress value betwen 0 and 1.\n * @returns {number} Eased value between 0 and 1.\n */\nexport function easeInExpo(progress: number) {\n return progress === 0 ? 0 : 2 ** (10 * (progress - 1));\n}\n\nexport const easeOutExpo = createEaseOut(easeInExpo);\nexport const easeInOutExpo = createEaseInOut(easeInExpo);\n"],
5
- "mappings": "AAAA,SAAS,eAAe,uBAAuB;AAMxC,SAAS,WAAW,UAAkB;AAC3C,SAAO,YAAY;AACrB;AAEO,MAAM,cAAc,cAAc,UAAU;AAC5C,MAAM,gBAAgB,gBAAgB,UAAU;AAQhD,SAAS,YAAY,UAAkB;AAC5C,SAAO,YAAY;AACrB;AAEO,MAAM,eAAe,cAAc,WAAW;AAC9C,MAAM,iBAAiB,gBAAgB,WAAW;AAQlD,SAAS,YAAY,UAAkB;AAC5C,SAAO,YAAY;AACrB;AAEO,MAAM,eAAe,cAAc,WAAW;AAC9C,MAAM,iBAAiB,gBAAgB,WAAW;AAQlD,SAAS,YAAY,UAAkB;AAC5C,SAAO,YAAY;AACrB;AAEO,MAAM,eAAe,cAAc,WAAW;AAC9C,MAAM,iBAAiB,gBAAgB,WAAW;AAQlD,SAAS,WAAW,UAAkB;AAC3C,SAAO,aAAa,IAAI,IAAI,CAAC,KAAK,IAAK,WAAW,KAAK,KAAM,CAAC,IAAI;AACpE;AAEO,MAAM,cAAc,cAAc,UAAU;AAC5C,MAAM,gBAAgB,gBAAgB,UAAU;AAQhD,SAAS,WAAW,UAAkB;AAC3C,SAAO,EAAE,KAAK,KAAK,IAAI,WAAW,QAAQ,IAAI;AAChD;AAEO,MAAM,cAAc,cAAc,UAAU;AAC5C,MAAM,gBAAgB,gBAAgB,UAAU;AAQhD,SAAS,WAAW,UAAkB;AAC3C,SAAO,aAAa,IAAI,IAAI,MAAM,MAAM,WAAW;AACrD;AAEO,MAAM,cAAc,cAAc,UAAU;AAC5C,MAAM,gBAAgB,gBAAgB,UAAU;",
4
+ "sourcesContent": ["import { createEaseOut, createEaseInOut } from './createEases.js';\n\nexport { noopValue as easeLinear } from '../noop.js';\n\n/**\n * @param {number} progress Progress value betwen 0 and 1.\n * @returns {number} Eased value between 0 and 1.\n */\nexport function easeInQuad(progress: number) {\n return progress ** 2;\n}\n\nexport const easeOutQuad = createEaseOut(easeInQuad);\nexport const easeInOutQuad = createEaseInOut(easeInQuad);\n\n/**\n * Ease in cubic.\n *\n * @param {number} progress Progress value betwen 0 and 1.\n * @returns {number} Eased value between 0 and 1.\n */\nexport function easeInCubic(progress: number) {\n return progress ** 3;\n}\n\nexport const easeOutCubic = createEaseOut(easeInCubic);\nexport const easeInOutCubic = createEaseInOut(easeInCubic);\n\n/**\n * Ease in quart.\n *\n * @param {number} progress Progress value betwen 0 and 1.\n * @returns {number} Eased value between 0 and 1.\n */\nexport function easeInQuart(progress: number) {\n return progress ** 4;\n}\n\nexport const easeOutQuart = createEaseOut(easeInQuart);\nexport const easeInOutQuart = createEaseInOut(easeInQuart);\n\n/**\n * Ease in quint.\n *\n * @param {number} progress Progress value betwen 0 and 1.\n * @returns {number} Eased value between 0 and 1.\n */\nexport function easeInQuint(progress: number) {\n return progress ** 5;\n}\n\nexport const easeOutQuint = createEaseOut(easeInQuint);\nexport const easeInOutQuint = createEaseInOut(easeInQuint);\n\n/**\n * Ease in sine.\n *\n * @param {number} progress Progress value betwen 0 and 1.\n * @returns {number} Eased value between 0 and 1.\n */\nexport function easeInSine(progress: number) {\n return progress === 1 ? 1 : -Math.cos((progress * Math.PI) / 2) + 1;\n}\n\nexport const easeOutSine = createEaseOut(easeInSine);\nexport const easeInOutSine = createEaseInOut(easeInSine);\n\n/**\n * Ease in circ.\n *\n * @param {number} progress Progress value betwen 0 and 1.\n * @returns {number} Eased value between 0 and 1.\n */\nexport function easeInCirc(progress: number) {\n return -(Math.sqrt(1 - progress * progress) - 1);\n}\n\nexport const easeOutCirc = createEaseOut(easeInCirc);\nexport const easeInOutCirc = createEaseInOut(easeInCirc);\n\n/**\n * Ease in exponential.\n *\n * @param {number} progress Progress value betwen 0 and 1.\n * @returns {number} Eased value between 0 and 1.\n */\nexport function easeInExpo(progress: number) {\n return progress === 0 ? 0 : 2 ** (10 * (progress - 1));\n}\n\nexport const easeOutExpo = createEaseOut(easeInExpo);\nexport const easeInOutExpo = createEaseInOut(easeInExpo);\n"],
5
+ "mappings": "AAAA,SAAS,eAAe,uBAAuB;AAE/C,SAAsB,iBAAkB;AAMjC,SAAS,WAAW,UAAkB;AAC3C,SAAO,YAAY;AACrB;AAEO,MAAM,cAAc,cAAc,UAAU;AAC5C,MAAM,gBAAgB,gBAAgB,UAAU;AAQhD,SAAS,YAAY,UAAkB;AAC5C,SAAO,YAAY;AACrB;AAEO,MAAM,eAAe,cAAc,WAAW;AAC9C,MAAM,iBAAiB,gBAAgB,WAAW;AAQlD,SAAS,YAAY,UAAkB;AAC5C,SAAO,YAAY;AACrB;AAEO,MAAM,eAAe,cAAc,WAAW;AAC9C,MAAM,iBAAiB,gBAAgB,WAAW;AAQlD,SAAS,YAAY,UAAkB;AAC5C,SAAO,YAAY;AACrB;AAEO,MAAM,eAAe,cAAc,WAAW;AAC9C,MAAM,iBAAiB,gBAAgB,WAAW;AAQlD,SAAS,WAAW,UAAkB;AAC3C,SAAO,aAAa,IAAI,IAAI,CAAC,KAAK,IAAK,WAAW,KAAK,KAAM,CAAC,IAAI;AACpE;AAEO,MAAM,cAAc,cAAc,UAAU;AAC5C,MAAM,gBAAgB,gBAAgB,UAAU;AAQhD,SAAS,WAAW,UAAkB;AAC3C,SAAO,EAAE,KAAK,KAAK,IAAI,WAAW,QAAQ,IAAI;AAChD;AAEO,MAAM,cAAc,cAAc,UAAU;AAC5C,MAAM,gBAAgB,gBAAgB,UAAU;AAQhD,SAAS,WAAW,UAAkB;AAC3C,SAAO,aAAa,IAAI,IAAI,MAAM,MAAM,WAAW;AACrD;AAEO,MAAM,cAAc,cAAc,UAAU;AAC5C,MAAM,gBAAgB,gBAAgB,UAAU;",
6
6
  "names": []
7
7
  }
@@ -1,3 +1,7 @@
1
+ export * as ease from './ease.js';
2
+ export * from './createEases.js';
3
+ export * from './ease.js';
4
+ export { createRange } from './createRange.js';
1
5
  export { default as clamp } from './clamp.js';
2
6
  export { default as clamp01 } from './clamp01.js';
3
7
  export { default as damp } from './damp.js';
@@ -5,6 +9,4 @@ export { default as inertiaFinalValue } from './inertiaFinalValue.js';
5
9
  export { default as lerp } from './lerp.js';
6
10
  export { default as map } from './map.js';
7
11
  export { default as round } from './round.js';
8
- export * from './ease.js';
9
- export * as ease from './ease.js';
10
- export * from './createEases.js';
12
+ export { mean } from './mean.js';
@@ -1,3 +1,7 @@
1
+ import * as ease from "./ease.js";
2
+ export * from "./createEases.js";
3
+ export * from "./ease.js";
4
+ import { createRange } from "./createRange.js";
1
5
  import { default as default2 } from "./clamp.js";
2
6
  import { default as default3 } from "./clamp01.js";
3
7
  import { default as default4 } from "./damp.js";
@@ -5,17 +9,17 @@ import { default as default5 } from "./inertiaFinalValue.js";
5
9
  import { default as default6 } from "./lerp.js";
6
10
  import { default as default7 } from "./map.js";
7
11
  import { default as default8 } from "./round.js";
8
- export * from "./ease.js";
9
- import * as ease from "./ease.js";
10
- export * from "./createEases.js";
12
+ import { mean } from "./mean.js";
11
13
  export {
12
14
  default2 as clamp,
13
15
  default3 as clamp01,
16
+ createRange,
14
17
  default4 as damp,
15
18
  ease,
16
19
  default5 as inertiaFinalValue,
17
20
  default6 as lerp,
18
21
  default7 as map,
22
+ mean,
19
23
  default8 as round
20
24
  };
21
25
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../packages/js-toolkit/utils/math/index.ts"],
4
- "sourcesContent": ["export { default as clamp } from './clamp.js';\nexport { default as clamp01 } from './clamp01.js';\nexport { default as damp } from './damp.js';\nexport { default as inertiaFinalValue } from './inertiaFinalValue.js';\nexport { default as lerp } from './lerp.js';\nexport { default as map } from './map.js';\nexport { default as round } from './round.js';\nexport * from './ease.js';\nexport * as ease from './ease.js';\nexport * from './createEases.js';\n"],
5
- "mappings": "AAAA,SAAoB,WAAXA,gBAAwB;AACjC,SAAoB,WAAXA,gBAA0B;AACnC,SAAoB,WAAXA,gBAAuB;AAChC,SAAoB,WAAXA,gBAAoC;AAC7C,SAAoB,WAAXA,gBAAuB;AAChC,SAAoB,WAAXA,gBAAsB;AAC/B,SAAoB,WAAXA,gBAAwB;AACjC,cAAc;AACd,YAAY,UAAU;AACtB,cAAc;",
4
+ "sourcesContent": ["export * as ease from './ease.js';\nexport * from './createEases.js';\nexport * from './ease.js';\nexport { createRange } from './createRange.js';\nexport { default as clamp } from './clamp.js';\nexport { default as clamp01 } from './clamp01.js';\nexport { default as damp } from './damp.js';\nexport { default as inertiaFinalValue } from './inertiaFinalValue.js';\nexport { default as lerp } from './lerp.js';\nexport { default as map } from './map.js';\nexport { default as round } from './round.js';\nexport { mean } from './mean.js';\n"],
5
+ "mappings": "AAAA,YAAY,UAAU;AACtB,cAAc;AACd,cAAc;AACd,SAAS,mBAAmB;AAC5B,SAAoB,WAAXA,gBAAwB;AACjC,SAAoB,WAAXA,gBAA0B;AACnC,SAAoB,WAAXA,gBAAuB;AAChC,SAAoB,WAAXA,gBAAoC;AAC7C,SAAoB,WAAXA,gBAAuB;AAChC,SAAoB,WAAXA,gBAAsB;AAC/B,SAAoB,WAAXA,gBAAwB;AACjC,SAAS,YAAY;",
6
6
  "names": ["default"]
7
7
  }
@@ -0,0 +1 @@
1
+ export declare function mean(numbers: number[]): number;
@@ -0,0 +1,17 @@
1
+ function mean(numbers) {
2
+ if (numbers.length === 0) {
3
+ return 0;
4
+ }
5
+ if (numbers.length === 1) {
6
+ return numbers[0];
7
+ }
8
+ let sum = 0;
9
+ for (const value of numbers) {
10
+ sum += value;
11
+ }
12
+ return sum / numbers.length;
13
+ }
14
+ export {
15
+ mean
16
+ };
17
+ //# sourceMappingURL=mean.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../packages/js-toolkit/utils/math/mean.ts"],
4
+ "sourcesContent": ["export function mean(numbers: number[]) {\n if (numbers.length === 0) {\n return 0;\n }\n\n if (numbers.length === 1) {\n return numbers[0];\n }\n\n let sum = 0;\n for (const value of numbers) {\n sum += value;\n }\n\n return sum / numbers.length;\n}\n"],
5
+ "mappings": "AAAO,SAAS,KAAK,SAAmB;AACtC,MAAI,QAAQ,WAAW,GAAG;AACxB,WAAO;AAAA,EACT;AAEA,MAAI,QAAQ,WAAW,GAAG;AACxB,WAAO,QAAQ,CAAC;AAAA,EAClB;AAEA,MAAI,MAAM;AACV,aAAW,SAAS,SAAS;AAC3B,WAAO;AAAA,EACT;AAEA,SAAO,MAAM,QAAQ;AACvB;",
6
+ "names": []
7
+ }
@@ -1,25 +1,7 @@
1
- /**
2
- * RequestAnimation frame polyfill.
3
- *
4
- * @see https://github.com/vuejs/vue/blob/ec78fc8b6d03e59da669be1adf4b4b5abf670a34/dist/vue.runtime.esm.js#L7355
5
- */
6
- export declare function getRaf(): (handler: Function) => number;
7
- /**
8
- * Get a function to cancel the method returned by `getRaf()`.
9
- */
10
- export declare function getCancelRaf(): (id: number) => void;
1
+ type Callback = (time?: DOMHighResTimeStamp) => any;
11
2
  /**
12
3
  * Wait for the next frame to execute a function.
13
- *
14
- * @template {() => any} T
15
- * @param {T} [fn] The callback function to execute.
16
- * @returns {Promise<T extends Function ? ReturnType<T> : undefined>} A Promise resolving when the next frame is reached.
17
- * @example
18
- * ```js
19
- * nextFrame(() => console.log('hello world'));
20
- *
21
- * await nextFrame();
22
- * console.log('hello world');
23
- * ```
24
4
  */
25
- export declare function nextFrame<T extends () => unknown>(fn?: T): Promise<T extends () => unknown ? ReturnType<T> : void>;
5
+ export declare function nextFrame(): Promise<DOMHighResTimeStamp>;
6
+ export declare function nextFrame<T extends Callback>(callback?: T): Promise<ReturnType<T>>;
7
+ export {};
@@ -1,19 +1,12 @@
1
1
  import { isFunction } from "./is.js";
2
2
  import { hasWindow } from "./has.js";
3
- function getRaf() {
4
- return hasWindow() && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : setTimeout;
5
- }
6
- function getCancelRaf() {
7
- return hasWindow() && window.cancelAnimationFrame ? window.cancelAnimationFrame.bind(window) : clearTimeout;
8
- }
9
- function nextFrame(fn) {
3
+ function nextFrame(callback) {
4
+ const fn = hasWindow() ? window?.requestAnimationFrame ?? setTimeout : setTimeout;
10
5
  return new Promise((resolve) => {
11
- getRaf()(() => resolve(isFunction(fn) && fn()));
6
+ fn((time) => resolve(isFunction(callback) ? callback(time) : time));
12
7
  });
13
8
  }
14
9
  export {
15
- getCancelRaf,
16
- getRaf,
17
10
  nextFrame
18
11
  };
19
12
  //# sourceMappingURL=nextFrame.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../packages/js-toolkit/utils/nextFrame.ts"],
4
- "sourcesContent": ["import { isFunction } from './is.js';\nimport { hasWindow } from './has.js';\n\n/**\n * RequestAnimation frame polyfill.\n *\n * @see https://github.com/vuejs/vue/blob/ec78fc8b6d03e59da669be1adf4b4b5abf670a34/dist/vue.runtime.esm.js#L7355\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function getRaf(): (handler: Function) => number {\n return hasWindow() && window.requestAnimationFrame\n ? window.requestAnimationFrame.bind(window)\n : setTimeout;\n}\n\n/**\n * Get a function to cancel the method returned by `getRaf()`.\n */\nexport function getCancelRaf(): (id: number) => void {\n return hasWindow() && window.cancelAnimationFrame\n ? window.cancelAnimationFrame.bind(window)\n : clearTimeout;\n}\n\n/**\n * Wait for the next frame to execute a function.\n *\n * @template {() => any} T\n * @param {T} [fn] The callback function to execute.\n * @returns {Promise<T extends Function ? ReturnType<T> : undefined>} A Promise resolving when the next frame is reached.\n * @example\n * ```js\n * nextFrame(() => console.log('hello world'));\n *\n * await nextFrame();\n * console.log('hello world');\n * ```\n */\nexport function nextFrame<T extends () => unknown>(\n fn?: T,\n): Promise<T extends () => unknown ? ReturnType<T> : void> {\n return new Promise((resolve) => {\n // @ts-ignore\n getRaf()(() => resolve(isFunction(fn) && fn()));\n });\n}\n"],
5
- "mappings": "AAAA,SAAS,kBAAkB;AAC3B,SAAS,iBAAiB;AAQnB,SAAS,SAAwC;AACtD,SAAO,UAAU,KAAK,OAAO,wBACzB,OAAO,sBAAsB,KAAK,MAAM,IACxC;AACN;AAKO,SAAS,eAAqC;AACnD,SAAO,UAAU,KAAK,OAAO,uBACzB,OAAO,qBAAqB,KAAK,MAAM,IACvC;AACN;AAgBO,SAAS,UACd,IACyD;AACzD,SAAO,IAAI,QAAQ,CAAC,YAAY;AAE9B,WAAO,EAAE,MAAM,QAAQ,WAAW,EAAE,KAAK,GAAG,CAAC,CAAC;AAAA,EAChD,CAAC;AACH;",
4
+ "sourcesContent": ["import { isFunction } from './is.js';\nimport { hasWindow } from './has.js';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Callback = (time?: DOMHighResTimeStamp) => any;\n\n/**\n * Wait for the next frame to execute a function.\n */\nexport function nextFrame(): Promise<DOMHighResTimeStamp>;\nexport function nextFrame<T extends Callback>(callback?: T): Promise<ReturnType<T>>;\nexport function nextFrame<T extends Callback>(callback?: T): Promise<ReturnType<T>> {\n const fn = hasWindow() ? window?.requestAnimationFrame ?? setTimeout : setTimeout;\n return new Promise((resolve) => {\n fn((time) => resolve(isFunction(callback) ? callback(time) : time));\n });\n}\n"],
5
+ "mappings": "AAAA,SAAS,kBAAkB;AAC3B,SAAS,iBAAiB;AAUnB,SAAS,UAA8B,UAAsC;AAClF,QAAM,KAAK,UAAU,IAAI,QAAQ,yBAAyB,aAAa;AACvE,SAAO,IAAI,QAAQ,CAAC,YAAY;AAC9B,OAAG,CAAC,SAAS,QAAQ,WAAW,QAAQ,IAAI,SAAS,IAAI,IAAI,IAAI,CAAC;AAAA,EACpE,CAAC;AACH;",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,7 @@
1
+ type Callback = (...args: any[]) => any;
1
2
  /**
2
3
  * Wait for the next microtask.
3
4
  */
4
- export default function nextMicrotask<T extends () => unknown>(fn?: T): Promise<T extends () => unknown ? ReturnType<T> : void>;
5
+ export declare function nextMicrotask(): Promise<void>;
6
+ export declare function nextMicrotask<T extends Callback>(callback?: T): Promise<ReturnType<T>>;
7
+ export {};
@@ -1,8 +1,8 @@
1
1
  import { isFunction } from "./is.js";
2
- async function nextMicrotask(fn) {
3
- return Promise.resolve().then(() => isFunction(fn) && fn());
2
+ async function nextMicrotask(callback) {
3
+ return Promise.resolve().then(() => isFunction(callback) && callback());
4
4
  }
5
5
  export {
6
- nextMicrotask as default
6
+ nextMicrotask
7
7
  };
8
8
  //# sourceMappingURL=nextMicrotask.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../packages/js-toolkit/utils/nextMicrotask.ts"],
4
- "sourcesContent": ["import { isFunction } from './is.js';\n\n/**\n * Wait for the next microtask.\n */\nexport default async function nextMicrotask<T extends () => unknown>(\n fn?: T,\n): Promise<T extends () => unknown ? ReturnType<T> : void> {\n // @ts-ignore\n return Promise.resolve().then(() => isFunction(fn) && fn());\n}\n"],
5
- "mappings": "AAAA,SAAS,kBAAkB;AAK3B,eAAO,cACL,IACyD;AAEzD,SAAO,QAAQ,QAAQ,EAAE,KAAK,MAAM,WAAW,EAAE,KAAK,GAAG,CAAC;AAC5D;",
4
+ "sourcesContent": ["import { isFunction } from './is.js';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Callback = (...args: any[]) => any;\n\n/**\n * Wait for the next microtask.\n */\nexport async function nextMicrotask(): Promise<void>;\nexport async function nextMicrotask<T extends Callback>(callback?: T): Promise<ReturnType<T>>;\nexport async function nextMicrotask<T extends Callback>(callback?: T): Promise<ReturnType<T>> {\n return Promise.resolve().then(() => isFunction(callback) && callback());\n}\n"],
5
+ "mappings": "AAAA,SAAS,kBAAkB;AAU3B,eAAsB,cAAkC,UAAsC;AAC5F,SAAO,QAAQ,QAAQ,EAAE,KAAK,MAAM,WAAW,QAAQ,KAAK,SAAS,CAAC;AACxE;",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,7 @@
1
+ type Callback = (...args: any[]) => any;
1
2
  /**
2
3
  * Wait for the next tick.
3
4
  */
4
- export default function nextTick<T extends () => any>(fn?: T): Promise<T extends void ? void : ReturnType<T>>;
5
+ export declare function nextTick(): Promise<void>;
6
+ export declare function nextTick<T extends Callback>(callback?: T): Promise<ReturnType<T>>;
7
+ export {};
package/utils/nextTick.js CHANGED
@@ -1,9 +1,9 @@
1
1
  import { isFunction } from "./is.js";
2
2
  import { wait } from "./wait.js";
3
- async function nextTick(fn) {
4
- return wait().then(isFunction(fn) && fn);
3
+ async function nextTick(callback) {
4
+ return wait().then(isFunction(callback) && callback);
5
5
  }
6
6
  export {
7
- nextTick as default
7
+ nextTick
8
8
  };
9
9
  //# sourceMappingURL=nextTick.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../packages/js-toolkit/utils/nextTick.ts"],
4
- "sourcesContent": ["import { isFunction } from './is.js';\nimport { wait } from './wait.js';\n\n/**\n * Wait for the next tick.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport default async function nextTick<T extends () => any>(\n fn?: T,\n): Promise<T extends void ? void : ReturnType<T>> {\n return wait().then(isFunction(fn) && (fn as ReturnType<T>));\n}\n"],
5
- "mappings": "AAAA,SAAS,kBAAkB;AAC3B,SAAS,YAAY;AAMrB,eAAO,SACL,IACgD;AAChD,SAAO,KAAK,EAAE,KAAK,WAAW,EAAE,KAAM,EAAoB;AAC5D;",
4
+ "sourcesContent": ["import { isFunction } from './is.js';\nimport { wait } from './wait.js';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Callback = (...args: any[]) => any;\n\n/**\n * Wait for the next tick.\n */\nexport async function nextTick(): Promise<void>;\nexport async function nextTick<T extends Callback>(callback?: T): Promise<ReturnType<T>>;\nexport async function nextTick<T extends Callback>(callback?: T): Promise<ReturnType<T>> {\n return wait().then(isFunction(callback) && (callback as ReturnType<T>));\n}\n"],
5
+ "mappings": "AAAA,SAAS,kBAAkB;AAC3B,SAAS,YAAY;AAUrB,eAAsB,SAA6B,UAAsC;AACvF,SAAO,KAAK,EAAE,KAAK,WAAW,QAAQ,KAAM,QAA0B;AACxE;",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Get a random integer between bounds
3
+ *
4
+ * @param {number} a Lower bound
5
+ * @param {number} b Upper bound
6
+ * @returns {number}
7
+ */
8
+ export declare function randomInt(a: number, b?: number): number;
9
+ /**
10
+ * Get a random item of an array or a random character of a string
11
+ *
12
+ * @param {T[] | string} items Array or string
13
+ * @returns {T | undefined}
14
+ */
15
+ export declare function randomItem<T>(items: T[] | string): T | string | undefined;
@@ -0,0 +1,15 @@
1
+ import { isArray, isString } from "./is.js";
2
+ function randomInt(a, b = 0) {
3
+ return Math.floor(Math.random() * (a - b + 1)) + b;
4
+ }
5
+ function randomItem(items) {
6
+ if (!isArray(items) && !isString(items)) {
7
+ throw new Error("randomItem() expects an array or a string as argument.");
8
+ }
9
+ return items.length > 0 ? items[randomInt(items.length - 1)] : void 0;
10
+ }
11
+ export {
12
+ randomInt,
13
+ randomItem
14
+ };
15
+ //# sourceMappingURL=random.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../packages/js-toolkit/utils/random.ts"],
4
+ "sourcesContent": ["import { isArray, isString } from './is.js';\n\n/**\n * Get a random integer between bounds\n *\n * @param {number} a Lower bound\n * @param {number} b Upper bound\n * @returns {number}\n */\nexport function randomInt(a: number, b = 0): number {\n return Math.floor(Math.random() * (a - b + 1)) + b;\n}\n\n/**\n * Get a random item of an array or a random character of a string\n *\n * @param {T[] | string} items Array or string\n * @returns {T | undefined}\n */\nexport function randomItem<T>(items: T[] | string): T | string | undefined {\n if (!isArray(items) && !isString(items)) {\n throw new Error('randomItem() expects an array or a string as argument.');\n }\n return items.length > 0 ? items[randomInt(items.length - 1)] : undefined;\n}\n"],
5
+ "mappings": "AAAA,SAAS,SAAS,gBAAgB;AAS3B,SAAS,UAAU,GAAW,IAAI,GAAW;AAClD,SAAO,KAAK,MAAM,KAAK,OAAO,KAAK,IAAI,IAAI,EAAE,IAAI;AACnD;AAQO,SAAS,WAAc,OAA6C;AACzE,MAAI,CAAC,QAAQ,KAAK,KAAK,CAAC,SAAS,KAAK,GAAG;AACvC,UAAM,IAAI,MAAM,wDAAwD;AAAA,EAC1E;AACA,SAAO,MAAM,SAAS,IAAI,MAAM,UAAU,MAAM,SAAS,CAAC,CAAC,IAAI;AACjE;",
6
+ "names": []
7
+ }
@@ -1,9 +1,33 @@
1
+ import type { TweenOptions } from './tween.js';
2
+ export interface ScrollPosition {
3
+ left: number;
4
+ top: number;
5
+ }
6
+ export type ScrollTarget = string | HTMLElement | number | Partial<ScrollPosition>;
7
+ export interface ScrollToOptions extends TweenOptions {
8
+ /**
9
+ * Root element that will be scrolled.
10
+ */
11
+ rootElement?: HTMLElement | typeof window;
12
+ /**
13
+ * Scroll direction.
14
+ */
15
+ axis?: (typeof scrollTo.axis)[keyof typeof scrollTo.axis];
16
+ /**
17
+ * Distance from the target.
18
+ */
19
+ offset?: number;
20
+ }
1
21
  /**
2
- * Handler for the click event on anchor links
22
+ * Scroll to an element.
3
23
  *
4
- * @returns {Promise<number>} A promising resolving with the target scroll position.
24
+ * @returns {Promise<ScrollPosition>} A promising resolving with the scroll position.
5
25
  */
6
- export default function scrollTo(selectorElement: HTMLElement | string, { offset, dampFactor }?: {
7
- offset?: number;
8
- dampFactor?: number;
9
- }): Promise<number>;
26
+ export declare function scrollTo(target: string | HTMLElement | number | Partial<ScrollPosition>, { rootElement, axis, offset, ...tweenOptions }?: ScrollToOptions): Promise<ScrollPosition>;
27
+ export declare namespace scrollTo {
28
+ var axis: {
29
+ x: symbol;
30
+ y: symbol;
31
+ both: symbol;
32
+ };
33
+ }