gesture-kit-basic-touch 1.0.0
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/dist/DoubleTapGesture.d.ts +6 -0
- package/dist/DoubleTapGesture.js +61 -0
- package/dist/LongPressGesture.d.ts +6 -0
- package/dist/LongPressGesture.js +77 -0
- package/dist/PressForceGesture.d.ts +6 -0
- package/dist/PressForceGesture.js +59 -0
- package/dist/QuadTapGesture.d.ts +6 -0
- package/dist/QuadTapGesture.js +61 -0
- package/dist/TapAndHoldGesture.d.ts +6 -0
- package/dist/TapAndHoldGesture.js +71 -0
- package/dist/TapCancelGesture.d.ts +6 -0
- package/dist/TapCancelGesture.js +64 -0
- package/dist/TapGesture.d.ts +6 -0
- package/dist/TapGesture.js +61 -0
- package/dist/TripleTapGesture.d.ts +6 -0
- package/dist/TripleTapGesture.js +61 -0
- package/dist/VeryLongPressGesture.d.ts +6 -0
- package/dist/VeryLongPressGesture.js +77 -0
- package/dist/hooks/index.d.ts +9 -0
- package/dist/hooks/index.js +21 -0
- package/dist/hooks/useDoubleTap.d.ts +2 -0
- package/dist/hooks/useDoubleTap.js +21 -0
- package/dist/hooks/useLongPress.d.ts +2 -0
- package/dist/hooks/useLongPress.js +31 -0
- package/dist/hooks/usePressForce.d.ts +2 -0
- package/dist/hooks/usePressForce.js +19 -0
- package/dist/hooks/useQuadTap.d.ts +2 -0
- package/dist/hooks/useQuadTap.js +21 -0
- package/dist/hooks/useTap.d.ts +2 -0
- package/dist/hooks/useTap.js +21 -0
- package/dist/hooks/useTapAndHold.d.ts +2 -0
- package/dist/hooks/useTapAndHold.js +28 -0
- package/dist/hooks/useTapCancel.d.ts +2 -0
- package/dist/hooks/useTapCancel.js +24 -0
- package/dist/hooks/useTripleTap.d.ts +2 -0
- package/dist/hooks/useTripleTap.js +21 -0
- package/dist/hooks/useVeryLongPress.d.ts +2 -0
- package/dist/hooks/useVeryLongPress.js +31 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.js +40 -0
- package/dist/types.d.ts +93 -0
- package/dist/types.js +5 -0
- package/package.json +30 -0
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* DoubleTapGesture — Detects double tap gestures.
|
|
4
|
+
*/
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
17
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
18
|
+
}) : function(o, v) {
|
|
19
|
+
o["default"] = v;
|
|
20
|
+
});
|
|
21
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
22
|
+
var ownKeys = function(o) {
|
|
23
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
24
|
+
var ar = [];
|
|
25
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
26
|
+
return ar;
|
|
27
|
+
};
|
|
28
|
+
return ownKeys(o);
|
|
29
|
+
};
|
|
30
|
+
return function (mod) {
|
|
31
|
+
if (mod && mod.__esModule) return mod;
|
|
32
|
+
var result = {};
|
|
33
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
34
|
+
__setModuleDefault(result, mod);
|
|
35
|
+
return result;
|
|
36
|
+
};
|
|
37
|
+
})();
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.DoubleTapGesture = void 0;
|
|
40
|
+
const react_1 = __importStar(require("react"));
|
|
41
|
+
const react_native_gesture_handler_1 = require("react-native-gesture-handler");
|
|
42
|
+
const DoubleTapGesture = ({ children, onDoubleTap, maxDelay, maxDistance, enabled = true, }) => {
|
|
43
|
+
const gesture = (0, react_1.useMemo)(() => {
|
|
44
|
+
let g = react_native_gesture_handler_1.Gesture.Tap().numberOfTaps(2);
|
|
45
|
+
if (maxDelay !== undefined)
|
|
46
|
+
g = g.maxDuration(maxDelay);
|
|
47
|
+
if (maxDistance !== undefined)
|
|
48
|
+
g = g.maxDistance(maxDistance);
|
|
49
|
+
g = g.onEnd((e) => {
|
|
50
|
+
const event = {
|
|
51
|
+
absoluteX: e.absoluteX, absoluteY: e.absoluteY,
|
|
52
|
+
x: e.x, y: e.y, numberOfTaps: 2,
|
|
53
|
+
};
|
|
54
|
+
onDoubleTap(event);
|
|
55
|
+
});
|
|
56
|
+
return g.enabled(enabled);
|
|
57
|
+
}, [onDoubleTap, maxDelay, maxDistance, enabled]);
|
|
58
|
+
return react_1.default.createElement(react_native_gesture_handler_1.GestureDetector, { gesture: gesture }, children);
|
|
59
|
+
};
|
|
60
|
+
exports.DoubleTapGesture = DoubleTapGesture;
|
|
61
|
+
exports.DoubleTapGesture.displayName = 'DoubleTapGesture';
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* LongPressGesture — Detects long press gestures.
|
|
4
|
+
*/
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
17
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
18
|
+
}) : function(o, v) {
|
|
19
|
+
o["default"] = v;
|
|
20
|
+
});
|
|
21
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
22
|
+
var ownKeys = function(o) {
|
|
23
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
24
|
+
var ar = [];
|
|
25
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
26
|
+
return ar;
|
|
27
|
+
};
|
|
28
|
+
return ownKeys(o);
|
|
29
|
+
};
|
|
30
|
+
return function (mod) {
|
|
31
|
+
if (mod && mod.__esModule) return mod;
|
|
32
|
+
var result = {};
|
|
33
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
34
|
+
__setModuleDefault(result, mod);
|
|
35
|
+
return result;
|
|
36
|
+
};
|
|
37
|
+
})();
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.LongPressGesture = void 0;
|
|
40
|
+
const react_1 = __importStar(require("react"));
|
|
41
|
+
const react_native_gesture_handler_1 = require("react-native-gesture-handler");
|
|
42
|
+
const LongPressGesture = ({ children, onLongPress, onPressIn, onPressOut, minDuration = 500, maxDistance, enabled = true, }) => {
|
|
43
|
+
const gesture = (0, react_1.useMemo)(() => {
|
|
44
|
+
let g = react_native_gesture_handler_1.Gesture.LongPress().minDuration(minDuration);
|
|
45
|
+
if (maxDistance !== undefined)
|
|
46
|
+
g = g.maxDistance(maxDistance);
|
|
47
|
+
if (onPressIn) {
|
|
48
|
+
g = g.onStart((e) => {
|
|
49
|
+
const event = {
|
|
50
|
+
absoluteX: e.absoluteX, absoluteY: e.absoluteY,
|
|
51
|
+
x: e.x, y: e.y, duration: e.duration,
|
|
52
|
+
};
|
|
53
|
+
onPressIn(event);
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
g = g.onEnd((e) => {
|
|
57
|
+
const event = {
|
|
58
|
+
absoluteX: e.absoluteX, absoluteY: e.absoluteY,
|
|
59
|
+
x: e.x, y: e.y, duration: e.duration,
|
|
60
|
+
};
|
|
61
|
+
onLongPress(event);
|
|
62
|
+
});
|
|
63
|
+
if (onPressOut) {
|
|
64
|
+
g = g.onFinalize((e) => {
|
|
65
|
+
const event = {
|
|
66
|
+
absoluteX: e.absoluteX, absoluteY: e.absoluteY,
|
|
67
|
+
x: e.x, y: e.y, duration: e.duration,
|
|
68
|
+
};
|
|
69
|
+
onPressOut(event);
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
return g.enabled(enabled);
|
|
73
|
+
}, [onLongPress, onPressIn, onPressOut, minDuration, maxDistance, enabled]);
|
|
74
|
+
return react_1.default.createElement(react_native_gesture_handler_1.GestureDetector, { gesture: gesture }, children);
|
|
75
|
+
};
|
|
76
|
+
exports.LongPressGesture = LongPressGesture;
|
|
77
|
+
exports.LongPressGesture.displayName = 'LongPressGesture';
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* PressForceGesture — Detects force/pressure touch gestures (3D Touch / Force Touch).
|
|
4
|
+
*/
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
17
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
18
|
+
}) : function(o, v) {
|
|
19
|
+
o["default"] = v;
|
|
20
|
+
});
|
|
21
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
22
|
+
var ownKeys = function(o) {
|
|
23
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
24
|
+
var ar = [];
|
|
25
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
26
|
+
return ar;
|
|
27
|
+
};
|
|
28
|
+
return ownKeys(o);
|
|
29
|
+
};
|
|
30
|
+
return function (mod) {
|
|
31
|
+
if (mod && mod.__esModule) return mod;
|
|
32
|
+
var result = {};
|
|
33
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
34
|
+
__setModuleDefault(result, mod);
|
|
35
|
+
return result;
|
|
36
|
+
};
|
|
37
|
+
})();
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.PressForceGesture = void 0;
|
|
40
|
+
const react_1 = __importStar(require("react"));
|
|
41
|
+
const react_native_gesture_handler_1 = require("react-native-gesture-handler");
|
|
42
|
+
const PressForceGesture = ({ children, onPressForce, forceThreshold = 0.5, enabled = true, }) => {
|
|
43
|
+
const gesture = (0, react_1.useMemo)(() => {
|
|
44
|
+
const g = react_native_gesture_handler_1.Gesture.ForceTouch()
|
|
45
|
+
.minForce(forceThreshold)
|
|
46
|
+
.onStart((e) => {
|
|
47
|
+
const event = {
|
|
48
|
+
absoluteX: e.absoluteX, absoluteY: e.absoluteY,
|
|
49
|
+
x: e.x, y: e.y, force: e.force,
|
|
50
|
+
};
|
|
51
|
+
onPressForce(event);
|
|
52
|
+
})
|
|
53
|
+
.enabled(enabled);
|
|
54
|
+
return g;
|
|
55
|
+
}, [onPressForce, forceThreshold, enabled]);
|
|
56
|
+
return react_1.default.createElement(react_native_gesture_handler_1.GestureDetector, { gesture: gesture }, children);
|
|
57
|
+
};
|
|
58
|
+
exports.PressForceGesture = PressForceGesture;
|
|
59
|
+
exports.PressForceGesture.displayName = 'PressForceGesture';
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* QuadTapGesture — Detects quad (four) tap gestures.
|
|
4
|
+
*/
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
17
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
18
|
+
}) : function(o, v) {
|
|
19
|
+
o["default"] = v;
|
|
20
|
+
});
|
|
21
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
22
|
+
var ownKeys = function(o) {
|
|
23
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
24
|
+
var ar = [];
|
|
25
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
26
|
+
return ar;
|
|
27
|
+
};
|
|
28
|
+
return ownKeys(o);
|
|
29
|
+
};
|
|
30
|
+
return function (mod) {
|
|
31
|
+
if (mod && mod.__esModule) return mod;
|
|
32
|
+
var result = {};
|
|
33
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
34
|
+
__setModuleDefault(result, mod);
|
|
35
|
+
return result;
|
|
36
|
+
};
|
|
37
|
+
})();
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.QuadTapGesture = void 0;
|
|
40
|
+
const react_1 = __importStar(require("react"));
|
|
41
|
+
const react_native_gesture_handler_1 = require("react-native-gesture-handler");
|
|
42
|
+
const QuadTapGesture = ({ children, onQuadTap, maxDelay, maxDistance, enabled = true, }) => {
|
|
43
|
+
const gesture = (0, react_1.useMemo)(() => {
|
|
44
|
+
let g = react_native_gesture_handler_1.Gesture.Tap().numberOfTaps(4);
|
|
45
|
+
if (maxDelay !== undefined)
|
|
46
|
+
g = g.maxDuration(maxDelay);
|
|
47
|
+
if (maxDistance !== undefined)
|
|
48
|
+
g = g.maxDistance(maxDistance);
|
|
49
|
+
g = g.onEnd((e) => {
|
|
50
|
+
const event = {
|
|
51
|
+
absoluteX: e.absoluteX, absoluteY: e.absoluteY,
|
|
52
|
+
x: e.x, y: e.y, numberOfTaps: 4,
|
|
53
|
+
};
|
|
54
|
+
onQuadTap(event);
|
|
55
|
+
});
|
|
56
|
+
return g.enabled(enabled);
|
|
57
|
+
}, [onQuadTap, maxDelay, maxDistance, enabled]);
|
|
58
|
+
return react_1.default.createElement(react_native_gesture_handler_1.GestureDetector, { gesture: gesture }, children);
|
|
59
|
+
};
|
|
60
|
+
exports.QuadTapGesture = QuadTapGesture;
|
|
61
|
+
exports.QuadTapGesture.displayName = 'QuadTapGesture';
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* TapAndHoldGesture — Detects a tap followed by a hold.
|
|
4
|
+
*/
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
17
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
18
|
+
}) : function(o, v) {
|
|
19
|
+
o["default"] = v;
|
|
20
|
+
});
|
|
21
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
22
|
+
var ownKeys = function(o) {
|
|
23
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
24
|
+
var ar = [];
|
|
25
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
26
|
+
return ar;
|
|
27
|
+
};
|
|
28
|
+
return ownKeys(o);
|
|
29
|
+
};
|
|
30
|
+
return function (mod) {
|
|
31
|
+
if (mod && mod.__esModule) return mod;
|
|
32
|
+
var result = {};
|
|
33
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
34
|
+
__setModuleDefault(result, mod);
|
|
35
|
+
return result;
|
|
36
|
+
};
|
|
37
|
+
})();
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.TapAndHoldGesture = void 0;
|
|
40
|
+
const react_1 = __importStar(require("react"));
|
|
41
|
+
const react_native_gesture_handler_1 = require("react-native-gesture-handler");
|
|
42
|
+
const TapAndHoldGesture = ({ children, onTapAndHold, onTap, holdDuration = 500, enabled = true, }) => {
|
|
43
|
+
const gesture = (0, react_1.useMemo)(() => {
|
|
44
|
+
const holdGesture = react_native_gesture_handler_1.Gesture.LongPress()
|
|
45
|
+
.minDuration(holdDuration)
|
|
46
|
+
.onEnd((e) => {
|
|
47
|
+
const event = {
|
|
48
|
+
absoluteX: e.absoluteX, absoluteY: e.absoluteY,
|
|
49
|
+
x: e.x, y: e.y, duration: e.duration,
|
|
50
|
+
};
|
|
51
|
+
onTapAndHold(event);
|
|
52
|
+
})
|
|
53
|
+
.enabled(enabled);
|
|
54
|
+
if (onTap) {
|
|
55
|
+
const tapGesture = react_native_gesture_handler_1.Gesture.Tap()
|
|
56
|
+
.onEnd((e) => {
|
|
57
|
+
const event = {
|
|
58
|
+
absoluteX: e.absoluteX, absoluteY: e.absoluteY,
|
|
59
|
+
x: e.x, y: e.y, numberOfTaps: 1,
|
|
60
|
+
};
|
|
61
|
+
onTap(event);
|
|
62
|
+
})
|
|
63
|
+
.enabled(enabled);
|
|
64
|
+
return react_native_gesture_handler_1.Gesture.Exclusive(holdGesture, tapGesture);
|
|
65
|
+
}
|
|
66
|
+
return holdGesture;
|
|
67
|
+
}, [onTapAndHold, onTap, holdDuration, enabled]);
|
|
68
|
+
return react_1.default.createElement(react_native_gesture_handler_1.GestureDetector, { gesture: gesture }, children);
|
|
69
|
+
};
|
|
70
|
+
exports.TapAndHoldGesture = TapAndHoldGesture;
|
|
71
|
+
exports.TapAndHoldGesture.displayName = 'TapAndHoldGesture';
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* TapCancelGesture — Detects when a tap is cancelled (finger moves away).
|
|
4
|
+
*/
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
17
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
18
|
+
}) : function(o, v) {
|
|
19
|
+
o["default"] = v;
|
|
20
|
+
});
|
|
21
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
22
|
+
var ownKeys = function(o) {
|
|
23
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
24
|
+
var ar = [];
|
|
25
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
26
|
+
return ar;
|
|
27
|
+
};
|
|
28
|
+
return ownKeys(o);
|
|
29
|
+
};
|
|
30
|
+
return function (mod) {
|
|
31
|
+
if (mod && mod.__esModule) return mod;
|
|
32
|
+
var result = {};
|
|
33
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
34
|
+
__setModuleDefault(result, mod);
|
|
35
|
+
return result;
|
|
36
|
+
};
|
|
37
|
+
})();
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.TapCancelGesture = void 0;
|
|
40
|
+
const react_1 = __importStar(require("react"));
|
|
41
|
+
const react_native_gesture_handler_1 = require("react-native-gesture-handler");
|
|
42
|
+
const TapCancelGesture = ({ children, onTapCancel, onTapStart, maxDuration, enabled = true, }) => {
|
|
43
|
+
const gesture = (0, react_1.useMemo)(() => {
|
|
44
|
+
let g = react_native_gesture_handler_1.Gesture.Tap();
|
|
45
|
+
if (maxDuration !== undefined)
|
|
46
|
+
g = g.maxDuration(maxDuration);
|
|
47
|
+
if (onTapStart) {
|
|
48
|
+
g = g.onBegin((e) => {
|
|
49
|
+
const event = {
|
|
50
|
+
absoluteX: e.absoluteX, absoluteY: e.absoluteY,
|
|
51
|
+
x: e.x, y: e.y,
|
|
52
|
+
};
|
|
53
|
+
onTapStart(event);
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
g = g.onTouchesCancelled(() => {
|
|
57
|
+
onTapCancel({ absoluteX: 0, absoluteY: 0, x: 0, y: 0 });
|
|
58
|
+
});
|
|
59
|
+
return g.enabled(enabled);
|
|
60
|
+
}, [onTapCancel, onTapStart, maxDuration, enabled]);
|
|
61
|
+
return react_1.default.createElement(react_native_gesture_handler_1.GestureDetector, { gesture: gesture }, children);
|
|
62
|
+
};
|
|
63
|
+
exports.TapCancelGesture = TapCancelGesture;
|
|
64
|
+
exports.TapCancelGesture.displayName = 'TapCancelGesture';
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* TapGesture — Detects single tap gestures.
|
|
4
|
+
*/
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
17
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
18
|
+
}) : function(o, v) {
|
|
19
|
+
o["default"] = v;
|
|
20
|
+
});
|
|
21
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
22
|
+
var ownKeys = function(o) {
|
|
23
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
24
|
+
var ar = [];
|
|
25
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
26
|
+
return ar;
|
|
27
|
+
};
|
|
28
|
+
return ownKeys(o);
|
|
29
|
+
};
|
|
30
|
+
return function (mod) {
|
|
31
|
+
if (mod && mod.__esModule) return mod;
|
|
32
|
+
var result = {};
|
|
33
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
34
|
+
__setModuleDefault(result, mod);
|
|
35
|
+
return result;
|
|
36
|
+
};
|
|
37
|
+
})();
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.TapGesture = void 0;
|
|
40
|
+
const react_1 = __importStar(require("react"));
|
|
41
|
+
const react_native_gesture_handler_1 = require("react-native-gesture-handler");
|
|
42
|
+
const TapGesture = ({ children, onTap, numberOfTaps = 1, maxDuration, maxDistance, enabled = true, }) => {
|
|
43
|
+
const gesture = (0, react_1.useMemo)(() => {
|
|
44
|
+
let g = react_native_gesture_handler_1.Gesture.Tap().numberOfTaps(numberOfTaps);
|
|
45
|
+
if (maxDuration !== undefined)
|
|
46
|
+
g = g.maxDuration(maxDuration);
|
|
47
|
+
if (maxDistance !== undefined)
|
|
48
|
+
g = g.maxDistance(maxDistance);
|
|
49
|
+
g = g.onEnd((e) => {
|
|
50
|
+
const event = {
|
|
51
|
+
absoluteX: e.absoluteX, absoluteY: e.absoluteY,
|
|
52
|
+
x: e.x, y: e.y, numberOfTaps,
|
|
53
|
+
};
|
|
54
|
+
onTap(event);
|
|
55
|
+
});
|
|
56
|
+
return g.enabled(enabled);
|
|
57
|
+
}, [onTap, numberOfTaps, maxDuration, maxDistance, enabled]);
|
|
58
|
+
return react_1.default.createElement(react_native_gesture_handler_1.GestureDetector, { gesture: gesture }, children);
|
|
59
|
+
};
|
|
60
|
+
exports.TapGesture = TapGesture;
|
|
61
|
+
exports.TapGesture.displayName = 'TapGesture';
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* TripleTapGesture — Detects triple tap gestures.
|
|
4
|
+
*/
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
17
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
18
|
+
}) : function(o, v) {
|
|
19
|
+
o["default"] = v;
|
|
20
|
+
});
|
|
21
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
22
|
+
var ownKeys = function(o) {
|
|
23
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
24
|
+
var ar = [];
|
|
25
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
26
|
+
return ar;
|
|
27
|
+
};
|
|
28
|
+
return ownKeys(o);
|
|
29
|
+
};
|
|
30
|
+
return function (mod) {
|
|
31
|
+
if (mod && mod.__esModule) return mod;
|
|
32
|
+
var result = {};
|
|
33
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
34
|
+
__setModuleDefault(result, mod);
|
|
35
|
+
return result;
|
|
36
|
+
};
|
|
37
|
+
})();
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.TripleTapGesture = void 0;
|
|
40
|
+
const react_1 = __importStar(require("react"));
|
|
41
|
+
const react_native_gesture_handler_1 = require("react-native-gesture-handler");
|
|
42
|
+
const TripleTapGesture = ({ children, onTripleTap, maxDelay, maxDistance, enabled = true, }) => {
|
|
43
|
+
const gesture = (0, react_1.useMemo)(() => {
|
|
44
|
+
let g = react_native_gesture_handler_1.Gesture.Tap().numberOfTaps(3);
|
|
45
|
+
if (maxDelay !== undefined)
|
|
46
|
+
g = g.maxDuration(maxDelay);
|
|
47
|
+
if (maxDistance !== undefined)
|
|
48
|
+
g = g.maxDistance(maxDistance);
|
|
49
|
+
g = g.onEnd((e) => {
|
|
50
|
+
const event = {
|
|
51
|
+
absoluteX: e.absoluteX, absoluteY: e.absoluteY,
|
|
52
|
+
x: e.x, y: e.y, numberOfTaps: 3,
|
|
53
|
+
};
|
|
54
|
+
onTripleTap(event);
|
|
55
|
+
});
|
|
56
|
+
return g.enabled(enabled);
|
|
57
|
+
}, [onTripleTap, maxDelay, maxDistance, enabled]);
|
|
58
|
+
return react_1.default.createElement(react_native_gesture_handler_1.GestureDetector, { gesture: gesture }, children);
|
|
59
|
+
};
|
|
60
|
+
exports.TripleTapGesture = TripleTapGesture;
|
|
61
|
+
exports.TripleTapGesture.displayName = 'TripleTapGesture';
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* VeryLongPressGesture — Detects very long press gestures (default 1500ms).
|
|
4
|
+
*/
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
17
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
18
|
+
}) : function(o, v) {
|
|
19
|
+
o["default"] = v;
|
|
20
|
+
});
|
|
21
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
22
|
+
var ownKeys = function(o) {
|
|
23
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
24
|
+
var ar = [];
|
|
25
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
26
|
+
return ar;
|
|
27
|
+
};
|
|
28
|
+
return ownKeys(o);
|
|
29
|
+
};
|
|
30
|
+
return function (mod) {
|
|
31
|
+
if (mod && mod.__esModule) return mod;
|
|
32
|
+
var result = {};
|
|
33
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
34
|
+
__setModuleDefault(result, mod);
|
|
35
|
+
return result;
|
|
36
|
+
};
|
|
37
|
+
})();
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.VeryLongPressGesture = void 0;
|
|
40
|
+
const react_1 = __importStar(require("react"));
|
|
41
|
+
const react_native_gesture_handler_1 = require("react-native-gesture-handler");
|
|
42
|
+
const VeryLongPressGesture = ({ children, onVeryLongPress, onPressIn, onPressOut, minDuration = 1500, maxDistance, enabled = true, }) => {
|
|
43
|
+
const gesture = (0, react_1.useMemo)(() => {
|
|
44
|
+
let g = react_native_gesture_handler_1.Gesture.LongPress().minDuration(minDuration);
|
|
45
|
+
if (maxDistance !== undefined)
|
|
46
|
+
g = g.maxDistance(maxDistance);
|
|
47
|
+
if (onPressIn) {
|
|
48
|
+
g = g.onStart((e) => {
|
|
49
|
+
const event = {
|
|
50
|
+
absoluteX: e.absoluteX, absoluteY: e.absoluteY,
|
|
51
|
+
x: e.x, y: e.y, duration: e.duration,
|
|
52
|
+
};
|
|
53
|
+
onPressIn(event);
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
g = g.onEnd((e) => {
|
|
57
|
+
const event = {
|
|
58
|
+
absoluteX: e.absoluteX, absoluteY: e.absoluteY,
|
|
59
|
+
x: e.x, y: e.y, duration: e.duration,
|
|
60
|
+
};
|
|
61
|
+
onVeryLongPress(event);
|
|
62
|
+
});
|
|
63
|
+
if (onPressOut) {
|
|
64
|
+
g = g.onFinalize((e) => {
|
|
65
|
+
const event = {
|
|
66
|
+
absoluteX: e.absoluteX, absoluteY: e.absoluteY,
|
|
67
|
+
x: e.x, y: e.y, duration: e.duration,
|
|
68
|
+
};
|
|
69
|
+
onPressOut(event);
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
return g.enabled(enabled);
|
|
73
|
+
}, [onVeryLongPress, onPressIn, onPressOut, minDuration, maxDistance, enabled]);
|
|
74
|
+
return react_1.default.createElement(react_native_gesture_handler_1.GestureDetector, { gesture: gesture }, children);
|
|
75
|
+
};
|
|
76
|
+
exports.VeryLongPressGesture = VeryLongPressGesture;
|
|
77
|
+
exports.VeryLongPressGesture.displayName = 'VeryLongPressGesture';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { useTap } from './useTap';
|
|
2
|
+
export { useDoubleTap } from './useDoubleTap';
|
|
3
|
+
export { useTripleTap } from './useTripleTap';
|
|
4
|
+
export { useQuadTap } from './useQuadTap';
|
|
5
|
+
export { useLongPress } from './useLongPress';
|
|
6
|
+
export { useVeryLongPress } from './useVeryLongPress';
|
|
7
|
+
export { useTapAndHold } from './useTapAndHold';
|
|
8
|
+
export { useTapCancel } from './useTapCancel';
|
|
9
|
+
export { usePressForce } from './usePressForce';
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.usePressForce = exports.useTapCancel = exports.useTapAndHold = exports.useVeryLongPress = exports.useLongPress = exports.useQuadTap = exports.useTripleTap = exports.useDoubleTap = exports.useTap = void 0;
|
|
4
|
+
var useTap_1 = require("./useTap");
|
|
5
|
+
Object.defineProperty(exports, "useTap", { enumerable: true, get: function () { return useTap_1.useTap; } });
|
|
6
|
+
var useDoubleTap_1 = require("./useDoubleTap");
|
|
7
|
+
Object.defineProperty(exports, "useDoubleTap", { enumerable: true, get: function () { return useDoubleTap_1.useDoubleTap; } });
|
|
8
|
+
var useTripleTap_1 = require("./useTripleTap");
|
|
9
|
+
Object.defineProperty(exports, "useTripleTap", { enumerable: true, get: function () { return useTripleTap_1.useTripleTap; } });
|
|
10
|
+
var useQuadTap_1 = require("./useQuadTap");
|
|
11
|
+
Object.defineProperty(exports, "useQuadTap", { enumerable: true, get: function () { return useQuadTap_1.useQuadTap; } });
|
|
12
|
+
var useLongPress_1 = require("./useLongPress");
|
|
13
|
+
Object.defineProperty(exports, "useLongPress", { enumerable: true, get: function () { return useLongPress_1.useLongPress; } });
|
|
14
|
+
var useVeryLongPress_1 = require("./useVeryLongPress");
|
|
15
|
+
Object.defineProperty(exports, "useVeryLongPress", { enumerable: true, get: function () { return useVeryLongPress_1.useVeryLongPress; } });
|
|
16
|
+
var useTapAndHold_1 = require("./useTapAndHold");
|
|
17
|
+
Object.defineProperty(exports, "useTapAndHold", { enumerable: true, get: function () { return useTapAndHold_1.useTapAndHold; } });
|
|
18
|
+
var useTapCancel_1 = require("./useTapCancel");
|
|
19
|
+
Object.defineProperty(exports, "useTapCancel", { enumerable: true, get: function () { return useTapCancel_1.useTapCancel; } });
|
|
20
|
+
var usePressForce_1 = require("./usePressForce");
|
|
21
|
+
Object.defineProperty(exports, "usePressForce", { enumerable: true, get: function () { return usePressForce_1.usePressForce; } });
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useDoubleTap = useDoubleTap;
|
|
4
|
+
/** useDoubleTap — Hook that returns a configured DoubleTap gesture. */
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const react_native_gesture_handler_1 = require("react-native-gesture-handler");
|
|
7
|
+
function useDoubleTap(options) {
|
|
8
|
+
const { onDoubleTap, maxDelay, maxDistance, enabled = true } = options;
|
|
9
|
+
return (0, react_1.useMemo)(() => {
|
|
10
|
+
let g = react_native_gesture_handler_1.Gesture.Tap().numberOfTaps(2);
|
|
11
|
+
if (maxDelay !== undefined)
|
|
12
|
+
g = g.maxDuration(maxDelay);
|
|
13
|
+
if (maxDistance !== undefined)
|
|
14
|
+
g = g.maxDistance(maxDistance);
|
|
15
|
+
g = g.onEnd((e) => {
|
|
16
|
+
const event = { absoluteX: e.absoluteX, absoluteY: e.absoluteY, x: e.x, y: e.y, numberOfTaps: 2 };
|
|
17
|
+
onDoubleTap(event);
|
|
18
|
+
});
|
|
19
|
+
return g.enabled(enabled);
|
|
20
|
+
}, [onDoubleTap, maxDelay, maxDistance, enabled]);
|
|
21
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useLongPress = useLongPress;
|
|
4
|
+
/** useLongPress — Hook that returns a configured LongPress gesture. */
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const react_native_gesture_handler_1 = require("react-native-gesture-handler");
|
|
7
|
+
function useLongPress(options) {
|
|
8
|
+
const { onLongPress, onPressIn, onPressOut, minDuration = 500, maxDistance, enabled = true } = options;
|
|
9
|
+
return (0, react_1.useMemo)(() => {
|
|
10
|
+
let g = react_native_gesture_handler_1.Gesture.LongPress().minDuration(minDuration);
|
|
11
|
+
if (maxDistance !== undefined)
|
|
12
|
+
g = g.maxDistance(maxDistance);
|
|
13
|
+
if (onPressIn) {
|
|
14
|
+
g = g.onStart((e) => {
|
|
15
|
+
const event = { absoluteX: e.absoluteX, absoluteY: e.absoluteY, x: e.x, y: e.y, duration: e.duration };
|
|
16
|
+
onPressIn(event);
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
g = g.onEnd((e) => {
|
|
20
|
+
const event = { absoluteX: e.absoluteX, absoluteY: e.absoluteY, x: e.x, y: e.y, duration: e.duration };
|
|
21
|
+
onLongPress(event);
|
|
22
|
+
});
|
|
23
|
+
if (onPressOut) {
|
|
24
|
+
g = g.onFinalize((e) => {
|
|
25
|
+
const event = { absoluteX: e.absoluteX, absoluteY: e.absoluteY, x: e.x, y: e.y, duration: e.duration };
|
|
26
|
+
onPressOut(event);
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
return g.enabled(enabled);
|
|
30
|
+
}, [onLongPress, onPressIn, onPressOut, minDuration, maxDistance, enabled]);
|
|
31
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.usePressForce = usePressForce;
|
|
4
|
+
/** usePressForce — Hook for force/pressure touch. */
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const react_native_gesture_handler_1 = require("react-native-gesture-handler");
|
|
7
|
+
function usePressForce(options) {
|
|
8
|
+
const { onPressForce, forceThreshold = 0.5, enabled = true } = options;
|
|
9
|
+
return (0, react_1.useMemo)(() => {
|
|
10
|
+
const g = react_native_gesture_handler_1.Gesture.ForceTouch()
|
|
11
|
+
.minForce(forceThreshold)
|
|
12
|
+
.onStart((e) => {
|
|
13
|
+
const event = { absoluteX: e.absoluteX, absoluteY: e.absoluteY, x: e.x, y: e.y, force: e.force };
|
|
14
|
+
onPressForce(event);
|
|
15
|
+
})
|
|
16
|
+
.enabled(enabled);
|
|
17
|
+
return g;
|
|
18
|
+
}, [onPressForce, forceThreshold, enabled]);
|
|
19
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useQuadTap = useQuadTap;
|
|
4
|
+
/** useQuadTap — Hook that returns a configured QuadTap gesture. */
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const react_native_gesture_handler_1 = require("react-native-gesture-handler");
|
|
7
|
+
function useQuadTap(options) {
|
|
8
|
+
const { onQuadTap, maxDelay, maxDistance, enabled = true } = options;
|
|
9
|
+
return (0, react_1.useMemo)(() => {
|
|
10
|
+
let g = react_native_gesture_handler_1.Gesture.Tap().numberOfTaps(4);
|
|
11
|
+
if (maxDelay !== undefined)
|
|
12
|
+
g = g.maxDuration(maxDelay);
|
|
13
|
+
if (maxDistance !== undefined)
|
|
14
|
+
g = g.maxDistance(maxDistance);
|
|
15
|
+
g = g.onEnd((e) => {
|
|
16
|
+
const event = { absoluteX: e.absoluteX, absoluteY: e.absoluteY, x: e.x, y: e.y, numberOfTaps: 4 };
|
|
17
|
+
onQuadTap(event);
|
|
18
|
+
});
|
|
19
|
+
return g.enabled(enabled);
|
|
20
|
+
}, [onQuadTap, maxDelay, maxDistance, enabled]);
|
|
21
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useTap = useTap;
|
|
4
|
+
/** useTap — Hook that returns a configured Tap gesture. */
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const react_native_gesture_handler_1 = require("react-native-gesture-handler");
|
|
7
|
+
function useTap(options) {
|
|
8
|
+
const { onTap, numberOfTaps = 1, maxDuration, maxDistance, enabled = true } = options;
|
|
9
|
+
return (0, react_1.useMemo)(() => {
|
|
10
|
+
let g = react_native_gesture_handler_1.Gesture.Tap().numberOfTaps(numberOfTaps);
|
|
11
|
+
if (maxDuration !== undefined)
|
|
12
|
+
g = g.maxDuration(maxDuration);
|
|
13
|
+
if (maxDistance !== undefined)
|
|
14
|
+
g = g.maxDistance(maxDistance);
|
|
15
|
+
g = g.onEnd((e) => {
|
|
16
|
+
const event = { absoluteX: e.absoluteX, absoluteY: e.absoluteY, x: e.x, y: e.y, numberOfTaps };
|
|
17
|
+
onTap(event);
|
|
18
|
+
});
|
|
19
|
+
return g.enabled(enabled);
|
|
20
|
+
}, [onTap, numberOfTaps, maxDuration, maxDistance, enabled]);
|
|
21
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import type { UseTapAndHoldOptions } from 'gesture-kit-core';
|
|
2
|
+
export declare function useTapAndHold(options: UseTapAndHoldOptions): import("react-native-gesture-handler/lib/typescript/handlers/gestures/longPressGesture").LongPressGesture | import("react-native-gesture-handler/lib/typescript/handlers/gestures/gestureComposition").ExclusiveGesture;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useTapAndHold = useTapAndHold;
|
|
4
|
+
/** useTapAndHold — Hook for tap then hold gesture. */
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const react_native_gesture_handler_1 = require("react-native-gesture-handler");
|
|
7
|
+
function useTapAndHold(options) {
|
|
8
|
+
const { onTapAndHold, onTap, holdDuration = 500, enabled = true } = options;
|
|
9
|
+
return (0, react_1.useMemo)(() => {
|
|
10
|
+
const holdGesture = react_native_gesture_handler_1.Gesture.LongPress()
|
|
11
|
+
.minDuration(holdDuration)
|
|
12
|
+
.onEnd((e) => {
|
|
13
|
+
const event = { absoluteX: e.absoluteX, absoluteY: e.absoluteY, x: e.x, y: e.y, duration: e.duration };
|
|
14
|
+
onTapAndHold(event);
|
|
15
|
+
})
|
|
16
|
+
.enabled(enabled);
|
|
17
|
+
if (onTap) {
|
|
18
|
+
const tapGesture = react_native_gesture_handler_1.Gesture.Tap()
|
|
19
|
+
.onEnd((e) => {
|
|
20
|
+
const event = { absoluteX: e.absoluteX, absoluteY: e.absoluteY, x: e.x, y: e.y, numberOfTaps: 1 };
|
|
21
|
+
onTap(event);
|
|
22
|
+
})
|
|
23
|
+
.enabled(enabled);
|
|
24
|
+
return react_native_gesture_handler_1.Gesture.Exclusive(holdGesture, tapGesture);
|
|
25
|
+
}
|
|
26
|
+
return holdGesture;
|
|
27
|
+
}, [onTapAndHold, onTap, holdDuration, enabled]);
|
|
28
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useTapCancel = useTapCancel;
|
|
4
|
+
/** useTapCancel — Hook for detecting cancelled taps. */
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const react_native_gesture_handler_1 = require("react-native-gesture-handler");
|
|
7
|
+
function useTapCancel(options) {
|
|
8
|
+
const { onTapCancel, onTapStart, maxDuration, enabled = true } = options;
|
|
9
|
+
return (0, react_1.useMemo)(() => {
|
|
10
|
+
let g = react_native_gesture_handler_1.Gesture.Tap();
|
|
11
|
+
if (maxDuration !== undefined)
|
|
12
|
+
g = g.maxDuration(maxDuration);
|
|
13
|
+
if (onTapStart) {
|
|
14
|
+
g = g.onBegin((e) => {
|
|
15
|
+
const event = { absoluteX: e.absoluteX, absoluteY: e.absoluteY, x: e.x, y: e.y };
|
|
16
|
+
onTapStart(event);
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
g = g.onTouchesCancelled(() => {
|
|
20
|
+
onTapCancel({ absoluteX: 0, absoluteY: 0, x: 0, y: 0 });
|
|
21
|
+
});
|
|
22
|
+
return g.enabled(enabled);
|
|
23
|
+
}, [onTapCancel, onTapStart, maxDuration, enabled]);
|
|
24
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useTripleTap = useTripleTap;
|
|
4
|
+
/** useTripleTap — Hook that returns a configured TripleTap gesture. */
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const react_native_gesture_handler_1 = require("react-native-gesture-handler");
|
|
7
|
+
function useTripleTap(options) {
|
|
8
|
+
const { onTripleTap, maxDelay, maxDistance, enabled = true } = options;
|
|
9
|
+
return (0, react_1.useMemo)(() => {
|
|
10
|
+
let g = react_native_gesture_handler_1.Gesture.Tap().numberOfTaps(3);
|
|
11
|
+
if (maxDelay !== undefined)
|
|
12
|
+
g = g.maxDuration(maxDelay);
|
|
13
|
+
if (maxDistance !== undefined)
|
|
14
|
+
g = g.maxDistance(maxDistance);
|
|
15
|
+
g = g.onEnd((e) => {
|
|
16
|
+
const event = { absoluteX: e.absoluteX, absoluteY: e.absoluteY, x: e.x, y: e.y, numberOfTaps: 3 };
|
|
17
|
+
onTripleTap(event);
|
|
18
|
+
});
|
|
19
|
+
return g.enabled(enabled);
|
|
20
|
+
}, [onTripleTap, maxDelay, maxDistance, enabled]);
|
|
21
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useVeryLongPress = useVeryLongPress;
|
|
4
|
+
/** useVeryLongPress — Hook for very long press (default 1500ms). */
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const react_native_gesture_handler_1 = require("react-native-gesture-handler");
|
|
7
|
+
function useVeryLongPress(options) {
|
|
8
|
+
const { onVeryLongPress, onPressIn, onPressOut, minDuration = 1500, maxDistance, enabled = true } = options;
|
|
9
|
+
return (0, react_1.useMemo)(() => {
|
|
10
|
+
let g = react_native_gesture_handler_1.Gesture.LongPress().minDuration(minDuration);
|
|
11
|
+
if (maxDistance !== undefined)
|
|
12
|
+
g = g.maxDistance(maxDistance);
|
|
13
|
+
if (onPressIn) {
|
|
14
|
+
g = g.onStart((e) => {
|
|
15
|
+
const event = { absoluteX: e.absoluteX, absoluteY: e.absoluteY, x: e.x, y: e.y, duration: e.duration };
|
|
16
|
+
onPressIn(event);
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
g = g.onEnd((e) => {
|
|
20
|
+
const event = { absoluteX: e.absoluteX, absoluteY: e.absoluteY, x: e.x, y: e.y, duration: e.duration };
|
|
21
|
+
onVeryLongPress(event);
|
|
22
|
+
});
|
|
23
|
+
if (onPressOut) {
|
|
24
|
+
g = g.onFinalize((e) => {
|
|
25
|
+
const event = { absoluteX: e.absoluteX, absoluteY: e.absoluteY, x: e.x, y: e.y, duration: e.duration };
|
|
26
|
+
onPressOut(event);
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
return g.enabled(enabled);
|
|
30
|
+
}, [onVeryLongPress, onPressIn, onPressOut, minDuration, maxDistance, enabled]);
|
|
31
|
+
}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from './types';
|
|
2
|
+
export { TapGesture } from './TapGesture';
|
|
3
|
+
export { DoubleTapGesture } from './DoubleTapGesture';
|
|
4
|
+
export { TripleTapGesture } from './TripleTapGesture';
|
|
5
|
+
export { QuadTapGesture } from './QuadTapGesture';
|
|
6
|
+
export { LongPressGesture } from './LongPressGesture';
|
|
7
|
+
export { VeryLongPressGesture } from './VeryLongPressGesture';
|
|
8
|
+
export { TapAndHoldGesture } from './TapAndHoldGesture';
|
|
9
|
+
export { TapCancelGesture } from './TapCancelGesture';
|
|
10
|
+
export { PressForceGesture } from './PressForceGesture';
|
|
11
|
+
export * from './hooks';
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.PressForceGesture = exports.TapCancelGesture = exports.TapAndHoldGesture = exports.VeryLongPressGesture = exports.LongPressGesture = exports.QuadTapGesture = exports.TripleTapGesture = exports.DoubleTapGesture = exports.TapGesture = void 0;
|
|
18
|
+
// Basic Touch Gestures
|
|
19
|
+
__exportStar(require("./types"), exports);
|
|
20
|
+
// Components
|
|
21
|
+
var TapGesture_1 = require("./TapGesture");
|
|
22
|
+
Object.defineProperty(exports, "TapGesture", { enumerable: true, get: function () { return TapGesture_1.TapGesture; } });
|
|
23
|
+
var DoubleTapGesture_1 = require("./DoubleTapGesture");
|
|
24
|
+
Object.defineProperty(exports, "DoubleTapGesture", { enumerable: true, get: function () { return DoubleTapGesture_1.DoubleTapGesture; } });
|
|
25
|
+
var TripleTapGesture_1 = require("./TripleTapGesture");
|
|
26
|
+
Object.defineProperty(exports, "TripleTapGesture", { enumerable: true, get: function () { return TripleTapGesture_1.TripleTapGesture; } });
|
|
27
|
+
var QuadTapGesture_1 = require("./QuadTapGesture");
|
|
28
|
+
Object.defineProperty(exports, "QuadTapGesture", { enumerable: true, get: function () { return QuadTapGesture_1.QuadTapGesture; } });
|
|
29
|
+
var LongPressGesture_1 = require("./LongPressGesture");
|
|
30
|
+
Object.defineProperty(exports, "LongPressGesture", { enumerable: true, get: function () { return LongPressGesture_1.LongPressGesture; } });
|
|
31
|
+
var VeryLongPressGesture_1 = require("./VeryLongPressGesture");
|
|
32
|
+
Object.defineProperty(exports, "VeryLongPressGesture", { enumerable: true, get: function () { return VeryLongPressGesture_1.VeryLongPressGesture; } });
|
|
33
|
+
var TapAndHoldGesture_1 = require("./TapAndHoldGesture");
|
|
34
|
+
Object.defineProperty(exports, "TapAndHoldGesture", { enumerable: true, get: function () { return TapAndHoldGesture_1.TapAndHoldGesture; } });
|
|
35
|
+
var TapCancelGesture_1 = require("./TapCancelGesture");
|
|
36
|
+
Object.defineProperty(exports, "TapCancelGesture", { enumerable: true, get: function () { return TapCancelGesture_1.TapCancelGesture; } });
|
|
37
|
+
var PressForceGesture_1 = require("./PressForceGesture");
|
|
38
|
+
Object.defineProperty(exports, "PressForceGesture", { enumerable: true, get: function () { return PressForceGesture_1.PressForceGesture; } });
|
|
39
|
+
// Hooks
|
|
40
|
+
__exportStar(require("./hooks"), exports);
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Types for Basic Touch gestures.
|
|
3
|
+
*/
|
|
4
|
+
import type { BaseGestureEvent, BaseGestureProps, TapEvent, LongPressEvent } from 'gesture-kit-core';
|
|
5
|
+
export interface PressForceEvent extends BaseGestureEvent {
|
|
6
|
+
force: number;
|
|
7
|
+
}
|
|
8
|
+
export interface TapProps extends BaseGestureProps {
|
|
9
|
+
onTap: (event: TapEvent) => void;
|
|
10
|
+
numberOfTaps?: number;
|
|
11
|
+
maxDuration?: number;
|
|
12
|
+
maxDistance?: number;
|
|
13
|
+
}
|
|
14
|
+
export interface DoubleTapProps extends BaseGestureProps {
|
|
15
|
+
onDoubleTap: (event: TapEvent) => void;
|
|
16
|
+
maxDelay?: number;
|
|
17
|
+
maxDistance?: number;
|
|
18
|
+
}
|
|
19
|
+
export interface TripleTapProps extends BaseGestureProps {
|
|
20
|
+
onTripleTap: (event: TapEvent) => void;
|
|
21
|
+
maxDelay?: number;
|
|
22
|
+
maxDistance?: number;
|
|
23
|
+
}
|
|
24
|
+
export interface QuadTapProps extends BaseGestureProps {
|
|
25
|
+
onQuadTap: (event: TapEvent) => void;
|
|
26
|
+
maxDelay?: number;
|
|
27
|
+
maxDistance?: number;
|
|
28
|
+
}
|
|
29
|
+
export interface LongPressProps extends BaseGestureProps {
|
|
30
|
+
onLongPress: (event: LongPressEvent) => void;
|
|
31
|
+
onPressIn?: (event: LongPressEvent) => void;
|
|
32
|
+
onPressOut?: (event: LongPressEvent) => void;
|
|
33
|
+
minDuration?: number;
|
|
34
|
+
maxDistance?: number;
|
|
35
|
+
}
|
|
36
|
+
export interface VeryLongPressProps extends BaseGestureProps {
|
|
37
|
+
onVeryLongPress: (event: LongPressEvent) => void;
|
|
38
|
+
onPressIn?: (event: LongPressEvent) => void;
|
|
39
|
+
onPressOut?: (event: LongPressEvent) => void;
|
|
40
|
+
minDuration?: number;
|
|
41
|
+
maxDistance?: number;
|
|
42
|
+
}
|
|
43
|
+
export interface TapAndHoldProps extends BaseGestureProps {
|
|
44
|
+
onTapAndHold: (event: LongPressEvent) => void;
|
|
45
|
+
onTap?: (event: TapEvent) => void;
|
|
46
|
+
holdDuration?: number;
|
|
47
|
+
}
|
|
48
|
+
export interface TapCancelProps extends BaseGestureProps {
|
|
49
|
+
onTapCancel: (event: BaseGestureEvent) => void;
|
|
50
|
+
onTapStart?: (event: BaseGestureEvent) => void;
|
|
51
|
+
maxDuration?: number;
|
|
52
|
+
}
|
|
53
|
+
export interface PressForceProps extends BaseGestureProps {
|
|
54
|
+
onPressForce: (event: PressForceEvent) => void;
|
|
55
|
+
forceThreshold?: number;
|
|
56
|
+
}
|
|
57
|
+
export interface UseTripleTapOptions {
|
|
58
|
+
onTripleTap: (event: TapEvent) => void;
|
|
59
|
+
maxDelay?: number;
|
|
60
|
+
maxDistance?: number;
|
|
61
|
+
enabled?: boolean;
|
|
62
|
+
}
|
|
63
|
+
export interface UseQuadTapOptions {
|
|
64
|
+
onQuadTap: (event: TapEvent) => void;
|
|
65
|
+
maxDelay?: number;
|
|
66
|
+
maxDistance?: number;
|
|
67
|
+
enabled?: boolean;
|
|
68
|
+
}
|
|
69
|
+
export interface UseVeryLongPressOptions {
|
|
70
|
+
onVeryLongPress: (event: LongPressEvent) => void;
|
|
71
|
+
onPressIn?: (event: LongPressEvent) => void;
|
|
72
|
+
onPressOut?: (event: LongPressEvent) => void;
|
|
73
|
+
minDuration?: number;
|
|
74
|
+
maxDistance?: number;
|
|
75
|
+
enabled?: boolean;
|
|
76
|
+
}
|
|
77
|
+
export interface UseTapAndHoldOptions {
|
|
78
|
+
onTapAndHold: (event: LongPressEvent) => void;
|
|
79
|
+
onTap?: (event: TapEvent) => void;
|
|
80
|
+
holdDuration?: number;
|
|
81
|
+
enabled?: boolean;
|
|
82
|
+
}
|
|
83
|
+
export interface UseTapCancelOptions {
|
|
84
|
+
onTapCancel: (event: BaseGestureEvent) => void;
|
|
85
|
+
onTapStart?: (event: BaseGestureEvent) => void;
|
|
86
|
+
maxDuration?: number;
|
|
87
|
+
enabled?: boolean;
|
|
88
|
+
}
|
|
89
|
+
export interface UsePressForceOptions {
|
|
90
|
+
onPressForce: (event: PressForceEvent) => void;
|
|
91
|
+
forceThreshold?: number;
|
|
92
|
+
enabled?: boolean;
|
|
93
|
+
}
|
package/dist/types.js
ADDED
package/package.json
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "gesture-kit-basic-touch",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Basic touch gestures: tap, double-tap, long-press, and more",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"files": ["dist", "README.md"],
|
|
8
|
+
"scripts": {
|
|
9
|
+
"build": "tsc",
|
|
10
|
+
"prepare": "npm run build",
|
|
11
|
+
"typecheck": "tsc --noEmit"
|
|
12
|
+
},
|
|
13
|
+
"dependencies": {
|
|
14
|
+
"gesture-kit-core": "^1.0.0"
|
|
15
|
+
},
|
|
16
|
+
"peerDependencies": {
|
|
17
|
+
"react": ">=18.0.0",
|
|
18
|
+
"react-native": ">=0.71.0",
|
|
19
|
+
"react-native-gesture-handler": ">=2.10.0"
|
|
20
|
+
},
|
|
21
|
+
"devDependencies": {
|
|
22
|
+
"@types/react": "^18.2.0",
|
|
23
|
+
"react": "^18.2.0",
|
|
24
|
+
"react-native": "^0.73.11",
|
|
25
|
+
"react-native-gesture-handler": "^2.30.0",
|
|
26
|
+
"typescript": "^5.9.3"
|
|
27
|
+
},
|
|
28
|
+
"keywords": ["react-native", "gesture", "tap", "long-press", "double-tap"],
|
|
29
|
+
"license": "MIT"
|
|
30
|
+
}
|