@varlet/use 2.14.1 → 2.14.3-alpha.1692871861882

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.
package/lib/index.d.ts CHANGED
@@ -6,3 +6,4 @@ export * from './useParent.js';
6
6
  export * from './useChildren.js';
7
7
  export * from './onWindowResize.js';
8
8
  export * from './useInitialized.js';
9
+ export * from './useTouch.js';
package/lib/index.js CHANGED
@@ -6,3 +6,4 @@ export * from './useParent.js';
6
6
  export * from './useChildren.js';
7
7
  export * from './onWindowResize.js';
8
8
  export * from './useInitialized.js';
9
+ export * from './useTouch.js';
@@ -0,0 +1,21 @@
1
+ export type TouchDirection = 'horizontal' | 'vertical';
2
+ export declare function useTouch(): {
3
+ startX: import("vue").Ref<number>;
4
+ startY: import("vue").Ref<number>;
5
+ deltaX: import("vue").Ref<number>;
6
+ deltaY: import("vue").Ref<number>;
7
+ offsetX: import("vue").Ref<number>;
8
+ offsetY: import("vue").Ref<number>;
9
+ prevX: import("vue").Ref<number>;
10
+ prevY: import("vue").Ref<number>;
11
+ moveX: import("vue").Ref<number>;
12
+ moveY: import("vue").Ref<number>;
13
+ direction: import("vue").Ref<TouchDirection | undefined>;
14
+ touching: import("vue").Ref<boolean>;
15
+ startTime: import("vue").Ref<number>;
16
+ distance: import("vue").Ref<number>;
17
+ resetTouch: () => void;
18
+ startTouch: (event: TouchEvent) => void;
19
+ moveTouch: (event: TouchEvent) => void;
20
+ endTouch: () => void;
21
+ };
@@ -0,0 +1,89 @@
1
+ import { ref } from 'vue';
2
+ function getDirection(x, y) {
3
+ if (x > y) {
4
+ return 'horizontal';
5
+ }
6
+ if (y > x) {
7
+ return 'vertical';
8
+ }
9
+ }
10
+ export function useTouch() {
11
+ const startX = ref(0);
12
+ const startY = ref(0);
13
+ const deltaX = ref(0);
14
+ const deltaY = ref(0);
15
+ const offsetX = ref(0);
16
+ const offsetY = ref(0);
17
+ const prevX = ref(0);
18
+ const prevY = ref(0);
19
+ const moveX = ref(0);
20
+ const moveY = ref(0);
21
+ const direction = ref();
22
+ const touching = ref(false);
23
+ const startTime = ref(0);
24
+ const distance = ref(0);
25
+ const resetTouch = () => {
26
+ startX.value = 0;
27
+ startY.value = 0;
28
+ deltaX.value = 0;
29
+ deltaY.value = 0;
30
+ offsetX.value = 0;
31
+ offsetY.value = 0;
32
+ prevX.value = 0;
33
+ prevY.value = 0;
34
+ moveX.value = 0;
35
+ moveY.value = 0;
36
+ direction.value = undefined;
37
+ touching.value = false;
38
+ startTime.value = 0;
39
+ distance.value = 0;
40
+ };
41
+ const startTouch = (event) => {
42
+ resetTouch();
43
+ const { clientX: x, clientY: y } = event.touches[0];
44
+ startX.value = x;
45
+ startY.value = y;
46
+ prevX.value = x;
47
+ prevY.value = y;
48
+ touching.value = true;
49
+ startTime.value = performance.now();
50
+ };
51
+ const moveTouch = (event) => {
52
+ const { clientX: x, clientY: y } = event.touches[0];
53
+ deltaX.value = x - startX.value;
54
+ deltaY.value = y - startY.value;
55
+ offsetX.value = Math.abs(deltaX.value);
56
+ offsetY.value = Math.abs(deltaY.value);
57
+ distance.value = Math.sqrt(offsetX.value ** 2 + offsetY.value ** 2);
58
+ moveX.value = x - prevX.value;
59
+ moveY.value = y - prevY.value;
60
+ if (!direction.value) {
61
+ direction.value = getDirection(offsetX.value, offsetY.value);
62
+ }
63
+ prevX.value = x;
64
+ prevY.value = y;
65
+ };
66
+ const endTouch = () => {
67
+ touching.value = false;
68
+ };
69
+ return {
70
+ startX,
71
+ startY,
72
+ deltaX,
73
+ deltaY,
74
+ offsetX,
75
+ offsetY,
76
+ prevX,
77
+ prevY,
78
+ moveX,
79
+ moveY,
80
+ direction,
81
+ touching,
82
+ startTime,
83
+ distance,
84
+ resetTouch,
85
+ startTouch,
86
+ moveTouch,
87
+ endTouch,
88
+ };
89
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@varlet/use",
3
- "version": "2.14.1",
3
+ "version": "2.14.3-alpha.1692871861882",
4
4
  "type": "module",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib/index.js",
@@ -24,7 +24,7 @@
24
24
  "url": "https://github.com/varletjs/varlet/issues"
25
25
  },
26
26
  "dependencies": {
27
- "@varlet/shared": "2.14.1"
27
+ "@varlet/shared": "2.14.3-alpha.1692871861882"
28
28
  },
29
29
  "devDependencies": {
30
30
  "rimraf": "^5.0.1",