react-native-gesture-handler 2.26.0 → 2.27.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (415) hide show
  1. package/README.md +69 -0
  2. package/android/src/main/jni/CMakeLists.txt +7 -26
  3. package/lib/commonjs/components/Pressable/Pressable.js +139 -188
  4. package/lib/commonjs/components/Pressable/Pressable.js.map +1 -1
  5. package/lib/commonjs/components/Pressable/StateMachine.js +38 -0
  6. package/lib/commonjs/components/Pressable/StateMachine.js.map +1 -0
  7. package/lib/commonjs/components/Pressable/stateDefinitions.js +88 -0
  8. package/lib/commonjs/components/Pressable/stateDefinitions.js.map +1 -0
  9. package/lib/commonjs/components/Pressable/utils.js +1 -1
  10. package/lib/commonjs/components/Pressable/utils.js.map +1 -1
  11. package/lib/commonjs/handlers/gestures/forceTouchGesture.js +12 -0
  12. package/lib/commonjs/handlers/gestures/forceTouchGesture.js.map +1 -1
  13. package/lib/commonjs/handlers/gestures/gestureObjects.js +3 -1
  14. package/lib/commonjs/handlers/gestures/gestureObjects.js.map +1 -1
  15. package/lib/commonjs/web/detectors/RotationGestureDetector.js +3 -0
  16. package/lib/commonjs/web/detectors/RotationGestureDetector.js.map +1 -1
  17. package/lib/commonjs/web/handlers/FlingGestureHandler.js +3 -0
  18. package/lib/commonjs/web/handlers/FlingGestureHandler.js.map +1 -1
  19. package/lib/commonjs/web/handlers/GestureHandler.js +6 -6
  20. package/lib/commonjs/web/handlers/GestureHandler.js.map +1 -1
  21. package/lib/commonjs/web/handlers/PanGestureHandler.js +24 -33
  22. package/lib/commonjs/web/handlers/PanGestureHandler.js.map +1 -1
  23. package/lib/commonjs/web/handlers/TapGestureHandler.js +15 -17
  24. package/lib/commonjs/web/handlers/TapGestureHandler.js.map +1 -1
  25. package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js +1 -1
  26. package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js.map +1 -1
  27. package/lib/commonjs/web/tools/PointerEventManager.js +1 -1
  28. package/lib/commonjs/web/tools/PointerEventManager.js.map +1 -1
  29. package/lib/commonjs/web/tools/PointerTracker.js +12 -11
  30. package/lib/commonjs/web/tools/PointerTracker.js.map +1 -1
  31. package/lib/commonjs/web/tools/Vector.js +1 -1
  32. package/lib/commonjs/web/tools/Vector.js.map +1 -1
  33. package/lib/module/components/Pressable/Pressable.js +141 -190
  34. package/lib/module/components/Pressable/Pressable.js.map +1 -1
  35. package/lib/module/components/Pressable/StateMachine.js +34 -0
  36. package/lib/module/components/Pressable/StateMachine.js.map +1 -0
  37. package/lib/module/components/Pressable/stateDefinitions.js +83 -0
  38. package/lib/module/components/Pressable/stateDefinitions.js.map +1 -0
  39. package/lib/module/components/Pressable/utils.js +1 -1
  40. package/lib/module/components/Pressable/utils.js.map +1 -1
  41. package/lib/module/handlers/gestures/forceTouchGesture.js +13 -0
  42. package/lib/module/handlers/gestures/forceTouchGesture.js.map +1 -1
  43. package/lib/module/handlers/gestures/gestureObjects.js +3 -1
  44. package/lib/module/handlers/gestures/gestureObjects.js.map +1 -1
  45. package/lib/module/web/detectors/RotationGestureDetector.js +3 -0
  46. package/lib/module/web/detectors/RotationGestureDetector.js.map +1 -1
  47. package/lib/module/web/handlers/FlingGestureHandler.js +3 -0
  48. package/lib/module/web/handlers/FlingGestureHandler.js.map +1 -1
  49. package/lib/module/web/handlers/GestureHandler.js +6 -6
  50. package/lib/module/web/handlers/GestureHandler.js.map +1 -1
  51. package/lib/module/web/handlers/PanGestureHandler.js +24 -33
  52. package/lib/module/web/handlers/PanGestureHandler.js.map +1 -1
  53. package/lib/module/web/handlers/TapGestureHandler.js +15 -17
  54. package/lib/module/web/handlers/TapGestureHandler.js.map +1 -1
  55. package/lib/module/web/tools/GestureHandlerOrchestrator.js +1 -1
  56. package/lib/module/web/tools/GestureHandlerOrchestrator.js.map +1 -1
  57. package/lib/module/web/tools/PointerEventManager.js +1 -1
  58. package/lib/module/web/tools/PointerEventManager.js.map +1 -1
  59. package/lib/module/web/tools/PointerTracker.js +12 -11
  60. package/lib/module/web/tools/PointerTracker.js.map +1 -1
  61. package/lib/module/web/tools/Vector.js +1 -1
  62. package/lib/module/web/tools/Vector.js.map +1 -1
  63. package/lib/typescript/ActionType.d.ts +0 -1
  64. package/lib/typescript/ActionType.js +6 -0
  65. package/lib/typescript/Directions.d.ts +0 -1
  66. package/lib/typescript/Directions.js +18 -0
  67. package/lib/typescript/EnableNewWebImplementation.d.ts +0 -1
  68. package/lib/typescript/EnableNewWebImplementation.js +30 -0
  69. package/lib/typescript/GestureHandlerRootViewContext.d.ts +0 -1
  70. package/lib/typescript/GestureHandlerRootViewContext.js +2 -0
  71. package/lib/typescript/PlatformConstants.d.ts +0 -1
  72. package/lib/typescript/PlatformConstants.js +3 -0
  73. package/lib/typescript/PlatformConstants.web.d.ts +0 -1
  74. package/lib/typescript/PlatformConstants.web.js +5 -0
  75. package/lib/typescript/PointerType.d.ts +0 -1
  76. package/lib/typescript/PointerType.js +8 -0
  77. package/lib/typescript/RNGestureHandlerModule.d.ts +0 -1
  78. package/lib/typescript/RNGestureHandlerModule.js +4 -0
  79. package/lib/typescript/RNGestureHandlerModule.web.d.ts +0 -1
  80. package/lib/typescript/RNGestureHandlerModule.web.js +92 -0
  81. package/lib/typescript/RNGestureHandlerModule.windows.d.ts +0 -1
  82. package/lib/typescript/RNGestureHandlerModule.windows.js +47 -0
  83. package/lib/typescript/RNRenderer.d.ts +0 -1
  84. package/lib/typescript/RNRenderer.js +3 -0
  85. package/lib/typescript/RNRenderer.web.d.ts +0 -1
  86. package/lib/typescript/RNRenderer.web.js +3 -0
  87. package/lib/typescript/State.d.ts +0 -1
  88. package/lib/typescript/State.js +9 -0
  89. package/lib/typescript/TouchEventType.d.ts +0 -1
  90. package/lib/typescript/TouchEventType.js +7 -0
  91. package/lib/typescript/components/DrawerLayout.d.ts +0 -1
  92. package/lib/typescript/components/DrawerLayout.js +417 -0
  93. package/lib/typescript/components/GestureButtons.d.ts +0 -1
  94. package/lib/typescript/components/GestureButtons.js +165 -0
  95. package/lib/typescript/components/GestureButtonsProps.d.ts +0 -1
  96. package/lib/typescript/components/GestureButtonsProps.js +1 -0
  97. package/lib/typescript/components/GestureComponents.d.ts +0 -1
  98. package/lib/typescript/components/GestureComponents.js +67 -0
  99. package/lib/typescript/components/GestureComponents.web.d.ts +0 -1
  100. package/lib/typescript/components/GestureComponents.web.js +21 -0
  101. package/lib/typescript/components/GestureHandlerButton.d.ts +0 -1
  102. package/lib/typescript/components/GestureHandlerButton.js +2 -0
  103. package/lib/typescript/components/GestureHandlerButton.web.d.ts +0 -1
  104. package/lib/typescript/components/GestureHandlerButton.web.js +3 -0
  105. package/lib/typescript/components/GestureHandlerRootView.android.d.ts +0 -1
  106. package/lib/typescript/components/GestureHandlerRootView.android.js +17 -0
  107. package/lib/typescript/components/GestureHandlerRootView.d.ts +0 -1
  108. package/lib/typescript/components/GestureHandlerRootView.js +16 -0
  109. package/lib/typescript/components/GestureHandlerRootView.web.d.ts +0 -1
  110. package/lib/typescript/components/GestureHandlerRootView.web.js +11 -0
  111. package/lib/typescript/components/Pressable/Pressable.d.ts +1 -3
  112. package/lib/typescript/components/Pressable/Pressable.d.ts.map +1 -1
  113. package/lib/typescript/components/Pressable/Pressable.js +231 -0
  114. package/lib/typescript/components/Pressable/PressableProps.d.ts +15 -2
  115. package/lib/typescript/components/Pressable/PressableProps.d.ts.map +1 -1
  116. package/lib/typescript/components/Pressable/PressableProps.js +1 -0
  117. package/lib/typescript/components/Pressable/StateMachine.d.ts +14 -0
  118. package/lib/typescript/components/Pressable/StateMachine.d.ts.map +1 -0
  119. package/lib/typescript/components/Pressable/StateMachine.js +34 -0
  120. package/lib/typescript/components/Pressable/index.d.ts +0 -1
  121. package/lib/typescript/components/Pressable/index.js +1 -0
  122. package/lib/typescript/components/Pressable/stateDefinitions.d.ts +9 -0
  123. package/lib/typescript/components/Pressable/stateDefinitions.d.ts.map +1 -0
  124. package/lib/typescript/components/Pressable/stateDefinitions.js +104 -0
  125. package/lib/typescript/components/Pressable/utils.d.ts +3 -7
  126. package/lib/typescript/components/Pressable/utils.d.ts.map +1 -1
  127. package/lib/typescript/components/Pressable/utils.js +80 -0
  128. package/lib/typescript/components/ReanimatedDrawerLayout.d.ts +0 -1
  129. package/lib/typescript/components/ReanimatedDrawerLayout.js +364 -0
  130. package/lib/typescript/components/ReanimatedSwipeable.d.ts +0 -1
  131. package/lib/typescript/components/ReanimatedSwipeable.js +400 -0
  132. package/lib/typescript/components/Swipeable.d.ts +0 -1
  133. package/lib/typescript/components/Swipeable.js +287 -0
  134. package/lib/typescript/components/Text.d.ts +0 -1
  135. package/lib/typescript/components/Text.js +38 -0
  136. package/lib/typescript/components/gestureHandlerRootHOC.d.ts +0 -1
  137. package/lib/typescript/components/gestureHandlerRootHOC.js +18 -0
  138. package/lib/typescript/components/touchables/ExtraButtonProps.d.ts +0 -1
  139. package/lib/typescript/components/touchables/ExtraButtonProps.js +1 -0
  140. package/lib/typescript/components/touchables/GenericTouchable.d.ts +0 -1
  141. package/lib/typescript/components/touchables/GenericTouchable.js +221 -0
  142. package/lib/typescript/components/touchables/GenericTouchableProps.d.ts +0 -1
  143. package/lib/typescript/components/touchables/GenericTouchableProps.js +1 -0
  144. package/lib/typescript/components/touchables/TouchableHighlight.d.ts +0 -1
  145. package/lib/typescript/components/touchables/TouchableHighlight.js +75 -0
  146. package/lib/typescript/components/touchables/TouchableNativeFeedback.android.d.ts +0 -1
  147. package/lib/typescript/components/touchables/TouchableNativeFeedback.android.js +65 -0
  148. package/lib/typescript/components/touchables/TouchableNativeFeedback.d.ts +0 -1
  149. package/lib/typescript/components/touchables/TouchableNativeFeedback.js +6 -0
  150. package/lib/typescript/components/touchables/TouchableNativeFeedbackProps.d.ts +0 -1
  151. package/lib/typescript/components/touchables/TouchableNativeFeedbackProps.js +1 -0
  152. package/lib/typescript/components/touchables/TouchableOpacity.d.ts +0 -1
  153. package/lib/typescript/components/touchables/TouchableOpacity.js +51 -0
  154. package/lib/typescript/components/touchables/TouchableWithoutFeedback.d.ts +0 -1
  155. package/lib/typescript/components/touchables/TouchableWithoutFeedback.js +10 -0
  156. package/lib/typescript/components/touchables/index.d.ts +0 -1
  157. package/lib/typescript/components/touchables/index.js +4 -0
  158. package/lib/typescript/components/utils.d.ts +0 -1
  159. package/lib/typescript/components/utils.js +11 -0
  160. package/lib/typescript/findNodeHandle.d.ts +0 -1
  161. package/lib/typescript/findNodeHandle.js +2 -0
  162. package/lib/typescript/findNodeHandle.web.d.ts +0 -1
  163. package/lib/typescript/findNodeHandle.web.js +31 -0
  164. package/lib/typescript/getShadowNodeFromRef.d.ts +0 -1
  165. package/lib/typescript/getShadowNodeFromRef.js +45 -0
  166. package/lib/typescript/getShadowNodeFromRef.web.d.ts +0 -1
  167. package/lib/typescript/getShadowNodeFromRef.web.js +7 -0
  168. package/lib/typescript/ghQueueMicrotask.d.ts +0 -1
  169. package/lib/typescript/ghQueueMicrotask.js +7 -0
  170. package/lib/typescript/handlers/FlingGestureHandler.d.ts +0 -1
  171. package/lib/typescript/handlers/FlingGestureHandler.js +19 -0
  172. package/lib/typescript/handlers/ForceTouchGestureHandler.d.ts +0 -1
  173. package/lib/typescript/handlers/ForceTouchGestureHandler.js +37 -0
  174. package/lib/typescript/handlers/GestureHandlerEventPayload.d.ts +3 -1
  175. package/lib/typescript/handlers/GestureHandlerEventPayload.d.ts.map +1 -1
  176. package/lib/typescript/handlers/GestureHandlerEventPayload.js +1 -0
  177. package/lib/typescript/handlers/LongPressGestureHandler.d.ts +0 -1
  178. package/lib/typescript/handlers/LongPressGestureHandler.js +22 -0
  179. package/lib/typescript/handlers/NativeViewGestureHandler.d.ts +0 -1
  180. package/lib/typescript/handlers/NativeViewGestureHandler.js +20 -0
  181. package/lib/typescript/handlers/PanGestureHandler.d.ts +0 -1
  182. package/lib/typescript/handlers/PanGestureHandler.js +128 -0
  183. package/lib/typescript/handlers/PinchGestureHandler.d.ts +0 -1
  184. package/lib/typescript/handlers/PinchGestureHandler.js +12 -0
  185. package/lib/typescript/handlers/PressabilityDebugView.d.ts +0 -1
  186. package/lib/typescript/handlers/PressabilityDebugView.js +2 -0
  187. package/lib/typescript/handlers/PressabilityDebugView.web.d.ts +0 -1
  188. package/lib/typescript/handlers/PressabilityDebugView.web.js +4 -0
  189. package/lib/typescript/handlers/RotationGestureHandler.d.ts +0 -1
  190. package/lib/typescript/handlers/RotationGestureHandler.js +12 -0
  191. package/lib/typescript/handlers/TapGestureHandler.d.ts +0 -1
  192. package/lib/typescript/handlers/TapGestureHandler.js +26 -0
  193. package/lib/typescript/handlers/createHandler.d.ts +0 -1
  194. package/lib/typescript/handlers/createHandler.js +375 -0
  195. package/lib/typescript/handlers/createNativeWrapper.d.ts +0 -1
  196. package/lib/typescript/handlers/createNativeWrapper.js +67 -0
  197. package/lib/typescript/handlers/customDirectEventTypes.d.ts +0 -1
  198. package/lib/typescript/handlers/customDirectEventTypes.js +2 -0
  199. package/lib/typescript/handlers/customDirectEventTypes.web.d.ts +0 -1
  200. package/lib/typescript/handlers/customDirectEventTypes.web.js +4 -0
  201. package/lib/typescript/handlers/gestureHandlerCommon.d.ts +0 -1
  202. package/lib/typescript/handlers/gestureHandlerCommon.js +42 -0
  203. package/lib/typescript/handlers/gestureHandlerTypesCompat.d.ts +9 -1
  204. package/lib/typescript/handlers/gestureHandlerTypesCompat.d.ts.map +1 -1
  205. package/lib/typescript/handlers/gestureHandlerTypesCompat.js +1 -0
  206. package/lib/typescript/handlers/gestures/GestureDetector/Wrap.d.ts +0 -1
  207. package/lib/typescript/handlers/gestures/GestureDetector/Wrap.js +22 -0
  208. package/lib/typescript/handlers/gestures/GestureDetector/Wrap.web.d.ts +0 -1
  209. package/lib/typescript/handlers/gestures/GestureDetector/Wrap.web.js +24 -0
  210. package/lib/typescript/handlers/gestures/GestureDetector/attachHandlers.d.ts +0 -1
  211. package/lib/typescript/handlers/gestures/GestureDetector/attachHandlers.js +55 -0
  212. package/lib/typescript/handlers/gestures/GestureDetector/dropHandlers.d.ts +0 -1
  213. package/lib/typescript/handlers/gestures/GestureDetector/dropHandlers.js +12 -0
  214. package/lib/typescript/handlers/gestures/GestureDetector/index.d.ts +0 -1
  215. package/lib/typescript/handlers/gestures/GestureDetector/index.js +114 -0
  216. package/lib/typescript/handlers/gestures/GestureDetector/needsToReattach.d.ts +0 -1
  217. package/lib/typescript/handlers/gestures/GestureDetector/needsToReattach.js +18 -0
  218. package/lib/typescript/handlers/gestures/GestureDetector/types.d.ts +0 -1
  219. package/lib/typescript/handlers/gestures/GestureDetector/types.js +1 -0
  220. package/lib/typescript/handlers/gestures/GestureDetector/updateHandlers.d.ts +0 -1
  221. package/lib/typescript/handlers/gestures/GestureDetector/updateHandlers.js +54 -0
  222. package/lib/typescript/handlers/gestures/GestureDetector/useAnimatedGesture.d.ts +0 -1
  223. package/lib/typescript/handlers/gestures/GestureDetector/useAnimatedGesture.js +137 -0
  224. package/lib/typescript/handlers/gestures/GestureDetector/useDetectorUpdater.d.ts +0 -1
  225. package/lib/typescript/handlers/gestures/GestureDetector/useDetectorUpdater.js +48 -0
  226. package/lib/typescript/handlers/gestures/GestureDetector/useMountReactions.d.ts +0 -1
  227. package/lib/typescript/handlers/gestures/GestureDetector/useMountReactions.js +35 -0
  228. package/lib/typescript/handlers/gestures/GestureDetector/useViewRefHandler.d.ts +0 -1
  229. package/lib/typescript/handlers/gestures/GestureDetector/useViewRefHandler.js +32 -0
  230. package/lib/typescript/handlers/gestures/GestureDetector/utils.d.ts +0 -1
  231. package/lib/typescript/handlers/gestures/GestureDetector/utils.js +140 -0
  232. package/lib/typescript/handlers/gestures/eventReceiver.d.ts +0 -1
  233. package/lib/typescript/handlers/gestures/eventReceiver.js +105 -0
  234. package/lib/typescript/handlers/gestures/flingGesture.d.ts +0 -1
  235. package/lib/typescript/handlers/gestures/flingGesture.js +27 -0
  236. package/lib/typescript/handlers/gestures/forceTouchGesture.d.ts +9 -1
  237. package/lib/typescript/handlers/gestures/forceTouchGesture.d.ts.map +1 -1
  238. package/lib/typescript/handlers/gestures/forceTouchGesture.js +57 -0
  239. package/lib/typescript/handlers/gestures/gesture.d.ts +0 -1
  240. package/lib/typescript/handlers/gestures/gesture.js +303 -0
  241. package/lib/typescript/handlers/gestures/gestureComposition.d.ts +0 -1
  242. package/lib/typescript/handlers/gestures/gestureComposition.js +78 -0
  243. package/lib/typescript/handlers/gestures/gestureObjects.d.ts +3 -2
  244. package/lib/typescript/handlers/gestures/gestureObjects.d.ts.map +1 -1
  245. package/lib/typescript/handlers/gestures/gestureObjects.js +125 -0
  246. package/lib/typescript/handlers/gestures/gestureStateManager.d.ts +0 -1
  247. package/lib/typescript/handlers/gestures/gestureStateManager.js +60 -0
  248. package/lib/typescript/handlers/gestures/gestureStateManager.web.d.ts +0 -1
  249. package/lib/typescript/handlers/gestures/gestureStateManager.web.js +19 -0
  250. package/lib/typescript/handlers/gestures/hoverGesture.d.ts +0 -1
  251. package/lib/typescript/handlers/gestures/hoverGesture.js +45 -0
  252. package/lib/typescript/handlers/gestures/longPressGesture.d.ts +0 -1
  253. package/lib/typescript/handlers/gestures/longPressGesture.js +35 -0
  254. package/lib/typescript/handlers/gestures/manualGesture.d.ts +0 -1
  255. package/lib/typescript/handlers/gestures/manualGesture.js +16 -0
  256. package/lib/typescript/handlers/gestures/nativeGesture.d.ts +0 -1
  257. package/lib/typescript/handlers/gestures/nativeGesture.js +24 -0
  258. package/lib/typescript/handlers/gestures/panGesture.d.ts +0 -1
  259. package/lib/typescript/handlers/gestures/panGesture.js +181 -0
  260. package/lib/typescript/handlers/gestures/pinchGesture.d.ts +0 -1
  261. package/lib/typescript/handlers/gestures/pinchGesture.js +27 -0
  262. package/lib/typescript/handlers/gestures/reanimatedWrapper.d.ts +0 -1
  263. package/lib/typescript/handlers/gestures/reanimatedWrapper.js +23 -0
  264. package/lib/typescript/handlers/gestures/rotationGesture.d.ts +0 -1
  265. package/lib/typescript/handlers/gestures/rotationGesture.js +27 -0
  266. package/lib/typescript/handlers/gestures/tapGesture.d.ts +0 -1
  267. package/lib/typescript/handlers/gestures/tapGesture.js +72 -0
  268. package/lib/typescript/handlers/getNextHandlerTag.d.ts +0 -1
  269. package/lib/typescript/handlers/getNextHandlerTag.js +4 -0
  270. package/lib/typescript/handlers/handlersRegistry.d.ts +0 -1
  271. package/lib/typescript/handlers/handlersRegistry.js +36 -0
  272. package/lib/typescript/handlers/utils.d.ts +0 -1
  273. package/lib/typescript/handlers/utils.js +58 -0
  274. package/lib/typescript/index.d.ts +0 -1
  275. package/lib/typescript/index.js +28 -0
  276. package/lib/typescript/init.d.ts +0 -1
  277. package/lib/typescript/init.js +15 -0
  278. package/lib/typescript/jestUtils/index.d.ts +0 -1
  279. package/lib/typescript/jestUtils/index.js +1 -0
  280. package/lib/typescript/jestUtils/jestUtils.d.ts +0 -1
  281. package/lib/typescript/jestUtils/jestUtils.js +290 -0
  282. package/lib/typescript/mocks.d.ts +0 -1
  283. package/lib/typescript/mocks.js +59 -0
  284. package/lib/typescript/mountRegistry.d.ts +0 -1
  285. package/lib/typescript/mountRegistry.js +29 -0
  286. package/lib/typescript/specs/NativeRNGestureHandlerModule.d.ts +0 -1
  287. package/lib/typescript/specs/NativeRNGestureHandlerModule.js +2 -0
  288. package/lib/typescript/specs/RNGestureHandlerButtonNativeComponent.d.ts +0 -1
  289. package/lib/typescript/specs/RNGestureHandlerButtonNativeComponent.js +2 -0
  290. package/lib/typescript/specs/RNGestureHandlerRootViewNativeComponent.d.ts +0 -1
  291. package/lib/typescript/specs/RNGestureHandlerRootViewNativeComponent.js +2 -0
  292. package/lib/typescript/typeUtils.d.ts +0 -1
  293. package/lib/typescript/typeUtils.js +1 -0
  294. package/lib/typescript/utils.d.ts +0 -1
  295. package/lib/typescript/utils.js +80 -0
  296. package/lib/typescript/web/Gestures.d.ts +0 -1
  297. package/lib/typescript/web/Gestures.js +38 -0
  298. package/lib/typescript/web/constants.d.ts +0 -1
  299. package/lib/typescript/web/constants.js +2 -0
  300. package/lib/typescript/web/detectors/RotationGestureDetector.d.ts +0 -1
  301. package/lib/typescript/web/detectors/RotationGestureDetector.d.ts.map +1 -1
  302. package/lib/typescript/web/detectors/RotationGestureDetector.js +122 -0
  303. package/lib/typescript/web/detectors/ScaleGestureDetector.d.ts +0 -1
  304. package/lib/typescript/web/detectors/ScaleGestureDetector.js +117 -0
  305. package/lib/typescript/web/handlers/FlingGestureHandler.d.ts +0 -1
  306. package/lib/typescript/web/handlers/FlingGestureHandler.d.ts.map +1 -1
  307. package/lib/typescript/web/handlers/FlingGestureHandler.js +133 -0
  308. package/lib/typescript/web/handlers/GestureHandler.d.ts +0 -1
  309. package/lib/typescript/web/handlers/GestureHandler.d.ts.map +1 -1
  310. package/lib/typescript/web/handlers/GestureHandler.js +656 -0
  311. package/lib/typescript/web/handlers/HoverGestureHandler.d.ts +0 -1
  312. package/lib/typescript/web/handlers/HoverGestureHandler.js +37 -0
  313. package/lib/typescript/web/handlers/IGestureHandler.d.ts +0 -1
  314. package/lib/typescript/web/handlers/IGestureHandler.js +1 -0
  315. package/lib/typescript/web/handlers/LongPressGestureHandler.d.ts +0 -1
  316. package/lib/typescript/web/handlers/LongPressGestureHandler.js +136 -0
  317. package/lib/typescript/web/handlers/ManualGestureHandler.d.ts +0 -1
  318. package/lib/typescript/web/handlers/ManualGestureHandler.js +29 -0
  319. package/lib/typescript/web/handlers/NativeViewGestureHandler.d.ts +0 -1
  320. package/lib/typescript/web/handlers/NativeViewGestureHandler.js +133 -0
  321. package/lib/typescript/web/handlers/PanGestureHandler.d.ts +2 -1
  322. package/lib/typescript/web/handlers/PanGestureHandler.d.ts.map +1 -1
  323. package/lib/typescript/web/handlers/PanGestureHandler.js +420 -0
  324. package/lib/typescript/web/handlers/PinchGestureHandler.d.ts +0 -1
  325. package/lib/typescript/web/handlers/PinchGestureHandler.js +117 -0
  326. package/lib/typescript/web/handlers/RotationGestureHandler.d.ts +0 -1
  327. package/lib/typescript/web/handlers/RotationGestureHandler.js +122 -0
  328. package/lib/typescript/web/handlers/TapGestureHandler.d.ts +1 -1
  329. package/lib/typescript/web/handlers/TapGestureHandler.d.ts.map +1 -1
  330. package/lib/typescript/web/handlers/TapGestureHandler.js +202 -0
  331. package/lib/typescript/web/interfaces.d.ts +0 -1
  332. package/lib/typescript/web/interfaces.js +25 -0
  333. package/lib/typescript/web/tools/CircularBuffer.d.ts +0 -1
  334. package/lib/typescript/web/tools/CircularBuffer.js +37 -0
  335. package/lib/typescript/web/tools/EventManager.d.ts +0 -1
  336. package/lib/typescript/web/tools/EventManager.js +85 -0
  337. package/lib/typescript/web/tools/GestureHandlerDelegate.d.ts +0 -1
  338. package/lib/typescript/web/tools/GestureHandlerDelegate.js +1 -0
  339. package/lib/typescript/web/tools/GestureHandlerOrchestrator.d.ts +0 -1
  340. package/lib/typescript/web/tools/GestureHandlerOrchestrator.d.ts.map +1 -1
  341. package/lib/typescript/web/tools/GestureHandlerOrchestrator.js +273 -0
  342. package/lib/typescript/web/tools/GestureHandlerWebDelegate.d.ts +0 -1
  343. package/lib/typescript/web/tools/GestureHandlerWebDelegate.js +169 -0
  344. package/lib/typescript/web/tools/InteractionManager.d.ts +0 -1
  345. package/lib/typescript/web/tools/InteractionManager.js +91 -0
  346. package/lib/typescript/web/tools/KeyboardEventManager.d.ts +0 -1
  347. package/lib/typescript/web/tools/KeyboardEventManager.js +73 -0
  348. package/lib/typescript/web/tools/LeastSquareSolver.d.ts +0 -1
  349. package/lib/typescript/web/tools/LeastSquareSolver.js +147 -0
  350. package/lib/typescript/web/tools/NodeManager.d.ts +0 -1
  351. package/lib/typescript/web/tools/NodeManager.js +28 -0
  352. package/lib/typescript/web/tools/PointerEventManager.d.ts +0 -1
  353. package/lib/typescript/web/tools/PointerEventManager.js +179 -0
  354. package/lib/typescript/web/tools/PointerTracker.d.ts +3 -4
  355. package/lib/typescript/web/tools/PointerTracker.d.ts.map +1 -1
  356. package/lib/typescript/web/tools/PointerTracker.js +161 -0
  357. package/lib/typescript/web/tools/Vector.d.ts +1 -2
  358. package/lib/typescript/web/tools/Vector.js +43 -0
  359. package/lib/typescript/web/tools/VelocityTracker.d.ts +0 -1
  360. package/lib/typescript/web/tools/VelocityTracker.js +76 -0
  361. package/lib/typescript/web/tools/WheelEventManager.d.ts +0 -1
  362. package/lib/typescript/web/tools/WheelEventManager.js +40 -0
  363. package/lib/typescript/web/utils.d.ts +0 -1
  364. package/lib/typescript/web/utils.js +233 -0
  365. package/lib/typescript/web_hammer/DiscreteGestureHandler.d.ts +0 -1
  366. package/lib/typescript/web_hammer/DiscreteGestureHandler.js +48 -0
  367. package/lib/typescript/web_hammer/DraggingGestureHandler.d.ts +0 -1
  368. package/lib/typescript/web_hammer/DraggingGestureHandler.js +25 -0
  369. package/lib/typescript/web_hammer/Errors.d.ts +0 -1
  370. package/lib/typescript/web_hammer/Errors.js +5 -0
  371. package/lib/typescript/web_hammer/FlingGestureHandler.d.ts +0 -1
  372. package/lib/typescript/web_hammer/FlingGestureHandler.js +119 -0
  373. package/lib/typescript/web_hammer/GestureHandler.d.ts +0 -1
  374. package/lib/typescript/web_hammer/GestureHandler.js +469 -0
  375. package/lib/typescript/web_hammer/IndiscreteGestureHandler.d.ts +0 -1
  376. package/lib/typescript/web_hammer/IndiscreteGestureHandler.js +26 -0
  377. package/lib/typescript/web_hammer/LongPressGestureHandler.d.ts +0 -1
  378. package/lib/typescript/web_hammer/LongPressGestureHandler.js +46 -0
  379. package/lib/typescript/web_hammer/NativeViewGestureHandler.d.ts +0 -1
  380. package/lib/typescript/web_hammer/NativeViewGestureHandler.js +40 -0
  381. package/lib/typescript/web_hammer/NodeManager.d.ts +0 -1
  382. package/lib/typescript/web_hammer/NodeManager.js +28 -0
  383. package/lib/typescript/web_hammer/PanGestureHandler.d.ts +0 -1
  384. package/lib/typescript/web_hammer/PanGestureHandler.js +151 -0
  385. package/lib/typescript/web_hammer/PinchGestureHandler.d.ts +0 -1
  386. package/lib/typescript/web_hammer/PinchGestureHandler.js +19 -0
  387. package/lib/typescript/web_hammer/PressGestureHandler.d.ts +0 -1
  388. package/lib/typescript/web_hammer/PressGestureHandler.js +133 -0
  389. package/lib/typescript/web_hammer/RotationGestureHandler.d.ts +0 -1
  390. package/lib/typescript/web_hammer/RotationGestureHandler.js +20 -0
  391. package/lib/typescript/web_hammer/TapGestureHandler.d.ts +0 -1
  392. package/lib/typescript/web_hammer/TapGestureHandler.js +142 -0
  393. package/lib/typescript/web_hammer/constants.d.ts +0 -1
  394. package/lib/typescript/web_hammer/constants.js +42 -0
  395. package/lib/typescript/web_hammer/utils.d.ts +0 -1
  396. package/lib/typescript/web_hammer/utils.js +15 -0
  397. package/package.json +4 -2
  398. package/src/components/Pressable/Pressable.tsx +357 -445
  399. package/src/components/Pressable/PressableProps.tsx +15 -0
  400. package/src/components/Pressable/StateMachine.tsx +49 -0
  401. package/src/components/Pressable/stateDefinitions.ts +125 -0
  402. package/src/components/Pressable/utils.ts +11 -7
  403. package/src/handlers/GestureHandlerEventPayload.ts +3 -0
  404. package/src/handlers/gestureHandlerTypesCompat.ts +9 -0
  405. package/src/handlers/gestures/forceTouchGesture.ts +9 -0
  406. package/src/handlers/gestures/gestureObjects.ts +3 -1
  407. package/src/web/detectors/RotationGestureDetector.ts +4 -0
  408. package/src/web/handlers/FlingGestureHandler.ts +4 -0
  409. package/src/web/handlers/GestureHandler.ts +9 -3
  410. package/src/web/handlers/PanGestureHandler.ts +25 -36
  411. package/src/web/handlers/TapGestureHandler.ts +14 -19
  412. package/src/web/tools/GestureHandlerOrchestrator.ts +1 -0
  413. package/src/web/tools/PointerEventManager.ts +1 -1
  414. package/src/web/tools/PointerTracker.ts +17 -15
  415. package/src/web/tools/Vector.ts +1 -1
