react-native-reanimated 2.3.0-alpha.1 → 2.3.0-beta.2

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 (328) hide show
  1. package/Common/cpp/LayoutAnimations/LayoutAnimationsProxy.cpp +15 -8
  2. package/Common/cpp/NativeModules/NativeReanimatedModule.cpp +170 -166
  3. package/Common/cpp/NativeModules/NativeReanimatedModuleSpec.cpp +36 -34
  4. package/Common/cpp/Registries/EventHandlerRegistry.cpp +13 -6
  5. package/Common/cpp/Registries/MapperRegistry.cpp +19 -15
  6. package/Common/cpp/Registries/WorkletsCache.cpp +19 -9
  7. package/Common/cpp/SharedItems/FrozenObject.cpp +19 -8
  8. package/Common/cpp/SharedItems/MutableValue.cpp +38 -25
  9. package/Common/cpp/SharedItems/MutableValueSetterProxy.cpp +11 -7
  10. package/Common/cpp/SharedItems/RemoteObject.cpp +9 -5
  11. package/Common/cpp/SharedItems/ShareableValue.cpp +216 -143
  12. package/Common/cpp/Tools/JSIStoreValueUser.cpp +36 -24
  13. package/Common/cpp/Tools/Mapper.cpp +41 -29
  14. package/Common/cpp/Tools/RuntimeDecorator.cpp +103 -84
  15. package/Common/cpp/Tools/Scheduler.cpp +14 -6
  16. package/Common/cpp/Tools/WorkletEventHandler.cpp +1 -1
  17. package/Common/cpp/headers/LayoutAnimations/LayoutAnimationsProxy.h +12 -11
  18. package/Common/cpp/headers/NativeModules/NativeReanimatedModule.h +45 -34
  19. package/Common/cpp/headers/NativeModules/NativeReanimatedModuleSpec.h +28 -16
  20. package/Common/cpp/headers/Registries/EventHandlerRegistry.h +14 -8
  21. package/Common/cpp/headers/Registries/MapperRegistry.h +4 -4
  22. package/Common/cpp/headers/Registries/WorkletsCache.h +9 -7
  23. package/Common/cpp/headers/SharedItems/FrozenObject.h +15 -11
  24. package/Common/cpp/headers/SharedItems/HostFunctionHandler.h +6 -4
  25. package/Common/cpp/headers/SharedItems/MutableValue.h +21 -12
  26. package/Common/cpp/headers/SharedItems/MutableValueSetterProxy.h +10 -7
  27. package/Common/cpp/headers/SharedItems/RemoteObject.h +16 -8
  28. package/Common/cpp/headers/SharedItems/RuntimeManager.h +39 -21
  29. package/Common/cpp/headers/SharedItems/ShareableValue.h +31 -27
  30. package/Common/cpp/headers/SharedItems/SharedParent.h +7 -4
  31. package/Common/cpp/headers/SharedItems/ValueWrapper.h +80 -61
  32. package/Common/cpp/headers/SpecTools/ErrorHandler.h +17 -19
  33. package/Common/cpp/headers/Tools/JSIStoreValueUser.h +18 -13
  34. package/Common/cpp/headers/Tools/Mapper.h +24 -18
  35. package/Common/cpp/headers/Tools/PlatformDepMethodsHolder.h +12 -7
  36. package/Common/cpp/headers/Tools/ReanimatedHiddenHeaders.h +7 -7
  37. package/Common/cpp/headers/Tools/RuntimeDecorator.h +29 -23
  38. package/Common/cpp/headers/Tools/Scheduler.h +28 -33
  39. package/Common/cpp/headers/Tools/WorkletEventHandler.h +9 -7
  40. package/Common/cpp/hidden_headers/Logger.h +14 -14
  41. package/Common/cpp/hidden_headers/LoggerInterface.h +8 -9
  42. package/Common/cpp/hidden_headers/SpeedChecker.h +7 -8
  43. package/README.md +1 -1
  44. package/RNReanimated.podspec +4 -4
  45. package/android/build.gradle +80 -3
  46. package/android/react-native-reanimated-63-hermes.aar +0 -0
  47. package/android/react-native-reanimated-63-jsc.aar +0 -0
  48. package/android/react-native-reanimated-64-hermes.aar +0 -0
  49. package/android/react-native-reanimated-64-jsc.aar +0 -0
  50. package/android/react-native-reanimated-65-hermes.aar +0 -0
  51. package/android/react-native-reanimated-65-jsc.aar +0 -0
  52. package/android/react-native-reanimated-66-hermes.aar +0 -0
  53. package/android/react-native-reanimated-66-jsc.aar +0 -0
  54. package/ios/LayoutReanimation/REAAnimationsManager.h +19 -10
  55. package/ios/LayoutReanimation/REAAnimationsManager.m +195 -200
  56. package/ios/LayoutReanimation/REASnapshot.h +13 -0
  57. package/ios/LayoutReanimation/REASnapshot.m +29 -0
  58. package/ios/LayoutReanimation/REAUIManager.h +16 -0
  59. package/ios/LayoutReanimation/REAUIManager.mm +348 -0
  60. package/ios/Nodes/REAAlwaysNode.m +14 -15
  61. package/ios/Nodes/REABezierNode.m +8 -7
  62. package/ios/Nodes/REABlockNode.m +1 -1
  63. package/ios/Nodes/REACallFuncNode.h +0 -1
  64. package/ios/Nodes/REACallFuncNode.m +10 -8
  65. package/ios/Nodes/REAClockNodes.m +22 -20
  66. package/ios/Nodes/REAConcatNode.h +0 -1
  67. package/ios/Nodes/REAConcatNode.m +2 -2
  68. package/ios/Nodes/REACondNode.m +7 -5
  69. package/ios/Nodes/READebugNode.m +5 -4
  70. package/ios/Nodes/REAEventNode.m +1 -1
  71. package/ios/Nodes/REAFunctionNode.h +0 -1
  72. package/ios/Nodes/REAFunctionNode.m +2 -2
  73. package/ios/Nodes/REAJSCallNode.m +4 -5
  74. package/ios/Nodes/REANode.h +3 -4
  75. package/ios/Nodes/REANode.m +9 -11
  76. package/ios/Nodes/REAOperatorNode.m +68 -67
  77. package/ios/Nodes/REAParamNode.h +1 -3
  78. package/ios/Nodes/REAParamNode.m +15 -17
  79. package/ios/Nodes/REAPropsNode.h +1 -3
  80. package/ios/Nodes/REAPropsNode.m +19 -22
  81. package/ios/Nodes/REASetNode.h +0 -1
  82. package/ios/Nodes/REASetNode.m +7 -5
  83. package/ios/Nodes/REAStyleNode.h +0 -1
  84. package/ios/Nodes/REAStyleNode.m +2 -4
  85. package/ios/Nodes/REATransformNode.h +0 -1
  86. package/ios/Nodes/REATransformNode.m +3 -5
  87. package/ios/Nodes/REAValueNode.m +5 -7
  88. package/ios/REAEventDispatcher.m +3 -3
  89. package/ios/REAModule.h +0 -2
  90. package/ios/REAModule.m +29 -40
  91. package/ios/REANodesManager.h +11 -19
  92. package/ios/REANodesManager.m +105 -130
  93. package/ios/REAUtils.h +5 -3
  94. package/ios/Transitioning/RCTConvert+REATransition.m +45 -29
  95. package/ios/Transitioning/REAAllTransitions.h +2 -2
  96. package/ios/Transitioning/REAAllTransitions.m +14 -25
  97. package/ios/Transitioning/REATransition.h +8 -7
  98. package/ios/Transitioning/REATransition.m +19 -16
  99. package/ios/Transitioning/REATransitionAnimation.h +1 -1
  100. package/ios/Transitioning/REATransitionAnimation.m +2 -3
  101. package/ios/Transitioning/REATransitionManager.m +3 -3
  102. package/ios/native/NativeMethods.h +15 -5
  103. package/ios/native/NativeProxy.h +4 -3
  104. package/ios/native/NativeProxy.mm +19 -5
  105. package/ios/native/REAIOSErrorHandler.h +13 -10
  106. package/ios/native/REAIOSLogger.h +8 -8
  107. package/ios/native/REAIOSScheduler.h +5 -5
  108. package/ios/native/REAIOSScheduler.mm +7 -5
  109. package/ios/native/REAInitializer.h +37 -0
  110. package/ios/native/REAInitializer.mm +63 -0
  111. package/ios/native/UIResponder+Reanimated.mm +9 -48
  112. package/lib/ConfigHelper.js +1 -0
  113. package/lib/ReanimatedModule.native.js +10 -2
  114. package/lib/createAnimatedComponent.js +64 -30
  115. package/lib/reanimated1/core/AnimatedAlways.js +1 -1
  116. package/lib/reanimated1/core/AnimatedBezier.js +1 -1
  117. package/lib/reanimated1/core/AnimatedBlock.js +1 -1
  118. package/lib/reanimated1/core/AnimatedCall.js +1 -1
  119. package/lib/reanimated1/core/AnimatedCallFunc.js +1 -1
  120. package/lib/reanimated1/core/AnimatedConcat.js +1 -1
  121. package/lib/reanimated1/core/AnimatedCond.js +1 -1
  122. package/lib/reanimated1/core/AnimatedDebug.js +1 -1
  123. package/lib/reanimated1/core/AnimatedEvent.js +1 -1
  124. package/lib/reanimated1/core/AnimatedFunction.js +1 -1
  125. package/lib/reanimated1/core/AnimatedOperator.js +1 -1
  126. package/lib/reanimated1/core/AnimatedParam.js +1 -1
  127. package/lib/reanimated1/core/AnimatedProps.js +2 -2
  128. package/lib/reanimated1/core/AnimatedSet.js +1 -1
  129. package/lib/reanimated1/core/AnimatedStartClock.js +1 -1
  130. package/lib/reanimated1/core/AnimatedStopClock.js +1 -1
  131. package/lib/reanimated1/core/AnimatedStyle.js +1 -1
  132. package/lib/reanimated1/core/AnimatedTransform.js +1 -1
  133. package/lib/reanimated1/core/Core.test.js +30 -0
  134. package/lib/reanimated1/core/InternalAnimatedValue.js +1 -1
  135. package/lib/reanimated1/core/__mocks__/AnimatedProps.js +1 -1
  136. package/lib/reanimated1/derived/interpolate.js +1 -1
  137. package/lib/reanimated2/Colors.js +16 -12
  138. package/lib/reanimated2/NativeMethods.js +3 -14
  139. package/lib/reanimated2/{NativeReanimated.native.js → NativeReanimated/NativeReanimated.js} +19 -24
  140. package/lib/reanimated2/NativeReanimated/index.js +15 -0
  141. package/lib/reanimated2/PlatformChecker.js +16 -0
  142. package/lib/reanimated2/PropAdapters.js +14 -4
  143. package/lib/reanimated2/UpdateProps.js +14 -11
  144. package/lib/reanimated2/ViewDescriptorsSet.js +73 -0
  145. package/lib/reanimated2/WorkletEventHandler.js +15 -13
  146. package/lib/reanimated2/animation/commonTypes.js +1 -0
  147. package/lib/reanimated2/animation/decay.js +71 -0
  148. package/lib/reanimated2/animation/delay.js +64 -0
  149. package/lib/reanimated2/animation/index.js +8 -0
  150. package/lib/reanimated2/animation/repeat.js +69 -0
  151. package/lib/reanimated2/animation/sequence.js +72 -0
  152. package/lib/reanimated2/animation/spring.js +101 -0
  153. package/lib/reanimated2/animation/styleAnimation.js +166 -0
  154. package/lib/reanimated2/animation/timing.js +64 -0
  155. package/lib/reanimated2/animation/util.js +157 -0
  156. package/lib/reanimated2/commonTypes.js +1 -0
  157. package/lib/reanimated2/core.js +35 -39
  158. package/lib/reanimated2/globals.d.ts +47 -1
  159. package/lib/reanimated2/hook/Hooks.js +9 -0
  160. package/lib/reanimated2/hook/commonTypes.js +1 -0
  161. package/lib/reanimated2/hook/index.js +8 -0
  162. package/lib/reanimated2/hook/useAnimatedGestureHandler.js +50 -0
  163. package/lib/reanimated2/hook/useAnimatedReaction.js +37 -0
  164. package/lib/reanimated2/hook/useAnimatedRef.js +25 -0
  165. package/lib/reanimated2/hook/useAnimatedScrollHandler.js +41 -0
  166. package/lib/reanimated2/hook/useAnimatedStyle.js +376 -0
  167. package/lib/reanimated2/hook/useDerivedValue.js +36 -0
  168. package/lib/reanimated2/hook/useSharedValue.js +17 -0
  169. package/lib/reanimated2/hook/utils.js +175 -0
  170. package/lib/reanimated2/index.js +3 -2
  171. package/lib/reanimated2/interpolation.js +95 -86
  172. package/lib/reanimated2/jestUtils.js +0 -12
  173. package/lib/reanimated2/js-reanimated/JSReanimated.js +9 -10
  174. package/lib/reanimated2/js-reanimated/index.js +57 -1
  175. package/lib/reanimated2/layoutReanimation/LayoutAnimationRepository.js +58 -0
  176. package/lib/reanimated2/layoutReanimation/animationBuilder/BaseAnimationBuilder.js +69 -0
  177. package/lib/reanimated2/layoutReanimation/animationBuilder/ComplexAnimationBuilder.js +125 -0
  178. package/lib/reanimated2/layoutReanimation/animationBuilder/Keyframe.js +193 -0
  179. package/lib/reanimated2/layoutReanimation/animationBuilder/commonTypes.js +1 -0
  180. package/lib/reanimated2/layoutReanimation/animationBuilder/index.js +3 -0
  181. package/lib/reanimated2/layoutReanimation/defaultAnimations/Bounce.js +325 -207
  182. package/lib/reanimated2/layoutReanimation/defaultAnimations/Default.js +36 -0
  183. package/lib/reanimated2/layoutReanimation/defaultAnimations/Fade.js +235 -187
  184. package/lib/reanimated2/layoutReanimation/defaultAnimations/Flip.js +327 -269
  185. package/lib/reanimated2/layoutReanimation/defaultAnimations/Lightspeed.js +146 -0
  186. package/lib/reanimated2/layoutReanimation/defaultAnimations/Pinwheel.js +85 -0
  187. package/lib/reanimated2/layoutReanimation/defaultAnimations/Roll.js +119 -0
  188. package/lib/reanimated2/layoutReanimation/defaultAnimations/Rotate.js +289 -0
  189. package/lib/reanimated2/layoutReanimation/defaultAnimations/Slide.js +159 -121
  190. package/lib/reanimated2/layoutReanimation/defaultAnimations/Stretch.js +83 -65
  191. package/lib/reanimated2/layoutReanimation/defaultAnimations/Zoom.js +371 -277
  192. package/lib/reanimated2/layoutReanimation/defaultAnimations/index.js +4 -0
  193. package/lib/reanimated2/layoutReanimation/defaultTransitions/CurvedTransition.js +78 -0
  194. package/lib/reanimated2/layoutReanimation/defaultTransitions/EntryExitTransition.js +128 -0
  195. package/lib/reanimated2/layoutReanimation/defaultTransitions/FadingTransition.js +37 -0
  196. package/lib/reanimated2/layoutReanimation/defaultTransitions/JumpingTransition.js +41 -0
  197. package/lib/reanimated2/layoutReanimation/defaultTransitions/LinearTransition.js +34 -0
  198. package/lib/reanimated2/layoutReanimation/defaultTransitions/SequencedTransition.js +46 -0
  199. package/lib/reanimated2/layoutReanimation/defaultTransitions/index.js +6 -0
  200. package/lib/reanimated2/layoutReanimation/index.js +3 -2
  201. package/lib/reanimated2/platform-specific/RNRenderer.web.js +2 -0
  202. package/lib/reanimated2/utils.js +9 -0
  203. package/libSo/fbjni/jni/arm64-v8a/libfbjni.so +0 -0
  204. package/libSo/fbjni/jni/armeabi-v7a/libfbjni.so +0 -0
  205. package/libSo/fbjni/jni/x86/libfbjni.so +0 -0
  206. package/libSo/fbjni/jni/x86_64/libfbjni.so +0 -0
  207. package/package.json +21 -10
  208. package/plugin.js +244 -85
  209. package/react-native-reanimated.d.ts +531 -453
  210. package/src/ConfigHelper.js +1 -0
  211. package/src/ReanimatedModule.native.js +10 -2
  212. package/src/createAnimatedComponent.js +64 -30
  213. package/src/reanimated1/core/AnimatedAlways.js +1 -1
  214. package/src/reanimated1/core/AnimatedBezier.js +1 -1
  215. package/src/reanimated1/core/AnimatedBlock.js +1 -1
  216. package/src/reanimated1/core/AnimatedCall.js +1 -1
  217. package/src/reanimated1/core/AnimatedCallFunc.js +1 -1
  218. package/src/reanimated1/core/AnimatedConcat.js +1 -1
  219. package/src/reanimated1/core/AnimatedCond.js +1 -1
  220. package/src/reanimated1/core/AnimatedDebug.js +1 -1
  221. package/src/reanimated1/core/AnimatedEvent.js +1 -1
  222. package/src/reanimated1/core/AnimatedFunction.js +1 -1
  223. package/src/reanimated1/core/AnimatedOperator.js +1 -1
  224. package/src/reanimated1/core/AnimatedParam.js +1 -1
  225. package/src/reanimated1/core/AnimatedProps.js +2 -2
  226. package/src/reanimated1/core/AnimatedSet.js +1 -1
  227. package/src/reanimated1/core/AnimatedStartClock.js +1 -1
  228. package/src/reanimated1/core/AnimatedStopClock.js +1 -1
  229. package/src/reanimated1/core/AnimatedStyle.js +1 -1
  230. package/src/reanimated1/core/AnimatedTransform.js +1 -1
  231. package/src/reanimated1/core/Core.test.js +30 -0
  232. package/src/reanimated1/core/InternalAnimatedValue.js +1 -1
  233. package/src/reanimated1/core/__mocks__/AnimatedProps.js +1 -1
  234. package/src/reanimated1/derived/interpolate.js +1 -1
  235. package/src/reanimated2/Colors.ts +30 -27
  236. package/src/reanimated2/Easing.ts +3 -1
  237. package/src/reanimated2/NativeMethods.ts +26 -16
  238. package/src/reanimated2/NativeReanimated/NativeReanimated.ts +78 -0
  239. package/src/reanimated2/NativeReanimated/index.ts +18 -0
  240. package/src/reanimated2/PlatformChecker.ts +21 -0
  241. package/src/reanimated2/PropAdapters.ts +52 -34
  242. package/src/reanimated2/UpdateProps.ts +40 -20
  243. package/src/reanimated2/ViewDescriptorsSet.ts +108 -0
  244. package/src/reanimated2/WorkletEventHandler.ts +41 -23
  245. package/src/reanimated2/animation/commonTypes.ts +48 -0
  246. package/src/reanimated2/animation/decay.ts +141 -0
  247. package/src/reanimated2/animation/delay.ts +103 -0
  248. package/src/reanimated2/animation/index.ts +16 -0
  249. package/src/reanimated2/animation/repeat.ts +128 -0
  250. package/src/reanimated2/animation/sequence.ts +110 -0
  251. package/src/reanimated2/animation/spring.ts +165 -0
  252. package/src/reanimated2/animation/styleAnimation.ts +253 -0
  253. package/src/reanimated2/animation/timing.ts +109 -0
  254. package/src/reanimated2/animation/util.ts +242 -0
  255. package/src/reanimated2/commonTypes.ts +81 -0
  256. package/src/reanimated2/core.ts +128 -82
  257. package/src/reanimated2/globals.d.ts +47 -1
  258. package/src/reanimated2/hook/Hooks.ts +16 -0
  259. package/src/reanimated2/hook/commonTypes.ts +12 -0
  260. package/src/reanimated2/hook/index.ts +25 -0
  261. package/src/reanimated2/hook/useAnimatedGestureHandler.ts +110 -0
  262. package/src/reanimated2/hook/useAnimatedReaction.ts +49 -0
  263. package/src/reanimated2/hook/useAnimatedRef.ts +34 -0
  264. package/src/reanimated2/hook/useAnimatedScrollHandler.ts +83 -0
  265. package/src/reanimated2/hook/useAnimatedStyle.ts +538 -0
  266. package/src/reanimated2/hook/useDerivedValue.ts +48 -0
  267. package/src/reanimated2/hook/useSharedValue.ts +22 -0
  268. package/src/reanimated2/hook/utils.ts +259 -0
  269. package/src/reanimated2/index.ts +3 -2
  270. package/src/reanimated2/interpolation.ts +170 -101
  271. package/src/reanimated2/jestUtils.ts +0 -12
  272. package/src/reanimated2/js-reanimated/JSReanimated.ts +47 -22
  273. package/src/reanimated2/js-reanimated/Mapper.ts +1 -1
  274. package/src/reanimated2/js-reanimated/index.ts +71 -0
  275. package/src/reanimated2/layoutReanimation/LayoutAnimationRepository.tsx +62 -0
  276. package/src/reanimated2/layoutReanimation/animationBuilder/BaseAnimationBuilder.ts +91 -0
  277. package/src/reanimated2/layoutReanimation/animationBuilder/ComplexAnimationBuilder.ts +169 -0
  278. package/src/reanimated2/layoutReanimation/animationBuilder/Keyframe.ts +263 -0
  279. package/src/reanimated2/layoutReanimation/animationBuilder/commonTypes.ts +78 -0
  280. package/src/reanimated2/layoutReanimation/animationBuilder/index.ts +16 -0
  281. package/src/reanimated2/layoutReanimation/defaultAnimations/Bounce.ts +243 -121
  282. package/src/reanimated2/layoutReanimation/defaultAnimations/Default.ts +43 -0
  283. package/src/reanimated2/layoutReanimation/defaultAnimations/Fade.ts +95 -53
  284. package/src/reanimated2/layoutReanimation/defaultAnimations/Flip.ts +114 -64
  285. package/src/reanimated2/layoutReanimation/defaultAnimations/Lightspeed.ts +179 -0
  286. package/src/reanimated2/layoutReanimation/defaultAnimations/Pinwheel.ts +93 -0
  287. package/src/reanimated2/layoutReanimation/defaultAnimations/Roll.ts +132 -0
  288. package/src/reanimated2/layoutReanimation/defaultAnimations/Rotate.ts +333 -0
  289. package/src/reanimated2/layoutReanimation/defaultAnimations/Slide.ts +84 -50
  290. package/src/reanimated2/layoutReanimation/defaultAnimations/Stretch.ts +41 -23
  291. package/src/reanimated2/layoutReanimation/defaultAnimations/Zoom.ts +234 -154
  292. package/src/reanimated2/layoutReanimation/defaultAnimations/index.ts +4 -0
  293. package/src/reanimated2/layoutReanimation/defaultTransitions/CurvedTransition.ts +104 -0
  294. package/src/reanimated2/layoutReanimation/defaultTransitions/EntryExitTransition.ts +213 -0
  295. package/src/reanimated2/layoutReanimation/defaultTransitions/FadingTransition.ts +60 -0
  296. package/src/reanimated2/layoutReanimation/defaultTransitions/JumpingTransition.ts +58 -0
  297. package/src/reanimated2/layoutReanimation/defaultTransitions/LinearTransition.ts +41 -0
  298. package/src/reanimated2/layoutReanimation/defaultTransitions/SequencedTransition.ts +78 -0
  299. package/src/reanimated2/layoutReanimation/defaultTransitions/index.ts +6 -0
  300. package/src/reanimated2/layoutReanimation/index.ts +3 -2
  301. package/src/reanimated2/platform-specific/RNRenderer.web.ts +2 -0
  302. package/src/reanimated2/utils.ts +21 -0
  303. package/android/react-native-reanimated-62-hermes.aar +0 -0
  304. package/android/react-native-reanimated-62-jsc.aar +0 -0
  305. package/ios/LayoutReanimation/REAAnimationRootView.h +0 -12
  306. package/ios/LayoutReanimation/REAAnimationRootView.m +0 -16
  307. package/ios/LayoutReanimation/REAAnimationRootViewManager.h +0 -9
  308. package/ios/LayoutReanimation/REAAnimationRootViewManager.m +0 -49
  309. package/ios/LayoutReanimation/REAReactBatchObserver.h +0 -20
  310. package/ios/LayoutReanimation/REAReactBatchObserver.m +0 -125
  311. package/ios/LayoutReanimation/REASnapshooter.h +0 -19
  312. package/ios/LayoutReanimation/REASnapshooter.m +0 -64
  313. package/ios/LayoutReanimation/REAViewTraverser.h +0 -13
  314. package/ios/LayoutReanimation/REAViewTraverser.m +0 -40
  315. package/lib/reanimated2/Hooks.js +0 -732
  316. package/lib/reanimated2/NativeReanimated.js +0 -4
  317. package/lib/reanimated2/animations.js +0 -713
  318. package/lib/reanimated2/js-reanimated/index.web.js +0 -20
  319. package/lib/reanimated2/layoutReanimation/AnimatedRoot.js +0 -55
  320. package/lib/reanimated2/layoutReanimation/defaultAnimationsBuilder.js +0 -374
  321. package/src/reanimated2/Hooks.ts +0 -918
  322. package/src/reanimated2/NativeReanimated.native.ts +0 -61
  323. package/src/reanimated2/NativeReanimated.ts +0 -5
  324. package/src/reanimated2/animations.ts +0 -868
  325. package/src/reanimated2/js-reanimated/index.js +0 -0
  326. package/src/reanimated2/js-reanimated/index.web.ts +0 -29
  327. package/src/reanimated2/layoutReanimation/AnimatedRoot.tsx +0 -68
  328. package/src/reanimated2/layoutReanimation/defaultAnimationsBuilder.ts +0 -440
