react-native-gesture-handler 2.22.1 → 2.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (677) hide show
  1. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt +14 -0
  2. package/android/src/main/jni/cpp-adapter.cpp +19 -12
  3. package/apple/RNGestureHandler.mm +15 -8
  4. package/apple/RNGestureHandlerModule.mm +17 -5
  5. package/lib/commonjs/ActionType.js +3 -3
  6. package/lib/commonjs/ActionType.js.map +1 -1
  7. package/lib/commonjs/Directions.js +11 -8
  8. package/lib/commonjs/Directions.js.map +1 -1
  9. package/lib/commonjs/EnableNewWebImplementation.js +2 -10
  10. package/lib/commonjs/EnableNewWebImplementation.js.map +1 -1
  11. package/lib/commonjs/GestureHandlerRootViewContext.js +2 -7
  12. package/lib/commonjs/GestureHandlerRootViewContext.js.map +1 -1
  13. package/lib/commonjs/PlatformConstants.js +1 -6
  14. package/lib/commonjs/PlatformConstants.js.map +1 -1
  15. package/lib/commonjs/PlatformConstants.web.js +1 -3
  16. package/lib/commonjs/PlatformConstants.web.js.map +1 -1
  17. package/lib/commonjs/PointerType.js +3 -5
  18. package/lib/commonjs/PointerType.js.map +1 -1
  19. package/lib/commonjs/RNGestureHandlerModule.js +2 -6
  20. package/lib/commonjs/RNGestureHandlerModule.js.map +1 -1
  21. package/lib/commonjs/RNGestureHandlerModule.web.js +13 -39
  22. package/lib/commonjs/RNGestureHandlerModule.web.js.map +1 -1
  23. package/lib/commonjs/RNGestureHandlerModule.windows.js +22 -32
  24. package/lib/commonjs/RNGestureHandlerModule.windows.js.map +1 -1
  25. package/lib/commonjs/RNRenderer.js +1 -3
  26. package/lib/commonjs/RNRenderer.js.map +1 -1
  27. package/lib/commonjs/RNRenderer.web.js +1 -2
  28. package/lib/commonjs/RNRenderer.web.js.map +1 -1
  29. package/lib/commonjs/State.js +4 -3
  30. package/lib/commonjs/State.js.map +1 -1
  31. package/lib/commonjs/TouchEventType.js +3 -3
  32. package/lib/commonjs/TouchEventType.js.map +1 -1
  33. package/lib/commonjs/components/DrawerLayout.js +96 -115
  34. package/lib/commonjs/components/DrawerLayout.js.map +1 -1
  35. package/lib/commonjs/components/GestureButtons.js +36 -80
  36. package/lib/commonjs/components/GestureButtons.js.map +1 -1
  37. package/lib/commonjs/components/GestureButtonsProps.js.map +1 -1
  38. package/lib/commonjs/components/GestureComponents.js +26 -37
  39. package/lib/commonjs/components/GestureComponents.js.map +1 -1
  40. package/lib/commonjs/components/GestureComponents.web.js +13 -27
  41. package/lib/commonjs/components/GestureComponents.web.js.map +1 -1
  42. package/lib/commonjs/components/GestureHandlerButton.js +2 -6
  43. package/lib/commonjs/components/GestureHandlerButton.js.map +1 -1
  44. package/lib/commonjs/components/GestureHandlerButton.web.js +4 -12
  45. package/lib/commonjs/components/GestureHandlerButton.web.js.map +1 -1
  46. package/lib/commonjs/components/GestureHandlerRootView.android.js +4 -15
  47. package/lib/commonjs/components/GestureHandlerRootView.android.js.map +1 -1
  48. package/lib/commonjs/components/GestureHandlerRootView.js +4 -14
  49. package/lib/commonjs/components/GestureHandlerRootView.js.map +1 -1
  50. package/lib/commonjs/components/GestureHandlerRootView.web.js +4 -13
  51. package/lib/commonjs/components/GestureHandlerRootView.web.js.map +1 -1
  52. package/lib/commonjs/components/Pressable/Pressable.js +46 -78
  53. package/lib/commonjs/components/Pressable/Pressable.js.map +1 -1
  54. package/lib/commonjs/components/Pressable/PressableProps.js.map +1 -1
  55. package/lib/commonjs/components/Pressable/index.js +1 -3
  56. package/lib/commonjs/components/Pressable/index.js.map +1 -1
  57. package/lib/commonjs/components/Pressable/utils.js +5 -20
  58. package/lib/commonjs/components/Pressable/utils.js.map +1 -1
  59. package/lib/commonjs/components/ReanimatedDrawerLayout.js +38 -76
  60. package/lib/commonjs/components/ReanimatedDrawerLayout.js.map +1 -1
  61. package/lib/commonjs/components/ReanimatedSwipeable.js +61 -59
  62. package/lib/commonjs/components/ReanimatedSwipeable.js.map +1 -1
  63. package/lib/commonjs/components/Swipeable.js +34 -75
  64. package/lib/commonjs/components/Swipeable.js.map +1 -1
  65. package/lib/commonjs/components/Text.js +18 -26
  66. package/lib/commonjs/components/Text.js.map +1 -1
  67. package/lib/commonjs/components/gestureHandlerRootHOC.js +5 -14
  68. package/lib/commonjs/components/gestureHandlerRootHOC.js.map +1 -1
  69. package/lib/commonjs/components/touchables/GenericTouchable.js +40 -76
  70. package/lib/commonjs/components/touchables/GenericTouchable.js.map +1 -1
  71. package/lib/commonjs/components/touchables/GenericTouchableProps.js.map +1 -1
  72. package/lib/commonjs/components/touchables/TouchableHighlight.js +20 -33
  73. package/lib/commonjs/components/touchables/TouchableHighlight.js.map +1 -1
  74. package/lib/commonjs/components/touchables/TouchableNativeFeedback.android.js +17 -31
  75. package/lib/commonjs/components/touchables/TouchableNativeFeedback.android.js.map +1 -1
  76. package/lib/commonjs/components/touchables/TouchableNativeFeedback.js +5 -4
  77. package/lib/commonjs/components/touchables/TouchableNativeFeedback.js.map +1 -1
  78. package/lib/commonjs/components/touchables/TouchableNativeFeedbackProps.js.map +1 -1
  79. package/lib/commonjs/components/touchables/TouchableOpacity.js +17 -24
  80. package/lib/commonjs/components/touchables/TouchableOpacity.js.map +1 -1
  81. package/lib/commonjs/components/touchables/TouchableWithoutFeedback.js +12 -13
  82. package/lib/commonjs/components/touchables/TouchableWithoutFeedback.js.map +1 -1
  83. package/lib/commonjs/components/touchables/index.js +7 -12
  84. package/lib/commonjs/components/touchables/index.js.map +1 -1
  85. package/lib/commonjs/findNodeHandle.js +1 -4
  86. package/lib/commonjs/findNodeHandle.js.map +1 -1
  87. package/lib/commonjs/findNodeHandle.web.js +9 -10
  88. package/lib/commonjs/findNodeHandle.web.js.map +1 -1
  89. package/lib/commonjs/getReactNativeVersion.js +1 -6
  90. package/lib/commonjs/getReactNativeVersion.js.map +1 -1
  91. package/lib/commonjs/getReactNativeVersion.web.js +0 -1
  92. package/lib/commonjs/getReactNativeVersion.web.js.map +1 -1
  93. package/lib/commonjs/getShadowNodeFromRef.js +13 -14
  94. package/lib/commonjs/getShadowNodeFromRef.js.map +1 -1
  95. package/lib/commonjs/getShadowNodeFromRef.web.js +0 -1
  96. package/lib/commonjs/getShadowNodeFromRef.web.js.map +1 -1
  97. package/lib/commonjs/ghQueueMicrotask.js +1 -2
  98. package/lib/commonjs/ghQueueMicrotask.js.map +1 -1
  99. package/lib/commonjs/handlers/FlingGestureHandler.js +16 -10
  100. package/lib/commonjs/handlers/FlingGestureHandler.js.map +1 -1
  101. package/lib/commonjs/handlers/ForceTouchGestureHandler.js +20 -23
  102. package/lib/commonjs/handlers/ForceTouchGestureHandler.js.map +1 -1
  103. package/lib/commonjs/handlers/GestureHandlerEventPayload.js.map +1 -1
  104. package/lib/commonjs/handlers/LongPressGestureHandler.js +16 -10
  105. package/lib/commonjs/handlers/LongPressGestureHandler.js.map +1 -1
  106. package/lib/commonjs/handlers/NativeViewGestureHandler.js +17 -12
  107. package/lib/commonjs/handlers/NativeViewGestureHandler.js.map +1 -1
  108. package/lib/commonjs/handlers/PanGestureHandler.js +20 -31
  109. package/lib/commonjs/handlers/PanGestureHandler.js.map +1 -1
  110. package/lib/commonjs/handlers/PinchGestureHandler.js +14 -8
  111. package/lib/commonjs/handlers/PinchGestureHandler.js.map +1 -1
  112. package/lib/commonjs/handlers/PressabilityDebugView.js +0 -1
  113. package/lib/commonjs/handlers/PressabilityDebugView.js.map +1 -1
  114. package/lib/commonjs/handlers/PressabilityDebugView.web.js +0 -1
  115. package/lib/commonjs/handlers/PressabilityDebugView.web.js.map +1 -1
  116. package/lib/commonjs/handlers/RotationGestureHandler.js +14 -8
  117. package/lib/commonjs/handlers/RotationGestureHandler.js.map +1 -1
  118. package/lib/commonjs/handlers/TapGestureHandler.js +16 -10
  119. package/lib/commonjs/handlers/TapGestureHandler.js.map +1 -1
  120. package/lib/commonjs/handlers/createHandler.js +55 -135
  121. package/lib/commonjs/handlers/createHandler.js.map +1 -1
  122. package/lib/commonjs/handlers/createNativeWrapper.js +17 -27
  123. package/lib/commonjs/handlers/createNativeWrapper.js.map +1 -1
  124. package/lib/commonjs/handlers/customDirectEventTypes.js +0 -1
  125. package/lib/commonjs/handlers/customDirectEventTypes.js.map +1 -1
  126. package/lib/commonjs/handlers/customDirectEventTypes.web.js +1 -2
  127. package/lib/commonjs/handlers/customDirectEventTypes.web.js.map +1 -1
  128. package/lib/commonjs/handlers/gestureHandlerCommon.js +9 -10
  129. package/lib/commonjs/handlers/gestureHandlerCommon.js.map +1 -1
  130. package/lib/commonjs/handlers/gestureHandlerTypesCompat.js.map +1 -1
  131. package/lib/commonjs/handlers/gestures/GestureDetector/Wrap.js +5 -14
  132. package/lib/commonjs/handlers/gestures/GestureDetector/Wrap.js.map +1 -1
  133. package/lib/commonjs/handlers/gestures/GestureDetector/Wrap.web.js +10 -20
  134. package/lib/commonjs/handlers/gestures/GestureDetector/Wrap.web.js.map +1 -1
  135. package/lib/commonjs/handlers/gestures/GestureDetector/attachHandlers.js +9 -29
  136. package/lib/commonjs/handlers/gestures/GestureDetector/attachHandlers.js.map +1 -1
  137. package/lib/commonjs/handlers/gestures/GestureDetector/dropHandlers.js +1 -10
  138. package/lib/commonjs/handlers/gestures/GestureDetector/dropHandlers.js.map +1 -1
  139. package/lib/commonjs/handlers/gestures/GestureDetector/index.js +12 -37
  140. package/lib/commonjs/handlers/gestures/GestureDetector/index.js.map +1 -1
  141. package/lib/commonjs/handlers/gestures/GestureDetector/needsToReattach.js +0 -3
  142. package/lib/commonjs/handlers/gestures/GestureDetector/needsToReattach.js.map +1 -1
  143. package/lib/commonjs/handlers/gestures/GestureDetector/types.js.map +1 -1
  144. package/lib/commonjs/handlers/gestures/GestureDetector/updateHandlers.js +12 -24
  145. package/lib/commonjs/handlers/gestures/GestureDetector/updateHandlers.js.map +1 -1
  146. package/lib/commonjs/handlers/gestures/GestureDetector/useAnimatedGesture.js +12 -48
  147. package/lib/commonjs/handlers/gestures/GestureDetector/useAnimatedGesture.js.map +1 -1
  148. package/lib/commonjs/handlers/gestures/GestureDetector/useDetectorUpdater.js +3 -13
  149. package/lib/commonjs/handlers/gestures/GestureDetector/useDetectorUpdater.js.map +1 -1
  150. package/lib/commonjs/handlers/gestures/GestureDetector/useMountReactions.js +2 -9
  151. package/lib/commonjs/handlers/gestures/GestureDetector/useMountReactions.js.map +1 -1
  152. package/lib/commonjs/handlers/gestures/GestureDetector/useViewRefHandler.js +8 -16
  153. package/lib/commonjs/handlers/gestures/GestureDetector/useViewRefHandler.js.map +1 -1
  154. package/lib/commonjs/handlers/gestures/GestureDetector/utils.js +28 -56
  155. package/lib/commonjs/handlers/gestures/GestureDetector/utils.js.map +1 -1
  156. package/lib/commonjs/handlers/gestures/eventReceiver.js +14 -46
  157. package/lib/commonjs/handlers/gestures/eventReceiver.js.map +1 -1
  158. package/lib/commonjs/handlers/gestures/flingGesture.js +5 -12
  159. package/lib/commonjs/handlers/gestures/flingGesture.js.map +1 -1
  160. package/lib/commonjs/handlers/gestures/forceTouchGesture.js +8 -19
  161. package/lib/commonjs/handlers/gestures/forceTouchGesture.js.map +1 -1
  162. package/lib/commonjs/handlers/gestures/gesture.js +44 -84
  163. package/lib/commonjs/handlers/gestures/gesture.js.map +1 -1
  164. package/lib/commonjs/handlers/gestures/gestureComposition.js +17 -31
  165. package/lib/commonjs/handlers/gestures/gestureComposition.js.map +1 -1
  166. package/lib/commonjs/handlers/gestures/gestureObjects.js +1 -27
  167. package/lib/commonjs/handlers/gestures/gestureObjects.js.map +1 -1
  168. package/lib/commonjs/handlers/gestures/gestureStateManager.js +3 -9
  169. package/lib/commonjs/handlers/gestures/gestureStateManager.js.map +1 -1
  170. package/lib/commonjs/handlers/gestures/gestureStateManager.web.js +2 -7
  171. package/lib/commonjs/handlers/gestures/gestureStateManager.web.js.map +1 -1
  172. package/lib/commonjs/handlers/gestures/hoverGesture.js +11 -25
  173. package/lib/commonjs/handlers/gestures/hoverGesture.js.map +1 -1
  174. package/lib/commonjs/handlers/gestures/longPressGesture.js +6 -14
  175. package/lib/commonjs/handlers/gestures/longPressGesture.js.map +1 -1
  176. package/lib/commonjs/handlers/gestures/manualGesture.js +0 -6
  177. package/lib/commonjs/handlers/gestures/manualGesture.js.map +1 -1
  178. package/lib/commonjs/handlers/gestures/nativeGesture.js +5 -12
  179. package/lib/commonjs/handlers/gestures/nativeGesture.js.map +1 -1
  180. package/lib/commonjs/handlers/gestures/panGesture.js +18 -43
  181. package/lib/commonjs/handlers/gestures/panGesture.js.map +1 -1
  182. package/lib/commonjs/handlers/gestures/pinchGesture.js +2 -9
  183. package/lib/commonjs/handlers/gestures/pinchGesture.js.map +1 -1
  184. package/lib/commonjs/handlers/gestures/reanimatedWrapper.js +1 -8
  185. package/lib/commonjs/handlers/gestures/reanimatedWrapper.js.map +1 -1
  186. package/lib/commonjs/handlers/gestures/rotationGesture.js +2 -9
  187. package/lib/commonjs/handlers/gestures/rotationGesture.js.map +1 -1
  188. package/lib/commonjs/handlers/gestures/tapGesture.js +10 -22
  189. package/lib/commonjs/handlers/gestures/tapGesture.js.map +1 -1
  190. package/lib/commonjs/handlers/getNextHandlerTag.js +0 -1
  191. package/lib/commonjs/handlers/getNextHandlerTag.js.map +1 -1
  192. package/lib/commonjs/handlers/handlersRegistry.js +11 -21
  193. package/lib/commonjs/handlers/handlersRegistry.js.map +1 -1
  194. package/lib/commonjs/handlers/utils.js +6 -26
  195. package/lib/commonjs/handlers/utils.js.map +1 -1
  196. package/lib/commonjs/index.js +75 -104
  197. package/lib/commonjs/index.js.map +1 -1
  198. package/lib/commonjs/init.js +4 -11
  199. package/lib/commonjs/init.js.map +1 -1
  200. package/lib/commonjs/jestUtils/index.js +4 -5
  201. package/lib/commonjs/jestUtils/index.js.map +1 -1
  202. package/lib/commonjs/jestUtils/jestUtils.js +19 -83
  203. package/lib/commonjs/jestUtils/jestUtils.js.map +1 -1
  204. package/lib/commonjs/mocks.js +5 -15
  205. package/lib/commonjs/mocks.js.map +1 -1
  206. package/lib/commonjs/mountRegistry.js +3 -12
  207. package/lib/commonjs/mountRegistry.js.map +1 -1
  208. package/lib/commonjs/specs/NativeRNGestureHandlerModule.js +1 -5
  209. package/lib/commonjs/specs/NativeRNGestureHandlerModule.js.map +1 -1
  210. package/lib/commonjs/specs/RNGestureHandlerButtonNativeComponent.js +2 -7
  211. package/lib/commonjs/specs/RNGestureHandlerButtonNativeComponent.js.map +1 -1
  212. package/lib/commonjs/specs/RNGestureHandlerRootViewNativeComponent.js +2 -7
  213. package/lib/commonjs/specs/RNGestureHandlerRootViewNativeComponent.js.map +1 -1
  214. package/lib/commonjs/typeUtils.js.map +1 -1
  215. package/lib/commonjs/utils.js +15 -30
  216. package/lib/commonjs/utils.js.map +1 -1
  217. package/lib/commonjs/web/Gestures.js +5 -23
  218. package/lib/commonjs/web/Gestures.js.map +1 -1
  219. package/lib/commonjs/web/constants.js +2 -4
  220. package/lib/commonjs/web/constants.js.map +1 -1
  221. package/lib/commonjs/web/detectors/RotationGestureDetector.js +26 -62
  222. package/lib/commonjs/web/detectors/RotationGestureDetector.js.map +1 -1
  223. package/lib/commonjs/web/detectors/ScaleGestureDetector.js +36 -65
  224. package/lib/commonjs/web/detectors/ScaleGestureDetector.js.map +1 -1
  225. package/lib/commonjs/web/handlers/FlingGestureHandler.js +12 -55
  226. package/lib/commonjs/web/handlers/FlingGestureHandler.js.map +1 -1
  227. package/lib/commonjs/web/handlers/GestureHandler.js +160 -273
  228. package/lib/commonjs/web/handlers/GestureHandler.js.map +1 -1
  229. package/lib/commonjs/web/handlers/HoverGestureHandler.js +8 -21
  230. package/lib/commonjs/web/handlers/HoverGestureHandler.js.map +1 -1
  231. package/lib/commonjs/web/handlers/IGestureHandler.js.map +1 -1
  232. package/lib/commonjs/web/handlers/LongPressGestureHandler.js +12 -53
  233. package/lib/commonjs/web/handlers/LongPressGestureHandler.js.map +1 -1
  234. package/lib/commonjs/web/handlers/ManualGestureHandler.js +1 -11
  235. package/lib/commonjs/web/handlers/ManualGestureHandler.js.map +1 -1
  236. package/lib/commonjs/web/handlers/NativeViewGestureHandler.js +21 -62
  237. package/lib/commonjs/web/handlers/NativeViewGestureHandler.js.map +1 -1
  238. package/lib/commonjs/web/handlers/PanGestureHandler.js +23 -138
  239. package/lib/commonjs/web/handlers/PanGestureHandler.js.map +1 -1
  240. package/lib/commonjs/web/handlers/PinchGestureHandler.js +19 -56
  241. package/lib/commonjs/web/handlers/PinchGestureHandler.js.map +1 -1
  242. package/lib/commonjs/web/handlers/RotationGestureHandler.js +16 -54
  243. package/lib/commonjs/web/handlers/RotationGestureHandler.js.map +1 -1
  244. package/lib/commonjs/web/handlers/TapGestureHandler.js +10 -71
  245. package/lib/commonjs/web/handlers/TapGestureHandler.js.map +1 -1
  246. package/lib/commonjs/web/interfaces.js +9 -17
  247. package/lib/commonjs/web/interfaces.js.map +1 -1
  248. package/lib/commonjs/web/tools/CircularBuffer.js +17 -29
  249. package/lib/commonjs/web/tools/CircularBuffer.js.map +1 -1
  250. package/lib/commonjs/web/tools/EventManager.js +7 -41
  251. package/lib/commonjs/web/tools/EventManager.js.map +1 -1
  252. package/lib/commonjs/web/tools/GestureHandlerDelegate.js.map +1 -1
  253. package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js +51 -118
  254. package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js.map +1 -1
  255. package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js +37 -58
  256. package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js.map +1 -1
  257. package/lib/commonjs/web/tools/InteractionManager.js +21 -40
  258. package/lib/commonjs/web/tools/InteractionManager.js.map +1 -1
  259. package/lib/commonjs/web/tools/KeyboardEventManager.js +4 -26
  260. package/lib/commonjs/web/tools/KeyboardEventManager.js.map +1 -1
  261. package/lib/commonjs/web/tools/LeastSquareSolver.js +30 -67
  262. package/lib/commonjs/web/tools/LeastSquareSolver.js.map +1 -1
  263. package/lib/commonjs/web/tools/NodeManager.js +9 -16
  264. package/lib/commonjs/web/tools/NodeManager.js.map +1 -1
  265. package/lib/commonjs/web/tools/PointerEventManager.js +10 -45
  266. package/lib/commonjs/web/tools/PointerEventManager.js.map +1 -1
  267. package/lib/commonjs/web/tools/PointerTracker.js +24 -60
  268. package/lib/commonjs/web/tools/PointerTracker.js.map +1 -1
  269. package/lib/commonjs/web/tools/Vector.js +3 -18
  270. package/lib/commonjs/web/tools/Vector.js.map +1 -1
  271. package/lib/commonjs/web/tools/VelocityTracker.js +10 -32
  272. package/lib/commonjs/web/tools/VelocityTracker.js.map +1 -1
  273. package/lib/commonjs/web/tools/WheelEventManager.js +4 -17
  274. package/lib/commonjs/web/tools/WheelEventManager.js.map +1 -1
  275. package/lib/commonjs/web/utils.js +26 -55
  276. package/lib/commonjs/web/utils.js.map +1 -1
  277. package/lib/commonjs/web_hammer/DiscreteGestureHandler.js +7 -19
  278. package/lib/commonjs/web_hammer/DiscreteGestureHandler.js.map +1 -1
  279. package/lib/commonjs/web_hammer/DraggingGestureHandler.js +3 -13
  280. package/lib/commonjs/web_hammer/DraggingGestureHandler.js.map +1 -1
  281. package/lib/commonjs/web_hammer/Errors.js +0 -3
  282. package/lib/commonjs/web_hammer/Errors.js.map +1 -1
  283. package/lib/commonjs/web_hammer/FlingGestureHandler.js +13 -44
  284. package/lib/commonjs/web_hammer/FlingGestureHandler.js.map +1 -1
  285. package/lib/commonjs/web_hammer/GestureHandler.js +55 -142
  286. package/lib/commonjs/web_hammer/GestureHandler.js.map +1 -1
  287. package/lib/commonjs/web_hammer/IndiscreteGestureHandler.js +2 -11
  288. package/lib/commonjs/web_hammer/IndiscreteGestureHandler.js.map +1 -1
  289. package/lib/commonjs/web_hammer/LongPressGestureHandler.js +5 -19
  290. package/lib/commonjs/web_hammer/LongPressGestureHandler.js.map +1 -1
  291. package/lib/commonjs/web_hammer/NativeViewGestureHandler.js +16 -24
  292. package/lib/commonjs/web_hammer/NativeViewGestureHandler.js.map +1 -1
  293. package/lib/commonjs/web_hammer/NodeManager.js +9 -16
  294. package/lib/commonjs/web_hammer/NodeManager.js.map +1 -1
  295. package/lib/commonjs/web_hammer/PanGestureHandler.js +8 -49
  296. package/lib/commonjs/web_hammer/PanGestureHandler.js.map +1 -1
  297. package/lib/commonjs/web_hammer/PinchGestureHandler.js +2 -11
  298. package/lib/commonjs/web_hammer/PinchGestureHandler.js.map +1 -1
  299. package/lib/commonjs/web_hammer/PressGestureHandler.js +15 -43
  300. package/lib/commonjs/web_hammer/PressGestureHandler.js.map +1 -1
  301. package/lib/commonjs/web_hammer/RotationGestureHandler.js +2 -13
  302. package/lib/commonjs/web_hammer/RotationGestureHandler.js.map +1 -1
  303. package/lib/commonjs/web_hammer/TapGestureHandler.js +33 -52
  304. package/lib/commonjs/web_hammer/TapGestureHandler.js.map +1 -1
  305. package/lib/commonjs/web_hammer/constants.js +13 -26
  306. package/lib/commonjs/web_hammer/constants.js.map +1 -1
  307. package/lib/commonjs/web_hammer/utils.js +4 -14
  308. package/lib/commonjs/web_hammer/utils.js.map +1 -1
  309. package/lib/module/ActionType.js +3 -1
  310. package/lib/module/ActionType.js.map +1 -1
  311. package/lib/module/Directions.js +9 -3
  312. package/lib/module/Directions.js.map +1 -1
  313. package/lib/module/EnableNewWebImplementation.js +2 -5
  314. package/lib/module/EnableNewWebImplementation.js.map +1 -1
  315. package/lib/module/GestureHandlerRootViewContext.js.map +1 -1
  316. package/lib/module/PlatformConstants.js +0 -1
  317. package/lib/module/PlatformConstants.js.map +1 -1
  318. package/lib/module/PlatformConstants.web.js +0 -1
  319. package/lib/module/PlatformConstants.web.js.map +1 -1
  320. package/lib/module/PointerType.js +3 -4
  321. package/lib/module/PointerType.js.map +1 -1
  322. package/lib/module/RNGestureHandlerModule.js +1 -0
  323. package/lib/module/RNGestureHandlerModule.js.map +1 -1
  324. package/lib/module/RNGestureHandlerModule.web.js +12 -22
  325. package/lib/module/RNGestureHandlerModule.web.js.map +1 -1
  326. package/lib/module/RNGestureHandlerModule.windows.js +18 -17
  327. package/lib/module/RNGestureHandlerModule.windows.js.map +1 -1
  328. package/lib/module/RNRenderer.js.map +1 -1
  329. package/lib/module/RNRenderer.web.js.map +1 -1
  330. package/lib/module/State.js +4 -1
  331. package/lib/module/State.js.map +1 -1
  332. package/lib/module/TouchEventType.js +3 -1
  333. package/lib/module/TouchEventType.js.map +1 -1
  334. package/lib/module/components/DrawerLayout.js +87 -99
  335. package/lib/module/components/DrawerLayout.js.map +1 -1
  336. package/lib/module/components/GestureButtons.js +27 -55
  337. package/lib/module/components/GestureButtons.js.map +1 -1
  338. package/lib/module/components/GestureButtonsProps.js.map +1 -1
  339. package/lib/module/components/GestureComponents.js +17 -12
  340. package/lib/module/components/GestureComponents.js.map +1 -1
  341. package/lib/module/components/GestureComponents.web.js +4 -4
  342. package/lib/module/components/GestureComponents.web.js.map +1 -1
  343. package/lib/module/components/GestureHandlerButton.js.map +1 -1
  344. package/lib/module/components/GestureHandlerButton.web.js +1 -2
  345. package/lib/module/components/GestureHandlerButton.web.js.map +1 -1
  346. package/lib/module/components/GestureHandlerRootView.android.js +1 -2
  347. package/lib/module/components/GestureHandlerRootView.android.js.map +1 -1
  348. package/lib/module/components/GestureHandlerRootView.js +1 -2
  349. package/lib/module/components/GestureHandlerRootView.js.map +1 -1
  350. package/lib/module/components/GestureHandlerRootView.web.js +1 -2
  351. package/lib/module/components/GestureHandlerRootView.web.js.map +1 -1
  352. package/lib/module/components/Pressable/Pressable.js +44 -61
  353. package/lib/module/components/Pressable/Pressable.js.map +1 -1
  354. package/lib/module/components/Pressable/PressableProps.js.map +1 -1
  355. package/lib/module/components/Pressable/index.js.map +1 -1
  356. package/lib/module/components/Pressable/utils.js +4 -14
  357. package/lib/module/components/Pressable/utils.js.map +1 -1
  358. package/lib/module/components/ReanimatedDrawerLayout.js +34 -56
  359. package/lib/module/components/ReanimatedDrawerLayout.js.map +1 -1
  360. package/lib/module/components/ReanimatedSwipeable.js +57 -44
  361. package/lib/module/components/ReanimatedSwipeable.js.map +1 -1
  362. package/lib/module/components/Swipeable.js +28 -59
  363. package/lib/module/components/Swipeable.js.map +1 -1
  364. package/lib/module/components/Text.js +14 -13
  365. package/lib/module/components/Text.js.map +1 -1
  366. package/lib/module/components/gestureHandlerRootHOC.js +2 -2
  367. package/lib/module/components/gestureHandlerRootHOC.js.map +1 -1
  368. package/lib/module/components/touchables/GenericTouchable.js +34 -63
  369. package/lib/module/components/touchables/GenericTouchable.js.map +1 -1
  370. package/lib/module/components/touchables/GenericTouchableProps.js.map +1 -1
  371. package/lib/module/components/touchables/TouchableHighlight.js +16 -23
  372. package/lib/module/components/touchables/TouchableHighlight.js.map +1 -1
  373. package/lib/module/components/touchables/TouchableNativeFeedback.android.js +11 -19
  374. package/lib/module/components/touchables/TouchableNativeFeedback.android.js.map +1 -1
  375. package/lib/module/components/touchables/TouchableNativeFeedback.js +6 -1
  376. package/lib/module/components/touchables/TouchableNativeFeedback.js.map +1 -1
  377. package/lib/module/components/touchables/TouchableNativeFeedbackProps.js.map +1 -1
  378. package/lib/module/components/touchables/TouchableOpacity.js +13 -14
  379. package/lib/module/components/touchables/TouchableOpacity.js.map +1 -1
  380. package/lib/module/components/touchables/TouchableWithoutFeedback.js +9 -2
  381. package/lib/module/components/touchables/TouchableWithoutFeedback.js.map +1 -1
  382. package/lib/module/components/touchables/index.js.map +1 -1
  383. package/lib/module/findNodeHandle.js.map +1 -1
  384. package/lib/module/findNodeHandle.web.js +9 -8
  385. package/lib/module/findNodeHandle.web.js.map +1 -1
  386. package/lib/module/getReactNativeVersion.js.map +1 -1
  387. package/lib/module/getReactNativeVersion.web.js.map +1 -1
  388. package/lib/module/getShadowNodeFromRef.js +13 -13
  389. package/lib/module/getShadowNodeFromRef.js.map +1 -1
  390. package/lib/module/getShadowNodeFromRef.web.js.map +1 -1
  391. package/lib/module/ghQueueMicrotask.js.map +1 -1
  392. package/lib/module/handlers/FlingGestureHandler.js +13 -0
  393. package/lib/module/handlers/FlingGestureHandler.js.map +1 -1
  394. package/lib/module/handlers/ForceTouchGestureHandler.js +16 -8
  395. package/lib/module/handlers/ForceTouchGestureHandler.js.map +1 -1
  396. package/lib/module/handlers/GestureHandlerEventPayload.js.map +1 -1
  397. package/lib/module/handlers/LongPressGestureHandler.js +13 -0
  398. package/lib/module/handlers/LongPressGestureHandler.js.map +1 -1
  399. package/lib/module/handlers/NativeViewGestureHandler.js +13 -0
  400. package/lib/module/handlers/NativeViewGestureHandler.js.map +1 -1
  401. package/lib/module/handlers/PanGestureHandler.js +15 -19
  402. package/lib/module/handlers/PanGestureHandler.js.map +1 -1
  403. package/lib/module/handlers/PinchGestureHandler.js +13 -0
  404. package/lib/module/handlers/PinchGestureHandler.js.map +1 -1
  405. package/lib/module/handlers/PressabilityDebugView.js.map +1 -1
  406. package/lib/module/handlers/PressabilityDebugView.web.js.map +1 -1
  407. package/lib/module/handlers/RotationGestureHandler.js +13 -0
  408. package/lib/module/handlers/RotationGestureHandler.js.map +1 -1
  409. package/lib/module/handlers/TapGestureHandler.js +13 -0
  410. package/lib/module/handlers/TapGestureHandler.js.map +1 -1
  411. package/lib/module/handlers/createHandler.js +54 -108
  412. package/lib/module/handlers/createHandler.js.map +1 -1
  413. package/lib/module/handlers/createNativeWrapper.js +12 -17
  414. package/lib/module/handlers/createNativeWrapper.js.map +1 -1
  415. package/lib/module/handlers/customDirectEventTypes.js.map +1 -1
  416. package/lib/module/handlers/customDirectEventTypes.web.js.map +1 -1
  417. package/lib/module/handlers/gestureHandlerCommon.js +9 -4
  418. package/lib/module/handlers/gestureHandlerCommon.js.map +1 -1
  419. package/lib/module/handlers/gestureHandlerTypesCompat.js.map +1 -1
  420. package/lib/module/handlers/gestures/GestureDetector/Wrap.js +3 -4
  421. package/lib/module/handlers/gestures/GestureDetector/Wrap.js.map +1 -1
  422. package/lib/module/handlers/gestures/GestureDetector/Wrap.web.js +5 -6
  423. package/lib/module/handlers/gestures/GestureDetector/Wrap.web.js.map +1 -1
  424. package/lib/module/handlers/gestures/GestureDetector/attachHandlers.js +8 -16
  425. package/lib/module/handlers/gestures/GestureDetector/attachHandlers.js.map +1 -1
  426. package/lib/module/handlers/gestures/GestureDetector/dropHandlers.js +0 -1
  427. package/lib/module/handlers/gestures/GestureDetector/dropHandlers.js.map +1 -1
  428. package/lib/module/handlers/gestures/GestureDetector/index.js +9 -15
  429. package/lib/module/handlers/gestures/GestureDetector/index.js.map +1 -1
  430. package/lib/module/handlers/gestures/GestureDetector/needsToReattach.js +0 -2
  431. package/lib/module/handlers/gestures/GestureDetector/needsToReattach.js.map +1 -1
  432. package/lib/module/handlers/gestures/GestureDetector/types.js.map +1 -1
  433. package/lib/module/handlers/gestures/GestureDetector/updateHandlers.js +11 -14
  434. package/lib/module/handlers/gestures/GestureDetector/updateHandlers.js.map +1 -1
  435. package/lib/module/handlers/gestures/GestureDetector/useAnimatedGesture.js +12 -39
  436. package/lib/module/handlers/gestures/GestureDetector/useAnimatedGesture.js.map +1 -1
  437. package/lib/module/handlers/gestures/GestureDetector/useDetectorUpdater.js +5 -5
  438. package/lib/module/handlers/gestures/GestureDetector/useDetectorUpdater.js.map +1 -1
  439. package/lib/module/handlers/gestures/GestureDetector/useMountReactions.js +2 -6
  440. package/lib/module/handlers/gestures/GestureDetector/useMountReactions.js.map +1 -1
  441. package/lib/module/handlers/gestures/GestureDetector/useViewRefHandler.js +7 -9
  442. package/lib/module/handlers/gestures/GestureDetector/useViewRefHandler.js.map +1 -1
  443. package/lib/module/handlers/gestures/GestureDetector/utils.js +25 -30
  444. package/lib/module/handlers/gestures/GestureDetector/utils.js.map +1 -1
  445. package/lib/module/handlers/gestures/eventReceiver.js +14 -38
  446. package/lib/module/handlers/gestures/eventReceiver.js.map +1 -1
  447. package/lib/module/handlers/gestures/flingGesture.js +5 -9
  448. package/lib/module/handlers/gestures/flingGesture.js.map +1 -1
  449. package/lib/module/handlers/gestures/forceTouchGesture.js +8 -17
  450. package/lib/module/handlers/gestures/forceTouchGesture.js.map +1 -1
  451. package/lib/module/handlers/gestures/gesture.js +44 -73
  452. package/lib/module/handlers/gestures/gesture.js.map +1 -1
  453. package/lib/module/handlers/gestures/gestureComposition.js +16 -24
  454. package/lib/module/handlers/gestures/gestureComposition.js.map +1 -1
  455. package/lib/module/handlers/gestures/gestureObjects.js +1 -14
  456. package/lib/module/handlers/gestures/gestureObjects.js.map +1 -1
  457. package/lib/module/handlers/gestures/gestureStateManager.js +3 -4
  458. package/lib/module/handlers/gestures/gestureStateManager.js.map +1 -1
  459. package/lib/module/handlers/gestures/gestureStateManager.web.js +0 -1
  460. package/lib/module/handlers/gestures/gestureStateManager.web.js.map +1 -1
  461. package/lib/module/handlers/gestures/hoverGesture.js +9 -18
  462. package/lib/module/handlers/gestures/hoverGesture.js.map +1 -1
  463. package/lib/module/handlers/gestures/longPressGesture.js +6 -11
  464. package/lib/module/handlers/gestures/longPressGesture.js.map +1 -1
  465. package/lib/module/handlers/gestures/manualGesture.js +0 -4
  466. package/lib/module/handlers/gestures/manualGesture.js.map +1 -1
  467. package/lib/module/handlers/gestures/nativeGesture.js +5 -9
  468. package/lib/module/handlers/gestures/nativeGesture.js.map +1 -1
  469. package/lib/module/handlers/gestures/panGesture.js +18 -41
  470. package/lib/module/handlers/gestures/panGesture.js.map +1 -1
  471. package/lib/module/handlers/gestures/pinchGesture.js +2 -7
  472. package/lib/module/handlers/gestures/pinchGesture.js.map +1 -1
  473. package/lib/module/handlers/gestures/reanimatedWrapper.js +0 -5
  474. package/lib/module/handlers/gestures/reanimatedWrapper.js.map +1 -1
  475. package/lib/module/handlers/gestures/rotationGesture.js +2 -7
  476. package/lib/module/handlers/gestures/rotationGesture.js.map +1 -1
  477. package/lib/module/handlers/gestures/tapGesture.js +10 -19
  478. package/lib/module/handlers/gestures/tapGesture.js.map +1 -1
  479. package/lib/module/handlers/getNextHandlerTag.js.map +1 -1
  480. package/lib/module/handlers/handlersRegistry.js +6 -8
  481. package/lib/module/handlers/handlersRegistry.js.map +1 -1
  482. package/lib/module/handlers/utils.js +4 -13
  483. package/lib/module/handlers/utils.js.map +1 -1
  484. package/lib/module/index.js.map +1 -1
  485. package/lib/module/init.js +3 -2
  486. package/lib/module/init.js.map +1 -1
  487. package/lib/module/jestUtils/index.js.map +1 -1
  488. package/lib/module/jestUtils/jestUtils.js +20 -66
  489. package/lib/module/jestUtils/jestUtils.js.map +1 -1
  490. package/lib/module/mocks.js +3 -7
  491. package/lib/module/mocks.js.map +1 -1
  492. package/lib/module/mountRegistry.js +3 -10
  493. package/lib/module/mountRegistry.js.map +1 -1
  494. package/lib/module/specs/NativeRNGestureHandlerModule.js.map +1 -1
  495. package/lib/module/specs/RNGestureHandlerButtonNativeComponent.js.map +1 -1
  496. package/lib/module/specs/RNGestureHandlerRootViewNativeComponent.js.map +1 -1
  497. package/lib/module/typeUtils.js.map +1 -1
  498. package/lib/module/utils.js +8 -13
  499. package/lib/module/utils.js.map +1 -1
  500. package/lib/module/web/Gestures.js +2 -1
  501. package/lib/module/web/Gestures.js.map +1 -1
  502. package/lib/module/web/constants.js.map +1 -1
  503. package/lib/module/web/detectors/RotationGestureDetector.js +26 -59
  504. package/lib/module/web/detectors/RotationGestureDetector.js.map +1 -1
  505. package/lib/module/web/detectors/ScaleGestureDetector.js +36 -61
  506. package/lib/module/web/detectors/ScaleGestureDetector.js.map +1 -1
  507. package/lib/module/web/handlers/FlingGestureHandler.js +11 -45
  508. package/lib/module/web/handlers/FlingGestureHandler.js.map +1 -1
  509. package/lib/module/web/handlers/GestureHandler.js +159 -259
  510. package/lib/module/web/handlers/GestureHandler.js.map +1 -1
  511. package/lib/module/web/handlers/HoverGestureHandler.js +7 -13
  512. package/lib/module/web/handlers/HoverGestureHandler.js.map +1 -1
  513. package/lib/module/web/handlers/IGestureHandler.js.map +1 -1
  514. package/lib/module/web/handlers/LongPressGestureHandler.js +11 -46
  515. package/lib/module/web/handlers/LongPressGestureHandler.js.map +1 -1
  516. package/lib/module/web/handlers/ManualGestureHandler.js +0 -6
  517. package/lib/module/web/handlers/ManualGestureHandler.js.map +1 -1
  518. package/lib/module/web/handlers/NativeViewGestureHandler.js +20 -54
  519. package/lib/module/web/handlers/NativeViewGestureHandler.js.map +1 -1
  520. package/lib/module/web/handlers/PanGestureHandler.js +22 -129
  521. package/lib/module/web/handlers/PanGestureHandler.js.map +1 -1
  522. package/lib/module/web/handlers/PinchGestureHandler.js +18 -48
  523. package/lib/module/web/handlers/PinchGestureHandler.js.map +1 -1
  524. package/lib/module/web/handlers/RotationGestureHandler.js +15 -46
  525. package/lib/module/web/handlers/RotationGestureHandler.js.map +1 -1
  526. package/lib/module/web/handlers/TapGestureHandler.js +9 -63
  527. package/lib/module/web/handlers/TapGestureHandler.js.map +1 -1
  528. package/lib/module/web/interfaces.js +9 -14
  529. package/lib/module/web/interfaces.js.map +1 -1
  530. package/lib/module/web/tools/CircularBuffer.js +17 -27
  531. package/lib/module/web/tools/CircularBuffer.js.map +1 -1
  532. package/lib/module/web/tools/EventManager.js +7 -39
  533. package/lib/module/web/tools/EventManager.js.map +1 -1
  534. package/lib/module/web/tools/GestureHandlerDelegate.js.map +1 -1
  535. package/lib/module/web/tools/GestureHandlerOrchestrator.js +50 -111
  536. package/lib/module/web/tools/GestureHandlerOrchestrator.js.map +1 -1
  537. package/lib/module/web/tools/GestureHandlerWebDelegate.js +36 -47
  538. package/lib/module/web/tools/GestureHandlerWebDelegate.js.map +1 -1
  539. package/lib/module/web/tools/InteractionManager.js +21 -35
  540. package/lib/module/web/tools/InteractionManager.js.map +1 -1
  541. package/lib/module/web/tools/KeyboardEventManager.js +3 -19
  542. package/lib/module/web/tools/KeyboardEventManager.js.map +1 -1
  543. package/lib/module/web/tools/LeastSquareSolver.js +30 -65
  544. package/lib/module/web/tools/LeastSquareSolver.js.map +1 -1
  545. package/lib/module/web/tools/NodeManager.js +9 -14
  546. package/lib/module/web/tools/NodeManager.js.map +1 -1
  547. package/lib/module/web/tools/PointerEventManager.js +9 -35
  548. package/lib/module/web/tools/PointerEventManager.js.map +1 -1
  549. package/lib/module/web/tools/PointerTracker.js +23 -54
  550. package/lib/module/web/tools/PointerTracker.js.map +1 -1
  551. package/lib/module/web/tools/Vector.js +3 -14
  552. package/lib/module/web/tools/Vector.js.map +1 -1
  553. package/lib/module/web/tools/VelocityTracker.js +9 -26
  554. package/lib/module/web/tools/VelocityTracker.js.map +1 -1
  555. package/lib/module/web/tools/WheelEventManager.js +3 -10
  556. package/lib/module/web/tools/WheelEventManager.js.map +1 -1
  557. package/lib/module/web/utils.js +21 -40
  558. package/lib/module/web/utils.js.map +1 -1
  559. package/lib/module/web_hammer/DiscreteGestureHandler.js +4 -13
  560. package/lib/module/web_hammer/DiscreteGestureHandler.js.map +1 -1
  561. package/lib/module/web_hammer/DraggingGestureHandler.js +0 -5
  562. package/lib/module/web_hammer/DraggingGestureHandler.js.map +1 -1
  563. package/lib/module/web_hammer/Errors.js +0 -1
  564. package/lib/module/web_hammer/Errors.js.map +1 -1
  565. package/lib/module/web_hammer/FlingGestureHandler.js +10 -35
  566. package/lib/module/web_hammer/FlingGestureHandler.js.map +1 -1
  567. package/lib/module/web_hammer/GestureHandler.js +53 -130
  568. package/lib/module/web_hammer/GestureHandler.js.map +1 -1
  569. package/lib/module/web_hammer/IndiscreteGestureHandler.js +1 -6
  570. package/lib/module/web_hammer/IndiscreteGestureHandler.js.map +1 -1
  571. package/lib/module/web_hammer/LongPressGestureHandler.js +2 -11
  572. package/lib/module/web_hammer/LongPressGestureHandler.js.map +1 -1
  573. package/lib/module/web_hammer/NativeViewGestureHandler.js +12 -12
  574. package/lib/module/web_hammer/NativeViewGestureHandler.js.map +1 -1
  575. package/lib/module/web_hammer/NodeManager.js +6 -8
  576. package/lib/module/web_hammer/NodeManager.js.map +1 -1
  577. package/lib/module/web_hammer/PanGestureHandler.js +6 -40
  578. package/lib/module/web_hammer/PanGestureHandler.js.map +1 -1
  579. package/lib/module/web_hammer/PinchGestureHandler.js +0 -5
  580. package/lib/module/web_hammer/PinchGestureHandler.js.map +1 -1
  581. package/lib/module/web_hammer/PressGestureHandler.js +13 -34
  582. package/lib/module/web_hammer/PressGestureHandler.js.map +1 -1
  583. package/lib/module/web_hammer/RotationGestureHandler.js +0 -6
  584. package/lib/module/web_hammer/RotationGestureHandler.js.map +1 -1
  585. package/lib/module/web_hammer/TapGestureHandler.js +31 -45
  586. package/lib/module/web_hammer/TapGestureHandler.js.map +1 -1
  587. package/lib/module/web_hammer/constants.js +2 -1
  588. package/lib/module/web_hammer/constants.js.map +1 -1
  589. package/lib/module/web_hammer/utils.js +2 -2
  590. package/lib/module/web_hammer/utils.js.map +1 -1
  591. package/lib/typescript/components/DrawerLayout.d.ts +27 -0
  592. package/lib/typescript/components/GestureButtonsProps.d.ts +18 -2
  593. package/lib/typescript/components/Pressable/PressableProps.d.ts +3 -10
  594. package/lib/typescript/components/Pressable/index.d.ts +1 -1
  595. package/lib/typescript/components/ReanimatedSwipeable.d.ts +6 -0
  596. package/lib/typescript/components/touchables/TouchableHighlight.d.ts +5 -0
  597. package/lib/typescript/components/touchables/TouchableNativeFeedback.android.d.ts +2 -0
  598. package/lib/typescript/components/touchables/TouchableNativeFeedback.d.ts +5 -1
  599. package/lib/typescript/components/touchables/TouchableNativeFeedbackProps.d.ts +3 -0
  600. package/lib/typescript/components/touchables/TouchableOpacity.d.ts +5 -0
  601. package/lib/typescript/components/touchables/TouchableWithoutFeedback.d.ts +6 -0
  602. package/lib/typescript/handlers/FlingGestureHandler.d.ts +9 -0
  603. package/lib/typescript/handlers/ForceTouchGestureHandler.d.ts +9 -0
  604. package/lib/typescript/handlers/LongPressGestureHandler.d.ts +9 -0
  605. package/lib/typescript/handlers/NativeViewGestureHandler.d.ts +9 -0
  606. package/lib/typescript/handlers/PanGestureHandler.d.ts +9 -0
  607. package/lib/typescript/handlers/PinchGestureHandler.d.ts +9 -0
  608. package/lib/typescript/handlers/RotationGestureHandler.d.ts +9 -0
  609. package/lib/typescript/handlers/TapGestureHandler.d.ts +9 -0
  610. package/lib/typescript/handlers/handlersRegistry.d.ts +1 -0
  611. package/lib/typescript/index.d.ts +1 -1
  612. package/lib/typescript/utils.d.ts +1 -1
  613. package/lib/typescript/web/detectors/RotationGestureDetector.d.ts +7 -7
  614. package/lib/typescript/web/detectors/ScaleGestureDetector.d.ts +8 -8
  615. package/lib/typescript/web/handlers/GestureHandler.d.ts +33 -28
  616. package/lib/typescript/web/handlers/IGestureHandler.d.ts +12 -13
  617. package/lib/typescript/web/tools/CircularBuffer.d.ts +3 -3
  618. package/lib/typescript/web/tools/GestureHandlerDelegate.d.ts +1 -1
  619. package/lib/typescript/web/tools/GestureHandlerOrchestrator.d.ts +2 -2
  620. package/lib/typescript/web/tools/GestureHandlerWebDelegate.d.ts +3 -2
  621. package/lib/typescript/web/tools/InteractionManager.d.ts +2 -2
  622. package/lib/typescript/web/tools/NodeManager.d.ts +1 -1
  623. package/lib/typescript/web/tools/PointerTracker.d.ts +4 -4
  624. package/lib/typescript/web/tools/VelocityTracker.d.ts +1 -1
  625. package/package.json +2 -2
  626. package/src/RNGestureHandlerModule.web.ts +2 -2
  627. package/src/components/DrawerLayout.tsx +29 -0
  628. package/src/components/GestureButtons.tsx +13 -2
  629. package/src/components/GestureButtonsProps.ts +31 -2
  630. package/src/components/Pressable/Pressable.tsx +22 -5
  631. package/src/components/Pressable/PressableProps.tsx +4 -11
  632. package/src/components/Pressable/index.ts +4 -1
  633. package/src/components/ReanimatedSwipeable.tsx +97 -66
  634. package/src/components/Text.tsx +13 -4
  635. package/src/components/touchables/TouchableHighlight.tsx +5 -0
  636. package/src/components/touchables/TouchableNativeFeedback.android.tsx +2 -0
  637. package/src/components/touchables/TouchableNativeFeedback.tsx +6 -1
  638. package/src/components/touchables/TouchableNativeFeedbackProps.tsx +3 -0
  639. package/src/components/touchables/TouchableOpacity.tsx +5 -0
  640. package/src/components/touchables/TouchableWithoutFeedback.tsx +6 -0
  641. package/src/findNodeHandle.web.ts +6 -0
  642. package/src/handlers/FlingGestureHandler.ts +10 -0
  643. package/src/handlers/ForceTouchGestureHandler.ts +9 -0
  644. package/src/handlers/LongPressGestureHandler.ts +10 -0
  645. package/src/handlers/NativeViewGestureHandler.ts +10 -0
  646. package/src/handlers/PanGestureHandler.ts +10 -0
  647. package/src/handlers/PinchGestureHandler.ts +10 -0
  648. package/src/handlers/RotationGestureHandler.ts +10 -0
  649. package/src/handlers/TapGestureHandler.ts +10 -0
  650. package/src/handlers/createHandler.tsx +11 -4
  651. package/src/handlers/gestures/GestureDetector/index.tsx +2 -2
  652. package/src/handlers/gestures/GestureDetector/useViewRefHandler.ts +3 -3
  653. package/src/handlers/gestures/GestureDetector/utils.ts +2 -2
  654. package/src/handlers/handlersRegistry.ts +7 -3
  655. package/src/index.ts +4 -1
  656. package/src/utils.ts +2 -2
  657. package/src/web/detectors/RotationGestureDetector.ts +22 -22
  658. package/src/web/detectors/ScaleGestureDetector.ts +24 -24
  659. package/src/web/handlers/FlingGestureHandler.ts +6 -7
  660. package/src/web/handlers/GestureHandler.ts +115 -105
  661. package/src/web/handlers/HoverGestureHandler.ts +2 -2
  662. package/src/web/handlers/IGestureHandler.ts +12 -13
  663. package/src/web/handlers/LongPressGestureHandler.ts +7 -7
  664. package/src/web/handlers/NativeViewGestureHandler.ts +14 -19
  665. package/src/web/handlers/PanGestureHandler.ts +17 -17
  666. package/src/web/handlers/PinchGestureHandler.ts +17 -21
  667. package/src/web/handlers/RotationGestureHandler.ts +12 -12
  668. package/src/web/handlers/TapGestureHandler.ts +4 -6
  669. package/src/web/tools/CircularBuffer.ts +15 -15
  670. package/src/web/tools/GestureHandlerDelegate.ts +1 -1
  671. package/src/web/tools/GestureHandlerOrchestrator.ts +42 -42
  672. package/src/web/tools/GestureHandlerWebDelegate.ts +32 -13
  673. package/src/web/tools/InteractionManager.ts +16 -16
  674. package/src/web/tools/NodeManager.ts +2 -2
  675. package/src/web/tools/PointerTracker.ts +20 -20
  676. package/src/web/tools/Vector.ts +1 -1
  677. package/src/web/tools/VelocityTracker.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ts"],"names":["default"],"mappings":"AACA,SAASA,OAAT,QAAwB,aAAxB","sourcesContent":["export type { PressableProps } from './PressableProps';\nexport { default } from './Pressable';\n"]}