@@ -0,0 +1,38 @@
1
+ import React, { forwardRef, useEffect, useRef, } from 'react';
2
+ import { Platform, Text as RNText, } from 'react-native';
3
+ import { GestureObjects as Gesture } from '../handlers/gestures/gestureObjects';
4
+ import { GestureDetector } from '../handlers/gestures/GestureDetector';
5
+ export const Text = forwardRef((props, ref) => {
6
+ const { onPress, onLongPress, ...rest } = props;
7
+ const textRef = useRef(null);
8
+ const native = Gesture.Native().runOnJS(true);
9
+ const refHandler = (node) => {
10
+ textRef.current = node;
11
+ if (ref === null) {
12
+ return;
13
+ }
14
+ if (typeof ref === 'function') {
15
+ ref(node);
16
+ }
17
+ else {
18
+ ref.current = node;
19
+ }
20
+ };
21
+ // This is a special case for `Text` component. After https://github.com/software-mansion/react-native-gesture-handler/pull/3379 we check for
22
+ // `displayName` field. However, `Text` from RN has this field set to `Text`, but is also present in `RNSVGElements` set.
23
+ // We don't want to treat our `Text` as the one from `SVG`, therefore we add special field to ref.
24
+ refHandler.rngh = true;
25
+ useEffect(() => {
26
+ if (Platform.OS !== 'web') {
27
+ return;
28
+ }
29
+ const textElement = ref
30
+ ? ref.current
31
+ : textRef.current;
32
+ // At this point we are sure that textElement is div in HTML tree
33
+ textElement?.setAttribute('rnghtext', 'true');
34
+ }, []);
35
+ return onPress || onLongPress ? (<GestureDetector gesture={native}>
36
+ <RNText onPress={onPress} onLongPress={onLongPress} ref={refHandler} {...rest}/>
37
+ </GestureDetector>) : (<RNText ref={ref} {...rest}/>);
38
+ });
@@ -1,4 +1,3 @@
1
1
  import * as React from 'react';
