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
@@ -1,35 +1,47 @@
1
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
2
- // @ts-nocheck
3
1
  import MapperRegistry from './MapperRegistry';
4
2
  import MutableValue from './MutableValue';
5
3
  import Mapper from './Mapper';
4
+ import { NativeReanimated } from '../NativeReanimated/NativeReanimated';
5
+ import {
6
+ AnimationObject,
7
+ PrimitiveValue,
8
+ Timestamp,
9
+ } from '../animation/commonTypes';
10
+ import { Descriptor } from '../hook/commonTypes';
11
+
12
+ export default class JSReanimated extends NativeReanimated {
13
+ _valueSetter?: (
14
+ value:
15
+ | (() => AnimationObject)
16
+ | AnimationObject
17
+ | PrimitiveValue
18
+ | Descriptor
19
+ ) => void = undefined;
6
20
 
7
- export default class JSReanimated {
8
- native = false;
9
- _valueSetter = undefined;
10
21
  _renderRequested = false;
11
22
  _mapperRegistry = new MapperRegistry(this);
12
- _frames = [];
13
- timeProvider = {};
23
+ _frames: ((timestamp: Timestamp) => void)[] = [];
24
+ timeProvider: { now: () => number };
14
25
 
15
26
  constructor() {
27
+ super(false);
16
28
  if (process.env.JEST_WORKER_ID) {
17
- this.timeProvider.now = () => Date.now();
29
+ this.timeProvider = { now: () => Date.now() };
18
30
  } else {
19
- this.timeProvider.now = () => window.performance.now();
31
+ this.timeProvider = { now: () => window.performance.now() };
20
32
  }
21
33
  }
22
34
 
23
- pushFrame(frame) {
35
+ pushFrame(frame: (timestamp: Timestamp) => void): void {
24
36
  this._frames.push(frame);
25
37
  this.maybeRequestRender();
26
38
  }
27
39
 
28
- getTimestamp() {
40
+ getTimestamp(): number {
29
41
  return this.timeProvider.now();
30
42
  }
31
43
 
32
- maybeRequestRender() {
44
+ maybeRequestRender(): void {
33
45
  if (!this._renderRequested) {
34
46
  this._renderRequested = true;
35
47
 
@@ -41,7 +53,7 @@ export default class JSReanimated {
41
53
  }
42
54
  }
43
55
 
44
- _onRender(timestampMs) {
56
+ _onRender(timestampMs: number): void {
45
57
  this._mapperRegistry.execute();
46
58
 
47
59
  const frames = [...this._frames];
@@ -56,38 +68,51 @@ export default class JSReanimated {
56
68
  }
57
69
  }
58
70
 
59
- installCoreFunctions(valueSetter) {
71
+ installCoreFunctions(
72
+ valueSetter: (
73
+ value:
74
+ | (() => AnimationObject)
75
+ | AnimationObject
76
+ | PrimitiveValue
77
+ | Descriptor
78
+ ) => void
79
+ ): void {
60
80
  this._valueSetter = valueSetter;
61
81
  }
62
82
 
63
- makeShareable(value) {
83
+ makeShareable<T>(value: T): T {
64
84
  return value;
65
85
  }
66
86
 
67
- makeMutable(value) {
87
+ makeMutable<T>(value: T): MutableValue {
68
88
  return new MutableValue(value, this._valueSetter);
69
89
  }
70
90
 
71
- makeRemote(object) {
72
- return object;
91
+ makeRemote<T>(object = {}): T {
92
+ return object as T;
73
93
  }
74
94
 
75
- startMapper(mapper, inputs = [], outputs = []) {
95
+ startMapper(
96
+ mapper: () => void,
97
+ inputs: any[] = [],
98
+ outputs: any[] = []
99
+ ): number {
76
100
  const instance = new Mapper(this, mapper, inputs, outputs);
77
101
  const mapperId = this._mapperRegistry.startMapper(instance);
78
102
  this.maybeRequestRender();
79
103
  return mapperId;
80
104
  }
81
105
 
82
- stopMapper(mapperId) {
106
+ stopMapper(mapperId: number): void {
83
107
  this._mapperRegistry.stopMapper(mapperId);
84
108
  }
85
109
 
86
- registerEventHandler(_eventHash, _eventHandler) {
110
+ registerEventHandler<T>(_: string, __: (event: T) => void): string {
87
111
  // noop
112
+ return '';
88
113
  }
89
114
 
90
- unregisterEventHandler(_registrationId) {
115
+ unregisterEventHandler(_: string): void {
91
116
  // noop
92
117
  }
93
118
  }
@@ -7,7 +7,7 @@ export default class Mapper {
7
7
 
8
8
  dirty = true;
9
9
 
10
- constructor(module, mapper, inputs = [], outputs = []) {
10
+ constructor(module, mapper, inputs: any[] = [], outputs: any[] = []) {
11
11
  this.id = Mapper.MAPPER_ID++;
12
12
  this.inputs = this.extractMutablesFromArray(inputs);
13
13
  this.outputs = this.extractMutablesFromArray(outputs);
@@ -0,0 +1,71 @@
1
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
2
+ // @ts-nocheck
3
+ import JSReanimated from './JSReanimated';
4
+ import { shouldBeUseWeb } from '../PlatformChecker';
5
+
6
+ const reanimatedJS = new JSReanimated();
7
+
8
+ if (shouldBeUseWeb()) {
9
+ global._frameTimestamp = null;
10
+ global._setGlobalConsole = (_val) => {
11
+ // noop
12
+ };
13
+ global._measure = () => {
14
+ console.warn(
15
+ "[Reanimated] You can't use 'measue' method with Chrome Debugger or with web version"
16
+ );
17
+ return {
18
+ x: 0,
19
+ y: 0,
20
+ width: 0,
21
+ height: 0,
22
+ pageX: 0,
23
+ pageY: 0,
24
+ };
25
+ };
26
+ global._scrollTo = () => {
27
+ console.warn(
28
+ "[Reanimated] You can't use 'scrollTo' method with Chrome Debugger or with web version"
29
+ );
30
+ };
31
+ }
32
+
33
+ export const _updatePropsJS = (updates, viewRef) => {
34
+ if (viewRef?._component) {
35
+ const [rawStyles] = Object.keys(updates).reduce(
36
+ (acc, key) => {
37
+ const value = updates[key];
38
+ const index = typeof value === 'function' ? 1 : 0;
39
+ acc[index][key] = value;
40
+ return acc;
41
+ },
42
+ [{}, {}]
43
+ );
44
+
45
+ if (typeof viewRef._component.setNativeProps === 'function') {
46
+ setNativeProps(viewRef._component, rawStyles);
47
+ } else if (Object.keys(viewRef._component.props).length > 0) {
48
+ Object.keys(viewRef._component.props).forEach((key) => {
49
+ if (!rawStyles[key]) {
50
+ return;
51
+ }
52
+ const dashedKey = key.replace(/[A-Z]/g, (m) => '-' + m.toLowerCase());
53
+ viewRef._component._touchableNode.setAttribute(
54
+ dashedKey,
55
+ rawStyles[key]
56
+ );
57
+ });
58
+ } else {
59
+ console.warn('It is not possible to manipulate component');
60
+ }
61
+ }
62
+ };
63
+
64
+ const setNativeProps = (component, style) => {
65
+ const previousStyle = component.previousStyle ? component.previousStyle : {};
66
+ const currentStyle = { ...previousStyle, ...style };
67
+ component.previousStyle = currentStyle;
68
+ component.setNativeProps({ style: currentStyle });
69
+ };
70
+
71
+ export default reanimatedJS;
@@ -0,0 +1,62 @@
1
+ /* global _stopObservingProgress, _startObservingProgress */
2
+ import { runOnUI } from '../core';
3
+ import { withStyleAnimation } from '../animation/styleAnimation';
4
+
5
+ runOnUI(() => {
6
+ 'worklet';
7
+
8
+ const configs: Record<string, any> = {};
9
+ const enteringAnimationForTag: Record<string, any> = {};
10
+
11
+ global.LayoutAnimationRepository = {
12
+ configs,
13
+ registerConfig(tag, config) {
14
+ configs[tag] = config;
15
+ enteringAnimationForTag[tag] = null;
16
+ },
17
+ removeConfig(tag) {
18
+ delete configs[tag];
19
+ delete enteringAnimationForTag[tag];
20
+ },
21
+ startAnimationForTag(tag, type, yogaValues) {
22
+ if (configs[tag] == null) {
23
+ return; // :(
24
+ }
25
+ const style = configs[tag][type](yogaValues);
26
+ let currentAnimation = style.animations;
27
+ if (type === 'entering') {
28
+ enteringAnimationForTag[tag] = style;
29
+ } else if (type === 'layout' && enteringAnimationForTag[tag] !== null) {
30
+ const entryAniamtion = enteringAnimationForTag[tag].animations;
31
+ const layoutAnimation = style.animations;
32
+ currentAnimation = {};
33
+ for (const key in entryAniamtion) {
34
+ currentAnimation[key] = entryAniamtion[key];
35
+ }
36
+ for (const key in layoutAnimation) {
37
+ currentAnimation[key] = layoutAnimation[key];
38
+ }
39
+ enteringAnimationForTag[tag] = null;
40
+ }
41
+
42
+ const sv: { value: boolean; _value: boolean } = configs[tag].sv;
43
+ _stopObservingProgress(tag, false);
44
+ _startObservingProgress(tag, sv);
45
+ sv._value = Object.assign({}, sv._value, style.initialValues);
46
+ _stopObservingProgress(tag, false);
47
+ const animation = withStyleAnimation(currentAnimation);
48
+
49
+ animation.callback = (finished?: boolean) => {
50
+ if (finished) {
51
+ _stopObservingProgress(tag, finished);
52
+ }
53
+ style.callback && style.callback(finished);
54
+ if (type === 'entering') {
55
+ enteringAnimationForTag[tag] = null;
56
+ }
57
+ };
58
+ configs[tag].sv.value = animation;
59
+ _startObservingProgress(tag, sv);
60
+ },
61
+ };
62
+ })();
@@ -0,0 +1,91 @@
1
+ import { withDelay } from '../../animation';
2
+ import {
3
+ EntryExitAnimationFunction,
4
+ AnimationFunction,
5
+ LayoutAnimationFunction,
6
+ } from './commonTypes';
7
+
8
+ export class BaseAnimationBuilder {
9
+ durationV?: number;
10
+ delayV?: number;
11
+ randomizeDelay = false;
12
+ callbackV?: (finished: boolean) => void;
13
+
14
+ static createInstance: () => BaseAnimationBuilder;
15
+ build = (): EntryExitAnimationFunction | LayoutAnimationFunction => {
16
+ throw Error('Unimplemented method in child class.');
17
+ };
18
+
19
+ static duration(durationMs: number): BaseAnimationBuilder {
20
+ const instance = this.createInstance();
21
+ return instance.duration(durationMs);
22
+ }
23
+
24
+ duration(durationMs: number): BaseAnimationBuilder {
25
+ this.durationV = durationMs;
26
+ return this;
27
+ }
28
+
29
+ static delay(delayMs: number): BaseAnimationBuilder {
30
+ const instance = this.createInstance();
31
+ return instance.delay(delayMs);
32
+ }
33
+
34
+ delay(delayMs: number): BaseAnimationBuilder {
35
+ this.delayV = delayMs;
36
+ return this;
37
+ }
38
+
39
+ static withCallback(
40
+ callback: (finished: boolean) => void
41
+ ): BaseAnimationBuilder {
42
+ const instance = this.createInstance();
43
+ return instance.withCallback(callback);
44
+ }
45
+
46
+ withCallback(callback: (finsihed: boolean) => void): BaseAnimationBuilder {
47
+ this.callbackV = callback;
48
+ return this;
49
+ }
50
+
51
+ // 300ms is the default animation duration. If any animation has different default has to override this method.
52
+ static getDuration(): number {
53
+ return 300;
54
+ }
55
+
56
+ getDuration(): number {
57
+ return this.durationV ?? 300;
58
+ }
59
+
60
+ static randomDelay(): BaseAnimationBuilder {
61
+ const instance = this.createInstance();
62
+ return instance.randomDelay();
63
+ }
64
+
65
+ randomDelay(): BaseAnimationBuilder {
66
+ this.randomizeDelay = true;
67
+ return this;
68
+ }
69
+
70
+ // when randomizeDelay is set to true, randomize delay between 0 and provided value (or 1000ms if delay is not provided)
71
+ getDelay(): number {
72
+ return this.randomizeDelay
73
+ ? Math.random() * (this.delayV ?? 1000)
74
+ : this.delayV ?? 0;
75
+ }
76
+
77
+ getDelayFunction(): AnimationFunction {
78
+ const isDelayProvided = this.randomizeDelay || this.delayV;
79
+ return isDelayProvided
80
+ ? withDelay
81
+ : (_, animation) => {
82
+ 'worklet';
83
+ return animation;
84
+ };
85
+ }
86
+
87
+ static build(): EntryExitAnimationFunction | LayoutAnimationFunction {
88
+ const instance = this.createInstance();
89
+ return instance.build();
90
+ }
91
+ }
@@ -0,0 +1,169 @@
1
+ import { withTiming, withSpring } from '../../animation';
2
+ import {
3
+ AnimationFunction,
4
+ BaseBuilderAnimationConfig,
5
+ LayoutAnimationAndConfig,
6
+ } from './commonTypes';
7
+ import { EasingFn } from '../../Easing';
8
+ import { BaseAnimationBuilder } from './BaseAnimationBuilder';
9
+ export class ComplexAnimationBuilder extends BaseAnimationBuilder {
10
+ easingV?: EasingFn;
11
+ rotateV?: string;
12
+ type?: AnimationFunction;
13
+ dampingV?: number;
14
+ massV?: number;
15
+ stiffnessV?: number;
16
+ overshootClampingV?: number;
17
+ restDisplacementThresholdV?: number;
18
+ restSpeedThresholdV?: number;
19
+
20
+ static createInstance: () => ComplexAnimationBuilder;
21
+
22
+ static easing(easingFunction: EasingFn): ComplexAnimationBuilder {
23
+ const instance = this.createInstance();
24
+ return instance.easing(easingFunction);
25
+ }
26
+
27
+ easing(easingFunction: EasingFn): ComplexAnimationBuilder {
28
+ this.easingV = easingFunction;
29
+ return this;
30
+ }
31
+
32
+ static rotate(degree: string): ComplexAnimationBuilder {
33
+ const instance = this.createInstance();
34
+ return instance.rotate(degree);
35
+ }
36
+
37
+ rotate(degree: string): ComplexAnimationBuilder {
38
+ this.rotateV = degree;
39
+ return this;
40
+ }
41
+
42
+ static springify(): ComplexAnimationBuilder {
43
+ const instance = this.createInstance();
44
+ return instance.springify();
45
+ }
46
+
47
+ springify(): ComplexAnimationBuilder {
48
+ this.type = withSpring as AnimationFunction;
49
+ return this;
50
+ }
51
+
52
+ static damping(damping: number): ComplexAnimationBuilder {
53
+ const instance = this.createInstance();
54
+ return instance.damping(damping);
55
+ }
56
+
57
+ damping(damping: number): ComplexAnimationBuilder {
58
+ this.dampingV = damping;
59
+ return this;
60
+ }
61
+
62
+ static mass(mass: number): ComplexAnimationBuilder {
63
+ const instance = this.createInstance();
64
+ return instance.mass(mass);
65
+ }
66
+
67
+ mass(mass: number): ComplexAnimationBuilder {
68
+ this.massV = mass;
69
+ return this;
70
+ }
71
+
72
+ static stiffness(stiffness: number): ComplexAnimationBuilder {
73
+ const instance = this.createInstance();
74
+ return instance.stiffness(stiffness);
75
+ }
76
+
77
+ stiffness(stiffness: number): ComplexAnimationBuilder {
78
+ this.stiffnessV = stiffness;
79
+ return this;
80
+ }
81
+
82
+ static overshootClamping(overshootClamping: number): ComplexAnimationBuilder {
83
+ const instance = this.createInstance();
84
+ return instance.overshootClamping(overshootClamping);
85
+ }
86
+
87
+ overshootClamping(overshootClamping: number): ComplexAnimationBuilder {
88
+ this.overshootClampingV = overshootClamping;
89
+ return this;
90
+ }
91
+
92
+ static restDisplacementThreshold(
93
+ restDisplacementThreshold: number
94
+ ): ComplexAnimationBuilder {
95
+ const instance = this.createInstance();
96
+ return instance.restDisplacementThreshold(restDisplacementThreshold);
97
+ }
98
+
99
+ restDisplacementThreshold(
100
+ restDisplacementThreshold: number
101
+ ): ComplexAnimationBuilder {
102
+ this.restDisplacementThresholdV = restDisplacementThreshold;
103
+ return this;
104
+ }
105
+
106
+ static restSpeedThreshold(
107
+ restSpeedThreshold: number
108
+ ): ComplexAnimationBuilder {
109
+ const instance = this.createInstance();
110
+ return instance.restSpeedThreshold(restSpeedThreshold);
111
+ }
112
+
113
+ restSpeedThreshold(restSpeedThreshold: number): ComplexAnimationBuilder {
114
+ this.restSpeedThresholdV = restSpeedThreshold;
115
+ return this;
116
+ }
117
+
118
+ getAnimationAndConfig(): LayoutAnimationAndConfig {
119
+ const duration = this.durationV;
120
+ const easing = this.easingV;
121
+ const rotate = this.rotateV;
122
+ const type = this.type ? this.type : (withTiming as AnimationFunction);
123
+ const damping = this.dampingV;
124
+ const mass = this.massV;
125
+ const stiffness = this.stiffnessV;
126
+ const overshootClamping = this.overshootClampingV;
127
+ const restDisplacementThreshold = this.restDisplacementThresholdV;
128
+ const restSpeedThreshold = this.restSpeedThresholdV;
129
+
130
+ const animation = type;
131
+
132
+ const config: BaseBuilderAnimationConfig = {};
133
+
134
+ if (type === withTiming) {
135
+ if (easing) {
136
+ config.easing = easing;
137
+ }
138
+ if (duration) {
139
+ config.duration = duration;
140
+ }
141
+ if (rotate) {
142
+ config.rotate = rotate;
143
+ }
144
+ } else {
145
+ if (damping) {
146
+ config.damping = damping;
147
+ }
148
+ if (mass) {
149
+ config.mass = mass;
150
+ }
151
+ if (stiffness) {
152
+ config.stiffness = stiffness;
153
+ }
154
+ if (overshootClamping) {
155
+ config.overshootClamping = overshootClamping;
156
+ }
157
+ if (restDisplacementThreshold) {
158
+ config.restDisplacementThreshold = restDisplacementThreshold;
159
+ }
160
+ if (restSpeedThreshold) {
161
+ config.restSpeedThreshold = restSpeedThreshold;
162
+ }
163
+ if (rotate) {
164
+ config.rotate = rotate;
165
+ }
166
+ }
167
+ return [animation, config];
168
+ }
169
+ }