@@ -0,0 +1,104 @@
1
+ import {
2
+ ILayoutAnimationBuilder,
3
+ LayoutAnimationFunction,
4
+ } from '../animationBuilder/commonTypes';
5
+ import { BaseAnimationBuilder } from '../animationBuilder';
6
+ import { EasingFn, Easing } from '../../Easing';
7
+ import { withTiming } from '../../animation';
8
+
9
+ export class CurvedTransition
10
+ extends BaseAnimationBuilder
11
+ implements ILayoutAnimationBuilder {
12
+ easingXV: EasingFn = Easing.in(Easing.ease);
13
+ easingYV: EasingFn = Easing.out(Easing.ease);
14
+ easingWidthV: EasingFn = Easing.in(Easing.exp);
15
+ easingHeightV: EasingFn = Easing.out(Easing.exp);
16
+ static createInstance(): CurvedTransition {
17
+ return new CurvedTransition();
18
+ }
19
+
20
+ static easingX(easing: EasingFn): CurvedTransition {
21
+ const instance = this.createInstance();
22
+ return instance.easingX(easing);
23
+ }
24
+
25
+ easingX(easing: EasingFn): CurvedTransition {
26
+ this.easingXV = easing;
27
+ return this;
28
+ }
29
+
30
+ static easingY(easing: EasingFn): CurvedTransition {
31
+ const instance = this.createInstance();
32
+ return instance.easingY(easing);
33
+ }
34
+
35
+ easingY(easing: EasingFn): CurvedTransition {
36
+ this.easingYV = easing;
37
+ return this;
38
+ }
39
+
40
+ static easingWidth(easing: EasingFn): CurvedTransition {
41
+ const instance = this.createInstance();
42
+ return instance.easingWidth(easing);
43
+ }
44
+
45
+ easingWidth(easing: EasingFn): CurvedTransition {
46
+ this.easingWidthV = easing;
47
+ return this;
48
+ }
49
+
50
+ static easingHeight(easing: EasingFn): CurvedTransition {
51
+ const instance = this.createInstance();
52
+ return instance.easingHeight(easing);
53
+ }
54
+
55
+ easingHeight(easing: EasingFn): CurvedTransition {
56
+ this.easingHeightV = easing;
57
+ return this;
58
+ }
59
+
60
+ build = (): LayoutAnimationFunction => {
61
+ const delayFunction = this.getDelayFunction();
62
+ const callback = this.callbackV;
63
+ const delay = this.getDelay();
64
+ const duration = this.durationV ?? 300;
65
+ const easing = {
66
+ easingX: this.easingXV,
67
+ easingY: this.easingYV,
68
+ easingWidth: this.easingWidthV,
69
+ easingHeight: this.easingHeightV,
70
+ };
71
+
72
+ return (values) => {
73
+ 'worklet';
74
+
75
+ return {
76
+ initialValues: {
77
+ originX: values.boriginX,
78
+ originY: values.boriginY,
79
+ width: values.bwidth,
80
+ height: values.bheight,
81
+ },
82
+ animations: {
83
+ originX: delayFunction(
84
+ delay,
85
+ withTiming(values.originX, { duration, easing: easing.easingX })
86
+ ),
87
+ originY: delayFunction(
88
+ delay,
89
+ withTiming(values.originY, { duration, easing: easing.easingY })
90
+ ),
91
+ width: delayFunction(
92
+ delay,
93
+ withTiming(values.width, { duration, easing: easing.easingWidth })
94
+ ),
95
+ height: delayFunction(
96
+ delay,
97
+ withTiming(values.height, { duration, easing: easing.easingHeight })
98
+ ),
99
+ },
100
+ callback: callback,
101
+ };
102
+ };
103
+ };
104
+ }
@@ -0,0 +1,213 @@
1
+ import {
2
+ ILayoutAnimationBuilder,
3
+ LayoutAnimationsValues,
4
+ LayoutAnimationFunction,
5
+ } from '../animationBuilder/commonTypes';
6
+ import { BaseAnimationBuilder } from '../animationBuilder';
7
+ import { AnimationObject, withSequence, withTiming } from '../../animation';
8
+ import { FadeIn, FadeOut } from '../defaultAnimations/Fade';
9
+ import { StyleProps, TransformProperty } from '../../commonTypes';
10
+
11
+ export class EntryExitTransition
12
+ extends BaseAnimationBuilder
13
+ implements ILayoutAnimationBuilder {
14
+ enteringV: BaseAnimationBuilder | typeof BaseAnimationBuilder = FadeIn;
15
+
16
+ exitingV: BaseAnimationBuilder | typeof BaseAnimationBuilder = FadeOut;
17
+
18
+ static createInstance(): EntryExitTransition {
19
+ return new EntryExitTransition();
20
+ }
21
+
22
+ static entering(
23
+ animation: BaseAnimationBuilder | typeof BaseAnimationBuilder
24
+ ): EntryExitTransition {
25
+ const instance = this.createInstance();
26
+ return instance.entering(animation);
27
+ }
28
+
29
+ entering(
30
+ animation: BaseAnimationBuilder | typeof BaseAnimationBuilder
31
+ ): EntryExitTransition {
32
+ this.enteringV = animation;
33
+ return this;
34
+ }
35
+
36
+ static exiting(
37
+ animation: BaseAnimationBuilder | typeof BaseAnimationBuilder
38
+ ): EntryExitTransition {
39
+ const instance = this.createInstance();
40
+ return instance.exiting(animation);
41
+ }
42
+
43
+ exiting(
44
+ animation: BaseAnimationBuilder | typeof BaseAnimationBuilder
45
+ ): EntryExitTransition {
46
+ this.exitingV = animation;
47
+ return this;
48
+ }
49
+
50
+ build = (): LayoutAnimationFunction => {
51
+ const delayFunction = this.getDelayFunction();
52
+ const callback = this.callbackV;
53
+ const delay = this.getDelay();
54
+ const enteringAnimation = this.enteringV.build();
55
+ const exitingAnimation = this.exitingV.build();
56
+ const exitingDuration = this.exitingV.getDuration();
57
+
58
+ return (values) => {
59
+ 'worklet';
60
+ const enteringValues = enteringAnimation(values);
61
+ const exitingValues = exitingAnimation(values);
62
+ const animations: StyleProps = {
63
+ transform: [],
64
+ };
65
+
66
+ for (const prop of Object.keys(exitingValues.animations)) {
67
+ if (prop === 'transform') {
68
+ exitingValues.animations[prop]?.forEach((value, index) => {
69
+ for (const transformProp of Object.keys(value)) {
70
+ animations.transform?.push({
71
+ [transformProp]: delayFunction(
72
+ delay,
73
+ withSequence(
74
+ value[transformProp as keyof TransformProperty],
75
+ withTiming(
76
+ exitingValues.initialValues.transform
77
+ ? exitingValues.initialValues.transform[index][
78
+ transformProp as keyof TransformProperty
79
+ ]
80
+ : 0,
81
+ { duration: 0 }
82
+ )
83
+ )
84
+ ),
85
+ } as TransformProperty);
86
+ }
87
+ });
88
+ } else {
89
+ const sequence =
90
+ enteringValues.animations[prop] !== undefined
91
+ ? [
92
+ exitingValues.animations[prop],
93
+ withTiming(enteringValues.initialValues[prop], {
94
+ duration: 0,
95
+ }),
96
+ enteringValues.animations[prop],
97
+ ]
98
+ : [
99
+ exitingValues.animations[prop],
100
+ withTiming(
101
+ Object.keys(values).includes(prop)
102
+ ? values[prop as keyof LayoutAnimationsValues]
103
+ : exitingValues.initialValues[prop],
104
+ { duration: 0 }
105
+ ),
106
+ ];
107
+
108
+ animations[prop] = delayFunction(delay, withSequence(...sequence));
109
+ }
110
+ }
111
+ for (const prop of Object.keys(enteringValues.animations)) {
112
+ if (prop === 'transform') {
113
+ enteringValues.animations[prop]?.forEach((value, index) => {
114
+ for (const transformProp of Object.keys(value)) {
115
+ animations.transform?.push({
116
+ [transformProp]: delayFunction(
117
+ delay + exitingDuration,
118
+ withSequence(
119
+ withTiming(
120
+ enteringValues.initialValues.transform
121
+ ? enteringValues.initialValues.transform[index][
122
+ transformProp as keyof TransformProperty
123
+ ]
124
+ : 0,
125
+ { duration: 0 }
126
+ ),
127
+ value[transformProp as keyof TransformProperty]
128
+ )
129
+ ),
130
+ } as TransformProperty);
131
+ }
132
+ });
133
+ } else if (animations[prop] !== undefined) {
134
+ // it was already added in the previous loop
135
+ continue;
136
+ } else {
137
+ animations[prop] = delayFunction(
138
+ delay,
139
+ withSequence(
140
+ withTiming(enteringValues.initialValues[prop], { duration: 0 }),
141
+ enteringValues.animations[prop]
142
+ )
143
+ );
144
+ }
145
+ }
146
+
147
+ const mergedTransform = (
148
+ exitingValues.initialValues.transform ?? []
149
+ ).concat(
150
+ (enteringValues.animations.transform ?? []).map((value) => {
151
+ for (const transformProp of Object.keys(value)) {
152
+ const current = (value[
153
+ transformProp as keyof TransformProperty
154
+ ] as AnimationObject).current;
155
+ if (typeof current === 'string') {
156
+ if (current.includes('deg'))
157
+ return ({
158
+ [transformProp]: '0deg',
159
+ } as unknown) as TransformProperty;
160
+ else
161
+ return ({
162
+ [transformProp]: '0',
163
+ } as unknown) as TransformProperty;
164
+ } else if (transformProp.includes('translate')) {
165
+ return ({ [transformProp]: 0 } as unknown) as TransformProperty;
166
+ } else {
167
+ return ({ [transformProp]: 1 } as unknown) as TransformProperty;
168
+ }
169
+ }
170
+ return value;
171
+ })
172
+ );
173
+
174
+ return {
175
+ initialValues: {
176
+ ...exitingValues.initialValues,
177
+ originX: values.boriginX,
178
+ originY: values.boriginY,
179
+ width: values.bwidth,
180
+ height: values.bheight,
181
+ transform: mergedTransform,
182
+ },
183
+ animations: {
184
+ originX: delayFunction(
185
+ delay + exitingDuration,
186
+ withTiming(values.originX, { duration: 0 })
187
+ ),
188
+ originY: delayFunction(
189
+ delay + exitingDuration,
190
+ withTiming(values.originY, { duration: 0 })
191
+ ),
192
+ width: delayFunction(
193
+ delay + exitingDuration,
194
+ withTiming(values.width, { duration: 0 })
195
+ ),
196
+ height: delayFunction(
197
+ delay + exitingDuration,
198
+ withTiming(values.height, { duration: 0 })
199
+ ),
200
+ ...animations,
201
+ },
202
+ callback: callback,
203
+ };
204
+ };
205
+ };
206
+ }
207
+
208
+ export function combineTransition(
209
+ exiting: BaseAnimationBuilder | typeof BaseAnimationBuilder,
210
+ entering: BaseAnimationBuilder | typeof BaseAnimationBuilder
211
+ ): EntryExitTransition {
212
+ return EntryExitTransition.entering(entering).exiting(exiting);
213
+ }
@@ -0,0 +1,60 @@
1
+ import { withSequence, withTiming } from '../../animation';
2
+ import {
3
+ ILayoutAnimationBuilder,
4
+ LayoutAnimationFunction,
5
+ } from '../animationBuilder/commonTypes';
6
+ import { BaseAnimationBuilder } from '../animationBuilder';
7
+
8
+ export class FadingTransition
9
+ extends BaseAnimationBuilder
10
+ implements ILayoutAnimationBuilder {
11
+ static createInstance(): FadingTransition {
12
+ return new FadingTransition();
13
+ }
14
+
15
+ build = (): LayoutAnimationFunction => {
16
+ const delayFunction = this.getDelayFunction();
17
+ const callback = this.callbackV;
18
+ const delay = this.getDelay();
19
+ const duration = this.durationV ?? 500;
20
+
21
+ return (values) => {
22
+ 'worklet';
23
+ return {
24
+ initialValues: {
25
+ opacity: 1,
26
+ originX: values.boriginX,
27
+ originY: values.boriginY,
28
+ width: values.bwidth,
29
+ height: values.bheight,
30
+ },
31
+ animations: {
32
+ opacity: delayFunction(
33
+ delay,
34
+ withSequence(
35
+ withTiming(0, { duration: duration }),
36
+ withTiming(1, { duration: duration })
37
+ )
38
+ ),
39
+ originX: delayFunction(
40
+ delay + duration,
41
+ withTiming(values.originX, { duration: 50 })
42
+ ),
43
+ originY: delayFunction(
44
+ delay + duration,
45
+ withTiming(values.originY, { duration: 50 })
46
+ ),
47
+ width: delayFunction(
48
+ delay + duration,
49
+ withTiming(values.width, { duration: 50 })
50
+ ),
51
+ height: delayFunction(
52
+ delay + duration,
53
+ withTiming(values.height, { duration: 50 })
54
+ ),
55
+ },
56
+ callback: callback,
57
+ };
58
+ };
59
+ };
60
+ }
@@ -0,0 +1,58 @@
1
+ import {
2
+ ILayoutAnimationBuilder,
3
+ LayoutAnimationFunction,
4
+ } from '../animationBuilder/commonTypes';
5
+ import { withSequence, withTiming } from '../../animation';
6
+ import { Easing } from '../../Easing';
7
+ import { BaseAnimationBuilder } from '../animationBuilder';
8
+ export class JumpingTransition
9
+ extends BaseAnimationBuilder
10
+ implements ILayoutAnimationBuilder {
11
+ static createInstance(): JumpingTransition {
12
+ return new JumpingTransition();
13
+ }
14
+
15
+ build = (): LayoutAnimationFunction => {
16
+ const delayFunction = this.getDelayFunction();
17
+ const callback = this.callbackV;
18
+ const delay = this.getDelay();
19
+ const duration = (this.durationV ?? 300) / 2;
20
+ const config = { duration: duration * 2 };
21
+
22
+ return (values) => {
23
+ 'worklet';
24
+ const d = Math.max(
25
+ Math.abs(values.originX - values.boriginX),
26
+ Math.abs(values.originY - values.boriginY)
27
+ );
28
+ return {
29
+ initialValues: {
30
+ originX: values.boriginX,
31
+ originY: values.boriginY,
32
+ width: values.bwidth,
33
+ height: values.bheight,
34
+ },
35
+ animations: {
36
+ originX: delayFunction(delay, withTiming(values.originX, config)),
37
+ originY: delayFunction(
38
+ delay,
39
+ withSequence(
40
+ withTiming(Math.min(values.originY, values.boriginY) - d, {
41
+ duration,
42
+ easing: Easing.out(Easing.exp),
43
+ }),
44
+ withTiming(values.originY, {
45
+ ...config,
46
+ duration,
47
+ easing: Easing.bounce,
48
+ })
49
+ )
50
+ ),
51
+ width: delayFunction(delay, withTiming(values.width, config)),
52
+ height: delayFunction(delay, withTiming(values.height, config)),
53
+ },
54
+ callback: callback,
55
+ };
56
+ };
57
+ };
58
+ }
@@ -0,0 +1,41 @@
1
+ import { ComplexAnimationBuilder } from '../animationBuilder/ComplexAnimationBuilder';
2
+ import {
3
+ ILayoutAnimationBuilder,
4
+ LayoutAnimationFunction,
5
+ } from '../animationBuilder/commonTypes';
6
+
7
+ export class LinearTransition
8
+ extends ComplexAnimationBuilder
9
+ implements ILayoutAnimationBuilder {
10
+ static createInstance(): LinearTransition {
11
+ return new LinearTransition();
12
+ }
13
+
14
+ build = (): LayoutAnimationFunction => {
15
+ const delayFunction = this.getDelayFunction();
16
+ const [animation, config] = this.getAnimationAndConfig();
17
+ const callback = this.callbackV;
18
+ const delay = this.getDelay();
19
+
20
+ return (values) => {
21
+ 'worklet';
22
+ return {
23
+ initialValues: {
24
+ originX: values.boriginX,
25
+ originY: values.boriginY,
26
+ width: values.bwidth,
27
+ height: values.bheight,
28
+ },
29
+ animations: {
30
+ originX: delayFunction(delay, animation(values.originX, config)),
31
+ originY: delayFunction(delay, animation(values.originY, config)),
32
+ width: delayFunction(delay, animation(values.width, config)),
33
+ height: delayFunction(delay, animation(values.height, config)),
34
+ },
35
+ callback: callback,
36
+ };
37
+ };
38
+ };
39
+ }
40
+
41
+ export const Layout = LinearTransition;
@@ -0,0 +1,78 @@
1
+ import { withSequence, withTiming } from '../../animation';
2
+ import {
3
+ ILayoutAnimationBuilder,
4
+ LayoutAnimationFunction,
5
+ } from '../animationBuilder/commonTypes';
6
+ import { BaseAnimationBuilder } from '../animationBuilder';
7
+
8
+ export class SequencedTransition
9
+ extends BaseAnimationBuilder
10
+ implements ILayoutAnimationBuilder {
11
+ reversed = false;
12
+
13
+ static createInstance(): SequencedTransition {
14
+ return new SequencedTransition();
15
+ }
16
+
17
+ static reverse(): SequencedTransition {
18
+ const instance = SequencedTransition.createInstance();
19
+ return instance.reverse();
20
+ }
21
+
22
+ reverse(): SequencedTransition {
23
+ this.reversed = !this.reversed;
24
+ return this;
25
+ }
26
+
27
+ build = (): LayoutAnimationFunction => {
28
+ const delayFunction = this.getDelayFunction();
29
+ const callback = this.callbackV;
30
+ const delay = this.getDelay();
31
+ const sequenceDuration = (this.durationV ?? 500) / 2;
32
+ const config = { duration: sequenceDuration };
33
+ const reverse = this.reversed;
34
+
35
+ return (values) => {
36
+ 'worklet';
37
+ return {
38
+ initialValues: {
39
+ originX: values.boriginX,
40
+ originY: values.boriginY,
41
+ width: values.bwidth,
42
+ height: values.bheight,
43
+ },
44
+ animations: {
45
+ originX: delayFunction(
46
+ delay,
47
+ withSequence(
48
+ withTiming(reverse ? values.boriginX : values.originX, config),
49
+ withTiming(values.originX, config)
50
+ )
51
+ ),
52
+ originY: delayFunction(
53
+ delay,
54
+ withSequence(
55
+ withTiming(reverse ? values.originY : values.boriginY, config),
56
+ withTiming(values.originY, config)
57
+ )
58
+ ),
59
+ width: delayFunction(
60
+ delay,
61
+ withSequence(
62
+ withTiming(reverse ? values.bwidth : values.width, config),
63
+ withTiming(values.width, config)
64
+ )
65
+ ),
66
+ height: delayFunction(
67
+ delay,
68
+ withSequence(
69
+ withTiming(reverse ? values.height : values.bheight, config),
70
+ withTiming(values.height, config)
71
+ )
72
+ ),
73
+ },
74
+ callback: callback,
75
+ };
76
+ };
77
+ };
78
+ }
@@ -0,0 +1,6 @@
1
+ export * from './LinearTransition';
2
+ export * from './FadingTransition';
3
+ export * from './SequencedTransition';
4
+ export * from './JumpingTransition';
5
+ export * from './CurvedTransition';
6
+ export * from './EntryExitTransition';
@@ -1,3 +1,4 @@
1
- export * from './AnimatedRoot';
2
- export * from './defaultAnimationsBuilder';
1
+ import './LayoutAnimationRepository';
2
+ export * from './animationBuilder';
3
3
  export * from './defaultAnimations';