2
2
  import { StyleProp, ViewStyle } from 'react-native';
3
3
  export default function gestureHandlerRootHOC<P extends object>(Component: React.ComponentType<P>, containerStyles?: StyleProp<ViewStyle>): React.ComponentType<P>;
4
- //# sourceMappingURL=gestureHandlerRootHOC.d.ts.map
@@ -0,0 +1,18 @@
1
+ import * as React from 'react';
2
+ import { StyleSheet } from 'react-native';
3
+ import hoistNonReactStatics from 'hoist-non-react-statics';
4
+ import GestureHandlerRootView from './GestureHandlerRootView';
5
+ export default function gestureHandlerRootHOC(Component, containerStyles) {
6
+ function Wrapper(props) {
7
+ return (<GestureHandlerRootView style={[styles.container, containerStyles]}>
8
+ <Component {...props}/>
9
+ </GestureHandlerRootView>);
10
+ }
11
+ Wrapper.displayName = `gestureHandlerRootHOC(${Component.displayName || Component.name})`;
12
+ // @ts-ignore - hoistNonReactStatics uses old version of @types/react
13
+ hoistNonReactStatics(Wrapper, Component);
14
+ return Wrapper;
15
+ }
16
+ const styles = StyleSheet.create({
17
+ container: { flex: 1 },
18
+ });
@@ -5,4 +5,3 @@ export type ExtraButtonProps = {
5
5
  foreground?: boolean;
6
6
  exclusive?: boolean;
7
7
  };
