@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
package/services/drag.cjs DELETED
@@ -1,231 +0,0 @@
1
- var __create = Object.create;
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __export = (target, all) => {
8
- for (var name in all)
9
- __defProp(target, name, { get: all[name], enumerable: true });
10
- };
11
- var __copyProps = (to, from, except, desc) => {
12
- if (from && typeof from === "object" || typeof from === "function") {
13
- for (let key of __getOwnPropNames(from))
14
- if (!__hasOwnProp.call(to, key) && key !== except)
15
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
- }
17
- return to;
18
- };
19
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
- // If the importer is in node compatibility mode or this is not an ESM
21
- // file that has been converted to a CommonJS file using a Babel-
22
- // compatible transform (i.e. "__esModule" has not been set), then set
23
- // "default" to the CommonJS "module.exports" for node compatibility.
24
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
- mod
26
- ));
27
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
-
29
- // packages/js-toolkit/services/drag.ts
30
- var drag_exports = {};
31
- __export(drag_exports, {
32
- default: () => useDrag
33
- });
34
- module.exports = __toCommonJS(drag_exports);
35
- var import_service = require("./service.cjs");
36
- var import_raf = __toESM(require("./raf.cjs"), 1);
37
- var import_inertiaFinalValue = __toESM(require("../utils/math/inertiaFinalValue.cjs"), 1);
38
- var import_utils = require("../utils/index.cjs");
39
- var MODES = {
40
- START: "start",
41
- DRAG: "drag",
42
- DROP: "drop",
43
- INERTIA: "inertia",
44
- STOP: "stop"
45
- };
46
- var count = 0;
47
- var targetEvents = ["pointerdown"];
48
- var windowEvents = ["pointerup", "touchend"];
49
- var passiveEventOptions = { passive: true };
50
- function getEventPosition(event) {
51
- const eventOrTouch = (0, import_utils.isDefined)(event.touches) ? event.touches[0] : event;
52
- return {
53
- x: eventOrTouch.clientX,
54
- y: eventOrTouch.clientY
55
- };
56
- }
57
- function createDragService(target, { dampFactor = 0.85, dragTreshold = 10 } = {}) {
58
- count += 1;
59
- const id = `drag-${count}`;
60
- let previousEvent;
61
- function shouldPreventClick() {
62
- return Math.abs(props.distance.x) > dragTreshold || Math.abs(props.distance.y) > dragTreshold;
63
- }
64
- function start(x, y) {
65
- if (props.isGrabbing) {
66
- return;
67
- }
68
- props.x = x;
69
- props.y = y;
70
- props.origin.x = x;
71
- props.origin.y = y;
72
- props.delta.x = 0;
73
- props.delta.y = 0;
74
- props.distance.x = 0;
75
- props.distance.y = 0;
76
- props.final.x = x;
77
- props.final.y = y;
78
- props.mode = MODES.START;
79
- props.isGrabbing = true;
80
- trigger(props);
81
- document.addEventListener("touchmove", handleEvent, passiveEventOptions);
82
- document.addEventListener("mousemove", handleEvent, passiveEventOptions);
83
- }
84
- function drop() {
85
- document.removeEventListener("touchmove", handleEvent);
86
- document.removeEventListener("mousemove", handleEvent);
87
- props.isGrabbing = false;
88
- props.mode = MODES.DROP;
89
- props.hasInertia = true;
90
- props.final.x = (0, import_inertiaFinalValue.default)(props.x, props.delta.x, dampFactor);
91
- props.final.y = (0, import_inertiaFinalValue.default)(props.y, props.delta.y, dampFactor);
92
- trigger(props);
93
- setTimeout(() => {
94
- const raf = (0, import_raf.default)();
95
- raf.remove(id);
96
- raf.add(id, rafHandler);
97
- }, 0);
98
- }
99
- function stop() {
100
- (0, import_raf.default)().remove(id);
101
- props.isGrabbing = false;
102
- props.hasInertia = false;
103
- props.mode = MODES.STOP;
104
- trigger(props);
105
- }
106
- function rafHandler() {
107
- if (!props.isGrabbing) {
108
- props.x += props.delta.x;
109
- props.y += props.delta.y;
110
- props.distance.x = props.x - props.origin.x;
111
- props.distance.y = props.y - props.origin.y;
112
- props.delta.x *= dampFactor;
113
- props.delta.y *= dampFactor;
114
- if (props.mode !== MODES.INERTIA) {
115
- props.mode = MODES.INERTIA;
116
- }
117
- trigger(props);
118
- if (Math.abs(props.delta.x) < 0.1 && Math.abs(props.delta.y) < 0.1) {
119
- stop();
120
- }
121
- }
122
- }
123
- function drag(event) {
124
- if (props.isGrabbing) {
125
- const position = getEventPosition(event);
126
- props.x = position.x;
127
- props.y = position.y;
128
- if (previousEvent) {
129
- const previousPosition = getEventPosition(previousEvent);
130
- props.delta.x = position.x - previousPosition.x;
131
- props.delta.y = position.y - previousPosition.y;
132
- }
133
- props.final.x = position.x;
134
- props.final.y = position.y;
135
- props.distance.x = props.x - props.origin.x;
136
- props.distance.y = props.y - props.origin.y;
137
- if (props.mode !== MODES.DRAG) {
138
- props.mode = MODES.DRAG;
139
- }
140
- trigger(props);
141
- previousEvent = event;
142
- }
143
- }
144
- function handleEvent(event) {
145
- switch (event.type) {
146
- case "dragstart":
147
- event.preventDefault();
148
- break;
149
- case "click":
150
- if (shouldPreventClick()) {
151
- event.stopImmediatePropagation();
152
- event.stopPropagation();
153
- event.preventDefault();
154
- }
155
- break;
156
- case "pointerup":
157
- case "touchend":
158
- drop();
159
- break;
160
- case "touchmove":
161
- case "mousemove":
162
- drag(event);
163
- break;
164
- default:
165
- if (event.button === 0) {
166
- start(event.x, event.y);
167
- }
168
- }
169
- }
170
- const { add, remove, has, trigger, props } = (0, import_service.useService)({
171
- props: {
172
- target,
173
- mode: void 0,
174
- isGrabbing: false,
175
- hasInertia: false,
176
- x: 0,
177
- y: 0,
178
- delta: {
179
- x: 0,
180
- y: 0
181
- },
182
- origin: {
183
- x: 0,
184
- y: 0
185
- },
186
- distance: {
187
- x: 0,
188
- y: 0
189
- },
190
- final: {
191
- x: 0,
192
- y: 0
193
- }
194
- },
195
- init() {
196
- for (const event of targetEvents) {
197
- target.addEventListener(event, handleEvent, passiveEventOptions);
198
- }
199
- for (const event of windowEvents) {
200
- window.addEventListener(event, handleEvent, passiveEventOptions);
201
- }
202
- target.addEventListener("dragstart", handleEvent, { capture: true });
203
- target.addEventListener("click", handleEvent, { capture: true });
204
- },
205
- kill() {
206
- for (const event of targetEvents) {
207
- target.removeEventListener(event, handleEvent);
208
- }
209
- for (const event of windowEvents) {
210
- window.removeEventListener(event, handleEvent);
211
- }
212
- target.removeEventListener("dragstart", handleEvent);
213
- target.removeEventListener("click", handleEvent);
214
- }
215
- });
216
- return {
217
- add,
218
- remove,
219
- has,
220
- props: () => props
221
- };
222
- }
223
- var instances = /* @__PURE__ */ new WeakMap();
224
- function useDrag(target, options) {
225
- if (!instances.has(target)) {
226
- instances.set(target, createDragService(target, options));
227
- }
228
- return instances.get(target);
229
- }
230
- if (module.exports.default) module.exports = module.exports.default;
231
- //# sourceMappingURL=drag.cjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../packages/js-toolkit/services/drag.ts"],
4
- "sourcesContent": ["/* eslint-disable no-use-before-define, @typescript-eslint/no-use-before-define */\nimport { useService } from './service.js';\nimport useRaf from './raf.js';\nimport inertiaFinalValue from '../utils/math/inertiaFinalValue.js';\nimport { isDefined } from '../utils/index.js';\nimport type { ServiceInterface } from './index.js';\n\nexport type DragService = ServiceInterface<DragServiceProps>;\n\ntype DragLifecycle = 'start' | 'drag' | 'drop' | 'inertia' | 'stop';\n\nexport interface DragServiceProps {\n /**\n * The current mode of the dragging logic.\n */\n mode: DragLifecycle;\n /**\n * The target element of the drag.\n */\n target: HTMLElement;\n /**\n * Whether the user is currently grabbing the targeted element or not.\n */\n isGrabbing: boolean;\n /**\n * Whether the drag currently has inertia or not.\n */\n hasInertia: boolean;\n /**\n * The current horizontal position in the viewport.\n */\n x: number;\n /**\n * The current vertical position in the viewport.\n */\n y: number;\n /**\n * The delta between the current position and the last.\n */\n delta: { x: number; y: number };\n /**\n * The initial position where the dragging started.\n */\n origin: { x: number; y: number };\n /**\n * The distance from the current position to the origin.\n */\n distance: { x: number; y: number };\n /**\n * The final position that will be reached at the end of the inertia.\n */\n final: { x: number; y: number };\n}\n\nexport interface DragServiceOptions {\n dampFactor?: number;\n dragTreshold?: number;\n}\n\nconst MODES: Record<Uppercase<DragLifecycle>, DragLifecycle> = {\n START: 'start',\n DRAG: 'drag',\n DROP: 'drop',\n INERTIA: 'inertia',\n STOP: 'stop',\n};\n\nlet count = 0;\nconst targetEvents = ['pointerdown'];\nconst windowEvents = ['pointerup', 'touchend'];\nconst passiveEventOptions = { passive: true };\n\n/**\n * Get the client value for the given axis.\n */\nfunction getEventPosition(event: MouseEvent | TouchEvent): { x: number; y: number } {\n // @ts-ignore\n const eventOrTouch = isDefined(event.touches) ? event.touches[0] : event;\n return {\n x: eventOrTouch.clientX,\n y: eventOrTouch.clientY,\n };\n}\n\n/**\n * Get drag service.\n */\nfunction createDragService(\n target: HTMLElement,\n { dampFactor = 0.85, dragTreshold = 10 }: DragServiceOptions = {},\n): DragService {\n count += 1;\n const id = `drag-${count}`;\n let previousEvent;\n\n /**\n * Test if we should allow click on links and buttons.\n */\n function shouldPreventClick(): boolean {\n return Math.abs(props.distance.x) > dragTreshold || Math.abs(props.distance.y) > dragTreshold;\n }\n\n /**\n * Start the drag.\n *\n * @param {number} x The initial horizontal position.\n * @param {number} y The initial vertical position.\n * @returns {void}\n */\n function start(x: number, y: number) {\n if (props.isGrabbing) {\n return;\n }\n\n // Reset state\n props.x = x;\n props.y = y;\n props.origin.x = x;\n props.origin.y = y;\n props.delta.x = 0;\n props.delta.y = 0;\n props.distance.x = 0;\n props.distance.y = 0;\n props.final.x = x;\n props.final.y = y;\n\n props.mode = MODES.START;\n\n // Enable grabbing\n props.isGrabbing = true;\n\n trigger(props);\n\n document.addEventListener('touchmove', handleEvent, passiveEventOptions);\n document.addEventListener('mousemove', handleEvent, passiveEventOptions);\n }\n\n /**\n * Stop the drag, or drop.\n */\n function drop() {\n document.removeEventListener('touchmove', handleEvent);\n document.removeEventListener('mousemove', handleEvent);\n props.isGrabbing = false;\n props.mode = MODES.DROP;\n\n props.hasInertia = true;\n props.final.x = inertiaFinalValue(props.x, props.delta.x, dampFactor);\n props.final.y = inertiaFinalValue(props.y, props.delta.y, dampFactor);\n\n trigger(props);\n\n setTimeout(() => {\n const raf = useRaf();\n raf.remove(id);\n raf.add(id, rafHandler);\n }, 0);\n }\n\n /**\n * Stop the drag.\n */\n function stop() {\n useRaf().remove(id);\n props.isGrabbing = false;\n props.hasInertia = false;\n props.mode = MODES.STOP;\n trigger(props);\n }\n\n /**\n * Raf service handler.\n */\n function rafHandler() {\n if (!props.isGrabbing) {\n props.x += props.delta.x;\n props.y += props.delta.y;\n props.distance.x = props.x - props.origin.x;\n props.distance.y = props.y - props.origin.y;\n\n props.delta.x *= dampFactor;\n props.delta.y *= dampFactor;\n\n if (props.mode !== MODES.INERTIA) {\n props.mode = MODES.INERTIA;\n }\n\n trigger(props);\n\n if (Math.abs(props.delta.x) < 0.1 && Math.abs(props.delta.y) < 0.1) {\n stop();\n }\n }\n }\n\n /**\n * Pointer service handler.\n */\n function drag(event: TouchEvent | MouseEvent) {\n if (props.isGrabbing) {\n const position = getEventPosition(event);\n props.x = position.x;\n props.y = position.y;\n\n if (previousEvent) {\n const previousPosition = getEventPosition(previousEvent);\n props.delta.x = position.x - previousPosition.x;\n props.delta.y = position.y - previousPosition.y;\n }\n\n props.final.x = position.x;\n props.final.y = position.y;\n props.distance.x = props.x - props.origin.x;\n props.distance.y = props.y - props.origin.y;\n\n if (props.mode !== MODES.DRAG) {\n props.mode = MODES.DRAG;\n }\n\n trigger(props);\n previousEvent = event;\n }\n }\n\n /**\n * Handle any event.\n */\n function handleEvent(event: MouseEvent | PointerEvent | DragEvent) {\n switch (event.type) {\n case 'dragstart':\n event.preventDefault();\n break;\n case 'click':\n if (shouldPreventClick()) {\n event.stopImmediatePropagation();\n event.stopPropagation();\n event.preventDefault();\n }\n break;\n case 'pointerup':\n case 'touchend':\n drop();\n break;\n case 'touchmove':\n case 'mousemove':\n drag(event);\n break;\n default:\n if (event.button === 0) {\n start(event.x, event.y);\n }\n }\n }\n\n const { add, remove, has, trigger, props } = useService({\n props: {\n target,\n mode: undefined,\n isGrabbing: false,\n hasInertia: false,\n x: 0,\n y: 0,\n delta: {\n x: 0,\n y: 0,\n },\n origin: {\n x: 0,\n y: 0,\n },\n distance: {\n x: 0,\n y: 0,\n },\n final: {\n x: 0,\n y: 0,\n },\n } as DragServiceProps,\n init() {\n for (const event of targetEvents) {\n target.addEventListener(event, handleEvent, passiveEventOptions);\n }\n for (const event of windowEvents) {\n window.addEventListener(event, handleEvent, passiveEventOptions);\n }\n target.addEventListener('dragstart', handleEvent, { capture: true });\n target.addEventListener('click', handleEvent, { capture: true });\n },\n kill() {\n for (const event of targetEvents) {\n target.removeEventListener(event, handleEvent);\n }\n for (const event of windowEvents) {\n window.removeEventListener(event, handleEvent);\n }\n target.removeEventListener('dragstart', handleEvent);\n target.removeEventListener('click', handleEvent);\n },\n });\n\n return {\n add,\n remove,\n has,\n props: () => props,\n };\n}\n\nconst instances: WeakMap<HTMLElement, DragService | undefined> = new WeakMap();\n\n/**\n * Use the drag service.\n *\n * ```js\n * import { useDrag } from '@studiometa/js-toolkit/services';\n * const { add, remove, props } = useDrag();\n * const draggableElement = document.querySelector('.draggable');\n * add(draggableElement, (props) => {}, { factor: 0.8 });\n * remove(draggableElement);\n * props(draggableElement);\n * ```\n */\nexport default function useDrag(target: HTMLElement, options: DragServiceOptions): DragService {\n if (!instances.has(target)) {\n instances.set(target, createDragService(target, options));\n }\n\n return instances.get(target);\n}\n"],
5
- "mappings": "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",
6
- "names": ["inertiaFinalValue", "useRaf"]
7
- }
@@ -1,51 +0,0 @@
1
- var __create = Object.create;
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __export = (target, all) => {
8
- for (var name in all)
9
- __defProp(target, name, { get: all[name], enumerable: true });
10
- };
11
- var __copyProps = (to, from, except, desc) => {
12
- if (from && typeof from === "object" || typeof from === "function") {
13
- for (let key of __getOwnPropNames(from))
14
- if (!__hasOwnProp.call(to, key) && key !== except)
15
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
- }
17
- return to;
18
- };
19
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
- // If the importer is in node compatibility mode or this is not an ESM
21
- // file that has been converted to a CommonJS file using a Babel-
22
- // compatible transform (i.e. "__esModule" has not been set), then set
23
- // "default" to the CommonJS "module.exports" for node compatibility.
24
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
- mod
26
- ));
27
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
-
29
- // packages/js-toolkit/services/index.ts
30
- var services_exports = {};
31
- __export(services_exports, {
32
- useDrag: () => import_drag.default,
33
- useKey: () => import_key.default,
34
- useLoad: () => import_load.default,
35
- usePointer: () => import_pointer.default,
36
- useRaf: () => import_raf.default,
37
- useResize: () => import_resize.default,
38
- useScroll: () => import_scroll.default,
39
- useService: () => import_service.useService
40
- });
41
- module.exports = __toCommonJS(services_exports);
42
- var import_drag = __toESM(require("./drag.cjs"), 1);
43
- var import_key = __toESM(require("./key.cjs"), 1);
44
- var import_load = __toESM(require("./load.cjs"), 1);
45
- var import_pointer = __toESM(require("./pointer.cjs"), 1);
46
- var import_raf = __toESM(require("./raf.cjs"), 1);
47
- var import_resize = __toESM(require("./resize.cjs"), 1);
48
- var import_scroll = __toESM(require("./scroll.cjs"), 1);
49
- var import_service = require("./service.cjs");
50
- if (module.exports.default) module.exports = module.exports.default;
51
- //# sourceMappingURL=index.cjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../packages/js-toolkit/services/index.ts"],
4
- "sourcesContent": ["import type { DragServiceProps } from './drag.js';\nimport type { KeyServiceProps } from './key.js';\nimport type { LoadServiceProps } from './load.js';\nimport type { PointerServiceProps } from './pointer.js';\nimport type { RafServiceProps } from './raf.js';\nimport type { ResizeServiceProps } from './resize.js';\nimport type { ScrollServiceProps } from './scroll.js';\n\nexport interface ServiceInterface<T> {\n /**\n * Remove a function from the resize service by its key.\n */\n remove(key: string): void;\n /**\n * Add a callback to the service. The callback will receive the current service props as parameter.\n */\n add(key: string, callback: (props: T) => void): void;\n /**\n * Test if the service has alreaydy a callback for the given key.\n */\n has(key: string): boolean;\n /**\n * Get the service's props.\n */\n props(): T;\n}\n\nexport type DragServiceInterface = ServiceInterface<DragServiceProps>;\nexport type KeyServiceInterface = ServiceInterface<KeyServiceProps>;\nexport type LoadServiceInterface = ServiceInterface<LoadServiceProps>;\nexport type PointerServiceInterface = ServiceInterface<PointerServiceProps>;\nexport type RafServiceInterface = ServiceInterface<RafServiceProps>;\nexport type ResizeServiceInterface = ServiceInterface<ResizeServiceProps>;\nexport type ScrollServiceInterface = ServiceInterface<ScrollServiceProps>;\n\nexport type {\n DragServiceProps,\n KeyServiceProps,\n LoadServiceProps,\n PointerServiceProps,\n RafServiceProps,\n ResizeServiceProps,\n ScrollServiceProps,\n};\n\nexport { default as useDrag } from './drag.js';\nexport { default as useKey } from './key.js';\nexport { default as useLoad } from './load.js';\nexport { default as usePointer } from './pointer.js';\nexport { default as useRaf } from './raf.js';\nexport { default as useResize } from './resize.js';\nexport { default as useScroll } from './scroll.js';\nexport { useService } from './service.js';\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA6CA,kBAAmC;AACnC,iBAAkC;AAClC,kBAAmC;AACnC,qBAAsC;AACtC,iBAAkC;AAClC,oBAAqC;AACrC,oBAAqC;AACrC,qBAA2B;",
6
- "names": []
7
- }
package/services/key.cjs DELETED
@@ -1,97 +0,0 @@
1
- var __create = Object.create;
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __export = (target, all) => {
8
- for (var name in all)
9
- __defProp(target, name, { get: all[name], enumerable: true });
10
- };
11
- var __copyProps = (to, from, except, desc) => {
12
- if (from && typeof from === "object" || typeof from === "function") {
13
- for (let key2 of __getOwnPropNames(from))
14
- if (!__hasOwnProp.call(to, key2) && key2 !== except)
15
- __defProp(to, key2, { get: () => from[key2], enumerable: !(desc = __getOwnPropDesc(from, key2)) || desc.enumerable });
16
- }
17
- return to;
18
- };
19
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
- // If the importer is in node compatibility mode or this is not an ESM
21
- // file that has been converted to a CommonJS file using a Babel-
22
- // compatible transform (i.e. "__esModule" has not been set), then set
23
- // "default" to the CommonJS "module.exports" for node compatibility.
24
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
- mod
26
- ));
27
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
-
29
- // packages/js-toolkit/services/key.ts
30
- var key_exports = {};
31
- __export(key_exports, {
32
- default: () => useKey
33
- });
34
- module.exports = __toCommonJS(key_exports);
35
- var import_service = require("./service.cjs");
36
- var import_keyCodes = __toESM(require("../utils/keyCodes.cjs"), 1);
37
- function getInitialKeyCodes() {
38
- return Object.fromEntries(Object.keys(import_keyCodes.default).map((key2) => [key2, false]));
39
- }
40
- function createKeyService() {
41
- let previousEvent;
42
- function updateProps(event) {
43
- props.event = event;
44
- for (const [name, code] of Object.entries(import_keyCodes.default)) {
45
- props[name] = code === event.keyCode;
46
- }
47
- if (!previousEvent) {
48
- props.triggered = 0;
49
- }
50
- if (props.event.type === "keydown" && previousEvent?.type === "keydown") {
51
- props.triggered += 1;
52
- } else {
53
- props.triggered = 1;
54
- }
55
- previousEvent = props.event;
56
- props.direction = props.event.type === "keydown" ? "down" : "up";
57
- props.isUp = props.event.type === "keyup";
58
- props.isDown = props.event.type === "keydown";
59
- return props;
60
- }
61
- function onKey(event) {
62
- trigger(updateProps(event));
63
- }
64
- const { add, remove, has, trigger, props } = (0, import_service.useService)({
65
- props: {
66
- event: null,
67
- triggered: 0,
68
- isUp: false,
69
- isDown: false,
70
- direction: "none",
71
- ...getInitialKeyCodes()
72
- },
73
- init() {
74
- document.addEventListener("keydown", onKey);
75
- document.addEventListener("keyup", onKey);
76
- },
77
- kill() {
78
- document.removeEventListener("keydown", onKey);
79
- document.removeEventListener("keyup", onKey);
80
- }
81
- });
82
- return {
83
- add,
84
- remove,
85
- has,
86
- props: () => props
87
- };
88
- }
89
- var key;
90
- function useKey() {
91
- if (!key) {
92
- key = createKeyService();
93
- }
94
- return key;
95
- }
96
- if (module.exports.default) module.exports = module.exports.default;
97
- //# sourceMappingURL=key.cjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../packages/js-toolkit/services/key.ts"],
4
- "sourcesContent": ["/* eslint-disable no-use-before-define, @typescript-eslint/no-use-before-define */\nimport { useService } from './service.js';\nimport keyCodes from '../utils/keyCodes.js';\nimport type { ServiceInterface } from './index.js';\n\n/**\n * Get initial key codes.\n */\nfunction getInitialKeyCodes(): Record<keyof typeof keyCodes, false> {\n return Object.fromEntries(Object.keys(keyCodes).map((key) => [key, false])) as Record<\n keyof typeof keyCodes,\n false\n >;\n}\n\nexport type KeyService = ServiceInterface<KeyServiceProps>;\n\nexport interface KeyServiceProps {\n event: KeyboardEvent;\n triggered: number;\n direction: 'up' | 'down' | 'none';\n isUp: boolean;\n isDown: boolean;\n ENTER: boolean;\n SPACE: boolean;\n TAB: boolean;\n ESC: boolean;\n LEFT: boolean;\n UP: boolean;\n RIGHT: boolean;\n DOWN: boolean;\n}\n\n/**\n * Create key service.\n */\nfunction createKeyService(): KeyService {\n let previousEvent;\n\n /**\n * Update props.\n */\n function updateProps(event: KeyboardEvent): KeyServiceProps {\n props.event = event;\n\n for (const [name, code] of Object.entries(keyCodes)) {\n props[name] = code === event.keyCode;\n }\n\n if (!previousEvent) {\n props.triggered = 0;\n }\n\n if (props.event.type === 'keydown' && previousEvent?.type === 'keydown') {\n props.triggered += 1;\n } else {\n props.triggered = 1;\n }\n\n previousEvent = props.event;\n\n props.direction = props.event.type === 'keydown' ? 'down' : 'up';\n props.isUp = props.event.type === 'keyup';\n props.isDown = props.event.type === 'keydown';\n\n return props;\n }\n\n /**\n * Trigger callbacks on keyboard event.\n */\n function onKey(event: KeyboardEvent) {\n trigger(updateProps(event));\n }\n\n const { add, remove, has, trigger, props } = useService({\n props: {\n event: null,\n triggered: 0,\n isUp: false,\n isDown: false,\n direction: 'none',\n ...getInitialKeyCodes(),\n } as KeyServiceProps,\n init() {\n document.addEventListener('keydown', onKey);\n document.addEventListener('keyup', onKey);\n },\n kill() {\n document.removeEventListener('keydown', onKey);\n document.removeEventListener('keyup', onKey);\n },\n });\n\n return {\n add,\n remove,\n has,\n props: () => props,\n };\n}\n\nlet key;\n\n/**\n * Use the keyboard service.\n */\nexport default function useKey(): KeyService {\n if (!key) {\n key = createKeyService();\n }\n\n return key;\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,qBAA2B;AAC3B,sBAAqB;AAMrB,SAAS,qBAA2D;AAClE,SAAO,OAAO,YAAY,OAAO,KAAK,gBAAAA,OAAQ,EAAE,IAAI,CAACC,SAAQ,CAACA,MAAK,KAAK,CAAC,CAAC;AAI5E;AAuBA,SAAS,mBAA+B;AACtC,MAAI;AAKJ,WAAS,YAAY,OAAuC;AAC1D,UAAM,QAAQ;AAEd,eAAW,CAAC,MAAM,IAAI,KAAK,OAAO,QAAQ,gBAAAD,OAAQ,GAAG;AACnD,YAAM,IAAI,IAAI,SAAS,MAAM;AAAA,IAC/B;AAEA,QAAI,CAAC,eAAe;AAClB,YAAM,YAAY;AAAA,IACpB;AAEA,QAAI,MAAM,MAAM,SAAS,aAAa,eAAe,SAAS,WAAW;AACvE,YAAM,aAAa;AAAA,IACrB,OAAO;AACL,YAAM,YAAY;AAAA,IACpB;AAEA,oBAAgB,MAAM;AAEtB,UAAM,YAAY,MAAM,MAAM,SAAS,YAAY,SAAS;AAC5D,UAAM,OAAO,MAAM,MAAM,SAAS;AAClC,UAAM,SAAS,MAAM,MAAM,SAAS;AAEpC,WAAO;AAAA,EACT;AAKA,WAAS,MAAM,OAAsB;AACnC,YAAQ,YAAY,KAAK,CAAC;AAAA,EAC5B;AAEA,QAAM,EAAE,KAAK,QAAQ,KAAK,SAAS,MAAM,QAAI,2BAAW;AAAA,IACtD,OAAO;AAAA,MACL,OAAO;AAAA,MACP,WAAW;AAAA,MACX,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,WAAW;AAAA,MACX,GAAG,mBAAmB;AAAA,IACxB;AAAA,IACA,OAAO;AACL,eAAS,iBAAiB,WAAW,KAAK;AAC1C,eAAS,iBAAiB,SAAS,KAAK;AAAA,IAC1C;AAAA,IACA,OAAO;AACL,eAAS,oBAAoB,WAAW,KAAK;AAC7C,eAAS,oBAAoB,SAAS,KAAK;AAAA,IAC7C;AAAA,EACF,CAAC;AAED,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO,MAAM;AAAA,EACf;AACF;AAEA,IAAI;AAKW,SAAR,SAAsC;AAC3C,MAAI,CAAC,KAAK;AACR,UAAM,iBAAiB;AAAA,EACzB;AAEA,SAAO;AACT;",
6
- "names": ["keyCodes", "key"]
7
- }
package/services/load.cjs DELETED
@@ -1,60 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
-
19
- // packages/js-toolkit/services/load.ts
20
- var load_exports = {};
21
- __export(load_exports, {
22
- default: () => useLoad
23
- });
24
- module.exports = __toCommonJS(load_exports);
25
- var import_service = require("./service.cjs");
26
- function createLoadService() {
27
- function onLoad() {
28
- props.time = window.performance.now();
29
- trigger(props);
30
- }
31
- const { add, remove, has, props, trigger } = (0, import_service.useService)({
32
- /**
33
- * @type {LoadServiceProps}
34
- */
35
- props: {
36
- time: performance.now()
37
- },
38
- init() {
39
- window.addEventListener("load", onLoad);
40
- },
41
- kill() {
42
- window.removeEventListener("load", onLoad);
43
- }
44
- });
45
- return {
46
- add,
47
- remove,
48
- has,
49
- props: () => props
50
- };
51
- }
52
- var load;
53
- function useLoad() {
54
- if (!load) {
55
- load = createLoadService();
56
- }
57
- return load;
58
- }
59
- if (module.exports.default) module.exports = module.exports.default;
60
- //# sourceMappingURL=load.cjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../packages/js-toolkit/services/load.ts"],
4
- "sourcesContent": ["/* eslint-disable no-use-before-define, @typescript-eslint/no-use-before-define */\nimport { useService } from './service.js';\nimport type { ServiceInterface } from './index.js';\n\nexport type LoadService = ServiceInterface<LoadServiceProps>;\n\nexport interface LoadServiceProps {\n time: DOMHighResTimeStamp;\n}\n\n/**\n * Get load service.\n *\n * @returns {LoadService}\n */\nfunction createLoadService() {\n /**\n * Trigger on load\n *\n * @returns {void}\n */\n function onLoad() {\n // eslint-disable-next-line no-use-before-define\n props.time = window.performance.now();\n // eslint-disable-next-line no-use-before-define\n trigger(props);\n }\n\n const { add, remove, has, props, trigger } = useService({\n /**\n * @type {LoadServiceProps}\n */\n props: {\n time: performance.now(),\n },\n init() {\n window.addEventListener('load', onLoad);\n },\n kill() {\n window.removeEventListener('load', onLoad);\n },\n });\n\n return {\n add,\n remove,\n has,\n props: () => props,\n };\n}\n\nlet load;\n\n/**\n * Use the load service.\n *\n * @returns {LoadService}\n */\nexport default function useLoad() {\n if (!load) {\n load = createLoadService();\n }\n\n return load;\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,qBAA2B;AAc3B,SAAS,oBAAoB;AAM3B,WAAS,SAAS;AAEhB,UAAM,OAAO,OAAO,YAAY,IAAI;AAEpC,YAAQ,KAAK;AAAA,EACf;AAEA,QAAM,EAAE,KAAK,QAAQ,KAAK,OAAO,QAAQ,QAAI,2BAAW;AAAA;AAAA;AAAA;AAAA,IAItD,OAAO;AAAA,MACL,MAAM,YAAY,IAAI;AAAA,IACxB;AAAA,IACA,OAAO;AACL,aAAO,iBAAiB,QAAQ,MAAM;AAAA,IACxC;AAAA,IACA,OAAO;AACL,aAAO,oBAAoB,QAAQ,MAAM;AAAA,IAC3C;AAAA,EACF,CAAC;AAED,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO,MAAM;AAAA,EACf;AACF;AAEA,IAAI;AAOW,SAAR,UAA2B;AAChC,MAAI,CAAC,MAAM;AACT,WAAO,kBAAkB;AAAA,EAC3B;AAEA,SAAO;AACT;",
6
- "names": []
7
- }
@@ -1,145 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
-
19
- // packages/js-toolkit/services/pointer.ts
20
- var pointer_exports = {};
21
- __export(pointer_exports, {
22
- default: () => usePointer
23
- });
24
- module.exports = __toCommonJS(pointer_exports);
25
- var import_service = require("./service.cjs");
26
- var import_utils = require("../utils/index.cjs");
27
- function isTouchEvent(event) {
28
- return typeof TouchEvent !== "undefined" && event instanceof TouchEvent;
29
- }
30
- var events = ["mousemove", "touchmove", "mousedown", "touchstart", "mouseup", "touchend"];
31
- function createPointerService(target) {
32
- function getTargetSize() {
33
- return (0, import_utils.isDefined)(target) ? target.getBoundingClientRect() : {
34
- width: window.innerWidth,
35
- height: window.innerHeight,
36
- x: 0,
37
- y: 0
38
- };
39
- }
40
- function updateProps(event) {
41
- props.event = event;
42
- const yLast = props.y;
43
- const xLast = props.x;
44
- const targetSize2 = getTargetSize();
45
- let y = isTouchEvent(event) ? event.touches[0]?.clientY : event.clientY;
46
- y -= targetSize2.y;
47
- if (y !== props.y) {
48
- props.y = y;
49
- }
50
- let x = isTouchEvent(event) ? event.touches[0]?.clientX : event.clientX;
51
- x -= targetSize2.x;
52
- if (x !== props.x) {
53
- props.x = x;
54
- }
55
- props.changed.x = props.x !== xLast;
56
- props.changed.y = props.y !== yLast;
57
- props.last.x = xLast;
58
- props.last.y = yLast;
59
- props.delta.x = props.x - xLast;
60
- props.delta.y = props.y - yLast;
61
- props.max.x = targetSize2.width;
62
- props.max.y = targetSize2.height;
63
- props.progress.x = props.x / props.max.x;
64
- props.progress.y = props.y / props.max.y;
65
- return props;
66
- }
67
- function handleEvent(event) {
68
- switch (event.type) {
69
- case "mouseenter":
70
- case "mousemove":
71
- case "touchmove":
72
- trigger(updateProps(event));
73
- break;
74
- case "mousedown":
75
- case "touchstart":
76
- props.isDown = true;
77
- trigger(props);
78
- break;
79
- case "mouseup":
80
- case "touchend":
81
- props.isDown = false;
82
- trigger(props);
83
- break;
84
- }
85
- }
86
- const targetSize = getTargetSize();
87
- const { add, remove, has, trigger, props } = (0, import_service.useService)({
88
- props: {
89
- event: null,
90
- isDown: false,
91
- x: targetSize.x / 2,
92
- y: targetSize.y / 2,
93
- changed: {
94
- x: false,
95
- y: false
96
- },
97
- last: {
98
- x: targetSize.x / 2,
99
- y: targetSize.y / 2
100
- },
101
- delta: {
102
- x: 0,
103
- y: 0
104
- },
105
- progress: {
106
- x: 0.5,
107
- y: 0.5
108
- },
109
- max: {
110
- x: targetSize.width,
111
- y: targetSize.height
112
- }
113
- },
114
- init() {
115
- document.documentElement.addEventListener("mouseenter", handleEvent, {
116
- once: true,
117
- capture: true
118
- });
119
- const options = { passive: true, capture: true };
120
- for (const event of events) {
121
- document.addEventListener(event, handleEvent, options);
122
- }
123
- },
124
- kill() {
125
- for (const event of events) {
126
- document.removeEventListener(event, handleEvent);
127
- }
128
- }
129
- });
130
- return {
131
- add,
132
- remove,
133
- has,
134
- props: () => props
135
- };
136
- }
137
- var instances = /* @__PURE__ */ new Map();
138
- function usePointer(target) {
139
- if (!instances.has(target)) {
140
- instances.set(target, createPointerService(target));
141
- }
142
- return instances.get(target);
143
- }
144
- if (module.exports.default) module.exports = module.exports.default;
145
- //# sourceMappingURL=pointer.cjs.map