4
+ export * from './defaultTransitions';
@@ -0,0 +1,2 @@
1
+ // RNRender is not used for web. An export is still defined to eliminate warnings from bundlers such as esbuild.
2
+ module.exports = null;
@@ -0,0 +1,21 @@
1
+ import { Component } from 'react';
2
+ import { measure } from './NativeMethods';
3
+ import { RefObjectFunction } from './hook/useAnimatedRef';
4
+
5
+ export interface ComponentCoords {
6
+ x: number;
7
+ y: number;
8
+ }
9
+
10
+ export function getRelativeCoords(
11
+ parentRef: RefObjectFunction<Component>,
12
+ x: number,
13
+ y: number
14
+ ): ComponentCoords {
15
+ 'worklet';
16
+ const parentCoords = measure(parentRef);
17
+ return {
18
+ x: x - parentCoords.x,
19
+ y: y - parentCoords.y,
20
+ };
21
+ }
@@ -1,12 +0,0 @@
1
- #import <Foundation/Foundation.h>
2
-
3
- NS_ASSUME_NONNULL_BEGIN
4
-
5
- @interface REAAnimationRootView : UIView
6
-
7
- @property BOOL shouldBeAnimated;
8
- @property NSSet* capturablePropeties;
9
-
10
- @end
11
-
12
- NS_ASSUME_NONNULL_END
@@ -1,16 +0,0 @@
1
- #import "REAAnimationRootView.h"
2
-
3
- @implementation REAAnimationRootView
4
-
5
- - (instancetype)init
6
- {
7
- if (self = [super init])
8
- {
9
- // In the future it should be set separately for each AnimationRoot by a user
10
- self.capturablePropeties = [[NSSet alloc] initWithArray: @[@"height", @"width", @"originX", @"originY"]];
11
- return self;
12
- }
13
- return nil;
14
- }
15
-
16
- @end
@@ -1,9 +0,0 @@
1
- #import "RCTViewManager.h"
2
-
3
- NS_ASSUME_NONNULL_BEGIN
4
-
5
- @interface REAAnimationRootViewManager : RCTViewManager
6
- //TODO let view Manager handle animation updates (this way we can let view animated almost any property)
7
- @end
8
-
9
- NS_ASSUME_NONNULL_END
@@ -1,49 +0,0 @@
1
- #import "REAAnimationRootViewManager.h"
2
- #import "REAAnimationRootView.h"
3
- #import <React/RCTViewManager.h>
4
- #import "RCTShadowView.h"
5
- #import "REAReactBatchObserver.h"
6
-
7
- @interface REAShadowView : RCTShadowView
8
-
9
- @end
10
-
11
- @implementation REAShadowView {
12
- NSNumber* _tag;
13
- }
14
-
15
- @synthesize reactTag = _tag;
16
-
17
- - (NSNumber*)reactTag
18
- {
19
- return _tag;
20
- }
21
-
22
- - (void)setReactTag:(NSNumber*)reactTag
23
- {
24
- _tag = reactTag;
25
- [[REAReactBatchObserver animationRootsTags] addObject:reactTag];
26
- }
27
-
28
- @end
29
-
30
- @implementation REAAnimationRootViewManager
31
-
32
- RCT_EXPORT_MODULE(REALayoutView)
33
-
34
- - (UIView *)view
35
- {
36
- return [REAAnimationRootView new];
37
- }
38
-
39
- - (RCTShadowView*)shadowView
40
- {
41
- return [REAShadowView new];
42
- }
43
-
44
- RCT_CUSTOM_VIEW_PROPERTY(animated, BOOL, REAAnimationRootView)
45
- {
46
- view.shouldBeAnimated = [RCTConvert BOOL:json];
47
- }
48
-
49
- @end