react-native-reanimated 3.0.2 → 3.1.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 (473) hide show
  1. package/Common/cpp/Fabric/FabricUtils.h +1 -1
  2. package/Common/cpp/NativeModules/NativeReanimatedModule.cpp +38 -27
  3. package/Common/cpp/SharedItems/Shareables.h +22 -0
  4. package/Common/cpp/Tools/PlatformDepMethodsHolder.h +2 -0
  5. package/Common/cpp/Tools/RuntimeDecorator.cpp +4 -1
  6. package/Common/cpp/Tools/RuntimeDecorator.h +2 -1
  7. package/Common/cpp/Tools/SingleInstanceChecker.h +14 -2
  8. package/RNReanimated.podspec +5 -2
  9. package/android/CMakeLists.txt +4 -0
  10. package/android/build.gradle +18 -10
  11. package/android/src/main/cpp/NativeProxy.cpp +316 -337
  12. package/android/src/main/cpp/NativeProxy.h +53 -11
  13. package/android/src/main/java/com/swmansion/reanimated/NativeMethodsHelper.java +7 -12
  14. package/android/src/main/java/com/swmansion/reanimated/NodesManager.java +11 -8
  15. package/android/src/main/java/com/swmansion/reanimated/nativeProxy/NativeProxyCommon.java +21 -14
  16. package/android/src/paper/java/com/swmansion/reanimated/NativeProxy.java +0 -3
  17. package/ios/Fabric/REAInitializerRCTFabricSurface.mm +1 -0
  18. package/ios/REANodesManager.h +1 -0
  19. package/ios/REANodesManager.mm +30 -4
  20. package/ios/keyboardObserver/REAKeyboardEventObserver.m +51 -130
  21. package/ios/native/NativeMethods.mm +1 -1
  22. package/ios/native/NativeProxy.mm +4 -1
  23. package/ios/native/REAIOSErrorHandler.mm +1 -1
  24. package/ios/native/REAIOSLogger.mm +1 -1
  25. package/ios/native/REAIOSScheduler.mm +1 -1
  26. package/ios/native/REAInitializer.mm +1 -1
  27. package/ios/native/REAMessageThread.mm +2 -2
  28. package/lib/commonjs/Animated.js +0 -8
  29. package/lib/commonjs/Animated.js.map +1 -1
  30. package/lib/commonjs/ConfigHelper.js +8 -19
  31. package/lib/commonjs/ConfigHelper.js.map +1 -1
  32. package/lib/commonjs/createAnimatedComponent.js +20 -158
  33. package/lib/commonjs/createAnimatedComponent.js.map +1 -1
  34. package/lib/commonjs/index.js +0 -9
  35. package/lib/commonjs/index.js.map +1 -1
  36. package/lib/commonjs/index.web.js +0 -7
  37. package/lib/commonjs/index.web.js.map +1 -1
  38. package/lib/commonjs/reanimated2/Bezier.js +14 -34
  39. package/lib/commonjs/reanimated2/Bezier.js.map +1 -1
  40. package/lib/commonjs/reanimated2/Colors.js +60 -132
  41. package/lib/commonjs/reanimated2/Colors.js.map +1 -1
  42. package/lib/commonjs/reanimated2/Easing.js +81 -34
  43. package/lib/commonjs/reanimated2/Easing.js.map +1 -1
  44. package/lib/commonjs/reanimated2/NativeMethods.js +8 -20
  45. package/lib/commonjs/reanimated2/NativeMethods.js.map +1 -1
  46. package/lib/commonjs/reanimated2/NativeReanimated/NativeReanimated.js +5 -31
  47. package/lib/commonjs/reanimated2/NativeReanimated/NativeReanimated.js.map +1 -1
  48. package/lib/commonjs/reanimated2/NativeReanimated/index.js +0 -7
  49. package/lib/commonjs/reanimated2/NativeReanimated/index.js.map +1 -1
  50. package/lib/commonjs/reanimated2/PlatformChecker.js +0 -6
  51. package/lib/commonjs/reanimated2/PlatformChecker.js.map +1 -1
  52. package/lib/commonjs/reanimated2/PropAdapters.js +10 -12
  53. package/lib/commonjs/reanimated2/PropAdapters.js.map +1 -1
  54. package/lib/commonjs/reanimated2/UpdateProps.js +3 -12
  55. package/lib/commonjs/reanimated2/UpdateProps.js.map +1 -1
  56. package/lib/commonjs/reanimated2/ViewDescriptorsSet.js +0 -10
  57. package/lib/commonjs/reanimated2/ViewDescriptorsSet.js.map +1 -1
  58. package/lib/commonjs/reanimated2/WorkletEventHandler.js +5 -22
  59. package/lib/commonjs/reanimated2/WorkletEventHandler.js.map +1 -1
  60. package/lib/commonjs/reanimated2/animation/decay.js +7 -18
  61. package/lib/commonjs/reanimated2/animation/decay.js.map +1 -1
  62. package/lib/commonjs/reanimated2/animation/delay.js +0 -11
  63. package/lib/commonjs/reanimated2/animation/delay.js.map +1 -1
  64. package/lib/commonjs/reanimated2/animation/index.js +0 -8
  65. package/lib/commonjs/reanimated2/animation/index.js.map +1 -1
  66. package/lib/commonjs/reanimated2/animation/repeat.js +6 -22
  67. package/lib/commonjs/reanimated2/animation/repeat.js.map +1 -1
  68. package/lib/commonjs/reanimated2/animation/sequence.js +3 -20
  69. package/lib/commonjs/reanimated2/animation/sequence.js.map +1 -1
  70. package/lib/commonjs/reanimated2/animation/spring.js +11 -23
  71. package/lib/commonjs/reanimated2/animation/spring.js.map +1 -1
  72. package/lib/commonjs/reanimated2/animation/styleAnimation.js +3 -35
  73. package/lib/commonjs/reanimated2/animation/styleAnimation.js.map +1 -1
  74. package/lib/commonjs/reanimated2/animation/timing.js +0 -11
  75. package/lib/commonjs/reanimated2/animation/timing.js.map +1 -1
  76. package/lib/commonjs/reanimated2/animation/util.js +11 -41
  77. package/lib/commonjs/reanimated2/animation/util.js.map +1 -1
  78. package/lib/commonjs/reanimated2/commonTypes.js +16 -23
  79. package/lib/commonjs/reanimated2/commonTypes.js.map +1 -1
  80. package/lib/commonjs/reanimated2/component/FlatList.js +0 -16
  81. package/lib/commonjs/reanimated2/component/FlatList.js.map +1 -1
  82. package/lib/commonjs/reanimated2/component/Image.js +0 -4
  83. package/lib/commonjs/reanimated2/component/Image.js.map +1 -1
  84. package/lib/commonjs/reanimated2/component/ScrollView.js +0 -4
  85. package/lib/commonjs/reanimated2/component/ScrollView.js.map +1 -1
  86. package/lib/commonjs/reanimated2/component/Text.js +0 -4
  87. package/lib/commonjs/reanimated2/component/Text.js.map +1 -1
  88. package/lib/commonjs/reanimated2/component/View.js +0 -4
  89. package/lib/commonjs/reanimated2/component/View.js.map +1 -1
  90. package/lib/commonjs/reanimated2/core.js +6 -48
  91. package/lib/commonjs/reanimated2/core.js.map +1 -1
  92. package/lib/commonjs/reanimated2/errors.js +3 -14
  93. package/lib/commonjs/reanimated2/errors.js.map +1 -1
  94. package/lib/commonjs/reanimated2/fabricUtils.js +3 -5
  95. package/lib/commonjs/reanimated2/fabricUtils.js.map +1 -1
  96. package/lib/commonjs/reanimated2/fabricUtils.web.js +1 -3
  97. package/lib/commonjs/reanimated2/fabricUtils.web.js.map +1 -1
  98. package/lib/commonjs/reanimated2/frameCallback/FrameCallbackRegistryJS.js +3 -12
  99. package/lib/commonjs/reanimated2/frameCallback/FrameCallbackRegistryJS.js.map +1 -1
  100. package/lib/commonjs/reanimated2/frameCallback/FrameCallbackRegistryUI.js +13 -17
  101. package/lib/commonjs/reanimated2/frameCallback/FrameCallbackRegistryUI.js.map +1 -1
  102. package/lib/commonjs/reanimated2/globals.d.js.map +1 -1
  103. package/lib/commonjs/reanimated2/hook/Hooks.js +0 -5
  104. package/lib/commonjs/reanimated2/hook/Hooks.js.map +1 -1
  105. package/lib/commonjs/reanimated2/hook/commonTypes.js.map +1 -1
  106. package/lib/commonjs/reanimated2/hook/index.js +0 -12
  107. package/lib/commonjs/reanimated2/hook/index.js.map +1 -1
  108. package/lib/commonjs/reanimated2/hook/useAnimatedGestureHandler.js +4 -17
  109. package/lib/commonjs/reanimated2/hook/useAnimatedGestureHandler.js.map +1 -1
  110. package/lib/commonjs/reanimated2/hook/useAnimatedKeyboard.js +2 -9
  111. package/lib/commonjs/reanimated2/hook/useAnimatedKeyboard.js.map +1 -1
  112. package/lib/commonjs/reanimated2/hook/useAnimatedReaction.js +1 -11
  113. package/lib/commonjs/reanimated2/hook/useAnimatedReaction.js.map +1 -1
  114. package/lib/commonjs/reanimated2/hook/useAnimatedRef.js +0 -12
  115. package/lib/commonjs/reanimated2/hook/useAnimatedRef.js.map +1 -1
  116. package/lib/commonjs/reanimated2/hook/useAnimatedScrollHandler.js +2 -9
  117. package/lib/commonjs/reanimated2/hook/useAnimatedScrollHandler.js.map +1 -1
  118. package/lib/commonjs/reanimated2/hook/useAnimatedSensor.js +8 -23
  119. package/lib/commonjs/reanimated2/hook/useAnimatedSensor.js.map +1 -1
  120. package/lib/commonjs/reanimated2/hook/useAnimatedStyle.js +13 -71
  121. package/lib/commonjs/reanimated2/hook/useAnimatedStyle.js.map +1 -1
  122. package/lib/commonjs/reanimated2/hook/useDerivedValue.js +4 -13
  123. package/lib/commonjs/reanimated2/hook/useDerivedValue.js.map +1 -1
  124. package/lib/commonjs/reanimated2/hook/useFrameCallback.js +0 -5
  125. package/lib/commonjs/reanimated2/hook/useFrameCallback.js.map +1 -1
  126. package/lib/commonjs/reanimated2/hook/useScrollViewOffset.js +0 -7
  127. package/lib/commonjs/reanimated2/hook/useScrollViewOffset.js.map +1 -1
  128. package/lib/commonjs/reanimated2/hook/useSharedValue.js +2 -7
  129. package/lib/commonjs/reanimated2/hook/useSharedValue.js.map +1 -1
  130. package/lib/commonjs/reanimated2/hook/utils.js +8 -39
  131. package/lib/commonjs/reanimated2/hook/utils.js.map +1 -1
  132. package/lib/commonjs/reanimated2/index.js +0 -26
  133. package/lib/commonjs/reanimated2/index.js.map +1 -1
  134. package/lib/commonjs/reanimated2/initializers.js +21 -43
  135. package/lib/commonjs/reanimated2/initializers.js.map +1 -1
  136. package/lib/commonjs/reanimated2/interpolateColor.js +6 -43
  137. package/lib/commonjs/reanimated2/interpolateColor.js.map +1 -1
  138. package/lib/commonjs/reanimated2/interpolation.js +14 -29
  139. package/lib/commonjs/reanimated2/interpolation.js.map +1 -1
  140. package/lib/commonjs/reanimated2/jestUtils.js +11 -44
  141. package/lib/commonjs/reanimated2/jestUtils.js.map +1 -1
  142. package/lib/commonjs/reanimated2/js-reanimated/JSReanimated.js +15 -39
  143. package/lib/commonjs/reanimated2/js-reanimated/JSReanimated.js.map +1 -1
  144. package/lib/commonjs/reanimated2/js-reanimated/Mapper.js +9 -28
  145. package/lib/commonjs/reanimated2/js-reanimated/Mapper.js.map +1 -1
  146. package/lib/commonjs/reanimated2/js-reanimated/MapperRegistry.js +7 -37
  147. package/lib/commonjs/reanimated2/js-reanimated/MapperRegistry.js.map +1 -1
  148. package/lib/commonjs/reanimated2/js-reanimated/MutableValue.js +5 -18
  149. package/lib/commonjs/reanimated2/js-reanimated/MutableValue.js.map +1 -1
  150. package/lib/commonjs/reanimated2/js-reanimated/global.js +2 -9
  151. package/lib/commonjs/reanimated2/js-reanimated/global.js.map +1 -1
  152. package/lib/commonjs/reanimated2/js-reanimated/index.js +3 -14
  153. package/lib/commonjs/reanimated2/js-reanimated/index.js.map +1 -1
  154. package/lib/commonjs/reanimated2/layoutReanimation/animationBuilder/BaseAnimationBuilder.js +7 -26
  155. package/lib/commonjs/reanimated2/layoutReanimation/animationBuilder/BaseAnimationBuilder.js.map +1 -1
  156. package/lib/commonjs/reanimated2/layoutReanimation/animationBuilder/ComplexAnimationBuilder.js +3 -49
  157. package/lib/commonjs/reanimated2/layoutReanimation/animationBuilder/ComplexAnimationBuilder.js.map +1 -1
  158. package/lib/commonjs/reanimated2/layoutReanimation/animationBuilder/Keyframe.js +7 -43
  159. package/lib/commonjs/reanimated2/layoutReanimation/animationBuilder/Keyframe.js.map +1 -1
  160. package/lib/commonjs/reanimated2/layoutReanimation/animationBuilder/commonTypes.js +4 -5
  161. package/lib/commonjs/reanimated2/layoutReanimation/animationBuilder/commonTypes.js.map +1 -1
  162. package/lib/commonjs/reanimated2/layoutReanimation/animationBuilder/index.js +0 -4
  163. package/lib/commonjs/reanimated2/layoutReanimation/animationBuilder/index.js.map +1 -1
  164. package/lib/commonjs/reanimated2/layoutReanimation/animationsManager.js +4 -23
  165. package/lib/commonjs/reanimated2/layoutReanimation/animationsManager.js.map +1 -1
  166. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Bounce.js +3 -74
  167. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Bounce.js.map +1 -1
  168. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Fade.js +3 -53
  169. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Fade.js.map +1 -1
  170. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Flip.js +3 -63
  171. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Flip.js.map +1 -1
  172. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Lightspeed.js +7 -26
  173. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Lightspeed.js.map +1 -1
  174. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Pinwheel.js +3 -13
  175. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Pinwheel.js.map +1 -1
  176. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Roll.js +3 -23
  177. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Roll.js.map +1 -1
  178. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Rotate.js +3 -43
  179. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Rotate.js.map +1 -1
  180. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Slide.js +3 -43
  181. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Slide.js.map +1 -1
  182. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Stretch.js +3 -23
  183. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Stretch.js.map +1 -1
  184. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Zoom.js +3 -83
  185. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Zoom.js.map +1 -1
  186. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/index.js +0 -20
  187. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/index.js.map +1 -1
  188. package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/CurvedTransition.js +3 -22
  189. package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/CurvedTransition.js.map +1 -1
  190. package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/EntryExitTransition.js +5 -29
  191. package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/EntryExitTransition.js.map +1 -1
  192. package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/FadingTransition.js +3 -9
  193. package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/FadingTransition.js.map +1 -1
  194. package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/JumpingTransition.js +5 -11
  195. package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/JumpingTransition.js.map +1 -1
  196. package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/LinearTransition.js +3 -8
  197. package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/LinearTransition.js.map +1 -1
  198. package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/SequencedTransition.js +3 -12
  199. package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/SequencedTransition.js.map +1 -1
  200. package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/index.js +0 -12
  201. package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/index.js.map +1 -1
  202. package/lib/commonjs/reanimated2/layoutReanimation/index.js +0 -9
  203. package/lib/commonjs/reanimated2/layoutReanimation/index.js.map +1 -1
  204. package/lib/commonjs/reanimated2/layoutReanimation/sharedTransitions/index.js +3 -17
  205. package/lib/commonjs/reanimated2/layoutReanimation/sharedTransitions/index.js.map +1 -1
  206. package/lib/commonjs/reanimated2/mappers.js +26 -32
  207. package/lib/commonjs/reanimated2/mappers.js.map +1 -1
  208. package/lib/commonjs/reanimated2/mock.js +5 -15
  209. package/lib/commonjs/reanimated2/mock.js.map +1 -1
  210. package/lib/commonjs/reanimated2/mutables.js +2 -28
  211. package/lib/commonjs/reanimated2/mutables.js.map +1 -1
  212. package/lib/commonjs/reanimated2/platform-specific/RNRenderer.js +0 -2
  213. package/lib/commonjs/reanimated2/platform-specific/RNRenderer.js.map +1 -1
  214. package/lib/commonjs/reanimated2/platform-specific/RNRenderer.web.js.map +1 -1
  215. package/lib/commonjs/reanimated2/platform-specific/checkCppVersion.js +31 -0
  216. package/lib/commonjs/reanimated2/platform-specific/checkCppVersion.js.map +1 -0
  217. package/lib/commonjs/reanimated2/platform-specific/checkVersion.web.js +0 -2
  218. package/lib/commonjs/reanimated2/platform-specific/checkVersion.web.js.map +1 -1
  219. package/lib/commonjs/reanimated2/platform-specific/jsVersion.js +14 -0
  220. package/lib/commonjs/reanimated2/platform-specific/jsVersion.js.map +1 -0
  221. package/lib/commonjs/reanimated2/pluginUtils.js +0 -1
  222. package/lib/commonjs/reanimated2/pluginUtils.js.map +1 -1
  223. package/lib/commonjs/reanimated2/shareables.js +92 -49
  224. package/lib/commonjs/reanimated2/shareables.js.map +1 -1
  225. package/lib/commonjs/reanimated2/threads.js +42 -46
  226. package/lib/commonjs/reanimated2/threads.js.map +1 -1
  227. package/lib/commonjs/reanimated2/utils.js +0 -5
  228. package/lib/commonjs/reanimated2/utils.js.map +1 -1
  229. package/lib/commonjs/reanimated2/valueSetter.js +6 -21
  230. package/lib/commonjs/reanimated2/valueSetter.js.map +1 -1
  231. package/lib/commonjs/setAndForwardRef.js +3 -3
  232. package/lib/commonjs/setAndForwardRef.js.map +1 -1
  233. package/lib/module/Animated.js.map +1 -1
  234. package/lib/module/ConfigHelper.js +9 -15
  235. package/lib/module/ConfigHelper.js.map +1 -1
  236. package/lib/module/createAnimatedComponent.js +20 -139
  237. package/lib/module/createAnimatedComponent.js.map +1 -1
  238. package/lib/module/index.js +0 -2
  239. package/lib/module/index.js.map +1 -1
  240. package/lib/module/index.web.js.map +1 -1
  241. package/lib/module/reanimated2/Bezier.js +14 -33
  242. package/lib/module/reanimated2/Bezier.js.map +1 -1
  243. package/lib/module/reanimated2/Colors.js +59 -109
  244. package/lib/module/reanimated2/Colors.js.map +1 -1
  245. package/lib/module/reanimated2/Easing.js +37 -33
  246. package/lib/module/reanimated2/Easing.js.map +1 -1
  247. package/lib/module/reanimated2/NativeMethods.js +8 -15
  248. package/lib/module/reanimated2/NativeMethods.js.map +1 -1
  249. package/lib/module/reanimated2/NativeReanimated/NativeReanimated.js +5 -27
  250. package/lib/module/reanimated2/NativeReanimated/NativeReanimated.js.map +1 -1
  251. package/lib/module/reanimated2/NativeReanimated/index.js +0 -2
  252. package/lib/module/reanimated2/NativeReanimated/index.js.map +1 -1
  253. package/lib/module/reanimated2/PlatformChecker.js.map +1 -1
  254. package/lib/module/reanimated2/PropAdapters.js +12 -10
  255. package/lib/module/reanimated2/PropAdapters.js.map +1 -1
  256. package/lib/module/reanimated2/UpdateProps.js +3 -5
  257. package/lib/module/reanimated2/UpdateProps.js.map +1 -1
  258. package/lib/module/reanimated2/ViewDescriptorsSet.js +0 -6
  259. package/lib/module/reanimated2/ViewDescriptorsSet.js.map +1 -1
  260. package/lib/module/reanimated2/WorkletEventHandler.js +5 -18
  261. package/lib/module/reanimated2/WorkletEventHandler.js.map +1 -1
  262. package/lib/module/reanimated2/animation/decay.js +7 -15
  263. package/lib/module/reanimated2/animation/decay.js.map +1 -1
  264. package/lib/module/reanimated2/animation/delay.js +0 -9
  265. package/lib/module/reanimated2/animation/delay.js.map +1 -1
  266. package/lib/module/reanimated2/animation/index.js.map +1 -1
  267. package/lib/module/reanimated2/animation/repeat.js +6 -20
  268. package/lib/module/reanimated2/animation/repeat.js.map +1 -1
  269. package/lib/module/reanimated2/animation/sequence.js +3 -18
  270. package/lib/module/reanimated2/animation/sequence.js.map +1 -1
  271. package/lib/module/reanimated2/animation/spring.js +11 -21
  272. package/lib/module/reanimated2/animation/spring.js.map +1 -1
  273. package/lib/module/reanimated2/animation/styleAnimation.js +7 -31
  274. package/lib/module/reanimated2/animation/styleAnimation.js.map +1 -1
  275. package/lib/module/reanimated2/animation/timing.js +0 -8
  276. package/lib/module/reanimated2/animation/timing.js.map +1 -1
  277. package/lib/module/reanimated2/animation/util.js +10 -33
  278. package/lib/module/reanimated2/animation/util.js.map +1 -1
  279. package/lib/module/reanimated2/commonTypes.js +12 -19
  280. package/lib/module/reanimated2/commonTypes.js.map +1 -1
  281. package/lib/module/reanimated2/component/FlatList.js +0 -4
  282. package/lib/module/reanimated2/component/FlatList.js.map +1 -1
  283. package/lib/module/reanimated2/component/Image.js.map +1 -1
  284. package/lib/module/reanimated2/component/ScrollView.js.map +1 -1
  285. package/lib/module/reanimated2/component/Text.js.map +1 -1
  286. package/lib/module/reanimated2/component/View.js.map +1 -1
  287. package/lib/module/reanimated2/core.js +6 -22
  288. package/lib/module/reanimated2/core.js.map +1 -1
  289. package/lib/module/reanimated2/errors.js +3 -13
  290. package/lib/module/reanimated2/errors.js.map +1 -1
  291. package/lib/module/reanimated2/fabricUtils.js +3 -3
  292. package/lib/module/reanimated2/fabricUtils.js.map +1 -1
  293. package/lib/module/reanimated2/fabricUtils.web.js +1 -1
  294. package/lib/module/reanimated2/fabricUtils.web.js.map +1 -1
  295. package/lib/module/reanimated2/frameCallback/FrameCallbackRegistryJS.js +3 -8
  296. package/lib/module/reanimated2/frameCallback/FrameCallbackRegistryJS.js.map +1 -1
  297. package/lib/module/reanimated2/frameCallback/FrameCallbackRegistryUI.js +13 -15
  298. package/lib/module/reanimated2/frameCallback/FrameCallbackRegistryUI.js.map +1 -1
  299. package/lib/module/reanimated2/globals.d.js.map +1 -1
  300. package/lib/module/reanimated2/hook/Hooks.js +3 -2
  301. package/lib/module/reanimated2/hook/Hooks.js.map +1 -1
  302. package/lib/module/reanimated2/hook/commonTypes.js.map +1 -1
  303. package/lib/module/reanimated2/hook/index.js.map +1 -1
  304. package/lib/module/reanimated2/hook/useAnimatedGestureHandler.js +3 -14
  305. package/lib/module/reanimated2/hook/useAnimatedGestureHandler.js.map +1 -1
  306. package/lib/module/reanimated2/hook/useAnimatedKeyboard.js +2 -5
  307. package/lib/module/reanimated2/hook/useAnimatedKeyboard.js.map +1 -1
  308. package/lib/module/reanimated2/hook/useAnimatedReaction.js +1 -7
  309. package/lib/module/reanimated2/hook/useAnimatedReaction.js.map +1 -1
  310. package/lib/module/reanimated2/hook/useAnimatedRef.js +0 -6
  311. package/lib/module/reanimated2/hook/useAnimatedRef.js.map +1 -1
  312. package/lib/module/reanimated2/hook/useAnimatedScrollHandler.js +2 -7
  313. package/lib/module/reanimated2/hook/useAnimatedScrollHandler.js.map +1 -1
  314. package/lib/module/reanimated2/hook/useAnimatedSensor.js +9 -20
  315. package/lib/module/reanimated2/hook/useAnimatedSensor.js.map +1 -1
  316. package/lib/module/reanimated2/hook/useAnimatedStyle.js +13 -59
  317. package/lib/module/reanimated2/hook/useAnimatedStyle.js.map +1 -1
  318. package/lib/module/reanimated2/hook/useDerivedValue.js +4 -8
  319. package/lib/module/reanimated2/hook/useDerivedValue.js.map +1 -1
  320. package/lib/module/reanimated2/hook/useFrameCallback.js.map +1 -1
  321. package/lib/module/reanimated2/hook/useScrollViewOffset.js +0 -1
  322. package/lib/module/reanimated2/hook/useScrollViewOffset.js.map +1 -1
  323. package/lib/module/reanimated2/hook/useSharedValue.js +2 -3
  324. package/lib/module/reanimated2/hook/useSharedValue.js.map +1 -1
  325. package/lib/module/reanimated2/hook/utils.js +8 -21
  326. package/lib/module/reanimated2/hook/utils.js.map +1 -1
  327. package/lib/module/reanimated2/index.js.map +1 -1
  328. package/lib/module/reanimated2/initializers.js +23 -37
  329. package/lib/module/reanimated2/initializers.js.map +1 -1
  330. package/lib/module/reanimated2/interpolateColor.js +5 -34
  331. package/lib/module/reanimated2/interpolateColor.js.map +1 -1
  332. package/lib/module/reanimated2/interpolation.js +13 -28
  333. package/lib/module/reanimated2/interpolation.js.map +1 -1
  334. package/lib/module/reanimated2/jestUtils.js +11 -35
  335. package/lib/module/reanimated2/jestUtils.js.map +1 -1
  336. package/lib/module/reanimated2/js-reanimated/JSReanimated.js +15 -35
  337. package/lib/module/reanimated2/js-reanimated/JSReanimated.js.map +1 -1
  338. package/lib/module/reanimated2/js-reanimated/Mapper.js +9 -23
  339. package/lib/module/reanimated2/js-reanimated/Mapper.js.map +1 -1
  340. package/lib/module/reanimated2/js-reanimated/MapperRegistry.js +7 -35
  341. package/lib/module/reanimated2/js-reanimated/MapperRegistry.js.map +1 -1
  342. package/lib/module/reanimated2/js-reanimated/MutableValue.js +5 -16
  343. package/lib/module/reanimated2/js-reanimated/MutableValue.js.map +1 -1
  344. package/lib/module/reanimated2/js-reanimated/global.js +2 -6
  345. package/lib/module/reanimated2/js-reanimated/global.js.map +1 -1
  346. package/lib/module/reanimated2/js-reanimated/index.js +3 -9
  347. package/lib/module/reanimated2/js-reanimated/index.js.map +1 -1
  348. package/lib/module/reanimated2/layoutReanimation/animationBuilder/BaseAnimationBuilder.js +7 -23
  349. package/lib/module/reanimated2/layoutReanimation/animationBuilder/BaseAnimationBuilder.js.map +1 -1
  350. package/lib/module/reanimated2/layoutReanimation/animationBuilder/ComplexAnimationBuilder.js +3 -45
  351. package/lib/module/reanimated2/layoutReanimation/animationBuilder/ComplexAnimationBuilder.js.map +1 -1
  352. package/lib/module/reanimated2/layoutReanimation/animationBuilder/Keyframe.js +7 -39
  353. package/lib/module/reanimated2/layoutReanimation/animationBuilder/Keyframe.js.map +1 -1
  354. package/lib/module/reanimated2/layoutReanimation/animationBuilder/commonTypes.js +3 -3
  355. package/lib/module/reanimated2/layoutReanimation/animationBuilder/commonTypes.js.map +1 -1
  356. package/lib/module/reanimated2/layoutReanimation/animationBuilder/index.js.map +1 -1
  357. package/lib/module/reanimated2/layoutReanimation/animationsManager.js +4 -19
  358. package/lib/module/reanimated2/layoutReanimation/animationsManager.js.map +1 -1
  359. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Bounce.js +3 -52
  360. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Bounce.js.map +1 -1
  361. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Fade.js +3 -32
  362. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Fade.js.map +1 -1
  363. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Flip.js +3 -38
  364. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Flip.js.map +1 -1
  365. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Lightspeed.js +7 -16
  366. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Lightspeed.js.map +1 -1
  367. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Pinwheel.js +3 -8
  368. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Pinwheel.js.map +1 -1
  369. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Roll.js +3 -14
  370. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Roll.js.map +1 -1
  371. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Rotate.js +3 -26
  372. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Rotate.js.map +1 -1
  373. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Slide.js +3 -26
  374. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Slide.js.map +1 -1
  375. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Stretch.js +3 -14
  376. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Stretch.js.map +1 -1
  377. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Zoom.js +3 -50
  378. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Zoom.js.map +1 -1
  379. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/index.js.map +1 -1
  380. package/lib/module/reanimated2/layoutReanimation/defaultTransitions/CurvedTransition.js +3 -17
  381. package/lib/module/reanimated2/layoutReanimation/defaultTransitions/CurvedTransition.js.map +1 -1
  382. package/lib/module/reanimated2/layoutReanimation/defaultTransitions/EntryExitTransition.js +5 -23
  383. package/lib/module/reanimated2/layoutReanimation/defaultTransitions/EntryExitTransition.js.map +1 -1
  384. package/lib/module/reanimated2/layoutReanimation/defaultTransitions/FadingTransition.js +3 -5
  385. package/lib/module/reanimated2/layoutReanimation/defaultTransitions/FadingTransition.js.map +1 -1
  386. package/lib/module/reanimated2/layoutReanimation/defaultTransitions/JumpingTransition.js +5 -6
  387. package/lib/module/reanimated2/layoutReanimation/defaultTransitions/JumpingTransition.js.map +1 -1
  388. package/lib/module/reanimated2/layoutReanimation/defaultTransitions/LinearTransition.js +3 -5
  389. package/lib/module/reanimated2/layoutReanimation/defaultTransitions/LinearTransition.js.map +1 -1
  390. package/lib/module/reanimated2/layoutReanimation/defaultTransitions/SequencedTransition.js +3 -8
  391. package/lib/module/reanimated2/layoutReanimation/defaultTransitions/SequencedTransition.js.map +1 -1
  392. package/lib/module/reanimated2/layoutReanimation/defaultTransitions/index.js.map +1 -1
  393. package/lib/module/reanimated2/layoutReanimation/index.js.map +1 -1
  394. package/lib/module/reanimated2/layoutReanimation/sharedTransitions/index.js +3 -13
  395. package/lib/module/reanimated2/layoutReanimation/sharedTransitions/index.js.map +1 -1
  396. package/lib/module/reanimated2/mappers.js +26 -25
  397. package/lib/module/reanimated2/mappers.js.map +1 -1
  398. package/lib/module/reanimated2/mock.js +5 -15
  399. package/lib/module/reanimated2/mock.js.map +1 -1
  400. package/lib/module/reanimated2/mutables.js +2 -19
  401. package/lib/module/reanimated2/mutables.js.map +1 -1
  402. package/lib/module/reanimated2/platform-specific/RNRenderer.js.map +1 -1
  403. package/lib/module/reanimated2/platform-specific/RNRenderer.web.js.map +1 -1
  404. package/lib/module/reanimated2/platform-specific/checkCppVersion.js +24 -0
  405. package/lib/module/reanimated2/platform-specific/checkCppVersion.js.map +1 -0
  406. package/lib/module/reanimated2/platform-specific/checkVersion.web.js +0 -1
  407. package/lib/module/reanimated2/platform-specific/checkVersion.web.js.map +1 -1
  408. package/lib/module/reanimated2/platform-specific/jsVersion.js +7 -0
  409. package/lib/module/reanimated2/platform-specific/jsVersion.js.map +1 -0
  410. package/lib/module/reanimated2/pluginUtils.js.map +1 -1
  411. package/lib/module/reanimated2/shareables.js +96 -44
  412. package/lib/module/reanimated2/shareables.js.map +1 -1
  413. package/lib/module/reanimated2/threads.js +39 -33
  414. package/lib/module/reanimated2/threads.js.map +1 -1
  415. package/lib/module/reanimated2/utils.js +0 -3
  416. package/lib/module/reanimated2/utils.js.map +1 -1
  417. package/lib/module/reanimated2/valueSetter.js +6 -19
  418. package/lib/module/reanimated2/valueSetter.js.map +1 -1
  419. package/lib/module/setAndForwardRef.js +3 -2
  420. package/lib/module/setAndForwardRef.js.map +1 -1
  421. package/package.json +46 -40
  422. package/plugin/.eslintrc.js +7 -0
  423. package/plugin/README.md +241 -0
  424. package/plugin/build/plugin.js +714 -0
  425. package/plugin/build/plugin.js.map +7 -0
  426. package/plugin/index.js +1 -807
  427. package/plugin/package.json +23 -0
  428. package/plugin/src/buildWorkletString.ts +213 -0
  429. package/plugin/src/commonObjects.ts +60 -0
  430. package/plugin/src/injectVersion.ts +37 -0
  431. package/plugin/src/makeWorklet.ts +375 -0
  432. package/plugin/src/plugin.ts +49 -0
  433. package/plugin/src/processForCalleesWorklets.ts +106 -0
  434. package/plugin/src/processIfGestureHandlerEventCallbackFunctionNode.ts +156 -0
  435. package/plugin/src/processIfWorkletFunction.ts +55 -0
  436. package/plugin/src/processIfWorkletNode.ts +44 -0
  437. package/plugin/src/processInlineStylesWarning.ts +129 -0
  438. package/plugin/src/processWorkletObjectMethod.ts +31 -0
  439. package/plugin/src/types.ts +15 -0
  440. package/plugin/src/utils.ts +6 -0
  441. package/plugin/tsconfig.json +15 -0
  442. package/plugin/yarn.lock +2193 -0
  443. package/react-native-reanimated.d.ts +1 -0
  444. package/scripts/reanimated_utils.rb +2 -2
  445. package/src/createAnimatedComponent.tsx +2 -3
  446. package/src/reanimated2/Easing.ts +19 -0
  447. package/src/reanimated2/NativeMethods.ts +9 -4
  448. package/src/reanimated2/NativeReanimated/NativeReanimated.ts +2 -2
  449. package/src/reanimated2/UpdateProps.ts +2 -2
  450. package/src/reanimated2/animation/decay.ts +7 -1
  451. package/src/reanimated2/animation/styleAnimation.ts +5 -1
  452. package/src/reanimated2/core.ts +4 -4
  453. package/src/reanimated2/errors.ts +1 -0
  454. package/src/reanimated2/frameCallback/FrameCallbackRegistryUI.ts +12 -4
  455. package/src/reanimated2/globals.d.ts +71 -112
  456. package/src/reanimated2/hook/commonTypes.ts +1 -1
  457. package/src/reanimated2/hook/useAnimatedReaction.ts +2 -2
  458. package/src/reanimated2/hook/useAnimatedSensor.ts +2 -2
  459. package/src/reanimated2/initializers.ts +11 -8
  460. package/src/reanimated2/jestUtils.ts +0 -1
  461. package/src/reanimated2/js-reanimated/JSReanimated.ts +5 -1
  462. package/src/reanimated2/js-reanimated/index.ts +1 -1
  463. package/src/reanimated2/mappers.ts +26 -4
  464. package/src/reanimated2/mock.ts +1 -0
  465. package/src/reanimated2/platform-specific/checkCppVersion.ts +29 -0
  466. package/src/reanimated2/platform-specific/jsVersion.ts +6 -0
  467. package/src/reanimated2/shareables.ts +107 -8
  468. package/src/reanimated2/threads.ts +36 -17
  469. package/lib/commonjs/reanimated2/platform-specific/checkVersion.js +0 -42
  470. package/lib/commonjs/reanimated2/platform-specific/checkVersion.js.map +0 -1
  471. package/lib/module/reanimated2/platform-specific/checkVersion.js +0 -35
  472. package/lib/module/reanimated2/platform-specific/checkVersion.js.map +0 -1
  473. package/src/reanimated2/platform-specific/checkVersion.ts +0 -39
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useRef","makeMutable","registerSensor","unregisterSensor","SensorType","IOSReferenceFrame","flushImmediates","initSensorData","sensorType","ROTATION","qw","qx","qy","qz","yaw","pitch","roll","interfaceOrientation","x","y","z","eulerToQuaternion","c1","Math","cos","s1","sin","c2","s2","c3","s3","adjustRotationToInterfaceOrientation","data","PI","q","adjustVectorToInterfaceOrientation","useAnimatedSensor","userConfig","ref","sensor","unregister","isAvailable","config","interval","adjustToInterfaceOrientation","iosReferenceFrame","Auto","current","sensorData","id","value"],"sources":["useAnimatedSensor.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport { makeMutable, registerSensor, unregisterSensor } from '../core';\nimport {\n SensorType,\n SharedValue,\n Value3D,\n ValueRotation,\n IOSReferenceFrame,\n} from '../commonTypes';\nimport { flushImmediates } from '../threads';\n\nexport type SensorConfig = {\n interval: number | 'auto';\n adjustToInterfaceOrientation: boolean;\n iosReferenceFrame: IOSReferenceFrame;\n};\n\nexport type AnimatedSensor = {\n sensor: SharedValue<Value3D | ValueRotation>;\n unregister: () => void;\n isAvailable: boolean;\n config: SensorConfig;\n};\n\nfunction initSensorData(\n sensorType: SensorType\n): SharedValue<Value3D | ValueRotation> {\n if (sensorType === SensorType.ROTATION) {\n return makeMutable<Value3D | ValueRotation>({\n qw: 0,\n qx: 0,\n qy: 0,\n qz: 0,\n yaw: 0,\n pitch: 0,\n roll: 0,\n interfaceOrientation: 0,\n });\n } else {\n return makeMutable<Value3D | ValueRotation>({\n x: 0,\n y: 0,\n z: 0,\n interfaceOrientation: 0,\n });\n }\n}\n\n// euler angles are in order ZXY, z = yaw, x = pitch, y = roll\n// https://github.com/mrdoob/three.js/blob/dev/src/math/Quaternion.js#L237\nfunction eulerToQuaternion(pitch: number, roll: number, yaw: number) {\n 'worklet';\n const c1 = Math.cos(pitch / 2);\n const s1 = Math.sin(pitch / 2);\n const c2 = Math.cos(roll / 2);\n const s2 = Math.sin(roll / 2);\n const c3 = Math.cos(yaw / 2);\n const s3 = Math.sin(yaw / 2);\n\n return [\n s1 * c2 * c3 - c1 * s2 * s3,\n c1 * s2 * c3 + s1 * c2 * s3,\n c1 * c2 * s3 + s1 * s2 * c3,\n c1 * c2 * c3 - s1 * s2 * s3,\n ];\n}\n\nfunction adjustRotationToInterfaceOrientation(data: ValueRotation) {\n 'worklet';\n const { interfaceOrientation, pitch, roll, yaw } = data;\n if (interfaceOrientation === 90) {\n data.pitch = roll;\n data.roll = -pitch;\n data.yaw = yaw - Math.PI / 2;\n } else if (interfaceOrientation === 270) {\n data.pitch = -roll;\n data.roll = pitch;\n data.yaw = yaw + Math.PI / 2;\n } else if (interfaceOrientation === 180) {\n data.pitch *= -1;\n data.roll *= -1;\n data.yaw *= -1;\n }\n\n const q = eulerToQuaternion(data.pitch, data.roll, data.yaw);\n data.qx = q[0];\n data.qy = q[1];\n data.qz = q[2];\n data.qw = q[3];\n return data;\n}\n\nfunction adjustVectorToInterfaceOrientation(data: Value3D) {\n 'worklet';\n const { interfaceOrientation, x, y } = data;\n if (interfaceOrientation === 90) {\n data.x = -y;\n data.y = x;\n } else if (interfaceOrientation === 270) {\n data.x = y;\n data.y = -x;\n } else if (interfaceOrientation === 180) {\n data.x *= -1;\n data.y *= -1;\n }\n return data;\n}\n\nexport function useAnimatedSensor(\n sensorType: SensorType,\n userConfig?: Partial<SensorConfig>\n): AnimatedSensor {\n const ref = useRef<AnimatedSensor>({\n sensor: initSensorData(sensorType),\n unregister: () => {\n // NOOP\n },\n isAvailable: false,\n config: {\n interval: 0,\n adjustToInterfaceOrientation: true,\n iosReferenceFrame: IOSReferenceFrame.Auto,\n },\n });\n\n useEffect(() => {\n ref.current.config = {\n interval: 'auto',\n adjustToInterfaceOrientation: true,\n iosReferenceFrame: IOSReferenceFrame.Auto,\n ...userConfig,\n };\n const sensorData = ref.current.sensor!;\n const id = registerSensor(\n sensorType,\n ref.current.config.interval === 'auto' ? -1 : ref.current.config.interval,\n ref.current.config.iosReferenceFrame,\n (data) => {\n 'worklet';\n if (ref.current.config.adjustToInterfaceOrientation) {\n if (sensorType === SensorType.ROTATION) {\n data = adjustRotationToInterfaceOrientation(data as ValueRotation);\n } else {\n data = adjustVectorToInterfaceOrientation(data as Value3D);\n }\n }\n sensorData.value = data;\n flushImmediates();\n }\n );\n\n if (id !== -1) {\n // if sensor is available\n ref.current.unregister = () => unregisterSensor(id);\n ref.current.isAvailable = true;\n } else {\n // if sensor is unavailable\n ref.current.unregister = () => {\n // NOOP\n };\n ref.current.isAvailable = false;\n }\n\n return () => {\n ref.current.unregister();\n };\n }, [sensorType, userConfig]);\n\n return ref.current;\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["useEffect","useRef","makeMutable","registerSensor","unregisterSensor","SensorType","IOSReferenceFrame","callMicrotasks","initSensorData","sensorType","ROTATION","qw","qx","qy","qz","yaw","pitch","roll","interfaceOrientation","x","y","z","eulerToQuaternion","c1","Math","cos","s1","sin","c2","s2","c3","s3","adjustRotationToInterfaceOrientation","data","PI","q","adjustVectorToInterfaceOrientation","useAnimatedSensor","userConfig","ref","sensor","unregister","isAvailable","config","interval","adjustToInterfaceOrientation","iosReferenceFrame","Auto","current","sensorData","id","value"],"sources":["useAnimatedSensor.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport { makeMutable, registerSensor, unregisterSensor } from '../core';\nimport {\n SensorType,\n SharedValue,\n Value3D,\n ValueRotation,\n IOSReferenceFrame,\n} from '../commonTypes';\nimport { callMicrotasks } from '../threads';\n\nexport type SensorConfig = {\n interval: number | 'auto';\n adjustToInterfaceOrientation: boolean;\n iosReferenceFrame: IOSReferenceFrame;\n};\n\nexport type AnimatedSensor = {\n sensor: SharedValue<Value3D | ValueRotation>;\n unregister: () => void;\n isAvailable: boolean;\n config: SensorConfig;\n};\n\nfunction initSensorData(\n sensorType: SensorType\n): SharedValue<Value3D | ValueRotation> {\n if (sensorType === SensorType.ROTATION) {\n return makeMutable<Value3D | ValueRotation>({\n qw: 0,\n qx: 0,\n qy: 0,\n qz: 0,\n yaw: 0,\n pitch: 0,\n roll: 0,\n interfaceOrientation: 0,\n });\n } else {\n return makeMutable<Value3D | ValueRotation>({\n x: 0,\n y: 0,\n z: 0,\n interfaceOrientation: 0,\n });\n }\n}\n\n// euler angles are in order ZXY, z = yaw, x = pitch, y = roll\n// https://github.com/mrdoob/three.js/blob/dev/src/math/Quaternion.js#L237\nfunction eulerToQuaternion(pitch: number, roll: number, yaw: number) {\n 'worklet';\n const c1 = Math.cos(pitch / 2);\n const s1 = Math.sin(pitch / 2);\n const c2 = Math.cos(roll / 2);\n const s2 = Math.sin(roll / 2);\n const c3 = Math.cos(yaw / 2);\n const s3 = Math.sin(yaw / 2);\n\n return [\n s1 * c2 * c3 - c1 * s2 * s3,\n c1 * s2 * c3 + s1 * c2 * s3,\n c1 * c2 * s3 + s1 * s2 * c3,\n c1 * c2 * c3 - s1 * s2 * s3,\n ];\n}\n\nfunction adjustRotationToInterfaceOrientation(data: ValueRotation) {\n 'worklet';\n const { interfaceOrientation, pitch, roll, yaw } = data;\n if (interfaceOrientation === 90) {\n data.pitch = roll;\n data.roll = -pitch;\n data.yaw = yaw - Math.PI / 2;\n } else if (interfaceOrientation === 270) {\n data.pitch = -roll;\n data.roll = pitch;\n data.yaw = yaw + Math.PI / 2;\n } else if (interfaceOrientation === 180) {\n data.pitch *= -1;\n data.roll *= -1;\n data.yaw *= -1;\n }\n\n const q = eulerToQuaternion(data.pitch, data.roll, data.yaw);\n data.qx = q[0];\n data.qy = q[1];\n data.qz = q[2];\n data.qw = q[3];\n return data;\n}\n\nfunction adjustVectorToInterfaceOrientation(data: Value3D) {\n 'worklet';\n const { interfaceOrientation, x, y } = data;\n if (interfaceOrientation === 90) {\n data.x = -y;\n data.y = x;\n } else if (interfaceOrientation === 270) {\n data.x = y;\n data.y = -x;\n } else if (interfaceOrientation === 180) {\n data.x *= -1;\n data.y *= -1;\n }\n return data;\n}\n\nexport function useAnimatedSensor(\n sensorType: SensorType,\n userConfig?: Partial<SensorConfig>\n): AnimatedSensor {\n const ref = useRef<AnimatedSensor>({\n sensor: initSensorData(sensorType),\n unregister: () => {\n // NOOP\n },\n isAvailable: false,\n config: {\n interval: 0,\n adjustToInterfaceOrientation: true,\n iosReferenceFrame: IOSReferenceFrame.Auto,\n },\n });\n\n useEffect(() => {\n ref.current.config = {\n interval: 'auto',\n adjustToInterfaceOrientation: true,\n iosReferenceFrame: IOSReferenceFrame.Auto,\n ...userConfig,\n };\n const sensorData = ref.current.sensor!;\n const id = registerSensor(\n sensorType,\n ref.current.config.interval === 'auto' ? -1 : ref.current.config.interval,\n ref.current.config.iosReferenceFrame,\n (data) => {\n 'worklet';\n if (ref.current.config.adjustToInterfaceOrientation) {\n if (sensorType === SensorType.ROTATION) {\n data = adjustRotationToInterfaceOrientation(data as ValueRotation);\n } else {\n data = adjustVectorToInterfaceOrientation(data as Value3D);\n }\n }\n sensorData.value = data;\n callMicrotasks();\n }\n );\n\n if (id !== -1) {\n // if sensor is available\n ref.current.unregister = () => unregisterSensor(id);\n ref.current.isAvailable = true;\n } else {\n // if sensor is unavailable\n ref.current.unregister = () => {\n // NOOP\n };\n ref.current.isAvailable = false;\n }\n\n return () => {\n ref.current.unregister();\n };\n }, [sensorType, userConfig]);\n\n return ref.current;\n}\n"],"mappings":"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"}
@@ -7,20 +7,19 @@ import { useSharedValue } from './useSharedValue';
7
7
  import { buildWorkletsHash, isAnimated, shallowEqual, validateAnimatedStyles } from './utils';