8
- //# sourceMappingURL=ExtraButtonProps.d.ts.map
@@ -53,4 +53,3 @@ export default class GenericTouchable extends Component<GenericTouchableProps &
53
53
  render(): React.JSX.Element;
54
54
  }
55
55
  export {};
56
- //# sourceMappingURL=GenericTouchable.d.ts.map
@@ -0,0 +1,221 @@
1
+ import * as React from 'react';
2
+ import { Component } from 'react';
3
+ import { Animated, Platform } from 'react-native';
4
+ import { State } from '../../State';
5
+ import { BaseButton } from '../GestureButtons';
6
+ /**
7
+ * Each touchable is a states' machine which preforms transitions.
8
+ * On very beginning (and on the very end or recognition) touchable is
9
+ * UNDETERMINED. Then it moves to BEGAN. If touchable recognizes that finger
10
+ * travel outside it transits to special MOVED_OUTSIDE state. Gesture recognition
11
+ * finishes in UNDETERMINED state.
12
+ */
13
+ export const TOUCHABLE_STATE = {
14
+ UNDETERMINED: 0,
15
+ BEGAN: 1,
16
+ MOVED_OUTSIDE: 2,
17
+ };
18
+ /**
19
+ * GenericTouchable is not intented to be used as it is.
20
+ * Should be treated as a source for the rest of touchables
21
+ */
22
+ export default class GenericTouchable extends Component {
23
+ static defaultProps = {
24
+ delayLongPress: 600,
25
+ extraButtonProps: {
26
+ rippleColor: 'transparent',
27
+ exclusive: true,
28
+ },
29
+ };
30
+ // Timeout handlers
31
+ pressInTimeout;
32
+ pressOutTimeout;
33
+ longPressTimeout;
34
+ // This flag is required since recognition of longPress implies not-invoking onPress
35
+ longPressDetected = false;
36
+ pointerInside = true;
37
+ // State of touchable
38
+ STATE = TOUCHABLE_STATE.UNDETERMINED;
39
+ // handlePressIn in called on first touch on traveling inside component.
40
+ // Handles state transition with delay.
41
+ handlePressIn() {
42
+ if (this.props.delayPressIn) {
43
+ this.pressInTimeout = setTimeout(() => {
44
+ this.moveToState(TOUCHABLE_STATE.BEGAN);
45
+ this.pressInTimeout = null;
46
+ }, this.props.delayPressIn);
47
+ }
48
+ else {
49
+ this.moveToState(TOUCHABLE_STATE.BEGAN);
50
+ }
51
+ if (this.props.onLongPress) {
52
+ const time = (this.props.delayPressIn || 0) + (this.props.delayLongPress || 0);
53
+ this.longPressTimeout = setTimeout(this.onLongPressDetected, time);
54
+ }
55
+ }
56
+ // handleMoveOutside in called on traveling outside component.
57
+ // Handles state transition with delay.
58
+ handleMoveOutside() {
59
+ if (this.props.delayPressOut) {
60
+ this.pressOutTimeout =
61
+ this.pressOutTimeout ||
62
+ setTimeout(() => {
63
+ this.moveToState(TOUCHABLE_STATE.MOVED_OUTSIDE);
64
+ this.pressOutTimeout = null;
65
+ }, this.props.delayPressOut);
66
+ }
67
+ else {
68
+ this.moveToState(TOUCHABLE_STATE.MOVED_OUTSIDE);
69
+ }
70
+ }
71
+ // handleGoToUndetermined transits to UNDETERMINED state with proper delay
72
+ handleGoToUndetermined() {
73
+ clearTimeout(this.pressOutTimeout); // TODO: maybe it can be undefined
74
+ if (this.props.delayPressOut) {
75
+ this.pressOutTimeout = setTimeout(() => {
76
+ if (this.STATE === TOUCHABLE_STATE.UNDETERMINED) {
77
+ this.moveToState(TOUCHABLE_STATE.BEGAN);
78
+ }
79
+ this.moveToState(TOUCHABLE_STATE.UNDETERMINED);
80
+ this.pressOutTimeout = null;
81
+ }, this.props.delayPressOut);
82
+ }
83
+ else {
84
+ if (this.STATE === TOUCHABLE_STATE.UNDETERMINED) {
85
+ this.moveToState(TOUCHABLE_STATE.BEGAN);
86
+ }
87
+ this.moveToState(TOUCHABLE_STATE.UNDETERMINED);
88
+ }
89
+ }
90
+ componentDidMount() {
91
+ this.reset();
92
+ }
93
+ // Reset timeout to prevent memory leaks.
94
+ reset() {
95
+ this.longPressDetected = false;
96
+ this.pointerInside = true;
97
+ clearTimeout(this.pressInTimeout);
98
+ clearTimeout(this.pressOutTimeout);
99
+ clearTimeout(this.longPressTimeout);
100
+ this.pressOutTimeout = null;
101
+ this.longPressTimeout = null;
102
+ this.pressInTimeout = null;
103
+ }
104
+ // All states' transitions are defined here.
105
+ moveToState(newState) {
106
+ if (newState === this.STATE) {
107
+ // Ignore dummy transitions
108
+ return;
109
+ }
110
+ if (newState === TOUCHABLE_STATE.BEGAN) {
111
+ // First touch and moving inside
112
+ this.props.onPressIn?.();
113
+ }
114
+ else if (newState === TOUCHABLE_STATE.MOVED_OUTSIDE) {
115
+ // Moving outside
116
+ this.props.onPressOut?.();
117
+ }
118
+ else if (newState === TOUCHABLE_STATE.UNDETERMINED) {
119
+ // Need to reset each time on transition to UNDETERMINED
120
+ this.reset();
121
+ if (this.STATE === TOUCHABLE_STATE.BEGAN) {
122
+ // ... and if it happens inside button.
123
+ this.props.onPressOut?.();
124
+ }
125
+ }
126
+ // Finally call lister (used by subclasses)
127
+ this.props.onStateChange?.(this.STATE, newState);
128
+ // ... and make transition.
129
+ this.STATE = newState;
130
+ }
131
+ onGestureEvent = ({ nativeEvent: { pointerInside }, }) => {
132
+ if (this.pointerInside !== pointerInside) {
133
+ if (pointerInside) {
134
+ this.onMoveIn();
135
+ }
136
+ else {
137
+ this.onMoveOut();
138
+ }
139
+ }
140
+ this.pointerInside = pointerInside;
141
+ };
142
+ onHandlerStateChange = ({ nativeEvent, }) => {
143
+ const { state } = nativeEvent;
144
+ if (state === State.CANCELLED || state === State.FAILED) {
145
+ // Need to handle case with external cancellation (e.g. by ScrollView)
146
+ this.moveToState(TOUCHABLE_STATE.UNDETERMINED);
147
+ }
148
+ else if (
149
+ // This platform check is an implication of slightly different behavior of handlers on different platform.
150
+ // And Android "Active" state is achieving on first move of a finger, not on press in.
151
+ // On iOS event on "Began" is not delivered.
152
+ state === (Platform.OS !== 'android' ? State.ACTIVE : State.BEGAN) &&
153
+ this.STATE === TOUCHABLE_STATE.UNDETERMINED) {
154
+ // Moving inside requires
155
+ this.handlePressIn();
156
+ }
157
+ else if (state === State.END) {
158
+ const shouldCallOnPress = !this.longPressDetected &&
159
+ this.STATE !== TOUCHABLE_STATE.MOVED_OUTSIDE &&
160
+ this.pressOutTimeout === null;
161
+ this.handleGoToUndetermined();
162
+ if (shouldCallOnPress) {
163
+ // Calls only inside component whether no long press was called previously
164
+ this.props.onPress?.();
165
+ }
166
+ }
167
+ };
168
+ onLongPressDetected = () => {
169
+ this.longPressDetected = true;
170
+ // Checked for in the caller of `onLongPressDetected`, but better to check twice
171
+ this.props.onLongPress?.();
172
+ };
173
+ componentWillUnmount() {
174
+ // To prevent memory leaks
175
+ this.reset();
176
+ }
177
+ onMoveIn() {
178
+ if (this.STATE === TOUCHABLE_STATE.MOVED_OUTSIDE) {
179
+ // This call is not throttled with delays (like in RN's implementation).
180
+ this.moveToState(TOUCHABLE_STATE.BEGAN);
181
+ }
182
+ }
183
+ onMoveOut() {
184
+ // Long press should no longer be detected
185
+ clearTimeout(this.longPressTimeout);
186
+ this.longPressTimeout = null;
187
+ if (this.STATE === TOUCHABLE_STATE.BEGAN) {
188
+ this.handleMoveOutside();
189
+ }
190
+ }
191
+ render() {
192
+ const hitSlop = (typeof this.props.hitSlop === 'number'
193
+ ? {
194
+ top: this.props.hitSlop,
195
+ left: this.props.hitSlop,
196
+ bottom: this.props.hitSlop,
197
+ right: this.props.hitSlop,
198
+ }
199
+ : this.props.hitSlop) ?? undefined;
200
+ const coreProps = {
201
+ accessible: this.props.accessible !== false,
202
+ accessibilityLabel: this.props.accessibilityLabel,
203
+ accessibilityHint: this.props.accessibilityHint,
204
+ accessibilityRole: this.props.accessibilityRole,
205
+ // TODO: check if changed to no 's' correctly, also removed 2 props that are no longer available: `accessibilityComponentType` and `accessibilityTraits`,
206
+ // would be good to check if it is ok for sure, see: https://github.com/facebook/react-native/issues/24016
207
+ accessibilityState: this.props.accessibilityState,
208
+ accessibilityActions: this.props.accessibilityActions,
209
+ onAccessibilityAction: this.props.onAccessibilityAction,
210
+ nativeID: this.props.nativeID,
211
+ onLayout: this.props.onLayout,
212
+ };
213
+ return (<BaseButton style={this.props.containerStyle} onHandlerStateChange={
214
+ // TODO: not sure if it can be undefined instead of null
215
+ this.props.disabled ? undefined : this.onHandlerStateChange} onGestureEvent={this.onGestureEvent} hitSlop={hitSlop} userSelect={this.props.userSelect} shouldActivateOnStart={this.props.shouldActivateOnStart} disallowInterruption={this.props.disallowInterruption} testID={this.props.testID} touchSoundDisabled={this.props.touchSoundDisabled ?? false} enabled={!this.props.disabled} {...this.props.extraButtonProps}>
216
+ <Animated.View {...coreProps} style={this.props.style}>
217
+ {this.props.children}
218
+ </Animated.View>
219
+ </BaseButton>);
220
+ }
221
+ }
@@ -14,4 +14,3 @@ export interface GenericTouchableProps extends Omit<TouchableWithoutFeedbackProp
14
14
  userSelect?: UserSelect;
