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
@@ -8,8 +8,9 @@ import AnimatedValue from './reanimated1/core/AnimatedValue';
8
8
  import { createOrReusePropsNode } from './reanimated1/core/AnimatedProps';
9
9
  import WorkletEventHandler from './reanimated2/WorkletEventHandler';
10
10
  import setAndForwardRef from './setAndForwardRef';
11
+ import './reanimated2/layoutReanimation/LayoutAnimationRepository';
11
12
 
12
- import invariant from 'fbjs/lib/invariant';
13
+ import invariant from 'invariant';
13
14
  import { adaptViewConfig } from './ConfigHelper';
14
15
  import { RNRenderer } from './reanimated2/platform-specific/RNRenderer';
15
16
  import { makeMutable, runOnUI } from './reanimated2/core';
@@ -17,7 +18,9 @@ import {
17
18
  DefaultEntering,
18
19
  DefaultExiting,
19
20
  DefaultLayout,
20
- } from './reanimated2/layoutReanimation/defaultAnimationsBuilder';
21
+ } from './reanimated2/layoutReanimation/defaultAnimations/Default';
22
+ import { isJest, isChromeDebugger } from './reanimated2/PlatformChecker';
23
+ import { initialUpdaterRun } from './reanimated2/animation';
21
24
 
22
25
  const NODE_MAPPING = new Map();
23
26
 
