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
package/README.md ADDED
@@ -0,0 +1,69 @@
1
+ <img src="https://user-images.githubusercontent.com/16062886/117444014-2d1ffd80-af39-11eb-9bbb-33c320599d93.png" width="100%" alt="React Native Gesture Handler by Software Mansion">
2
+
3
+ ### Declarative API exposing platform native touch and gesture system to React Native.
4
+
5
+ React Native Gesture Handler provides native-driven gesture management APIs for building best possible touch-based experiences in React Native.
6
+
7
+ With this library gestures are no longer controlled by the JS responder system, but instead are recognized and tracked in the UI thread.
8
+ It makes touch interactions and gesture tracking not only smooth, but also dependable and deterministic.
9
+
10
+ ## Installation
11
+
12
+ Check [getting started](https://docs.swmansion.com/react-native-gesture-handler/docs/#installation) section of our docs for the detailed installation instructions.
13
+
14
+ ## Documentation
15
+
16
+ Check out our dedicated documentation page for info about this library, API reference and more: [https://docs.swmansion.com/react-native-gesture-handler/docs/](https://docs.swmansion.com/react-native-gesture-handler/docs/)
17
+
18
+ ## Examples
19
+
20
+ If you want to play with the API but don't feel like trying it on a real app, you can run the example project. Clone the repo, go to the `example` folder and run:
21
+
22
+ ```bash
23
+ yarn install
24
+ ```
25
+
26
+ Run `yarn start` to start the metro bundler
27
+
28
+ Run `yarn android` or `yarn ios` (depending on which platform you want to run the example app on).
29
+
30
+ You will need to have an Android or iOS device or emulator connected.
31
+
32
+ ## React Native Support
33
+
34
+ `react-native-gesture-handler` supports the three latest minor releases of `react-native`.
35
+
36
+ | version | react-native version |
37
+ | ------- | -------------------- |
38
+ | 2.26.0+ | 0.78.0+ |
39
+ | 2.25.0+ | 0.76.0+ |
40
+ | 2.24.0+ | 0.75.0+ |
41
+ | 2.21.0+ | 0.74.0+ |
42
+ | 2.18.0+ | 0.73.0+ |
43
+ | 2.16.0+ | 0.68.0+ |
44
+ | 2.14.0+ | 0.67.0+ |
45
+ | 2.10.0+ | 0.64.0+ |
46
+ | 2.0.0+ | 0.63.0+ |
47
+
48
+ It may be possible to use newer versions of react-native-gesture-handler on React Native with version <= 0.59 by reverse Jetifying.
49
+ Read more on that here <https://github.com/mikehardy/jetifier#to-reverse-jetify--convert-node_modules-dependencies-to-support-libraries>
50
+
51
+ ## License
52
+
53
+ Gesture handler library is licensed under [The MIT License](LICENSE).
54
+
55
+ ## Credits
56
+
57
+ This project has been build and is maintained thanks to the support from [Shopify](https://shopify.com), [Expo.io](https://expo.io) and [Software Mansion](https://swmansion.com)
58
+
59
+ [![shopify](https://avatars1.githubusercontent.com/u/8085?v=3&s=100 'Shopify.com')](https://shopify.com)
60
+ [![expo](https://avatars2.githubusercontent.com/u/12504344?v=3&s=100 'Expo.io')](https://expo.io)
61
+ [![swm](https://logo.swmansion.com/logo?color=white&variant=desktop&width=150&tag=react-native-reanimated-github 'Software Mansion')](https://swmansion.com)
62
+
63
+ ## Community Discord
64
+
65
+ [Join the Software Mansion Community Discord](https://discord.swmansion.com) to chat about Gesture Handler or other Software Mansion libraries.
66
+
67
+ ## Gesture Handler is created by Software Mansion
68
+
69
+ Since 2012 [Software Mansion](https://swmansion.com) is a software agency with experience in building web and mobile apps. We are Core React Native Contributors and experts in dealing with all kinds of React Native issues. We can help you build your next dream product – [Hire us](https://swmansion.com/contact/projects?utm_source=gesture-handler&utm_medium=readme).
@@ -27,29 +27,10 @@ target_include_directories(
27
27
 
28
28
  find_package(ReactAndroid REQUIRED CONFIG)
29
29
  find_package(fbjni REQUIRED CONFIG)
30
- if (ReactAndroid_VERSION_MINOR GREATER_EQUAL 80)
31
- find_package(fbjni REQUIRED CONFIG)
32
- target_link_libraries(
33
- ${PACKAGE_NAME}
34
- ReactAndroid::reactnative
35
- ReactAndroid::jsi
36
- fbjni::fbjni
37
- )
38
- elseif (ReactAndroid_VERSION_MINOR GREATER_EQUAL 76)
39
- target_link_libraries(
40
- ${PACKAGE_NAME}
41
- ReactAndroid::reactnative
42
- ReactAndroid::jsi
43
- )
44
- elseif (ReactAndroid_VERSION_MINOR GREATER_EQUAL 75)
45
- target_link_libraries(
46
- ${PACKAGE_NAME}
47
- ReactAndroid::react_render_core
48
- ReactAndroid::react_render_uimanager
49
- ReactAndroid::react_render_graphics
50
- ReactAndroid::jsi
51
- ReactAndroid::react_nativemodule_core
52
- )
53
- else ()
54
- message(FATAL_ERROR "react-native-gesture-handler on the New Architecture requires react-native 0.75 or newer.")
55
- endif ()
30
+
31
+ target_link_libraries(
32
+ ${PACKAGE_NAME}
33
+ ReactAndroid::reactnative
34
+ ReactAndroid::jsi
35
+ fbjni::fbjni
36
+ )
@@ -13,23 +13,25 @@ var _utils = require("./utils");
13
13
  var _PressabilityDebugView = require("../../handlers/PressabilityDebugView");
14
14
  var _utils2 = require("../../utils");
15
15
  var _utils3 = require("../utils");
16
+ var _stateDefinitions = require("./stateDefinitions");
16
17
  var _jsxRuntime = require("react/jsx-runtime");
17
18
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
18
19
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
19
20
  const DEFAULT_LONG_PRESS_DURATION = 500;
20
21
  const IS_TEST_ENV = (0, _utils2.isTestEnv)();
21
22
  let IS_FABRIC = null;
22
- const Pressable = /*#__PURE__*/(0, _react.forwardRef)((props, pressableRef) => {
23
+ const Pressable = props => {
23
24
  const {
25
+ ref,
24
26
  testOnly_pressed,
25
27
  hitSlop,
26
28
  pressRetentionOffset,
27
29
  delayHoverIn,
28
- onHoverIn,
29
30
  delayHoverOut,
30
- onHoverOut,
31
31
  delayLongPress,
32
32
  unstable_pressDelay,
33
+ onHoverIn,
34
+ onHoverOut,
33
35
  onPress,
34
36
  onPressIn,
35
37
  onPressOut,
@@ -43,6 +45,7 @@ const Pressable = /*#__PURE__*/(0, _react.forwardRef)((props, pressableRef) => {
43
45
  simultaneousWithExternalGesture,
44
46
  requireExternalGestureToFail,
45
47
  blocksExternalGesture,
48
+ dimensionsAfterResize,
46
49
  ...remainingProps
47
50
  } = props;
48
51
  const relationProps = {
@@ -50,17 +53,105 @@ const Pressable = /*#__PURE__*/(0, _react.forwardRef)((props, pressableRef) => {
50
53
  requireExternalGestureToFail,
51
54
  blocksExternalGesture
52
55
  };
53
- const [pressedState, setPressedState] = (0, _react.useState)(testOnly_pressed ?? false);
54
56
 
55
- // Disabled when onLongPress has been called
56
- const isPressCallbackEnabled = (0, _react.useRef)(true);
57
- const hasPassedBoundsChecks = (0, _react.useRef)(false);
58
- const shouldPreventNativeEffects = (0, _react.useRef)(false);
57
+ // used only if `ref` is undefined
58
+ const fallbackRef = (0, _react.useRef)(null);
59
+ const [pressedState, setPressedState] = (0, _react.useState)(testOnly_pressed ?? false);
60
+ const longPressTimeoutRef = (0, _react.useRef)(null);
61
+ const pressDelayTimeoutRef = (0, _react.useRef)(null);
62
+ const isOnPressAllowed = (0, _react.useRef)(true);
63
+ const isCurrentlyPressed = (0, _react.useRef)(false);
64
+ const dimensions = (0, _react.useRef)({
65
+ width: 0,
66
+ height: 0
67
+ });
59
68
  const normalizedHitSlop = (0, _react.useMemo)(() => typeof hitSlop === 'number' ? (0, _utils.numberAsInset)(hitSlop) : hitSlop ?? {}, [hitSlop]);
60
69
  const normalizedPressRetentionOffset = (0, _react.useMemo)(() => typeof pressRetentionOffset === 'number' ? (0, _utils.numberAsInset)(pressRetentionOffset) : pressRetentionOffset ?? {}, [pressRetentionOffset]);
70
+ const appliedHitSlop = (0, _utils.addInsets)(normalizedHitSlop, normalizedPressRetentionOffset);
71
+ (0, _react.useLayoutEffect)(() => {
72
+ if (dimensionsAfterResize) {
73
+ dimensions.current = dimensionsAfterResize;
74
+ } else {
75
+ requestAnimationFrame(() => {
76
+ (ref ?? fallbackRef).current?.measure((_x, _y, width, height) => {
77
+ dimensions.current = {
78
+ width,
79
+ height
80
+ };
81
+ });
82
+ });
83
+ }
84
+ }, [dimensionsAfterResize, ref]);
85
+ const cancelLongPress = (0, _react.useCallback)(() => {
86
+ if (longPressTimeoutRef.current) {
87
+ clearTimeout(longPressTimeoutRef.current);
88
+ longPressTimeoutRef.current = null;
89
+ isOnPressAllowed.current = true;
90
+ }
91
+ }, []);
92
+ const cancelDelayedPress = (0, _react.useCallback)(() => {
93
+ if (pressDelayTimeoutRef.current) {
94
+ clearTimeout(pressDelayTimeoutRef.current);
95
+ pressDelayTimeoutRef.current = null;
96
+ }
97
+ }, []);
98
+ const startLongPress = (0, _react.useCallback)(event => {
99
+ if (onLongPress) {
100
+ cancelLongPress();
101
+ longPressTimeoutRef.current = setTimeout(() => {
102
+ isOnPressAllowed.current = false;
103
+ onLongPress(event);
104
+ }, delayLongPress ?? DEFAULT_LONG_PRESS_DURATION);
105
+ }
106
+ }, [onLongPress, cancelLongPress, delayLongPress]);
107
+ const innerHandlePressIn = (0, _react.useCallback)(event => {
108
+ onPressIn?.(event);
109
+ startLongPress(event);
110
+ setPressedState(true);
111
+ if (pressDelayTimeoutRef.current) {
112
+ clearTimeout(pressDelayTimeoutRef.current);
113
+ pressDelayTimeoutRef.current = null;
114
+ }
115
+ }, [onPressIn, startLongPress]);
116
+ const handleFinalize = (0, _react.useCallback)(() => {
117
+ isCurrentlyPressed.current = false;
118
+ cancelLongPress();
119
+ cancelDelayedPress();
120
+ setPressedState(false);
121
+ }, [cancelDelayedPress, cancelLongPress]);
122
+ const handlePressIn = (0, _react.useCallback)(event => {
123
+ if (!(0, _utils.isTouchWithinInset)(dimensions.current, normalizedHitSlop, event.nativeEvent.changedTouches.at(-1))) {
124
+ // Ignoring pressIn within pressRetentionOffset
125
+ return;
126
+ }
127
+ isCurrentlyPressed.current = true;
128
+ if (unstable_pressDelay) {
129
+ pressDelayTimeoutRef.current = setTimeout(() => {
130
+ innerHandlePressIn(event);
131
+ }, unstable_pressDelay);
132
+ } else {
133
+ innerHandlePressIn(event);
134
+ }
135
+ }, [innerHandlePressIn, normalizedHitSlop, unstable_pressDelay]);
136
+ const handlePressOut = (0, _react.useCallback)((event, success = true) => {
137
+ if (!isCurrentlyPressed.current) {
138
+ // Some prop configurations may lead to handlePressOut being called mutliple times.
139
+ return;
140
+ }
141
+ isCurrentlyPressed.current = false;
142
+ if (pressDelayTimeoutRef.current) {
143
+ innerHandlePressIn(event);
144
+ }
145
+ onPressOut?.(event);
146
+ if (isOnPressAllowed.current && success) {
147
+ onPress?.(event);
148
+ }
149
+ handleFinalize();
150
+ }, [handleFinalize, innerHandlePressIn, onPress, onPressOut]);
151
+ const stateMachine = (0, _react.useMemo)(() => (0, _stateDefinitions.getConfiguredStateMachine)(handlePressIn, handlePressOut), [handlePressIn, handlePressOut]);
61
152
  const hoverInTimeout = (0, _react.useRef)(null);
62
153
  const hoverOutTimeout = (0, _react.useRef)(null);
63
- const hoverGesture = (0, _react.useMemo)(() => _gestureObjects.GestureObjects.Hover().manualActivation(true) // Stops Hover from blocking Native gesture activation on web
154
+ const hoverGesture = (0, _react.useMemo)(() => _gestureObjects.GestureObjects.Hover().manualActivation(true) // Prevents Hover blocking Gesture.Native() on web
64
155
  .cancelsTouchesInView(false).onBegin(event => {
65
156
  if (hoverOutTimeout.current) {
66
157
  clearTimeout(hoverOutTimeout.current);
@@ -80,203 +171,63 @@ const Pressable = /*#__PURE__*/(0, _react.forwardRef)((props, pressableRef) => {
80
171
  }
81
172
  onHoverOut?.((0, _utils.gestureToPressableEvent)(event));
82
173
  }), [delayHoverIn, delayHoverOut, onHoverIn, onHoverOut]);
83
- const pressDelayTimeoutRef = (0, _react.useRef)(null);
84
- const isTouchPropagationAllowed = (0, _react.useRef)(false);
85
-
86
- // iOS only: due to varying flow of gestures, events sometimes have to be saved for later use
87
- const deferredEventPayload = (0, _react.useRef)(null);
88
- const pressInHandler = (0, _react.useCallback)(event => {
89
- if (handlingOnTouchesDown.current) {
90
- deferredEventPayload.current = event;
91
- }
92
- if (!isTouchPropagationAllowed.current) {
93
- return;
94
- }
95
- deferredEventPayload.current = null;
96
- onPressIn?.(event);
97
- isPressCallbackEnabled.current = true;
98
- pressDelayTimeoutRef.current = null;
99
- setPressedState(true);
100
- }, [onPressIn]);
101
- const pressOutHandler = (0, _react.useCallback)(event => {
102
- if (!isTouchPropagationAllowed.current) {
103
- hasPassedBoundsChecks.current = false;
104
- isPressCallbackEnabled.current = true;
105
- deferredEventPayload.current = null;
106
- if (longPressTimeoutRef.current) {
107
- clearTimeout(longPressTimeoutRef.current);
108
- longPressTimeoutRef.current = null;
109
- }
110
- if (pressDelayTimeoutRef.current) {
111
- clearTimeout(pressDelayTimeoutRef.current);
112
- pressDelayTimeoutRef.current = null;
113
- }
114
- return;
115
- }
116
- if (!hasPassedBoundsChecks.current || event.nativeEvent.touches.length > event.nativeEvent.changedTouches.length) {
117
- return;
118
- }
119
- if (unstable_pressDelay && pressDelayTimeoutRef.current !== null) {
120
- // When delay is preemptively finished by lifting touches,
121
- // we want to immediately activate it's effects - pressInHandler,
122
- // even though we are located at the pressOutHandler
123
- clearTimeout(pressDelayTimeoutRef.current);
124
- pressInHandler(event);
125
- }
126
- if (deferredEventPayload.current) {
127
- onPressIn?.(deferredEventPayload.current);
128
- deferredEventPayload.current = null;
129
- }
130
- onPressOut?.(event);
131
- if (isPressCallbackEnabled.current) {
132
- onPress?.(event);
133
- }
134
- if (longPressTimeoutRef.current) {
135
- clearTimeout(longPressTimeoutRef.current);
136
- longPressTimeoutRef.current = null;
137
- }
138
- isTouchPropagationAllowed.current = false;
139
- hasPassedBoundsChecks.current = false;
140
- isPressCallbackEnabled.current = true;
141
- setPressedState(false);
142
- }, [onPress, onPressIn, onPressOut, pressInHandler, unstable_pressDelay]);
143
- const handlingOnTouchesDown = (0, _react.useRef)(false);
144
- const onEndHandlingTouchesDown = (0, _react.useRef)(null);
145
- const cancelledMidPress = (0, _react.useRef)(false);
146
- const activateLongPress = (0, _react.useCallback)(event => {
147
- if (!isTouchPropagationAllowed.current) {
148
- return;
149
- }
150
- if (hasPassedBoundsChecks.current && onLongPress) {
151
- onLongPress((0, _utils.gestureTouchToPressableEvent)(event));
152
- isPressCallbackEnabled.current = false;
153
- }
154
- if (longPressTimeoutRef.current) {
155
- clearTimeout(longPressTimeoutRef.current);
156
- longPressTimeoutRef.current = null;
157
- }
158
- }, [onLongPress]);
159
- const longPressTimeoutRef = (0, _react.useRef)(null);
160
- const longPressMinDuration = (delayLongPress ?? DEFAULT_LONG_PRESS_DURATION) + (unstable_pressDelay ?? 0);
161
- const innerPressableRef = (0, _react.useRef)(null);
162
- const measureCallback = (0, _react.useCallback)((width, height, event) => {
163
- if (!(0, _utils.isTouchWithinInset)({
164
- width,
165
- height
166
- }, normalizedHitSlop, event.changedTouches.at(-1)) || hasPassedBoundsChecks.current || cancelledMidPress.current) {
167
- cancelledMidPress.current = false;
168
- onEndHandlingTouchesDown.current = null;
169
- handlingOnTouchesDown.current = false;
170
- return;
171
- }
172
- hasPassedBoundsChecks.current = true;
173
-
174
- // In case of multiple touches, the first one starts long press gesture
175
- if (longPressTimeoutRef.current === null) {
176
- // Start long press gesture timer
177
- longPressTimeoutRef.current = setTimeout(() => activateLongPress(event), longPressMinDuration);
178
- }
179
- if (unstable_pressDelay) {
180
- pressDelayTimeoutRef.current = setTimeout(() => {
181
- pressInHandler((0, _utils.gestureTouchToPressableEvent)(event));
182
- }, unstable_pressDelay);
183
- } else {
184
- pressInHandler((0, _utils.gestureTouchToPressableEvent)(event));
185
- }
186
- onEndHandlingTouchesDown.current?.();
187
- onEndHandlingTouchesDown.current = null;
188
- handlingOnTouchesDown.current = false;
189
- }, [activateLongPress, longPressMinDuration, normalizedHitSlop, pressInHandler, unstable_pressDelay]);
190
- const pressAndTouchGesture = (0, _react.useMemo)(() => _gestureObjects.GestureObjects.LongPress().minDuration(_utils2.INT32_MAX) // Stops long press from blocking native gesture
191
- .maxDistance(_utils2.INT32_MAX) // Stops long press from cancelling after set distance
174
+ const pressAndTouchGesture = (0, _react.useMemo)(() => _gestureObjects.GestureObjects.LongPress().minDuration(_utils2.INT32_MAX) // Stops long press from blocking Gesture.Native()
175
+ .maxDistance(_utils2.INT32_MAX) // Stops long press from cancelling on touch move
192
176
  .cancelsTouchesInView(false).onTouchesDown(event => {
193
- handlingOnTouchesDown.current = true;
194
- if (pressableRef) {
195
- pressableRef.current?.measure((_x, _y, width, height) => {
196
- measureCallback(width, height, event);
197
- });
198
- } else {
199
- innerPressableRef.current?.measure((_x, _y, width, height) => {
200
- measureCallback(width, height, event);
201
- });
177
+ const pressableEvent = (0, _utils.gestureTouchToPressableEvent)(event);
178
+ stateMachine.handleEvent(_stateDefinitions.StateMachineEvent.LONG_PRESS_TOUCHES_DOWN, pressableEvent);
179
+ }).onTouchesUp(() => {
180
+ if (_reactNative.Platform.OS === 'android') {
181
+ // Prevents potential soft-locks
182
+ stateMachine.reset();
183
+ handleFinalize();
202
184
  }
203
- }).onTouchesUp(event => {
204
- if (handlingOnTouchesDown.current) {
205
- onEndHandlingTouchesDown.current = () => pressOutHandler((0, _utils.gestureTouchToPressableEvent)(event));
206
- return;
207
- }
208
- // On iOS, short taps will make LongPress gesture call onTouchesUp before Native gesture calls onStart
209
- // This variable ensures that onStart isn't detected as the first gesture since Pressable is pressed.
210
- if (deferredEventPayload.current !== null) {
211
- shouldPreventNativeEffects.current = true;
212
- }
213
- pressOutHandler((0, _utils.gestureTouchToPressableEvent)(event));
214
185
  }).onTouchesCancelled(event => {
215
- isPressCallbackEnabled.current = false;
216
- if (handlingOnTouchesDown.current) {
217
- cancelledMidPress.current = true;
218
- onEndHandlingTouchesDown.current = () => pressOutHandler((0, _utils.gestureTouchToPressableEvent)(event));
219
- return;
220
- }
221
- if (!hasPassedBoundsChecks.current || event.allTouches.length > event.changedTouches.length) {
222
- return;
186
+ const pressableEvent = (0, _utils.gestureTouchToPressableEvent)(event);
187
+ stateMachine.reset();
188
+ handlePressOut(pressableEvent, false);
189
+ }).onFinalize(() => {
190
+ if (_reactNative.Platform.OS === 'web') {
191
+ stateMachine.handleEvent(_stateDefinitions.StateMachineEvent.FINALIZE);
192
+ handleFinalize();
223
193
  }
224
- pressOutHandler((0, _utils.gestureTouchToPressableEvent)(event));
225
- }), [pressableRef, measureCallback, pressOutHandler]);
194
+ }), [stateMachine, handleFinalize, handlePressOut]);
226
195
 
227
196
  // RNButton is placed inside ButtonGesture to enable Android's ripple and to capture non-propagating events
228
- const buttonGesture = (0, _react.useMemo)(() => _gestureObjects.GestureObjects.Native().onBegin(() => {
229
- // Android sets BEGAN state on press down
230
- if (_reactNative.Platform.OS === 'android' || _reactNative.Platform.OS === 'macos') {
231
- isTouchPropagationAllowed.current = true;
197
+ const buttonGesture = (0, _react.useMemo)(() => _gestureObjects.GestureObjects.Native().onTouchesCancelled(event => {
198
+ if (_reactNative.Platform.OS !== 'macos' && _reactNative.Platform.OS !== 'web') {
199
+ // On MacOS cancel occurs in middle of gesture
200
+ // On Web cancel occurs on mouse move, which is unwanted
201
+ const pressableEvent = (0, _utils.gestureTouchToPressableEvent)(event);
202
+ stateMachine.reset();
203
+ handlePressOut(pressableEvent, false);
232
204
  }
205
+ }).onBegin(() => {
206
+ stateMachine.handleEvent(_stateDefinitions.StateMachineEvent.NATIVE_BEGIN);
233
207
  }).onStart(() => {
234
- if (_reactNative.Platform.OS === 'web') {
235
- isTouchPropagationAllowed.current = true;
236
- }
237
-
238
- // iOS sets ACTIVE state on press down
239
- if (_reactNative.Platform.OS !== 'ios') {
240
- return;
241
- }
242
- if (deferredEventPayload.current) {
243
- isTouchPropagationAllowed.current = true;
244
- if (hasPassedBoundsChecks.current) {
245
- pressInHandler(deferredEventPayload.current);
246
- deferredEventPayload.current = null;
247
- } else {
248
- pressOutHandler(deferredEventPayload.current);
249
- isTouchPropagationAllowed.current = false;
250
- }
251
- return;
252
- }
253
- if (hasPassedBoundsChecks.current) {
254
- isTouchPropagationAllowed.current = true;
255
- return;
208
+ if (_reactNative.Platform.OS !== 'android') {
209
+ // Gesture.Native().onStart() is broken with Android + hitSlop
210
+ stateMachine.handleEvent(_stateDefinitions.StateMachineEvent.NATIVE_START);
256
211
  }
257
- if (shouldPreventNativeEffects.current) {
258
- shouldPreventNativeEffects.current = false;
259
- if (!handlingOnTouchesDown.current) {
260
- return;
261
- }
212
+ }).onFinalize(() => {
213
+ if (_reactNative.Platform.OS !== 'web') {
214
+ // On Web we use LongPress().onFinalize() instead of Native().onFinalize(),
215
+ // as Native cancels on mouse move, and LongPress does not.
216
+ stateMachine.handleEvent(_stateDefinitions.StateMachineEvent.FINALIZE);
217
+ handleFinalize();
262
218
  }
263
- isTouchPropagationAllowed.current = true;
264
- }), [pressInHandler, pressOutHandler]);
265
- const appliedHitSlop = (0, _utils.addInsets)(normalizedHitSlop, normalizedPressRetentionOffset);
219
+ }), [stateMachine, handlePressOut, handleFinalize]);
266
220
  const isPressableEnabled = disabled !== true;
267
221
  const gestures = [buttonGesture, pressAndTouchGesture, hoverGesture];
268
222
  for (const gesture of gestures) {
269
223
  gesture.enabled(isPressableEnabled);
270
224
  gesture.runOnJS(true);
271
225
  gesture.hitSlop(appliedHitSlop);
272
- gesture.shouldCancelWhenOutside(_reactNative.Platform.OS === 'web' ? false : true);
226
+ gesture.shouldCancelWhenOutside(_reactNative.Platform.OS !== 'web');
273
227
  Object.entries(relationProps).forEach(([relationName, relation]) => {
274
228
  (0, _utils3.applyRelationProp)(gesture, relationName, relation);
275
229
  });
276
230
  }
277
-
278
- // Uses different hitSlop, to activate on hitSlop area instead of pressRetentionOffset area
279
- buttonGesture.hitSlop(normalizedHitSlop);
280
231
  const gesture = _gestureObjects.GestureObjects.Simultaneous(...gestures);
281
232
 
282
233
  // `cursor: 'pointer'` on `RNButton` crashes iOS
@@ -301,7 +252,7 @@ const Pressable = /*#__PURE__*/(0, _react.forwardRef)((props, pressableRef) => {
301
252
  gesture: gesture,
302
253
  children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_GestureHandlerButton.default, {
303
254
  ...remainingProps,
304
- ref: pressableRef ?? innerPressableRef,
255
+ ref: ref ?? fallbackRef,
305
256
  accessible: accessible !== false,
306
257
  hitSlop: appliedHitSlop,
307
258
  enabled: isPressableEnabled,
@@ -319,6 +270,6 @@ const Pressable = /*#__PURE__*/(0, _react.forwardRef)((props, pressableRef) => {
319
270
  }) : null]
320
271
  })
321
272
  });
322
- });
273
+ };
323
274
  var _default = exports.default = Pressable;
324
275
  //# sourceMappingURL=Pressable.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_gestureObjects","_GestureDetector","_reactNative","_GestureHandlerButton","_interopRequireDefault","_utils","_PressabilityDebugView","_utils2","_utils3","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DEFAULT_LONG_PRESS_DURATION","IS_TEST_ENV","isTestEnv","IS_FABRIC","Pressable","forwardRef","props","pressableRef","testOnly_pressed","hitSlop","pressRetentionOffset","delayHoverIn","onHoverIn","delayHoverOut","onHoverOut","delayLongPress","unstable_pressDelay","onPress","onPressIn","onPressOut","onLongPress","style","children","android_disableSound","android_ripple","disabled","accessible","simultaneousWithExternalGesture","requireExternalGestureToFail","blocksExternalGesture","remainingProps","relationProps","pressedState","setPressedState","useState","isPressCallbackEnabled","useRef","hasPassedBoundsChecks","shouldPreventNativeEffects","normalizedHitSlop","useMemo","numberAsInset","normalizedPressRetentionOffset","hoverInTimeout","hoverOutTimeout","hoverGesture","Gesture","Hover","manualActivation","cancelsTouchesInView","onBegin","event","current","clearTimeout","setTimeout","gestureToPressableEvent","onFinalize","pressDelayTimeoutRef","isTouchPropagationAllowed","deferredEventPayload","pressInHandler","useCallback","handlingOnTouchesDown","pressOutHandler","longPressTimeoutRef","nativeEvent","touches","length","changedTouches","onEndHandlingTouchesDown","cancelledMidPress","activateLongPress","gestureTouchToPressableEvent","longPressMinDuration","innerPressableRef","measureCallback","width","height","isTouchWithinInset","at","pressAndTouchGesture","LongPress","minDuration","INT32_MAX","maxDistance","onTouchesDown","measure","_x","_y","onTouchesUp","onTouchesCancelled","allTouches","buttonGesture","Native","Platform","OS","onStart","appliedHitSlop","addInsets","isPressableEnabled","gestures","gesture","enabled","runOnJS","shouldCancelWhenOutside","entries","forEach","relationName","relation","applyRelationProp","Simultaneous","pointerStyle","cursor","styleProp","pressed","childrenProp","rippleColor","isFabric","defaultRippleColor","undefined","unprocessedRippleColor","color","processColor","jsx","GestureDetector","jsxs","ref","touchSoundDisabled","rippleRadius","radius","testOnly_onPress","testOnly_onPressIn","testOnly_onPressOut","testOnly_onLongPress","__DEV__","PressabilityDebugView","_default","exports"],"sourceRoot":"../../../../src","sources":["components/Pressable/Pressable.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AASA,IAAAC,eAAA,GAAAD,OAAA;AACA,IAAAE,gBAAA,GAAAF,OAAA;AAEA,IAAAG,YAAA,GAAAH,OAAA;AAQA,IAAAI,qBAAA,GAAAC,sBAAA,CAAAL,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;AAOA,IAAAO,sBAAA,GAAAP,OAAA;AAEA,IAAAQ,OAAA,GAAAR,OAAA;AACA,IAAAS,OAAA,GAAAT,OAAA;AAIkB,IAAAU,WAAA,GAAAV,OAAA;AAAA,SAAAK,uBAAAM,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAZ,wBAAAY,CAAA,EAAAG,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAhB,uBAAA,YAAAA,CAAAY,CAAA,EAAAG,CAAA,SAAAA,CAAA,IAAAH,CAAA,IAAAA,CAAA,CAAAC,UAAA,SAAAD,CAAA,MAAAO,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAR,OAAA,EAAAF,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAS,CAAA,MAAAF,CAAA,GAAAJ,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAE,CAAA,CAAAI,GAAA,CAAAX,CAAA,UAAAO,CAAA,CAAAK,GAAA,CAAAZ,CAAA,GAAAO,CAAA,CAAAM,GAAA,CAAAb,CAAA,EAAAS,CAAA,gBAAAN,CAAA,IAAAH,CAAA,gBAAAG,CAAA,OAAAW,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAG,CAAA,OAAAK,CAAA,IAAAD,CAAA,GAAAS,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAG,CAAA,OAAAK,CAAA,CAAAI,GAAA,IAAAJ,CAAA,CAAAK,GAAA,IAAAN,CAAA,CAAAE,CAAA,EAAAN,CAAA,EAAAK,CAAA,IAAAC,CAAA,CAAAN,CAAA,IAAAH,CAAA,CAAAG,CAAA,WAAAM,CAAA,KAAAT,CAAA,EAAAG,CAAA;AAElB,MAAMgB,2BAA2B,GAAG,GAAG;AACvC,MAAMC,WAAW,GAAG,IAAAC,iBAAS,EAAC,CAAC;AAE/B,IAAIC,SAAyB,GAAG,IAAI;AAEpC,MAAMC,SAAS,gBAAG,IAAAC,iBAAU,EAC1B,CACEC,KAAqB,EACrBC,YAA2D,KACxD;EACH,MAAM;IACJC,gBAAgB;IAChBC,OAAO;IACPC,oBAAoB;IACpBC,YAAY;IACZC,SAAS;IACTC,aAAa;IACbC,UAAU;IACVC,cAAc;IACdC,mBAAmB;IACnBC,OAAO;IACPC,SAAS;IACTC,UAAU;IACVC,WAAW;IACXC,KAAK;IACLC,QAAQ;IACRC,oBAAoB;IACpBC,cAAc;IACdC,QAAQ;IACRC,UAAU;IACVC,+BAA+B;IAC/BC,4BAA4B;IAC5BC,qBAAqB;IACrB,GAAGC;EACL,CAAC,GAAGxB,KAAK;EAET,MAAMyB,aAAa,GAAG;IACpBJ,+BAA+B;IAC/BC,4BAA4B;IAC5BC;EACF,CAAC;EAED,MAAM,CAACG,YAAY,EAAEC,eAAe,CAAC,GAAG,IAAAC,eAAQ,EAAC1B,gBAAgB,IAAI,KAAK,CAAC;;EAE3E;EACA,MAAM2B,sBAAsB,GAAG,IAAAC,aAAM,EAAU,IAAI,CAAC;EACpD,MAAMC,qBAAqB,GAAG,IAAAD,aAAM,EAAU,KAAK,CAAC;EACpD,MAAME,0BAA0B,GAAG,IAAAF,aAAM,EAAU,KAAK,CAAC;EAEzD,MAAMG,iBAAyB,GAAG,IAAAC,cAAO,EACvC,MACE,OAAO/B,OAAO,KAAK,QAAQ,GAAG,IAAAgC,oBAAa,EAAChC,OAAO,CAAC,GAAIA,OAAO,IAAI,CAAC,CAAE,EACxE,CAACA,OAAO,CACV,CAAC;EAED,MAAMiC,8BAAsC,GAAG,IAAAF,cAAO,EACpD,MACE,OAAO9B,oBAAoB,KAAK,QAAQ,GACpC,IAAA+B,oBAAa,EAAC/B,oBAAoB,CAAC,GAClCA,oBAAoB,IAAI,CAAC,CAAE,EAClC,CAACA,oBAAoB,CACvB,CAAC;EAED,MAAMiC,cAAc,GAAG,IAAAP,aAAM,EAAgB,IAAI,CAAC;EAClD,MAAMQ,eAAe,GAAG,IAAAR,aAAM,EAAgB,IAAI,CAAC;EAEnD,MAAMS,YAAY,GAAG,IAAAL,cAAO,EAC1B,MACEM,8BAAO,CAACC,KAAK,CAAC,CAAC,CACZC,gBAAgB,CAAC,IAAI,CAAC,CAAC;EAAA,CACvBC,oBAAoB,CAAC,KAAK,CAAC,CAC3BC,OAAO,CAAEC,KAAK,IAAK;IAClB,IAAIP,eAAe,CAACQ,OAAO,EAAE;MAC3BC,YAAY,CAACT,eAAe,CAACQ,OAAO,CAAC;IACvC;IACA,IAAIzC,YAAY,EAAE;MAChBgC,cAAc,CAACS,OAAO,GAAGE,UAAU,CACjC,MAAM1C,SAAS,GAAG,IAAA2C,8BAAuB,EAACJ,KAAK,CAAC,CAAC,EACjDxC,YACF,CAAC;MACD;IACF;IACAC,SAAS,GAAG,IAAA2C,8BAAuB,EAACJ,KAAK,CAAC,CAAC;EAC7C,CAAC,CAAC,CACDK,UAAU,CAAEL,KAAK,IAAK;IACrB,IAAIR,cAAc,CAACS,OAAO,EAAE;MAC1BC,YAAY,CAACV,cAAc,CAACS,OAAO,CAAC;IACtC;IACA,IAAIvC,aAAa,EAAE;MACjB+B,eAAe,CAACQ,OAAO,GAAGE,UAAU,CAClC,MAAMxC,UAAU,GAAG,IAAAyC,8BAAuB,EAACJ,KAAK,CAAC,CAAC,EAClDtC,aACF,CAAC;MACD;IACF;IACAC,UAAU,GAAG,IAAAyC,8BAAuB,EAACJ,KAAK,CAAC,CAAC;EAC9C,CAAC,CAAC,EACN,CAACxC,YAAY,EAAEE,aAAa,EAAED,SAAS,EAAEE,UAAU,CACrD,CAAC;EAED,MAAM2C,oBAAoB,GAAG,IAAArB,aAAM,EAAgB,IAAI,CAAC;EACxD,MAAMsB,yBAAyB,GAAG,IAAAtB,aAAM,EAAU,KAAK,CAAC;;EAExD;EACA,MAAMuB,oBAAoB,GAAG,IAAAvB,aAAM,EAAwB,IAAI,CAAC;EAEhE,MAAMwB,cAAc,GAAG,IAAAC,kBAAW,EAC/BV,KAAqB,IAAK;IACzB,IAAIW,qBAAqB,CAACV,OAAO,EAAE;MACjCO,oBAAoB,CAACP,OAAO,GAAGD,KAAK;IACtC;IAEA,IAAI,CAACO,yBAAyB,CAACN,OAAO,EAAE;MACtC;IACF;IAEAO,oBAAoB,CAACP,OAAO,GAAG,IAAI;IAEnClC,SAAS,GAAGiC,KAAK,CAAC;IAClBhB,sBAAsB,CAACiB,OAAO,GAAG,IAAI;IACrCK,oBAAoB,CAACL,OAAO,GAAG,IAAI;IACnCnB,eAAe,CAAC,IAAI,CAAC;EACvB,CAAC,EACD,CAACf,SAAS,CACZ,CAAC;EAED,MAAM6C,eAAe,GAAG,IAAAF,kBAAW,EAChCV,KAAqB,IAAK;IACzB,IAAI,CAACO,yBAAyB,CAACN,OAAO,EAAE;MACtCf,qBAAqB,CAACe,OAAO,GAAG,KAAK;MACrCjB,sBAAsB,CAACiB,OAAO,GAAG,IAAI;MACrCO,oBAAoB,CAACP,OAAO,GAAG,IAAI;MAEnC,IAAIY,mBAAmB,CAACZ,OAAO,EAAE;QAC/BC,YAAY,CAACW,mBAAmB,CAACZ,OAAO,CAAC;QACzCY,mBAAmB,CAACZ,OAAO,GAAG,IAAI;MACpC;MAEA,IAAIK,oBAAoB,CAACL,OAAO,EAAE;QAChCC,YAAY,CAACI,oBAAoB,CAACL,OAAO,CAAC;QAC1CK,oBAAoB,CAACL,OAAO,GAAG,IAAI;MACrC;MAEA;IACF;IAEA,IACE,CAACf,qBAAqB,CAACe,OAAO,IAC9BD,KAAK,CAACc,WAAW,CAACC,OAAO,CAACC,MAAM,GAC9BhB,KAAK,CAACc,WAAW,CAACG,cAAc,CAACD,MAAM,EACzC;MACA;IACF;IAEA,IAAInD,mBAAmB,IAAIyC,oBAAoB,CAACL,OAAO,KAAK,IAAI,EAAE;MAChE;MACA;MACA;MACAC,YAAY,CAACI,oBAAoB,CAACL,OAAO,CAAC;MAC1CQ,cAAc,CAACT,KAAK,CAAC;IACvB;IAEA,IAAIQ,oBAAoB,CAACP,OAAO,EAAE;MAChClC,SAAS,GAAGyC,oBAAoB,CAACP,OAAO,CAAC;MACzCO,oBAAoB,CAACP,OAAO,GAAG,IAAI;IACrC;IAEAjC,UAAU,GAAGgC,KAAK,CAAC;IAEnB,IAAIhB,sBAAsB,CAACiB,OAAO,EAAE;MAClCnC,OAAO,GAAGkC,KAAK,CAAC;IAClB;IAEA,IAAIa,mBAAmB,CAACZ,OAAO,EAAE;MAC/BC,YAAY,CAACW,mBAAmB,CAACZ,OAAO,CAAC;MACzCY,mBAAmB,CAACZ,OAAO,GAAG,IAAI;IACpC;IAEAM,yBAAyB,CAACN,OAAO,GAAG,KAAK;IACzCf,qBAAqB,CAACe,OAAO,GAAG,KAAK;IACrCjB,sBAAsB,CAACiB,OAAO,GAAG,IAAI;IACrCnB,eAAe,CAAC,KAAK,CAAC;EACxB,CAAC,EACD,CAAChB,OAAO,EAAEC,SAAS,EAAEC,UAAU,EAAEyC,cAAc,EAAE5C,mBAAmB,CACtE,CAAC;EAED,MAAM8C,qBAAqB,GAAG,IAAA1B,aAAM,EAAU,KAAK,CAAC;EACpD,MAAMiC,wBAAwB,GAAG,IAAAjC,aAAM,EAAsB,IAAI,CAAC;EAClE,MAAMkC,iBAAiB,GAAG,IAAAlC,aAAM,EAAU,KAAK,CAAC;EAEhD,MAAMmC,iBAAiB,GAAG,IAAAV,kBAAW,EAClCV,KAAwB,IAAK;IAC5B,IAAI,CAACO,yBAAyB,CAACN,OAAO,EAAE;MACtC;IACF;IAEA,IAAIf,qBAAqB,CAACe,OAAO,IAAIhC,WAAW,EAAE;MAChDA,WAAW,CAAC,IAAAoD,mCAA4B,EAACrB,KAAK,CAAC,CAAC;MAChDhB,sBAAsB,CAACiB,OAAO,GAAG,KAAK;IACxC;IAEA,IAAIY,mBAAmB,CAACZ,OAAO,EAAE;MAC/BC,YAAY,CAACW,mBAAmB,CAACZ,OAAO,CAAC;MACzCY,mBAAmB,CAACZ,OAAO,GAAG,IAAI;IACpC;EACF,CAAC,EACD,CAAChC,WAAW,CACd,CAAC;EAED,MAAM4C,mBAAmB,GAAG,IAAA5B,aAAM,EAAgB,IAAI,CAAC;EACvD,MAAMqC,oBAAoB,GACxB,CAAC1D,cAAc,IAAIf,2BAA2B,KAC7CgB,mBAAmB,IAAI,CAAC,CAAC;EAE5B,MAAM0D,iBAAiB,GAAG,IAAAtC,aAAM,EAAkC,IAAI,CAAC;EAEvE,MAAMuC,eAAe,GAAG,IAAAd,kBAAW,EACjC,CAACe,KAAa,EAAEC,MAAc,EAAE1B,KAAwB,KAAK;IAC3D,IACE,CAAC,IAAA2B,yBAAkB,EACjB;MACEF,KAAK;MACLC;IACF,CAAC,EACDtC,iBAAiB,EACjBY,KAAK,CAACiB,cAAc,CAACW,EAAE,CAAC,CAAC,CAAC,CAC5B,CAAC,IACD1C,qBAAqB,CAACe,OAAO,IAC7BkB,iBAAiB,CAAClB,OAAO,EACzB;MACAkB,iBAAiB,CAAClB,OAAO,GAAG,KAAK;MACjCiB,wBAAwB,CAACjB,OAAO,GAAG,IAAI;MACvCU,qBAAqB,CAACV,OAAO,GAAG,KAAK;MACrC;IACF;IAEAf,qBAAqB,CAACe,OAAO,GAAG,IAAI;;IAEpC;IACA,IAAIY,mBAAmB,CAACZ,OAAO,KAAK,IAAI,EAAE;MACxC;MACAY,mBAAmB,CAACZ,OAAO,GAAGE,UAAU,CACtC,MAAMiB,iBAAiB,CAACpB,KAAK,CAAC,EAC9BsB,oBACF,CAAC;IACH;IAEA,IAAIzD,mBAAmB,EAAE;MACvByC,oBAAoB,CAACL,OAAO,GAAGE,UAAU,CAAC,MAAM;QAC9CM,cAAc,CAAC,IAAAY,mCAA4B,EAACrB,KAAK,CAAC,CAAC;MACrD,CAAC,EAAEnC,mBAAmB,CAAC;IACzB,CAAC,MAAM;MACL4C,cAAc,CAAC,IAAAY,mCAA4B,EAACrB,KAAK,CAAC,CAAC;IACrD;IAEAkB,wBAAwB,CAACjB,OAAO,GAAG,CAAC;IACpCiB,wBAAwB,CAACjB,OAAO,GAAG,IAAI;IACvCU,qBAAqB,CAACV,OAAO,GAAG,KAAK;EACvC,CAAC,EACD,CACEmB,iBAAiB,EACjBE,oBAAoB,EACpBlC,iBAAiB,EACjBqB,cAAc,EACd5C,mBAAmB,CAEvB,CAAC;EAED,MAAMgE,oBAAoB,GAAG,IAAAxC,cAAO,EAClC,MACEM,8BAAO,CAACmC,SAAS,CAAC,CAAC,CAChBC,WAAW,CAACC,iBAAS,CAAC,CAAC;EAAA,CACvBC,WAAW,CAACD,iBAAS,CAAC,CAAC;EAAA,CACvBlC,oBAAoB,CAAC,KAAK,CAAC,CAC3BoC,aAAa,CAAElC,KAAK,IAAK;IACxBW,qBAAqB,CAACV,OAAO,GAAG,IAAI;IACpC,IAAI7C,YAAY,EAAE;MAEdA,YAAY,CACZ6C,OAAO,EAAEkC,OAAO,CAAC,CAACC,EAAE,EAAEC,EAAE,EAAEZ,KAAK,EAAEC,MAAM,KAAK;QAC5CF,eAAe,CAACC,KAAK,EAAEC,MAAM,EAAE1B,KAAK,CAAC;MACvC,CAAC,CAAC;IACJ,CAAC,MAAM;MACLuB,iBAAiB,CAACtB,OAAO,EAAEkC,OAAO,CAAC,CAACC,EAAE,EAAEC,EAAE,EAAEZ,KAAK,EAAEC,MAAM,KAAK;QAC5DF,eAAe,CAACC,KAAK,EAAEC,MAAM,EAAE1B,KAAK,CAAC;MACvC,CAAC,CAAC;IACJ;EACF,CAAC,CAAC,CACDsC,WAAW,CAAEtC,KAAK,IAAK;IACtB,IAAIW,qBAAqB,CAACV,OAAO,EAAE;MACjCiB,wBAAwB,CAACjB,OAAO,GAAG,MACjCW,eAAe,CAAC,IAAAS,mCAA4B,EAACrB,KAAK,CAAC,CAAC;MACtD;IACF;IACA;IACA;IACA,IAAIQ,oBAAoB,CAACP,OAAO,KAAK,IAAI,EAAE;MACzCd,0BAA0B,CAACc,OAAO,GAAG,IAAI;IAC3C;IACAW,eAAe,CAAC,IAAAS,mCAA4B,EAACrB,KAAK,CAAC,CAAC;EACtD,CAAC,CAAC,CACDuC,kBAAkB,CAAEvC,KAAK,IAAK;IAC7BhB,sBAAsB,CAACiB,OAAO,GAAG,KAAK;IAEtC,IAAIU,qBAAqB,CAACV,OAAO,EAAE;MACjCkB,iBAAiB,CAAClB,OAAO,GAAG,IAAI;MAChCiB,wBAAwB,CAACjB,OAAO,GAAG,MACjCW,eAAe,CAAC,IAAAS,mCAA4B,EAACrB,KAAK,CAAC,CAAC;MACtD;IACF;IAEA,IACE,CAACd,qBAAqB,CAACe,OAAO,IAC9BD,KAAK,CAACwC,UAAU,CAACxB,MAAM,GAAGhB,KAAK,CAACiB,cAAc,CAACD,MAAM,EACrD;MACA;IACF;IAEAJ,eAAe,CAAC,IAAAS,mCAA4B,EAACrB,KAAK,CAAC,CAAC;EACtD,CAAC,CAAC,EACN,CAAC5C,YAAY,EAAEoE,eAAe,EAAEZ,eAAe,CACjD,CAAC;;EAED;EACA,MAAM6B,aAAa,GAAG,IAAApD,cAAO,EAC3B,MACEM,8BAAO,CAAC+C,MAAM,CAAC,CAAC,CACb3C,OAAO,CAAC,MAAM;IACb;IACA,IAAI4C,qBAAQ,CAACC,EAAE,KAAK,SAAS,IAAID,qBAAQ,CAACC,EAAE,KAAK,OAAO,EAAE;MACxDrC,yBAAyB,CAACN,OAAO,GAAG,IAAI;IAC1C;EACF,CAAC,CAAC,CACD4C,OAAO,CAAC,MAAM;IACb,IAAIF,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;MACzBrC,yBAAyB,CAACN,OAAO,GAAG,IAAI;IAC1C;;IAEA;IACA,IAAI0C,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;MACzB;IACF;IAEA,IAAIpC,oBAAoB,CAACP,OAAO,EAAE;MAChCM,yBAAyB,CAACN,OAAO,GAAG,IAAI;MAExC,IAAIf,qBAAqB,CAACe,OAAO,EAAE;QACjCQ,cAAc,CAACD,oBAAoB,CAACP,OAAO,CAAC;QAC5CO,oBAAoB,CAACP,OAAO,GAAG,IAAI;MACrC,CAAC,MAAM;QACLW,eAAe,CAACJ,oBAAoB,CAACP,OAAO,CAAC;QAC7CM,yBAAyB,CAACN,OAAO,GAAG,KAAK;MAC3C;MAEA;IACF;IAEA,IAAIf,qBAAqB,CAACe,OAAO,EAAE;MACjCM,yBAAyB,CAACN,OAAO,GAAG,IAAI;MACxC;IACF;IAEA,IAAId,0BAA0B,CAACc,OAAO,EAAE;MACtCd,0BAA0B,CAACc,OAAO,GAAG,KAAK;MAC1C,IAAI,CAACU,qBAAqB,CAACV,OAAO,EAAE;QAClC;MACF;IACF;IAEAM,yBAAyB,CAACN,OAAO,GAAG,IAAI;EAC1C,CAAC,CAAC,EACN,CAACQ,cAAc,EAAEG,eAAe,CAClC,CAAC;EAED,MAAMkC,cAAc,GAAG,IAAAC,gBAAS,EAC9B3D,iBAAiB,EACjBG,8BACF,CAAC;EAED,MAAMyD,kBAAkB,GAAG1E,QAAQ,KAAK,IAAI;EAE5C,MAAM2E,QAAQ,GAAG,CAACR,aAAa,EAAEZ,oBAAoB,EAAEnC,YAAY,CAAC;EAEpE,KAAK,MAAMwD,OAAO,IAAID,QAAQ,EAAE;IAC9BC,OAAO,CAACC,OAAO,CAACH,kBAAkB,CAAC;IACnCE,OAAO,CAACE,OAAO,CAAC,IAAI,CAAC;IACrBF,OAAO,CAAC5F,OAAO,CAACwF,cAAc,CAAC;IAC/BI,OAAO,CAACG,uBAAuB,CAACV,qBAAQ,CAACC,EAAE,KAAK,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;IAErElG,MAAM,CAAC4G,OAAO,CAAC1E,aAAa,CAAC,CAAC2E,OAAO,CAAC,CAAC,CAACC,YAAY,EAAEC,QAAQ,CAAC,KAAK;MAClE,IAAAC,yBAAiB,EACfR,OAAO,EACPM,YAAY,EACZC,QACF,CAAC;IACH,CAAC,CAAC;EACJ;;EAEA;EACAhB,aAAa,CAACnF,OAAO,CAAC8B,iBAAiB,CAAC;EAExC,MAAM8D,OAAO,GAAGvD,8BAAO,CAACgE,YAAY,CAAC,GAAGV,QAAQ,CAAC;;EAEjD;EACA,MAAMW,YAAkC,GACtCjB,qBAAQ,CAACC,EAAE,KAAK,KAAK,GAAG;IAAEiB,MAAM,EAAE;EAAU,CAAC,GAAG,CAAC,CAAC;EAEpD,MAAMC,SAAS,GACb,OAAO5F,KAAK,KAAK,UAAU,GAAGA,KAAK,CAAC;IAAE6F,OAAO,EAAElF;EAAa,CAAC,CAAC,GAAGX,KAAK;EAExE,MAAM8F,YAAY,GAChB,OAAO7F,QAAQ,KAAK,UAAU,GAC1BA,QAAQ,CAAC;IAAE4F,OAAO,EAAElF;EAAa,CAAC,CAAC,GACnCV,QAAQ;EAEd,MAAM8F,WAAW,GAAG,IAAA5E,cAAO,EAAC,MAAM;IAChC,IAAIrC,SAAS,KAAK,IAAI,EAAE;MACtBA,SAAS,GAAG,IAAAkH,gBAAQ,EAAC,CAAC;IACxB;IAEA,MAAMC,kBAAkB,GAAG9F,cAAc,GAAG+F,SAAS,GAAG,aAAa;IACrE,MAAMC,sBAAsB,GAC1BhG,cAAc,EAAEiG,KAAK,IAAIH,kBAAkB;IAC7C,OAAOnH,SAAS,GACZqH,sBAAsB,GACtB,IAAAE,yBAAY,EAACF,sBAAsB,CAAC;EAC1C,CAAC,EAAE,CAAChG,cAAc,CAAC,CAAC;EAEpB,oBACE,IAAA5C,WAAA,CAAA+I,GAAA,EAACvJ,gBAAA,CAAAwJ,eAAe;IAACvB,OAAO,EAAEA,OAAQ;IAAA/E,QAAA,eAChC,IAAA1C,WAAA,CAAAiJ,IAAA,EAACvJ,qBAAA,CAAAS,OAAY;MAAA,GACP+C,cAAc;MAClBgG,GAAG,EAAEvH,YAAY,IAAImE,iBAAkB;MACvChD,UAAU,EAAEA,UAAU,KAAK,KAAM;MACjCjB,OAAO,EAAEwF,cAAe;MACxBK,OAAO,EAAEH,kBAAmB;MAC5B4B,kBAAkB,EAAExG,oBAAoB,IAAIgG,SAAU;MACtDH,WAAW,EAAEA,WAAY;MACzBY,YAAY,EAAExG,cAAc,EAAEyG,MAAM,IAAIV,SAAU;MAClDlG,KAAK,EAAE,CAAC0F,YAAY,EAAEE,SAAS,CAAE;MACjCiB,gBAAgB,EAAEjI,WAAW,GAAGgB,OAAO,GAAGsG,SAAU;MACpDY,kBAAkB,EAAElI,WAAW,GAAGiB,SAAS,GAAGqG,SAAU;MACxDa,mBAAmB,EAAEnI,WAAW,GAAGkB,UAAU,GAAGoG,SAAU;MAC1Dc,oBAAoB,EAAEpI,WAAW,GAAGmB,WAAW,GAAGmG,SAAU;MAAAjG,QAAA,GAC3D6F,YAAY,EACZmB,OAAO,gBACN,IAAA1J,WAAA,CAAA+I,GAAA,EAAClJ,sBAAA,CAAA8J,qBAAqB;QAACd,KAAK,EAAC,KAAK;QAAChH,OAAO,EAAE8B;MAAkB,CAAE,CAAC,GAC/D,IAAI;IAAA,CACI;EAAC,CACA,CAAC;AAEtB,CACF,CAAC;AAAC,IAAAiG,QAAA,GAAAC,OAAA,CAAA1J,OAAA,GAEaqB,SAAS","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_gestureObjects","_GestureDetector","_reactNative","_GestureHandlerButton","_interopRequireDefault","_utils","_PressabilityDebugView","_utils2","_utils3","_stateDefinitions","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DEFAULT_LONG_PRESS_DURATION","IS_TEST_ENV","isTestEnv","IS_FABRIC","Pressable","props","ref","testOnly_pressed","hitSlop","pressRetentionOffset","delayHoverIn","delayHoverOut","delayLongPress","unstable_pressDelay","onHoverIn","onHoverOut","onPress","onPressIn","onPressOut","onLongPress","style","children","android_disableSound","android_ripple","disabled","accessible","simultaneousWithExternalGesture","requireExternalGestureToFail","blocksExternalGesture","dimensionsAfterResize","remainingProps","relationProps","fallbackRef","useRef","pressedState","setPressedState","useState","longPressTimeoutRef","pressDelayTimeoutRef","isOnPressAllowed","isCurrentlyPressed","dimensions","width","height","normalizedHitSlop","useMemo","numberAsInset","normalizedPressRetentionOffset","appliedHitSlop","addInsets","useLayoutEffect","current","requestAnimationFrame","measure","_x","_y","cancelLongPress","useCallback","clearTimeout","cancelDelayedPress","startLongPress","event","setTimeout","innerHandlePressIn","handleFinalize","handlePressIn","isTouchWithinInset","nativeEvent","changedTouches","at","handlePressOut","success","stateMachine","getConfiguredStateMachine","hoverInTimeout","hoverOutTimeout","hoverGesture","Gesture","Hover","manualActivation","cancelsTouchesInView","onBegin","gestureToPressableEvent","onFinalize","pressAndTouchGesture","LongPress","minDuration","INT32_MAX","maxDistance","onTouchesDown","pressableEvent","gestureTouchToPressableEvent","handleEvent","StateMachineEvent","LONG_PRESS_TOUCHES_DOWN","onTouchesUp","Platform","OS","reset","onTouchesCancelled","FINALIZE","buttonGesture","Native","NATIVE_BEGIN","onStart","NATIVE_START","isPressableEnabled","gestures","gesture","enabled","runOnJS","shouldCancelWhenOutside","entries","forEach","relationName","relation","applyRelationProp","Simultaneous","pointerStyle","cursor","styleProp","pressed","childrenProp","rippleColor","isFabric","defaultRippleColor","undefined","unprocessedRippleColor","color","processColor","jsx","GestureDetector","jsxs","touchSoundDisabled","rippleRadius","radius","testOnly_onPress","testOnly_onPressIn","testOnly_onPressOut","testOnly_onLongPress","__DEV__","PressabilityDebugView","_default","exports"],"sourceRoot":"../../../../src","sources":["components/Pressable/Pressable.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.PressableStateMachine = void 0;
7
+ class PressableStateMachine {
8
+ constructor(steps) {
9
+ this.states = steps;
10
+ this.currentStepIndex = 0;
11
+ this.eventPayload = null;
12
+ }
13
+ reset() {
14
+ this.currentStepIndex = 0;
15
+ this.eventPayload = null;
16
+ }
17
+ handleEvent(eventName, eventPayload) {
18
+ const step = this.states[this.currentStepIndex];
19
+ this.eventPayload = eventPayload || this.eventPayload;
20
+ if (step.eventName !== eventName) {
21
+ if (this.currentStepIndex > 0) {
22
+ // retry with position at index 0
23
+ this.reset();
24
+ this.handleEvent(eventName, eventPayload);
25
+ }
26
+ return;
27
+ }
28
+ if (this.eventPayload && step.callback) {
29
+ step.callback(this.eventPayload);
30
+ }
31
+ this.currentStepIndex++;
32
+ if (this.currentStepIndex === this.states.length) {
33
+ this.reset();
34
+ }
35
+ }
36
+ }
37
+ exports.PressableStateMachine = PressableStateMachine;
38
+ //# sourceMappingURL=StateMachine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["PressableStateMachine","constructor","steps","states","currentStepIndex","eventPayload","reset","handleEvent","eventName","step","callback","length","exports"],"sourceRoot":"../../../../src","sources":["components/Pressable/StateMachine.tsx"],"mappings":";;;;;;AAOA,MAAMA,qBAAqB,CAAC;EAK1BC,WAAWA,CAACC,KAAwB,EAAE;IACpC,IAAI,CAACC,MAAM,GAAGD,KAAK;IACnB,IAAI,CAACE,gBAAgB,GAAG,CAAC;IACzB,IAAI,CAACC,YAAY,GAAG,IAAI;EAC1B;EAEOC,KAAKA,CAAA,EAAG;IACb,IAAI,CAACF,gBAAgB,GAAG,CAAC;IACzB,IAAI,CAACC,YAAY,GAAG,IAAI;EAC1B;EAEOE,WAAWA,CAACC,SAAiB,EAAEH,YAA6B,EAAE;IACnE,MAAMI,IAAI,GAAG,IAAI,CAACN,MAAM,CAAC,IAAI,CAACC,gBAAgB,CAAC;IAC/C,IAAI,CAACC,YAAY,GAAGA,YAAY,IAAI,IAAI,CAACA,YAAY;IAErD,IAAII,IAAI,CAACD,SAAS,KAAKA,SAAS,EAAE;MAChC,IAAI,IAAI,CAACJ,gBAAgB,GAAG,CAAC,EAAE;QAC7B;QACA,IAAI,CAACE,KAAK,CAAC,CAAC;QACZ,IAAI,CAACC,WAAW,CAACC,SAAS,EAAEH,YAAY,CAAC;MAC3C;MACA;IACF;IAEA,IAAI,IAAI,CAACA,YAAY,IAAII,IAAI,CAACC,QAAQ,EAAE;MACtCD,IAAI,CAACC,QAAQ,CAAC,IAAI,CAACL,YAAY,CAAC;IAClC;IAEA,IAAI,CAACD,gBAAgB,EAAE;IAEvB,IAAI,IAAI,CAACA,gBAAgB,KAAK,IAAI,CAACD,MAAM,CAACQ,MAAM,EAAE;MAChD,IAAI,CAACL,KAAK,CAAC,CAAC;IACd;EACF;AACF;AAACM,OAAA,CAAAZ,qBAAA,GAAAA,qBAAA","ignoreList":[]}