15
15
  extraButtonProps?: ExtraButtonProps;
16
16
  }
17
- //# sourceMappingURL=GenericTouchableProps.d.ts.map
@@ -39,4 +39,3 @@ export default class TouchableHighlight extends Component<TouchableHighlightProp
39
39
  render(): React.JSX.Element;
40
40
  }
41
41
  export {};
42
- //# sourceMappingURL=TouchableHighlight.d.ts.map
@@ -0,0 +1,75 @@
1
+ import * as React from 'react';
2
+ import { Component } from 'react';
3
+ import GenericTouchable, { TOUCHABLE_STATE } from './GenericTouchable';
4
+ import { StyleSheet, View, } from 'react-native';
5
+ /**
6
+ * @deprecated TouchableHighlight will be removed in the future version of Gesture Handler. Use Pressable instead.
7
+ *
8
+ * TouchableHighlight follows RN's implementation
9
+ */
10
+ export default class TouchableHighlight extends Component {
11
+ static defaultProps = {
12
+ ...GenericTouchable.defaultProps,
13
+ activeOpacity: 0.85,
14
+ delayPressOut: 100,
15
+ underlayColor: 'black',
16
+ };
17
+ constructor(props) {
18
+ super(props);
19
+ this.state = {
20
+ extraChildStyle: null,
21
+ extraUnderlayStyle: null,
22
+ };
23
+ }
24
+ // Copied from RN
25
+ showUnderlay = () => {
26
+ if (!this.hasPressHandler()) {
27
+ return;
28
+ }
29
+ this.setState({
30
+ extraChildStyle: {
31
+ opacity: this.props.activeOpacity,
32
+ },
33
+ extraUnderlayStyle: {
34
+ backgroundColor: this.props.underlayColor,
35
+ },
36
+ });
37
+ this.props.onShowUnderlay?.();
38
+ };
39
+ hasPressHandler = () => this.props.onPress ||
40
+ this.props.onPressIn ||
41
+ this.props.onPressOut ||
42
+ this.props.onLongPress;
43
+ hideUnderlay = () => {
44
+ this.setState({
45
+ extraChildStyle: null,
46
+ extraUnderlayStyle: null,
47
+ });
48
+ this.props.onHideUnderlay?.();
49
+ };
50
+ renderChildren() {
51
+ if (!this.props.children) {
52
+ return <View />;
53
+ }
54
+ const child = React.Children.only(this.props.children); // TODO: not sure if OK but fixes error
55
+ return React.cloneElement(child, {
56
+ style: StyleSheet.compose(child.props.style, this.state.extraChildStyle),
57
+ });
58
+ }
59
+ onStateChange = (_from, to) => {
60
+ if (to === TOUCHABLE_STATE.BEGAN) {
61
+ this.showUnderlay();
62
+ }
63
+ else if (to === TOUCHABLE_STATE.UNDETERMINED ||
64
+ to === TOUCHABLE_STATE.MOVED_OUTSIDE) {
65
+ this.hideUnderlay();
66
+ }
67
+ };
68
+ render() {
69
+ const { style = {}, ...rest } = this.props;
70
+ const { extraUnderlayStyle } = this.state;
71
+ return (<GenericTouchable {...rest} style={[style, extraUnderlayStyle]} onStateChange={this.onStateChange}>
72
+ {this.renderChildren()}
73
+ </GenericTouchable>);
74
+ }
75
+ }
@@ -38,4 +38,3 @@ export default class TouchableNativeFeedback extends Component<TouchableNativeFe
38
38
  getExtraButtonProps(): import("./ExtraButtonProps").ExtraButtonProps;