@@ -46,7 +49,7 @@ function hasAnimatedNodes(value) {
46
49
 
47
50
  function flattenArray(array) {
48
51
  if (!Array.isArray(array)) {
49
- return array;
52
+ return [array];
50
53
  }
51
54
  const resultArr = [];
52
55
 
@@ -73,11 +76,14 @@ export default function createAnimatedComponent(Component, options = {}) {
73
76
 
74
77
  class AnimatedComponent extends React.Component {
75
78
  _invokeAnimatedPropsCallbackOnMount = false;
79
+ _styles = null;
80
+ _viewTag = -1;
81
+ _isFirstRender = true;
76
82
 
77
83
  constructor(props) {
78
84
  super(props);
79
85
  this._attachProps(this.props);
80
- if (process.env.JEST_WORKER_ID) {
86
+ if (isJest()) {
81
87
  this.animatedStyle = { value: {} };
82
88
  }
83
89
  this.sv = makeMutable({});
@@ -87,6 +93,7 @@ export default function createAnimatedComponent(Component, options = {}) {
87
93
  this._detachPropUpdater();
88
94
  this._propsAnimated && this._propsAnimated.__detach();
89
95
  this._detachNativeEvents();
96
+ this._detachStyles();
90
97
  this.sv = null;
91
98
  }
92
99
 
@@ -113,7 +120,6 @@ export default function createAnimatedComponent(Component, options = {}) {
113
120
  _attachNativeEvents() {
114
121
  const node = this._getEventViewRef();
115
122
  const viewTag = findNodeHandle(options.setNativeProps ? this : node);
116
-
117
123
  for (const key in this.props) {
118
124
  const prop = this.props[key];
119
125
  if (prop instanceof AnimatedEvent) {
@@ -143,6 +149,25 @@ export default function createAnimatedComponent(Component, options = {}) {
143
149
  }
144
150
  }
145
151
 
152
+ _detachStyles() {
153
+ if (Platform.OS === 'web') {
154
+ for (const style of this._styles) {
155
+ if (style?.viewsRef) {
156
+ style.viewsRef.remove(this);
157
+ }
158
+ }
159
+ } else if (this._viewTag !== -1) {
160
+ for (const style of this._styles) {
161
+ if (style?.viewDescriptors) {
162
+ style.viewDescriptors.remove(this._viewTag);
163
+ }
164
+ }
165
+ if (this.props.animatedProps?.viewDescriptors) {
166
+ this.props.animatedProps.viewDescriptors.remove(this._viewTag);
167
+ }
168
+ }
169
+ }
170
+
146
171
  _reattachNativeEvents(prevProps) {
147
172
  const node = this._getEventViewRef();
148
173
  const attached = new Set();
@@ -257,10 +282,8 @@ export default function createAnimatedComponent(Component, options = {}) {
257
282
  }
258
283
 
259
284
  _attachAnimatedStyles() {
260
- let styles = Array.isArray(this.props.style)
261
- ? this.props.style
262
- : [this.props.style];
263
- styles = flattenArray(styles);
285
+ const styles = flattenArray(this.props.style);
286
+ this._styles = styles;
264
287
  let viewTag, viewName;
265
288
  if (Platform.OS === 'web') {
266
289
  viewTag = findNodeHandle(this);
@@ -289,11 +312,12 @@ export default function createAnimatedComponent(Component, options = {}) {
289
312
  adaptViewConfig(hostInstance.viewConfig);
290
313
  }
291
314
  }
315
+ this._viewTag = viewTag;
292
316
 
293
317
  styles.forEach((style) => {
294
- if (style?.viewDescriptor) {
295
- style.viewDescriptor.value = { tag: viewTag, name: viewName };
296
- if (process.env.JEST_WORKER_ID) {
318
+ if (style?.viewDescriptors) {
319
+ style.viewDescriptors.add({ tag: viewTag, name: viewName });
320
+ if (isJest()) {
297
321
  /**
298
322
  * We need to connect Jest's TestObject instance whose contains just props object
299
323
  * with the updateProps() function where we update the properties of the component.
@@ -302,29 +326,29 @@ export default function createAnimatedComponent(Component, options = {}) {
302
326
  */
303
327
  this.animatedStyle.value = {
304
328
  ...this.animatedStyle.value,
305
- ...style.initial,
329
+ ...style.initial.value,
306
330
  };
307
331
  style.animatedStyle.current = this.animatedStyle;
308
332
  }
309
333
  }
310
334
  });
311
335
  // attach animatedProps property
312
- if (this.props.animatedProps?.viewDescriptor) {
313
- this.props.animatedProps.viewDescriptor.value = {
336
+ if (this.props.animatedProps?.viewDescriptors) {
337
+ this.props.animatedProps.viewDescriptors.add({
314
338
  tag: viewTag,
315
339
  name: viewName,
316
- };
340
+ });
317
341
  }
318
342
  }
319
343
 
320
344
  _hasReanimated2Props(flattenStyles) {
321
- if (this.props.animatedProps?.viewDescriptor) {
345
+ if (this.props.animatedProps?.viewDescriptors) {
322
346
  return true;
323
347
  }
324
348
  if (this.props.style) {
325
349
  for (const style of flattenStyles) {
326
350
  // eslint-disable-next-line no-prototype-builtins
327
- if (style?.hasOwnProperty('viewDescriptor')) {
351
+ if (style?.hasOwnProperty('viewDescriptors')) {
328
352
  return true;
329
353
  }
330
354
  }
@@ -345,6 +369,7 @@ export default function createAnimatedComponent(Component, options = {}) {
345
369
  this._reattachNativeEvents(prevProps);
346
370
 
347
371
  this._propsAnimated && this._propsAnimated.setNativeView(this._component);
372
+ this._attachAnimatedStyles();
348
373
  }
349
374
 
350
375
  _setComponentRef = setAndForwardRef({
@@ -428,14 +453,19 @@ export default function createAnimatedComponent(Component, options = {}) {
428
453
  for (const key in inputProps) {
429
454
  const value = inputProps[key];
430
455
  if (key === 'style') {
431
- const styles = Array.isArray(value) ? value : [value];
456
+ const styles = flattenArray(value);
432
457
  const processedStyle = styles.map((style) => {
433
- if (style && style.viewDescriptor) {
458
+ if (style && style.viewDescriptors) {
434
459
  // this is how we recognize styles returned by useAnimatedStyle
435
- if (style.viewRef.current === null) {
436
- style.viewRef.current = this;
460
+ style.viewsRef.add(this);
461
+ if (this._isFirstRender) {
462
+ return {
463
+ ...style.initial.value,
464
+ ...initialUpdaterRun(style.initial.updater),
465
+ };
466
+ } else {
467
+ return style.initial.value;
437
468
  }
438
- return style.initial;
439
469
  } else {
440
470
  return style;
441
471
  }
@@ -444,11 +474,9 @@ export default function createAnimatedComponent(Component, options = {}) {
444
474
  StyleSheet.flatten(processedStyle)
445
475
  );
446
476
  } else if (key === 'animatedProps') {
447
- Object.keys(value.initial).forEach((key) => {
448
- props[key] = value.initial[key];
449
- if (value.viewRef.current === null) {
450
- value.viewRef.current = this;
451
- }
477
+ Object.keys(value.initial.value).forEach((key) => {
478
+ props[key] = value.initial.value[key];
479
+ value.viewsRef.add(this);
452
480
  });
453
481
  } else if (value instanceof AnimatedEvent) {
454
482
  // we cannot filter out event listeners completely as some components
@@ -470,7 +498,9 @@ export default function createAnimatedComponent(Component, options = {}) {
470
498
  props[key] = dummyListener;
471
499
  }
472
500
  } else if (!(value instanceof AnimatedNode)) {
473
- props[key] = value;
501
+ if (key !== 'onGestureHandlerStateChange' || !isChromeDebugger()) {
502
+ props[key] = value;
503
+ }
474
504
  } else if (value instanceof AnimatedValue) {
475
505
  // if any prop in animated component is set directly to the `Value` we set those props to the first value of `Value` node in order
476
506
  // to avoid default values for a short moment when `Value` is being asynchrounously sent via bridge and initialized in the native side.
@@ -482,10 +512,14 @@ export default function createAnimatedComponent(Component, options = {}) {
482
512
 
483
513
  render() {
484
514
  const props = this._filterNonAnimatedProps(this.props);
485
- if (process.env.JEST_WORKER_ID) {
515
+ if (isJest()) {
486
516
  props.animatedStyle = this.animatedStyle;
487
517
  }
488
518
 
519
+ if (this._isFirstRender) {
520
+ this._isFirstRender = false;
521
+ }
522
+
489
523
  const platformProps = Platform.select({
490
524
  web: {},
491
525
  default: { collapsable: false },
@@ -1,5 +1,5 @@
1
1
  import AnimatedNode from './AnimatedNode';
2
- import invariant from 'fbjs/lib/invariant';
2
+ import invariant from 'invariant';
3
3
  import { val } from '../val';
4
4
 
5
5
  class AnimatedAlways extends AnimatedNode {
@@ -1,6 +1,6 @@
1
1
  import { val } from '../val';
2
2
  import AnimatedNode from './AnimatedNode';
3
- import invariant from 'fbjs/lib/invariant';
3
+ import invariant from 'invariant';
4
4
 
5
5
  // These values are established by empiricism with tests (tradeoff: performance VS precision)
6
6
  var NEWTON_ITERATIONS = 4;
@@ -1,4 +1,4 @@
1
- import invariant from 'fbjs/lib/invariant';
1
+ import invariant from 'invariant';
2
2
  import { val } from '../val';
3
3
  import AnimatedNode from './AnimatedNode';
4
4
  import InternalAnimatedValue from './InternalAnimatedValue';
@@ -1,4 +1,4 @@
1
- import invariant from 'fbjs/lib/invariant';
1
+ import invariant from 'invariant';
2
2
  import ReanimatedEventEmitter from '../../ReanimatedEventEmitter';
3
3
  import { val } from '../val';
4
4
  import AnimatedNode from './AnimatedNode';
@@ -1,7 +1,7 @@
1
1
  import AnimatedNode, { getCallID, setCallID } from './AnimatedNode';
2
2
  import { adapt } from './AnimatedBlock';
3
3
  import { val } from '../val';
4
- import invariant from 'fbjs/lib/invariant';
4
+ import invariant from 'invariant';
5
5
 
6
6
  class AnimatedCallFunc extends AnimatedNode {
7
7
  _previousCallID;
@@ -1,4 +1,4 @@
1
- import invariant from 'fbjs/lib/invariant';
1
+ import invariant from 'invariant';
2
2
  import { adapt } from '../core/AnimatedBlock';
3
3
  import AnimatedNode from './AnimatedNode';
4
4
  import { val } from '../val';
@@ -1,4 +1,4 @@
1
- import invariant from 'fbjs/lib/invariant';
1
+ import invariant from 'invariant';
2
2
  import { adapt } from '../core/AnimatedBlock';
3
3
  import { val } from '../val';
4
4
  import AnimatedNode from './AnimatedNode';
@@ -1,4 +1,4 @@
1
- import invariant from 'fbjs/lib/invariant';
1
+ import invariant from 'invariant';
2
2
  import { NativeModules } from 'react-native';
3
3
  import { val } from '../val';
4
4
  import { adapt, createAnimatedBlock as block } from './AnimatedBlock';
@@ -5,7 +5,7 @@ import AnimatedNode from './AnimatedNode';
5
5
  import InternalAnimatedValue from './AnimatedValue';
6
6
  import { createAnimatedAlways } from './AnimatedAlways';
7
7
 
8
- import invariant from 'fbjs/lib/invariant';
8
+ import invariant from 'invariant';
9
9
  import createEventObjectProxyPolyfill from './createEventObjectProxyPolyfill';
10
10
 
11
11
  function sanitizeArgMapping(argMapping) {
@@ -2,7 +2,7 @@ import AnimatedNode from './AnimatedNode';
2
2
  import { createAnimatedCallFunc } from './AnimatedCallFunc';
3
3
  import { createAnimatedParam } from './AnimatedParam';
4
4
  import { val } from '../val';
5
- import invariant from 'fbjs/lib/invariant';
5
+ import invariant from 'invariant';
6
6
 
7
7
  class AnimatedFunction extends AnimatedNode {
8
8
  _what;
@@ -1,7 +1,7 @@
1
1
  import AnimatedNode from './AnimatedNode';
2
2
  import { val } from '../val';
3
3
 
4
- import invariant from 'fbjs/lib/invariant';
4
+ import invariant from 'invariant';
5
5
  import { adapt } from '../core/AnimatedBlock';
6
6
 
7
7
  function reduce(fn) {
@@ -1,4 +1,4 @@
1
- import invariant from 'fbjs/lib/invariant';
1
+ import invariant from 'invariant';
2
2
  import AnimatedNode, { getCallID, setCallID } from './AnimatedNode';
3
3
  import AnimatedClock from './AnimatedClock';
4
4
  import { val } from '../val';
@@ -4,8 +4,8 @@ import AnimatedNode from './AnimatedNode';
4
4
  import AnimatedEvent from './AnimatedEvent';
5
5
  import { createOrReuseStyleNode } from './AnimatedStyle';
6
6
 
7
- import invariant from 'fbjs/lib/invariant';
8
- import deepEqual from 'fbjs/lib/areEqual';
7
+ import invariant from 'invariant';
8
+ import deepEqual from 'lodash.isequal';
9
9
  import { val } from '../val';
10
10
 
11
11
  function sanitizeProps(inputProps) {
@@ -1,5 +1,5 @@
1
1
  import AnimatedNode from './AnimatedNode';
2
- import invariant from 'fbjs/lib/invariant';
2
+ import invariant from 'invariant';
3
3
  import { val } from '../val';
4
4
  import { adapt } from '../core/AnimatedBlock';
5
5
 
@@ -1,7 +1,7 @@
1
1
  import AnimatedNode from './AnimatedNode';
2
2
  import AnimatedClock from './AnimatedClock';
3
3
  import { AnimatedParam } from './AnimatedParam';
4
- import invariant from 'fbjs/lib/invariant';
4
+ import invariant from 'invariant';
5
5
 
6
6
  class AnimatedStartClock extends AnimatedNode {
7
7
  _clockNode;
@@ -1,7 +1,7 @@
1
1
  import AnimatedNode from './AnimatedNode';
2
2
  import AnimatedClock from './AnimatedClock';
3
3
  import { AnimatedParam } from './AnimatedParam';
4
- import invariant from 'fbjs/lib/invariant';
4
+ import invariant from 'invariant';
5
5
 
6
6
  class AnimatedStopClock extends AnimatedNode {
7
7
  _clockNode;
@@ -3,7 +3,7 @@ import { StyleSheet } from 'react-native';
3
3
  import AnimatedNode from './AnimatedNode';
4
4
  import { createOrReuseTransformNode } from './AnimatedTransform';
5
5
 
6
- import deepEqual from 'fbjs/lib/areEqual';
6
+ import deepEqual from 'lodash.isequal';
7
7
 
8
8
  function sanitizeStyle(inputStyle) {
9
9
  let style;
@@ -1,6 +1,6 @@
1
1
  import AnimatedNode from './AnimatedNode';
2
2
 
3
- import deepEqual from 'fbjs/lib/areEqual';
3
+ import deepEqual from 'lodash.isequal';
4
4
 
5
5
  function sanitizeTransform(inputTransform) {
6
6
  const outputTransform = [];
@@ -0,0 +1,30 @@
1
+ import React from 'react';
2
+ import Animated from '../../Animated';
3
+
4
+ import renderer from 'react-test-renderer';
5
+
6
+ jest.mock('../../ReanimatedEventEmitter');
7
+ jest.mock('../../ReanimatedModule');
8
+ jest.mock('../../reanimated2/NativeReanimated');
9
+
10
+ describe('Core Animated components', () => {
11
+ xit('fails if something other then a node or function that returns a node is passed to Animated.Code exec prop', () => {
12
+ console.error = jest.fn();
13
+
14
+ expect(() =>
15
+ renderer.create(<Animated.Code exec="not a node" />)
16
+ ).toThrowError(
17
+ "<Animated.Code /> expects the 'exec' prop or children to be an animated node or a function returning an animated node."
18
+ );
19
+ });
20
+
21
+ xit('fails if something other then a node or function that returns a node is passed to Animated.Code children', () => {
22
+ console.error = jest.fn();
23
+
24
+ expect(() =>
25
+ renderer.create(<Animated.Code>not a node</Animated.Code>)
26
+ ).toThrowError(
27
+ "<Animated.Code /> expects the 'exec' prop or children to be an animated node or a function returning an animated node."
28
+ );
29
+ });
30
+ });
@@ -1,7 +1,7 @@
1
1
  import AnimatedNode from './AnimatedNode';
2
2
  import { val } from '../val';
3
3
  import ReanimatedModule from '../../ReanimatedModule';
4
- import invariant from 'fbjs/lib/invariant';
4
+ import invariant from 'invariant';
5
5
 
6
6
  function sanitizeValue(value) {
7
7
  return value === null || value === undefined || typeof value === 'string'
@@ -2,7 +2,7 @@ import AnimatedNode from '../AnimatedNode';
2
2
  import AnimatedEvent from '../AnimatedEvent';
3
3
  import AnimatedStyle, { createOrReuseStyleNode } from '../AnimatedStyle';
4
4
 
5
- import deepEqual from 'fbjs/lib/areEqual';
5
+ import deepEqual from 'lodash.isequal';
6
6
 
7
7
  // This file has been mocked as react-native's `findNodeHandle` is returning undefined value;
8
8
  // and I became easier to mock whole this file instead of mocking RN
@@ -8,7 +8,7 @@ import {
8
8
  lessOrEq,
9
9
  eq,
10
10
  } from '../operators';
11
- import invariant from 'fbjs/lib/invariant';
11
+ import invariant from 'invariant';
12
12
 
13
13
  import AnimatedNode from '../core/AnimatedNode';
14
14
  import { createAnimatedCond as cond } from '../core/AnimatedCond';
@@ -22,7 +22,7 @@ function call(...args) {
22
22
  // the UI thread. We keep separate cache of Regexes for UI and JS using the below
23
23
  // objects, then pick the right cache in getMatchers() method.
24
24
  const jsCachedMatchers = {};
25
- const uiCachedMatchers = !isConfigured() ? null : makeRemote({});
25
+ const uiCachedMatchers = !isConfigured() ? {} : makeRemote({});
26
26
  function getMatchers() {
27
27
  'worklet';
28
28
  const cachedMatchers = _WORKLET
@@ -270,6 +270,7 @@ const names = !isConfigured()
270
270
  });
271
271
  function normalizeColor(color) {
272
272
  'worklet';
273
+ var _a, _b, _c, _d, _e, _f, _g, _h;
273
274
  if (typeof color === 'number') {
274
275
  if (color >>> 0 === color && color >= 0 && color <= 0xffffffff) {
275
276
  return color;
@@ -282,13 +283,13 @@ function normalizeColor(color) {
282
283
  const matchers = getMatchers();
283
284
  let match;
284
285
  // Ordered based on occurrences on Facebook codebase
285
- if ((match = matchers.hex6.exec(color))) {
286
+ if ((match = (_a = matchers === null || matchers === void 0 ? void 0 : matchers.hex6) === null || _a === void 0 ? void 0 : _a.exec(color))) {
286
287
  return Number.parseInt(match[1] + 'ff', 16) >>> 0;
287
288
  }
288
289
  if (names[color] !== undefined) {
289
290
  return names[color];
290
291
  }
291
- if ((match = matchers.rgb.exec(color))) {
292
+ if ((match = (_b = matchers === null || matchers === void 0 ? void 0 : matchers.rgb) === null || _b === void 0 ? void 0 : _b.exec(color))) {
292
293
  return (
293
294
  // b
294
295
  ((parse255(match[1]) << 24) | // r
@@ -297,7 +298,7 @@ function normalizeColor(color) {
297
298
  0x000000ff) >>> // a
298
299
  0);
299
300
  }
300
- if ((match = matchers.rgba.exec(color))) {
301
+ if ((match = (_c = matchers === null || matchers === void 0 ? void 0 : matchers.rgba) === null || _c === void 0 ? void 0 : _c.exec(color))) {
301
302
  return (
302
303
  // b
303
304
  ((parse255(match[1]) << 24) | // r
@@ -306,7 +307,7 @@ function normalizeColor(color) {
306
307
  parse1(match[4])) >>> // a
307
308
  0);
308
309
  }
309
- if ((match = matchers.hex3.exec(color))) {
310
+ if ((match = (_d = matchers === null || matchers === void 0 ? void 0 : matchers.hex3) === null || _d === void 0 ? void 0 : _d.exec(color))) {
310
311
  return (Number.parseInt(match[1] +
311
312
  match[1] + // r
312
313
  match[2] +
@@ -317,10 +318,10 @@ function normalizeColor(color) {
317
318
  16) >>> 0);
318
319
  }
319
320
  // https://drafts.csswg.org/css-color-4/#hex-notation
320
- if ((match = matchers.hex8.exec(color))) {
321
+ if ((match = (_e = matchers === null || matchers === void 0 ? void 0 : matchers.hex8) === null || _e === void 0 ? void 0 : _e.exec(color))) {
321
322
  return Number.parseInt(match[1], 16) >>> 0;
322
323
  }
323
- if ((match = matchers.hex4.exec(color))) {
324
+ if ((match = (_f = matchers === null || matchers === void 0 ? void 0 : matchers.hex4) === null || _f === void 0 ? void 0 : _f.exec(color))) {
324
325
  return (Number.parseInt(match[1] +
325
326
  match[1] + // r
326
327
  match[2] +
@@ -331,7 +332,7 @@ function normalizeColor(color) {
331
332
  match[4], // a
332
333
  16) >>> 0);
333
334
  }
334
- if ((match = matchers.hsl.exec(color))) {
335
+ if ((match = (_g = matchers === null || matchers === void 0 ? void 0 : matchers.hsl) === null || _g === void 0 ? void 0 : _g.exec(color))) {
335
336
  return ((hslToRgb(parse360(match[1]), // h
336
337
  parsePercentage(match[2]), // s
337
338
  parsePercentage(match[3]) // l
@@ -339,7 +340,7 @@ function normalizeColor(color) {
339
340
  0x000000ff) >>> // a
340
341
  0);
341
342
  }
342
- if ((match = matchers.hsla.exec(color))) {
343
+ if ((match = (_h = matchers === null || matchers === void 0 ? void 0 : matchers.hsla) === null || _h === void 0 ? void 0 : _h.exec(color))) {
343
344
  return ((hslToRgb(parse360(match[1]), // h
344
345
  parsePercentage(match[2]), // s
345
346
  parsePercentage(match[3]) // l
@@ -551,9 +552,11 @@ const getInterpolateCacheRGBA = (colors) => {
551
552
  const g = [];
552
553
  const b = [];
553
554
  const a = [];
554
- for (const color of colors) {
555
+ for (let i = 0; i < colors.length; ++i) {
556
+ const color = colors[i];
555
557
  const proocessedColor = processColor(color);
556
- if (proocessedColor) {
558
+ // explicit check in case if processedColor is 0
559
+ if (proocessedColor !== null && proocessedColor !== undefined) {
557
560
  r.push(red(proocessedColor));
558
561
  g.push(green(proocessedColor));
559
562
  b.push(blue(proocessedColor));
@@ -583,7 +586,8 @@ const getInterpolateCacheHSV = (colors) => {
583
586
  const h = [];
584
587
  const s = [];
585
588
  const v = [];
586
- for (const color of colors) {
589
+ for (let i = 0; i < colors.length; ++i) {
590
+ const color = colors[i];
587
591
  const proocessedColor = RGBtoHSV(processColor(color));
588
592
  if (proocessedColor) {
589
593
  h.push(proocessedColor.h);
@@ -1,22 +1,11 @@
1
- /* global _WORKLET _measure _scrollTo */
2
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
3
- // @ts-nocheck
4
1
  import { findNodeHandle } from 'react-native';
2
+ import { isChromeDebugger } from './PlatformChecker';
5
3
  export function getTag(view) {
6
4
  return findNodeHandle(view);
7
5
  }
8
- /**
9
- * fields that can be accessed:
10
- * x
11
- * y
12
- * width
13
- * height
14
- * pageX
15
- * pageY
16
- */
17
6
  export function measure(animatedRef) {
18
7
  'worklet';
19
- if (!_WORKLET) {
8
+ if (!_WORKLET && !isChromeDebugger()) {
20
9
  throw new Error('(measure) method cannot be used on RN side!');
21
10
  }
22
11
  const viewTag = animatedRef();
@@ -28,7 +17,7 @@ export function measure(animatedRef) {
28
17
  }
29
18
  export function scrollTo(animatedRef, x, y, animated) {
30
19
  'worklet';
31
- if (!_WORKLET) {
20
+ if (!_WORKLET && !isChromeDebugger()) {
32
21
  return;
33
22
  }
34
23
  const viewTag = animatedRef();
@@ -1,39 +1,34 @@
1
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
2
- // @ts-nocheck
3
- import { Platform } from 'react-native';
4
1
  const InnerNativeModule = global.__reanimatedModuleProxy;
5
- const NativeReanimated = {
6
- native: true,
7
- useOnlyV1: InnerNativeModule == null,
2
+ export class NativeReanimated {
3
+ constructor(native = true) {
4
+ this.native = native;
5
+ this.useOnlyV1 = InnerNativeModule === null;
6
+ }
8
7
  installCoreFunctions(valueSetter) {
9
8
  return InnerNativeModule.installCoreFunctions(valueSetter);
10
- },
9
+ }
11
10
  makeShareable(value) {
12
11
  return InnerNativeModule.makeShareable(value);
13
- },
12
+ }
14
13
  makeMutable(value) {
15
14
  return InnerNativeModule.makeMutable(value);
16
- },
17
- makeRemote(object) {
15
+ }
16
+ makeRemote(object = {}) {
18
17
  return InnerNativeModule.makeRemote(object);
19
- },
20
- startMapper(mapper, inputs = [], outputs = [], updater, tag, name) {
21
- return InnerNativeModule.startMapper(mapper, inputs, outputs, updater, tag, name);
22
- },
18
+ }
19
+ startMapper(mapper, inputs = [], outputs = [], updater, viewDescriptors) {
20
+ return InnerNativeModule.startMapper(mapper, inputs, outputs, updater, viewDescriptors);
21
+ }
23
22
  stopMapper(mapperId) {
24
23
  return InnerNativeModule.stopMapper(mapperId);
25
- },
24
+ }
26
25
  registerEventHandler(eventHash, eventHandler) {
27
26
  return InnerNativeModule.registerEventHandler(eventHash, eventHandler);
28
- },
29
- unregisterEventHandler(registrationId) {
30
- return InnerNativeModule.unregisterEventHandler(registrationId);
31
- },
27
+ }
28
+ unregisterEventHandler(id) {
29
+ return InnerNativeModule.unregisterEventHandler(id);
30
+ }
32
31
  getViewProp(viewTag, propName, callback) {
33
32
  return InnerNativeModule.getViewProp(viewTag, propName, callback);
34
- },
35
- };
36
- if (NativeReanimated.useOnlyV1 && Platform.OS === 'android') {
37
- console.warn(`If you want to use Reanimated 2 then go through our installation steps https://docs.swmansion.com/react-native-reanimated/docs/installation`);
33
+ }
38
34
  }
39
- export default NativeReanimated;