8
8
  import { makeViewDescriptorsSet, makeViewsRefSet } from '../ViewDescriptorsSet';
9
9
  import { isJest, shouldBeUseWeb } from '../PlatformChecker';
10
-
11
10
  function prepareAnimation(frameTimestamp, animatedProp, lastAnimation, lastValue) {
12
11
  'worklet';
13
12
 
14
13
  if (Array.isArray(animatedProp)) {
15
14
  animatedProp.forEach((prop, index) => {
16
15
  prepareAnimation(frameTimestamp, prop, lastAnimation && lastAnimation[index], lastValue && lastValue[index]);
17
- }); // return animatedProp;
16
+ });
17
+ // return animatedProp;
18
18
  }
19
19
 
20
20
  if (typeof animatedProp === 'object' && animatedProp.onFrame) {
21
21
  const animation = animatedProp;
22
22
  let value = animation.current;
23
-
24
23
  if (lastValue !== undefined) {
25
24
  if (typeof lastValue === 'object') {
26
25
  if (lastValue.value !== undefined) {
@@ -40,11 +39,9 @@ function prepareAnimation(frameTimestamp, animatedProp, lastAnimation, lastValue
40
39
  value = lastValue;
41
40
  }
42
41
  }
43
-
44
42
  animation.callStart = timestamp => {
45
43
  animation.onStart(animation, value, timestamp, lastAnimation);
46
44
  };
47
-
48
45
  animation.callStart(frameTimestamp);
49
46
  animation.callStart = null;
50
47
  } else if (typeof animatedProp === 'object') {
@@ -52,14 +49,12 @@ function prepareAnimation(frameTimestamp, animatedProp, lastAnimation, lastValue
52
49
  Object.keys(animatedProp).forEach(key => prepareAnimation(frameTimestamp, animatedProp[key], lastAnimation && lastAnimation[key], lastValue && lastValue[key]));
53
50
  }
54
51
  }
55
-
56
52
  function runAnimations(animation, timestamp, key, result, animationsActive) {
57
53
  'worklet';
58
54
 
59
55
  if (!animationsActive.value) {
60
56
  return true;
61
57
  }
62
-
63
58
  if (Array.isArray(animation)) {
64
59
  result[key] = [];
65
60
  let allFinished = true;
@@ -71,21 +66,16 @@ function runAnimations(animation, timestamp, key, result, animationsActive) {
71
66
  return allFinished;
72
67
  } else if (typeof animation === 'object' && animation.onFrame) {
73
68
  let finished = true;
74
-
75
69
  if (!animation.finished) {
76
70
  if (animation.callStart) {
77
71
  animation.callStart(timestamp);
78
72
  animation.callStart = null;
79
73
  }
80
-
81
74
  finished = animation.onFrame(animation, timestamp);
82
75
  animation.timestamp = timestamp;
83
-
84
76
  if (finished) {
85
77
  animation.finished = true;
86
- animation.callback && animation.callback(true
87
- /* finished */
88
- );
78
+ animation.callback && animation.callback(true /* finished */);
89
79
  }
90
80
  }
91
81
 
@@ -105,7 +95,6 @@ function runAnimations(animation, timestamp, key, result, animationsActive) {
105
95
  return true;
106
96
  }
107
97
  }
108
-
109
98
  function styleUpdater(viewDescriptors, updater, state, maybeViewRef, animationsActive) {
110
99
  'worklet';
111
100
 
@@ -116,10 +105,8 @@ function styleUpdater(viewDescriptors, updater, state, maybeViewRef, animationsA
116
105
  let hasAnimations = false;
117
106
  let frameTimestamp;
118
107
  let hasNonAnimatedValues = false;
119
-
120
108
  for (const key in newValues) {
121
109
  const value = newValues[key];
122
-
123
110
  if (isAnimated(value)) {
124
111
  frameTimestamp = global.__frameTimestamp || performance.now();
125
112
  prepareAnimation(frameTimestamp, value, animations[key], oldValues[key]);
@@ -131,7 +118,6 @@ function styleUpdater(viewDescriptors, updater, state, maybeViewRef, animationsA
131
118
  delete animations[key];
132
119
  }
133
120
  }
134
-
135
121
  if (hasAnimations) {
136
122
  const frame = timestamp => {
137
123
  const {
@@ -139,18 +125,14 @@ function styleUpdater(viewDescriptors, updater, state, maybeViewRef, animationsA
139
125
  last,
140
126
  isAnimationCancelled
141
127
  } = state;
142
-
143
128
  if (isAnimationCancelled) {
144
129
  state.isAnimationRunning = false;
145
130
  return;
146
131
  }
147
-
148
132
  const updates = {};
149
133
  let allFinished = true;
150
-
151
134
  for (const propName in animations) {
152
135
  const finished = runAnimations(animations[propName], timestamp, propName, updates, animationsActive);
153
-
154
136
  if (finished) {
155
137
  last[propName] = updates[propName];
156
138
  delete animations[propName];
@@ -158,61 +140,52 @@ function styleUpdater(viewDescriptors, updater, state, maybeViewRef, animationsA
158
140
  allFinished = false;
159
141
  }
160
142
  }
161
-
162
143
  if (updates) {
163
144
  updateProps(viewDescriptors, updates, maybeViewRef);
164
145
  }
165
-
166
146
  if (!allFinished) {
167
147
  requestAnimationFrame(frame);
168
148
  } else {
169
149
  state.isAnimationRunning = false;
170
150
  }
171
151
  };
172
-
173
152
  state.animations = animations;
174
-
175
153
  if (!state.isAnimationRunning) {
176
154
  state.isAnimationCancelled = false;
177
155
  state.isAnimationRunning = true;
178
156
  frame(frameTimestamp);
179
157
  }
180
-
181
158
  if (hasNonAnimatedValues) {
182
159
  updateProps(viewDescriptors, nonAnimatedNewValues, maybeViewRef);
183
160
  }
184
161
  } else {
185
162
  state.isAnimationCancelled = true;
186
163
  state.animations = [];
187
-
188
164
  if (!shallowEqual(oldValues, newValues)) {
189
165
  updateProps(viewDescriptors, newValues, maybeViewRef);
190
166
  }
191
167
  }
192
-
193
168
  state.last = newValues;
194
169
  }
195
-
196
170
  function jestStyleUpdater(viewDescriptors, updater, state, maybeViewRef, animationsActive, animatedStyle) {
197
171
  'worklet';
198
172
 
199
173
  let adapters = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : [];
200
174
  const animations = state.animations ?? {};
201
175
  const newValues = updater() ?? {};
202
- const oldValues = state.last; // extract animated props
176
+ const oldValues = state.last;
203
177
 
178
+ // extract animated props
204
179
  let hasAnimations = false;
205
180
  let frameTimestamp;
206
181
  Object.keys(animations).forEach(key => {
207
182
  const value = newValues[key];
208
-
209
183
  if (!isAnimated(value)) {
210
184
  delete animations[key];
211
185
  }
212
186
  });
213
187
  Object.keys(newValues).forEach(key => {
214
188
  const value = newValues[key];
215
-
216
189
  if (isAnimated(value)) {
217
190
  frameTimestamp = global.__frameTimestamp || performance.now();
218
191
  prepareAnimation(frameTimestamp, value, animations[key], oldValues[key]);
@@ -220,24 +193,20 @@ function jestStyleUpdater(viewDescriptors, updater, state, maybeViewRef, animati
220
193
  hasAnimations = true;
221
194
  }
222
195
  });
223
-
224
196
  function frame(timestamp) {
225
197
  const {
226
198
  animations,
227
199
  last,
228
200
  isAnimationCancelled
229
201
  } = state;
230
-
231
202
  if (isAnimationCancelled) {
232
203
  state.isAnimationRunning = false;
233
204
  return;
234
205
  }
235
-
236
206
  const updates = {};
237
207
  let allFinished = true;
238
208
  Object.keys(animations).forEach(propName => {
239
209
  const finished = runAnimations(animations[propName], timestamp, propName, updates, animationsActive);
240
-
241
210
  if (finished) {
242
211
  last[propName] = updates[propName];
243
212
  delete animations[propName];
@@ -245,21 +214,17 @@ function jestStyleUpdater(viewDescriptors, updater, state, maybeViewRef, animati
245
214
  allFinished = false;
246
215
  }
247
216
  });
248
-
249
217
  if (Object.keys(updates).length) {
250
218
  updatePropsJestWrapper(viewDescriptors, updates, maybeViewRef, animatedStyle, adapters);
251
219
  }
252
-
253
220
  if (!allFinished) {
254
221
  requestAnimationFrame(frame);
255
222
  } else {
256
223
  state.isAnimationRunning = false;
257
224
  }
258
225
  }
259
-
260
226
  if (hasAnimations) {
261
227
  state.animations = animations;
262
-
263
228
  if (!state.isAnimationRunning) {
264
229
  state.isAnimationCancelled = false;
265
230
  state.isAnimationRunning = true;
@@ -268,17 +233,16 @@ function jestStyleUpdater(viewDescriptors, updater, state, maybeViewRef, animati
268
233
  } else {
269
234
  state.isAnimationCancelled = true;
270
235
  state.animations = [];
271
- } // calculate diff
272
-
236
+ }
273
237
 
238
+ // calculate diff
274
239
  state.last = newValues;
275
-
276
240
  if (!shallowEqual(oldValues, newValues)) {
277
241
  updatePropsJestWrapper(viewDescriptors, newValues, maybeViewRef, animatedStyle, adapters);
278
242
  }
279
- } // check for invalid usage of shared values in returned object
280
-
243
+ }
281
244
 
245
+ // check for invalid usage of shared values in returned object
282
246
  function checkSharedValueUsage(prop, currentKey) {
283
247
  if (Array.isArray(prop)) {
284
248
  // if it's an array (i.ex. transform) validate all its elements
@@ -295,40 +259,34 @@ function checkSharedValueUsage(prop, currentKey) {
295
259
  throw new Error(`invalid value passed to \`${currentKey}\`, maybe you forgot to use \`.value\`?`);
296
260
  }
297
261
  }
298
-
299
262
  export function useAnimatedStyle(updater, dependencies, adapters) {
300
263
  const viewsRef = makeViewsRefSet();
301
264
  const initRef = useRef();
302
265
  let inputs = Object.values(updater._closure ?? {});
303
-
304
266
  if (shouldBeUseWeb()) {
305
267
  var _dependencies;
306
-
307
268
  if (!inputs.length && (_dependencies = dependencies) !== null && _dependencies !== void 0 && _dependencies.length) {
308
269
  // let web work without a Babel/SWC plugin
309
270
  inputs = dependencies;
310
271
  }
311
-
312
272
  if (__DEV__ && !inputs.length && !dependencies && !updater.__workletHash) {
313
273
  throw new Error(`useAnimatedStyle was used without a dependency array or Babel plugin. Please explicitly pass a dependency array, or enable the Babel/SWC plugin.
314
274
 
315
275
  For more, see the docs: https://docs.swmansion.com/react-native-reanimated/docs/fundamentals/web-support#web-without-a-babel-plugin`);
316
276
  }
317
277
  }
318
-
319
278
  const adaptersArray = adapters ? Array.isArray(adapters) ? adapters : [adapters] : [];
320
279
  const adaptersHash = adapters ? buildWorkletsHash(adaptersArray) : null;
321
280
  const animationsActive = useSharedValue(true);
322
- const animatedStyle = useRef({}); // build dependencies
281
+ const animatedStyle = useRef({});
323
282
 
283
+ // build dependencies
324
284
  if (!dependencies) {
325
285
  dependencies = [...inputs, updater.__workletHash];
326
286
  } else {
327
287
  dependencies.push(updater.__workletHash);
328
288
  }
329
-
330
289
  adaptersHash && dependencies.push(adaptersHash);
331
-
332
290
  if (!initRef.current) {
333
291
  const initialStyle = initialUpdaterRun(updater);
334
292
  validateAnimatedStyles(initialStyle);
@@ -345,9 +303,9 @@ For more, see the docs: https://docs.swmansion.com/react-native-reanimated/docs/
345
303
  }),
346
304
  viewDescriptors: makeViewDescriptorsSet()
347
305
  };
348
- } // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
349
-
306
+ }
350
307
 
308
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
351
309
  const {
352
310
  initial,
353
311
  remoteState,
@@ -359,7 +317,6 @@ For more, see the docs: https://docs.swmansion.com/react-native-reanimated/docs/
359
317
  useEffect(() => {
360
318
  let fun;
361
319
  let updaterFn = updater;
362
-
363
320
  if (adapters) {
364
321
  updaterFn = () => {
365
322
  'worklet';
@@ -371,7 +328,6 @@ For more, see the docs: https://docs.swmansion.com/react-native-reanimated/docs/
371
328
  return newValues;
372
329
  };
373
330
  }
374
-
375
331
  if (isJest()) {
376
332
  fun = () => {
377
333
  'worklet';
@@ -385,7 +341,6 @@ For more, see the docs: https://docs.swmansion.com/react-native-reanimated/docs/
385
341
  styleUpdater(sharableViewDescriptors, updaterFn, remoteState, maybeViewRef, animationsActive);
386
342
  };
387
343
  }
388
-
389
344
  const mapperId = startMapper(fun, inputs);
390
345
  return () => {
391
346
  stopMapper(mapperId);
@@ -398,7 +353,6 @@ For more, see the docs: https://docs.swmansion.com/react-native-reanimated/docs/
398
353
  };
399
354
  }, []);
400
355
  checkSharedValueUsage(initial.value);
401
-
402
356
  if (process.env.JEST_WORKER_ID) {
403
357
  return {
404
358
  viewDescriptors,
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useRef","startMapper","stopMapper","makeRemote","updateProps","updatePropsJestWrapper","initialUpdaterRun","NativeReanimatedModule","useSharedValue","buildWorkletsHash","isAnimated","shallowEqual","validateAnimatedStyles","makeViewDescriptorsSet","makeViewsRefSet","isJest","shouldBeUseWeb","prepareAnimation","frameTimestamp","animatedProp","lastAnimation","lastValue","Array","isArray","forEach","prop","index","onFrame","animation","value","current","undefined","callStart","timestamp","onStart","Object","keys","key","runAnimations","result","animationsActive","allFinished","entry","finished","callback","k","styleUpdater","viewDescriptors","updater","state","maybeViewRef","animations","newValues","oldValues","last","nonAnimatedNewValues","hasAnimations","hasNonAnimatedValues","global","__frameTimestamp","performance","now","frame","isAnimationCancelled","isAnimationRunning","updates","propName","requestAnimationFrame","jestStyleUpdater","animatedStyle","adapters","length","checkSharedValueUsage","currentKey","element","Error","useAnimatedStyle","dependencies","viewsRef","initRef","inputs","values","_closure","__DEV__","__workletHash","adaptersArray","adaptersHash","push","initialStyle","initial","remoteState","sharableViewDescriptors","native","fun","updaterFn","adapter","mapperId","process","env","JEST_WORKER_ID"],"sources":["useAnimatedStyle.ts"],"sourcesContent":["import { MutableRefObject, useEffect, useRef } from 'react';\n\nimport { startMapper, stopMapper, makeRemote } from '../core';\nimport updateProps, { updatePropsJestWrapper } from '../UpdateProps';\nimport { initialUpdaterRun } from '../animation';\nimport NativeReanimatedModule from '../NativeReanimated';\nimport { useSharedValue } from './useSharedValue';\nimport {\n buildWorkletsHash,\n isAnimated,\n shallowEqual,\n validateAnimatedStyles,\n} from './utils';\nimport { DependencyList, Descriptor } from './commonTypes';\nimport {\n makeViewDescriptorsSet,\n makeViewsRefSet,\n ViewDescriptorsSet,\n ViewRefSet,\n} from '../ViewDescriptorsSet';\nimport { isJest, shouldBeUseWeb } from '../PlatformChecker';\nimport {\n AnimationObject,\n Timestamp,\n AdapterWorkletFunction,\n AnimatedStyle,\n BasicWorkletFunction,\n BasicWorkletFunctionOptional,\n NestedObjectValues,\n SharedValue,\n StyleProps,\n} from '../commonTypes';\nexport interface AnimatedStyleResult {\n viewDescriptors: ViewDescriptorsSet;\n initial: AnimatedStyle;\n viewsRef: ViewRefSet<any>;\n animatedStyle?: MutableRefObject<AnimatedStyle>;\n}\n\ninterface AnimatedState {\n last: AnimatedStyle;\n animations: AnimatedStyle;\n isAnimationRunning: boolean;\n isAnimationCancelled: boolean;\n}\n\ninterface AnimationRef {\n initial: {\n value: AnimatedStyle;\n updater: () => AnimatedStyle;\n };\n remoteState: AnimatedState;\n viewDescriptors: ViewDescriptorsSet;\n}\n\nfunction prepareAnimation(\n frameTimestamp: number,\n animatedProp: AnimatedStyle,\n lastAnimation: AnimatedStyle,\n lastValue: AnimatedStyle\n): void {\n 'worklet';\n if (Array.isArray(animatedProp)) {\n animatedProp.forEach((prop, index) => {\n prepareAnimation(\n frameTimestamp,\n prop,\n lastAnimation && lastAnimation[index],\n lastValue && lastValue[index]\n );\n });\n // return animatedProp;\n }\n if (typeof animatedProp === 'object' && animatedProp.onFrame) {\n const animation = animatedProp;\n\n let value = animation.current;\n if (lastValue !== undefined) {\n if (typeof lastValue === 'object') {\n if (lastValue.value !== undefined) {\n // previously it was a shared value\n value = lastValue.value;\n } else if (lastValue.onFrame !== undefined) {\n if (lastAnimation?.current !== undefined) {\n // it was an animation before, copy its state\n value = lastAnimation.current;\n } else if (lastValue?.current !== undefined) {\n // it was initialized\n value = lastValue.current;\n }\n }\n } else {\n // previously it was a plain value, just set it as starting point\n value = lastValue;\n }\n }\n\n animation.callStart = (timestamp: Timestamp) => {\n animation.onStart(animation, value, timestamp, lastAnimation);\n };\n animation.callStart(frameTimestamp);\n animation.callStart = null;\n } else if (typeof animatedProp === 'object') {\n // it is an object\n Object.keys(animatedProp).forEach((key) =>\n prepareAnimation(\n frameTimestamp,\n animatedProp[key],\n lastAnimation && lastAnimation[key],\n lastValue && lastValue[key]\n )\n );\n }\n}\n\nfunction runAnimations(\n animation: AnimatedStyle,\n timestamp: Timestamp,\n key: number | string,\n result: AnimatedStyle,\n animationsActive: SharedValue<boolean>\n): boolean {\n 'worklet';\n if (!animationsActive.value) {\n return true;\n }\n if (Array.isArray(animation)) {\n result[key] = [];\n let allFinished = true;\n animation.forEach((entry, index) => {\n if (\n !runAnimations(entry, timestamp, index, result[key], animationsActive)\n ) {\n allFinished = false;\n }\n });\n return allFinished;\n } else if (typeof animation === 'object' && animation.onFrame) {\n let finished = true;\n if (!animation.finished) {\n if (animation.callStart) {\n animation.callStart(timestamp);\n animation.callStart = null;\n }\n finished = animation.onFrame(animation, timestamp);\n animation.timestamp = timestamp;\n if (finished) {\n animation.finished = true;\n animation.callback && animation.callback(true /* finished */);\n }\n }\n result[key] = animation.current;\n return finished;\n } else if (typeof animation === 'object') {\n result[key] = {};\n let allFinished = true;\n Object.keys(animation).forEach((k) => {\n if (\n !runAnimations(\n animation[k],\n timestamp,\n k,\n result[key],\n animationsActive\n )\n ) {\n allFinished = false;\n }\n });\n return allFinished;\n } else {\n result[key] = animation;\n return true;\n }\n}\n\nfunction styleUpdater(\n viewDescriptors: SharedValue<Descriptor[]>,\n updater: BasicWorkletFunction<AnimatedStyle>,\n state: AnimatedState,\n maybeViewRef: ViewRefSet<any> | undefined,\n animationsActive: SharedValue<boolean>\n): void {\n 'worklet';\n const animations = state.animations ?? {};\n const newValues = updater() ?? {};\n const oldValues = state.last;\n const nonAnimatedNewValues: StyleProps = {};\n\n let hasAnimations = false;\n let frameTimestamp: number | undefined;\n let hasNonAnimatedValues = false;\n for (const key in newValues) {\n const value = newValues[key];\n if (isAnimated(value)) {\n frameTimestamp = global.__frameTimestamp || performance.now();\n prepareAnimation(frameTimestamp, value, animations[key], oldValues[key]);\n animations[key] = value;\n hasAnimations = true;\n } else {\n hasNonAnimatedValues = true;\n nonAnimatedNewValues[key] = value;\n delete animations[key];\n }\n }\n\n if (hasAnimations) {\n const frame = (timestamp: Timestamp) => {\n const { animations, last, isAnimationCancelled } = state;\n if (isAnimationCancelled) {\n state.isAnimationRunning = false;\n return;\n }\n\n const updates: AnimatedStyle = {};\n let allFinished = true;\n for (const propName in animations) {\n const finished = runAnimations(\n animations[propName],\n timestamp,\n propName,\n updates,\n animationsActive\n );\n if (finished) {\n last[propName] = updates[propName];\n delete animations[propName];\n } else {\n allFinished = false;\n }\n }\n\n if (updates) {\n updateProps(viewDescriptors, updates, maybeViewRef);\n }\n\n if (!allFinished) {\n requestAnimationFrame(frame);\n } else {\n state.isAnimationRunning = false;\n }\n };\n\n state.animations = animations;\n if (!state.isAnimationRunning) {\n state.isAnimationCancelled = false;\n state.isAnimationRunning = true;\n frame(frameTimestamp!);\n }\n\n if (hasNonAnimatedValues) {\n updateProps(viewDescriptors, nonAnimatedNewValues, maybeViewRef);\n }\n } else {\n state.isAnimationCancelled = true;\n state.animations = [];\n\n if (!shallowEqual(oldValues, newValues)) {\n updateProps(viewDescriptors, newValues, maybeViewRef);\n }\n }\n state.last = newValues;\n}\n\nfunction jestStyleUpdater(\n viewDescriptors: SharedValue<Descriptor[]>,\n updater: BasicWorkletFunction<AnimatedStyle>,\n state: AnimatedState,\n maybeViewRef: ViewRefSet<any> | undefined,\n animationsActive: SharedValue<boolean>,\n animatedStyle: MutableRefObject<AnimatedStyle>,\n adapters: AdapterWorkletFunction[] = []\n): void {\n 'worklet';\n const animations: AnimatedStyle = state.animations ?? {};\n const newValues = updater() ?? {};\n const oldValues = state.last;\n\n // extract animated props\n let hasAnimations = false;\n let frameTimestamp: number | undefined;\n Object.keys(animations).forEach((key) => {\n const value = newValues[key];\n if (!isAnimated(value)) {\n delete animations[key];\n }\n });\n Object.keys(newValues).forEach((key) => {\n const value = newValues[key];\n if (isAnimated(value)) {\n frameTimestamp = global.__frameTimestamp || performance.now();\n prepareAnimation(frameTimestamp, value, animations[key], oldValues[key]);\n animations[key] = value;\n hasAnimations = true;\n }\n });\n\n function frame(timestamp: Timestamp) {\n const { animations, last, isAnimationCancelled } = state;\n if (isAnimationCancelled) {\n state.isAnimationRunning = false;\n return;\n }\n\n const updates: AnimatedStyle = {};\n let allFinished = true;\n Object.keys(animations).forEach((propName) => {\n const finished = runAnimations(\n animations[propName],\n timestamp,\n propName,\n updates,\n animationsActive\n );\n if (finished) {\n last[propName] = updates[propName];\n delete animations[propName];\n } else {\n allFinished = false;\n }\n });\n\n if (Object.keys(updates).length) {\n updatePropsJestWrapper(\n viewDescriptors,\n updates,\n maybeViewRef,\n animatedStyle,\n adapters\n );\n }\n\n if (!allFinished) {\n requestAnimationFrame(frame);\n } else {\n state.isAnimationRunning = false;\n }\n }\n\n if (hasAnimations) {\n state.animations = animations;\n if (!state.isAnimationRunning) {\n state.isAnimationCancelled = false;\n state.isAnimationRunning = true;\n frame(frameTimestamp!);\n }\n } else {\n state.isAnimationCancelled = true;\n state.animations = [];\n }\n\n // calculate diff\n state.last = newValues;\n\n if (!shallowEqual(oldValues, newValues)) {\n updatePropsJestWrapper(\n viewDescriptors,\n newValues,\n maybeViewRef,\n animatedStyle,\n adapters\n );\n }\n}\n\n// check for invalid usage of shared values in returned object\nfunction checkSharedValueUsage(\n prop: NestedObjectValues<AnimationObject>,\n currentKey?: string\n): void {\n if (Array.isArray(prop)) {\n // if it's an array (i.ex. transform) validate all its elements\n for (const element of prop) {\n checkSharedValueUsage(element, currentKey);\n }\n } else if (typeof prop === 'object' && prop.value === undefined) {\n // if it's a nested object, run validation for all its props\n for (const key of Object.keys(prop)) {\n checkSharedValueUsage(prop[key], key);\n }\n } else if (\n currentKey !== undefined &&\n typeof prop === 'object' &&\n prop.value !== undefined\n ) {\n // if shared value is passed insted of its value, throw an error\n throw new Error(\n `invalid value passed to \\`${currentKey}\\`, maybe you forgot to use \\`.value\\`?`\n );\n }\n}\n\nexport function useAnimatedStyle<T extends AnimatedStyle>(\n updater: BasicWorkletFunction<T>,\n dependencies?: DependencyList,\n adapters?: AdapterWorkletFunction | AdapterWorkletFunction[]\n): AnimatedStyleResult {\n const viewsRef: ViewRefSet<any> = makeViewsRefSet();\n const initRef = useRef<AnimationRef>();\n let inputs = Object.values(updater._closure ?? {});\n if (shouldBeUseWeb()) {\n if (!inputs.length && dependencies?.length) {\n // let web work without a Babel/SWC plugin\n inputs = dependencies;\n }\n if (__DEV__ && !inputs.length && !dependencies && !updater.__workletHash) {\n throw new Error(\n `useAnimatedStyle was used without a dependency array or Babel plugin. Please explicitly pass a dependency array, or enable the Babel/SWC plugin.\n\nFor more, see the docs: https://docs.swmansion.com/react-native-reanimated/docs/fundamentals/web-support#web-without-a-babel-plugin`\n );\n }\n }\n const adaptersArray: AdapterWorkletFunction[] = adapters\n ? Array.isArray(adapters)\n ? adapters\n : [adapters]\n : [];\n const adaptersHash = adapters ? buildWorkletsHash(adaptersArray) : null;\n const animationsActive = useSharedValue<boolean>(true);\n const animatedStyle: MutableRefObject<AnimatedStyle> = useRef<AnimatedStyle>(\n {}\n );\n\n // build dependencies\n if (!dependencies) {\n dependencies = [...inputs, updater.__workletHash];\n } else {\n dependencies.push(updater.__workletHash);\n }\n adaptersHash && dependencies.push(adaptersHash);\n\n if (!initRef.current) {\n const initialStyle: AnimatedStyle = initialUpdaterRun(updater);\n validateAnimatedStyles(initialStyle);\n initRef.current = {\n initial: {\n value: initialStyle,\n updater: updater,\n },\n remoteState: makeRemote<AnimatedState>({\n last: initialStyle,\n animations: {},\n isAnimationCancelled: false,\n isAnimationRunning: false,\n }),\n viewDescriptors: makeViewDescriptorsSet(),\n };\n }\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const { initial, remoteState, viewDescriptors } = initRef.current!;\n const sharableViewDescriptors = viewDescriptors.sharableViewDescriptors;\n const maybeViewRef = NativeReanimatedModule.native ? undefined : viewsRef;\n\n dependencies.push(sharableViewDescriptors);\n\n useEffect(() => {\n let fun;\n let updaterFn = updater as BasicWorkletFunctionOptional<T>;\n if (adapters) {\n updaterFn = () => {\n 'worklet';\n const newValues = updater();\n adaptersArray.forEach((adapter) => {\n adapter(newValues);\n });\n return newValues;\n };\n }\n\n if (isJest()) {\n fun = () => {\n 'worklet';\n jestStyleUpdater(\n sharableViewDescriptors,\n updater,\n remoteState,\n maybeViewRef,\n animationsActive,\n animatedStyle,\n adaptersArray\n );\n };\n } else {\n fun = () => {\n 'worklet';\n styleUpdater(\n sharableViewDescriptors,\n updaterFn,\n remoteState,\n maybeViewRef,\n animationsActive\n );\n };\n }\n const mapperId = startMapper(fun, inputs);\n return () => {\n stopMapper(mapperId);\n };\n }, dependencies);\n\n useEffect(() => {\n animationsActive.value = true;\n return () => {\n animationsActive.value = false;\n };\n }, []);\n\n checkSharedValueUsage(initial.value);\n\n if (process.env.JEST_WORKER_ID) {\n return { viewDescriptors, initial: initial, viewsRef, animatedStyle };\n } else {\n return { viewDescriptors, initial: initial, viewsRef };\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["useEffect","useRef","startMapper","stopMapper","makeRemote","updateProps","updatePropsJestWrapper","initialUpdaterRun","NativeReanimatedModule","useSharedValue","buildWorkletsHash","isAnimated","shallowEqual","validateAnimatedStyles","makeViewDescriptorsSet","makeViewsRefSet","isJest","shouldBeUseWeb","prepareAnimation","frameTimestamp","animatedProp","lastAnimation","lastValue","Array","isArray","forEach","prop","index","onFrame","animation","value","current","undefined","callStart","timestamp","onStart","Object","keys","key","runAnimations","result","animationsActive","allFinished","entry","finished","callback","k","styleUpdater","viewDescriptors","updater","state","maybeViewRef","animations","newValues","oldValues","last","nonAnimatedNewValues","hasAnimations","hasNonAnimatedValues","global","__frameTimestamp","performance","now","frame","isAnimationCancelled","isAnimationRunning","updates","propName","requestAnimationFrame","jestStyleUpdater","animatedStyle","adapters","arguments","length","checkSharedValueUsage","currentKey","element","Error","useAnimatedStyle","dependencies","viewsRef","initRef","inputs","values","_closure","_dependencies","__DEV__","__workletHash","adaptersArray","adaptersHash","push","initialStyle","initial","remoteState","sharableViewDescriptors","native","fun","updaterFn","adapter","mapperId","process","env","JEST_WORKER_ID"],"sources":["useAnimatedStyle.ts"],"sourcesContent":["import { MutableRefObject, useEffect, useRef } from 'react';\n\nimport { startMapper, stopMapper, makeRemote } from '../core';\nimport updateProps, { updatePropsJestWrapper } from '../UpdateProps';\nimport { initialUpdaterRun } from '../animation';\nimport NativeReanimatedModule from '../NativeReanimated';\nimport { useSharedValue } from './useSharedValue';\nimport {\n buildWorkletsHash,\n isAnimated,\n shallowEqual,\n validateAnimatedStyles,\n} from './utils';\nimport { DependencyList, Descriptor } from './commonTypes';\nimport {\n makeViewDescriptorsSet,\n makeViewsRefSet,\n ViewDescriptorsSet,\n ViewRefSet,\n} from '../ViewDescriptorsSet';\nimport { isJest, shouldBeUseWeb } from '../PlatformChecker';\nimport {\n AnimationObject,\n Timestamp,\n AdapterWorkletFunction,\n AnimatedStyle,\n BasicWorkletFunction,\n BasicWorkletFunctionOptional,\n NestedObjectValues,\n SharedValue,\n StyleProps,\n} from '../commonTypes';\nexport interface AnimatedStyleResult {\n viewDescriptors: ViewDescriptorsSet;\n initial: AnimatedStyle;\n viewsRef: ViewRefSet<any>;\n animatedStyle?: MutableRefObject<AnimatedStyle>;\n}\n\ninterface AnimatedState {\n last: AnimatedStyle;\n animations: AnimatedStyle;\n isAnimationRunning: boolean;\n isAnimationCancelled: boolean;\n}\n\ninterface AnimationRef {\n initial: {\n value: AnimatedStyle;\n updater: () => AnimatedStyle;\n };\n remoteState: AnimatedState;\n viewDescriptors: ViewDescriptorsSet;\n}\n\nfunction prepareAnimation(\n frameTimestamp: number,\n animatedProp: AnimatedStyle,\n lastAnimation: AnimatedStyle,\n lastValue: AnimatedStyle\n): void {\n 'worklet';\n if (Array.isArray(animatedProp)) {\n animatedProp.forEach((prop, index) => {\n prepareAnimation(\n frameTimestamp,\n prop,\n lastAnimation && lastAnimation[index],\n lastValue && lastValue[index]\n );\n });\n // return animatedProp;\n }\n if (typeof animatedProp === 'object' && animatedProp.onFrame) {\n const animation = animatedProp;\n\n let value = animation.current;\n if (lastValue !== undefined) {\n if (typeof lastValue === 'object') {\n if (lastValue.value !== undefined) {\n // previously it was a shared value\n value = lastValue.value;\n } else if (lastValue.onFrame !== undefined) {\n if (lastAnimation?.current !== undefined) {\n // it was an animation before, copy its state\n value = lastAnimation.current;\n } else if (lastValue?.current !== undefined) {\n // it was initialized\n value = lastValue.current;\n }\n }\n } else {\n // previously it was a plain value, just set it as starting point\n value = lastValue;\n }\n }\n\n animation.callStart = (timestamp: Timestamp) => {\n animation.onStart(animation, value, timestamp, lastAnimation);\n };\n animation.callStart(frameTimestamp);\n animation.callStart = null;\n } else if (typeof animatedProp === 'object') {\n // it is an object\n Object.keys(animatedProp).forEach((key) =>\n prepareAnimation(\n frameTimestamp,\n animatedProp[key],\n lastAnimation && lastAnimation[key],\n lastValue && lastValue[key]\n )\n );\n }\n}\n\nfunction runAnimations(\n animation: AnimatedStyle,\n timestamp: Timestamp,\n key: number | string,\n result: AnimatedStyle,\n animationsActive: SharedValue<boolean>\n): boolean {\n 'worklet';\n if (!animationsActive.value) {\n return true;\n }\n if (Array.isArray(animation)) {\n result[key] = [];\n let allFinished = true;\n animation.forEach((entry, index) => {\n if (\n !runAnimations(entry, timestamp, index, result[key], animationsActive)\n ) {\n allFinished = false;\n }\n });\n return allFinished;\n } else if (typeof animation === 'object' && animation.onFrame) {\n let finished = true;\n if (!animation.finished) {\n if (animation.callStart) {\n animation.callStart(timestamp);\n animation.callStart = null;\n }\n finished = animation.onFrame(animation, timestamp);\n animation.timestamp = timestamp;\n if (finished) {\n animation.finished = true;\n animation.callback && animation.callback(true /* finished */);\n }\n }\n result[key] = animation.current;\n return finished;\n } else if (typeof animation === 'object') {\n result[key] = {};\n let allFinished = true;\n Object.keys(animation).forEach((k) => {\n if (\n !runAnimations(\n animation[k],\n timestamp,\n k,\n result[key],\n animationsActive\n )\n ) {\n allFinished = false;\n }\n });\n return allFinished;\n } else {\n result[key] = animation;\n return true;\n }\n}\n\nfunction styleUpdater(\n viewDescriptors: SharedValue<Descriptor[]>,\n updater: BasicWorkletFunction<AnimatedStyle>,\n state: AnimatedState,\n maybeViewRef: ViewRefSet<any> | undefined,\n animationsActive: SharedValue<boolean>\n): void {\n 'worklet';\n const animations = state.animations ?? {};\n const newValues = updater() ?? {};\n const oldValues = state.last;\n const nonAnimatedNewValues: StyleProps = {};\n\n let hasAnimations = false;\n let frameTimestamp: number | undefined;\n let hasNonAnimatedValues = false;\n for (const key in newValues) {\n const value = newValues[key];\n if (isAnimated(value)) {\n frameTimestamp = global.__frameTimestamp || performance.now();\n prepareAnimation(frameTimestamp, value, animations[key], oldValues[key]);\n animations[key] = value;\n hasAnimations = true;\n } else {\n hasNonAnimatedValues = true;\n nonAnimatedNewValues[key] = value;\n delete animations[key];\n }\n }\n\n if (hasAnimations) {\n const frame = (timestamp: Timestamp) => {\n const { animations, last, isAnimationCancelled } = state;\n if (isAnimationCancelled) {\n state.isAnimationRunning = false;\n return;\n }\n\n const updates: AnimatedStyle = {};\n let allFinished = true;\n for (const propName in animations) {\n const finished = runAnimations(\n animations[propName],\n timestamp,\n propName,\n updates,\n animationsActive\n );\n if (finished) {\n last[propName] = updates[propName];\n delete animations[propName];\n } else {\n allFinished = false;\n }\n }\n\n if (updates) {\n updateProps(viewDescriptors, updates, maybeViewRef);\n }\n\n if (!allFinished) {\n requestAnimationFrame(frame);\n } else {\n state.isAnimationRunning = false;\n }\n };\n\n state.animations = animations;\n if (!state.isAnimationRunning) {\n state.isAnimationCancelled = false;\n state.isAnimationRunning = true;\n frame(frameTimestamp!);\n }\n\n if (hasNonAnimatedValues) {\n updateProps(viewDescriptors, nonAnimatedNewValues, maybeViewRef);\n }\n } else {\n state.isAnimationCancelled = true;\n state.animations = [];\n\n if (!shallowEqual(oldValues, newValues)) {\n updateProps(viewDescriptors, newValues, maybeViewRef);\n }\n }\n state.last = newValues;\n}\n\nfunction jestStyleUpdater(\n viewDescriptors: SharedValue<Descriptor[]>,\n updater: BasicWorkletFunction<AnimatedStyle>,\n state: AnimatedState,\n maybeViewRef: ViewRefSet<any> | undefined,\n animationsActive: SharedValue<boolean>,\n animatedStyle: MutableRefObject<AnimatedStyle>,\n adapters: AdapterWorkletFunction[] = []\n): void {\n 'worklet';\n const animations: AnimatedStyle = state.animations ?? {};\n const newValues = updater() ?? {};\n const oldValues = state.last;\n\n // extract animated props\n let hasAnimations = false;\n let frameTimestamp: number | undefined;\n Object.keys(animations).forEach((key) => {\n const value = newValues[key];\n if (!isAnimated(value)) {\n delete animations[key];\n }\n });\n Object.keys(newValues).forEach((key) => {\n const value = newValues[key];\n if (isAnimated(value)) {\n frameTimestamp = global.__frameTimestamp || performance.now();\n prepareAnimation(frameTimestamp, value, animations[key], oldValues[key]);\n animations[key] = value;\n hasAnimations = true;\n }\n });\n\n function frame(timestamp: Timestamp) {\n const { animations, last, isAnimationCancelled } = state;\n if (isAnimationCancelled) {\n state.isAnimationRunning = false;\n return;\n }\n\n const updates: AnimatedStyle = {};\n let allFinished = true;\n Object.keys(animations).forEach((propName) => {\n const finished = runAnimations(\n animations[propName],\n timestamp,\n propName,\n updates,\n animationsActive\n );\n if (finished) {\n last[propName] = updates[propName];\n delete animations[propName];\n } else {\n allFinished = false;\n }\n });\n\n if (Object.keys(updates).length) {\n updatePropsJestWrapper(\n viewDescriptors,\n updates,\n maybeViewRef,\n animatedStyle,\n adapters\n );\n }\n\n if (!allFinished) {\n requestAnimationFrame(frame);\n } else {\n state.isAnimationRunning = false;\n }\n }\n\n if (hasAnimations) {\n state.animations = animations;\n if (!state.isAnimationRunning) {\n state.isAnimationCancelled = false;\n state.isAnimationRunning = true;\n frame(frameTimestamp!);\n }\n } else {\n state.isAnimationCancelled = true;\n state.animations = [];\n }\n\n // calculate diff\n state.last = newValues;\n\n if (!shallowEqual(oldValues, newValues)) {\n updatePropsJestWrapper(\n viewDescriptors,\n newValues,\n maybeViewRef,\n animatedStyle,\n adapters\n );\n }\n}\n\n// check for invalid usage of shared values in returned object\nfunction checkSharedValueUsage(\n prop: NestedObjectValues<AnimationObject>,\n currentKey?: string\n): void {\n if (Array.isArray(prop)) {\n // if it's an array (i.ex. transform) validate all its elements\n for (const element of prop) {\n checkSharedValueUsage(element, currentKey);\n }\n } else if (typeof prop === 'object' && prop.value === undefined) {\n // if it's a nested object, run validation for all its props\n for (const key of Object.keys(prop)) {\n checkSharedValueUsage(prop[key], key);\n }\n } else if (\n currentKey !== undefined &&\n typeof prop === 'object' &&\n prop.value !== undefined\n ) {\n // if shared value is passed insted of its value, throw an error\n throw new Error(\n `invalid value passed to \\`${currentKey}\\`, maybe you forgot to use \\`.value\\`?`\n );\n }\n}\n\nexport function useAnimatedStyle<T extends AnimatedStyle>(\n updater: BasicWorkletFunction<T>,\n dependencies?: DependencyList,\n adapters?: AdapterWorkletFunction | AdapterWorkletFunction[]\n): AnimatedStyleResult {\n const viewsRef: ViewRefSet<any> = makeViewsRefSet();\n const initRef = useRef<AnimationRef>();\n let inputs = Object.values(updater._closure ?? {});\n if (shouldBeUseWeb()) {\n if (!inputs.length && dependencies?.length) {\n // let web work without a Babel/SWC plugin\n inputs = dependencies;\n }\n if (__DEV__ && !inputs.length && !dependencies && !updater.__workletHash) {\n throw new Error(\n `useAnimatedStyle was used without a dependency array or Babel plugin. Please explicitly pass a dependency array, or enable the Babel/SWC plugin.\n\nFor more, see the docs: https://docs.swmansion.com/react-native-reanimated/docs/fundamentals/web-support#web-without-a-babel-plugin`\n );\n }\n }\n const adaptersArray: AdapterWorkletFunction[] = adapters\n ? Array.isArray(adapters)\n ? adapters\n : [adapters]\n : [];\n const adaptersHash = adapters ? buildWorkletsHash(adaptersArray) : null;\n const animationsActive = useSharedValue<boolean>(true);\n const animatedStyle: MutableRefObject<AnimatedStyle> = useRef<AnimatedStyle>(\n {}\n );\n\n // build dependencies\n if (!dependencies) {\n dependencies = [...inputs, updater.__workletHash];\n } else {\n dependencies.push(updater.__workletHash);\n }\n adaptersHash && dependencies.push(adaptersHash);\n\n if (!initRef.current) {\n const initialStyle: AnimatedStyle = initialUpdaterRun(updater);\n validateAnimatedStyles(initialStyle);\n initRef.current = {\n initial: {\n value: initialStyle,\n updater: updater,\n },\n remoteState: makeRemote<AnimatedState>({\n last: initialStyle,\n animations: {},\n isAnimationCancelled: false,\n isAnimationRunning: false,\n }),\n viewDescriptors: makeViewDescriptorsSet(),\n };\n }\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const { initial, remoteState, viewDescriptors } = initRef.current!;\n const sharableViewDescriptors = viewDescriptors.sharableViewDescriptors;\n const maybeViewRef = NativeReanimatedModule.native ? undefined : viewsRef;\n\n dependencies.push(sharableViewDescriptors);\n\n useEffect(() => {\n let fun;\n let updaterFn = updater as BasicWorkletFunctionOptional<T>;\n if (adapters) {\n updaterFn = () => {\n 'worklet';\n const newValues = updater();\n adaptersArray.forEach((adapter) => {\n adapter(newValues);\n });\n return newValues;\n };\n }\n\n if (isJest()) {\n fun = () => {\n 'worklet';\n jestStyleUpdater(\n sharableViewDescriptors,\n updater,\n remoteState,\n maybeViewRef,\n animationsActive,\n animatedStyle,\n adaptersArray\n );\n };\n } else {\n fun = () => {\n 'worklet';\n styleUpdater(\n sharableViewDescriptors,\n updaterFn,\n remoteState,\n maybeViewRef,\n animationsActive\n );\n };\n }\n const mapperId = startMapper(fun, inputs);\n return () => {\n stopMapper(mapperId);\n };\n }, dependencies);\n\n useEffect(() => {\n animationsActive.value = true;\n return () => {\n animationsActive.value = false;\n };\n }, []);\n\n checkSharedValueUsage(initial.value);\n\n if (process.env.JEST_WORKER_ID) {\n return { viewDescriptors, initial: initial, viewsRef, animatedStyle };\n } else {\n return { viewDescriptors, initial: initial, viewsRef };\n }\n}\n"],"mappings":"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"}
@@ -5,28 +5,25 @@ import { shouldBeUseWeb } from '../PlatformChecker';
5
5
  export function useDerivedValue(processor, dependencies) {
6
6
  const initRef = useRef(null);
7
7
  let inputs = Object.values(processor._closure ?? {});
8
-
9
8
  if (shouldBeUseWeb()) {
10
9
  var _dependencies;
11
-
12
10
  if (!inputs.length && (_dependencies = dependencies) !== null && _dependencies !== void 0 && _dependencies.length) {
13
11
  // let web work without a Babel/SWC plugin
14
12
  inputs = dependencies;
15
13
  }
16
- } // build dependencies
17
-
14
+ }
18
15
 
16
+ // build dependencies
19
17
  if (dependencies === undefined) {
20
18
  dependencies = [...inputs, processor.__workletHash];
21
19
  } else {
22
20
  dependencies.push(processor.__workletHash);
23
21
  }
24
-
25
22
  if (initRef.current === null) {
26
23
  initRef.current = makeMutable(initialUpdaterRun(processor));
27
- } // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
28
-
24
+ }
29
25
 
26
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
30
27
  const sharedValue = initRef.current;
31
28
  useEffect(() => {
32
29
  const fun = () => {
@@ -34,7 +31,6 @@ export function useDerivedValue(processor, dependencies) {
34
31
 
35
32
  sharedValue.value = processor();
36
33
  };
37
-
38
34
  const mapperId = startMapper(fun, inputs, [sharedValue]);
39
35
  return () => {
40
36
  stopMapper(mapperId);
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useRef","initialUpdaterRun","makeMutable","startMapper","stopMapper","shouldBeUseWeb","useDerivedValue","processor","dependencies","initRef","inputs","Object","values","_closure","length","undefined","__workletHash","push","current","sharedValue","fun","value","mapperId"],"sources":["useDerivedValue.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport { initialUpdaterRun } from '../animation';\nimport { BasicWorkletFunction, SharedValue } from '../commonTypes';\nimport { makeMutable, startMapper, stopMapper } from '../core';\nimport { DependencyList } from './commonTypes';\nimport { shouldBeUseWeb } from '../PlatformChecker';\n\nexport type DerivedValue<T> = Readonly<SharedValue<T>>;\n\nexport function useDerivedValue<T>(\n processor: BasicWorkletFunction<T>,\n dependencies: DependencyList\n): DerivedValue<T> {\n const initRef = useRef<SharedValue<T> | null>(null);\n let inputs = Object.values(processor._closure ?? {});\n if (shouldBeUseWeb()) {\n if (!inputs.length && dependencies?.length) {\n // let web work without a Babel/SWC plugin\n inputs = dependencies;\n }\n }\n\n // build dependencies\n if (dependencies === undefined) {\n dependencies = [...inputs, processor.__workletHash];\n } else {\n dependencies.push(processor.__workletHash);\n }\n\n if (initRef.current === null) {\n initRef.current = makeMutable(initialUpdaterRun(processor));\n }\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const sharedValue: SharedValue<T> = initRef.current!;\n\n useEffect(() => {\n const fun = () => {\n 'worklet';\n sharedValue.value = processor();\n };\n const mapperId = startMapper(fun, inputs, [sharedValue]);\n return () => {\n stopMapper(mapperId);\n };\n }, dependencies);\n\n useEffect(() => {\n return () => {\n initRef.current = null;\n };\n }, []);\n\n return sharedValue;\n}\n"],"mappings":"AAAA,SAASA,SAAT,EAAoBC,MAApB,QAAkC,OAAlC;AACA,SAASC,iBAAT,QAAkC,cAAlC;AAEA,SAASC,WAAT,EAAsBC,WAAtB,EAAmCC,UAAnC,QAAqD,SAArD;AAEA,SAASC,cAAT,QAA+B,oBAA/B;AAIA,OAAO,SAASC,eAAT,CACLC,SADK,EAELC,YAFK,EAGY;EACjB,MAAMC,OAAO,GAAGT,MAAM,CAAwB,IAAxB,CAAtB;EACA,IAAIU,MAAM,GAAGC,MAAM,CAACC,MAAP,CAAcL,SAAS,CAACM,QAAV,IAAsB,EAApC,CAAb;;EACA,IAAIR,cAAc,EAAlB,EAAsB;IAAA;;IACpB,IAAI,CAACK,MAAM,CAACI,MAAR,qBAAkBN,YAAlB,0CAAkB,cAAcM,MAApC,EAA4C;MAC1C;MACAJ,MAAM,GAAGF,YAAT;IACD;EACF,CARgB,CAUjB;;;EACA,IAAIA,YAAY,KAAKO,SAArB,EAAgC;IAC9BP,YAAY,GAAG,CAAC,GAAGE,MAAJ,EAAYH,SAAS,CAACS,aAAtB,CAAf;EACD,CAFD,MAEO;IACLR,YAAY,CAACS,IAAb,CAAkBV,SAAS,CAACS,aAA5B;EACD;;EAED,IAAIP,OAAO,CAACS,OAAR,KAAoB,IAAxB,EAA8B;IAC5BT,OAAO,CAACS,OAAR,GAAkBhB,WAAW,CAACD,iBAAiB,CAACM,SAAD,CAAlB,CAA7B;EACD,CAnBgB,CAqBjB;;;EACA,MAAMY,WAA2B,GAAGV,OAAO,CAACS,OAA5C;EAEAnB,SAAS,CAAC,MAAM;IACd,MAAMqB,GAAG,GAAG,MAAM;MAChB;;MACAD,WAAW,CAACE,KAAZ,GAAoBd,SAAS,EAA7B;IACD,CAHD;;IAIA,MAAMe,QAAQ,GAAGnB,WAAW,CAACiB,GAAD,EAAMV,MAAN,EAAc,CAACS,WAAD,CAAd,CAA5B;IACA,OAAO,MAAM;MACXf,UAAU,CAACkB,QAAD,CAAV;IACD,CAFD;EAGD,CATQ,EASNd,YATM,CAAT;EAWAT,SAAS,CAAC,MAAM;IACd,OAAO,MAAM;MACXU,OAAO,CAACS,OAAR,GAAkB,IAAlB;IACD,CAFD;EAGD,CAJQ,EAIN,EAJM,CAAT;EAMA,OAAOC,WAAP;AACD"}
1
+ {"version":3,"names":["useEffect","useRef","initialUpdaterRun","makeMutable","startMapper","stopMapper","shouldBeUseWeb","useDerivedValue","processor","dependencies","initRef","inputs","Object","values","_closure","_dependencies","length","undefined","__workletHash","push","current","sharedValue","fun","value","mapperId"],"sources":["useDerivedValue.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport { initialUpdaterRun } from '../animation';\nimport { BasicWorkletFunction, SharedValue } from '../commonTypes';\nimport { makeMutable, startMapper, stopMapper } from '../core';\nimport { DependencyList } from './commonTypes';\nimport { shouldBeUseWeb } from '../PlatformChecker';\n\nexport type DerivedValue<T> = Readonly<SharedValue<T>>;\n\nexport function useDerivedValue<T>(\n processor: BasicWorkletFunction<T>,\n dependencies: DependencyList\n): DerivedValue<T> {\n const initRef = useRef<SharedValue<T> | null>(null);\n let inputs = Object.values(processor._closure ?? {});\n if (shouldBeUseWeb()) {\n if (!inputs.length && dependencies?.length) {\n // let web work without a Babel/SWC plugin\n inputs = dependencies;\n }\n }\n\n // build dependencies\n if (dependencies === undefined) {\n dependencies = [...inputs, processor.__workletHash];\n } else {\n dependencies.push(processor.__workletHash);\n }\n\n if (initRef.current === null) {\n initRef.current = makeMutable(initialUpdaterRun(processor));\n }\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const sharedValue: SharedValue<T> = initRef.current!;\n\n useEffect(() => {\n const fun = () => {\n 'worklet';\n sharedValue.value = processor();\n };\n const mapperId = startMapper(fun, inputs, [sharedValue]);\n return () => {\n stopMapper(mapperId);\n };\n }, dependencies);\n\n useEffect(() => {\n return () => {\n initRef.current = null;\n };\n }, []);\n\n return sharedValue;\n}\n"],"mappings":"AAAA,SAASA,SAAS,EAAEC,MAAM,QAAQ,OAAO;AACzC,SAASC,iBAAiB,QAAQ,cAAc;AAEhD,SAASC,WAAW,EAAEC,WAAW,EAAEC,UAAU,QAAQ,SAAS;AAE9D,SAASC,cAAc,QAAQ,oBAAoB;AAInD,OAAO,SAASC,eAAeA,CAC7BC,SAAkC,EAClCC,YAA4B,EACX;EACjB,MAAMC,OAAO,GAAGT,MAAM,CAAwB,IAAI,CAAC;EACnD,IAAIU,MAAM,GAAGC,MAAM,CAACC,MAAM,CAACL,SAAS,CAACM,QAAQ,IAAI,CAAC,CAAC,CAAC;EACpD,IAAIR,cAAc,EAAE,EAAE;IAAA,IAAAS,aAAA;IACpB,IAAI,CAACJ,MAAM,CAACK,MAAM,KAAAD,aAAA,GAAIN,YAAY,cAAAM,aAAA,eAAZA,aAAA,CAAcC,MAAM,EAAE;MAC1C;MACAL,MAAM,GAAGF,YAAY;IACvB;EACF;;EAEA;EACA,IAAIA,YAAY,KAAKQ,SAAS,EAAE;IAC9BR,YAAY,GAAG,CAAC,GAAGE,MAAM,EAAEH,SAAS,CAACU,aAAa,CAAC;EACrD,CAAC,MAAM;IACLT,YAAY,CAACU,IAAI,CAACX,SAAS,CAACU,aAAa,CAAC;EAC5C;EAEA,IAAIR,OAAO,CAACU,OAAO,KAAK,IAAI,EAAE;IAC5BV,OAAO,CAACU,OAAO,GAAGjB,WAAW,CAACD,iBAAiB,CAACM,SAAS,CAAC,CAAC;EAC7D;;EAEA;EACA,MAAMa,WAA2B,GAAGX,OAAO,CAACU,OAAQ;EAEpDpB,SAAS,CAAC,MAAM;IACd,MAAMsB,GAAG,GAAGA,CAAA,KAAM;MAChB,SAAS;;MACTD,WAAW,CAACE,KAAK,GAAGf,SAAS,EAAE;IACjC,CAAC;IACD,MAAMgB,QAAQ,GAAGpB,WAAW,CAACkB,GAAG,EAAEX,MAAM,EAAE,CAACU,WAAW,CAAC,CAAC;IACxD,OAAO,MAAM;MACXhB,UAAU,CAACmB,QAAQ,CAAC;IACtB,CAAC;EACH,CAAC,EAAEf,YAAY,CAAC;EAEhBT,SAAS,CAAC,MAAM;IACd,OAAO,MAAM;MACXU,OAAO,CAACU,OAAO,GAAG,IAAI;IACxB,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOC,WAAW;AACpB"}
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useRef","FrameCallbackRegistryJS","frameCallbackRegistry","useFrameCallback","callback","autostart","ref","setActive","isActive","manageStateFrameCallback","current","callbackId","registerFrameCallback","unregisterFrameCallback"],"sources":["useFrameCallback.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport FrameCallbackRegistryJS from '../frameCallback/FrameCallbackRegistryJS';\nimport { FrameInfo } from '../frameCallback/FrameCallbackRegistryUI';\n\nexport type FrameCallback = {\n setActive: (isActive: boolean) => void;\n isActive: boolean;\n callbackId: number;\n};\nconst frameCallbackRegistry = new FrameCallbackRegistryJS();\n\nexport function useFrameCallback(\n callback: (frameInfo: FrameInfo) => void,\n autostart = true\n): FrameCallback {\n const ref = useRef<FrameCallback>({\n setActive: (isActive: boolean) => {\n frameCallbackRegistry.manageStateFrameCallback(\n ref.current.callbackId,\n isActive\n );\n ref.current.isActive = isActive;\n },\n isActive: autostart,\n callbackId: -1,\n });\n\n useEffect(() => {\n ref.current.callbackId =\n frameCallbackRegistry.registerFrameCallback(callback);\n ref.current.setActive(ref.current.isActive);\n\n return () => {\n frameCallbackRegistry.unregisterFrameCallback(ref.current.callbackId);\n ref.current.callbackId = -1;\n };\n }, [callback, autostart]);\n\n return ref.current;\n}\n"],"mappings":"AAAA,SAASA,SAAT,EAAoBC,MAApB,QAAkC,OAAlC;AACA,OAAOC,uBAAP,MAAoC,0CAApC;AAQA,MAAMC,qBAAqB,GAAG,IAAID,uBAAJ,EAA9B;AAEA,OAAO,SAASE,gBAAT,CACLC,QADK,EAGU;EAAA,IADfC,SACe,uEADH,IACG;EACf,MAAMC,GAAG,GAAGN,MAAM,CAAgB;IAChCO,SAAS,EAAGC,QAAD,IAAuB;MAChCN,qBAAqB,CAACO,wBAAtB,CACEH,GAAG,CAACI,OAAJ,CAAYC,UADd,EAEEH,QAFF;MAIAF,GAAG,CAACI,OAAJ,CAAYF,QAAZ,GAAuBA,QAAvB;IACD,CAP+B;IAQhCA,QAAQ,EAAEH,SARsB;IAShCM,UAAU,EAAE,CAAC;EATmB,CAAhB,CAAlB;EAYAZ,SAAS,CAAC,MAAM;IACdO,GAAG,CAACI,OAAJ,CAAYC,UAAZ,GACET,qBAAqB,CAACU,qBAAtB,CAA4CR,QAA5C,CADF;IAEAE,GAAG,CAACI,OAAJ,CAAYH,SAAZ,CAAsBD,GAAG,CAACI,OAAJ,CAAYF,QAAlC;IAEA,OAAO,MAAM;MACXN,qBAAqB,CAACW,uBAAtB,CAA8CP,GAAG,CAACI,OAAJ,CAAYC,UAA1D;MACAL,GAAG,CAACI,OAAJ,CAAYC,UAAZ,GAAyB,CAAC,CAA1B;IACD,CAHD;EAID,CATQ,EASN,CAACP,QAAD,EAAWC,SAAX,CATM,CAAT;EAWA,OAAOC,GAAG,CAACI,OAAX;AACD"}
1
+ {"version":3,"names":["useEffect","useRef","FrameCallbackRegistryJS","frameCallbackRegistry","useFrameCallback","callback","autostart","arguments","length","undefined","ref","setActive","isActive","manageStateFrameCallback","current","callbackId","registerFrameCallback","unregisterFrameCallback"],"sources":["useFrameCallback.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport FrameCallbackRegistryJS from '../frameCallback/FrameCallbackRegistryJS';\nimport { FrameInfo } from '../frameCallback/FrameCallbackRegistryUI';\n\nexport type FrameCallback = {\n setActive: (isActive: boolean) => void;\n isActive: boolean;\n callbackId: number;\n};\nconst frameCallbackRegistry = new FrameCallbackRegistryJS();\n\nexport function useFrameCallback(\n callback: (frameInfo: FrameInfo) => void,\n autostart = true\n): FrameCallback {\n const ref = useRef<FrameCallback>({\n setActive: (isActive: boolean) => {\n frameCallbackRegistry.manageStateFrameCallback(\n ref.current.callbackId,\n isActive\n );\n ref.current.isActive = isActive;\n },\n isActive: autostart,\n callbackId: -1,\n });\n\n useEffect(() => {\n ref.current.callbackId =\n frameCallbackRegistry.registerFrameCallback(callback);\n ref.current.setActive(ref.current.isActive);\n\n return () => {\n frameCallbackRegistry.unregisterFrameCallback(ref.current.callbackId);\n ref.current.callbackId = -1;\n };\n }, [callback, autostart]);\n\n return ref.current;\n}\n"],"mappings":"AAAA,SAASA,SAAS,EAAEC,MAAM,QAAQ,OAAO;AACzC,OAAOC,uBAAuB,MAAM,0CAA0C;AAQ9E,MAAMC,qBAAqB,GAAG,IAAID,uBAAuB,EAAE;AAE3D,OAAO,SAASE,gBAAgBA,CAC9BC,QAAwC,EAEzB;EAAA,IADfC,SAAS,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;EAEhB,MAAMG,GAAG,GAAGT,MAAM,CAAgB;IAChCU,SAAS,EAAGC,QAAiB,IAAK;MAChCT,qBAAqB,CAACU,wBAAwB,CAC5CH,GAAG,CAACI,OAAO,CAACC,UAAU,EACtBH,QAAQ,CACT;MACDF,GAAG,CAACI,OAAO,CAACF,QAAQ,GAAGA,QAAQ;IACjC,CAAC;IACDA,QAAQ,EAAEN,SAAS;IACnBS,UAAU,EAAE,CAAC;EACf,CAAC,CAAC;EAEFf,SAAS,CAAC,MAAM;IACdU,GAAG,CAACI,OAAO,CAACC,UAAU,GACpBZ,qBAAqB,CAACa,qBAAqB,CAACX,QAAQ,CAAC;IACvDK,GAAG,CAACI,OAAO,CAACH,SAAS,CAACD,GAAG,CAACI,OAAO,CAACF,QAAQ,CAAC;IAE3C,OAAO,MAAM;MACXT,qBAAqB,CAACc,uBAAuB,CAACP,GAAG,CAACI,OAAO,CAACC,UAAU,CAAC;MACrEL,GAAG,CAACI,OAAO,CAACC,UAAU,GAAG,CAAC,CAAC;IAC7B,CAAC;EACH,CAAC,EAAE,CAACV,QAAQ,EAAEC,SAAS,CAAC,CAAC;EAEzB,OAAOI,GAAG,CAACI,OAAO;AACpB"}
@@ -12,7 +12,6 @@ export function useScrollViewOffset(aref) {
12
12
  }, scrollEventNames);
13
13
  useEffect(() => {
14
14
  var _event$current;
15
-
16
15
  const viewTag = findNodeHandle(aref.current);
17
16
  (_event$current = event.current) === null || _event$current === void 0 ? void 0 : _event$current.registerForEvents(viewTag);
18
17
  }, [aref.current]);