39
39
  render(): React.JSX.Element;
40
40
  }
41
- //# sourceMappingURL=TouchableNativeFeedback.android.d.ts.map
@@ -0,0 +1,65 @@
1
+ import { Platform } from 'react-native';
2
+ import * as React from 'react';
3
+ import { Component } from 'react';
4
+ import GenericTouchable from './GenericTouchable';
5
+ /**
6
+ * @deprecated TouchableNativeFeedback will be removed in the future version of Gesture Handler. Use Pressable instead.
7
+ *
8
+ * TouchableNativeFeedback behaves slightly different than RN's TouchableNativeFeedback.
9
+ * There's small difference with handling long press ripple since RN's implementation calls
10
+ * ripple animation via bridge. This solution leaves all animations' handling for native components so
11
+ * it follows native behaviours.
12
+ */
13
+ export default class TouchableNativeFeedback extends Component {
14
+ static defaultProps = {
15
+ ...GenericTouchable.defaultProps,
16
+ useForeground: true,
17
+ extraButtonProps: {
18
+ // Disable hiding ripple on Android
19
+ rippleColor: null,
20
+ },
21
+ };
22
+ // Could be taken as RNTouchableNativeFeedback.SelectableBackground etc. but the API may change
23
+ static SelectableBackground = (rippleRadius) => ({
24
+ type: 'ThemeAttrAndroid',
25
+ // I added `attribute` prop to clone the implementation of RN and be able to use only 2 types
26
+ attribute: 'selectableItemBackground',
27
+ rippleRadius,
28
+ });
29
+ static SelectableBackgroundBorderless = (rippleRadius) => ({
30
+ type: 'ThemeAttrAndroid',
31
+ attribute: 'selectableItemBackgroundBorderless',
32
+ rippleRadius,
33
+ });
34
+ static Ripple = (color, borderless, rippleRadius) => ({
35
+ type: 'RippleAndroid',
36
+ color,
37
+ borderless,
38
+ rippleRadius,
39
+ });
40
+ static canUseNativeForeground = () => Platform.OS === 'android' && Platform.Version >= 23;
41
+ getExtraButtonProps() {
42
+ const extraProps = {};
43
+ const { background } = this.props;
44
+ if (background) {
45
+ // I changed type values to match those used in RN
46
+ // TODO(TS): check if it works the same as previous implementation - looks like it works the same as RN component, so it should be ok
47
+ if (background.type === 'RippleAndroid') {
48
+ extraProps['borderless'] = background.borderless;
49
+ extraProps['rippleColor'] = background.color;
50
+ }
51
+ else if (background.type === 'ThemeAttrAndroid') {
52
+ extraProps['borderless'] =
53
+ background.attribute === 'selectableItemBackgroundBorderless';
54
+ }
55
+ // I moved it from above since it should be available in all options
56
+ extraProps['rippleRadius'] = background.rippleRadius;
57
+ }
58
+ extraProps['foreground'] = this.props.useForeground;
59
+ return extraProps;
60
+ }
61
+ render() {
62
+ const { style = {}, ...rest } = this.props;
63
+ return (<GenericTouchable {...rest} style={style} extraButtonProps={this.getExtraButtonProps()}/>);
64
+ }
65
+ }
@@ -4,4 +4,3 @@ import { TouchableNativeFeedback as RNTouchableNativeFeedback } from 'react-nati
4
4
  */
