react-native-reanimated 2.6.0 → 3.0.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (405) hide show
  1. package/Common/cpp/Fabric/FabricUtils.cpp +128 -0
  2. package/Common/cpp/Fabric/ReanimatedUIManagerBinding.cpp +197 -0
  3. package/Common/cpp/NativeModules/NativeReanimatedModule.cpp +311 -6
  4. package/Common/cpp/Registries/EventHandlerRegistry.cpp +14 -1
  5. package/Common/cpp/Registries/NewestShadowNodesRegistry.cpp +68 -0
  6. package/Common/cpp/SharedItems/ShareableValue.cpp +20 -2
  7. package/Common/cpp/Tools/Mapper.cpp +23 -4
  8. package/Common/cpp/Tools/RuntimeDecorator.cpp +92 -46
  9. package/Common/cpp/Tools/Scheduler.cpp +4 -0
  10. package/Common/cpp/headers/Fabric/FabricUtils.h +78 -0
  11. package/Common/cpp/headers/Fabric/ReanimatedUIManagerBinding.h +46 -0
  12. package/Common/cpp/headers/NativeModules/NativeReanimatedModule.h +72 -2
  13. package/Common/cpp/headers/Registries/EventHandlerRegistry.h +8 -0
  14. package/Common/cpp/headers/Registries/NewestShadowNodesRegistry.h +41 -0
  15. package/Common/cpp/headers/SharedItems/SharedParent.h +3 -0
  16. package/Common/cpp/headers/SharedItems/ValueWrapper.h +25 -0
  17. package/Common/cpp/headers/SpecTools/ErrorHandler.h +5 -0
  18. package/Common/cpp/headers/Tools/Mapper.h +1 -1
  19. package/Common/cpp/headers/Tools/PlatformDepMethodsHolder.h +43 -8
  20. package/Common/cpp/headers/Tools/RuntimeDecorator.h +8 -3
  21. package/README.md +4 -0
  22. package/RNReanimated.podspec +22 -11
  23. package/android/CMakeLists.txt +139 -27
  24. package/android/build.gradle +86 -209
  25. package/android/local.properties +1 -0
  26. package/android/src/fabric/java/com/swmansion/reanimated/NativeProxy.java +310 -0
  27. package/android/src/fabric/java/com/swmansion/reanimated/ReaCompatibility.java +25 -0
  28. package/android/src/main/cpp/NativeProxy.cpp +196 -41
  29. package/android/src/main/cpp/headers/NativeProxy.h +45 -7
  30. package/android/src/main/java/com/swmansion/reanimated/NodesManager.java +13 -245
  31. package/android/src/main/java/com/swmansion/reanimated/ReanimatedModule.java +0 -125
  32. package/android/src/main/java/com/swmansion/reanimated/layoutReanimation/AnimationsManager.java +13 -6
  33. package/android/src/main/java/com/swmansion/reanimated/layoutReanimation/LayoutAnimations.java +2 -1
  34. package/android/src/{main → paper}/java/com/swmansion/reanimated/NativeProxy.java +26 -10
  35. package/android/src/paper/java/com/swmansion/reanimated/ReaCompatibility.java +17 -0
  36. package/ios/Fabric/REAInitializerRCTFabricSurface.h +12 -0
  37. package/ios/Fabric/REAInitializerRCTFabricSurface.mm +73 -0
  38. package/ios/LayoutReanimation/REAAnimationsManager.h +1 -1
  39. package/ios/LayoutReanimation/REAAnimationsManager.m +2 -2
  40. package/ios/LayoutReanimation/REASnapshot.m +1 -1
  41. package/ios/LayoutReanimation/REAUIManager.h +1 -1
  42. package/ios/LayoutReanimation/REAUIManager.mm +4 -5
  43. package/ios/REAEventDispatcher.m +1 -2
  44. package/ios/REAModule.h +10 -1
  45. package/ios/REAModule.mm +284 -0
  46. package/ios/REANodesManager.h +27 -52
  47. package/ios/{REANodesManager.m → REANodesManager.mm} +92 -226
  48. package/ios/native/NativeMethods.h +1 -3
  49. package/ios/native/NativeMethods.mm +1 -1
  50. package/ios/native/NativeProxy.h +2 -2
  51. package/ios/native/NativeProxy.mm +162 -32
  52. package/ios/native/REAIOSErrorHandler.h +2 -4
  53. package/ios/native/REAIOSErrorHandler.mm +1 -1
  54. package/ios/native/REAIOSLogger.h +1 -3
  55. package/ios/native/REAIOSLogger.mm +1 -1
  56. package/ios/native/REAIOSScheduler.h +1 -3
  57. package/ios/native/REAIOSScheduler.mm +2 -2
  58. package/ios/native/REAInitializer.h +0 -7
  59. package/ios/native/REAInitializer.mm +14 -6
  60. package/ios/native/UIResponder+Reanimated.h +3 -1
  61. package/ios/native/UIResponder+Reanimated.mm +6 -4
  62. package/ios/sensor/ReanimatedSensor.h +1 -1
  63. package/ios/sensor/ReanimatedSensor.m +1 -1
  64. package/ios/sensor/ReanimatedSensorContainer.h +1 -1
  65. package/ios/sensor/ReanimatedSensorContainer.m +2 -2
  66. package/lib/Animated.js +0 -13
  67. package/lib/ConfigHelper.js +0 -1
  68. package/lib/createAnimatedComponent.js +30 -169
  69. package/lib/index.js +0 -13
  70. package/lib/reanimated2/Easing.js +8 -44
  71. package/lib/reanimated2/NativeMethods.js +20 -3
  72. package/lib/reanimated2/UpdateProps.js +25 -10
  73. package/lib/reanimated2/core.js +4 -37
  74. package/lib/reanimated2/fabricUtils.js +18 -0
  75. package/lib/reanimated2/globals.d.ts +18 -3
  76. package/lib/reanimated2/hook/useAnimatedRef.js +6 -2
  77. package/lib/reanimated2/hook/utils.js +0 -5
  78. package/lib/reanimated2/interpolateColor.js +5 -2
  79. package/lib/reanimated2/interpolation.js +0 -15
  80. package/lib/reanimated2/js-reanimated/index.js +3 -0
  81. package/lib/types/{lib/ConfigHelper.d.ts → ConfigHelper.d.ts} +0 -0
  82. package/lib/types/{lib/ReanimatedEventEmitter.d.ts → ReanimatedEventEmitter.d.ts} +0 -0
  83. package/lib/types/{lib/ReanimatedModule.d.ts → ReanimatedModule.d.ts} +0 -0
  84. package/lib/types/{lib/ReanimatedModule.macos.d.ts → ReanimatedModule.macos.d.ts} +0 -0
  85. package/lib/types/{lib/ReanimatedModule.native.d.ts → ReanimatedModule.native.d.ts} +0 -0
  86. package/lib/types/{lib/ReanimatedModule.windows.d.ts → ReanimatedModule.windows.d.ts} +0 -0
  87. package/lib/types/{lib/ReanimatedModuleCompat.d.ts → ReanimatedModuleCompat.d.ts} +0 -0
  88. package/lib/types/{lib/createAnimatedComponent.d.ts → createAnimatedComponent.d.ts} +0 -0
  89. package/lib/types/{lib/reanimated2 → reanimated2}/Bezier.d.ts +0 -0
  90. package/lib/types/{lib/reanimated2 → reanimated2}/Colors.d.ts +0 -0
  91. package/lib/types/{lib/reanimated2 → reanimated2}/Easing.d.ts +0 -0
  92. package/lib/types/{lib/reanimated2 → reanimated2}/NativeMethods.d.ts +2 -1
  93. package/lib/types/{lib/reanimated2 → reanimated2}/NativeReanimated/NativeReanimated.d.ts +0 -0
  94. package/lib/types/{lib/reanimated2 → reanimated2}/NativeReanimated/index.d.ts +0 -0
  95. package/lib/types/{lib/reanimated2 → reanimated2}/PlatformChecker.d.ts +0 -0
  96. package/lib/types/{lib/reanimated2 → reanimated2}/PropAdapters.d.ts +0 -0
  97. package/lib/types/{lib/reanimated2 → reanimated2}/UpdateProps.d.ts +0 -0
  98. package/lib/types/{lib/reanimated2 → reanimated2}/ViewDescriptorsSet.d.ts +0 -0
  99. package/lib/types/{lib/reanimated2 → reanimated2}/WorkletEventHandler.d.ts +0 -0
  100. package/lib/types/{lib/reanimated2 → reanimated2}/__mocks__/MutableValue.d.ts +0 -0
  101. package/lib/types/{lib/reanimated2 → reanimated2}/__mocks__/NativeReanimated.d.ts +0 -0
  102. package/lib/types/{lib/reanimated2 → reanimated2}/__mocks__/NativeReanimated.native.d.ts +0 -0
  103. package/lib/types/{lib/reanimated2 → reanimated2}/animation/commonTypes.d.ts +0 -0
  104. package/lib/types/{lib/reanimated2 → reanimated2}/animation/decay.d.ts +0 -0
  105. package/lib/types/{lib/reanimated2 → reanimated2}/animation/delay.d.ts +0 -0
  106. package/lib/types/{lib/reanimated2 → reanimated2}/animation/index.d.ts +0 -0
  107. package/lib/types/{lib/reanimated2 → reanimated2}/animation/repeat.d.ts +0 -0
  108. package/lib/types/{lib/reanimated2 → reanimated2}/animation/sequence.d.ts +0 -0
  109. package/lib/types/{lib/reanimated2 → reanimated2}/animation/spring.d.ts +0 -0
  110. package/lib/types/{lib/reanimated2 → reanimated2}/animation/styleAnimation.d.ts +0 -0
  111. package/lib/types/{lib/reanimated2 → reanimated2}/animation/timing.d.ts +0 -0
  112. package/lib/types/{lib/reanimated2 → reanimated2}/animation/util.d.ts +0 -0
  113. package/lib/types/{lib/reanimated2 → reanimated2}/commonTypes.d.ts +2 -2
  114. package/lib/types/{lib/reanimated2 → reanimated2}/component/FlatList.d.ts +0 -0
  115. package/lib/types/{lib/reanimated2 → reanimated2}/component/WrappedComponents.d.ts +0 -0
  116. package/lib/types/{lib/reanimated2 → reanimated2}/component/index.d.ts +0 -0
  117. package/lib/types/{lib/reanimated2 → reanimated2}/core.d.ts +0 -0
  118. package/lib/types/reanimated2/fabricUtils.d.ts +4 -0
  119. package/lib/types/{lib/reanimated2 → reanimated2}/hook/Hooks.d.ts +0 -0
  120. package/lib/types/{lib/reanimated2 → reanimated2}/hook/commonTypes.d.ts +2 -1
  121. package/lib/types/{lib/reanimated2 → reanimated2}/hook/index.d.ts +1 -1
  122. package/lib/types/{lib/reanimated2 → reanimated2}/hook/useAnimatedGestureHandler.d.ts +2 -2
  123. package/lib/types/{lib/reanimated2 → reanimated2}/hook/useAnimatedReaction.d.ts +0 -0
  124. package/lib/types/{lib/reanimated2 → reanimated2}/hook/useAnimatedRef.d.ts +0 -0
  125. package/lib/types/{lib/reanimated2 → reanimated2}/hook/useAnimatedScrollHandler.d.ts +2 -2
  126. package/lib/types/{lib/reanimated2 → reanimated2}/hook/useAnimatedSensor.d.ts +1 -3
  127. package/lib/types/{lib/reanimated2 → reanimated2}/hook/useAnimatedStyle.d.ts +0 -0
  128. package/lib/types/{lib/reanimated2 → reanimated2}/hook/useDerivedValue.d.ts +0 -0
  129. package/lib/types/{lib/reanimated2 → reanimated2}/hook/useSharedValue.d.ts +0 -0
  130. package/lib/types/{lib/reanimated2 → reanimated2}/hook/utils.d.ts +2 -2
  131. package/lib/types/{lib/reanimated2 → reanimated2}/index.d.ts +0 -0
  132. package/lib/types/{lib/reanimated2 → reanimated2}/interpolateColor.d.ts +5 -0
  133. package/lib/types/{lib/reanimated2 → reanimated2}/interpolation.d.ts +1 -4
  134. package/lib/types/{lib/reanimated2 → reanimated2}/jestUtils.d.ts +0 -0
  135. package/lib/types/{lib/reanimated2 → reanimated2}/js-reanimated/JSReanimated.d.ts +0 -0
  136. package/lib/types/{lib/reanimated2 → reanimated2}/js-reanimated/Mapper.d.ts +0 -0
  137. package/lib/types/{lib/reanimated2 → reanimated2}/js-reanimated/MapperRegistry.d.ts +0 -0
  138. package/lib/types/{lib/reanimated2 → reanimated2}/js-reanimated/MutableValue.d.ts +0 -0
  139. package/lib/types/{lib/reanimated2 → reanimated2}/js-reanimated/commonTypes.d.ts +0 -0
  140. package/lib/types/{lib/reanimated2 → reanimated2}/js-reanimated/index.d.ts +0 -0
  141. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/LayoutAnimationRepository.d.ts +0 -0
  142. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/animationBuilder/BaseAnimationBuilder.d.ts +0 -0
  143. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/animationBuilder/ComplexAnimationBuilder.d.ts +0 -0
  144. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/animationBuilder/Keyframe.d.ts +0 -0
  145. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/animationBuilder/commonTypes.d.ts +0 -0
  146. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/animationBuilder/index.d.ts +0 -0
  147. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Bounce.d.ts +0 -0
  148. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Default.d.ts +0 -0
  149. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Fade.d.ts +0 -0
  150. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Flip.d.ts +0 -0
  151. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Lightspeed.d.ts +0 -0
  152. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Pinwheel.d.ts +0 -0
  153. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Roll.d.ts +0 -0
  154. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Rotate.d.ts +0 -0
  155. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Slide.d.ts +0 -0
  156. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Stretch.d.ts +0 -0
  157. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Zoom.d.ts +0 -0
  158. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/index.d.ts +0 -0
  159. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultTransitions/CurvedTransition.d.ts +0 -0
  160. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultTransitions/EntryExitTransition.d.ts +0 -0
  161. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultTransitions/FadingTransition.d.ts +0 -0
  162. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultTransitions/JumpingTransition.d.ts +0 -0
  163. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultTransitions/LinearTransition.d.ts +0 -0
  164. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultTransitions/SequencedTransition.d.ts +0 -0
  165. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultTransitions/index.d.ts +0 -0
  166. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/index.d.ts +0 -0
  167. package/lib/types/{lib/reanimated2 → reanimated2}/mock.d.ts +0 -0
  168. package/lib/types/{lib/reanimated2 → reanimated2}/platform-specific/RNRenderer.d.ts +0 -0
  169. package/lib/types/{lib/reanimated2 → reanimated2}/platform-specific/RNRenderer.web.d.ts +0 -0
  170. package/lib/types/{lib/reanimated2 → reanimated2}/utils.d.ts +0 -0
  171. package/lib/types/{lib/setAndForwardRef.d.ts → setAndForwardRef.d.ts} +0 -0
  172. package/package.json +10 -10
  173. package/plugin.js +29 -33
  174. package/react-native-reanimated.d.ts +15 -3
  175. package/src/Animated.js +0 -13
  176. package/src/ConfigHelper.ts +0 -1
  177. package/src/createAnimatedComponent.tsx +37 -197
  178. package/src/reanimated2/Easing.ts +8 -55
  179. package/src/reanimated2/NativeMethods.ts +39 -7
  180. package/src/reanimated2/UpdateProps.ts +38 -19
  181. package/src/reanimated2/commonTypes.ts +4 -2
  182. package/src/reanimated2/component/FlatList.tsx +8 -5
  183. package/src/reanimated2/core.ts +7 -48
  184. package/src/reanimated2/fabricUtils.ts +27 -0
  185. package/src/reanimated2/globals.d.ts +18 -3
  186. package/src/reanimated2/hook/commonTypes.ts +4 -2
  187. package/src/reanimated2/hook/index.ts +1 -1
  188. package/src/reanimated2/hook/useAnimatedGestureHandler.ts +2 -2
  189. package/src/reanimated2/hook/useAnimatedRef.ts +8 -3
  190. package/src/reanimated2/hook/useAnimatedScrollHandler.ts +2 -2
  191. package/src/reanimated2/hook/useAnimatedSensor.ts +1 -3
  192. package/src/reanimated2/hook/utils.ts +2 -11
  193. package/src/reanimated2/interpolateColor.ts +6 -2
  194. package/src/reanimated2/interpolation.ts +1 -26
  195. package/src/reanimated2/js-reanimated/index.ts +5 -0
  196. package/android/.gradle/7.2/dependencies-accessors/dependencies-accessors.lock +0 -0
  197. package/android/.gradle/7.2/dependencies-accessors/gc.properties +0 -0
  198. package/android/.gradle/7.2/executionHistory/executionHistory.bin +0 -0
  199. package/android/.gradle/7.2/executionHistory/executionHistory.lock +0 -0
  200. package/android/.gradle/7.2/fileChanges/last-build.bin +0 -0
  201. package/android/.gradle/7.2/fileHashes/fileHashes.bin +0 -0
  202. package/android/.gradle/7.2/fileHashes/fileHashes.lock +0 -0
  203. package/android/.gradle/7.2/fileHashes/resourceHashesCache.bin +0 -0
  204. package/android/.gradle/7.2/gc.properties +0 -0
  205. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  206. package/android/.gradle/buildOutputCleanup/cache.properties +0 -2
  207. package/android/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
  208. package/android/.gradle/checksums/checksums.lock +0 -0
  209. package/android/.gradle/checksums/md5-checksums.bin +0 -0
  210. package/android/.gradle/checksums/sha1-checksums.bin +0 -0
  211. package/android/.gradle/vcs-1/gc.properties +0 -0
  212. package/android/react-native-reanimated-64-hermes.aar +0 -0
  213. package/android/react-native-reanimated-64-jsc.aar +0 -0
  214. package/android/react-native-reanimated-65-hermes.aar +0 -0
  215. package/android/react-native-reanimated-65-jsc.aar +0 -0
  216. package/android/react-native-reanimated-66-hermes.aar +0 -0
  217. package/android/react-native-reanimated-66-jsc.aar +0 -0
  218. package/android/react-native-reanimated-67-hermes.aar +0 -0
  219. package/android/react-native-reanimated-67-jsc.aar +0 -0
  220. package/android/react-native-reanimated-68-hermes.aar +0 -0
  221. package/android/react-native-reanimated-68-jsc.aar +0 -0
  222. package/android/src/main/java/com/swmansion/reanimated/UpdateContext.java +0 -11
  223. package/android/src/main/java/com/swmansion/reanimated/nodes/AlwaysNode.java +0 -29
  224. package/android/src/main/java/com/swmansion/reanimated/nodes/BezierNode.java +0 -87
  225. package/android/src/main/java/com/swmansion/reanimated/nodes/BlockNode.java +0 -24
  226. package/android/src/main/java/com/swmansion/reanimated/nodes/CallFuncNode.java +0 -49
  227. package/android/src/main/java/com/swmansion/reanimated/nodes/ClockNode.java +0 -38
  228. package/android/src/main/java/com/swmansion/reanimated/nodes/ClockOpNode.java +0 -73
  229. package/android/src/main/java/com/swmansion/reanimated/nodes/ConcatNode.java +0 -36
  230. package/android/src/main/java/com/swmansion/reanimated/nodes/CondNode.java +0 -41
  231. package/android/src/main/java/com/swmansion/reanimated/nodes/DebugNode.java +0 -33
  232. package/android/src/main/java/com/swmansion/reanimated/nodes/EventNode.java +0 -83
  233. package/android/src/main/java/com/swmansion/reanimated/nodes/FinalNode.java +0 -5
  234. package/android/src/main/java/com/swmansion/reanimated/nodes/FunctionNode.java +0 -20
  235. package/android/src/main/java/com/swmansion/reanimated/nodes/JSCallNode.java +0 -41
  236. package/android/src/main/java/com/swmansion/reanimated/nodes/Node.java +0 -139
  237. package/android/src/main/java/com/swmansion/reanimated/nodes/NoopNode.java +0 -37
  238. package/android/src/main/java/com/swmansion/reanimated/nodes/OperatorNode.java +0 -377
  239. package/android/src/main/java/com/swmansion/reanimated/nodes/ParamNode.java +0 -71
  240. package/android/src/main/java/com/swmansion/reanimated/nodes/PropsNode.java +0 -153
  241. package/android/src/main/java/com/swmansion/reanimated/nodes/SetNode.java +0 -32
  242. package/android/src/main/java/com/swmansion/reanimated/nodes/StyleNode.java +0 -40
  243. package/android/src/main/java/com/swmansion/reanimated/nodes/TransformNode.java +0 -84
  244. package/android/src/main/java/com/swmansion/reanimated/nodes/ValueNode.java +0 -40
  245. package/android/src/main/java/com/swmansion/reanimated/transitions/ChangeTransition.java +0 -84
  246. package/android/src/main/java/com/swmansion/reanimated/transitions/SaneSidePropagation.java +0 -25
  247. package/android/src/main/java/com/swmansion/reanimated/transitions/Scale.java +0 -86
  248. package/android/src/main/java/com/swmansion/reanimated/transitions/TransitionModule.java +0 -41
  249. package/android/src/main/java/com/swmansion/reanimated/transitions/TransitionUtils.java +0 -161
  250. package/ios/Nodes/REAAlwaysNode.h +0 -4
  251. package/ios/Nodes/REAAlwaysNode.m +0 -35
  252. package/ios/Nodes/REABezierNode.h +0 -5
  253. package/ios/Nodes/REABezierNode.m +0 -104
  254. package/ios/Nodes/REABlockNode.h +0 -5
  255. package/ios/Nodes/REABlockNode.m +0 -25
  256. package/ios/Nodes/REACallFuncNode.h +0 -6
  257. package/ios/Nodes/REACallFuncNode.m +0 -69
  258. package/ios/Nodes/REAClockNodes.h +0 -19
  259. package/ios/Nodes/REAClockNodes.m +0 -118
  260. package/ios/Nodes/REAConcatNode.h +0 -5
  261. package/ios/Nodes/REAConcatNode.m +0 -32
  262. package/ios/Nodes/REACondNode.h +0 -5
  263. package/ios/Nodes/REACondNode.m +0 -36
  264. package/ios/Nodes/READebugNode.h +0 -5
  265. package/ios/Nodes/READebugNode.m +0 -30
  266. package/ios/Nodes/REAEventNode.h +0 -9
  267. package/ios/Nodes/REAEventNode.m +0 -35
  268. package/ios/Nodes/REAFunctionNode.h +0 -6
  269. package/ios/Nodes/REAFunctionNode.m +0 -24
  270. package/ios/Nodes/REAJSCallNode.h +0 -5
  271. package/ios/Nodes/REAJSCallNode.m +0 -30
  272. package/ios/Nodes/REANode.h +0 -40
  273. package/ios/Nodes/REANode.m +0 -155
  274. package/ios/Nodes/REAOperatorNode.h +0 -5
  275. package/ios/Nodes/REAOperatorNode.m +0 -115
  276. package/ios/Nodes/REAParamNode.h +0 -10
  277. package/ios/Nodes/REAParamNode.m +0 -79
  278. package/ios/Nodes/REAPropsNode.h +0 -9
  279. package/ios/Nodes/REAPropsNode.m +0 -98
  280. package/ios/Nodes/REASetNode.h +0 -5
  281. package/ios/Nodes/REASetNode.m +0 -34
  282. package/ios/Nodes/REAStyleNode.h +0 -5
  283. package/ios/Nodes/REAStyleNode.m +0 -28
  284. package/ios/Nodes/REATransformNode.h +0 -5
  285. package/ios/Nodes/REATransformNode.m +0 -36
  286. package/ios/Nodes/REAValueNode.h +0 -11
  287. package/ios/Nodes/REAValueNode.m +0 -26
  288. package/ios/REAModule.m +0 -185
  289. package/ios/Transitioning/RCTConvert+REATransition.h +0 -12
  290. package/ios/Transitioning/RCTConvert+REATransition.m +0 -53
  291. package/ios/Transitioning/REAAllTransitions.h +0 -26
  292. package/ios/Transitioning/REAAllTransitions.m +0 -297
  293. package/ios/Transitioning/REATransition.h +0 -65
  294. package/ios/Transitioning/REATransition.m +0 -211
  295. package/ios/Transitioning/REATransitionAnimation.h +0 -17
  296. package/ios/Transitioning/REATransitionAnimation.m +0 -80
  297. package/ios/Transitioning/REATransitionManager.h +0 -9
  298. package/ios/Transitioning/REATransitionManager.m +0 -62
  299. package/ios/Transitioning/REATransitionValues.h +0 -15
  300. package/ios/Transitioning/REATransitionValues.m +0 -26
  301. package/lib/reanimated1/Easing.js +0 -231
  302. package/lib/reanimated1/SpringConfig.js +0 -79
  303. package/lib/reanimated1/Transitioning.js +0 -158
  304. package/lib/reanimated1/animations/Animation.js +0 -32
  305. package/lib/reanimated1/animations/SpringUtils.js +0 -199
  306. package/lib/reanimated1/animations/backwardCompatibleAnimWrapper.js +0 -117
  307. package/lib/reanimated1/animations/decay.js +0 -54
  308. package/lib/reanimated1/animations/spring.js +0 -198
  309. package/lib/reanimated1/animations/timing.js +0 -74
  310. package/lib/reanimated1/base.js +0 -13
  311. package/lib/reanimated1/core/AnimatedAlways.js +0 -33
  312. package/lib/reanimated1/core/AnimatedBezier.js +0 -150
  313. package/lib/reanimated1/core/AnimatedBlock.js +0 -52
  314. package/lib/reanimated1/core/AnimatedCall.js +0 -55
  315. package/lib/reanimated1/core/AnimatedCallFunc.js +0 -72
  316. package/lib/reanimated1/core/AnimatedClock.js +0 -90
  317. package/lib/reanimated1/core/AnimatedClockTest.js +0 -22
  318. package/lib/reanimated1/core/AnimatedCode.js +0 -32
  319. package/lib/reanimated1/core/AnimatedConcat.js +0 -32
  320. package/lib/reanimated1/core/AnimatedCond.js +0 -57
  321. package/lib/reanimated1/core/AnimatedDebug.js +0 -62
  322. package/lib/reanimated1/core/AnimatedEvent.js +0 -126
  323. package/lib/reanimated1/core/AnimatedFunction.js +0 -55
  324. package/lib/reanimated1/core/AnimatedNode.js +0 -223
  325. package/lib/reanimated1/core/AnimatedOperator.js +0 -103
  326. package/lib/reanimated1/core/AnimatedParam.js +0 -88
  327. package/lib/reanimated1/core/AnimatedProps.js +0 -108
  328. package/lib/reanimated1/core/AnimatedSet.js +0 -38
  329. package/lib/reanimated1/core/AnimatedStartClock.js +0 -30
  330. package/lib/reanimated1/core/AnimatedStopClock.js +0 -30
  331. package/lib/reanimated1/core/AnimatedStyle.js +0 -78
  332. package/lib/reanimated1/core/AnimatedTransform.js +0 -78
  333. package/lib/reanimated1/core/AnimatedValue.js +0 -38
  334. package/lib/reanimated1/core/Core.test.js +0 -30
  335. package/lib/reanimated1/core/InternalAnimatedValue.js +0 -87
  336. package/lib/reanimated1/core/__mocks__/AnimatedProps.js +0 -86
  337. package/lib/reanimated1/core/createEventObjectProxyPolyfill.js +0 -44
  338. package/lib/reanimated1/derived/__mocks__/evaluateOnce.js +0 -14
  339. package/lib/reanimated1/derived/acc.js +0 -11
  340. package/lib/reanimated1/derived/color.js +0 -47
  341. package/lib/reanimated1/derived/diff.js +0 -16
  342. package/lib/reanimated1/derived/diffClamp.js +0 -11
  343. package/lib/reanimated1/derived/evaluateOnce.js +0 -35
  344. package/lib/reanimated1/derived/index.js +0 -8
  345. package/lib/reanimated1/derived/interpolate.js +0 -152
  346. package/lib/reanimated1/derived/interpolateColors.js +0 -62
  347. package/lib/reanimated1/derived/onChange.js +0 -14
  348. package/lib/reanimated1/derived/useCode.js +0 -41
  349. package/lib/reanimated1/index.js +0 -53
  350. package/lib/reanimated1/operators.js +0 -35
  351. package/lib/reanimated1/useValue.js +0 -10
  352. package/lib/reanimated1/val.js +0 -3
  353. package/lib/types/react-native-reanimated-tests.d.ts +0 -1
  354. package/src/reanimated1/Easing.js +0 -231
  355. package/src/reanimated1/SpringConfig.js +0 -79
  356. package/src/reanimated1/Transitioning.js +0 -158
  357. package/src/reanimated1/animations/Animation.js +0 -32
  358. package/src/reanimated1/animations/SpringUtils.js +0 -199
  359. package/src/reanimated1/animations/backwardCompatibleAnimWrapper.js +0 -117
  360. package/src/reanimated1/animations/decay.js +0 -54
  361. package/src/reanimated1/animations/spring.js +0 -198
  362. package/src/reanimated1/animations/timing.js +0 -74
  363. package/src/reanimated1/base.js +0 -13
  364. package/src/reanimated1/core/AnimatedAlways.js +0 -33
  365. package/src/reanimated1/core/AnimatedBezier.js +0 -150
  366. package/src/reanimated1/core/AnimatedBlock.js +0 -52
  367. package/src/reanimated1/core/AnimatedCall.js +0 -55
  368. package/src/reanimated1/core/AnimatedCallFunc.js +0 -72
  369. package/src/reanimated1/core/AnimatedClock.js +0 -90
  370. package/src/reanimated1/core/AnimatedClockTest.js +0 -22
  371. package/src/reanimated1/core/AnimatedCode.js +0 -32
  372. package/src/reanimated1/core/AnimatedConcat.js +0 -32
  373. package/src/reanimated1/core/AnimatedCond.js +0 -57
  374. package/src/reanimated1/core/AnimatedDebug.js +0 -62
  375. package/src/reanimated1/core/AnimatedEvent.js +0 -126
  376. package/src/reanimated1/core/AnimatedFunction.js +0 -55
  377. package/src/reanimated1/core/AnimatedNode.js +0 -223
  378. package/src/reanimated1/core/AnimatedOperator.js +0 -103
  379. package/src/reanimated1/core/AnimatedParam.js +0 -88
  380. package/src/reanimated1/core/AnimatedProps.js +0 -108
  381. package/src/reanimated1/core/AnimatedSet.js +0 -38
  382. package/src/reanimated1/core/AnimatedStartClock.js +0 -30
  383. package/src/reanimated1/core/AnimatedStopClock.js +0 -30
  384. package/src/reanimated1/core/AnimatedStyle.js +0 -78
  385. package/src/reanimated1/core/AnimatedTransform.js +0 -78
  386. package/src/reanimated1/core/AnimatedValue.js +0 -38
  387. package/src/reanimated1/core/Core.test.js +0 -30
  388. package/src/reanimated1/core/InternalAnimatedValue.js +0 -87
  389. package/src/reanimated1/core/__mocks__/AnimatedProps.js +0 -86
  390. package/src/reanimated1/core/createEventObjectProxyPolyfill.js +0 -44
  391. package/src/reanimated1/derived/__mocks__/evaluateOnce.js +0 -14
  392. package/src/reanimated1/derived/acc.js +0 -11
  393. package/src/reanimated1/derived/color.js +0 -47
  394. package/src/reanimated1/derived/diff.js +0 -16
  395. package/src/reanimated1/derived/diffClamp.js +0 -11
  396. package/src/reanimated1/derived/evaluateOnce.js +0 -35
  397. package/src/reanimated1/derived/index.js +0 -8
  398. package/src/reanimated1/derived/interpolate.js +0 -152
  399. package/src/reanimated1/derived/interpolateColors.js +0 -62
  400. package/src/reanimated1/derived/onChange.js +0 -14
  401. package/src/reanimated1/derived/useCode.js +0 -41
  402. package/src/reanimated1/index.js +0 -53
  403. package/src/reanimated1/operators.js +0 -35
  404. package/src/reanimated1/useValue.js +0 -10
  405. package/src/reanimated1/val.js +0 -3
