react-native-gesture-handler 2.23.0 → 2.23.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (601) hide show
  1. package/RNGestureHandler.podspec +8 -0
  2. package/apple/RNGestureHandlerButton.mm +12 -2
  3. package/lib/commonjs/ActionType.js +3 -3
  4. package/lib/commonjs/ActionType.js.map +1 -1
  5. package/lib/commonjs/Directions.js +8 -11
  6. package/lib/commonjs/Directions.js.map +1 -1
  7. package/lib/commonjs/EnableNewWebImplementation.js +10 -2
  8. package/lib/commonjs/EnableNewWebImplementation.js.map +1 -1
  9. package/lib/commonjs/GestureHandlerRootViewContext.js +7 -2
  10. package/lib/commonjs/GestureHandlerRootViewContext.js.map +1 -1
  11. package/lib/commonjs/PlatformConstants.js +6 -1
  12. package/lib/commonjs/PlatformConstants.js.map +1 -1
  13. package/lib/commonjs/PlatformConstants.web.js +3 -1
  14. package/lib/commonjs/PlatformConstants.web.js.map +1 -1
  15. package/lib/commonjs/PointerType.js +5 -3
  16. package/lib/commonjs/PointerType.js.map +1 -1
  17. package/lib/commonjs/RNGestureHandlerModule.js +6 -2
  18. package/lib/commonjs/RNGestureHandlerModule.js.map +1 -1
  19. package/lib/commonjs/RNGestureHandlerModule.web.js +37 -11
  20. package/lib/commonjs/RNGestureHandlerModule.web.js.map +1 -1
  21. package/lib/commonjs/RNGestureHandlerModule.windows.js +32 -22
  22. package/lib/commonjs/RNGestureHandlerModule.windows.js.map +1 -1
  23. package/lib/commonjs/RNRenderer.js +3 -1
  24. package/lib/commonjs/RNRenderer.js.map +1 -1
  25. package/lib/commonjs/RNRenderer.web.js +2 -1
  26. package/lib/commonjs/RNRenderer.web.js.map +1 -1
  27. package/lib/commonjs/State.js +3 -4
  28. package/lib/commonjs/State.js.map +1 -1
  29. package/lib/commonjs/TouchEventType.js +3 -3
  30. package/lib/commonjs/TouchEventType.js.map +1 -1
  31. package/lib/commonjs/components/DrawerLayout.js +115 -90
  32. package/lib/commonjs/components/DrawerLayout.js.map +1 -1
  33. package/lib/commonjs/components/GestureButtons.js +81 -28
  34. package/lib/commonjs/components/GestureButtons.js.map +1 -1
  35. package/lib/commonjs/components/GestureButtonsProps.js.map +1 -1
  36. package/lib/commonjs/components/GestureComponents.js +37 -26
  37. package/lib/commonjs/components/GestureComponents.js.map +1 -1
  38. package/lib/commonjs/components/GestureComponents.web.js +27 -13
  39. package/lib/commonjs/components/GestureComponents.web.js.map +1 -1
  40. package/lib/commonjs/components/GestureHandlerButton.js +6 -2
  41. package/lib/commonjs/components/GestureHandlerButton.js.map +1 -1
  42. package/lib/commonjs/components/GestureHandlerButton.web.js +12 -4
  43. package/lib/commonjs/components/GestureHandlerButton.web.js.map +1 -1
  44. package/lib/commonjs/components/GestureHandlerRootView.android.js +15 -4
  45. package/lib/commonjs/components/GestureHandlerRootView.android.js.map +1 -1
  46. package/lib/commonjs/components/GestureHandlerRootView.js +14 -4
  47. package/lib/commonjs/components/GestureHandlerRootView.js.map +1 -1
  48. package/lib/commonjs/components/GestureHandlerRootView.web.js +13 -4
  49. package/lib/commonjs/components/GestureHandlerRootView.web.js.map +1 -1
  50. package/lib/commonjs/components/Pressable/Pressable.js +77 -29
  51. package/lib/commonjs/components/Pressable/Pressable.js.map +1 -1
  52. package/lib/commonjs/components/Pressable/PressableProps.js.map +1 -1
  53. package/lib/commonjs/components/Pressable/index.js +3 -1
  54. package/lib/commonjs/components/Pressable/index.js.map +1 -1
  55. package/lib/commonjs/components/Pressable/utils.js +20 -5
  56. package/lib/commonjs/components/Pressable/utils.js.map +1 -1
  57. package/lib/commonjs/components/ReanimatedDrawerLayout.js +76 -38
  58. package/lib/commonjs/components/ReanimatedDrawerLayout.js.map +1 -1
  59. package/lib/commonjs/components/ReanimatedSwipeable.js +45 -18
  60. package/lib/commonjs/components/ReanimatedSwipeable.js.map +1 -1
  61. package/lib/commonjs/components/Swipeable.js +75 -34
  62. package/lib/commonjs/components/Swipeable.js.map +1 -1
  63. package/lib/commonjs/components/Text.js +23 -9
  64. package/lib/commonjs/components/Text.js.map +1 -1
  65. package/lib/commonjs/components/gestureHandlerRootHOC.js +14 -5
  66. package/lib/commonjs/components/gestureHandlerRootHOC.js.map +1 -1
  67. package/lib/commonjs/components/touchables/GenericTouchable.js +76 -40
  68. package/lib/commonjs/components/touchables/GenericTouchable.js.map +1 -1
  69. package/lib/commonjs/components/touchables/GenericTouchableProps.js.map +1 -1
  70. package/lib/commonjs/components/touchables/TouchableHighlight.js +34 -19
  71. package/lib/commonjs/components/touchables/TouchableHighlight.js.map +1 -1
  72. package/lib/commonjs/components/touchables/TouchableNativeFeedback.android.js +32 -16
  73. package/lib/commonjs/components/touchables/TouchableNativeFeedback.android.js.map +1 -1
  74. package/lib/commonjs/components/touchables/TouchableNativeFeedback.js +5 -2
  75. package/lib/commonjs/components/touchables/TouchableNativeFeedback.js.map +1 -1
  76. package/lib/commonjs/components/touchables/TouchableNativeFeedbackProps.js.map +1 -1
  77. package/lib/commonjs/components/touchables/TouchableOpacity.js +25 -16
  78. package/lib/commonjs/components/touchables/TouchableOpacity.js.map +1 -1
  79. package/lib/commonjs/components/touchables/TouchableWithoutFeedback.js +13 -9
  80. package/lib/commonjs/components/touchables/TouchableWithoutFeedback.js.map +1 -1
  81. package/lib/commonjs/components/touchables/index.js +12 -7
  82. package/lib/commonjs/components/touchables/index.js.map +1 -1
  83. package/lib/commonjs/findNodeHandle.js +4 -1
  84. package/lib/commonjs/findNodeHandle.js.map +1 -1
  85. package/lib/commonjs/findNodeHandle.web.js +14 -5
  86. package/lib/commonjs/findNodeHandle.web.js.map +1 -1
  87. package/lib/commonjs/getReactNativeVersion.js +6 -1
  88. package/lib/commonjs/getReactNativeVersion.js.map +1 -1
  89. package/lib/commonjs/getReactNativeVersion.web.js +1 -0
  90. package/lib/commonjs/getReactNativeVersion.web.js.map +1 -1
  91. package/lib/commonjs/getShadowNodeFromRef.js +14 -13
  92. package/lib/commonjs/getShadowNodeFromRef.js.map +1 -1
  93. package/lib/commonjs/getShadowNodeFromRef.web.js +1 -0
  94. package/lib/commonjs/getShadowNodeFromRef.web.js.map +1 -1
  95. package/lib/commonjs/ghQueueMicrotask.js +2 -1
  96. package/lib/commonjs/ghQueueMicrotask.js.map +1 -1
  97. package/lib/commonjs/handlers/FlingGestureHandler.js +11 -9
  98. package/lib/commonjs/handlers/FlingGestureHandler.js.map +1 -1
  99. package/lib/commonjs/handlers/ForceTouchGestureHandler.js +22 -15
  100. package/lib/commonjs/handlers/ForceTouchGestureHandler.js.map +1 -1
  101. package/lib/commonjs/handlers/GestureHandlerEventPayload.js.map +1 -1
  102. package/lib/commonjs/handlers/LongPressGestureHandler.js +11 -9
  103. package/lib/commonjs/handlers/LongPressGestureHandler.js.map +1 -1
  104. package/lib/commonjs/handlers/NativeViewGestureHandler.js +13 -10
  105. package/lib/commonjs/handlers/NativeViewGestureHandler.js.map +1 -1
  106. package/lib/commonjs/handlers/PanGestureHandler.js +32 -13
  107. package/lib/commonjs/handlers/PanGestureHandler.js.map +1 -1
  108. package/lib/commonjs/handlers/PinchGestureHandler.js +9 -7
  109. package/lib/commonjs/handlers/PinchGestureHandler.js.map +1 -1
  110. package/lib/commonjs/handlers/PressabilityDebugView.js +1 -0
  111. package/lib/commonjs/handlers/PressabilityDebugView.js.map +1 -1
  112. package/lib/commonjs/handlers/PressabilityDebugView.web.js +1 -0
  113. package/lib/commonjs/handlers/PressabilityDebugView.web.js.map +1 -1
  114. package/lib/commonjs/handlers/RotationGestureHandler.js +9 -7
  115. package/lib/commonjs/handlers/RotationGestureHandler.js.map +1 -1
  116. package/lib/commonjs/handlers/TapGestureHandler.js +11 -9
  117. package/lib/commonjs/handlers/TapGestureHandler.js.map +1 -1
  118. package/lib/commonjs/handlers/createHandler.js +134 -50
  119. package/lib/commonjs/handlers/createHandler.js.map +1 -1
  120. package/lib/commonjs/handlers/createNativeWrapper.js +27 -17
  121. package/lib/commonjs/handlers/createNativeWrapper.js.map +1 -1
  122. package/lib/commonjs/handlers/customDirectEventTypes.js +1 -0
  123. package/lib/commonjs/handlers/customDirectEventTypes.js.map +1 -1
  124. package/lib/commonjs/handlers/customDirectEventTypes.web.js +2 -1
  125. package/lib/commonjs/handlers/customDirectEventTypes.web.js.map +1 -1
  126. package/lib/commonjs/handlers/gestureHandlerCommon.js +10 -9
  127. package/lib/commonjs/handlers/gestureHandlerCommon.js.map +1 -1
  128. package/lib/commonjs/handlers/gestureHandlerTypesCompat.js.map +1 -1
  129. package/lib/commonjs/handlers/gestures/GestureDetector/Wrap.js +14 -5
  130. package/lib/commonjs/handlers/gestures/GestureDetector/Wrap.js.map +1 -1
  131. package/lib/commonjs/handlers/gestures/GestureDetector/Wrap.web.js +20 -10
  132. package/lib/commonjs/handlers/gestures/GestureDetector/Wrap.web.js.map +1 -1
  133. package/lib/commonjs/handlers/gestures/GestureDetector/attachHandlers.js +29 -9
  134. package/lib/commonjs/handlers/gestures/GestureDetector/attachHandlers.js.map +1 -1
  135. package/lib/commonjs/handlers/gestures/GestureDetector/dropHandlers.js +10 -1
  136. package/lib/commonjs/handlers/gestures/GestureDetector/dropHandlers.js.map +1 -1
  137. package/lib/commonjs/handlers/gestures/GestureDetector/index.js +36 -11
  138. package/lib/commonjs/handlers/gestures/GestureDetector/index.js.map +1 -1
  139. package/lib/commonjs/handlers/gestures/GestureDetector/needsToReattach.js +3 -0
  140. package/lib/commonjs/handlers/gestures/GestureDetector/needsToReattach.js.map +1 -1
  141. package/lib/commonjs/handlers/gestures/GestureDetector/types.js.map +1 -1
  142. package/lib/commonjs/handlers/gestures/GestureDetector/updateHandlers.js +24 -12
  143. package/lib/commonjs/handlers/gestures/GestureDetector/updateHandlers.js.map +1 -1
  144. package/lib/commonjs/handlers/gestures/GestureDetector/useAnimatedGesture.js +48 -12
  145. package/lib/commonjs/handlers/gestures/GestureDetector/useAnimatedGesture.js.map +1 -1
  146. package/lib/commonjs/handlers/gestures/GestureDetector/useDetectorUpdater.js +13 -3
  147. package/lib/commonjs/handlers/gestures/GestureDetector/useDetectorUpdater.js.map +1 -1
  148. package/lib/commonjs/handlers/gestures/GestureDetector/useMountReactions.js +9 -2
  149. package/lib/commonjs/handlers/gestures/GestureDetector/useMountReactions.js.map +1 -1
  150. package/lib/commonjs/handlers/gestures/GestureDetector/useViewRefHandler.js +14 -6
  151. package/lib/commonjs/handlers/gestures/GestureDetector/useViewRefHandler.js.map +1 -1
  152. package/lib/commonjs/handlers/gestures/GestureDetector/utils.js +55 -27
  153. package/lib/commonjs/handlers/gestures/GestureDetector/utils.js.map +1 -1
  154. package/lib/commonjs/handlers/gestures/eventReceiver.js +46 -14
  155. package/lib/commonjs/handlers/gestures/eventReceiver.js.map +1 -1
  156. package/lib/commonjs/handlers/gestures/flingGesture.js +12 -5
  157. package/lib/commonjs/handlers/gestures/flingGesture.js.map +1 -1
  158. package/lib/commonjs/handlers/gestures/forceTouchGesture.js +19 -8
  159. package/lib/commonjs/handlers/gestures/forceTouchGesture.js.map +1 -1
  160. package/lib/commonjs/handlers/gestures/gesture.js +84 -44
  161. package/lib/commonjs/handlers/gestures/gesture.js.map +1 -1
  162. package/lib/commonjs/handlers/gestures/gestureComposition.js +31 -17
  163. package/lib/commonjs/handlers/gestures/gestureComposition.js.map +1 -1
  164. package/lib/commonjs/handlers/gestures/gestureObjects.js +27 -1
  165. package/lib/commonjs/handlers/gestures/gestureObjects.js.map +1 -1
  166. package/lib/commonjs/handlers/gestures/gestureStateManager.js +9 -3
  167. package/lib/commonjs/handlers/gestures/gestureStateManager.js.map +1 -1
  168. package/lib/commonjs/handlers/gestures/gestureStateManager.web.js +7 -2
  169. package/lib/commonjs/handlers/gestures/gestureStateManager.web.js.map +1 -1
  170. package/lib/commonjs/handlers/gestures/hoverGesture.js +25 -11
  171. package/lib/commonjs/handlers/gestures/hoverGesture.js.map +1 -1
  172. package/lib/commonjs/handlers/gestures/longPressGesture.js +14 -6
  173. package/lib/commonjs/handlers/gestures/longPressGesture.js.map +1 -1
  174. package/lib/commonjs/handlers/gestures/manualGesture.js +6 -0
  175. package/lib/commonjs/handlers/gestures/manualGesture.js.map +1 -1
  176. package/lib/commonjs/handlers/gestures/nativeGesture.js +12 -5
  177. package/lib/commonjs/handlers/gestures/nativeGesture.js.map +1 -1
  178. package/lib/commonjs/handlers/gestures/panGesture.js +43 -18
  179. package/lib/commonjs/handlers/gestures/panGesture.js.map +1 -1
  180. package/lib/commonjs/handlers/gestures/pinchGesture.js +9 -2
  181. package/lib/commonjs/handlers/gestures/pinchGesture.js.map +1 -1
  182. package/lib/commonjs/handlers/gestures/reanimatedWrapper.js +8 -1
  183. package/lib/commonjs/handlers/gestures/reanimatedWrapper.js.map +1 -1
  184. package/lib/commonjs/handlers/gestures/rotationGesture.js +9 -2
  185. package/lib/commonjs/handlers/gestures/rotationGesture.js.map +1 -1
  186. package/lib/commonjs/handlers/gestures/tapGesture.js +22 -10
  187. package/lib/commonjs/handlers/gestures/tapGesture.js.map +1 -1
  188. package/lib/commonjs/handlers/getNextHandlerTag.js +1 -0
  189. package/lib/commonjs/handlers/getNextHandlerTag.js.map +1 -1
  190. package/lib/commonjs/handlers/handlersRegistry.js +21 -6
  191. package/lib/commonjs/handlers/handlersRegistry.js.map +1 -1
  192. package/lib/commonjs/handlers/utils.js +26 -6
  193. package/lib/commonjs/handlers/utils.js.map +1 -1
  194. package/lib/commonjs/index.js +104 -75
  195. package/lib/commonjs/index.js.map +1 -1
  196. package/lib/commonjs/init.js +11 -4
  197. package/lib/commonjs/init.js.map +1 -1
  198. package/lib/commonjs/jestUtils/index.js +5 -4
  199. package/lib/commonjs/jestUtils/index.js.map +1 -1
  200. package/lib/commonjs/jestUtils/jestUtils.js +83 -19
  201. package/lib/commonjs/jestUtils/jestUtils.js.map +1 -1
  202. package/lib/commonjs/mocks.js +15 -5
  203. package/lib/commonjs/mocks.js.map +1 -1
  204. package/lib/commonjs/mountRegistry.js +12 -3
  205. package/lib/commonjs/mountRegistry.js.map +1 -1
  206. package/lib/commonjs/specs/NativeRNGestureHandlerModule.js +5 -1
  207. package/lib/commonjs/specs/NativeRNGestureHandlerModule.js.map +1 -1
  208. package/lib/commonjs/specs/RNGestureHandlerButtonNativeComponent.js +7 -2
  209. package/lib/commonjs/specs/RNGestureHandlerButtonNativeComponent.js.map +1 -1
  210. package/lib/commonjs/specs/RNGestureHandlerRootViewNativeComponent.js +7 -2
  211. package/lib/commonjs/specs/RNGestureHandlerRootViewNativeComponent.js.map +1 -1
  212. package/lib/commonjs/typeUtils.js.map +1 -1
  213. package/lib/commonjs/utils.js +28 -13
  214. package/lib/commonjs/utils.js.map +1 -1
  215. package/lib/commonjs/web/Gestures.js +23 -5
  216. package/lib/commonjs/web/Gestures.js.map +1 -1
  217. package/lib/commonjs/web/constants.js +4 -2
  218. package/lib/commonjs/web/constants.js.map +1 -1
  219. package/lib/commonjs/web/detectors/RotationGestureDetector.js +41 -5
  220. package/lib/commonjs/web/detectors/RotationGestureDetector.js.map +1 -1
  221. package/lib/commonjs/web/detectors/ScaleGestureDetector.js +42 -13
  222. package/lib/commonjs/web/detectors/ScaleGestureDetector.js.map +1 -1
  223. package/lib/commonjs/web/handlers/FlingGestureHandler.js +49 -6
  224. package/lib/commonjs/web/handlers/FlingGestureHandler.js.map +1 -1
  225. package/lib/commonjs/web/handlers/GestureHandler.js +195 -62
  226. package/lib/commonjs/web/handlers/GestureHandler.js.map +1 -1
  227. package/lib/commonjs/web/handlers/HoverGestureHandler.js +19 -6
  228. package/lib/commonjs/web/handlers/HoverGestureHandler.js.map +1 -1
  229. package/lib/commonjs/web/handlers/IGestureHandler.js.map +1 -1
  230. package/lib/commonjs/web/handlers/LongPressGestureHandler.js +47 -6
  231. package/lib/commonjs/web/handlers/LongPressGestureHandler.js.map +1 -1
  232. package/lib/commonjs/web/handlers/ManualGestureHandler.js +11 -1
  233. package/lib/commonjs/web/handlers/ManualGestureHandler.js.map +1 -1
  234. package/lib/commonjs/web/handlers/NativeViewGestureHandler.js +49 -8
  235. package/lib/commonjs/web/handlers/NativeViewGestureHandler.js.map +1 -1
  236. package/lib/commonjs/web/handlers/PanGestureHandler.js +123 -8
  237. package/lib/commonjs/web/handlers/PanGestureHandler.js.map +1 -1
  238. package/lib/commonjs/web/handlers/PinchGestureHandler.js +41 -4
  239. package/lib/commonjs/web/handlers/PinchGestureHandler.js.map +1 -1
  240. package/lib/commonjs/web/handlers/RotationGestureHandler.js +42 -4
  241. package/lib/commonjs/web/handlers/RotationGestureHandler.js.map +1 -1
  242. package/lib/commonjs/web/handlers/TapGestureHandler.js +67 -6
  243. package/lib/commonjs/web/handlers/TapGestureHandler.js.map +1 -1
  244. package/lib/commonjs/web/interfaces.js +17 -9
  245. package/lib/commonjs/web/interfaces.js.map +1 -1
  246. package/lib/commonjs/web/tools/CircularBuffer.js +15 -3
  247. package/lib/commonjs/web/tools/CircularBuffer.js.map +1 -1
  248. package/lib/commonjs/web/tools/EventManager.js +41 -7
  249. package/lib/commonjs/web/tools/EventManager.js.map +1 -1
  250. package/lib/commonjs/web/tools/GestureHandlerDelegate.js.map +1 -1
  251. package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js +78 -11
  252. package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js.map +1 -1
  253. package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js +48 -8
  254. package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js.map +1 -1
  255. package/lib/commonjs/web/tools/InteractionManager.js +22 -5
  256. package/lib/commonjs/web/tools/InteractionManager.js.map +1 -1
  257. package/lib/commonjs/web/tools/KeyboardEventManager.js +26 -4
  258. package/lib/commonjs/web/tools/KeyboardEventManager.js.map +1 -1
  259. package/lib/commonjs/web/tools/LeastSquareSolver.js +67 -30
  260. package/lib/commonjs/web/tools/LeastSquareSolver.js.map +1 -1
  261. package/lib/commonjs/web/tools/NodeManager.js +14 -7
  262. package/lib/commonjs/web/tools/NodeManager.js.map +1 -1
  263. package/lib/commonjs/web/tools/PointerEventManager.js +45 -10
  264. package/lib/commonjs/web/tools/PointerEventManager.js.map +1 -1
  265. package/lib/commonjs/web/tools/PointerTracker.js +45 -9
  266. package/lib/commonjs/web/tools/PointerTracker.js.map +1 -1
  267. package/lib/commonjs/web/tools/Vector.js +18 -3
  268. package/lib/commonjs/web/tools/Vector.js.map +1 -1
  269. package/lib/commonjs/web/tools/VelocityTracker.js +31 -9
  270. package/lib/commonjs/web/tools/VelocityTracker.js.map +1 -1
  271. package/lib/commonjs/web/tools/WheelEventManager.js +17 -4
  272. package/lib/commonjs/web/tools/WheelEventManager.js.map +1 -1
  273. package/lib/commonjs/web/utils.js +55 -26
  274. package/lib/commonjs/web/utils.js.map +1 -1
  275. package/lib/commonjs/web_hammer/DiscreteGestureHandler.js +19 -7
  276. package/lib/commonjs/web_hammer/DiscreteGestureHandler.js.map +1 -1
  277. package/lib/commonjs/web_hammer/DraggingGestureHandler.js +13 -3
  278. package/lib/commonjs/web_hammer/DraggingGestureHandler.js.map +1 -1
  279. package/lib/commonjs/web_hammer/Errors.js +3 -0
  280. package/lib/commonjs/web_hammer/Errors.js.map +1 -1
  281. package/lib/commonjs/web_hammer/FlingGestureHandler.js +44 -13
  282. package/lib/commonjs/web_hammer/FlingGestureHandler.js.map +1 -1
  283. package/lib/commonjs/web_hammer/GestureHandler.js +142 -55
  284. package/lib/commonjs/web_hammer/GestureHandler.js.map +1 -1
  285. package/lib/commonjs/web_hammer/IndiscreteGestureHandler.js +11 -2
  286. package/lib/commonjs/web_hammer/IndiscreteGestureHandler.js.map +1 -1
  287. package/lib/commonjs/web_hammer/LongPressGestureHandler.js +19 -5
  288. package/lib/commonjs/web_hammer/LongPressGestureHandler.js.map +1 -1
  289. package/lib/commonjs/web_hammer/NativeViewGestureHandler.js +24 -16
  290. package/lib/commonjs/web_hammer/NativeViewGestureHandler.js.map +1 -1
  291. package/lib/commonjs/web_hammer/NodeManager.js +16 -9
  292. package/lib/commonjs/web_hammer/NodeManager.js.map +1 -1
  293. package/lib/commonjs/web_hammer/PanGestureHandler.js +49 -8
  294. package/lib/commonjs/web_hammer/PanGestureHandler.js.map +1 -1
  295. package/lib/commonjs/web_hammer/PinchGestureHandler.js +11 -2
  296. package/lib/commonjs/web_hammer/PinchGestureHandler.js.map +1 -1
  297. package/lib/commonjs/web_hammer/PressGestureHandler.js +43 -15
  298. package/lib/commonjs/web_hammer/PressGestureHandler.js.map +1 -1
  299. package/lib/commonjs/web_hammer/RotationGestureHandler.js +13 -2
  300. package/lib/commonjs/web_hammer/RotationGestureHandler.js.map +1 -1
  301. package/lib/commonjs/web_hammer/TapGestureHandler.js +52 -33
  302. package/lib/commonjs/web_hammer/TapGestureHandler.js.map +1 -1
  303. package/lib/commonjs/web_hammer/constants.js +26 -13
  304. package/lib/commonjs/web_hammer/constants.js.map +1 -1
  305. package/lib/commonjs/web_hammer/utils.js +14 -4
  306. package/lib/commonjs/web_hammer/utils.js.map +1 -1
  307. package/lib/module/ActionType.js +1 -3
  308. package/lib/module/ActionType.js.map +1 -1
  309. package/lib/module/Directions.js +3 -9
  310. package/lib/module/Directions.js.map +1 -1
  311. package/lib/module/EnableNewWebImplementation.js +5 -2
  312. package/lib/module/EnableNewWebImplementation.js.map +1 -1
  313. package/lib/module/GestureHandlerRootViewContext.js.map +1 -1
  314. package/lib/module/PlatformConstants.js +1 -0
  315. package/lib/module/PlatformConstants.js.map +1 -1
  316. package/lib/module/PlatformConstants.web.js +1 -0
  317. package/lib/module/PlatformConstants.web.js.map +1 -1
  318. package/lib/module/PointerType.js +4 -3
  319. package/lib/module/PointerType.js.map +1 -1
  320. package/lib/module/RNGestureHandlerModule.js +0 -1
  321. package/lib/module/RNGestureHandlerModule.js.map +1 -1
  322. package/lib/module/RNGestureHandlerModule.web.js +20 -10
  323. package/lib/module/RNGestureHandlerModule.web.js.map +1 -1
  324. package/lib/module/RNGestureHandlerModule.windows.js +17 -18
  325. package/lib/module/RNGestureHandlerModule.windows.js.map +1 -1
  326. package/lib/module/RNRenderer.js.map +1 -1
  327. package/lib/module/RNRenderer.web.js.map +1 -1
  328. package/lib/module/State.js +1 -4
  329. package/lib/module/State.js.map +1 -1
  330. package/lib/module/TouchEventType.js +1 -3
  331. package/lib/module/TouchEventType.js.map +1 -1
  332. package/lib/module/components/DrawerLayout.js +99 -80
  333. package/lib/module/components/DrawerLayout.js.map +1 -1
  334. package/lib/module/components/GestureButtons.js +55 -19
  335. package/lib/module/components/GestureButtons.js.map +1 -1
  336. package/lib/module/components/GestureButtonsProps.js.map +1 -1
  337. package/lib/module/components/GestureComponents.js +12 -17
  338. package/lib/module/components/GestureComponents.js.map +1 -1
  339. package/lib/module/components/GestureComponents.web.js +4 -4
  340. package/lib/module/components/GestureComponents.web.js.map +1 -1
  341. package/lib/module/components/GestureHandlerButton.js.map +1 -1
  342. package/lib/module/components/GestureHandlerButton.web.js +2 -1
  343. package/lib/module/components/GestureHandlerButton.web.js.map +1 -1
  344. package/lib/module/components/GestureHandlerRootView.android.js +2 -1
  345. package/lib/module/components/GestureHandlerRootView.android.js.map +1 -1
  346. package/lib/module/components/GestureHandlerRootView.js +2 -1
  347. package/lib/module/components/GestureHandlerRootView.js.map +1 -1
  348. package/lib/module/components/GestureHandlerRootView.web.js +2 -1
  349. package/lib/module/components/GestureHandlerRootView.web.js.map +1 -1
  350. package/lib/module/components/Pressable/Pressable.js +59 -26
  351. package/lib/module/components/Pressable/Pressable.js.map +1 -1
  352. package/lib/module/components/Pressable/PressableProps.js.map +1 -1
  353. package/lib/module/components/Pressable/index.js.map +1 -1
  354. package/lib/module/components/Pressable/utils.js +14 -4
  355. package/lib/module/components/Pressable/utils.js.map +1 -1
  356. package/lib/module/components/ReanimatedDrawerLayout.js +56 -34
  357. package/lib/module/components/ReanimatedDrawerLayout.js.map +1 -1
  358. package/lib/module/components/ReanimatedSwipeable.js +30 -14
  359. package/lib/module/components/ReanimatedSwipeable.js.map +1 -1
  360. package/lib/module/components/Swipeable.js +59 -28
  361. package/lib/module/components/Swipeable.js.map +1 -1
  362. package/lib/module/components/Text.js +10 -6
  363. package/lib/module/components/Text.js.map +1 -1
  364. package/lib/module/components/gestureHandlerRootHOC.js +2 -2
  365. package/lib/module/components/gestureHandlerRootHOC.js.map +1 -1
  366. package/lib/module/components/touchables/GenericTouchable.js +63 -34
  367. package/lib/module/components/touchables/GenericTouchable.js.map +1 -1
  368. package/lib/module/components/touchables/GenericTouchableProps.js.map +1 -1
  369. package/lib/module/components/touchables/TouchableHighlight.js +24 -15
  370. package/lib/module/components/touchables/TouchableHighlight.js.map +1 -1
  371. package/lib/module/components/touchables/TouchableNativeFeedback.android.js +20 -10
  372. package/lib/module/components/touchables/TouchableNativeFeedback.android.js.map +1 -1
  373. package/lib/module/components/touchables/TouchableNativeFeedback.js +2 -2
  374. package/lib/module/components/touchables/TouchableNativeFeedback.js.map +1 -1
  375. package/lib/module/components/touchables/TouchableNativeFeedbackProps.js.map +1 -1
  376. package/lib/module/components/touchables/TouchableOpacity.js +16 -10
  377. package/lib/module/components/touchables/TouchableOpacity.js.map +1 -1
  378. package/lib/module/components/touchables/TouchableWithoutFeedback.js +3 -6
  379. package/lib/module/components/touchables/TouchableWithoutFeedback.js.map +1 -1
  380. package/lib/module/components/touchables/index.js.map +1 -1
  381. package/lib/module/findNodeHandle.js.map +1 -1
  382. package/lib/module/findNodeHandle.web.js +11 -5
  383. package/lib/module/findNodeHandle.web.js.map +1 -1
  384. package/lib/module/getReactNativeVersion.js.map +1 -1
  385. package/lib/module/getReactNativeVersion.web.js.map +1 -1
  386. package/lib/module/getShadowNodeFromRef.js +13 -13
  387. package/lib/module/getShadowNodeFromRef.js.map +1 -1
  388. package/lib/module/getShadowNodeFromRef.web.js.map +1 -1
  389. package/lib/module/ghQueueMicrotask.js.map +1 -1
  390. package/lib/module/handlers/FlingGestureHandler.js +0 -6
  391. package/lib/module/handlers/FlingGestureHandler.js.map +1 -1
  392. package/lib/module/handlers/ForceTouchGestureHandler.js +8 -12
  393. package/lib/module/handlers/ForceTouchGestureHandler.js.map +1 -1
  394. package/lib/module/handlers/GestureHandlerEventPayload.js.map +1 -1
  395. package/lib/module/handlers/LongPressGestureHandler.js +0 -6
  396. package/lib/module/handlers/LongPressGestureHandler.js.map +1 -1
  397. package/lib/module/handlers/NativeViewGestureHandler.js +0 -6
  398. package/lib/module/handlers/NativeViewGestureHandler.js.map +1 -1
  399. package/lib/module/handlers/PanGestureHandler.js +19 -8
  400. package/lib/module/handlers/PanGestureHandler.js.map +1 -1
  401. package/lib/module/handlers/PinchGestureHandler.js +0 -2
  402. package/lib/module/handlers/PinchGestureHandler.js.map +1 -1
  403. package/lib/module/handlers/PressabilityDebugView.js.map +1 -1
  404. package/lib/module/handlers/PressabilityDebugView.web.js.map +1 -1
  405. package/lib/module/handlers/RotationGestureHandler.js +0 -2
  406. package/lib/module/handlers/RotationGestureHandler.js.map +1 -1
  407. package/lib/module/handlers/TapGestureHandler.js +0 -6
  408. package/lib/module/handlers/TapGestureHandler.js.map +1 -1
  409. package/lib/module/handlers/createHandler.js +106 -47
  410. package/lib/module/handlers/createHandler.js.map +1 -1
  411. package/lib/module/handlers/createNativeWrapper.js +17 -12
  412. package/lib/module/handlers/createNativeWrapper.js.map +1 -1
  413. package/lib/module/handlers/customDirectEventTypes.js.map +1 -1
  414. package/lib/module/handlers/customDirectEventTypes.web.js.map +1 -1
  415. package/lib/module/handlers/gestureHandlerCommon.js +4 -9
  416. package/lib/module/handlers/gestureHandlerCommon.js.map +1 -1
  417. package/lib/module/handlers/gestureHandlerTypesCompat.js.map +1 -1
  418. package/lib/module/handlers/gestures/GestureDetector/Wrap.js +4 -3
  419. package/lib/module/handlers/gestures/GestureDetector/Wrap.js.map +1 -1
  420. package/lib/module/handlers/gestures/GestureDetector/Wrap.web.js +6 -5
  421. package/lib/module/handlers/gestures/GestureDetector/Wrap.web.js.map +1 -1
  422. package/lib/module/handlers/gestures/GestureDetector/attachHandlers.js +16 -8
  423. package/lib/module/handlers/gestures/GestureDetector/attachHandlers.js.map +1 -1
  424. package/lib/module/handlers/gestures/GestureDetector/dropHandlers.js +1 -0
  425. package/lib/module/handlers/gestures/GestureDetector/dropHandlers.js.map +1 -1
  426. package/lib/module/handlers/gestures/GestureDetector/index.js +13 -7
  427. package/lib/module/handlers/gestures/GestureDetector/index.js.map +1 -1
  428. package/lib/module/handlers/gestures/GestureDetector/needsToReattach.js +2 -0
  429. package/lib/module/handlers/gestures/GestureDetector/needsToReattach.js.map +1 -1
  430. package/lib/module/handlers/gestures/GestureDetector/types.js.map +1 -1
  431. package/lib/module/handlers/gestures/GestureDetector/updateHandlers.js +14 -11
  432. package/lib/module/handlers/gestures/GestureDetector/updateHandlers.js.map +1 -1
  433. package/lib/module/handlers/gestures/GestureDetector/useAnimatedGesture.js +39 -12
  434. package/lib/module/handlers/gestures/GestureDetector/useAnimatedGesture.js.map +1 -1
  435. package/lib/module/handlers/gestures/GestureDetector/useDetectorUpdater.js +5 -5
  436. package/lib/module/handlers/gestures/GestureDetector/useDetectorUpdater.js.map +1 -1
  437. package/lib/module/handlers/gestures/GestureDetector/useMountReactions.js +6 -2
  438. package/lib/module/handlers/gestures/GestureDetector/useMountReactions.js.map +1 -1
  439. package/lib/module/handlers/gestures/GestureDetector/useViewRefHandler.js +7 -5
  440. package/lib/module/handlers/gestures/GestureDetector/useViewRefHandler.js.map +1 -1
  441. package/lib/module/handlers/gestures/GestureDetector/utils.js +28 -23
  442. package/lib/module/handlers/gestures/GestureDetector/utils.js.map +1 -1
  443. package/lib/module/handlers/gestures/eventReceiver.js +38 -14
  444. package/lib/module/handlers/gestures/eventReceiver.js.map +1 -1
  445. package/lib/module/handlers/gestures/flingGesture.js +9 -5
  446. package/lib/module/handlers/gestures/flingGesture.js.map +1 -1
  447. package/lib/module/handlers/gestures/forceTouchGesture.js +17 -8
  448. package/lib/module/handlers/gestures/forceTouchGesture.js.map +1 -1
  449. package/lib/module/handlers/gestures/gesture.js +73 -44
  450. package/lib/module/handlers/gestures/gesture.js.map +1 -1
  451. package/lib/module/handlers/gestures/gestureComposition.js +24 -16
  452. package/lib/module/handlers/gestures/gestureComposition.js.map +1 -1
  453. package/lib/module/handlers/gestures/gestureObjects.js +14 -1
  454. package/lib/module/handlers/gestures/gestureObjects.js.map +1 -1
  455. package/lib/module/handlers/gestures/gestureStateManager.js +4 -3
  456. package/lib/module/handlers/gestures/gestureStateManager.js.map +1 -1
  457. package/lib/module/handlers/gestures/gestureStateManager.web.js +1 -0
  458. package/lib/module/handlers/gestures/gestureStateManager.web.js.map +1 -1
  459. package/lib/module/handlers/gestures/hoverGesture.js +18 -9
  460. package/lib/module/handlers/gestures/hoverGesture.js.map +1 -1
  461. package/lib/module/handlers/gestures/longPressGesture.js +11 -6
  462. package/lib/module/handlers/gestures/longPressGesture.js.map +1 -1
  463. package/lib/module/handlers/gestures/manualGesture.js +4 -0
  464. package/lib/module/handlers/gestures/manualGesture.js.map +1 -1
  465. package/lib/module/handlers/gestures/nativeGesture.js +9 -5
  466. package/lib/module/handlers/gestures/nativeGesture.js.map +1 -1
  467. package/lib/module/handlers/gestures/panGesture.js +41 -18
  468. package/lib/module/handlers/gestures/panGesture.js.map +1 -1
  469. package/lib/module/handlers/gestures/pinchGesture.js +7 -2
  470. package/lib/module/handlers/gestures/pinchGesture.js.map +1 -1
  471. package/lib/module/handlers/gestures/reanimatedWrapper.js +5 -0
  472. package/lib/module/handlers/gestures/reanimatedWrapper.js.map +1 -1
  473. package/lib/module/handlers/gestures/rotationGesture.js +7 -2
  474. package/lib/module/handlers/gestures/rotationGesture.js.map +1 -1
  475. package/lib/module/handlers/gestures/tapGesture.js +19 -10
  476. package/lib/module/handlers/gestures/tapGesture.js.map +1 -1
  477. package/lib/module/handlers/getNextHandlerTag.js.map +1 -1
  478. package/lib/module/handlers/handlersRegistry.js +5 -0
  479. package/lib/module/handlers/handlersRegistry.js.map +1 -1
  480. package/lib/module/handlers/utils.js +13 -4
  481. package/lib/module/handlers/utils.js.map +1 -1
  482. package/lib/module/index.js.map +1 -1
  483. package/lib/module/init.js +2 -3
  484. package/lib/module/init.js.map +1 -1
  485. package/lib/module/jestUtils/index.js.map +1 -1
  486. package/lib/module/jestUtils/jestUtils.js +66 -20
  487. package/lib/module/jestUtils/jestUtils.js.map +1 -1
  488. package/lib/module/mocks.js +7 -3
  489. package/lib/module/mocks.js.map +1 -1
  490. package/lib/module/mountRegistry.js +10 -3
  491. package/lib/module/mountRegistry.js.map +1 -1
  492. package/lib/module/specs/NativeRNGestureHandlerModule.js.map +1 -1
  493. package/lib/module/specs/RNGestureHandlerButtonNativeComponent.js.map +1 -1
  494. package/lib/module/specs/RNGestureHandlerRootViewNativeComponent.js.map +1 -1
  495. package/lib/module/typeUtils.js.map +1 -1
  496. package/lib/module/utils.js +11 -6
  497. package/lib/module/utils.js.map +1 -1
  498. package/lib/module/web/Gestures.js +1 -2
  499. package/lib/module/web/Gestures.js.map +1 -1
  500. package/lib/module/web/constants.js.map +1 -1
  501. package/lib/module/web/detectors/RotationGestureDetector.js +38 -5
  502. package/lib/module/web/detectors/RotationGestureDetector.js.map +1 -1
  503. package/lib/module/web/detectors/ScaleGestureDetector.js +38 -13
  504. package/lib/module/web/detectors/ScaleGestureDetector.js.map +1 -1
  505. package/lib/module/web/handlers/FlingGestureHandler.js +39 -5
  506. package/lib/module/web/handlers/FlingGestureHandler.js.map +1 -1
  507. package/lib/module/web/handlers/GestureHandler.js +181 -61
  508. package/lib/module/web/handlers/GestureHandler.js.map +1 -1
  509. package/lib/module/web/handlers/HoverGestureHandler.js +11 -5
  510. package/lib/module/web/handlers/HoverGestureHandler.js.map +1 -1
  511. package/lib/module/web/handlers/IGestureHandler.js.map +1 -1
  512. package/lib/module/web/handlers/LongPressGestureHandler.js +40 -5
  513. package/lib/module/web/handlers/LongPressGestureHandler.js.map +1 -1
  514. package/lib/module/web/handlers/ManualGestureHandler.js +6 -0
  515. package/lib/module/web/handlers/ManualGestureHandler.js.map +1 -1
  516. package/lib/module/web/handlers/NativeViewGestureHandler.js +41 -7
  517. package/lib/module/web/handlers/NativeViewGestureHandler.js.map +1 -1
  518. package/lib/module/web/handlers/PanGestureHandler.js +114 -7
  519. package/lib/module/web/handlers/PanGestureHandler.js.map +1 -1
  520. package/lib/module/web/handlers/PinchGestureHandler.js +33 -3
  521. package/lib/module/web/handlers/PinchGestureHandler.js.map +1 -1
  522. package/lib/module/web/handlers/RotationGestureHandler.js +34 -3
  523. package/lib/module/web/handlers/RotationGestureHandler.js.map +1 -1
  524. package/lib/module/web/handlers/TapGestureHandler.js +59 -5
  525. package/lib/module/web/handlers/TapGestureHandler.js.map +1 -1
  526. package/lib/module/web/interfaces.js +14 -9
  527. package/lib/module/web/interfaces.js.map +1 -1
  528. package/lib/module/web/tools/CircularBuffer.js +13 -3
  529. package/lib/module/web/tools/CircularBuffer.js.map +1 -1
  530. package/lib/module/web/tools/EventManager.js +39 -7
  531. package/lib/module/web/tools/EventManager.js.map +1 -1
  532. package/lib/module/web/tools/GestureHandlerDelegate.js.map +1 -1
  533. package/lib/module/web/tools/GestureHandlerOrchestrator.js +71 -10
  534. package/lib/module/web/tools/GestureHandlerOrchestrator.js.map +1 -1
  535. package/lib/module/web/tools/GestureHandlerWebDelegate.js +37 -7
  536. package/lib/module/web/tools/GestureHandlerWebDelegate.js.map +1 -1
  537. package/lib/module/web/tools/InteractionManager.js +19 -5
  538. package/lib/module/web/tools/InteractionManager.js.map +1 -1
  539. package/lib/module/web/tools/KeyboardEventManager.js +19 -3
  540. package/lib/module/web/tools/KeyboardEventManager.js.map +1 -1
  541. package/lib/module/web/tools/LeastSquareSolver.js +65 -30
  542. package/lib/module/web/tools/LeastSquareSolver.js.map +1 -1
  543. package/lib/module/web/tools/NodeManager.js +12 -7
  544. package/lib/module/web/tools/NodeManager.js.map +1 -1
  545. package/lib/module/web/tools/PointerEventManager.js +35 -9
  546. package/lib/module/web/tools/PointerEventManager.js.map +1 -1
  547. package/lib/module/web/tools/PointerTracker.js +39 -8
  548. package/lib/module/web/tools/PointerTracker.js.map +1 -1
  549. package/lib/module/web/tools/Vector.js +14 -3
  550. package/lib/module/web/tools/Vector.js.map +1 -1
  551. package/lib/module/web/tools/VelocityTracker.js +25 -8
  552. package/lib/module/web/tools/VelocityTracker.js.map +1 -1
  553. package/lib/module/web/tools/WheelEventManager.js +10 -3
  554. package/lib/module/web/tools/WheelEventManager.js.map +1 -1
  555. package/lib/module/web/utils.js +40 -21
  556. package/lib/module/web/utils.js.map +1 -1
  557. package/lib/module/web_hammer/DiscreteGestureHandler.js +13 -4
  558. package/lib/module/web_hammer/DiscreteGestureHandler.js.map +1 -1
  559. package/lib/module/web_hammer/DraggingGestureHandler.js +5 -0
  560. package/lib/module/web_hammer/DraggingGestureHandler.js.map +1 -1
  561. package/lib/module/web_hammer/Errors.js +1 -0
  562. package/lib/module/web_hammer/Errors.js.map +1 -1
  563. package/lib/module/web_hammer/FlingGestureHandler.js +35 -10
  564. package/lib/module/web_hammer/FlingGestureHandler.js.map +1 -1
  565. package/lib/module/web_hammer/GestureHandler.js +130 -53
  566. package/lib/module/web_hammer/GestureHandler.js.map +1 -1
  567. package/lib/module/web_hammer/IndiscreteGestureHandler.js +6 -1
  568. package/lib/module/web_hammer/IndiscreteGestureHandler.js.map +1 -1
  569. package/lib/module/web_hammer/LongPressGestureHandler.js +11 -2
  570. package/lib/module/web_hammer/LongPressGestureHandler.js.map +1 -1
  571. package/lib/module/web_hammer/NativeViewGestureHandler.js +12 -12
  572. package/lib/module/web_hammer/NativeViewGestureHandler.js.map +1 -1
  573. package/lib/module/web_hammer/NodeManager.js +8 -6
  574. package/lib/module/web_hammer/NodeManager.js.map +1 -1
  575. package/lib/module/web_hammer/PanGestureHandler.js +40 -6
  576. package/lib/module/web_hammer/PanGestureHandler.js.map +1 -1
  577. package/lib/module/web_hammer/PinchGestureHandler.js +5 -0
  578. package/lib/module/web_hammer/PinchGestureHandler.js.map +1 -1
  579. package/lib/module/web_hammer/PressGestureHandler.js +34 -13
  580. package/lib/module/web_hammer/PressGestureHandler.js.map +1 -1
  581. package/lib/module/web_hammer/RotationGestureHandler.js +6 -0
  582. package/lib/module/web_hammer/RotationGestureHandler.js.map +1 -1
  583. package/lib/module/web_hammer/TapGestureHandler.js +45 -31
  584. package/lib/module/web_hammer/TapGestureHandler.js.map +1 -1
  585. package/lib/module/web_hammer/constants.js +1 -2
  586. package/lib/module/web_hammer/constants.js.map +1 -1
  587. package/lib/module/web_hammer/utils.js +2 -2
  588. package/lib/module/web_hammer/utils.js.map +1 -1
  589. package/lib/typescript/components/touchables/TouchableHighlight.d.ts +2 -2
  590. package/lib/typescript/components/touchables/TouchableNativeFeedback.android.d.ts +1 -1
  591. package/lib/typescript/components/touchables/TouchableNativeFeedback.d.ts +1 -1
  592. package/lib/typescript/components/touchables/TouchableNativeFeedbackProps.d.ts +1 -1
  593. package/lib/typescript/components/touchables/TouchableOpacity.d.ts +2 -2
  594. package/lib/typescript/components/touchables/TouchableWithoutFeedback.d.ts +2 -2
  595. package/package.json +1 -1
  596. package/src/components/touchables/TouchableHighlight.tsx +2 -2
  597. package/src/components/touchables/TouchableNativeFeedback.android.tsx +1 -1
  598. package/src/components/touchables/TouchableNativeFeedback.tsx +1 -1
  599. package/src/components/touchables/TouchableNativeFeedbackProps.tsx +1 -1
  600. package/src/components/touchables/TouchableOpacity.tsx +2 -2
  601. package/src/components/touchables/TouchableWithoutFeedback.tsx +2 -2