1
+ {"version":3,"names":["default"],"sources":["index.ts"],"sourcesContent":["export type {\n PressableProps,\n PressableStateCallbackType,\n} from './PressableProps';\nexport { default } from './Pressable';\n"],"mappings":"AAIA,SAASA,OAAO,QAAQ,aAAa","ignoreList":[]}
@@ -4,10 +4,8 @@ const numberAsInset = value => ({
4
4
  top: value,
5
5
  bottom: value
6
6
  });
7
-
8
7
  const addInsets = (a, b) => {
9
8
  var _a$left, _b$left, _a$right, _b$right, _a$top, _b$top, _a$bottom, _b$bottom;
10
-
11
9
  return {
12
10
  left: ((_a$left = a.left) !== null && _a$left !== void 0 ? _a$left : 0) + ((_b$left = b.left) !== null && _b$left !== void 0 ? _b$left : 0),
13
11
  right: ((_a$right = a.right) !== null && _a$right !== void 0 ? _a$right : 0) + ((_b$right = b.right) !== null && _b$right !== void 0 ? _b$right : 0),
@@ -15,7 +13,6 @@ const addInsets = (a, b) => {
15
13
  bottom: ((_a$bottom = a.bottom) !== null && _a$bottom !== void 0 ? _a$bottom : 0) + ((_b$bottom = b.bottom) !== null && _b$bottom !== void 0 ? _b$bottom : 0)
16
14
  };
17
15
  };
18
-
19
16
  const touchDataToPressEvent = (data, timestamp, targetId) => ({
20
17
  identifier: data.id,
21
18
  locationX: data.x,
@@ -27,9 +24,7 @@ const touchDataToPressEvent = (data, timestamp, targetId) => ({
27
24
  touches: [],
28
25
  // Always empty - legacy compatibility
29
26
  changedTouches: [] // Always empty - legacy compatibility
30
-
31
27
  });
32
-
33
28
  const gestureToPressEvent = (event, timestamp, targetId) => ({
34
29
  identifier: event.handlerTag,
35
30
  locationX: event.x,
@@ -41,18 +36,15 @@ const gestureToPressEvent = (event, timestamp, targetId) => ({
41
36
  touches: [],
42
37
  // Always empty - legacy compatibility
43
38
  changedTouches: [] // Always empty - legacy compatibility
44
-
45
39
  });
46
-
47
40
  const isTouchWithinInset = (dimensions, inset, touch) => {
48
41
  var _touch$x, _inset$right, _touch$y, _inset$bottom, _touch$x2, _inset$left, _touch$y2, _inset$top;
49
-
50
42
  return ((_touch$x = touch === null || touch === void 0 ? void 0 : touch.x) !== null && _touch$x !== void 0 ? _touch$x : 0) < ((_inset$right = inset.right) !== null && _inset$right !== void 0 ? _inset$right : 0) + dimensions.width && ((_touch$y = touch === null || touch === void 0 ? void 0 : touch.y) !== null && _touch$y !== void 0 ? _touch$y : 0) < ((_inset$bottom = inset.bottom) !== null && _inset$bottom !== void 0 ? _inset$bottom : 0) + dimensions.height && ((_touch$x2 = touch === null || touch === void 0 ? void 0 : touch.x) !== null && _touch$x2 !== void 0 ? _touch$x2 : 0) > -((_inset$left = inset.left) !== null && _inset$left !== void 0 ? _inset$left : 0) && ((_touch$y2 = touch === null || touch === void 0 ? void 0 : touch.y) !== null && _touch$y2 !== void 0 ? _touch$y2 : 0) > -((_inset$top = inset.top) !== null && _inset$top !== void 0 ? _inset$top : 0);
51
43
  };
52
-
53
44
  const gestureToPressableEvent = event => {
54
- const timestamp = Date.now(); // As far as I can see, there isn't a conventional way of getting targetId with the data we get
45
+ const timestamp = Date.now();
55
46
 
47
+ // As far as I can see, there isn't a conventional way of getting targetId with the data we get
56
48
  const targetId = 0;
57
49
  const pressEvent = gestureToPressEvent(event, timestamp, targetId);
58
50
  return {
@@ -70,12 +62,11 @@ const gestureToPressableEvent = event => {
70
62
  }
71
63
  };
72
64
  };
73
-
74
65
  const gestureTouchToPressableEvent = event => {
75
66
  var _event$allTouches$at$, _event$allTouches$at, _event$allTouches$at$2, _event$allTouches$at2, _event$allTouches$at$3, _event$allTouches$at3, _event$allTouches$at$4, _event$allTouches$at4;
67
+ const timestamp = Date.now();
76
68
 
77
- const timestamp = Date.now(); // As far as I can see, there isn't a conventional way of getting targetId with the data we get
78
-
69
+ // As far as I can see, there isn't a conventional way of getting targetId with the data we get
79
70
  const targetId = 0;
80
71
  const touchesList = event.allTouches.map(touch => touchDataToPressEvent(touch, timestamp, targetId));
81
72
  const changedTouchesList = event.changedTouches.map(touch => touchDataToPressEvent(touch, timestamp, targetId));
@@ -94,6 +85,5 @@ const gestureTouchToPressableEvent = event => {
94
85
  }
95
86
  };
96
87
  };
97
-
98
88
  export { numberAsInset, addInsets, isTouchWithinInset, gestureToPressableEvent, gestureTouchToPressableEvent };
99
89
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["utils.ts"],"names":["numberAsInset","value","left","right","top","bottom","addInsets","a","b","touchDataToPressEvent","data","timestamp","targetId","identifier","id","locationX","x","locationY","y","pageX","absoluteX","pageY","absoluteY","target","touches","changedTouches","gestureToPressEvent","event","handlerTag","isTouchWithinInset","dimensions","inset","touch","width","height","gestureToPressableEvent","Date","now","pressEvent","nativeEvent","force","undefined","gestureTouchToPressableEvent","touchesList","allTouches","map","changedTouchesList","at"],"mappings":"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","sourcesContent":["import { Insets } from 'react-native';\nimport {\n HoverGestureHandlerEventPayload,\n LongPressGestureHandlerEventPayload,\n} from '../../handlers/GestureHandlerEventPayload';\nimport {\n TouchData,\n GestureStateChangeEvent,\n GestureTouchEvent,\n} from '../../handlers/gestureHandlerCommon';\nimport { InnerPressableEvent, PressableEvent } from './PressableProps';\n\nconst numberAsInset = (value: number): Insets => ({\n left: value,\n right: value,\n top: value,\n bottom: value,\n});\n\nconst addInsets = (a: Insets, b: Insets): Insets => ({\n left: (a.left ?? 0) + (b.left ?? 0),\n right: (a.right ?? 0) + (b.right ?? 0),\n top: (a.top ?? 0) + (b.top ?? 0),\n bottom: (a.bottom ?? 0) + (b.bottom ?? 0),\n});\n\nconst touchDataToPressEvent = (\n data: TouchData,\n timestamp: number,\n targetId: number\n): InnerPressableEvent => ({\n identifier: data.id,\n locationX: data.x,\n locationY: data.y,\n pageX: data.absoluteX,\n pageY: data.absoluteY,\n target: targetId,\n timestamp: timestamp,\n touches: [], // Always empty - legacy compatibility\n changedTouches: [], // Always empty - legacy compatibility\n});\n\nconst gestureToPressEvent = (\n event: GestureStateChangeEvent<\n HoverGestureHandlerEventPayload | LongPressGestureHandlerEventPayload\n >,\n timestamp: number,\n targetId: number\n): InnerPressableEvent => ({\n identifier: event.handlerTag,\n locationX: event.x,\n locationY: event.y,\n pageX: event.absoluteX,\n pageY: event.absoluteY,\n target: targetId,\n timestamp: timestamp,\n touches: [], // Always empty - legacy compatibility\n changedTouches: [], // Always empty - legacy compatibility\n});\n\nconst isTouchWithinInset = (\n dimensions: { width: number; height: number },\n inset: Insets,\n touch?: TouchData\n) =>\n (touch?.x ?? 0) < (inset.right ?? 0) + dimensions.width &&\n (touch?.y ?? 0) < (inset.bottom ?? 0) + dimensions.height &&\n (touch?.x ?? 0) > -(inset.left ?? 0) &&\n (touch?.y ?? 0) > -(inset.top ?? 0);\n\nconst gestureToPressableEvent = (\n event: GestureStateChangeEvent<\n HoverGestureHandlerEventPayload | LongPressGestureHandlerEventPayload\n >\n): PressableEvent => {\n const timestamp = Date.now();\n\n // As far as I can see, there isn't a conventional way of getting targetId with the data we get\n const targetId = 0;\n\n const pressEvent = gestureToPressEvent(event, timestamp, targetId);\n\n return {\n nativeEvent: {\n touches: [pressEvent],\n changedTouches: [pressEvent],\n identifier: pressEvent.identifier,\n locationX: event.x,\n locationY: event.y,\n pageX: event.absoluteX,\n pageY: event.absoluteY,\n target: targetId,\n timestamp: timestamp,\n force: undefined,\n },\n };\n};\n\nconst gestureTouchToPressableEvent = (\n event: GestureTouchEvent\n): PressableEvent => {\n const timestamp = Date.now();\n\n // As far as I can see, there isn't a conventional way of getting targetId with the data we get\n const targetId = 0;\n\n const touchesList = event.allTouches.map((touch: TouchData) =>\n touchDataToPressEvent(touch, timestamp, targetId)\n );\n const changedTouchesList = event.changedTouches.map((touch: TouchData) =>\n touchDataToPressEvent(touch, timestamp, targetId)\n );\n\n return {\n nativeEvent: {\n touches: touchesList,\n changedTouches: changedTouchesList,\n identifier: event.handlerTag,\n locationX: event.allTouches.at(0)?.x ?? -1,\n locationY: event.allTouches.at(0)?.y ?? -1,\n pageX: event.allTouches.at(0)?.absoluteX ?? -1,\n pageY: event.allTouches.at(0)?.absoluteY ?? -1,\n target: targetId,\n timestamp: timestamp,\n force: undefined,\n },\n };\n};\n\nexport {\n numberAsInset,\n addInsets,\n isTouchWithinInset,\n gestureToPressableEvent,\n gestureTouchToPressableEvent,\n};\n"]}
1
+ {"version":3,"names":["numberAsInset","value","left","right","top","bottom","addInsets","a","b","_a$left","_b$left","_a$right","_b$right","_a$top","_b$top","_a$bottom","_b$bottom","touchDataToPressEvent","data","timestamp","targetId","identifier","id","locationX","x","locationY","y","pageX","absoluteX","pageY","absoluteY","target","touches","changedTouches","gestureToPressEvent","event","handlerTag","isTouchWithinInset","dimensions","inset","touch","_touch$x","_inset$right","_touch$y","_inset$bottom","_touch$x2","_inset$left","_touch$y2","_inset$top","width","height","gestureToPressableEvent","Date","now","pressEvent","nativeEvent","force","undefined","gestureTouchToPressableEvent","_event$allTouches$at$","_event$allTouches$at","_event$allTouches$at$2","_event$allTouches$at2","_event$allTouches$at$3","_event$allTouches$at3","_event$allTouches$at$4","_event$allTouches$at4","touchesList","allTouches","map","changedTouchesList","at"],"sources":["utils.ts"],"sourcesContent":["import { Insets } from 'react-native';\nimport {\n HoverGestureHandlerEventPayload,\n LongPressGestureHandlerEventPayload,\n} from '../../handlers/GestureHandlerEventPayload';\nimport {\n TouchData,\n GestureStateChangeEvent,\n GestureTouchEvent,\n} from '../../handlers/gestureHandlerCommon';\nimport { InnerPressableEvent, PressableEvent } from './PressableProps';\n\nconst numberAsInset = (value: number): Insets => ({\n left: value,\n right: value,\n top: value,\n bottom: value,\n});\n\nconst addInsets = (a: Insets, b: Insets): Insets => ({\n left: (a.left ?? 0) + (b.left ?? 0),\n right: (a.right ?? 0) + (b.right ?? 0),\n top: (a.top ?? 0) + (b.top ?? 0),\n bottom: (a.bottom ?? 0) + (b.bottom ?? 0),\n});\n\nconst touchDataToPressEvent = (\n data: TouchData,\n timestamp: number,\n targetId: number\n): InnerPressableEvent => ({\n identifier: data.id,\n locationX: data.x,\n locationY: data.y,\n pageX: data.absoluteX,\n pageY: data.absoluteY,\n target: targetId,\n timestamp: timestamp,\n touches: [], // Always empty - legacy compatibility\n changedTouches: [], // Always empty - legacy compatibility\n});\n\nconst gestureToPressEvent = (\n event: GestureStateChangeEvent<\n HoverGestureHandlerEventPayload | LongPressGestureHandlerEventPayload\n >,\n timestamp: number,\n targetId: number\n): InnerPressableEvent => ({\n identifier: event.handlerTag,\n locationX: event.x,\n locationY: event.y,\n pageX: event.absoluteX,\n pageY: event.absoluteY,\n target: targetId,\n timestamp: timestamp,\n touches: [], // Always empty - legacy compatibility\n changedTouches: [], // Always empty - legacy compatibility\n});\n\nconst isTouchWithinInset = (\n dimensions: { width: number; height: number },\n inset: Insets,\n touch?: TouchData\n) =>\n (touch?.x ?? 0) < (inset.right ?? 0) + dimensions.width &&\n (touch?.y ?? 0) < (inset.bottom ?? 0) + dimensions.height &&\n (touch?.x ?? 0) > -(inset.left ?? 0) &&\n (touch?.y ?? 0) > -(inset.top ?? 0);\n\nconst gestureToPressableEvent = (\n event: GestureStateChangeEvent<\n HoverGestureHandlerEventPayload | LongPressGestureHandlerEventPayload\n >\n): PressableEvent => {\n const timestamp = Date.now();\n\n // As far as I can see, there isn't a conventional way of getting targetId with the data we get\n const targetId = 0;\n\n const pressEvent = gestureToPressEvent(event, timestamp, targetId);\n\n return {\n nativeEvent: {\n touches: [pressEvent],\n changedTouches: [pressEvent],\n identifier: pressEvent.identifier,\n locationX: event.x,\n locationY: event.y,\n pageX: event.absoluteX,\n pageY: event.absoluteY,\n target: targetId,\n timestamp: timestamp,\n force: undefined,\n },\n };\n};\n\nconst gestureTouchToPressableEvent = (\n event: GestureTouchEvent\n): PressableEvent => {\n const timestamp = Date.now();\n\n // As far as I can see, there isn't a conventional way of getting targetId with the data we get\n const targetId = 0;\n\n const touchesList = event.allTouches.map((touch: TouchData) =>\n touchDataToPressEvent(touch, timestamp, targetId)\n );\n const changedTouchesList = event.changedTouches.map((touch: TouchData) =>\n touchDataToPressEvent(touch, timestamp, targetId)\n );\n\n return {\n nativeEvent: {\n touches: touchesList,\n changedTouches: changedTouchesList,\n identifier: event.handlerTag,\n locationX: event.allTouches.at(0)?.x ?? -1,\n locationY: event.allTouches.at(0)?.y ?? -1,\n pageX: event.allTouches.at(0)?.absoluteX ?? -1,\n pageY: event.allTouches.at(0)?.absoluteY ?? -1,\n target: targetId,\n timestamp: timestamp,\n force: undefined,\n },\n };\n};\n\nexport {\n numberAsInset,\n addInsets,\n isTouchWithinInset,\n gestureToPressableEvent,\n gestureTouchToPressableEvent,\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,7 @@
1
1
  // This component is based on RN's DrawerLayoutAndroid API
2
2
  // It's cross-compatible with all platforms despite
3
3
  // `DrawerLayoutAndroid` only being available on android
4
+
4
5
  import React, { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useState } from 'react';
5
6
  import { StyleSheet, Keyboard, StatusBar, I18nManager, Platform } from 'react-native';
6
7
  import Animated, { Extrapolation, interpolate, runOnJS, useAnimatedProps, useAnimatedStyle, useDerivedValue, useSharedValue, withSpring } from 'react-native-reanimated';
@@ -8,44 +9,34 @@ import { GestureObjects as Gesture } from '../handlers/gestures/gestureObjects';
8
9
  import { GestureDetector } from '../handlers/gestures/GestureDetector';
9
10
  import { MouseButton } from '../handlers/gestureHandlerCommon';
10
11
  const DRAG_TOSS = 0.05;
11
- export let DrawerPosition;
12
-
13
- (function (DrawerPosition) {
12
+ export let DrawerPosition = /*#__PURE__*/function (DrawerPosition) {
14
13
  DrawerPosition[DrawerPosition["LEFT"] = 0] = "LEFT";
15
14
  DrawerPosition[DrawerPosition["RIGHT"] = 1] = "RIGHT";
16
- })(DrawerPosition || (DrawerPosition = {}));
17
-
18
- export let DrawerState;
19
-
20
- (function (DrawerState) {
15
+ return DrawerPosition;
16
+ }({});
17
+ export let DrawerState = /*#__PURE__*/function (DrawerState) {
21
18
  DrawerState[DrawerState["IDLE"] = 0] = "IDLE";
22
19
  DrawerState[DrawerState["DRAGGING"] = 1] = "DRAGGING";
23
20
  DrawerState[DrawerState["SETTLING"] = 2] = "SETTLING";
24
- })(DrawerState || (DrawerState = {}));
25
-
26
- export let DrawerType;
27
-
28
- (function (DrawerType) {
21
+ return DrawerState;
22
+ }({});
23
+ export let DrawerType = /*#__PURE__*/function (DrawerType) {
29
24
  DrawerType[DrawerType["FRONT"] = 0] = "FRONT";
30
25
  DrawerType[DrawerType["BACK"] = 1] = "BACK";
31
26
  DrawerType[DrawerType["SLIDE"] = 2] = "SLIDE";
32
- })(DrawerType || (DrawerType = {}));
33
-
34
- export let DrawerLockMode;
35
-
36
- (function (DrawerLockMode) {
27
+ return DrawerType;
28
+ }({});
29
+ export let DrawerLockMode = /*#__PURE__*/function (DrawerLockMode) {
37
30
  DrawerLockMode[DrawerLockMode["UNLOCKED"] = 0] = "UNLOCKED";
38
31
  DrawerLockMode[DrawerLockMode["LOCKED_CLOSED"] = 1] = "LOCKED_CLOSED";
39
32
  DrawerLockMode[DrawerLockMode["LOCKED_OPEN"] = 2] = "LOCKED_OPEN";
40
- })(DrawerLockMode || (DrawerLockMode = {}));
41
-
42
- export let DrawerKeyboardDismissMode;
43
-
44
- (function (DrawerKeyboardDismissMode) {
33
+ return DrawerLockMode;
34
+ }({});
35
+ export let DrawerKeyboardDismissMode = /*#__PURE__*/function (DrawerKeyboardDismissMode) {
45
36
  DrawerKeyboardDismissMode[DrawerKeyboardDismissMode["NONE"] = 0] = "NONE";
46
37
  DrawerKeyboardDismissMode[DrawerKeyboardDismissMode["ON_DRAG"] = 1] = "ON_DRAG";
47
- })(DrawerKeyboardDismissMode || (DrawerKeyboardDismissMode = {}));
48
-
38
+ return DrawerKeyboardDismissMode;
39
+ }({});
49
40
  const defaultProps = {
50
41
  drawerWidth: 200,
51
42
  drawerPosition: DrawerPosition.LEFT,
@@ -89,7 +80,9 @@ const DrawerLayout = /*#__PURE__*/forwardRef(function DrawerLayout(props, ref) {
89
80
  onDrawerStateChanged
90
81
  } = props;
91
82
  const isFromLeft = drawerPosition === DrawerPosition.LEFT;
92
- const sideCorrection = isFromLeft ? 1 : -1; // While closing the drawer when user starts gesture in the greyed out part of the window,
83
+ const sideCorrection = isFromLeft ? 1 : -1;
84
+
85
+ // While closing the drawer when user starts gesture in the greyed out part of the window,
93
86
  // we want the drawer to follow only once the finger reaches the edge of the drawer.
94
87
  // See the diagram for reference. * = starting finger position, < = current finger position
95
88
  // 1) +---------------+ 2) +---------------+ 3) +---------------+ 4) +---------------+
@@ -105,18 +98,15 @@ const DrawerLayout = /*#__PURE__*/forwardRef(function DrawerLayout(props, ref) {
105
98
  onDrawerSlide && runOnJS(onDrawerSlide)(openValue.value);
106
99
  }, []);
107
100
  const isDrawerOpen = useSharedValue(false);
108
-
109
101
  const handleContainerLayout = ({
110
102
  nativeEvent
111
103
  }) => {
112
104
  setContainerWidth(nativeEvent.layout.width);
113
105
  };
114
-
115
106
  const emitStateChanged = useCallback((newState, drawerWillShow) => {
116
107
  'worklet';
117
108
 
118
109
  var _runOnJS;
119
-
120
110
  onDrawerStateChanged && ((_runOnJS = runOnJS(onDrawerStateChanged)) === null || _runOnJS === void 0 ? void 0 : _runOnJS(newState, drawerWillShow));
121
111
  }, [onDrawerStateChanged]);
122
112
  const drawerAnimatedProps = useAnimatedProps(() => ({
@@ -124,17 +114,19 @@ const DrawerLayout = /*#__PURE__*/forwardRef(function DrawerLayout(props, ref) {
124
114
  }));
125
115
  const overlayAnimatedProps = useAnimatedProps(() => ({
126
116
  pointerEvents: isDrawerOpen.value ? 'auto' : 'none'
127
- })); // While the drawer is hidden, it's hitSlop overflows onto the main view by edgeWidth
128
- // This way it can be swiped open even when it's hidden
117
+ }));
129
118
 
119
+ // While the drawer is hidden, it's hitSlop overflows onto the main view by edgeWidth
120
+ // This way it can be swiped open even when it's hidden
130
121
  const [edgeHitSlop, setEdgeHitSlop] = useState(isFromLeft ? {
131
122
  left: 0,
132
123
  width: edgeWidth
133
124
  } : {
134
125
  right: 0,
135
126
  width: edgeWidth
136
- }); // gestureOrientation is 1 if the gesture is expected to move from left to right and -1 otherwise
127
+ });
137
128
 
129
+ // gestureOrientation is 1 if the gesture is expected to move from left to right and -1 otherwise
138
130
  const gestureOrientation = useMemo(() => sideCorrection * (drawerOpened ? -1 : 1), [sideCorrection, drawerOpened]);
139
131
  useEffect(() => {
140
132
  setEdgeHitSlop(isFromLeft ? {
@@ -152,11 +144,9 @@ const DrawerLayout = /*#__PURE__*/forwardRef(function DrawerLayout(props, ref) {
152
144
  isDrawerOpen.value = willShow;
153
145
  emitStateChanged(DrawerState.SETTLING, willShow);
154
146
  runOnJS(setDrawerState)(DrawerState.SETTLING);
155
-
156
147
  if (hideStatusBar) {
157
148
  runOnJS(StatusBar.setHidden)(willShow, statusBarAnimation);
158
149
  }
159
-
160
150
  const normalizedToValue = interpolate(toValue, [0, drawerWidth], [0, 1], Extrapolation.CLAMP);
161
151
  const normalizedInitialVelocity = interpolate(initialVelocity, [0, drawerWidth], [0, 1], Extrapolation.CLAMP);
162
152
  openValue.value = withSpring(normalizedToValue, {
@@ -170,14 +160,11 @@ const DrawerLayout = /*#__PURE__*/forwardRef(function DrawerLayout(props, ref) {
170
160
  emitStateChanged(DrawerState.IDLE, willShow);
171
161
  runOnJS(setDrawerOpened)(willShow);
172
162
  runOnJS(setDrawerState)(DrawerState.IDLE);
173
-
174
163
  if (willShow) {
175
164
  var _runOnJS2;
176
-
177
165
  onDrawerOpen && ((_runOnJS2 = runOnJS(onDrawerOpen)) === null || _runOnJS2 === void 0 ? void 0 : _runOnJS2());
178
166
  } else {
179
167
  var _runOnJS3;
180
-
181
168
  onDrawerClose && ((_runOnJS3 = runOnJS(onDrawerClose)) === null || _runOnJS3 === void 0 ? void 0 : _runOnJS3());
182
169
  }
183
170
  }
@@ -191,7 +178,6 @@ const DrawerLayout = /*#__PURE__*/forwardRef(function DrawerLayout(props, ref) {
191
178
  velocityX,
192
179
  x: touchX
193
180
  } = event;
194
-
195
181
  if (drawerPosition !== DrawerPosition.LEFT) {
196
182
  // See description in _updateAnimatedEvent about why events are flipped
197
183
  // for right-side drawer
@@ -199,18 +185,14 @@ const DrawerLayout = /*#__PURE__*/forwardRef(function DrawerLayout(props, ref) {
199
185
  touchX = containerWidth - touchX;
200
186
  velocityX = -velocityX;
201
187
  }
202
-
203
188
  const gestureStartX = touchX - dragX;
204
189
  let dragOffsetBasedOnStart = 0;
205
-
206
190
  if (drawerType === DrawerType.FRONT) {
207
191
  dragOffsetBasedOnStart = gestureStartX > drawerWidth ? gestureStartX - drawerWidth : 0;
208
192
  }
209
-
210
193
  const startOffsetX = dragX + dragOffsetBasedOnStart + (isDrawerOpen.value ? drawerWidth : 0);
211
194
  const projOffsetX = startOffsetX + DRAG_TOSS * velocityX;
212
195
  const shouldOpen = projOffsetX > drawerWidth / 2;
213
-
214
196
  if (shouldOpen) {
215
197
  animateDrawer(drawerWidth, velocityX);
216
198
  } else {
@@ -221,14 +203,12 @@ const DrawerLayout = /*#__PURE__*/forwardRef(function DrawerLayout(props, ref) {
221
203
  'worklet';
222
204
 
223
205
  var _options$initialVeloc;
224
-
225
206
  animateDrawer(drawerWidth, (_options$initialVeloc = options.initialVelocity) !== null && _options$initialVeloc !== void 0 ? _options$initialVeloc : 0, options.animationSpeed);
226
207
  }, [animateDrawer, drawerWidth]);
227
208
  const closeDrawer = useCallback((options = {}) => {
228
209
  'worklet';
229
210
 
230
211
  var _options$initialVeloc2;
231
-
232
212
  animateDrawer(0, (_options$initialVeloc2 = options.initialVelocity) !== null && _options$initialVeloc2 !== void 0 ? _options$initialVeloc2 : 0, options.animationSpeed);
233
213
  }, [animateDrawer]);
234
214
  const overlayDismissGesture = useMemo(() => Gesture.Tap().maxDistance(25).onEnd(() => {
@@ -249,11 +229,9 @@ const DrawerLayout = /*#__PURE__*/forwardRef(function DrawerLayout(props, ref) {
249
229
  return Gesture.Pan().activeCursor(activeCursor).mouseButton(mouseButton).hitSlop(drawerOpened ? fillHitSlop : edgeHitSlop).minDistance(drawerOpened ? 100 : 0).activeOffsetX(gestureOrientation * minSwipeDistance).failOffsetY([-15, 15]).simultaneousWithExternalGesture(overlayDismissGesture).enableTrackpadTwoFingerGesture(enableTrackpadTwoFingerGesture).enabled(drawerState !== DrawerState.SETTLING && (drawerOpened ? drawerLockMode !== DrawerLockMode.LOCKED_OPEN : drawerLockMode !== DrawerLockMode.LOCKED_CLOSED)).onStart(() => {
250
230
  emitStateChanged(DrawerState.DRAGGING, false);
251
231
  runOnJS(setDrawerState)(DrawerState.DRAGGING);
252
-
253
232
  if (keyboardDismissMode === DrawerKeyboardDismissMode.ON_DRAG) {
254
233
  runOnJS(Keyboard.dismiss)();
255
234
  }
256
-
257
235
  if (hideStatusBar) {
258
236
  runOnJS(StatusBar.setHidden)(true, statusBarAnimation);
259
237
  }
@@ -263,8 +241,9 @@ const DrawerLayout = /*#__PURE__*/forwardRef(function DrawerLayout(props, ref) {
263
241
  const adjustedTranslation = Math.max(drawerOpened ? startedOutsideTranslation : 0, startedInsideTranslation);
264
242
  openValue.value = interpolate(adjustedTranslation, [-drawerWidth, 0, drawerWidth], [1, 0, 1], Extrapolation.CLAMP);
265
243
  }).onEnd(handleRelease);
266
- }, [drawerLockMode, openValue, drawerWidth, emitStateChanged, gestureOrientation, handleRelease, edgeHitSlop, fillHitSlop, minSwipeDistance, hideStatusBar, keyboardDismissMode, overlayDismissGesture, drawerOpened, isFromLeft, containerWidth, sideCorrection, drawerState, activeCursor, enableTrackpadTwoFingerGesture, mouseButton, statusBarAnimation]); // When using RTL, row and row-reverse flex directions are flipped.
244
+ }, [drawerLockMode, openValue, drawerWidth, emitStateChanged, gestureOrientation, handleRelease, edgeHitSlop, fillHitSlop, minSwipeDistance, hideStatusBar, keyboardDismissMode, overlayDismissGesture, drawerOpened, isFromLeft, containerWidth, sideCorrection, drawerState, activeCursor, enableTrackpadTwoFingerGesture, mouseButton, statusBarAnimation]);
267
245
 
246
+ // When using RTL, row and row-reverse flex directions are flipped.
268
247
  const reverseContentDirection = I18nManager.isRTL ? isFromLeft : !isFromLeft;
269
248
  const dynamicDrawerStyles = {
270
249
  backgroundColor: drawerBackgroundColor,
@@ -274,7 +253,6 @@ const DrawerLayout = /*#__PURE__*/forwardRef(function DrawerLayout(props, ref) {
274
253
  if (drawerType === DrawerType.FRONT) {
275
254
  return {};
276
255
  }
277
-
278
256
  return {
279
257
  transform: [{
280
258
  translateX: interpolate(openValue.value, [0, 1], [0, drawerWidth * sideCorrection], Extrapolation.CLAMP)
@@ -285,7 +263,6 @@ const DrawerLayout = /*#__PURE__*/forwardRef(function DrawerLayout(props, ref) {
285
263
  const closedDrawerOffset = drawerWidth * -sideCorrection;
286
264
  const isBack = drawerType === DrawerType.BACK;
287
265
  const isIdle = drawerState === DrawerState.IDLE;
288
-
289
266
  if (isBack) {
290
267
  return {
291
268
  transform: [{
@@ -294,15 +271,12 @@ const DrawerLayout = /*#__PURE__*/forwardRef(function DrawerLayout(props, ref) {
294
271
  flexDirection: reverseContentDirection ? 'row-reverse' : 'row'
295
272
  };
296
273
  }
297
-
298
274
  let translateX = 0;
299
-
300
275
  if (isIdle) {
301
276
  translateX = drawerOpened ? 0 : closedDrawerOffset;
302
277
  } else {
303
278
  translateX = interpolate(openValue.value, [0, 1], [closedDrawerOffset, 0], Extrapolation.CLAMP);
304
279
  }
305
-
306
280
  return {
307
281
  transform: [{
308
282
  translateX
@@ -344,21 +318,25 @@ const DrawerLayout = /*#__PURE__*/forwardRef(function DrawerLayout(props, ref) {
344
318
  });
345
319
  export default DrawerLayout;
346
320
  const styles = StyleSheet.create({
347
- drawerContainer: { ...StyleSheet.absoluteFillObject,
321
+ drawerContainer: {
322
+ ...StyleSheet.absoluteFillObject,
348
323
  zIndex: 1001,
349
324
  flexDirection: 'row'
350
325
  },
351
- containerInFront: { ...StyleSheet.absoluteFillObject,
326
+ containerInFront: {
327
+ ...StyleSheet.absoluteFillObject,
352
328
  zIndex: 1002
353
329
  },
354
- containerOnBack: { ...StyleSheet.absoluteFillObject
330
+ containerOnBack: {
331
+ ...StyleSheet.absoluteFillObject
355
332
  },
356
333
  main: {
357
334
  flex: 1,
358
335
  zIndex: 0,
359
336
  overflow: 'hidden'
360
337
  },
361
- overlay: { ...StyleSheet.absoluteFillObject,
338
+ overlay: {
339
+ ...StyleSheet.absoluteFillObject,
362
340
  zIndex: 1000
363
341
  }
364
342
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["ReanimatedDrawerLayout.tsx"],"names":["React","forwardRef","useCallback","useEffect","useImperativeHandle","useMemo","useState","StyleSheet","Keyboard","StatusBar","I18nManager","Platform","Animated","Extrapolation","interpolate","runOnJS","useAnimatedProps","useAnimatedStyle","useDerivedValue","useSharedValue","withSpring","GestureObjects","Gesture","GestureDetector","MouseButton","DRAG_TOSS","DrawerPosition","DrawerState","DrawerType","DrawerLockMode","DrawerKeyboardDismissMode","defaultProps","drawerWidth","drawerPosition","LEFT","drawerType","FRONT","edgeWidth","minSwipeDistance","overlayColor","drawerLockMode","UNLOCKED","enableTrackpadTwoFingerGesture","activeCursor","mouseButton","statusBarAnimation","DrawerLayout","props","ref","containerWidth","setContainerWidth","drawerState","setDrawerState","IDLE","drawerOpened","setDrawerOpened","drawerBackgroundColor","drawerContainerStyle","contentContainerStyle","hideStatusBar","keyboardDismissMode","userSelect","enableContextMenu","renderNavigationView","onDrawerSlide","onDrawerClose","onDrawerOpen","onDrawerStateChanged","isFromLeft","sideCorrection","openValue","value","isDrawerOpen","handleContainerLayout","nativeEvent","layout","width","emitStateChanged","newState","drawerWillShow","drawerAnimatedProps","accessibilityViewIsModal","overlayAnimatedProps","pointerEvents","edgeHitSlop","setEdgeHitSlop","left","right","gestureOrientation","animateDrawer","toValue","initialVelocity","animationSpeed","willShow","SETTLING","setHidden","normalizedToValue","CLAMP","normalizedInitialVelocity","overshootClamping","velocity","mass","damping","stiffness","finished","handleRelease","event","translationX","dragX","velocityX","x","touchX","gestureStartX","dragOffsetBasedOnStart","startOffsetX","projOffsetX","shouldOpen","openDrawer","options","closeDrawer","overlayDismissGesture","Tap","maxDistance","onEnd","LOCKED_OPEN","overlayAnimatedStyle","opacity","backgroundColor","fillHitSlop","panGesture","Pan","hitSlop","minDistance","activeOffsetX","failOffsetY","simultaneousWithExternalGesture","enabled","LOCKED_CLOSED","onStart","DRAGGING","ON_DRAG","dismiss","onUpdate","startedOutsideTranslation","startedInsideTranslation","adjustedTranslation","Math","max","reverseContentDirection","isRTL","dynamicDrawerStyles","containerStyles","transform","translateX","drawerAnimatedStyle","closedDrawerOffset","isBack","BACK","isIdle","flexDirection","containerAnimatedProps","importantForAccessibility","OS","undefined","children","styles","main","containerOnBack","containerInFront","overlay","drawerContainer","create","absoluteFillObject","zIndex","flex","overflow"],"mappings":"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","sourcesContent":["// This component is based on RN's DrawerLayoutAndroid API\n// It's cross-compatible with all platforms despite\n// `DrawerLayoutAndroid` only being available on android\n\nimport React, {\n ReactNode,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useState,\n} from 'react';\n\nimport {\n StyleSheet,\n Keyboard,\n StatusBar,\n I18nManager,\n StatusBarAnimation,\n StyleProp,\n ViewStyle,\n LayoutChangeEvent,\n Platform,\n} from 'react-native';\n\nimport Animated, {\n Extrapolation,\n SharedValue,\n interpolate,\n runOnJS,\n useAnimatedProps,\n useAnimatedStyle,\n useDerivedValue,\n useSharedValue,\n withSpring,\n} from 'react-native-reanimated';\n\nimport { GestureObjects as Gesture } from '../handlers/gestures/gestureObjects';\nimport { GestureDetector } from '../handlers/gestures/GestureDetector';\nimport {\n UserSelect,\n ActiveCursor,\n MouseButton,\n HitSlop,\n GestureStateChangeEvent,\n} from '../handlers/gestureHandlerCommon';\nimport { PanGestureHandlerEventPayload } from '../handlers/GestureHandlerEventPayload';\n\nconst DRAG_TOSS = 0.05;\n\nexport enum DrawerPosition {\n LEFT,\n RIGHT,\n}\n\nexport enum DrawerState {\n IDLE,\n DRAGGING,\n SETTLING,\n}\n\nexport enum DrawerType {\n FRONT,\n BACK,\n SLIDE,\n}\n\nexport enum DrawerLockMode {\n UNLOCKED,\n LOCKED_CLOSED,\n LOCKED_OPEN,\n}\n\nexport enum DrawerKeyboardDismissMode {\n NONE,\n ON_DRAG,\n}\n\nexport interface DrawerLayoutProps {\n /**\n * This attribute is present in the native android implementation already and is one\n * of the required params. The gesture handler version of DrawerLayout makes it\n * possible for the function passed as `renderNavigationView` to take an\n * Animated value as a parameter that indicates the progress of drawer\n * opening/closing animation (progress value is 0 when closed and 1 when\n * opened). This can be used by the drawer component to animated its children\n * while the drawer is opening or closing.\n */\n renderNavigationView: (\n progressAnimatedValue: SharedValue<number>\n ) => ReactNode;\n\n /**\n * Determines the side from which the drawer will open.\n */\n drawerPosition?: DrawerPosition;\n\n /**\n * Width of the drawer.\n */\n drawerWidth?: number;\n\n /**\n * Background color of the drawer.\n */\n drawerBackgroundColor?: string;\n\n /**\n * Specifies the lock mode of the drawer.\n * Programatic opening/closing isn't affected by the lock mode. Defaults to `UNLOCKED`.\n * - `UNLOCKED` - the drawer will respond to gestures.\n * - `LOCKED_CLOSED` - the drawer will move freely until it settles in a closed position, then the gestures will be disabled.\n * - `LOCKED_OPEN` - the drawer will move freely until it settles in an opened position, then the gestures will be disabled.\n */\n drawerLockMode?: DrawerLockMode;\n\n /**\n * Determines if system keyboard should be closed upon dragging the drawer.\n */\n keyboardDismissMode?: DrawerKeyboardDismissMode;\n\n /**\n * Called when the drawer is closed.\n */\n onDrawerClose?: () => void;\n\n /**\n * Called when the drawer is opened.\n */\n onDrawerOpen?: () => void;\n\n /**\n * Called when the status of the drawer changes.\n */\n onDrawerStateChanged?: (\n newState: DrawerState,\n drawerWillShow: boolean\n ) => void;\n\n /**\n * Type of animation that will play when opening the drawer.\n */\n drawerType?: DrawerType;\n\n /**\n * Defines how far from the edge of the content view the gesture should\n * activate.\n */\n edgeWidth?: number;\n\n /**\n * Minimal distance to swipe before the drawer starts moving.\n */\n minSwipeDistance?: number;\n\n /**\n * When set to true Drawer component will use\n * {@link https://reactnative.dev/docs/statusbar StatusBar} API to hide the OS\n * status bar whenever the drawer is pulled or when its in an \"open\" state.\n */\n hideStatusBar?: boolean;\n\n /**\n * @default 'slide'\n *\n * Can be used when hideStatusBar is set to true and will select the animation\n * used for hiding/showing the status bar. See\n * {@link https://reactnative.dev/docs/statusbar StatusBar} documentation for\n * more details\n */\n statusBarAnimation?: StatusBarAnimation;\n\n /**\n * @default 'rgba(0, 0, 0, 0.7)'\n *\n * Color of the background overlay.\n * Animated from `0%` to `100%` as the drawer opens.\n */\n overlayColor?: string;\n\n /**\n * Style wrapping the content.\n */\n contentContainerStyle?: StyleProp<ViewStyle>;\n\n /**\n * Style wrapping the drawer.\n */\n drawerContainerStyle?: StyleProp<ViewStyle>;\n\n /**\n * Enables two-finger gestures on supported devices, for example iPads with\n * trackpads. If not enabled the gesture will require click + drag, with\n * `enableTrackpadTwoFingerGesture` swiping with two fingers will also trigger\n * the gesture.\n */\n enableTrackpadTwoFingerGesture?: boolean;\n\n onDrawerSlide?: (position: number) => void;\n\n // Implicit `children` prop has been removed in @types/react^18.0.\n /**\n * Elements that will be rendered inside the content view.\n */\n children?: ReactNode | ((openValue?: SharedValue<number>) => ReactNode);\n\n /**\n * @default 'none'\n * Sets whether the text inside both the drawer and the context window can be selected.\n * Values: 'none' | 'text' | 'auto'\n */\n userSelect?: UserSelect;\n\n /**\n * @default 'auto'\n * Sets the displayed cursor pictogram when the drawer is being dragged.\n * Values: see CSS cursor values\n */\n activeCursor?: ActiveCursor;\n\n /**\n * @default 'MouseButton.LEFT'\n * Allows to choose which mouse button should underlying pan handler react to.\n */\n mouseButton?: MouseButton;\n\n /**\n * @default 'false if MouseButton.RIGHT is specified'\n * Allows to enable/disable context menu.\n */\n enableContextMenu?: boolean;\n}\n\nexport type DrawerMovementOption = {\n initialVelocity?: number;\n animationSpeed?: number;\n};\n\nexport interface DrawerLayoutMethods {\n openDrawer: (options?: DrawerMovementOption) => void;\n closeDrawer: (options?: DrawerMovementOption) => void;\n}\n\nconst defaultProps = {\n drawerWidth: 200,\n drawerPosition: DrawerPosition.LEFT,\n drawerType: DrawerType.FRONT,\n edgeWidth: 20,\n minSwipeDistance: 3,\n overlayColor: 'rgba(0, 0, 0, 0.7)',\n drawerLockMode: DrawerLockMode.UNLOCKED,\n enableTrackpadTwoFingerGesture: false,\n activeCursor: 'auto' as ActiveCursor,\n mouseButton: MouseButton.LEFT,\n statusBarAnimation: 'slide' as StatusBarAnimation,\n};\n\nconst DrawerLayout = forwardRef<DrawerLayoutMethods, DrawerLayoutProps>(\n function DrawerLayout(props: DrawerLayoutProps, ref) {\n const [containerWidth, setContainerWidth] = useState(0);\n const [drawerState, setDrawerState] = useState<DrawerState>(\n DrawerState.IDLE\n );\n const [drawerOpened, setDrawerOpened] = useState(false);\n\n const {\n drawerPosition = defaultProps.drawerPosition,\n drawerWidth = defaultProps.drawerWidth,\n drawerType = defaultProps.drawerType,\n drawerBackgroundColor,\n drawerContainerStyle,\n contentContainerStyle,\n minSwipeDistance = defaultProps.minSwipeDistance,\n edgeWidth = defaultProps.edgeWidth,\n drawerLockMode = defaultProps.drawerLockMode,\n overlayColor = defaultProps.overlayColor,\n enableTrackpadTwoFingerGesture = defaultProps.enableTrackpadTwoFingerGesture,\n activeCursor = defaultProps.activeCursor,\n mouseButton = defaultProps.mouseButton,\n statusBarAnimation = defaultProps.statusBarAnimation,\n hideStatusBar,\n keyboardDismissMode,\n userSelect,\n enableContextMenu,\n renderNavigationView,\n onDrawerSlide,\n onDrawerClose,\n onDrawerOpen,\n onDrawerStateChanged,\n } = props;\n\n const isFromLeft = drawerPosition === DrawerPosition.LEFT;\n\n const sideCorrection = isFromLeft ? 1 : -1;\n\n // While closing the drawer when user starts gesture in the greyed out part of the window,\n // we want the drawer to follow only once the finger reaches the edge of the drawer.\n // See the diagram for reference. * = starting finger position, < = current finger position\n // 1) +---------------+ 2) +---------------+ 3) +---------------+ 4) +---------------+\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // |XXXXXXXX|..<*..| |XXXXXXXX|.<-*..| |XXXXXXXX|<--*..| |XXXXX|<-----*..|\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // +---------------+ +---------------+ +---------------+ +---------------+\n\n const openValue = useSharedValue<number>(0);\n\n useDerivedValue(() => {\n onDrawerSlide && runOnJS(onDrawerSlide)(openValue.value);\n }, []);\n\n const isDrawerOpen = useSharedValue(false);\n\n const handleContainerLayout = ({ nativeEvent }: LayoutChangeEvent) => {\n setContainerWidth(nativeEvent.layout.width);\n };\n\n const emitStateChanged = useCallback(\n (newState: DrawerState, drawerWillShow: boolean) => {\n 'worklet';\n onDrawerStateChanged &&\n runOnJS(onDrawerStateChanged)?.(newState, drawerWillShow);\n },\n [onDrawerStateChanged]\n );\n\n const drawerAnimatedProps = useAnimatedProps(() => ({\n accessibilityViewIsModal: isDrawerOpen.value,\n }));\n\n const overlayAnimatedProps = useAnimatedProps(() => ({\n pointerEvents: isDrawerOpen.value ? ('auto' as const) : ('none' as const),\n }));\n\n // While the drawer is hidden, it's hitSlop overflows onto the main view by edgeWidth\n // This way it can be swiped open even when it's hidden\n const [edgeHitSlop, setEdgeHitSlop] = useState<HitSlop>(\n isFromLeft\n ? { left: 0, width: edgeWidth }\n : { right: 0, width: edgeWidth }\n );\n\n // gestureOrientation is 1 if the gesture is expected to move from left to right and -1 otherwise\n const gestureOrientation = useMemo(\n () => sideCorrection * (drawerOpened ? -1 : 1),\n [sideCorrection, drawerOpened]\n );\n\n useEffect(() => {\n setEdgeHitSlop(\n isFromLeft\n ? { left: 0, width: edgeWidth }\n : { right: 0, width: edgeWidth }\n );\n }, [isFromLeft, edgeWidth]);\n\n const animateDrawer = useCallback(\n (toValue: number, initialVelocity: number, animationSpeed?: number) => {\n 'worklet';\n const willShow = toValue !== 0;\n isDrawerOpen.value = willShow;\n\n emitStateChanged(DrawerState.SETTLING, willShow);\n runOnJS(setDrawerState)(DrawerState.SETTLING);\n\n if (hideStatusBar) {\n runOnJS(StatusBar.setHidden)(willShow, statusBarAnimation);\n }\n\n const normalizedToValue = interpolate(\n toValue,\n [0, drawerWidth],\n [0, 1],\n Extrapolation.CLAMP\n );\n\n const normalizedInitialVelocity = interpolate(\n initialVelocity,\n [0, drawerWidth],\n [0, 1],\n Extrapolation.CLAMP\n );\n\n openValue.value = withSpring(\n normalizedToValue,\n {\n overshootClamping: true,\n velocity: normalizedInitialVelocity,\n mass: animationSpeed ? 1 / animationSpeed : 1,\n damping: 40,\n stiffness: 500,\n },\n (finished) => {\n if (finished) {\n emitStateChanged(DrawerState.IDLE, willShow);\n runOnJS(setDrawerOpened)(willShow);\n runOnJS(setDrawerState)(DrawerState.IDLE);\n if (willShow) {\n onDrawerOpen && runOnJS(onDrawerOpen)?.();\n } else {\n onDrawerClose && runOnJS(onDrawerClose)?.();\n }\n }\n }\n );\n },\n [\n openValue,\n emitStateChanged,\n isDrawerOpen,\n hideStatusBar,\n onDrawerClose,\n onDrawerOpen,\n drawerWidth,\n statusBarAnimation,\n ]\n );\n\n const handleRelease = useCallback(\n (event: GestureStateChangeEvent<PanGestureHandlerEventPayload>) => {\n 'worklet';\n let { translationX: dragX, velocityX, x: touchX } = event;\n\n if (drawerPosition !== DrawerPosition.LEFT) {\n // See description in _updateAnimatedEvent about why events are flipped\n // for right-side drawer\n dragX = -dragX;\n touchX = containerWidth - touchX;\n velocityX = -velocityX;\n }\n\n const gestureStartX = touchX - dragX;\n let dragOffsetBasedOnStart = 0;\n\n if (drawerType === DrawerType.FRONT) {\n dragOffsetBasedOnStart =\n gestureStartX > drawerWidth ? gestureStartX - drawerWidth : 0;\n }\n\n const startOffsetX =\n dragX +\n dragOffsetBasedOnStart +\n (isDrawerOpen.value ? drawerWidth : 0);\n\n const projOffsetX = startOffsetX + DRAG_TOSS * velocityX;\n\n const shouldOpen = projOffsetX > drawerWidth / 2;\n\n if (shouldOpen) {\n animateDrawer(drawerWidth, velocityX);\n } else {\n animateDrawer(0, velocityX);\n }\n },\n [\n animateDrawer,\n containerWidth,\n drawerPosition,\n drawerType,\n drawerWidth,\n isDrawerOpen,\n ]\n );\n\n const openDrawer = useCallback(\n (options: DrawerMovementOption = {}) => {\n 'worklet';\n animateDrawer(\n drawerWidth,\n options.initialVelocity ?? 0,\n options.animationSpeed\n );\n },\n [animateDrawer, drawerWidth]\n );\n\n const closeDrawer = useCallback(\n (options: DrawerMovementOption = {}) => {\n 'worklet';\n animateDrawer(0, options.initialVelocity ?? 0, options.animationSpeed);\n },\n [animateDrawer]\n );\n\n const overlayDismissGesture = useMemo(\n () =>\n Gesture.Tap()\n .maxDistance(25)\n .onEnd(() => {\n if (\n isDrawerOpen.value &&\n drawerLockMode !== DrawerLockMode.LOCKED_OPEN\n ) {\n closeDrawer();\n }\n }),\n [closeDrawer, isDrawerOpen, drawerLockMode]\n );\n\n const overlayAnimatedStyle = useAnimatedStyle(() => ({\n opacity: openValue.value,\n backgroundColor: overlayColor,\n }));\n\n const fillHitSlop = useMemo(\n () => (isFromLeft ? { left: drawerWidth } : { right: drawerWidth }),\n [drawerWidth, isFromLeft]\n );\n\n const panGesture = useMemo(() => {\n return Gesture.Pan()\n .activeCursor(activeCursor)\n .mouseButton(mouseButton)\n .hitSlop(drawerOpened ? fillHitSlop : edgeHitSlop)\n .minDistance(drawerOpened ? 100 : 0)\n .activeOffsetX(gestureOrientation * minSwipeDistance)\n .failOffsetY([-15, 15])\n .simultaneousWithExternalGesture(overlayDismissGesture)\n .enableTrackpadTwoFingerGesture(enableTrackpadTwoFingerGesture)\n .enabled(\n drawerState !== DrawerState.SETTLING &&\n (drawerOpened\n ? drawerLockMode !== DrawerLockMode.LOCKED_OPEN\n : drawerLockMode !== DrawerLockMode.LOCKED_CLOSED)\n )\n .onStart(() => {\n emitStateChanged(DrawerState.DRAGGING, false);\n runOnJS(setDrawerState)(DrawerState.DRAGGING);\n if (keyboardDismissMode === DrawerKeyboardDismissMode.ON_DRAG) {\n runOnJS(Keyboard.dismiss)();\n }\n if (hideStatusBar) {\n runOnJS(StatusBar.setHidden)(true, statusBarAnimation);\n }\n })\n .onUpdate((event) => {\n const startedOutsideTranslation = isFromLeft\n ? interpolate(\n event.x,\n [0, drawerWidth, drawerWidth + 1],\n [0, drawerWidth, drawerWidth]\n )\n : interpolate(\n event.x - containerWidth,\n [-drawerWidth - 1, -drawerWidth, 0],\n [drawerWidth, drawerWidth, 0]\n );\n\n const startedInsideTranslation =\n sideCorrection *\n (event.translationX +\n (drawerOpened ? drawerWidth * -gestureOrientation : 0));\n\n const adjustedTranslation = Math.max(\n drawerOpened ? startedOutsideTranslation : 0,\n startedInsideTranslation\n );\n\n openValue.value = interpolate(\n adjustedTranslation,\n [-drawerWidth, 0, drawerWidth],\n [1, 0, 1],\n Extrapolation.CLAMP\n );\n })\n .onEnd(handleRelease);\n }, [\n drawerLockMode,\n openValue,\n drawerWidth,\n emitStateChanged,\n gestureOrientation,\n handleRelease,\n edgeHitSlop,\n fillHitSlop,\n minSwipeDistance,\n hideStatusBar,\n keyboardDismissMode,\n overlayDismissGesture,\n drawerOpened,\n isFromLeft,\n containerWidth,\n sideCorrection,\n drawerState,\n activeCursor,\n enableTrackpadTwoFingerGesture,\n mouseButton,\n statusBarAnimation,\n ]);\n\n // When using RTL, row and row-reverse flex directions are flipped.\n const reverseContentDirection = I18nManager.isRTL\n ? isFromLeft\n : !isFromLeft;\n\n const dynamicDrawerStyles = {\n backgroundColor: drawerBackgroundColor,\n width: drawerWidth,\n };\n\n const containerStyles = useAnimatedStyle(() => {\n if (drawerType === DrawerType.FRONT) {\n return {};\n }\n\n return {\n transform: [\n {\n translateX: interpolate(\n openValue.value,\n [0, 1],\n [0, drawerWidth * sideCorrection],\n Extrapolation.CLAMP\n ),\n },\n ],\n };\n });\n\n const drawerAnimatedStyle = useAnimatedStyle(() => {\n const closedDrawerOffset = drawerWidth * -sideCorrection;\n const isBack = drawerType === DrawerType.BACK;\n const isIdle = drawerState === DrawerState.IDLE;\n\n if (isBack) {\n return {\n transform: [{ translateX: 0 }],\n flexDirection: reverseContentDirection ? 'row-reverse' : 'row',\n };\n }\n\n let translateX = 0;\n\n if (isIdle) {\n translateX = drawerOpened ? 0 : closedDrawerOffset;\n } else {\n translateX = interpolate(\n openValue.value,\n [0, 1],\n [closedDrawerOffset, 0],\n Extrapolation.CLAMP\n );\n }\n\n return {\n transform: [{ translateX }],\n flexDirection: reverseContentDirection ? 'row-reverse' : 'row',\n };\n });\n\n const containerAnimatedProps = useAnimatedProps(() => ({\n importantForAccessibility:\n Platform.OS === 'android'\n ? isDrawerOpen.value\n ? ('no-hide-descendants' as const)\n : ('yes' as const)\n : undefined,\n }));\n\n const children =\n typeof props.children === 'function'\n ? props.children(openValue) // renderer function\n : props.children;\n\n useImperativeHandle(\n ref,\n () => ({\n openDrawer,\n closeDrawer,\n }),\n [openDrawer, closeDrawer]\n );\n\n return (\n <GestureDetector\n gesture={panGesture}\n userSelect={userSelect}\n enableContextMenu={enableContextMenu}>\n <Animated.View style={styles.main} onLayout={handleContainerLayout}>\n <GestureDetector gesture={overlayDismissGesture}>\n <Animated.View\n style={[\n drawerType === DrawerType.FRONT\n ? styles.containerOnBack\n : styles.containerInFront,\n containerStyles,\n contentContainerStyle,\n ]}\n animatedProps={containerAnimatedProps}>\n {children}\n <Animated.View\n animatedProps={overlayAnimatedProps}\n style={[styles.overlay, overlayAnimatedStyle]}\n />\n </Animated.View>\n </GestureDetector>\n <Animated.View\n pointerEvents=\"box-none\"\n animatedProps={drawerAnimatedProps}\n style={[\n styles.drawerContainer,\n drawerAnimatedStyle,\n drawerContainerStyle,\n ]}>\n <Animated.View style={dynamicDrawerStyles}>\n {renderNavigationView(openValue)}\n </Animated.View>\n </Animated.View>\n </Animated.View>\n </GestureDetector>\n );\n }\n);\n\nexport default DrawerLayout;\n\nconst styles = StyleSheet.create({\n drawerContainer: {\n ...StyleSheet.absoluteFillObject,\n zIndex: 1001,\n flexDirection: 'row',\n },\n containerInFront: {\n ...StyleSheet.absoluteFillObject,\n zIndex: 1002,\n },\n containerOnBack: {\n ...StyleSheet.absoluteFillObject,\n },\n main: {\n flex: 1,\n zIndex: 0,\n overflow: 'hidden',\n },\n overlay: {\n ...StyleSheet.absoluteFillObject,\n zIndex: 1000,\n },\n});\n"]}
1
+ {"version":3,"names":["React","forwardRef","useCallback","useEffect","useImperativeHandle","useMemo","useState","StyleSheet","Keyboard","StatusBar","I18nManager","Platform","Animated","Extrapolation","interpolate","runOnJS","useAnimatedProps","useAnimatedStyle","useDerivedValue","useSharedValue","withSpring","GestureObjects","Gesture","GestureDetector","MouseButton","DRAG_TOSS","DrawerPosition","DrawerState","DrawerType","DrawerLockMode","DrawerKeyboardDismissMode","defaultProps","drawerWidth","drawerPosition","LEFT","drawerType","FRONT","edgeWidth","minSwipeDistance","overlayColor","drawerLockMode","UNLOCKED","enableTrackpadTwoFingerGesture","activeCursor","mouseButton","statusBarAnimation","DrawerLayout","props","ref","containerWidth","setContainerWidth","drawerState","setDrawerState","IDLE","drawerOpened","setDrawerOpened","drawerBackgroundColor","drawerContainerStyle","contentContainerStyle","hideStatusBar","keyboardDismissMode","userSelect","enableContextMenu","renderNavigationView","onDrawerSlide","onDrawerClose","onDrawerOpen","onDrawerStateChanged","isFromLeft","sideCorrection","openValue","value","isDrawerOpen","handleContainerLayout","nativeEvent","layout","width","emitStateChanged","newState","drawerWillShow","_runOnJS","drawerAnimatedProps","accessibilityViewIsModal","overlayAnimatedProps","pointerEvents","edgeHitSlop","setEdgeHitSlop","left","right","gestureOrientation","animateDrawer","toValue","initialVelocity","animationSpeed","willShow","SETTLING","setHidden","normalizedToValue","CLAMP","normalizedInitialVelocity","overshootClamping","velocity","mass","damping","stiffness","finished","_runOnJS2","_runOnJS3","handleRelease","event","translationX","dragX","velocityX","x","touchX","gestureStartX","dragOffsetBasedOnStart","startOffsetX","projOffsetX","shouldOpen","openDrawer","options","_options$initialVeloc","closeDrawer","_options$initialVeloc2","overlayDismissGesture","Tap","maxDistance","onEnd","LOCKED_OPEN","overlayAnimatedStyle","opacity","backgroundColor","fillHitSlop","panGesture","Pan","hitSlop","minDistance","activeOffsetX","failOffsetY","simultaneousWithExternalGesture","enabled","LOCKED_CLOSED","onStart","DRAGGING","ON_DRAG","dismiss","onUpdate","startedOutsideTranslation","startedInsideTranslation","adjustedTranslation","Math","max","reverseContentDirection","isRTL","dynamicDrawerStyles","containerStyles","transform","translateX","drawerAnimatedStyle","closedDrawerOffset","isBack","BACK","isIdle","flexDirection","containerAnimatedProps","importantForAccessibility","OS","undefined","children","createElement","gesture","View","style","styles","main","onLayout","containerOnBack","containerInFront","animatedProps","overlay","drawerContainer","create","absoluteFillObject","zIndex","flex","overflow"],"sources":["ReanimatedDrawerLayout.tsx"],"sourcesContent":["// This component is based on RN's DrawerLayoutAndroid API\n// It's cross-compatible with all platforms despite\n// `DrawerLayoutAndroid` only being available on android\n\nimport React, {\n ReactNode,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useState,\n} from 'react';\n\nimport {\n StyleSheet,\n Keyboard,\n StatusBar,\n I18nManager,\n StatusBarAnimation,\n StyleProp,\n ViewStyle,\n LayoutChangeEvent,\n Platform,\n} from 'react-native';\n\nimport Animated, {\n Extrapolation,\n SharedValue,\n interpolate,\n runOnJS,\n useAnimatedProps,\n useAnimatedStyle,\n useDerivedValue,\n useSharedValue,\n withSpring,\n} from 'react-native-reanimated';\n\nimport { GestureObjects as Gesture } from '../handlers/gestures/gestureObjects';\nimport { GestureDetector } from '../handlers/gestures/GestureDetector';\nimport {\n UserSelect,\n ActiveCursor,\n MouseButton,\n HitSlop,\n GestureStateChangeEvent,\n} from '../handlers/gestureHandlerCommon';\nimport { PanGestureHandlerEventPayload } from '../handlers/GestureHandlerEventPayload';\n\nconst DRAG_TOSS = 0.05;\n\nexport enum DrawerPosition {\n LEFT,\n RIGHT,\n}\n\nexport enum DrawerState {\n IDLE,\n DRAGGING,\n SETTLING,\n}\n\nexport enum DrawerType {\n FRONT,\n BACK,\n SLIDE,\n}\n\nexport enum DrawerLockMode {\n UNLOCKED,\n LOCKED_CLOSED,\n LOCKED_OPEN,\n}\n\nexport enum DrawerKeyboardDismissMode {\n NONE,\n ON_DRAG,\n}\n\nexport interface DrawerLayoutProps {\n /**\n * This attribute is present in the native android implementation already and is one\n * of the required params. The gesture handler version of DrawerLayout makes it\n * possible for the function passed as `renderNavigationView` to take an\n * Animated value as a parameter that indicates the progress of drawer\n * opening/closing animation (progress value is 0 when closed and 1 when\n * opened). This can be used by the drawer component to animated its children\n * while the drawer is opening or closing.\n */\n renderNavigationView: (\n progressAnimatedValue: SharedValue<number>\n ) => ReactNode;\n\n /**\n * Determines the side from which the drawer will open.\n */\n drawerPosition?: DrawerPosition;\n\n /**\n * Width of the drawer.\n */\n drawerWidth?: number;\n\n /**\n * Background color of the drawer.\n */\n drawerBackgroundColor?: string;\n\n /**\n * Specifies the lock mode of the drawer.\n * Programatic opening/closing isn't affected by the lock mode. Defaults to `UNLOCKED`.\n * - `UNLOCKED` - the drawer will respond to gestures.\n * - `LOCKED_CLOSED` - the drawer will move freely until it settles in a closed position, then the gestures will be disabled.\n * - `LOCKED_OPEN` - the drawer will move freely until it settles in an opened position, then the gestures will be disabled.\n */\n drawerLockMode?: DrawerLockMode;\n\n /**\n * Determines if system keyboard should be closed upon dragging the drawer.\n */\n keyboardDismissMode?: DrawerKeyboardDismissMode;\n\n /**\n * Called when the drawer is closed.\n */\n onDrawerClose?: () => void;\n\n /**\n * Called when the drawer is opened.\n */\n onDrawerOpen?: () => void;\n\n /**\n * Called when the status of the drawer changes.\n */\n onDrawerStateChanged?: (\n newState: DrawerState,\n drawerWillShow: boolean\n ) => void;\n\n /**\n * Type of animation that will play when opening the drawer.\n */\n drawerType?: DrawerType;\n\n /**\n * Defines how far from the edge of the content view the gesture should\n * activate.\n */\n edgeWidth?: number;\n\n /**\n * Minimal distance to swipe before the drawer starts moving.\n */\n minSwipeDistance?: number;\n\n /**\n * When set to true Drawer component will use\n * {@link https://reactnative.dev/docs/statusbar StatusBar} API to hide the OS\n * status bar whenever the drawer is pulled or when its in an \"open\" state.\n */\n hideStatusBar?: boolean;\n\n /**\n * @default 'slide'\n *\n * Can be used when hideStatusBar is set to true and will select the animation\n * used for hiding/showing the status bar. See\n * {@link https://reactnative.dev/docs/statusbar StatusBar} documentation for\n * more details\n */\n statusBarAnimation?: StatusBarAnimation;\n\n /**\n * @default 'rgba(0, 0, 0, 0.7)'\n *\n * Color of the background overlay.\n * Animated from `0%` to `100%` as the drawer opens.\n */\n overlayColor?: string;\n\n /**\n * Style wrapping the content.\n */\n contentContainerStyle?: StyleProp<ViewStyle>;\n\n /**\n * Style wrapping the drawer.\n */\n drawerContainerStyle?: StyleProp<ViewStyle>;\n\n /**\n * Enables two-finger gestures on supported devices, for example iPads with\n * trackpads. If not enabled the gesture will require click + drag, with\n * `enableTrackpadTwoFingerGesture` swiping with two fingers will also trigger\n * the gesture.\n */\n enableTrackpadTwoFingerGesture?: boolean;\n\n onDrawerSlide?: (position: number) => void;\n\n // Implicit `children` prop has been removed in @types/react^18.0.\n /**\n * Elements that will be rendered inside the content view.\n */\n children?: ReactNode | ((openValue?: SharedValue<number>) => ReactNode);\n\n /**\n * @default 'none'\n * Sets whether the text inside both the drawer and the context window can be selected.\n * Values: 'none' | 'text' | 'auto'\n */\n userSelect?: UserSelect;\n\n /**\n * @default 'auto'\n * Sets the displayed cursor pictogram when the drawer is being dragged.\n * Values: see CSS cursor values\n */\n activeCursor?: ActiveCursor;\n\n /**\n * @default 'MouseButton.LEFT'\n * Allows to choose which mouse button should underlying pan handler react to.\n */\n mouseButton?: MouseButton;\n\n /**\n * @default 'false if MouseButton.RIGHT is specified'\n * Allows to enable/disable context menu.\n */\n enableContextMenu?: boolean;\n}\n\nexport type DrawerMovementOption = {\n initialVelocity?: number;\n animationSpeed?: number;\n};\n\nexport interface DrawerLayoutMethods {\n openDrawer: (options?: DrawerMovementOption) => void;\n closeDrawer: (options?: DrawerMovementOption) => void;\n}\n\nconst defaultProps = {\n drawerWidth: 200,\n drawerPosition: DrawerPosition.LEFT,\n drawerType: DrawerType.FRONT,\n edgeWidth: 20,\n minSwipeDistance: 3,\n overlayColor: 'rgba(0, 0, 0, 0.7)',\n drawerLockMode: DrawerLockMode.UNLOCKED,\n enableTrackpadTwoFingerGesture: false,\n activeCursor: 'auto' as ActiveCursor,\n mouseButton: MouseButton.LEFT,\n statusBarAnimation: 'slide' as StatusBarAnimation,\n};\n\nconst DrawerLayout = forwardRef<DrawerLayoutMethods, DrawerLayoutProps>(\n function DrawerLayout(props: DrawerLayoutProps, ref) {\n const [containerWidth, setContainerWidth] = useState(0);\n const [drawerState, setDrawerState] = useState<DrawerState>(\n DrawerState.IDLE\n );\n const [drawerOpened, setDrawerOpened] = useState(false);\n\n const {\n drawerPosition = defaultProps.drawerPosition,\n drawerWidth = defaultProps.drawerWidth,\n drawerType = defaultProps.drawerType,\n drawerBackgroundColor,\n drawerContainerStyle,\n contentContainerStyle,\n minSwipeDistance = defaultProps.minSwipeDistance,\n edgeWidth = defaultProps.edgeWidth,\n drawerLockMode = defaultProps.drawerLockMode,\n overlayColor = defaultProps.overlayColor,\n enableTrackpadTwoFingerGesture = defaultProps.enableTrackpadTwoFingerGesture,\n activeCursor = defaultProps.activeCursor,\n mouseButton = defaultProps.mouseButton,\n statusBarAnimation = defaultProps.statusBarAnimation,\n hideStatusBar,\n keyboardDismissMode,\n userSelect,\n enableContextMenu,\n renderNavigationView,\n onDrawerSlide,\n onDrawerClose,\n onDrawerOpen,\n onDrawerStateChanged,\n } = props;\n\n const isFromLeft = drawerPosition === DrawerPosition.LEFT;\n\n const sideCorrection = isFromLeft ? 1 : -1;\n\n // While closing the drawer when user starts gesture in the greyed out part of the window,\n // we want the drawer to follow only once the finger reaches the edge of the drawer.\n // See the diagram for reference. * = starting finger position, < = current finger position\n // 1) +---------------+ 2) +---------------+ 3) +---------------+ 4) +---------------+\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // |XXXXXXXX|..<*..| |XXXXXXXX|.<-*..| |XXXXXXXX|<--*..| |XXXXX|<-----*..|\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // +---------------+ +---------------+ +---------------+ +---------------+\n\n const openValue = useSharedValue<number>(0);\n\n useDerivedValue(() => {\n onDrawerSlide && runOnJS(onDrawerSlide)(openValue.value);\n }, []);\n\n const isDrawerOpen = useSharedValue(false);\n\n const handleContainerLayout = ({ nativeEvent }: LayoutChangeEvent) => {\n setContainerWidth(nativeEvent.layout.width);\n };\n\n const emitStateChanged = useCallback(\n (newState: DrawerState, drawerWillShow: boolean) => {\n 'worklet';\n onDrawerStateChanged &&\n runOnJS(onDrawerStateChanged)?.(newState, drawerWillShow);\n },\n [onDrawerStateChanged]\n );\n\n const drawerAnimatedProps = useAnimatedProps(() => ({\n accessibilityViewIsModal: isDrawerOpen.value,\n }));\n\n const overlayAnimatedProps = useAnimatedProps(() => ({\n pointerEvents: isDrawerOpen.value ? ('auto' as const) : ('none' as const),\n }));\n\n // While the drawer is hidden, it's hitSlop overflows onto the main view by edgeWidth\n // This way it can be swiped open even when it's hidden\n const [edgeHitSlop, setEdgeHitSlop] = useState<HitSlop>(\n isFromLeft\n ? { left: 0, width: edgeWidth }\n : { right: 0, width: edgeWidth }\n );\n\n // gestureOrientation is 1 if the gesture is expected to move from left to right and -1 otherwise\n const gestureOrientation = useMemo(\n () => sideCorrection * (drawerOpened ? -1 : 1),\n [sideCorrection, drawerOpened]\n );\n\n useEffect(() => {\n setEdgeHitSlop(\n isFromLeft\n ? { left: 0, width: edgeWidth }\n : { right: 0, width: edgeWidth }\n );\n }, [isFromLeft, edgeWidth]);\n\n const animateDrawer = useCallback(\n (toValue: number, initialVelocity: number, animationSpeed?: number) => {\n 'worklet';\n const willShow = toValue !== 0;\n isDrawerOpen.value = willShow;\n\n emitStateChanged(DrawerState.SETTLING, willShow);\n runOnJS(setDrawerState)(DrawerState.SETTLING);\n\n if (hideStatusBar) {\n runOnJS(StatusBar.setHidden)(willShow, statusBarAnimation);\n }\n\n const normalizedToValue = interpolate(\n toValue,\n [0, drawerWidth],\n [0, 1],\n Extrapolation.CLAMP\n );\n\n const normalizedInitialVelocity = interpolate(\n initialVelocity,\n [0, drawerWidth],\n [0, 1],\n Extrapolation.CLAMP\n );\n\n openValue.value = withSpring(\n normalizedToValue,\n {\n overshootClamping: true,\n velocity: normalizedInitialVelocity,\n mass: animationSpeed ? 1 / animationSpeed : 1,\n damping: 40,\n stiffness: 500,\n },\n (finished) => {\n if (finished) {\n emitStateChanged(DrawerState.IDLE, willShow);\n runOnJS(setDrawerOpened)(willShow);\n runOnJS(setDrawerState)(DrawerState.IDLE);\n if (willShow) {\n onDrawerOpen && runOnJS(onDrawerOpen)?.();\n } else {\n onDrawerClose && runOnJS(onDrawerClose)?.();\n }\n }\n }\n );\n },\n [\n openValue,\n emitStateChanged,\n isDrawerOpen,\n hideStatusBar,\n onDrawerClose,\n onDrawerOpen,\n drawerWidth,\n statusBarAnimation,\n ]\n );\n\n const handleRelease = useCallback(\n (event: GestureStateChangeEvent<PanGestureHandlerEventPayload>) => {\n 'worklet';\n let { translationX: dragX, velocityX, x: touchX } = event;\n\n if (drawerPosition !== DrawerPosition.LEFT) {\n // See description in _updateAnimatedEvent about why events are flipped\n // for right-side drawer\n dragX = -dragX;\n touchX = containerWidth - touchX;\n velocityX = -velocityX;\n }\n\n const gestureStartX = touchX - dragX;\n let dragOffsetBasedOnStart = 0;\n\n if (drawerType === DrawerType.FRONT) {\n dragOffsetBasedOnStart =\n gestureStartX > drawerWidth ? gestureStartX - drawerWidth : 0;\n }\n\n const startOffsetX =\n dragX +\n dragOffsetBasedOnStart +\n (isDrawerOpen.value ? drawerWidth : 0);\n\n const projOffsetX = startOffsetX + DRAG_TOSS * velocityX;\n\n const shouldOpen = projOffsetX > drawerWidth / 2;\n\n if (shouldOpen) {\n animateDrawer(drawerWidth, velocityX);\n } else {\n animateDrawer(0, velocityX);\n }\n },\n [\n animateDrawer,\n containerWidth,\n drawerPosition,\n drawerType,\n drawerWidth,\n isDrawerOpen,\n ]\n );\n\n const openDrawer = useCallback(\n (options: DrawerMovementOption = {}) => {\n 'worklet';\n animateDrawer(\n drawerWidth,\n options.initialVelocity ?? 0,\n options.animationSpeed\n );\n },\n [animateDrawer, drawerWidth]\n );\n\n const closeDrawer = useCallback(\n (options: DrawerMovementOption = {}) => {\n 'worklet';\n animateDrawer(0, options.initialVelocity ?? 0, options.animationSpeed);\n },\n [animateDrawer]\n );\n\n const overlayDismissGesture = useMemo(\n () =>\n Gesture.Tap()\n .maxDistance(25)\n .onEnd(() => {\n if (\n isDrawerOpen.value &&\n drawerLockMode !== DrawerLockMode.LOCKED_OPEN\n ) {\n closeDrawer();\n }\n }),\n [closeDrawer, isDrawerOpen, drawerLockMode]\n );\n\n const overlayAnimatedStyle = useAnimatedStyle(() => ({\n opacity: openValue.value,\n backgroundColor: overlayColor,\n }));\n\n const fillHitSlop = useMemo(\n () => (isFromLeft ? { left: drawerWidth } : { right: drawerWidth }),\n [drawerWidth, isFromLeft]\n );\n\n const panGesture = useMemo(() => {\n return Gesture.Pan()\n .activeCursor(activeCursor)\n .mouseButton(mouseButton)\n .hitSlop(drawerOpened ? fillHitSlop : edgeHitSlop)\n .minDistance(drawerOpened ? 100 : 0)\n .activeOffsetX(gestureOrientation * minSwipeDistance)\n .failOffsetY([-15, 15])\n .simultaneousWithExternalGesture(overlayDismissGesture)\n .enableTrackpadTwoFingerGesture(enableTrackpadTwoFingerGesture)\n .enabled(\n drawerState !== DrawerState.SETTLING &&\n (drawerOpened\n ? drawerLockMode !== DrawerLockMode.LOCKED_OPEN\n : drawerLockMode !== DrawerLockMode.LOCKED_CLOSED)\n )\n .onStart(() => {\n emitStateChanged(DrawerState.DRAGGING, false);\n runOnJS(setDrawerState)(DrawerState.DRAGGING);\n if (keyboardDismissMode === DrawerKeyboardDismissMode.ON_DRAG) {\n runOnJS(Keyboard.dismiss)();\n }\n if (hideStatusBar) {\n runOnJS(StatusBar.setHidden)(true, statusBarAnimation);\n }\n })\n .onUpdate((event) => {\n const startedOutsideTranslation = isFromLeft\n ? interpolate(\n event.x,\n [0, drawerWidth, drawerWidth + 1],\n [0, drawerWidth, drawerWidth]\n )\n : interpolate(\n event.x - containerWidth,\n [-drawerWidth - 1, -drawerWidth, 0],\n [drawerWidth, drawerWidth, 0]\n );\n\n const startedInsideTranslation =\n sideCorrection *\n (event.translationX +\n (drawerOpened ? drawerWidth * -gestureOrientation : 0));\n\n const adjustedTranslation = Math.max(\n drawerOpened ? startedOutsideTranslation : 0,\n startedInsideTranslation\n );\n\n openValue.value = interpolate(\n adjustedTranslation,\n [-drawerWidth, 0, drawerWidth],\n [1, 0, 1],\n Extrapolation.CLAMP\n );\n })\n .onEnd(handleRelease);\n }, [\n drawerLockMode,\n openValue,\n drawerWidth,\n emitStateChanged,\n gestureOrientation,\n handleRelease,\n edgeHitSlop,\n fillHitSlop,\n minSwipeDistance,\n hideStatusBar,\n keyboardDismissMode,\n overlayDismissGesture,\n drawerOpened,\n isFromLeft,\n containerWidth,\n sideCorrection,\n drawerState,\n activeCursor,\n enableTrackpadTwoFingerGesture,\n mouseButton,\n statusBarAnimation,\n ]);\n\n // When using RTL, row and row-reverse flex directions are flipped.\n const reverseContentDirection = I18nManager.isRTL\n ? isFromLeft\n : !isFromLeft;\n\n const dynamicDrawerStyles = {\n backgroundColor: drawerBackgroundColor,\n width: drawerWidth,\n };\n\n const containerStyles = useAnimatedStyle(() => {\n if (drawerType === DrawerType.FRONT) {\n return {};\n }\n\n return {\n transform: [\n {\n translateX: interpolate(\n openValue.value,\n [0, 1],\n [0, drawerWidth * sideCorrection],\n Extrapolation.CLAMP\n ),\n },\n ],\n };\n });\n\n const drawerAnimatedStyle = useAnimatedStyle(() => {\n const closedDrawerOffset = drawerWidth * -sideCorrection;\n const isBack = drawerType === DrawerType.BACK;\n const isIdle = drawerState === DrawerState.IDLE;\n\n if (isBack) {\n return {\n transform: [{ translateX: 0 }],\n flexDirection: reverseContentDirection ? 'row-reverse' : 'row',\n };\n }\n\n let translateX = 0;\n\n if (isIdle) {\n translateX = drawerOpened ? 0 : closedDrawerOffset;\n } else {\n translateX = interpolate(\n openValue.value,\n [0, 1],\n [closedDrawerOffset, 0],\n Extrapolation.CLAMP\n );\n }\n\n return {\n transform: [{ translateX }],\n flexDirection: reverseContentDirection ? 'row-reverse' : 'row',\n };\n });\n\n const containerAnimatedProps = useAnimatedProps(() => ({\n importantForAccessibility:\n Platform.OS === 'android'\n ? isDrawerOpen.value\n ? ('no-hide-descendants' as const)\n : ('yes' as const)\n : undefined,\n }));\n\n const children =\n typeof props.children === 'function'\n ? props.children(openValue) // renderer function\n : props.children;\n\n useImperativeHandle(\n ref,\n () => ({\n openDrawer,\n closeDrawer,\n }),\n [openDrawer, closeDrawer]\n );\n\n return (\n <GestureDetector\n gesture={panGesture}\n userSelect={userSelect}\n enableContextMenu={enableContextMenu}>\n <Animated.View style={styles.main} onLayout={handleContainerLayout}>\n <GestureDetector gesture={overlayDismissGesture}>\n <Animated.View\n style={[\n drawerType === DrawerType.FRONT\n ? styles.containerOnBack\n : styles.containerInFront,\n containerStyles,\n contentContainerStyle,\n ]}\n animatedProps={containerAnimatedProps}>\n {children}\n <Animated.View\n animatedProps={overlayAnimatedProps}\n style={[styles.overlay, overlayAnimatedStyle]}\n />\n </Animated.View>\n </GestureDetector>\n <Animated.View\n pointerEvents=\"box-none\"\n animatedProps={drawerAnimatedProps}\n style={[\n styles.drawerContainer,\n drawerAnimatedStyle,\n drawerContainerStyle,\n ]}>\n <Animated.View style={dynamicDrawerStyles}>\n {renderNavigationView(openValue)}\n </Animated.View>\n </Animated.View>\n </Animated.View>\n </GestureDetector>\n );\n }\n);\n\nexport default DrawerLayout;\n\nconst styles = StyleSheet.create({\n drawerContainer: {\n ...StyleSheet.absoluteFillObject,\n zIndex: 1001,\n flexDirection: 'row',\n },\n containerInFront: {\n ...StyleSheet.absoluteFillObject,\n zIndex: 1002,\n },\n containerOnBack: {\n ...StyleSheet.absoluteFillObject,\n },\n main: {\n flex: 1,\n zIndex: 0,\n overflow: 'hidden',\n },\n overlay: {\n ...StyleSheet.absoluteFillObject,\n zIndex: 1000,\n },\n});\n"],"mappings":"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","ignoreList":[]}