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,80 @@
1
+ const numberAsInset = (value) => ({
2
+ left: value,
3
+ right: value,
4
+ top: value,
5
+ bottom: value,
6
+ });
7
+ const addInsets = (a, b) => ({
8
+ left: (a.left ?? 0) + (b.left ?? 0),
9
+ right: (a.right ?? 0) + (b.right ?? 0),
10
+ top: (a.top ?? 0) + (b.top ?? 0),
11
+ bottom: (a.bottom ?? 0) + (b.bottom ?? 0),
12
+ });
13
+ const touchDataToPressEvent = (data, timestamp, targetId) => ({
14
+ identifier: data.id,
15
+ locationX: data.x,
16
+ locationY: data.y,
17
+ pageX: data.absoluteX,
18
+ pageY: data.absoluteY,
19
+ target: targetId,
20
+ timestamp: timestamp,
21
+ touches: [], // Always empty - legacy compatibility
22
+ changedTouches: [], // Always empty - legacy compatibility
23
+ });
24
+ const gestureToPressEvent = (event, timestamp, targetId) => ({
25
+ identifier: event.handlerTag,
26
+ locationX: event.x,
27
+ locationY: event.y,
28
+ pageX: event.absoluteX,
29
+ pageY: event.absoluteY,
30
+ target: targetId,
31
+ timestamp: timestamp,
32
+ touches: [], // Always empty - legacy compatibility
33
+ changedTouches: [], // Always empty - legacy compatibility
34
+ });
35
+ const isTouchWithinInset = (dimensions, inset, touch) => (touch?.locationX ?? 0) < (inset.right ?? 0) + dimensions.width &&
36
+ (touch?.locationY ?? 0) < (inset.bottom ?? 0) + dimensions.height &&
37
+ (touch?.locationX ?? 0) > -(inset.left ?? 0) &&
38
+ (touch?.locationY ?? 0) > -(inset.top ?? 0);
39
+ const gestureToPressableEvent = (event) => {
40
+ const timestamp = Date.now();
41
+ // As far as I can see, there isn't a conventional way of getting targetId with the data we get
42
+ const targetId = 0;
43
+ const pressEvent = gestureToPressEvent(event, timestamp, targetId);
44
+ return {
45
+ nativeEvent: {
46
+ touches: [pressEvent],
47
+ changedTouches: [pressEvent],
48
+ identifier: pressEvent.identifier,
49
+ locationX: event.x,
50
+ locationY: event.y,
51
+ pageX: event.absoluteX,
52
+ pageY: event.absoluteY,
53
+ target: targetId,
54
+ timestamp: timestamp,
55
+ force: undefined,
56
+ },
57
+ };
58
+ };
59
+ const gestureTouchToPressableEvent = (event) => {
60
+ const timestamp = Date.now();
61
+ // As far as I can see, there isn't a conventional way of getting targetId with the data we get
62
+ const targetId = 0;
63
+ const touchesList = event.allTouches.map((touch) => touchDataToPressEvent(touch, timestamp, targetId));
64
+ const changedTouchesList = event.changedTouches.map((touch) => touchDataToPressEvent(touch, timestamp, targetId));
65
+ return {
66
+ nativeEvent: {
67
+ touches: touchesList,
68
+ changedTouches: changedTouchesList,
69
+ identifier: event.handlerTag,
70
+ locationX: event.allTouches.at(0)?.x ?? -1,
71
+ locationY: event.allTouches.at(0)?.y ?? -1,
72
+ pageX: event.allTouches.at(0)?.absoluteX ?? -1,
73
+ pageY: event.allTouches.at(0)?.absoluteY ?? -1,
74
+ target: targetId,
75
+ timestamp: timestamp,
76
+ force: undefined,
77
+ },
78
+ };
79
+ };
80
+ export { numberAsInset, addInsets, isTouchWithinInset, gestureToPressableEvent, gestureTouchToPressableEvent, };
@@ -165,4 +165,3 @@ export interface DrawerLayoutMethods {
165
165
  }
166
166
  declare const DrawerLayout: React.ForwardRefExoticComponent<DrawerLayoutProps & React.RefAttributes<DrawerLayoutMethods>>;
