@react-native-oh-tpl/react-native-gesture-handler 2.12.6-1 → 2.12.9-1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (211) hide show
  1. package/harmony/gesture_handler/BuildProfile.ets +6 -0
  2. package/harmony/gesture_handler/build-profile.json5 +18 -7
  3. package/harmony/gesture_handler/hvigorfile.ts +2 -2
  4. package/harmony/gesture_handler/index.ets +3 -3
  5. package/harmony/gesture_handler/oh-package-lock.json5 +18 -0
  6. package/harmony/gesture_handler/oh-package.json5 +12 -11
  7. package/harmony/gesture_handler/src/main/cpp/CMakeLists.txt +8 -8
  8. package/harmony/gesture_handler/src/main/cpp/GestureHandlerPackage.cpp +103 -34
  9. package/harmony/gesture_handler/src/main/cpp/GestureHandlerPackage.h +21 -15
  10. package/harmony/gesture_handler/src/main/cpp/RNGestureHandlerButtonComponentDescriptor.h +36 -60
  11. package/harmony/gesture_handler/src/main/cpp/RNGestureHandlerButtonComponentInstance.h +27 -0
  12. package/harmony/gesture_handler/src/main/cpp/RNGestureHandlerButtonJSIBinder.h +32 -0
  13. package/harmony/gesture_handler/src/main/cpp/RNGestureHandlerModule.cpp +22 -17
  14. package/harmony/gesture_handler/src/main/cpp/RNGestureHandlerModule.h +15 -12
  15. package/harmony/gesture_handler/src/main/cpp/RNGestureHandlerPackage.h +72 -0
  16. package/harmony/gesture_handler/src/main/cpp/RNGestureHandlerRootViewComponentDescriptor.h +36 -60
  17. package/harmony/gesture_handler/src/main/cpp/RNGestureHandlerRootViewComponentInstance.h +123 -0
  18. package/harmony/gesture_handler/src/main/cpp/RNGestureHandlerRootViewJSIBinder.h +25 -0
  19. package/harmony/gesture_handler/src/main/ets/CircularBuffer.ts +42 -42
  20. package/harmony/gesture_handler/src/main/ets/Event.ts +67 -67
  21. package/harmony/gesture_handler/src/main/ets/EventDispatcher.ts +52 -37
  22. package/harmony/gesture_handler/src/main/ets/GestureHandler.ts +663 -663
  23. package/harmony/gesture_handler/src/main/ets/{GestureHandlerArkUIAdapter.ets → GestureHandlerArkUIAdapter.ts} +202 -201
  24. package/harmony/gesture_handler/src/main/ets/GestureHandlerFactory.ts +44 -44
  25. package/harmony/gesture_handler/src/main/ets/GestureHandlerOrchestrator.ts +280 -280
  26. package/harmony/gesture_handler/src/main/ets/GestureHandlerPackage.ts +22 -22
  27. package/harmony/gesture_handler/src/main/ets/GestureHandlerRegistry.ts +27 -27
  28. package/harmony/gesture_handler/src/main/ets/InteractionManager.ts +108 -108
  29. package/harmony/gesture_handler/src/main/ets/LeastSquareSolver.ts +182 -182
  30. package/harmony/gesture_handler/src/main/ets/NativeViewGestureHandler.ts +114 -114
  31. package/harmony/gesture_handler/src/main/ets/OutgoingEvent.ts +33 -33
  32. package/harmony/gesture_handler/src/main/ets/PanGestureHandler.ts +327 -327
  33. package/harmony/gesture_handler/src/main/ets/PointerTracker.ts +239 -239
  34. package/harmony/gesture_handler/src/main/ets/RNGHError.ts +4 -4
  35. package/harmony/gesture_handler/src/main/ets/RNGHLogger.ts +47 -28
  36. package/harmony/gesture_handler/src/main/ets/{RNGHRootTouchHandler.ets → RNGHRootTouchHandlerArkTS.ts} +59 -57
  37. package/harmony/gesture_handler/src/main/ets/RNGHRootTouchHandlerCAPI.ts +87 -0
  38. package/harmony/gesture_handler/src/main/ets/RNGestureHandlerButton.ets +37 -36
  39. package/harmony/gesture_handler/src/main/ets/RNGestureHandlerModule.ts +183 -125
  40. package/harmony/gesture_handler/src/main/ets/RNGestureHandlerRootView.ets +52 -55
  41. package/harmony/gesture_handler/src/main/ets/RNOHScrollLocker.ts +23 -11
  42. package/harmony/gesture_handler/src/main/ets/State.ts +46 -46
  43. package/harmony/gesture_handler/src/main/ets/TapGestureHandler.ts +205 -205
  44. package/harmony/gesture_handler/src/main/ets/Vector2D.ts +36 -36
  45. package/harmony/gesture_handler/src/main/ets/VelocityTracker.ts +98 -98
  46. package/harmony/gesture_handler/src/main/ets/View.ts +70 -70
  47. package/harmony/gesture_handler/src/main/ets/ViewRegistry.ts +42 -42
  48. package/harmony/gesture_handler/src/main/ets/namespace/RNGestureHandlerButton.ts +140 -0
  49. package/harmony/gesture_handler/src/main/ets/namespace/RNGestureHandlerModule.ts +25 -0
  50. package/harmony/gesture_handler/src/main/ets/namespace/RNGestureHandlerRootView.ts +101 -0
  51. package/harmony/gesture_handler/src/main/ets/namespace/ts.ts +3 -0
  52. package/harmony/gesture_handler/src/main/ets/pages/Index.ets +16 -16
  53. package/harmony/gesture_handler/src/main/ets/types.ts +25 -0
  54. package/harmony/gesture_handler/src/main/ets/webviewability/WebviewAbility.ts +41 -41
  55. package/harmony/gesture_handler/src/main/module.json5 +7 -7
  56. package/harmony/gesture_handler/src/main/resources/base/element/color.json +7 -7
  57. package/harmony/gesture_handler/src/main/resources/base/element/string.json +15 -15
  58. package/harmony/gesture_handler/src/main/resources/base/profile/main_pages.json +5 -5
  59. package/harmony/gesture_handler/src/main/resources/en_US/element/string.json +15 -15
  60. package/harmony/gesture_handler/src/main/resources/zh_CN/element/string.json +15 -15
  61. package/harmony/gesture_handler/ts.ts +2 -1
  62. package/harmony/gesture_handler.har +0 -0
  63. package/lib/commonjs/RNGestureHandlerModule.js +6 -3
  64. package/lib/commonjs/RNGestureHandlerModule.js.map +1 -1
  65. package/lib/commonjs/components/GestureHandlerRootView.js +5 -13
  66. package/lib/commonjs/components/GestureHandlerRootView.js.map +1 -1
  67. package/lib/commonjs/handlers/createHandler.js +31 -28
  68. package/lib/commonjs/handlers/createHandler.js.map +1 -1
  69. package/lib/commonjs/index.js +42 -19
  70. package/lib/commonjs/index.js.map +1 -1
  71. package/lib/commonjs/specs/NativeRNGestureHandlerModule.js +10 -0
  72. package/lib/commonjs/specs/NativeRNGestureHandlerModule.js.map +1 -0
  73. package/lib/commonjs/specs/RNGestureHandlerButtonNativeComponent.js +11 -0
  74. package/lib/commonjs/specs/RNGestureHandlerButtonNativeComponent.js.map +1 -0
  75. package/lib/commonjs/specs/RNGestureHandlerRootViewNativeComponent.js +11 -0
  76. package/lib/commonjs/specs/RNGestureHandlerRootViewNativeComponent.js.map +1 -0
  77. package/lib/module/RNGestureHandlerModule.js +3 -2
  78. package/lib/module/RNGestureHandlerModule.js.map +1 -1
  79. package/lib/module/components/GestureHandlerRootView.js +3 -11
  80. package/lib/module/components/GestureHandlerRootView.js.map +1 -1
  81. package/lib/module/handlers/createHandler.js +20 -19
  82. package/lib/module/handlers/createHandler.js.map +1 -1
  83. package/lib/module/index.js +6 -14
  84. package/lib/module/index.js.map +1 -1
  85. package/lib/module/specs/NativeRNGestureHandlerModule.js +3 -0
  86. package/lib/module/specs/NativeRNGestureHandlerModule.js.map +1 -0
  87. package/lib/module/specs/RNGestureHandlerButtonNativeComponent.js +3 -0
  88. package/lib/module/specs/RNGestureHandlerButtonNativeComponent.js.map +1 -0
  89. package/lib/module/specs/RNGestureHandlerRootViewNativeComponent.js +3 -0
  90. package/lib/module/specs/RNGestureHandlerRootViewNativeComponent.js.map +1 -0
  91. package/lib/typescript/RNGestureHandlerModule.d.ts +2 -6
  92. package/lib/typescript/RNGestureHandlerModule.d.ts.map +1 -1
  93. package/lib/typescript/components/GestureHandlerRootView.d.ts +6 -6
  94. package/lib/typescript/components/GestureHandlerRootView.d.ts.map +1 -1
  95. package/lib/typescript/handlers/createHandler.d.ts +11 -11
  96. package/lib/typescript/handlers/createHandler.d.ts.map +1 -1
  97. package/lib/typescript/index.d.ts +9 -8
  98. package/lib/typescript/index.d.ts.map +1 -1
  99. package/lib/typescript/specs/NativeRNGestureHandlerModule.d.ts +15 -0
  100. package/lib/typescript/specs/NativeRNGestureHandlerModule.d.ts.map +1 -0
  101. package/lib/typescript/specs/RNGestureHandlerButtonNativeComponent.d.ts +15 -0
  102. package/lib/typescript/specs/RNGestureHandlerButtonNativeComponent.d.ts.map +1 -0
  103. package/lib/typescript/specs/RNGestureHandlerRootViewNativeComponent.d.ts +7 -0
  104. package/lib/typescript/specs/RNGestureHandlerRootViewNativeComponent.d.ts.map +1 -0
  105. package/package.json +66 -70
  106. package/src/RNGestureHandlerModule.ts +5 -6
  107. package/src/components/GestureHandlerRootView.tsx +23 -34
  108. package/src/handlers/createHandler.tsx +534 -535
  109. package/src/index.ts +172 -172
  110. package/src/specs/NativeRNGestureHandlerModule.ts +26 -0
  111. package/src/specs/RNGestureHandlerButtonNativeComponent.ts +18 -0
  112. package/src/specs/RNGestureHandlerRootViewNativeComponent.ts +6 -0
  113. package/README.md +0 -1
  114. package/lib/commonjs/components/GestureButtons.js +0 -186
  115. package/lib/commonjs/components/GestureButtons.js.map +0 -1
  116. package/lib/commonjs/components/GestureHandlerButton.js +0 -9
  117. package/lib/commonjs/components/GestureHandlerButton.js.map +0 -1
  118. package/lib/commonjs/components/RNGestureHandlerButton.js +0 -23
  119. package/lib/commonjs/components/RNGestureHandlerButton.js.map +0 -1
  120. package/lib/commonjs/components/touchables/GenericTouchable.js +0 -247
  121. package/lib/commonjs/components/touchables/GenericTouchable.js.map +0 -1
  122. package/lib/commonjs/components/touchables/TouchableOpacity.js +0 -58
  123. package/lib/commonjs/components/touchables/TouchableOpacity.js.map +0 -1
  124. package/lib/commonjs/components/touchables/TouchableWithoutFeedback.js +0 -18
  125. package/lib/commonjs/components/touchables/TouchableWithoutFeedback.js.map +0 -1
  126. package/lib/commonjs/components/touchables/index.js +0 -21
  127. package/lib/commonjs/components/touchables/index.js.map +0 -1
  128. package/lib/commonjs/handlers/NativeViewGestureHandler.js +0 -19
  129. package/lib/commonjs/handlers/NativeViewGestureHandler.js.map +0 -1
  130. package/lib/commonjs/handlers/PanGestureHandler.js +0 -103
  131. package/lib/commonjs/handlers/PanGestureHandler.js.map +0 -1
  132. package/lib/commonjs/handlers/TapGestureHandler.js +0 -22
  133. package/lib/commonjs/handlers/TapGestureHandler.js.map +0 -1
  134. package/lib/commonjs/handlers/createNativeWrapper.js +0 -64
  135. package/lib/commonjs/handlers/createNativeWrapper.js.map +0 -1
  136. package/lib/commonjs/handlers/gestureHandlerCommon.js +0 -22
  137. package/lib/commonjs/handlers/gestureHandlerCommon.js.map +0 -1
  138. package/lib/commonjs/handlers/gestures/GestureDetector.js +0 -554
  139. package/lib/commonjs/handlers/gestures/GestureDetector.js.map +0 -1
  140. package/lib/commonjs/init.js +0 -24
  141. package/lib/commonjs/init.js.map +0 -1
  142. package/lib/module/components/GestureButtons.js +0 -168
  143. package/lib/module/components/GestureButtons.js.map +0 -1
  144. package/lib/module/components/GestureHandlerButton.js +0 -3
  145. package/lib/module/components/GestureHandlerButton.js.map +0 -1
  146. package/lib/module/components/RNGestureHandlerButton.js +0 -17
  147. package/lib/module/components/RNGestureHandlerButton.js.map +0 -1
  148. package/lib/module/components/touchables/GenericTouchable.js +0 -238
  149. package/lib/module/components/touchables/GenericTouchable.js.map +0 -1
  150. package/lib/module/components/touchables/TouchableOpacity.js +0 -49
  151. package/lib/module/components/touchables/TouchableOpacity.js.map +0 -1
  152. package/lib/module/components/touchables/TouchableWithoutFeedback.js +0 -9
  153. package/lib/module/components/touchables/TouchableWithoutFeedback.js.map +0 -1
  154. package/lib/module/components/touchables/index.js +0 -8
  155. package/lib/module/components/touchables/index.js.map +0 -1
  156. package/lib/module/handlers/NativeViewGestureHandler.js +0 -12
  157. package/lib/module/handlers/NativeViewGestureHandler.js.map +0 -1
  158. package/lib/module/handlers/PanGestureHandler.js +0 -92
  159. package/lib/module/handlers/PanGestureHandler.js.map +0 -1
  160. package/lib/module/handlers/TapGestureHandler.js +0 -14
  161. package/lib/module/handlers/TapGestureHandler.js.map +0 -1
  162. package/lib/module/handlers/createNativeWrapper.js +0 -57
  163. package/lib/module/handlers/createNativeWrapper.js.map +0 -1
  164. package/lib/module/handlers/gestureHandlerCommon.js +0 -15
  165. package/lib/module/handlers/gestureHandlerCommon.js.map +0 -1
  166. package/lib/module/handlers/gestures/GestureDetector.js +0 -543
  167. package/lib/module/handlers/gestures/GestureDetector.js.map +0 -1
  168. package/lib/module/init.js +0 -17
  169. package/lib/module/init.js.map +0 -1
  170. package/lib/typescript/components/GestureButtons.d.ts +0 -122
  171. package/lib/typescript/components/GestureButtons.d.ts.map +0 -1
  172. package/lib/typescript/components/GestureHandlerButton.d.ts +0 -5
  173. package/lib/typescript/components/GestureHandlerButton.d.ts.map +0 -1
  174. package/lib/typescript/components/RNGestureHandlerButton.d.ts +0 -2
  175. package/lib/typescript/components/RNGestureHandlerButton.d.ts.map +0 -1
  176. package/lib/typescript/components/touchables/GenericTouchable.d.ts +0 -68
  177. package/lib/typescript/components/touchables/GenericTouchable.d.ts.map +0 -1
  178. package/lib/typescript/components/touchables/TouchableOpacity.d.ts +0 -26
  179. package/lib/typescript/components/touchables/TouchableOpacity.d.ts.map +0 -1
  180. package/lib/typescript/components/touchables/TouchableWithoutFeedback.d.ts +0 -8
  181. package/lib/typescript/components/touchables/TouchableWithoutFeedback.d.ts.map +0 -1
  182. package/lib/typescript/components/touchables/index.d.ts +0 -4
  183. package/lib/typescript/components/touchables/index.d.ts.map +0 -1
  184. package/lib/typescript/handlers/NativeViewGestureHandler.d.ts +0 -29
  185. package/lib/typescript/handlers/NativeViewGestureHandler.d.ts.map +0 -1
  186. package/lib/typescript/handlers/PanGestureHandler.d.ts +0 -140
  187. package/lib/typescript/handlers/PanGestureHandler.d.ts.map +0 -1
  188. package/lib/typescript/handlers/TapGestureHandler.d.ts +0 -58
  189. package/lib/typescript/handlers/TapGestureHandler.d.ts.map +0 -1
  190. package/lib/typescript/handlers/createNativeWrapper.d.ts +0 -4
  191. package/lib/typescript/handlers/createNativeWrapper.d.ts.map +0 -1
  192. package/lib/typescript/handlers/gestureHandlerCommon.d.ts +0 -2
  193. package/lib/typescript/handlers/gestureHandlerCommon.d.ts.map +0 -1
  194. package/lib/typescript/handlers/gestures/GestureDetector.d.ts +0 -24
  195. package/lib/typescript/handlers/gestures/GestureDetector.d.ts.map +0 -1
  196. package/lib/typescript/init.d.ts +0 -3
  197. package/lib/typescript/init.d.ts.map +0 -1
  198. package/src/components/GestureButtons.tsx +0 -334
  199. package/src/components/GestureHandlerButton.tsx +0 -5
  200. package/src/components/RNGestureHandlerButton.tsx +0 -23
  201. package/src/components/touchables/GenericTouchable.tsx +0 -301
  202. package/src/components/touchables/TouchableOpacity.tsx +0 -76
  203. package/src/components/touchables/TouchableWithoutFeedback.tsx +0 -14
  204. package/src/components/touchables/index.ts +0 -7
  205. package/src/handlers/NativeViewGestureHandler.ts +0 -55
  206. package/src/handlers/PanGestureHandler.ts +0 -327
  207. package/src/handlers/TapGestureHandler.ts +0 -95
  208. package/src/handlers/createNativeWrapper.tsx +0 -81
  209. package/src/handlers/gestureHandlerCommon.ts +0 -15
  210. package/src/handlers/gestures/GestureDetector.tsx +0 -823
  211. package/src/init.ts +0 -18