5
5
  declare const TouchableNativeFeedback: typeof RNTouchableNativeFeedback;
6
6
  export default TouchableNativeFeedback;
7
- //# sourceMappingURL=TouchableNativeFeedback.d.ts.map
@@ -0,0 +1,6 @@
1
+ import { TouchableNativeFeedback as RNTouchableNativeFeedback } from 'react-native';
2
+ /**
3
+ * @deprecated TouchableNativeFeedback will be removed in the future version of Gesture Handler. Use Pressable instead.
4
+ */
5
+ const TouchableNativeFeedback = RNTouchableNativeFeedback;
6
+ export default TouchableNativeFeedback;
@@ -6,4 +6,3 @@ export type TouchableNativeFeedbackExtraProps = ExtraButtonProps;
6
6
  * @deprecated TouchableNativeFeedback will be removed in the future version of Gesture Handler. Use Pressable instead.
7
7
  */
8
8
  export type TouchableNativeFeedbackProps = RNTouchableNativeFeedbackProps & GenericTouchableProps;
9
- //# sourceMappingURL=TouchableNativeFeedbackProps.d.ts.map
@@ -28,4 +28,3 @@ export default class TouchableOpacity extends Component<TouchableOpacityProps> {
28
28
  onStateChange: (_from: number, to: number) => void;
29
29
  render(): React.JSX.Element;
30
30
  }