167
167
  export default DrawerLayout;
168
- //# sourceMappingURL=ReanimatedDrawerLayout.d.ts.map
@@ -0,0 +1,364 @@
1
+ // This component is based on RN's DrawerLayoutAndroid API
2
+ // It's cross-compatible with all platforms despite
3
+ // `DrawerLayoutAndroid` only being available on android
4
+ import React, { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useState, } from 'react';
5
+ import { StyleSheet, Keyboard, StatusBar, I18nManager, Platform, } from 'react-native';
6
+ import Animated, { Extrapolation, interpolate, runOnJS, useAnimatedProps, useAnimatedStyle, useDerivedValue, useSharedValue, withSpring, } from 'react-native-reanimated';
7
+ import { GestureObjects as Gesture } from '../handlers/gestures/gestureObjects';
8
+ import { GestureDetector } from '../handlers/gestures/GestureDetector';
9
+ import { MouseButton, } from '../handlers/gestureHandlerCommon';
10
+ const DRAG_TOSS = 0.05;
11
+ export var DrawerPosition;
12
+ (function (DrawerPosition) {
13
+ DrawerPosition[DrawerPosition["LEFT"] = 0] = "LEFT";
14
+ DrawerPosition[DrawerPosition["RIGHT"] = 1] = "RIGHT";
15
+ })(DrawerPosition || (DrawerPosition = {}));
16
+ export var DrawerState;
17
+ (function (DrawerState) {
18
+ DrawerState[DrawerState["IDLE"] = 0] = "IDLE";
19
+ DrawerState[DrawerState["DRAGGING"] = 1] = "DRAGGING";
20
+ DrawerState[DrawerState["SETTLING"] = 2] = "SETTLING";
21
+ })(DrawerState || (DrawerState = {}));
22
+ export var DrawerType;
23
+ (function (DrawerType) {
24
+ DrawerType[DrawerType["FRONT"] = 0] = "FRONT";
25
+ DrawerType[DrawerType["BACK"] = 1] = "BACK";
26
+ DrawerType[DrawerType["SLIDE"] = 2] = "SLIDE";
27
+ })(DrawerType || (DrawerType = {}));
28
+ export var DrawerLockMode;
29
+ (function (DrawerLockMode) {
30
+ DrawerLockMode[DrawerLockMode["UNLOCKED"] = 0] = "UNLOCKED";
31
+ DrawerLockMode[DrawerLockMode["LOCKED_CLOSED"] = 1] = "LOCKED_CLOSED";
32
+ DrawerLockMode[DrawerLockMode["LOCKED_OPEN"] = 2] = "LOCKED_OPEN";
33
+ })(DrawerLockMode || (DrawerLockMode = {}));
34
+ export var DrawerKeyboardDismissMode;
35
+ (function (DrawerKeyboardDismissMode) {
36
+ DrawerKeyboardDismissMode[DrawerKeyboardDismissMode["NONE"] = 0] = "NONE";
37
+ DrawerKeyboardDismissMode[DrawerKeyboardDismissMode["ON_DRAG"] = 1] = "ON_DRAG";
38
+ })(DrawerKeyboardDismissMode || (DrawerKeyboardDismissMode = {}));
39
+ const defaultProps = {
40
+ drawerWidth: 200,
41
+ drawerPosition: DrawerPosition.LEFT,
42
+ drawerType: DrawerType.FRONT,
43
+ edgeWidth: 20,
44
+ minSwipeDistance: 3,
45
+ overlayColor: 'rgba(0, 0, 0, 0.7)',
46
+ drawerLockMode: DrawerLockMode.UNLOCKED,
47
+ enableTrackpadTwoFingerGesture: false,
48
+ activeCursor: 'auto',
49
+ mouseButton: MouseButton.LEFT,
50
+ statusBarAnimation: 'slide',
51
+ };
52
+ // StatusBar.setHidden and Keyboard.dismiss cannot be directly referenced in worklets.
53
+ const setStatusBarHidden = StatusBar.setHidden;
54
+ const dismissKeyboard = Keyboard.dismiss;
55
+ const DrawerLayout = forwardRef(function DrawerLayout(props, ref) {
56
+ const [containerWidth, setContainerWidth] = useState(0);
57
+ const [drawerState, setDrawerState] = useState(DrawerState.IDLE);
58
+ const [drawerOpened, setDrawerOpened] = useState(false);
59
+ const { drawerPosition = defaultProps.drawerPosition, drawerWidth = defaultProps.drawerWidth, drawerType = defaultProps.drawerType, drawerBackgroundColor, drawerContainerStyle, contentContainerStyle, minSwipeDistance = defaultProps.minSwipeDistance, edgeWidth = defaultProps.edgeWidth, drawerLockMode = defaultProps.drawerLockMode, overlayColor = defaultProps.overlayColor, enableTrackpadTwoFingerGesture = defaultProps.enableTrackpadTwoFingerGesture, activeCursor = defaultProps.activeCursor, mouseButton = defaultProps.mouseButton, statusBarAnimation = defaultProps.statusBarAnimation, hideStatusBar, keyboardDismissMode, userSelect, enableContextMenu, renderNavigationView, onDrawerSlide, onDrawerClose, onDrawerOpen, onDrawerStateChanged, animationSpeed: animationSpeedProp, } = props;
60
+ const isFromLeft = drawerPosition === DrawerPosition.LEFT;
61
+ const sideCorrection = isFromLeft ? 1 : -1;
62
+ // While closing the drawer when user starts gesture in the greyed out part of the window,
63
+ // we want the drawer to follow only once the finger reaches the edge of the drawer.
64
+ // See the diagram for reference. * = starting finger position, < = current finger position
65
+ // 1) +---------------+ 2) +---------------+ 3) +---------------+ 4) +---------------+
66
+ // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|
67
+ // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|
68
+ // |XXXXXXXX|..<*..| |XXXXXXXX|.<-*..| |XXXXXXXX|<--*..| |XXXXX|<-----*..|
69
+ // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|
70
+ // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|
71
+ // +---------------+ +---------------+ +---------------+ +---------------+
72
+ const openValue = useSharedValue(0);
73
+ useDerivedValue(() => {
74
+ onDrawerSlide && runOnJS(onDrawerSlide)(openValue.value);
75
+ }, []);
76
+ const isDrawerOpen = useSharedValue(false);
77
+ const handleContainerLayout = ({ nativeEvent }) => {
78
+ setContainerWidth(nativeEvent.layout.width);
79
+ };
80
+ const emitStateChanged = useCallback((newState, drawerWillShow) => {
81
+ 'worklet';
82
+ onDrawerStateChanged &&
83
+ runOnJS(onDrawerStateChanged)?.(newState, drawerWillShow);
84
+ }, [onDrawerStateChanged]);
85
+ const drawerAnimatedProps = useAnimatedProps(() => ({
86
+ accessibilityViewIsModal: isDrawerOpen.value,
87
+ }));
88
+ const overlayAnimatedProps = useAnimatedProps(() => ({
89
+ pointerEvents: isDrawerOpen.value ? 'auto' : 'none',
90
+ }));
91
+ // While the drawer is hidden, it's hitSlop overflows onto the main view by edgeWidth
92
+ // This way it can be swiped open even when it's hidden
93
+ const [edgeHitSlop, setEdgeHitSlop] = useState(isFromLeft
94
+ ? { left: 0, width: edgeWidth }
95
+ : { right: 0, width: edgeWidth });
96
+ // gestureOrientation is 1 if the gesture is expected to move from left to right and -1 otherwise
97
+ const gestureOrientation = useMemo(() => sideCorrection * (drawerOpened ? -1 : 1), [sideCorrection, drawerOpened]);
98
+ useEffect(() => {
99
+ setEdgeHitSlop(isFromLeft
100
+ ? { left: 0, width: edgeWidth }
101
+ : { right: 0, width: edgeWidth });
102
+ }, [isFromLeft, edgeWidth]);
103
+ const animateDrawer = useCallback((toValue, initialVelocity, animationSpeed) => {
104
+ 'worklet';
105
+ const willShow = toValue !== 0;
106
+ isDrawerOpen.value = willShow;
107
+ emitStateChanged(DrawerState.SETTLING, willShow);
108
+ runOnJS(setDrawerState)(DrawerState.SETTLING);
109
+ if (hideStatusBar) {
110
+ runOnJS(setStatusBarHidden)(willShow, statusBarAnimation);
111
+ }
112
+ const normalizedToValue = interpolate(toValue, [0, drawerWidth], [0, 1], Extrapolation.CLAMP);
113
+ const normalizedInitialVelocity = interpolate(initialVelocity, [0, drawerWidth], [0, 1], Extrapolation.CLAMP);
114
+ openValue.value = withSpring(normalizedToValue, {
115
+ overshootClamping: true,
116
+ velocity: normalizedInitialVelocity,
117
+ mass: animationSpeed
118
+ ? 1 / animationSpeed
119
+ : 1 / (animationSpeedProp ?? 1),
120
+ damping: 40,
121
+ stiffness: 500,
122
+ }, (finished) => {
123
+ if (finished) {
124
+ emitStateChanged(DrawerState.IDLE, willShow);
125
+ runOnJS(setDrawerOpened)(willShow);
126
+ runOnJS(setDrawerState)(DrawerState.IDLE);
127
+ if (willShow) {
128
+ onDrawerOpen && runOnJS(onDrawerOpen)?.();
129
+ }
130
+ else {
131
+ onDrawerClose && runOnJS(onDrawerClose)?.();
132
+ }
133
+ }
134
+ });
135
+ }, [
136
+ openValue,
137
+ emitStateChanged,
138
+ isDrawerOpen,
139
+ hideStatusBar,
140
+ onDrawerClose,
141
+ onDrawerOpen,
142
+ drawerWidth,
143
+ statusBarAnimation,
144
+ ]);
145
+ const handleRelease = useCallback((event) => {
146
+ 'worklet';
147
+ let { translationX: dragX, velocityX, x: touchX } = event;
148
+ if (drawerPosition !== DrawerPosition.LEFT) {
149
+ // See description in _updateAnimatedEvent about why events are flipped
150
+ // for right-side drawer
151
+ dragX = -dragX;
152
+ touchX = containerWidth - touchX;
153
+ velocityX = -velocityX;
154
+ }
155
+ const gestureStartX = touchX - dragX;
156
+ let dragOffsetBasedOnStart = 0;
157
+ if (drawerType === DrawerType.FRONT) {
158
+ dragOffsetBasedOnStart =
159
+ gestureStartX > drawerWidth ? gestureStartX - drawerWidth : 0;
160
+ }
161
+ const startOffsetX = dragX +
162
+ dragOffsetBasedOnStart +
163
+ (isDrawerOpen.value ? drawerWidth : 0);
164
+ const projOffsetX = startOffsetX + DRAG_TOSS * velocityX;
165
+ const shouldOpen = projOffsetX > drawerWidth / 2;
166
+ if (shouldOpen) {
167
+ animateDrawer(drawerWidth, velocityX);
168
+ }
169
+ else {
170
+ animateDrawer(0, velocityX);
171
+ }
172
+ }, [
173
+ animateDrawer,
174
+ containerWidth,
175
+ drawerPosition,
176
+ drawerType,
177
+ drawerWidth,
178
+ isDrawerOpen,
179
+ ]);
180
+ const openDrawer = useCallback((options = {}) => {
181
+ 'worklet';
182
+ animateDrawer(drawerWidth, options.initialVelocity ?? 0, options.animationSpeed);
183
+ }, [animateDrawer, drawerWidth]);
184
+ const closeDrawer = useCallback((options = {}) => {
185
+ 'worklet';
186
+ animateDrawer(0, options.initialVelocity ?? 0, options.animationSpeed);
187
+ }, [animateDrawer]);
188
+ const overlayDismissGesture = useMemo(() => Gesture.Tap()
189
+ .maxDistance(25)
190
+ .onEnd(() => {
191
+ if (isDrawerOpen.value &&
192
+ drawerLockMode !== DrawerLockMode.LOCKED_OPEN) {
193
+ closeDrawer();
194
+ }
195
+ }), [closeDrawer, isDrawerOpen, drawerLockMode]);
196
+ const overlayAnimatedStyle = useAnimatedStyle(() => ({
197
+ opacity: openValue.value,
198
+ backgroundColor: overlayColor,
199
+ }));
200
+ const fillHitSlop = useMemo(() => (isFromLeft ? { left: drawerWidth } : { right: drawerWidth }), [drawerWidth, isFromLeft]);
201
+ const panGesture = useMemo(() => {
202
+ return Gesture.Pan()
203
+ .activeCursor(activeCursor)
204
+ .mouseButton(mouseButton)
205
+ .hitSlop(drawerOpened ? fillHitSlop : edgeHitSlop)
206
+ .minDistance(drawerOpened ? 100 : 0)
207
+ .activeOffsetX(gestureOrientation * minSwipeDistance)
208
+ .failOffsetY([-15, 15])
209
+ .simultaneousWithExternalGesture(overlayDismissGesture)
210
+ .enableTrackpadTwoFingerGesture(enableTrackpadTwoFingerGesture)
211
+ .enabled(drawerState !== DrawerState.SETTLING &&
212
+ (drawerOpened
213
+ ? drawerLockMode !== DrawerLockMode.LOCKED_OPEN
214
+ : drawerLockMode !== DrawerLockMode.LOCKED_CLOSED))
215
+ .onStart(() => {
216
+ emitStateChanged(DrawerState.DRAGGING, false);
217
+ runOnJS(setDrawerState)(DrawerState.DRAGGING);
218
+ if (keyboardDismissMode === DrawerKeyboardDismissMode.ON_DRAG) {
219
+ runOnJS(dismissKeyboard)();
220
+ }
221
+ if (hideStatusBar) {
222
+ runOnJS(setStatusBarHidden)(true, statusBarAnimation);
223
+ }
224
+ })
225
+ .onUpdate((event) => {
226
+ const startedOutsideTranslation = isFromLeft
227
+ ? interpolate(event.x, [0, drawerWidth, drawerWidth + 1], [0, drawerWidth, drawerWidth])
228
+ : interpolate(event.x - containerWidth, [-drawerWidth - 1, -drawerWidth, 0], [drawerWidth, drawerWidth, 0]);
229
+ const startedInsideTranslation = sideCorrection *
230
+ (event.translationX +
231
+ (drawerOpened ? drawerWidth * -gestureOrientation : 0));
232
+ const adjustedTranslation = Math.max(drawerOpened ? startedOutsideTranslation : 0, startedInsideTranslation);
233
+ openValue.value = interpolate(adjustedTranslation, [-drawerWidth, 0, drawerWidth], [1, 0, 1], Extrapolation.CLAMP);
234
+ })
235
+ .onEnd(handleRelease);
236
+ }, [
237
+ drawerLockMode,
238
+ openValue,
239
+ drawerWidth,
240
+ emitStateChanged,
241
+ gestureOrientation,
242
+ handleRelease,
243
+ edgeHitSlop,
244
+ fillHitSlop,
245
+ minSwipeDistance,
246
+ hideStatusBar,
247
+ keyboardDismissMode,
248
+ overlayDismissGesture,
249
+ drawerOpened,
250
+ isFromLeft,
251
+ containerWidth,
252
+ sideCorrection,
253
+ drawerState,
254
+ activeCursor,
255
+ enableTrackpadTwoFingerGesture,
256
+ mouseButton,
257
+ statusBarAnimation,
258
+ ]);
259
+ // When using RTL, row and row-reverse flex directions are flipped.
260
+ const reverseContentDirection = I18nManager.isRTL
261
+ ? isFromLeft
262
+ : !isFromLeft;
263
+ const dynamicDrawerStyles = {
264
+ backgroundColor: drawerBackgroundColor,
265
+ width: drawerWidth,
266
+ };
267
+ const containerStyles = useAnimatedStyle(() => {
268
+ if (drawerType === DrawerType.FRONT) {
269
+ return {};
270
+ }
271
+ return {
272
+ transform: [
273
+ {
274
+ translateX: interpolate(openValue.value, [0, 1], [0, drawerWidth * sideCorrection], Extrapolation.CLAMP),
275
+ },
276
+ ],
277
+ };
278
+ });
279
+ const drawerAnimatedStyle = useAnimatedStyle(() => {
280
+ const closedDrawerOffset = drawerWidth * -sideCorrection;
281
+ const isBack = drawerType === DrawerType.BACK;
282
+ const isIdle = drawerState === DrawerState.IDLE;
283
+ if (isBack) {
284
+ return {
285
+ transform: [{ translateX: 0 }],
286
+ flexDirection: reverseContentDirection ? 'row-reverse' : 'row',
287
+ };
288
+ }
289
+ let translateX = 0;
290
+ if (isIdle) {
291
+ translateX = drawerOpened ? 0 : closedDrawerOffset;
292
+ }
293
+ else {
294
+ translateX = interpolate(openValue.value, [0, 1], [closedDrawerOffset, 0], Extrapolation.CLAMP);
295
+ }
296
+ return {
297
+ transform: [{ translateX }],
298
+ flexDirection: reverseContentDirection ? 'row-reverse' : 'row',
299
+ };
300
+ });
301
+ const containerAnimatedProps = useAnimatedProps(() => ({
302
+ importantForAccessibility: Platform.OS === 'android'
303
+ ? isDrawerOpen.value
304
+ ? 'no-hide-descendants'
305
+ : 'yes'
306
+ : undefined,
307
+ }));
308
+ const children = typeof props.children === 'function'
309
+ ? props.children(openValue) // renderer function
310
+ : props.children;
311
+ useImperativeHandle(ref, () => ({
312
+ openDrawer,
313
+ closeDrawer,
314
+ }), [openDrawer, closeDrawer]);
315
+ return (<GestureDetector gesture={panGesture} userSelect={userSelect} enableContextMenu={enableContextMenu}>
316
+ <Animated.View style={styles.main} onLayout={handleContainerLayout}>
317
+ <GestureDetector gesture={overlayDismissGesture}>
318
+ <Animated.View style={[
319
+ drawerType === DrawerType.FRONT
320
+ ? styles.containerOnBack
321
+ : styles.containerInFront,
322
+ containerStyles,
323
+ contentContainerStyle,
324
+ ]} animatedProps={containerAnimatedProps}>
325
+ {children}
326
+ <Animated.View animatedProps={overlayAnimatedProps} style={[styles.overlay, overlayAnimatedStyle]}/>
327
+ </Animated.View>
328
+ </GestureDetector>
329
+ <Animated.View pointerEvents="box-none" animatedProps={drawerAnimatedProps} style={[
330
+ styles.drawerContainer,
331
+ drawerAnimatedStyle,
332
+ drawerContainerStyle,
333
+ ]}>
334
+ <Animated.View style={dynamicDrawerStyles}>
335
+ {renderNavigationView(openValue)}
336
+ </Animated.View>
337
+ </Animated.View>
338
+ </Animated.View>
339
+ </GestureDetector>);
340
+ });
341
+ export default DrawerLayout;
342
+ const styles = StyleSheet.create({
343
+ drawerContainer: {
344
+ ...StyleSheet.absoluteFillObject,
345
+ zIndex: 1001,
346
+ flexDirection: 'row',
347
+ },
348
+ containerInFront: {
349
+ ...StyleSheet.absoluteFillObject,
350
+ zIndex: 1002,
351
+ },
352
+ containerOnBack: {
353
+ ...StyleSheet.absoluteFillObject,
354
+ },
355
+ main: {
356
+ flex: 1,
357
+ zIndex: 0,
358
+ overflow: 'hidden',
359
+ },
360
+ overlay: {
361
+ ...StyleSheet.absoluteFillObject,
362
+ zIndex: 1000,
363
+ },
364
+ });
@@ -145,4 +145,3 @@ export interface SwipeableMethods {
145
145
  declare const Swipeable: React.ForwardRefExoticComponent<SwipeableProps & React.RefAttributes<SwipeableMethods>>;
146
146
  export default Swipeable;
147
147
  export type SwipeableRef = ForwardedRef<SwipeableMethods>;
148
- //# sourceMappingURL=ReanimatedSwipeable.d.ts.map