@@ -1,126 +0,0 @@
1
- import { Platform, findNodeHandle } from 'react-native';
2
- import ReanimatedModule from '../../ReanimatedModule';
3
-
4
- import AnimatedNode from './AnimatedNode';
5
- import InternalAnimatedValue from './AnimatedValue';
6
- import { createAnimatedAlways } from './AnimatedAlways';
7
-
8
- import invariant from 'invariant';
9
- import createEventObjectProxyPolyfill from './createEventObjectProxyPolyfill';
10
-
11
- function sanitizeArgMapping(argMapping) {
12
- // Find animated values in `argMapping` and create an array representing their
13
- // key path inside the `nativeEvent` object. Ex.: ['contentOffset', 'x'].
14
- const eventMappings = [];
15
- const alwaysNodes = [];
16
-
17
- const getNode = (node) => {
18
- if (
19
- Platform.OS === 'web' ||
20
- Platform.OS === 'windows' ||
21
- Platform.OS === 'macos'
22
- ) {
23
- return node;
24
- }
25
- return node.__nodeID;
26
- };
27
-
28
- const traverse = (value, path) => {
29
- if (value instanceof InternalAnimatedValue) {
30
- eventMappings.push(path.concat(getNode(value)));
31
- } else if (typeof value === 'object' && value.__val) {
32
- eventMappings.push(path.concat(getNode(value.__val)));
33
- } else if (typeof value === 'function') {
34
- const node = new InternalAnimatedValue(0);
35
- alwaysNodes.push(createAnimatedAlways(value(node)));
36
- eventMappings.push(path.concat(getNode(node)));
37
- } else if (typeof value === 'object') {
38
- for (const key in value) {
39
- traverse(value[key], path.concat(key));
40
- }
41
- }
42
- };
43
-
44
- invariant(
45
- argMapping[0] && argMapping[0].nativeEvent,
46
- 'Native driven events only support animated values contained inside `nativeEvent`.'
47
- );
48
-
49
- // Assume that the event containing `nativeEvent` is always the first argument.
50
- const ev = argMapping[0].nativeEvent;
51
- if (typeof ev === 'object') {
52
- traverse(ev, []);
53
- } else if (typeof ev === 'function') {
54
- const proxyHandler = {
55
- get: function (target, name) {
56
- if (name === '__isProxy') {
57
- return true;
58
- }
59
- if (!target[name] && name !== '__val') {
60
- target[name] = new Proxy({}, proxyHandler);
61
- }
62
- return target[name];
63
- },
64
- set: function (target, prop, value) {
65
- if (prop === '__val') {
66
- target[prop] = value;
67
- return true;
68
- }
69
- return false;
70
- },
71
- };
72
-
73
- const proxy =
74
- typeof Proxy === 'function'
75
- ? new Proxy({}, proxyHandler)
76
- : createEventObjectProxyPolyfill();
77
- alwaysNodes.push(createAnimatedAlways(ev(proxy)));
78
- traverse(proxy, []);
79
- }
80
-
81
- return { eventMappings, alwaysNodes };
82
- }
83
-
84
- export default class AnimatedEvent extends AnimatedNode {
85
- constructor(argMapping, _config = {}) {
86
- const { eventMappings, alwaysNodes } = sanitizeArgMapping(argMapping);
87
- super({ type: 'event', argMapping: eventMappings });
88
- this._alwaysNodes = alwaysNodes;
89
- }
90
-
91
- toString() {
92
- return `AnimatedEvent, id: ${this.__nodeID}`;
93
- }
94
-
95
- // The below field is a temporary workaround to make AnimatedEvent object be recognized
96
- // as Animated.event event callback and therefore filtered out from being send over the
97
- // bridge which was causing the object to be frozen in JS.
98
- __isNative = true;
99
-
100
- attachEvent(viewRef, eventName) {
101
- for (let i = 0; i < this._alwaysNodes.length; i++) {
102
- this._alwaysNodes[i].__attach();
103
- }
104
- this.__attach();
105
- const viewTag = findNodeHandle(viewRef);
106
- ReanimatedModule.attachEvent(viewTag, eventName, this.__nodeID);
107
- }
108
-
109
- __onEvaluate() {
110
- return 0;
111
- }
112
-
113
- detachEvent(viewRef, eventName) {
114
- for (let i = 0; i < this._alwaysNodes.length; i++) {
115
- this._alwaysNodes[i].isNativelyInitialized() &&
116
- this._alwaysNodes[i].__detach();
117
- }
118
- const viewTag = findNodeHandle(viewRef);
119
- ReanimatedModule.detachEvent(viewTag, eventName, this.__nodeID);
120
- this.__detach();
121
- }
122
- }
123
-
124
- export function createAnimatedEvent(argMapping, config) {
125
- return new AnimatedEvent(argMapping, config);
126
- }
@@ -1,55 +0,0 @@
1
- import AnimatedNode from './AnimatedNode';
2
- import { createAnimatedCallFunc } from './AnimatedCallFunc';
3
- import { createAnimatedParam } from './AnimatedParam';
4
- import { val } from '../val';
5
- import invariant from 'invariant';
6
-
7
- class AnimatedFunction extends AnimatedNode {
8
- _what;
9
-
10
- constructor(what, ...params) {
11
- invariant(
12
- what instanceof AnimatedNode,
13
- `Reanimated: AnimatedCallFunc 'what' argument should be of type AnimatedNode but got ${what}`
14
- );
15
- super(
16
- {
17
- type: 'func',
18
- what,
19
- },
20
- [what, ...params]
21
- );
22
- this._what = what;
23
- this.__attach();
24
- }
25
-
26
- __onEvaluate() {
27
- return val(this._what);
28
- }
29
-
30
- toString() {
31
- return `AnimatedFunction, id: ${this.__nodeID}`;
32
- }
33
- }
34
-
35
- export function createAnimatedFunction(cb) {
36
- const params = new Array(cb.length);
37
- for (let i = 0; i < params.length; i++) {
38
- params[i] = createAnimatedParam();
39
- }
40
- // eslint-disable-next-line node/no-callback-literal
41
- const what = cb(...params);
42
- const func = new AnimatedFunction(what, ...params);
43
- return (...args) => {
44
- if (args.length !== params.length) {
45
- throw new Error(
46
- 'Parameter mismatch when calling reanimated function. Expected ' +
47
- params.length +
48
- ' parameters, got ' +
49
- args.length +
50
- '.'
51
- );
52
- }
53
- return createAnimatedCallFunc(func, args, params);
54
- };
55
- }
@@ -1,223 +0,0 @@
1
- import ReanimatedModule from '../../ReanimatedModule';
2
- import { Platform } from 'react-native';
3
-
4
- const UPDATED_NODES = [];
5
-
6
- let loopID = 1;
7
- let propUpdatesEnqueued = null;
8
- let nodeCount = 0;
9
- let callID = '';
10
-
11
- export function getCallID() {
12
- return callID;
13
- }
14
-
15
- export function setCallID(nextCallID) {
16
- callID = nextCallID;
17
- }
18
-
19
- function sanitizeConfig(config) {
20
- if (
21
- Platform.OS === 'web' ||
22
- Platform.OS === 'windows' ||
23
- Platform.OS === 'macos' ||
24
- ['undefined', 'string', 'function', 'boolean', 'number'].includes(
25
- typeof config
26
- )
27
- ) {
28
- return config;
29
- } else if (Array.isArray(config)) {
30
- return config.map(sanitizeConfig);
31
- } else if (config instanceof AnimatedNode) {
32
- return config.__nodeID;
33
- } else if (typeof config === 'object') {
34
- const output = {};
35
- for (const property in config) {
36
- if (property in config) {
37
- output[property] = sanitizeConfig(config[property]);
38
- }
39
- }
40
- return output;
41
- }
42
- // unhandled
43
- return config;
44
- }
45
-
46
- function runPropUpdates() {
47
- const visitedNodes = new Set();
48
- const findAndUpdateNodes = (node) => {
49
- if (!node) {
50
- console.warn('findAndUpdateNodes was passed a nullish node');
51
- return;
52
- }
53
-
54
- if (visitedNodes.has(node)) {
55
- return;
56
- } else {
57
- visitedNodes.add(node);
58
- }
59
- if (typeof node.update === 'function') {
60
- node.update();
61
- } else {
62
- const nodes = node.__getChildren();
63
- if (nodes) {
64
- for (let i = 0, l = nodes.length; i < l; i++) {
65
- findAndUpdateNodes(nodes[i]);
66
- }
67
- }
68
- }
69
- };
70
- for (let i = 0; i < UPDATED_NODES.length; i++) {
71
- const node = UPDATED_NODES[i];
72
- findAndUpdateNodes(node);
73
- }
74
- UPDATED_NODES.length = 0; // clear array
75
- propUpdatesEnqueued = null;
76
- loopID += 1;
77
- }
78
-
79
- const scheduleUpdates =
80
- Platform.OS === 'web' ? requestAnimationFrame : setImmediate;
81
-
82
- export default class AnimatedNode {
83
- __nodeID;
84
- __lastLoopID = { '': -1 };
85
- __memoizedValue = { '': null };
86
- __children = [];
87
-
88
- constructor(nodeConfig, inputNodes) {
89
- this.__nodeID = ++nodeCount;
90
- this.__nodeConfig = sanitizeConfig(nodeConfig);
91
- this.__initialized = false;
92
- this.__inputNodes =
93
- inputNodes && inputNodes.filter((node) => node instanceof AnimatedNode);
94
- }
95
-
96
- toString() {
97
- return `AnimatedNode, id: ${this.__nodeID}`;
98
- }
99
-
100
- __attach() {
101
- this.__nativeInitialize();
102
-
103
- const nodes = this.__inputNodes;
104
-
105
- if (nodes) {
106
- for (let i = 0, l = nodes.length; i < l; i++) {
107
- nodes[i].__addChild(this);
108
- }
109
- }
110
- }
111
-
112
- __detach() {
113
- const nodes = this.__inputNodes;
114
-
115
- if (nodes) {
116
- for (let i = 0, l = nodes.length; i < l; i++) {
117
- nodes[i].__removeChild(this);
118
- }
119
- }
120
-
121
- this.__nativeTearDown();
122
- }
123
-
124
- __getValue() {
125
- if (!(callID in this.__lastLoopID) || this.__lastLoopID[callID] < loopID) {
126
- this.__lastLoopID[callID] = loopID;
127
- const result = this.__onEvaluate();
128
- this.__memoizedValue[callID] = result;
129
- return result;
130
- }
131
- return this.__memoizedValue[callID];
132
- }
133
-
134
- __forceUpdateCache(newValue) {
135
- this.__memoizedValue[callID] = newValue;
136
- this.__markUpdated();
137
- }
138
-
139
- __dangerouslyRescheduleEvaluate() {
140
- this.__lastLoopID[callID] = -1;
141
- this.__markUpdated();
142
- }
143
-
144
- __markUpdated() {
145
- UPDATED_NODES.push(this);
146
- if (!propUpdatesEnqueued) {
147
- propUpdatesEnqueued = scheduleUpdates(runPropUpdates);
148
- }
149
- }
150
-
151
- __nativeInitialize() {
152
- if (!this.__initialized) {
153
- ReanimatedModule.createNode(this.__nodeID, { ...this.__nodeConfig });
154
- this.__initialized = true;
155
- }
156
- }
157
-
158
- __nativeTearDown() {
159
- if (this.__initialized) {
160
- ReanimatedModule.dropNode(this.__nodeID);
161
- this.__initialized = false;
162
- }
163
- }
164
-
165
- isNativelyInitialized() {
166
- return this.__initialized;
167
- }
168
-
169
- __onEvaluate() {
170
- throw new Error('Missing implementation of onEvaluate');
171
- }
172
-
173
- __getProps() {
174
- return this.__getValue();
175
- }
176
-
177
- __getChildren() {
178
- return this.__children;
179
- }
180
-
181
- __addChild(child) {
182
- if (this.__children.length === 0) {
183
- this.__attach();
184
- }
185
- this.__children.push(child);
186
- child.__nativeInitialize();
187
-
188
- if (ReanimatedModule.connectNodes) {
189
- ReanimatedModule.connectNodes(this.__nodeID, child.__nodeID);
190
- } else {
191
- child.__dangerouslyRescheduleEvaluate();
192
- }
193
- }
194
-
195
- __removeChild(child) {
196
- const index = this.__children.indexOf(child);
197
- if (index === -1) {
198
- console.warn("Trying to remove a child that doesn't exist");
199
- return;
200
- }
201
-
202
- if (ReanimatedModule.disconnectNodes) {
203
- ReanimatedModule.disconnectNodes(this.__nodeID, child.__nodeID);
204
- }
205
-
206
- this.__children.splice(index, 1);
207
- if (this.__children.length === 0) {
208
- this.__detach();
209
- }
210
- }
211
-
212
- _connectAnimatedView(nativeViewTag) {
213
- if (ReanimatedModule.connectNodeToView) {
214
- ReanimatedModule.connectNodeToView(this.__nodeID, nativeViewTag);
215
- } else {
216
- this.__dangerouslyRescheduleEvaluate();
217
- }
218
- }
219
-
220
- _disconnectAnimatedView(nativeViewTag) {
221
- ReanimatedModule.disconnectNodeFromView(this.__nodeID, nativeViewTag);
222
- }
223
- }
@@ -1,103 +0,0 @@
1
- import AnimatedNode from './AnimatedNode';
2
- import { val } from '../val';
3
-
4
- import invariant from 'invariant';
5
- import { adapt } from '../core/AnimatedBlock';
6
-
7
- function reduce(fn) {
8
- return (input) => input.reduce((a, b) => fn(val(a), val(b)));
9
- }
10
-
11
- function reduceFrom(fn, initialValue) {
12
- return (input) => input.reduce((a, b) => fn(val(a), val(b)), initialValue);
13
- }
14
-
15
- function infix(fn) {
16
- return (input) => fn(val(input[0]), val(input[1]));
17
- }
18
-
19
- function single(fn) {
20
- return (input) => fn(val(input[0]));
21
- }
22
-
23
- const OPERATIONS = {
24
- // arithmetic
25
- add: reduce((a, b) => a + b),
26
- sub: reduce((a, b) => a - b),
27
- multiply: reduce((a, b) => a * b),
28
- divide: reduce((a, b) => a / b),
29
- pow: reduce((a, b) => Math.pow(a, b)),
30
- modulo: reduce((a, b) => ((a % b) + b) % b),
31
- sqrt: single((a) => Math.sqrt(a)),
32
- log: single((a) => Math.log(a)),
33
- sin: single((a) => Math.sin(a)),
34
- cos: single((a) => Math.cos(a)),
35
- tan: single((a) => Math.tan(a)),
36
- acos: single((a) => Math.acos(a)),
37
- asin: single((a) => Math.asin(a)),
38
- atan: single((a) => Math.atan(a)),
39
- exp: single((a) => Math.exp(a)),
40
- round: single((a) => Math.round(a)),
41
- abs: single((a) => Math.abs(a)),
42
- ceil: single((a) => Math.ceil(a)),
43
- floor: single((a) => Math.floor(a)),
44
- max: reduce((a, b) => Math.max(a, b)),
45
- min: reduce((a, b) => Math.min(a, b)),
46
-
47
- // logical
48
- and: reduceFrom((a, b) => a && b, true),
49
- or: reduceFrom((a, b) => a || b, false),
50
- not: single((a) => !a),
51
- defined: single((a) => a !== null && a !== undefined && !isNaN(a)),
52
-
53
- // comparing
54
- lessThan: infix((a, b) => a < b),
55
- /* eslint-disable-next-line eqeqeq */
56
- eq: infix((a, b) => a == b),
57
- greaterThan: infix((a, b) => a > b),
58
- lessOrEq: infix((a, b) => a <= b),
59
- greaterOrEq: infix((a, b) => a >= b),
60
- /* eslint-disable-next-line eqeqeq */
61
- neq: infix((a, b) => a != b),
62
- };
63
-
64
- class AnimatedOperator extends AnimatedNode {
65
- _input;
66
- _op;
67
- _operation;
68
-
69
- constructor(operator, input) {
70
- invariant(
71
- typeof operator === 'string',
72
- `Reanimated: Animated.operator node first argument should be of type String, but got: ${operator}`
73
- );
74
- invariant(
75
- input.every(
76
- (el) =>
77
- el instanceof AnimatedNode ||
78
- typeof el === 'string' ||
79
- typeof el === 'number'
80
- ),
81
- `Reanimated: Animated.operator node second argument should be one or more of type AnimatedNode, String or Number but got ${input}`
82
- );
83
- super({ type: 'op', op: operator, input }, input);
84
- this._op = operator;
85
- this._input = input;
86
- }
87
-
88
- toString() {
89
- return `AnimatedOperator, id: ${this.__nodeID}`;
90
- }
91
-
92
- __onEvaluate() {
93
- if (!this._operation) {
94
- this._operation = OPERATIONS[this._op];
95
- invariant(this._operation, `Illegal operator '%s'`, this._op);
96
- }
97
- return this._operation(this._input);
98
- }
99
- }
100
-
101
- export function createAnimatedOperator(name) {
102
- return (...args) => new AnimatedOperator(name, args.map(adapt));
103
- }
@@ -1,88 +0,0 @@
1
- import invariant from 'invariant';
2
- import AnimatedNode, { getCallID, setCallID } from './AnimatedNode';
3
- import AnimatedClock from './AnimatedClock';
4
- import { val } from '../val';
5
-
6
- export class AnimatedParam extends AnimatedNode {
7
- argsStack = [];
8
- _prevCallID;
9
-
10
- constructor() {
11
- super({ type: 'param' }, []);
12
- this.__attach();
13
- }
14
-
15
- beginContext(ref, prevCallID) {
16
- this._prevCallID = prevCallID;
17
- this.argsStack.push(ref);
18
- }
19
-
20
- endContext() {
21
- this.argsStack.pop();
22
- }
23
-
24
- _getTopNode() {
25
- if (this.argsStack.length === 0)
26
- throw new Error(`param: Invocation failed because argsStack is empty`);
27
- const top = this.argsStack[this.argsStack.length - 1];
28
- return top;
29
- }
30
-
31
- setValue(value) {
32
- const top = this._getTopNode();
33
- if (top.setValue) {
34
- const callID = getCallID();
35
- setCallID(this._prevCallID);
36
- top.setValue(value);
37
- setCallID(callID);
38
- } else {
39
- throw new Error(
40
- `param: setValue(${value}) failed because the top element has no known method for updating it's current value.`
41
- );
42
- }
43
- }
44
-
45
- __onEvaluate() {
46
- const callID = getCallID();
47
- setCallID(this._prevCallID);
48
- const top = this._getTopNode();
49
- const value = val(top);
50
- setCallID(callID);
51
- return value;
52
- }
53
-
54
- start() {
55
- const node = this._getTopNode();
56
- invariant(
57
- node instanceof AnimatedClock || node instanceof AnimatedParam,
58
- `param: top node should be of type AnimatedClock but got ${node}`
59
- );
60
- node.start();
61
- }
62
-
63
- stop() {
64
- const node = this._getTopNode();
65
- invariant(
66
- node instanceof AnimatedClock || node instanceof AnimatedParam,
67
- `param: top node should be of type AnimatedClock but got ${node}`
68
- );
69
- node.stop();
70
- }
71
-
72
- isRunning() {
73
- const node = this._getTopNode();
74
-
75
- if (node instanceof AnimatedParam) {
76
- return node.isRunning();
77
- }
78
- invariant(
79
- node instanceof AnimatedClock,
80
- `param: top node should be of type AnimatedClock but got ${node}`
81
- );
82
- return node.isStarted();
83
- }
84
- }
85
-
86
- export function createAnimatedParam() {
87
- return new AnimatedParam();
88
- }
@@ -1,108 +0,0 @@
1
- import { findNodeHandle } from 'react-native';
2
-
3
- import AnimatedNode from './AnimatedNode';
4
- import AnimatedEvent from './AnimatedEvent';
5
- import { createOrReuseStyleNode } from './AnimatedStyle';
6
-
7
- import invariant from 'invariant';
8
- import deepEqual from 'lodash.isequal';
9
- import { val } from '../val';
10
-
11
- function sanitizeProps(inputProps) {
12
- let props;
13
- for (const key in inputProps) {
14
- const value = inputProps[key];
15
- if (value instanceof AnimatedNode && !(value instanceof AnimatedEvent)) {
16
- if (props === undefined) {
17
- props = {};
18
- }
19
- props[key] = value.__nodeID;
20
- }
21
- }
22
- return props;
23
- }
24
-
25
- export function createOrReusePropsNode(props, callback, oldNode) {
26
- if (props.style) {
27
- const style = createOrReuseStyleNode(
28
- props.style,
29
- oldNode && oldNode._props.style
30
- );
31
- if (style) {
32
- props = {
33
- ...props,
34
- style,
35
- };
36
- }
37
- }
38
- const config = sanitizeProps(props);
39
- if (config === undefined) {
40
- return undefined;
41
- }
42
- if (oldNode && deepEqual(config, oldNode._config)) {
43
- return oldNode;
44
- }
45
- return new AnimatedProps(props, config, callback);
46
- }
47
-
48
- class AnimatedProps extends AnimatedNode {
49
- constructor(props, config, callback) {
50
- super(
51
- { type: 'props', props: config },
52
- Object.values(props).filter((n) => !(n instanceof AnimatedEvent))
53
- );
54
- this._config = config;
55
- this._props = props;
56
- this._callback = callback;
57
- this.__attach();
58
- }
59
-
60
- toString() {
61
- return `AnimatedProps, id: ${this.__nodeID}`;
62
- }
63
-
64
- __onEvaluate() {
65
- const props = {};
66
- for (const key in this._props) {
67
- const value = this._props[key];
68
- if (value instanceof AnimatedNode) {
69
- props[key] = value.__getValue();
70
- }
71
- }
72
- return props;
73
- }
74
-
75
- __detach() {
76
- const nativeViewTag = findNodeHandle(this._animatedView);
77
- invariant(
78
- nativeViewTag != null,
79
- 'Unable to locate attached view in the native tree'
80
- );
81
- this._disconnectAnimatedView(nativeViewTag);
82
- super.__detach();
83
- }
84
-
85
- update() {
86
- this._callback();
87
-
88
- if (!this._animatedView) {
89
- return;
90
- }
91
-
92
- val(this);
93
- }
94
-
95
- setNativeView(animatedView) {
96
- if (this._animatedView === animatedView) {
97
- return;
98
- }
99
- this._animatedView = animatedView;
100
-
101
- const nativeViewTag = findNodeHandle(this._animatedView);
102
- invariant(
103
- nativeViewTag != null,
104
- 'Unable to locate attached view in the native tree'
105
- );
106
- this._connectAnimatedView(nativeViewTag);
107
- }
108
- }