@@ -4,8 +4,10 @@ const numberAsInset = value => ({
4
4
  top: value,
5
5
  bottom: value
6
6
  });
7
+
7
8
  const addInsets = (a, b) => {
8
9
  var _a$left, _b$left, _a$right, _b$right, _a$top, _b$top, _a$bottom, _b$bottom;
10
+
9
11
  return {
10
12
  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),
11
13
  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),
@@ -13,6 +15,7 @@ const addInsets = (a, b) => {
13
15
  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)
14
16
  };
15
17
  };
18
+
16
19
  const touchDataToPressEvent = (data, timestamp, targetId) => ({
17
20
  identifier: data.id,
18
21
  locationX: data.x,
@@ -24,7 +27,9 @@ const touchDataToPressEvent = (data, timestamp, targetId) => ({
24
27
  touches: [],
25
28
  // Always empty - legacy compatibility
26
29
  changedTouches: [] // Always empty - legacy compatibility
30
+
27
31
  });
32
+
28
33
  const gestureToPressEvent = (event, timestamp, targetId) => ({
29
34
  identifier: event.handlerTag,
30
35
  locationX: event.x,
@@ -36,15 +41,18 @@ const gestureToPressEvent = (event, timestamp, targetId) => ({
36
41
  touches: [],
37
42
  // Always empty - legacy compatibility
38
43
  changedTouches: [] // Always empty - legacy compatibility
44
+
39
45
  });
46
+
40
47
  const isTouchWithinInset = (dimensions, inset, touch) => {
41
48
  var _touch$x, _inset$right, _touch$y, _inset$bottom, _touch$x2, _inset$left, _touch$y2, _inset$top;
49
+
42
50
  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);
43
51
  };
52
+
44
53
  const gestureToPressableEvent = event => {
45
- const timestamp = Date.now();
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
46
55
 
47
- // As far as I can see, there isn't a conventional way of getting targetId with the data we get
48
56
  const targetId = 0;
49
57
  const pressEvent = gestureToPressEvent(event, timestamp, targetId);
50
58
  return {
@@ -62,11 +70,12 @@ const gestureToPressableEvent = event => {
62
70
  }
63
71
  };
64
72
  };
73
+
65
74
  const gestureTouchToPressableEvent = event => {
66
75
  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();
68
76
 
69
- // As far as I can see, there isn't a conventional way of getting targetId with the data we get
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
+
70
79
  const targetId = 0;
71
80
  const touchesList = event.allTouches.map(touch => touchDataToPressEvent(touch, timestamp, targetId));
72
81
  const changedTouchesList = event.changedTouches.map(touch => touchDataToPressEvent(touch, timestamp, targetId));
@@ -85,5 +94,6 @@ const gestureTouchToPressableEvent = event => {
85
94
  }
86
95
  };
87
96
  };
97
+
88
98
  export { numberAsInset, addInsets, isTouchWithinInset, gestureToPressableEvent, gestureTouchToPressableEvent };
89
99
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
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
+ {"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,7 +1,6 @@
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
-
5
4
  import React, { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useState } from 'react';
6
5
  import { StyleSheet, Keyboard, StatusBar, I18nManager, Platform } from 'react-native';
7
6
  import Animated, { Extrapolation, interpolate, runOnJS, useAnimatedProps, useAnimatedStyle, useDerivedValue, useSharedValue, withSpring } from 'react-native-reanimated';
@@ -9,34 +8,44 @@ import { GestureObjects as Gesture } from '../handlers/gestures/gestureObjects';
9
8
  import { GestureDetector } from '../handlers/gestures/GestureDetector';
10
9
  import { MouseButton } from '../handlers/gestureHandlerCommon';
11
10
  const DRAG_TOSS = 0.05;
12
- export let DrawerPosition = /*#__PURE__*/function (DrawerPosition) {
11
+ export let DrawerPosition;
12
+
13
+ (function (DrawerPosition) {
13
14
  DrawerPosition[DrawerPosition["LEFT"] = 0] = "LEFT";
14
15
  DrawerPosition[DrawerPosition["RIGHT"] = 1] = "RIGHT";
15
- return DrawerPosition;
16
- }({});
17
- export let DrawerState = /*#__PURE__*/function (DrawerState) {
16
+ })(DrawerPosition || (DrawerPosition = {}));
17
+
18
+ export let DrawerState;
19
+
20
+ (function (DrawerState) {
18
21
  DrawerState[DrawerState["IDLE"] = 0] = "IDLE";
19
22
  DrawerState[DrawerState["DRAGGING"] = 1] = "DRAGGING";
20
23
  DrawerState[DrawerState["SETTLING"] = 2] = "SETTLING";
21
- return DrawerState;
22
- }({});
23
- export let DrawerType = /*#__PURE__*/function (DrawerType) {
24
+ })(DrawerState || (DrawerState = {}));
25
+
26
+ export let DrawerType;
27
+
28
+ (function (DrawerType) {
24
29
  DrawerType[DrawerType["FRONT"] = 0] = "FRONT";
25
30
  DrawerType[DrawerType["BACK"] = 1] = "BACK";
26
31
  DrawerType[DrawerType["SLIDE"] = 2] = "SLIDE";
27
- return DrawerType;
28
- }({});
29
- export let DrawerLockMode = /*#__PURE__*/function (DrawerLockMode) {
32
+ })(DrawerType || (DrawerType = {}));
33
+
34
+ export let DrawerLockMode;
35
+
36
+ (function (DrawerLockMode) {
30
37
  DrawerLockMode[DrawerLockMode["UNLOCKED"] = 0] = "UNLOCKED";
31
38
  DrawerLockMode[DrawerLockMode["LOCKED_CLOSED"] = 1] = "LOCKED_CLOSED";
32
39
  DrawerLockMode[DrawerLockMode["LOCKED_OPEN"] = 2] = "LOCKED_OPEN";
33
- return DrawerLockMode;
34
- }({});
35
- export let DrawerKeyboardDismissMode = /*#__PURE__*/function (DrawerKeyboardDismissMode) {
40
+ })(DrawerLockMode || (DrawerLockMode = {}));
41
+
42
+ export let DrawerKeyboardDismissMode;
43
+
44
+ (function (DrawerKeyboardDismissMode) {
36
45
  DrawerKeyboardDismissMode[DrawerKeyboardDismissMode["NONE"] = 0] = "NONE";
37
46
  DrawerKeyboardDismissMode[DrawerKeyboardDismissMode["ON_DRAG"] = 1] = "ON_DRAG";
38
- return DrawerKeyboardDismissMode;
39
- }({});
47
+ })(DrawerKeyboardDismissMode || (DrawerKeyboardDismissMode = {}));
48
+
40
49
  const defaultProps = {
41
50
  drawerWidth: 200,
42
51
  drawerPosition: DrawerPosition.LEFT,
@@ -80,9 +89,7 @@ const DrawerLayout = /*#__PURE__*/forwardRef(function DrawerLayout(props, ref) {
80
89
  onDrawerStateChanged
81
90
  } = props;
82
91
  const isFromLeft = drawerPosition === DrawerPosition.LEFT;
83
- const sideCorrection = isFromLeft ? 1 : -1;
84
-
85
- // While closing the drawer when user starts gesture in the greyed out part of the window,
92
+ const sideCorrection = isFromLeft ? 1 : -1; // While closing the drawer when user starts gesture in the greyed out part of the window,
86
93
  // we want the drawer to follow only once the finger reaches the edge of the drawer.
87
94
  // See the diagram for reference. * = starting finger position, < = current finger position
88
95
  // 1) +---------------+ 2) +---------------+ 3) +---------------+ 4) +---------------+
@@ -98,15 +105,18 @@ const DrawerLayout = /*#__PURE__*/forwardRef(function DrawerLayout(props, ref) {
98
105
  onDrawerSlide && runOnJS(onDrawerSlide)(openValue.value);
99
106
  }, []);
100
107
  const isDrawerOpen = useSharedValue(false);
108
+
101
109
  const handleContainerLayout = ({
102
110
  nativeEvent
103
111
  }) => {
104
112
  setContainerWidth(nativeEvent.layout.width);
105
113
  };
114
+
106
115
  const emitStateChanged = useCallback((newState, drawerWillShow) => {
107
116
  'worklet';
108
117
 
109
118
  var _runOnJS;
119
+
110
120
  onDrawerStateChanged && ((_runOnJS = runOnJS(onDrawerStateChanged)) === null || _runOnJS === void 0 ? void 0 : _runOnJS(newState, drawerWillShow));
111
121
  }, [onDrawerStateChanged]);
112
122
  const drawerAnimatedProps = useAnimatedProps(() => ({
@@ -114,19 +124,17 @@ const DrawerLayout = /*#__PURE__*/forwardRef(function DrawerLayout(props, ref) {
114
124
  }));
115
125
  const overlayAnimatedProps = useAnimatedProps(() => ({
116
126
  pointerEvents: isDrawerOpen.value ? 'auto' : 'none'
117
- }));
118
-
119
- // While the drawer is hidden, it's hitSlop overflows onto the main view by edgeWidth
127
+ })); // While the drawer is hidden, it's hitSlop overflows onto the main view by edgeWidth
120
128
  // This way it can be swiped open even when it's hidden
129
+
121
130
  const [edgeHitSlop, setEdgeHitSlop] = useState(isFromLeft ? {
122
131
  left: 0,
123
132
  width: edgeWidth
124
133
  } : {
125
134
  right: 0,
126
135
  width: edgeWidth
127
- });
136
+ }); // gestureOrientation is 1 if the gesture is expected to move from left to right and -1 otherwise
128
137
 
129
- // gestureOrientation is 1 if the gesture is expected to move from left to right and -1 otherwise
130
138
  const gestureOrientation = useMemo(() => sideCorrection * (drawerOpened ? -1 : 1), [sideCorrection, drawerOpened]);
131
139
  useEffect(() => {
132
140
  setEdgeHitSlop(isFromLeft ? {
@@ -144,9 +152,11 @@ const DrawerLayout = /*#__PURE__*/forwardRef(function DrawerLayout(props, ref) {
144
152
  isDrawerOpen.value = willShow;
145
153
  emitStateChanged(DrawerState.SETTLING, willShow);
146
154
  runOnJS(setDrawerState)(DrawerState.SETTLING);
155
+
147
156
  if (hideStatusBar) {
148
157
  runOnJS(StatusBar.setHidden)(willShow, statusBarAnimation);
149
158
  }
159
+
150
160
  const normalizedToValue = interpolate(toValue, [0, drawerWidth], [0, 1], Extrapolation.CLAMP);
151
161
  const normalizedInitialVelocity = interpolate(initialVelocity, [0, drawerWidth], [0, 1], Extrapolation.CLAMP);
152
162
  openValue.value = withSpring(normalizedToValue, {
@@ -160,11 +170,14 @@ const DrawerLayout = /*#__PURE__*/forwardRef(function DrawerLayout(props, ref) {
160
170
  emitStateChanged(DrawerState.IDLE, willShow);
161
171
  runOnJS(setDrawerOpened)(willShow);
162
172
  runOnJS(setDrawerState)(DrawerState.IDLE);
173
+
163
174
  if (willShow) {
164
175
  var _runOnJS2;
176
+
165
177
  onDrawerOpen && ((_runOnJS2 = runOnJS(onDrawerOpen)) === null || _runOnJS2 === void 0 ? void 0 : _runOnJS2());
166
178
  } else {
167
179
  var _runOnJS3;
180
+
168
181
  onDrawerClose && ((_runOnJS3 = runOnJS(onDrawerClose)) === null || _runOnJS3 === void 0 ? void 0 : _runOnJS3());
169
182
  }
170
183
  }
@@ -178,6 +191,7 @@ const DrawerLayout = /*#__PURE__*/forwardRef(function DrawerLayout(props, ref) {
178
191
  velocityX,
179
192
  x: touchX
180
193
  } = event;
194
+
181
195
  if (drawerPosition !== DrawerPosition.LEFT) {
182
196
  // See description in _updateAnimatedEvent about why events are flipped
183
197
  // for right-side drawer
@@ -185,14 +199,18 @@ const DrawerLayout = /*#__PURE__*/forwardRef(function DrawerLayout(props, ref) {
185
199
  touchX = containerWidth - touchX;
186
200
  velocityX = -velocityX;
187
201
  }
202
+
188
203
  const gestureStartX = touchX - dragX;
189
204
  let dragOffsetBasedOnStart = 0;
205
+
190
206
  if (drawerType === DrawerType.FRONT) {
191
207
  dragOffsetBasedOnStart = gestureStartX > drawerWidth ? gestureStartX - drawerWidth : 0;
192
208
  }
209
+
193
210
  const startOffsetX = dragX + dragOffsetBasedOnStart + (isDrawerOpen.value ? drawerWidth : 0);
194
211
  const projOffsetX = startOffsetX + DRAG_TOSS * velocityX;
195
212
  const shouldOpen = projOffsetX > drawerWidth / 2;
213
+
196
214
  if (shouldOpen) {
197
215
  animateDrawer(drawerWidth, velocityX);
198
216
  } else {
@@ -203,12 +221,14 @@ const DrawerLayout = /*#__PURE__*/forwardRef(function DrawerLayout(props, ref) {
203
221
  'worklet';
204
222
 
205
223
  var _options$initialVeloc;
224
+
206
225
  animateDrawer(drawerWidth, (_options$initialVeloc = options.initialVelocity) !== null && _options$initialVeloc !== void 0 ? _options$initialVeloc : 0, options.animationSpeed);
207
226
  }, [animateDrawer, drawerWidth]);
208
227
  const closeDrawer = useCallback((options = {}) => {
209
228
  'worklet';
210
229
 
211
230
  var _options$initialVeloc2;
231
+
212
232
  animateDrawer(0, (_options$initialVeloc2 = options.initialVelocity) !== null && _options$initialVeloc2 !== void 0 ? _options$initialVeloc2 : 0, options.animationSpeed);
213
233
  }, [animateDrawer]);
214
234
  const overlayDismissGesture = useMemo(() => Gesture.Tap().maxDistance(25).onEnd(() => {
@@ -229,9 +249,11 @@ const DrawerLayout = /*#__PURE__*/forwardRef(function DrawerLayout(props, ref) {
229
249
  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(() => {
230
250
  emitStateChanged(DrawerState.DRAGGING, false);
231
251
  runOnJS(setDrawerState)(DrawerState.DRAGGING);
252
+
232
253
  if (keyboardDismissMode === DrawerKeyboardDismissMode.ON_DRAG) {
233
254
  runOnJS(Keyboard.dismiss)();
234
255
  }
256
+
235
257
  if (hideStatusBar) {
236
258
  runOnJS(StatusBar.setHidden)(true, statusBarAnimation);
237
259
  }
@@ -241,9 +263,8 @@ const DrawerLayout = /*#__PURE__*/forwardRef(function DrawerLayout(props, ref) {
241
263
  const adjustedTranslation = Math.max(drawerOpened ? startedOutsideTranslation : 0, startedInsideTranslation);
242
264
  openValue.value = interpolate(adjustedTranslation, [-drawerWidth, 0, drawerWidth], [1, 0, 1], Extrapolation.CLAMP);
243
265
  }).onEnd(handleRelease);
244
- }, [drawerLockMode, openValue, drawerWidth, emitStateChanged, gestureOrientation, handleRelease, edgeHitSlop, fillHitSlop, minSwipeDistance, hideStatusBar, keyboardDismissMode, overlayDismissGesture, drawerOpened, isFromLeft, containerWidth, sideCorrection, drawerState, activeCursor, enableTrackpadTwoFingerGesture, mouseButton, statusBarAnimation]);
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.
245
267
 
246
- // When using RTL, row and row-reverse flex directions are flipped.
247
268
  const reverseContentDirection = I18nManager.isRTL ? isFromLeft : !isFromLeft;
248
269
  const dynamicDrawerStyles = {
249
270
  backgroundColor: drawerBackgroundColor,
@@ -253,6 +274,7 @@ const DrawerLayout = /*#__PURE__*/forwardRef(function DrawerLayout(props, ref) {
253
274
  if (drawerType === DrawerType.FRONT) {
254
275
  return {};
255
276
  }
277
+
256
278
  return {
257
279
  transform: [{
258
280
  translateX: interpolate(openValue.value, [0, 1], [0, drawerWidth * sideCorrection], Extrapolation.CLAMP)
@@ -263,6 +285,7 @@ const DrawerLayout = /*#__PURE__*/forwardRef(function DrawerLayout(props, ref) {
263
285
  const closedDrawerOffset = drawerWidth * -sideCorrection;
264
286
  const isBack = drawerType === DrawerType.BACK;
265
287
  const isIdle = drawerState === DrawerState.IDLE;
288
+
266
289
  if (isBack) {
267
290
  return {
268
291
  transform: [{
@@ -271,12 +294,15 @@ const DrawerLayout = /*#__PURE__*/forwardRef(function DrawerLayout(props, ref) {
271
294
  flexDirection: reverseContentDirection ? 'row-reverse' : 'row'
272
295
  };
273
296
  }
297
+
274
298
  let translateX = 0;
299
+
275
300
  if (isIdle) {
276
301
  translateX = drawerOpened ? 0 : closedDrawerOffset;
277
302
  } else {
278
303
  translateX = interpolate(openValue.value, [0, 1], [closedDrawerOffset, 0], Extrapolation.CLAMP);
279
304
  }
305
+
280
306
  return {
281
307
  transform: [{
282
308
  translateX
@@ -318,25 +344,21 @@ const DrawerLayout = /*#__PURE__*/forwardRef(function DrawerLayout(props, ref) {
318
344
  });
319
345
  export default DrawerLayout;
320
346
  const styles = StyleSheet.create({
321
- drawerContainer: {
322
- ...StyleSheet.absoluteFillObject,
347
+ drawerContainer: { ...StyleSheet.absoluteFillObject,
323
348
  zIndex: 1001,
324
349
  flexDirection: 'row'
325
350
  },
326
- containerInFront: {
327
- ...StyleSheet.absoluteFillObject,
351
+ containerInFront: { ...StyleSheet.absoluteFillObject,
328
352
  zIndex: 1002
329
353
  },
330
- containerOnBack: {
331
- ...StyleSheet.absoluteFillObject
354
+ containerOnBack: { ...StyleSheet.absoluteFillObject
332
355
  },
333
356
  main: {
334
357
  flex: 1,
335
358
  zIndex: 0,
336
359
  overflow: 'hidden'
337
360
  },
338
- overlay: {
339
- ...StyleSheet.absoluteFillObject,
361
+ overlay: { ...StyleSheet.absoluteFillObject,
340
362
  zIndex: 1000
341
363
  }
342
364
  });
@@ -1 +1 @@
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":[]}
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"]}