31
- //# sourceMappingURL=TouchableOpacity.d.ts.map
@@ -0,0 +1,51 @@
1
+ import { Animated, Easing, StyleSheet, View, } from 'react-native';
2
+ import GenericTouchable, { TOUCHABLE_STATE } from './GenericTouchable';
3
+ import * as React from 'react';
4
+ import { Component } from 'react';
5
+ /**
6
+ * @deprecated TouchableOpacity will be removed in the future version of Gesture Handler. Use Pressable instead.
7
+ *
8
+ * TouchableOpacity bases on timing animation which has been used in RN's core
9
+ */
10
+ export default class TouchableOpacity extends Component {
11
+ static defaultProps = {
12
+ ...GenericTouchable.defaultProps,
13
+ activeOpacity: 0.2,
14
+ };
15
+ // Opacity is 1 one by default but could be overwritten
16
+ getChildStyleOpacityWithDefault = () => {
17
+ const childStyle = StyleSheet.flatten(this.props.style) || {};
18
+ return childStyle.opacity == null
19
+ ? 1
20
+ : childStyle.opacity.valueOf();
21
+ };
22
+ opacity = new Animated.Value(this.getChildStyleOpacityWithDefault());
23
+ setOpacityTo = (value, duration) => {
24
+ Animated.timing(this.opacity, {
25
+ toValue: value,
26
+ duration: duration,
27
+ easing: Easing.inOut(Easing.quad),
28
+ useNativeDriver: this.props.useNativeAnimations ?? true,
29
+ }).start();
30
+ };
31
+ onStateChange = (_from, to) => {
32
+ if (to === TOUCHABLE_STATE.BEGAN) {
33
+ this.setOpacityTo(this.props.activeOpacity, 0);
34
+ }
35
+ else if (to === TOUCHABLE_STATE.UNDETERMINED ||
36
+ to === TOUCHABLE_STATE.MOVED_OUTSIDE) {
37
+ this.setOpacityTo(this.getChildStyleOpacityWithDefault(), 150);
38
+ }
39
+ };
40
+ render() {
41
+ const { style = {}, ...rest } = this.props;
42
+ return (<GenericTouchable {...rest} style={[
43
+ style,
44
+ {
45
+ opacity: this.opacity, // TODO: fix this
46
+ },
47
+ ]} onStateChange={this.onStateChange}>
48
+ {this.props.children ? this.props.children : <View />}
49
+ </GenericTouchable>);
50
+ }
51
+ }
@@ -12,4 +12,3 @@ declare const TouchableWithoutFeedback: React.ForwardRefExoticComponent<GenericT
12
12
  children?: React.ReactNode | undefined;
13
13
  } & React.RefAttributes<GenericTouchable>>;
14
14
  export default TouchableWithoutFeedback;
15
- //# sourceMappingURL=TouchableWithoutFeedback.d.ts.map
@@ -0,0 +1,10 @@
1
+ import * as React from 'react';
2
+ import GenericTouchable from './GenericTouchable';
3
+ /**
4
+ * @deprecated TouchableWithoutFeedback will be removed in the future version of Gesture Handler. Use Pressable instead.
5
+ */
6
+ const TouchableWithoutFeedback = React.forwardRef(({ delayLongPress = 600, extraButtonProps = {
7
+ rippleColor: 'transparent',
8
+ exclusive: true,
9
+ }, ...rest }, ref) => (<GenericTouchable ref={ref} delayLongPress={delayLongPress} extraButtonProps={extraButtonProps} {...rest}/>));
10
+ export default TouchableWithoutFeedback;
@@ -5,4 +5,3 @@ export { default as TouchableNativeFeedback } from './TouchableNativeFeedback';
5
5
  export { default as TouchableWithoutFeedback } from './TouchableWithoutFeedback';
6
6
  export { default as TouchableOpacity } from './TouchableOpacity';
7
7
  export { default as TouchableHighlight } from './TouchableHighlight';
8
- //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,4 @@
1
+ export { default as TouchableNativeFeedback } from './TouchableNativeFeedback';
2
+ export { default as TouchableWithoutFeedback } from './TouchableWithoutFeedback';
3
+ export { default as TouchableOpacity } from './TouchableOpacity';
4
+ export { default as TouchableHighlight } from './TouchableHighlight';
@@ -2,4 +2,3 @@ import { BaseGesture, GestureRef } from '../handlers/gestures/gesture';
2
2
  export type RelationPropName = 'simultaneousWithExternalGesture' | 'requireExternalGestureToFail' | 'blocksExternalGesture';
3
3
  export type RelationPropType = Exclude<GestureRef, number> | Exclude<GestureRef, number>[];
4
4
  export declare function applyRelationProp(gesture: BaseGesture<any>, relationPropName: RelationPropName, relationProp: RelationPropType): void;
5
- //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1,11 @@
1
+ export function applyRelationProp(gesture, relationPropName, relationProp) {
2
+ if (!relationProp) {
3
+ return;
4
+ }
5
+ if (Array.isArray(relationProp)) {
6
+ gesture[relationPropName](...relationProp);
7
+ }
8
+ else {
9
+ gesture[relationPropName](relationProp);
10
+ }
11
+ }
@@ -1,3 +1,2 @@
1
1
  import { findNodeHandle } from 'react-native';
2
2
  export default findNodeHandle;
3
- //# sourceMappingURL=findNodeHandle.d.ts.map
@@ -0,0 +1,2 @@
1
+ import { findNodeHandle } from 'react-native';
2
+ export default findNodeHandle;
@@ -1,3 +1,2 @@
1
1
  import type { GestureHandlerRef, SVGRef } from './web/interfaces';
2
2
  export default function findNodeHandle(viewRef: GestureHandlerRef | SVGRef | HTMLElement | SVGElement): HTMLElement | SVGElement | number;
3
- //# sourceMappingURL=findNodeHandle.web.d.ts.map
@@ -0,0 +1,31 @@
1
+ import { FlatList } from 'react-native';
2
+ import { isRNSVGElement } from './web/utils';
3
+ export default function findNodeHandle(viewRef) {
4
+ // TODO: Remove this once we remove old API.
5
+ if (viewRef instanceof FlatList) {
6
+ // @ts-ignore This is the only way to get the scroll ref from FlatList.
7
+ return viewRef._listRef._scrollRef.firstChild;
8
+ }
9
+ // Old API assumes that child handler is HTMLElement.
10
+ // However, if we nest handlers, we will get ref to another handler.
11
+ // In that case, we want to recursively call findNodeHandle with new handler viewTag (which can also be ref to another handler).
12
+ if (viewRef?.viewTag !== undefined) {
13
+ return findNodeHandle(viewRef.viewTag);
14
+ }
15
+ if (viewRef instanceof Element) {
16
+ if (viewRef.style.display === 'contents') {
17
+ return findNodeHandle(viewRef.firstChild);
18
+ }
19
+ return viewRef;
20
+ }
21
+ if (isRNSVGElement(viewRef)) {
22
+ return viewRef.elementRef.current;
23
+ }
24
+ // In new API, we receive ref object which `current` field points to wrapper `div` with `display: contents;`.
25
+ // We want to return the first descendant (in DFS order) that doesn't have this property.
26
+ let element = viewRef?.current;
27
+ while (element && element.style.display === 'contents') {
28
+ element = element.firstChild;
29
+ }
30
+ return element;
31
+ }
@@ -1,2 +1 @@
1
1
  export declare function getShadowNodeFromRef(ref: unknown): unknown;
2
- //# sourceMappingURL=getShadowNodeFromRef.d.ts.map