@@ -1,76 +0,0 @@
1
- import {
2
- Animated,
3
- Easing,
4
- StyleSheet,
5
- View,
6
- TouchableOpacityProps as RNTouchableOpacityProps,
7
- } from 'react-native';
8
- import GenericTouchable, {
9
- TOUCHABLE_STATE,
10
- GenericTouchableProps,
11
- } from './GenericTouchable';
12
- import * as React from 'react';
13
- import { Component } from 'react';
14
-
15
- export type TouchableOpacityProps = RNTouchableOpacityProps &
16
- GenericTouchableProps & {
17
- useNativeAnimations?: boolean;
18
- };
19
-
20
- /**
21
- * TouchableOpacity bases on timing animation which has been used in RN's core
22
- */
23
- export default class TouchableOpacity extends Component<TouchableOpacityProps> {
24
- static defaultProps = {
25
- ...GenericTouchable.defaultProps,
26
- activeOpacity: 0.2,
27
- };
28
-
29
- // opacity is 1 one by default but could be overwritten
30
- getChildStyleOpacityWithDefault = () => {
31
- const childStyle = StyleSheet.flatten(this.props.style) || {};
32
- return childStyle.opacity == null
33
- ? 1
34
- : (childStyle.opacity.valueOf() as number);
35
- };
36
-
37
- opacity = new Animated.Value(this.getChildStyleOpacityWithDefault());
38
-
39
- setOpacityTo = (value: number, duration: number) => {
40
- Animated.timing(this.opacity, {
41
- toValue: value,
42
- duration: duration,
43
- easing: Easing.inOut(Easing.quad),
44
- useNativeDriver: this.props.useNativeAnimations ?? true,
45
- }).start();
46
- };
47
-
48
- onStateChange = (_from: number, to: number) => {
49
- if (to === TOUCHABLE_STATE.BEGAN) {
50
- this.setOpacityTo(this.props.activeOpacity!, 0);
51
- } else if (
52
- to === TOUCHABLE_STATE.UNDETERMINED ||
53
- to === TOUCHABLE_STATE.MOVED_OUTSIDE
54
- ) {
55
- this.setOpacityTo(this.getChildStyleOpacityWithDefault(), 150);
56
- }
57
- };
58
-
59
- render() {
60
- const { style = {}, ...rest } = this.props;
61
- return (
62
- <GenericTouchable
63
- {...rest}
64
- style={[
65
- style,
66
- {
67
- opacity: this.opacity as unknown as number, // TODO: fix this
68
- },
69
- ]}
70
- onStateChange={this.onStateChange}
71
- >
72
- {this.props.children ? this.props.children : <View />}
73
- </GenericTouchable>
74
- );
75
- }
76
- }
@@ -1,14 +0,0 @@
1
- import * as React from 'react';
2
- import { PropsWithChildren } from 'react';
3
- import GenericTouchable, { GenericTouchableProps } from './GenericTouchable';
4
-
5
- export type TouchableWithoutFeedbackProps = GenericTouchable;
6
-
7
- const TouchableWithoutFeedback = React.forwardRef<
8
- TouchableWithoutFeedbackProps,
9
- PropsWithChildren<GenericTouchableProps>
10
- >((props, ref) => <GenericTouchable ref={ref} {...props} />);
11
-
12
- TouchableWithoutFeedback.defaultProps = GenericTouchable.defaultProps;
13
-
14
- export default TouchableWithoutFeedback;
@@ -1,7 +0,0 @@
1
- // export type { TouchableHighlightProps } from './TouchableHighlight';
2
- export type { TouchableOpacityProps } from './TouchableOpacity';
3
- // export type { TouchableWithoutFeedbackProps } from './TouchableWithoutFeedback';
4
- // export { default as TouchableNativeFeedback } from './TouchableNativeFeedback';
5
- export { default as TouchableWithoutFeedback } from './TouchableWithoutFeedback';
6
- export { default as TouchableOpacity } from './TouchableOpacity';
7
- // export { default as TouchableHighlight } from './TouchableHighlight';
@@ -1,55 +0,0 @@
1
- import createHandler from './createHandler';
2
- import {
3
- BaseGestureHandlerProps,
4
- baseGestureHandlerProps,
5
- } from 'react-native-gesture-handler/src/handlers/gestureHandlerCommon';
6
-
7
- export const nativeViewGestureHandlerProps = [
8
- 'shouldActivateOnStart',
9
- 'disallowInterruption',
10
- ] as const;
11
-
12
- export interface NativeViewGestureConfig {
13
- /**
14
- * Android only.
15
- *
16
- * Determines whether the handler should check for an existing touch event on
17
- * instantiation.
18
- */
19
- shouldActivateOnStart?: boolean;
20
-
21
- /**
22
- * When `true`, cancels all other gesture handlers when this
23
- * `NativeViewGestureHandler` receives an `ACTIVE` state event.
24
- */
25
- disallowInterruption?: boolean;
26
- }
27
-
28
- export interface NativeViewGestureHandlerProps
29
- extends BaseGestureHandlerProps<NativeViewGestureHandlerPayload>,
30
- NativeViewGestureConfig {}
31
-
32
- export type NativeViewGestureHandlerPayload = {
33
- /**
34
- * True if gesture was performed inside of containing view, false otherwise.
35
- */
36
- pointerInside: boolean;
37
- };
38
-
39
- export const nativeViewProps = [
40
- ...baseGestureHandlerProps,
41
- ...nativeViewGestureHandlerProps,
42
- ] as const;
43
-
44
- export const nativeViewHandlerName = 'NativeViewGestureHandler';
45
-
46
- export type NativeViewGestureHandler = typeof NativeViewGestureHandler;
47
- // eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of gestureHandlerCommon.ts file
48
- export const NativeViewGestureHandler = createHandler<
49
- NativeViewGestureHandlerProps,
50
- NativeViewGestureHandlerPayload
51
- >({
52
- name: nativeViewHandlerName,
53
- allowedProps: nativeViewProps,
54
- config: {},
55
- });
@@ -1,327 +0,0 @@
1
- // RNGH: patching to replace `createHandler`
2
-
3
- import createHandler from './createHandler'; // RNGH: using local create handler
4
- import {
5
- BaseGestureHandlerProps,
6
- baseGestureHandlerProps,
7
- } from 'react-native-gesture-handler/src/handlers/gestureHandlerCommon';
8
-
9
- export const panGestureHandlerProps = [
10
- 'activeOffsetY',
11
- 'activeOffsetX',
12
- 'failOffsetY',
13
- 'failOffsetX',
14
- 'minDist',
15
- 'minVelocity',
16
- 'minVelocityX',
17
- 'minVelocityY',
18
- 'minPointers',
19
- 'maxPointers',
20
- 'avgTouches',
21
- 'enableTrackpadTwoFingerGesture',
22
- 'activateAfterLongPress',
23
- ] as const;
24
-
25
- export const panGestureHandlerCustomNativeProps = [
26
- 'activeOffsetYStart',
27
- 'activeOffsetYEnd',
28
- 'activeOffsetXStart',
29
- 'activeOffsetXEnd',
30
- 'failOffsetYStart',
31
- 'failOffsetYEnd',
32
- 'failOffsetXStart',
33
- 'failOffsetXEnd',
34
- ] as const;
35
-
36
- export type PanGestureHandlerEventPayload = {
37
- /**
38
- * X coordinate of the current position of the pointer (finger or a leading
39
- * pointer when there are multiple fingers placed) relative to the view
40
- * attached to the handler. Expressed in point units.
41
- */
42
- x: number;
43
-
44
- /**
45
- * Y coordinate of the current position of the pointer (finger or a leading
46
- * pointer when there are multiple fingers placed) relative to the view
47
- * attached to the handler. Expressed in point units.
48
- */
49
- y: number;
50
-
51
- /**
52
- * X coordinate of the current position of the pointer (finger or a leading
53
- * pointer when there are multiple fingers placed) relative to the window.
54
- * The value is expressed in point units. It is recommended to use it instead
55
- * of `x` in cases when the original view can be transformed as an effect of
56
- * the gesture.
57
- */
58
- absoluteX: number;
59
-
60
- /**
61
- * Y coordinate of the current position of the pointer (finger or a leading
62
- * pointer when there are multiple fingers placed) relative to the window.
63
- * The value is expressed in point units. It is recommended to use it instead
64
- * of `y` in cases when the original view can be transformed as an
65
- * effect of the gesture.
66
- */
67
- absoluteY: number;
68
-
69
- /**
70
- * Translation of the pan gesture along X axis accumulated over the time of
71
- * the gesture. The value is expressed in the point units.
72
- */
73
- translationX: number;
74
-
75
- /**
76
- * Translation of the pan gesture along Y axis accumulated over the time of
77
- * the gesture. The value is expressed in the point units.
78
- */
79
- translationY: number;
80
-
81
- /**
82
- * Velocity of the pan gesture along the X axis in the current moment. The
83
- * value is expressed in point units per second.
84
- */
85
- velocityX: number;
86
-
87
- /**
88
- * Velocity of the pan gesture along the Y axis in the current moment. The
89
- * value is expressed in point units per second.
90
- */
91
- velocityY: number;
92
- };
93
-
94
- interface CommonPanProperties {
95
- /**
96
- * Minimum distance the finger (or multiple finger) need to travel before the
97
- * handler activates. Expressed in points.
98
- */
99
- minDist?: number;
100
-
101
- /**
102
- * Android only.
103
- */
104
- avgTouches?: boolean;
105
-
106
- /**
107
- * Enables two-finger gestures on supported devices, for example iPads with
108
- * trackpads. If not enabled the gesture will require click + drag, with
109
- * enableTrackpadTwoFingerGesture swiping with two fingers will also trigger
110
- * the gesture.
111
- */
112
- enableTrackpadTwoFingerGesture?: boolean;
113
-
114
- /**
115
- * A number of fingers that is required to be placed before handler can
116
- * activate. Should be a higher or equal to 0 integer.
117
- */
118
- minPointers?: number;
119
-
120
- /**
121
- * When the given number of fingers is placed on the screen and handler hasn't
122
- * yet activated it will fail recognizing the gesture. Should be a higher or
123
- * equal to 0 integer.
124
- */
125
- maxPointers?: number;
126
-
127
- minVelocity?: number;
128
- minVelocityX?: number;
129
- minVelocityY?: number;
130
- activateAfterLongPress?: number;
131
- }
132
-
133
- export interface PanGestureConfig extends CommonPanProperties {
134
- activeOffsetYStart?: number;
135
- activeOffsetYEnd?: number;
136
- activeOffsetXStart?: number;
137
- activeOffsetXEnd?: number;
138
- failOffsetYStart?: number;
139
- failOffsetYEnd?: number;
140
- failOffsetXStart?: number;
141
- failOffsetXEnd?: number;
142
- }
143
-
144
- export interface PanGestureHandlerProps
145
- extends BaseGestureHandlerProps<PanGestureHandlerEventPayload>,
146
- CommonPanProperties {
147
- /**
148
- * Range along X axis (in points) where fingers travels without activation of
149
- * handler. Moving outside of this range implies activation of handler. Range
150
- * can be given as an array or a single number. If range is set as an array,
151
- * first value must be lower or equal to 0, a the second one higher or equal
152
- * to 0. If only one number `p` is given a range of `(-inf, p)` will be used
153
- * if `p` is higher or equal to 0 and `(-p, inf)` otherwise.
154
- */
155
- activeOffsetY?: number | number[];
156
-
157
- /**
158
- * Range along X axis (in points) where fingers travels without activation of
159
- * handler. Moving outside of this range implies activation of handler. Range
160
- * can be given as an array or a single number. If range is set as an array,
161
- * first value must be lower or equal to 0, a the second one higher or equal
162
- * to 0. If only one number `p` is given a range of `(-inf, p)` will be used
163
- * if `p` is higher or equal to 0 and `(-p, inf)` otherwise.
164
- */
165
- activeOffsetX?: number | number[];
166
-
167
- /**
168
- * When the finger moves outside this range (in points) along Y axis and
169
- * handler hasn't yet activated it will fail recognizing the gesture. Range
170
- * can be given as an array or a single number. If range is set as an array,
171
- * first value must be lower or equal to 0, a the second one higher or equal
172
- * to 0. If only one number `p` is given a range of `(-inf, p)` will be used
173
- * if `p` is higher or equal to 0 and `(-p, inf)` otherwise.
174
- */
175
- failOffsetY?: number | number[];
176
-
177
- /**
178
- * When the finger moves outside this range (in points) along X axis and
179
- * handler hasn't yet activated it will fail recognizing the gesture. Range
180
- * can be given as an array or a single number. If range is set as an array,
181
- * first value must be lower or equal to 0, a the second one higher or equal
182
- * to 0. If only one number `p` is given a range of `(-inf, p)` will be used
183
- * if `p` is higher or equal to 0 and `(-p, inf)` otherwise.
184
- */
185
- failOffsetX?: number | number[];
186
- }
187
-
188
- export const panHandlerName = 'PanGestureHandler';
189
-
190
- export type PanGestureHandler = typeof PanGestureHandler;
191
- // eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of gestureHandlerCommon.ts file
192
- export const PanGestureHandler = createHandler<
193
- PanGestureHandlerProps,
194
- PanGestureHandlerEventPayload
195
- >({
196
- name: panHandlerName,
197
- allowedProps: [
198
- ...baseGestureHandlerProps,
199
- ...panGestureHandlerProps,
200
- ] as const,
201
- config: {},
202
- transformProps: managePanProps,
203
- customNativeProps: panGestureHandlerCustomNativeProps,
204
- });
205
-
206
- function validatePanGestureHandlerProps(props: PanGestureHandlerProps) {
207
- if (
208
- Array.isArray(props.activeOffsetX) &&
209
- (props.activeOffsetX[0] > 0 || props.activeOffsetX[1] < 0)
210
- ) {
211
- throw new Error(
212
- `First element of activeOffsetX should be negative, a the second one should be positive`
213
- );
214
- }
215
-
216
- if (
217
- Array.isArray(props.activeOffsetY) &&
218
- (props.activeOffsetY[0] > 0 || props.activeOffsetY[1] < 0)
219
- ) {
220
- throw new Error(
221
- `First element of activeOffsetY should be negative, a the second one should be positive`
222
- );
223
- }
224
-
225
- if (
226
- Array.isArray(props.failOffsetX) &&
227
- (props.failOffsetX[0] > 0 || props.failOffsetX[1] < 0)
228
- ) {
229
- throw new Error(
230
- `First element of failOffsetX should be negative, a the second one should be positive`
231
- );
232
- }
233
-
234
- if (
235
- Array.isArray(props.failOffsetY) &&
236
- (props.failOffsetY[0] > 0 || props.failOffsetY[1] < 0)
237
- ) {
238
- throw new Error(
239
- `First element of failOffsetY should be negative, a the second one should be positive`
240
- );
241
- }
242
-
243
- if (props.minDist && (props.failOffsetX || props.failOffsetY)) {
244
- throw new Error(
245
- `It is not supported to use minDist with failOffsetX or failOffsetY, use activeOffsetX and activeOffsetY instead`
246
- );
247
- }
248
-
249
- if (props.minDist && (props.activeOffsetX || props.activeOffsetY)) {
250
- throw new Error(
251
- `It is not supported to use minDist with activeOffsetX or activeOffsetY`
252
- );
253
- }
254
- }
255
-
256
- function transformPanGestureHandlerProps(props: PanGestureHandlerProps) {
257
- type InternalPanGHKeys =
258
- | 'activeOffsetXStart'
259
- | 'activeOffsetXEnd'
260
- | 'failOffsetXStart'
261
- | 'failOffsetXEnd'
262
- | 'activeOffsetYStart'
263
- | 'activeOffsetYEnd'
264
- | 'failOffsetYStart'
265
- | 'failOffsetYEnd';
266
- type PanGestureHandlerInternalProps = PanGestureHandlerProps &
267
- Partial<Record<InternalPanGHKeys, number>>;
268
-
269
- const res: PanGestureHandlerInternalProps = { ...props };
270
-
271
- if (props.activeOffsetX !== undefined) {
272
- delete res.activeOffsetX;
273
- if (Array.isArray(props.activeOffsetX)) {
274
- res.activeOffsetXStart = props.activeOffsetX[0];
275
- res.activeOffsetXEnd = props.activeOffsetX[1];
276
- } else if (props.activeOffsetX < 0) {
277
- res.activeOffsetXStart = props.activeOffsetX;
278
- } else {
279
- res.activeOffsetXEnd = props.activeOffsetX;
280
- }
281
- }
282
-
283
- if (props.activeOffsetY !== undefined) {
284
- delete res.activeOffsetY;
285
- if (Array.isArray(props.activeOffsetY)) {
286
- res.activeOffsetYStart = props.activeOffsetY[0];
287
- res.activeOffsetYEnd = props.activeOffsetY[1];
288
- } else if (props.activeOffsetY < 0) {
289
- res.activeOffsetYStart = props.activeOffsetY;
290
- } else {
291
- res.activeOffsetYEnd = props.activeOffsetY;
292
- }
293
- }
294
-
295
- if (props.failOffsetX !== undefined) {
296
- delete res.failOffsetX;
297
- if (Array.isArray(props.failOffsetX)) {
298
- res.failOffsetXStart = props.failOffsetX[0];
299
- res.failOffsetXEnd = props.failOffsetX[1];
300
- } else if (props.failOffsetX < 0) {
301
- res.failOffsetXStart = props.failOffsetX;
302
- } else {
303
- res.failOffsetXEnd = props.failOffsetX;
304
- }
305
- }
306
-
307
- if (props.failOffsetY !== undefined) {
308
- delete res.failOffsetY;
309
- if (Array.isArray(props.failOffsetY)) {
310
- res.failOffsetYStart = props.failOffsetY[0];
311
- res.failOffsetYEnd = props.failOffsetY[1];
312
- } else if (props.failOffsetY < 0) {
313
- res.failOffsetYStart = props.failOffsetY;
314
- } else {
315
- res.failOffsetYEnd = props.failOffsetY;
316
- }
317
- }
318
-
319
- return res;
320
- }
321
-
322
- export function managePanProps(props: PanGestureHandlerProps) {
323
- if (__DEV__) {
324
- validatePanGestureHandlerProps(props);
325
- }
326
- return transformPanGestureHandlerProps(props);
327
- }
@@ -1,95 +0,0 @@
1
- // RNGH: forking to use the forked createHandler
2
- import createHandler from './createHandler';
3
- import {
4
- BaseGestureHandlerProps,
5
- baseGestureHandlerProps,
6
- } from 'react-native-gesture-handler/src/handlers/gestureHandlerCommon';
7
-
8
- export const tapGestureHandlerProps = [
9
- 'maxDurationMs',
10
- 'maxDelayMs',
11
- 'numberOfTaps',
12
- 'maxDeltaX',
13
- 'maxDeltaY',
14
- 'maxDist',
15
- 'minPointers',
16
- ] as const;
17
-
18
- export type TapGestureHandlerEventPayload = {
19
- x: number;
20
- y: number;
21
- absoluteX: number;
22
- absoluteY: number;
23
- };
24
- export interface TapGestureConfig {
25
- /**
26
- * Minimum number of pointers (fingers) required to be placed before the
27
- * handler activates. Should be a positive integer.
28
- * The default value is 1.
29
- */
30
- minPointers?: number;
31
-
32
- /**
33
- * Maximum time, expressed in milliseconds, that defines how fast a finger
34
- * must be released after a touch. The default value is 500.
35
- */
36
- maxDurationMs?: number;
37
-
38
- /**
39
- * Maximum time, expressed in milliseconds, that can pass before the next tap
40
- * if many taps are required. The default value is 500.
41
- */
42
- maxDelayMs?: number;
43
-
44
- /**
45
- * Number of tap gestures required to activate the handler. The default value
46
- * is 1.
47
- */
48
- numberOfTaps?: number;
49
-
50
- /**
51
- * Maximum distance, expressed in points, that defines how far the finger is
52
- * allowed to travel along the X axis during a tap gesture. If the finger
53
- * travels further than the defined distance along the X axis and the handler
54
- * hasn't yet activated, it will fail to recognize the gesture.
55
- */
56
- maxDeltaX?: number;
57
-
58
- /**
59
- * Maximum distance, expressed in points, that defines how far the finger is
60
- * allowed to travel along the Y axis during a tap gesture. If the finger
61
- * travels further than the defined distance along the Y axis and the handler
62
- * hasn't yet activated, it will fail to recognize the gesture.
63
- */
64
- maxDeltaY?: number;
65
-
66
- /**
67
- * Maximum distance, expressed in points, that defines how far the finger is
68
- * allowed to travel during a tap gesture. If the finger travels further than
69
- * the defined distance and the handler hasn't yet
70
- * activated, it will fail to recognize the gesture.
71
- */
72
- maxDist?: number;
73
- }
74
-
75
- export interface TapGestureHandlerProps
76
- extends BaseGestureHandlerProps<TapGestureHandlerEventPayload>,
77
- TapGestureConfig {}
78
-
79
- export const tapHandlerName = 'TapGestureHandler';
80
-
81
- export type TapGestureHandler = typeof TapGestureHandler;
82
- // eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of gestureHandlerCommon.ts file
83
- export const TapGestureHandler = createHandler<
84
- TapGestureHandlerProps,
85
- TapGestureHandlerEventPayload
86
- >({
87
- name: tapHandlerName,
88
- allowedProps: [
89
- ...baseGestureHandlerProps,
90
- ...tapGestureHandlerProps,
91
- ] as const,
92
- config: {
93
- shouldCancelWhenOutside: true,
94
- },
95
- });
@@ -1,81 +0,0 @@
1
- import * as React from 'react';
2
- import { useImperativeHandle, useRef } from 'react';
3
-
4
- import {
5
- NativeViewGestureHandler,
6
- NativeViewGestureHandlerProps,
7
- nativeViewProps,
8
- } from './NativeViewGestureHandler';
9
-
10
- /*
11
- * This array should consist of:
12
- * - All keys in propTypes from NativeGestureHandler
13
- * (and all keys in GestureHandlerPropTypes)
14
- * - 'onGestureHandlerEvent'
15
- * - 'onGestureHandlerStateChange'
16
- */
17
- const NATIVE_WRAPPER_PROPS_FILTER = [
18
- ...nativeViewProps,
19
- 'onGestureHandlerEvent',
20
- 'onGestureHandlerStateChange',
21
- ] as const;
22
-
23
- export default function createNativeWrapper<P>(
24
- Component: React.ComponentType<P>,
25
- config: Readonly<NativeViewGestureHandlerProps> = {}
26
- ) {
27
- const ComponentWrapper = React.forwardRef<
28
- React.ComponentType<any>,
29
- P & NativeViewGestureHandlerProps
30
- >((props, ref) => {
31
- // filter out props that should be passed to gesture handler wrapper
32
- const gestureHandlerProps = Object.keys(props).reduce(
33
- (res, key) => {
34
- // TS being overly protective with it's types, see https://github.com/microsoft/TypeScript/issues/26255#issuecomment-458013731 for more info
35
- const allowedKeys: readonly string[] = NATIVE_WRAPPER_PROPS_FILTER;
36
- if (allowedKeys.includes(key)) {
37
- // @ts-ignore FIXME(TS)
38
- res[key] = props[key];
39
- }
40
- return res;
41
- },
42
- { ...config } // watch out not to modify config
43
- );
44
- const _ref = useRef<React.ComponentType<P>>();
45
- const _gestureHandlerRef = useRef<React.ComponentType<P>>();
46
- useImperativeHandle(
47
- ref,
48
- // @ts-ignore TODO(TS) decide how nulls work in this context
49
- () => {
50
- const node = _gestureHandlerRef.current;
51
- // add handlerTag for relations config
52
- if (_ref.current && node) {
53
- // @ts-ignore FIXME(TS) think about createHandler return type
54
- _ref.current.handlerTag = node.handlerTag;
55
- return _ref.current;
56
- }
57
- return null;
58
- },
59
- [_ref, _gestureHandlerRef]
60
- );
61
- return (
62
- <NativeViewGestureHandler
63
- {...gestureHandlerProps}
64
- // @ts-ignore TODO(TS)
65
- ref={_gestureHandlerRef}
66
- >
67
- <Component {...props} ref={_ref} />
68
- </NativeViewGestureHandler>
69
- );
70
- });
71
-
72
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
73
- ComponentWrapper.displayName =
74
- Component?.displayName ||
75
- // @ts-ignore if render doesn't exist it will return undefined and go further
76
- Component?.render?.name ||
77
- (typeof Component === 'string' && Component) ||
78
- 'ComponentWrapper';
79
-
80
- return ComponentWrapper;
81
- }
@@ -1,15 +0,0 @@
1
- import { RNGestureHandlerModule } from '../RNGestureHandlerModule'; // RNGH: patch
2
-
3
- let flushOperationsScheduled = false;
4
-
5
- export function scheduleFlushOperations() {
6
- if (!flushOperationsScheduled) {
7
- flushOperationsScheduled = true;
8
- queueMicrotask(() => {
9
- if (RNGestureHandlerModule) {
10
- RNGestureHandlerModule.flushOperations();
11
- }
12
- flushOperationsScheduled = false;
13
- });
14
- }
15
- }