react-native-reanimated 3.0.0-rc.9 → 3.0.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 (329) hide show
  1. package/Common/cpp/AnimatedSensor/AnimatedSensorModule.cpp +30 -12
  2. package/Common/cpp/AnimatedSensor/AnimatedSensorModule.h +2 -0
  3. package/Common/cpp/Fabric/FabricUtils.cpp +3 -107
  4. package/Common/cpp/Fabric/FabricUtils.h +3 -24
  5. package/Common/cpp/Fabric/ReanimatedUIManagerBinding.cpp +54 -37
  6. package/Common/cpp/LayoutAnimations/LayoutAnimationType.h +8 -0
  7. package/Common/cpp/LayoutAnimations/LayoutAnimationsManager.cpp +81 -26
  8. package/Common/cpp/LayoutAnimations/LayoutAnimationsManager.h +20 -3
  9. package/Common/cpp/NativeModules/NativeReanimatedModule.cpp +105 -109
  10. package/Common/cpp/NativeModules/NativeReanimatedModule.h +19 -12
  11. package/Common/cpp/NativeModules/NativeReanimatedModuleSpec.cpp +15 -7
  12. package/Common/cpp/NativeModules/NativeReanimatedModuleSpec.h +6 -2
  13. package/Common/cpp/ReanimatedRuntime/ReanimatedHermesRuntime.cpp +20 -1
  14. package/Common/cpp/ReanimatedRuntime/ReanimatedHermesRuntime.h +9 -0
  15. package/Common/cpp/ReanimatedRuntime/ReanimatedRuntime.cpp +5 -1
  16. package/Common/cpp/Registries/EventHandlerRegistry.cpp +8 -34
  17. package/Common/cpp/Registries/EventHandlerRegistry.h +7 -13
  18. package/Common/cpp/SharedItems/Shareables.cpp +9 -63
  19. package/Common/cpp/SharedItems/Shareables.h +77 -72
  20. package/Common/cpp/Tools/CollectionUtils.h +14 -0
  21. package/Common/cpp/Tools/JsiUtils.cpp +26 -0
  22. package/Common/cpp/Tools/JsiUtils.h +176 -0
  23. package/Common/cpp/Tools/PlatformDepMethodsHolder.h +5 -5
  24. package/Common/cpp/Tools/ReanimatedVersion.cpp +17 -0
  25. package/Common/cpp/Tools/ReanimatedVersion.h +11 -0
  26. package/Common/cpp/Tools/RuntimeDecorator.cpp +49 -230
  27. package/Common/cpp/Tools/RuntimeDecorator.h +0 -2
  28. package/Common/cpp/Tools/WorkletEventHandler.cpp +3 -2
  29. package/Common/cpp/Tools/WorkletEventHandler.h +14 -6
  30. package/RNReanimated.podspec +2 -1
  31. package/android/CMakeLists.txt +188 -181
  32. package/android/build.gradle +362 -311
  33. package/android/proguard-rules.pro +2 -0
  34. package/android/src/fabric/java/com/swmansion/reanimated/NativeProxy.java +63 -295
  35. package/android/src/main/cpp/LayoutAnimations.cpp +35 -5
  36. package/android/src/main/cpp/LayoutAnimations.h +23 -6
  37. package/android/src/main/cpp/NativeProxy.cpp +143 -98
  38. package/android/src/main/cpp/NativeProxy.h +22 -28
  39. package/android/src/main/java/com/swmansion/reanimated/ReanimatedPackage.java +5 -4
  40. package/android/src/main/java/com/swmansion/reanimated/Utils.java +7 -1
  41. package/android/src/main/java/com/swmansion/reanimated/keyboardObserver/ReanimatedKeyboardEventListener.java +10 -3
  42. package/android/src/main/java/com/swmansion/reanimated/layoutReanimation/AnimationsManager.java +218 -35
  43. package/android/src/main/java/com/swmansion/reanimated/layoutReanimation/LayoutAnimations.java +43 -17
  44. package/android/src/main/java/com/swmansion/reanimated/layoutReanimation/NativeMethodsHolder.java +6 -2
  45. package/android/src/main/java/com/swmansion/reanimated/layoutReanimation/SharedElement.java +19 -0
  46. package/android/src/main/java/com/swmansion/reanimated/layoutReanimation/SharedTransitionManager.java +610 -0
  47. package/android/src/main/java/com/swmansion/reanimated/layoutReanimation/Snapshot.java +93 -23
  48. package/android/src/main/java/com/swmansion/reanimated/nativeProxy/AnimationFrameCallback.java +19 -0
  49. package/android/src/main/java/com/swmansion/reanimated/nativeProxy/EventHandler.java +35 -0
  50. package/android/src/main/java/com/swmansion/reanimated/nativeProxy/KeyboardEventDataUpdater.java +16 -0
  51. package/android/src/main/java/com/swmansion/reanimated/nativeProxy/NativeProxyCommon.java +206 -0
  52. package/android/src/main/java/com/swmansion/reanimated/nativeProxy/SensorSetter.java +17 -0
  53. package/android/src/main/java/com/swmansion/reanimated/sensor/ReanimatedSensor.java +9 -3
  54. package/android/src/main/java/com/swmansion/reanimated/sensor/ReanimatedSensorContainer.java +3 -4
  55. package/android/src/main/java/com/swmansion/reanimated/sensor/ReanimatedSensorListener.java +31 -7
  56. package/android/src/paper/java/com/swmansion/reanimated/NativeProxy.java +90 -307
  57. package/android/src/reactNativeVersionPatch/ReanimatedUIManager/70/com/swmansion/reanimated/ReanimatedUIManagerFactory.java +16 -0
  58. package/android/src/reactNativeVersionPatch/ReanimatedUIManager/latest/com/swmansion/reanimated/ReanimatedUIManagerFactory.java +63 -0
  59. package/android/src/reactNativeVersionPatch/ReanimatedUIManager/latest/com/swmansion/reanimated/layoutReanimation/ReanimatedUIManager.java +271 -0
  60. package/android/src/reactNativeVersionPatch/nativeHierarchyManager/latest/com/swmansion/reanimated/layoutReanimation/ReanimatedNativeHierarchyManager.java +76 -20
  61. package/ios/LayoutReanimation/REAAnimationsManager.h +28 -4
  62. package/ios/LayoutReanimation/REAAnimationsManager.m +216 -61
  63. package/ios/LayoutReanimation/REAFrame.h +10 -0
  64. package/ios/LayoutReanimation/REAFrame.m +15 -0
  65. package/ios/LayoutReanimation/REAScreensHelper.h +19 -0
  66. package/ios/LayoutReanimation/REAScreensHelper.m +106 -0
  67. package/ios/LayoutReanimation/REASharedElement.h +15 -0
  68. package/ios/LayoutReanimation/REASharedElement.m +16 -0
  69. package/ios/LayoutReanimation/REASharedTransitionManager.h +17 -0
  70. package/ios/LayoutReanimation/REASharedTransitionManager.m +632 -0
  71. package/ios/LayoutReanimation/REASnapshot.h +1 -0
  72. package/ios/LayoutReanimation/REASnapshot.m +96 -11
  73. package/ios/LayoutReanimation/REAUIManager.mm +64 -17
  74. package/ios/REAModule.mm +2 -7
  75. package/ios/REANodesManager.mm +1 -21
  76. package/ios/keyboardObserver/REAKeyboardEventObserver.m +72 -36
  77. package/ios/native/NativeProxy.mm +75 -114
  78. package/ios/native/REAInitializer.mm +2 -7
  79. package/ios/native/REAJSIUtils.h +60 -2
  80. package/ios/sensor/ReanimatedSensor.h +6 -2
  81. package/ios/sensor/ReanimatedSensor.m +43 -7
  82. package/ios/sensor/ReanimatedSensorContainer.h +4 -1
  83. package/ios/sensor/ReanimatedSensorContainer.m +8 -2
  84. package/lib/commonjs/createAnimatedComponent.js +232 -28
  85. package/lib/commonjs/createAnimatedComponent.js.map +1 -1
  86. package/lib/commonjs/reanimated2/Colors.js +43 -22
  87. package/lib/commonjs/reanimated2/Colors.js.map +1 -1
  88. package/lib/commonjs/reanimated2/NativeReanimated/NativeReanimated.js +16 -33
  89. package/lib/commonjs/reanimated2/NativeReanimated/NativeReanimated.js.map +1 -1
  90. package/lib/commonjs/reanimated2/animation/styleAnimation.js +5 -1
  91. package/lib/commonjs/reanimated2/animation/styleAnimation.js.map +1 -1
  92. package/lib/commonjs/reanimated2/animation/util.js +17 -15
  93. package/lib/commonjs/reanimated2/animation/util.js.map +1 -1
  94. package/lib/commonjs/reanimated2/commonTypes.js +33 -1
  95. package/lib/commonjs/reanimated2/commonTypes.js.map +1 -1
  96. package/lib/commonjs/reanimated2/core.js +33 -14
  97. package/lib/commonjs/reanimated2/core.js.map +1 -1
  98. package/lib/commonjs/reanimated2/frameCallback/FrameCallbackRegistryUI.js +2 -2
  99. package/lib/commonjs/reanimated2/frameCallback/FrameCallbackRegistryUI.js.map +1 -1
  100. package/lib/commonjs/reanimated2/globals.d.js.map +1 -1
  101. package/lib/commonjs/reanimated2/hook/index.js +0 -6
  102. package/lib/commonjs/reanimated2/hook/index.js.map +1 -1
  103. package/lib/commonjs/reanimated2/hook/useAnimatedKeyboard.js +5 -2
  104. package/lib/commonjs/reanimated2/hook/useAnimatedKeyboard.js.map +1 -1
  105. package/lib/commonjs/reanimated2/hook/useAnimatedReaction.js +13 -1
  106. package/lib/commonjs/reanimated2/hook/useAnimatedReaction.js.map +1 -1
  107. package/lib/commonjs/reanimated2/hook/useAnimatedRef.js +1 -1
  108. package/lib/commonjs/reanimated2/hook/useAnimatedRef.js.map +1 -1
  109. package/lib/commonjs/reanimated2/hook/useAnimatedSensor.js +89 -16
  110. package/lib/commonjs/reanimated2/hook/useAnimatedSensor.js.map +1 -1
  111. package/lib/commonjs/reanimated2/hook/useAnimatedStyle.js +43 -40
  112. package/lib/commonjs/reanimated2/hook/useAnimatedStyle.js.map +1 -1
  113. package/lib/commonjs/reanimated2/hook/useDerivedValue.js +13 -1
  114. package/lib/commonjs/reanimated2/hook/useDerivedValue.js.map +1 -1
  115. package/lib/commonjs/reanimated2/hook/useScrollViewOffset.js +2 -2
  116. package/lib/commonjs/reanimated2/hook/useScrollViewOffset.js.map +1 -1
  117. package/lib/commonjs/reanimated2/hook/utils.js +18 -65
  118. package/lib/commonjs/reanimated2/hook/utils.js.map +1 -1
  119. package/lib/commonjs/reanimated2/index.js +13 -0
  120. package/lib/commonjs/reanimated2/index.js.map +1 -1
  121. package/lib/commonjs/reanimated2/initializers.js +71 -32
  122. package/lib/commonjs/reanimated2/initializers.js.map +1 -1
  123. package/lib/commonjs/reanimated2/interpolateColor.js +96 -19
  124. package/lib/commonjs/reanimated2/interpolateColor.js.map +1 -1
  125. package/lib/commonjs/reanimated2/jestUtils.js +1 -1
  126. package/lib/commonjs/reanimated2/jestUtils.js.map +1 -1
  127. package/lib/commonjs/reanimated2/js-reanimated/JSReanimated.js +103 -13
  128. package/lib/commonjs/reanimated2/js-reanimated/JSReanimated.js.map +1 -1
  129. package/lib/commonjs/reanimated2/js-reanimated/Mapper.js +22 -0
  130. package/lib/commonjs/reanimated2/js-reanimated/Mapper.js.map +1 -1
  131. package/lib/commonjs/reanimated2/js-reanimated/WebSensor.js +2 -0
  132. package/lib/commonjs/reanimated2/js-reanimated/WebSensor.js.map +1 -0
  133. package/lib/commonjs/reanimated2/js-reanimated/commonTypes.js.map +1 -1
  134. package/lib/commonjs/reanimated2/js-reanimated/global.js +0 -2
  135. package/lib/commonjs/reanimated2/js-reanimated/global.js.map +1 -1
  136. package/lib/commonjs/reanimated2/js-reanimated/index.js +0 -1
  137. package/lib/commonjs/reanimated2/js-reanimated/index.js.map +1 -1
  138. package/lib/commonjs/reanimated2/layoutReanimation/animationBuilder/commonTypes.js +11 -0
  139. package/lib/commonjs/reanimated2/layoutReanimation/animationBuilder/commonTypes.js.map +1 -1
  140. package/lib/commonjs/reanimated2/layoutReanimation/animationBuilder/index.js +8 -0
  141. package/lib/commonjs/reanimated2/layoutReanimation/animationBuilder/index.js.map +1 -1
  142. package/lib/commonjs/reanimated2/layoutReanimation/animationsManager.js +17 -9
  143. package/lib/commonjs/reanimated2/layoutReanimation/animationsManager.js.map +1 -1
  144. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Bounce.js +16 -23
  145. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Bounce.js.map +1 -1
  146. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Lightspeed.js +8 -14
  147. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Lightspeed.js.map +1 -1
  148. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Roll.js +8 -14
  149. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Roll.js.map +1 -1
  150. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Slide.js +8 -15
  151. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Slide.js.map +1 -1
  152. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Zoom.js +16 -23
  153. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Zoom.js.map +1 -1
  154. package/lib/commonjs/reanimated2/layoutReanimation/index.js +13 -0
  155. package/lib/commonjs/reanimated2/layoutReanimation/index.js.map +1 -1
  156. package/lib/commonjs/reanimated2/layoutReanimation/sharedTransitions/index.js +94 -0
  157. package/lib/commonjs/reanimated2/layoutReanimation/sharedTransitions/index.js.map +1 -0
  158. package/lib/commonjs/reanimated2/mappers.js +18 -6
  159. package/lib/commonjs/reanimated2/mappers.js.map +1 -1
  160. package/lib/commonjs/reanimated2/mock.js +20 -1
  161. package/lib/commonjs/reanimated2/mock.js.map +1 -1
  162. package/lib/commonjs/reanimated2/mutables.js +4 -2
  163. package/lib/commonjs/reanimated2/mutables.js.map +1 -1
  164. package/lib/commonjs/reanimated2/platform-specific/checkVersion.js +42 -0
  165. package/lib/commonjs/reanimated2/platform-specific/checkVersion.js.map +1 -0
  166. package/lib/commonjs/reanimated2/platform-specific/checkVersion.web.js +15 -0
  167. package/lib/commonjs/reanimated2/platform-specific/checkVersion.web.js.map +1 -0
  168. package/lib/commonjs/reanimated2/pluginUtils.js +11 -0
  169. package/lib/commonjs/reanimated2/pluginUtils.js.map +1 -0
  170. package/lib/commonjs/reanimated2/shareables.js +36 -15
  171. package/lib/commonjs/reanimated2/shareables.js.map +1 -1
  172. package/lib/commonjs/reanimated2/threads.js +114 -4
  173. package/lib/commonjs/reanimated2/threads.js.map +1 -1
  174. package/lib/commonjs/reanimated2/utils.js +7 -0
  175. package/lib/commonjs/reanimated2/utils.js.map +1 -1
  176. package/lib/commonjs/reanimated2/valueSetter.js +1 -3
  177. package/lib/commonjs/reanimated2/valueSetter.js.map +1 -1
  178. package/lib/module/createAnimatedComponent.js +229 -29
  179. package/lib/module/createAnimatedComponent.js.map +1 -1
  180. package/lib/module/reanimated2/Colors.js +35 -19
  181. package/lib/module/reanimated2/Colors.js.map +1 -1
  182. package/lib/module/reanimated2/NativeReanimated/NativeReanimated.js +16 -32
  183. package/lib/module/reanimated2/NativeReanimated/NativeReanimated.js.map +1 -1
  184. package/lib/module/reanimated2/animation/styleAnimation.js +5 -1
  185. package/lib/module/reanimated2/animation/styleAnimation.js.map +1 -1
  186. package/lib/module/reanimated2/animation/util.js +17 -16
  187. package/lib/module/reanimated2/animation/util.js.map +1 -1
  188. package/lib/module/reanimated2/commonTypes.js +29 -0
  189. package/lib/module/reanimated2/commonTypes.js.map +1 -1
  190. package/lib/module/reanimated2/core.js +32 -7
  191. package/lib/module/reanimated2/core.js.map +1 -1
  192. package/lib/module/reanimated2/frameCallback/FrameCallbackRegistryUI.js +2 -2
  193. package/lib/module/reanimated2/frameCallback/FrameCallbackRegistryUI.js.map +1 -1
  194. package/lib/module/reanimated2/globals.d.js.map +1 -1
  195. package/lib/module/reanimated2/hook/index.js +1 -1
  196. package/lib/module/reanimated2/hook/index.js.map +1 -1
  197. package/lib/module/reanimated2/hook/useAnimatedKeyboard.js +5 -2
  198. package/lib/module/reanimated2/hook/useAnimatedKeyboard.js.map +1 -1
  199. package/lib/module/reanimated2/hook/useAnimatedReaction.js +12 -1
  200. package/lib/module/reanimated2/hook/useAnimatedReaction.js.map +1 -1
  201. package/lib/module/reanimated2/hook/useAnimatedRef.js +2 -2
  202. package/lib/module/reanimated2/hook/useAnimatedRef.js.map +1 -1
  203. package/lib/module/reanimated2/hook/useAnimatedSensor.js +88 -13
  204. package/lib/module/reanimated2/hook/useAnimatedSensor.js.map +1 -1
  205. package/lib/module/reanimated2/hook/useAnimatedStyle.js +46 -43
  206. package/lib/module/reanimated2/hook/useAnimatedStyle.js.map +1 -1
  207. package/lib/module/reanimated2/hook/useDerivedValue.js +12 -1
  208. package/lib/module/reanimated2/hook/useDerivedValue.js.map +1 -1
  209. package/lib/module/reanimated2/hook/useScrollViewOffset.js +2 -2
  210. package/lib/module/reanimated2/hook/useScrollViewOffset.js.map +1 -1
  211. package/lib/module/reanimated2/hook/utils.js +17 -60
  212. package/lib/module/reanimated2/hook/utils.js.map +1 -1
  213. package/lib/module/reanimated2/index.js +1 -0
  214. package/lib/module/reanimated2/index.js.map +1 -1
  215. package/lib/module/reanimated2/initializers.js +72 -33
  216. package/lib/module/reanimated2/initializers.js.map +1 -1
  217. package/lib/module/reanimated2/interpolateColor.js +96 -19
  218. package/lib/module/reanimated2/interpolateColor.js.map +1 -1
  219. package/lib/module/reanimated2/jestUtils.js +1 -1
  220. package/lib/module/reanimated2/jestUtils.js.map +1 -1
  221. package/lib/module/reanimated2/js-reanimated/JSReanimated.js +103 -13
  222. package/lib/module/reanimated2/js-reanimated/JSReanimated.js.map +1 -1
  223. package/lib/module/reanimated2/js-reanimated/Mapper.js +21 -0
  224. package/lib/module/reanimated2/js-reanimated/Mapper.js.map +1 -1
  225. package/lib/module/reanimated2/js-reanimated/WebSensor.js +2 -0
  226. package/lib/module/reanimated2/js-reanimated/WebSensor.js.map +1 -0
  227. package/lib/module/reanimated2/js-reanimated/commonTypes.js.map +1 -1
  228. package/lib/module/reanimated2/js-reanimated/global.js +0 -2
  229. package/lib/module/reanimated2/js-reanimated/global.js.map +1 -1
  230. package/lib/module/reanimated2/js-reanimated/index.js +0 -1
  231. package/lib/module/reanimated2/js-reanimated/index.js.map +1 -1
  232. package/lib/module/reanimated2/layoutReanimation/animationBuilder/commonTypes.js +9 -1
  233. package/lib/module/reanimated2/layoutReanimation/animationBuilder/commonTypes.js.map +1 -1
  234. package/lib/module/reanimated2/layoutReanimation/animationBuilder/index.js +1 -0
  235. package/lib/module/reanimated2/layoutReanimation/animationBuilder/index.js.map +1 -1
  236. package/lib/module/reanimated2/layoutReanimation/animationsManager.js +15 -8
  237. package/lib/module/reanimated2/layoutReanimation/animationsManager.js.map +1 -1
  238. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Bounce.js +16 -21
  239. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Bounce.js.map +1 -1
  240. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Lightspeed.js +8 -12
  241. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Lightspeed.js.map +1 -1
  242. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Roll.js +8 -12
  243. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Roll.js.map +1 -1
  244. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Slide.js +8 -13
  245. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Slide.js.map +1 -1
  246. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Zoom.js +16 -21
  247. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Zoom.js.map +1 -1
  248. package/lib/module/reanimated2/layoutReanimation/index.js +1 -0
  249. package/lib/module/reanimated2/layoutReanimation/index.js.map +1 -1
  250. package/lib/module/reanimated2/layoutReanimation/sharedTransitions/index.js +82 -0
  251. package/lib/module/reanimated2/layoutReanimation/sharedTransitions/index.js.map +1 -0
  252. package/lib/module/reanimated2/mappers.js +16 -6
  253. package/lib/module/reanimated2/mappers.js.map +1 -1
  254. package/lib/module/reanimated2/mock.js +20 -1
  255. package/lib/module/reanimated2/mock.js.map +1 -1
  256. package/lib/module/reanimated2/mutables.js +4 -2
  257. package/lib/module/reanimated2/mutables.js.map +1 -1
  258. package/lib/module/reanimated2/platform-specific/checkVersion.js +35 -0
  259. package/lib/module/reanimated2/platform-specific/checkVersion.js.map +1 -0
  260. package/lib/module/reanimated2/platform-specific/checkVersion.web.js +8 -0
  261. package/lib/module/reanimated2/platform-specific/checkVersion.web.js.map +1 -0
  262. package/lib/module/reanimated2/pluginUtils.js +4 -0
  263. package/lib/module/reanimated2/pluginUtils.js.map +1 -0
  264. package/lib/module/reanimated2/shareables.js +36 -12
  265. package/lib/module/reanimated2/shareables.js.map +1 -1
  266. package/lib/module/reanimated2/threads.js +105 -4
  267. package/lib/module/reanimated2/threads.js.map +1 -1
  268. package/lib/module/reanimated2/utils.js +5 -0
  269. package/lib/module/reanimated2/utils.js.map +1 -1
  270. package/lib/module/reanimated2/valueSetter.js +1 -2
  271. package/lib/module/reanimated2/valueSetter.js.map +1 -1
  272. package/package.json +10 -10
  273. package/{plugin.js → plugin/index.js} +128 -249
  274. package/react-native-reanimated.d.ts +57 -10
  275. package/scripts/reanimated_utils.rb +15 -2
  276. package/src/createAnimatedComponent.tsx +238 -28
  277. package/src/reanimated2/Colors.ts +38 -11
  278. package/src/reanimated2/NativeReanimated/NativeReanimated.ts +52 -39
  279. package/src/reanimated2/animation/styleAnimation.ts +8 -1
  280. package/src/reanimated2/animation/util.ts +29 -16
  281. package/src/reanimated2/commonTypes.ts +28 -1
  282. package/src/reanimated2/core.ts +42 -9
  283. package/src/reanimated2/frameCallback/FrameCallbackRegistryUI.ts +2 -2
  284. package/src/reanimated2/globals.d.ts +12 -15
  285. package/src/reanimated2/hook/index.ts +1 -1
  286. package/src/reanimated2/hook/useAnimatedKeyboard.ts +10 -4
  287. package/src/reanimated2/hook/useAnimatedReaction.ts +12 -5
  288. package/src/reanimated2/hook/useAnimatedRef.ts +1 -4
  289. package/src/reanimated2/hook/useAnimatedSensor.ts +88 -11
  290. package/src/reanimated2/hook/useAnimatedStyle.ts +44 -36
  291. package/src/reanimated2/hook/useDerivedValue.ts +8 -1
  292. package/src/reanimated2/hook/useScrollViewOffset.ts +2 -2
  293. package/src/reanimated2/hook/utils.ts +15 -61
  294. package/src/reanimated2/index.ts +1 -0
  295. package/src/reanimated2/initializers.ts +76 -35
  296. package/src/reanimated2/interpolateColor.ts +104 -20
  297. package/src/reanimated2/jestUtils.ts +1 -1
  298. package/src/reanimated2/js-reanimated/JSReanimated.ts +98 -15
  299. package/src/reanimated2/js-reanimated/Mapper.ts +32 -0
  300. package/src/reanimated2/js-reanimated/WebSensor.ts +34 -0
  301. package/src/reanimated2/js-reanimated/commonTypes.ts +0 -1
  302. package/src/reanimated2/js-reanimated/global.ts +0 -1
  303. package/src/reanimated2/js-reanimated/index.ts +0 -1
  304. package/src/reanimated2/layoutReanimation/animationBuilder/commonTypes.ts +13 -1
  305. package/src/reanimated2/layoutReanimation/animationBuilder/index.ts +1 -0
  306. package/src/reanimated2/layoutReanimation/animationsManager.ts +17 -9
  307. package/src/reanimated2/layoutReanimation/defaultAnimations/Bounce.ts +16 -19
  308. package/src/reanimated2/layoutReanimation/defaultAnimations/Lightspeed.ts +14 -11
  309. package/src/reanimated2/layoutReanimation/defaultAnimations/Roll.ts +21 -11
  310. package/src/reanimated2/layoutReanimation/defaultAnimations/Slide.ts +32 -11
  311. package/src/reanimated2/layoutReanimation/defaultAnimations/Zoom.ts +36 -19
  312. package/src/reanimated2/layoutReanimation/index.ts +1 -0
  313. package/src/reanimated2/layoutReanimation/sharedTransitions/index.ts +87 -0
  314. package/src/reanimated2/mappers.ts +17 -6
  315. package/src/reanimated2/mock.ts +24 -1
  316. package/src/reanimated2/mutables.ts +2 -0
  317. package/src/reanimated2/platform-specific/checkVersion.ts +39 -0
  318. package/src/reanimated2/platform-specific/checkVersion.web.ts +6 -0
  319. package/src/reanimated2/pluginUtils.ts +8 -0
  320. package/src/reanimated2/shareables.ts +45 -16
  321. package/src/reanimated2/threads.ts +103 -1
  322. package/src/reanimated2/utils.ts +6 -0
  323. package/src/reanimated2/valueSetter.ts +1 -2
  324. package/lib/commonjs/reanimated2/time.js +0 -55
  325. package/lib/commonjs/reanimated2/time.js.map +0 -1
  326. package/lib/module/reanimated2/time.js +0 -37
  327. package/lib/module/reanimated2/time.js.map +0 -1
  328. package/src/reanimated2/time.ts +0 -30
  329. /package/android/src/{main/java → reactNativeVersionPatch/ReanimatedUIManager/70}/com/swmansion/reanimated/layoutReanimation/ReanimatedUIManager.java +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["React","findNodeHandle","Platform","StyleSheet","WorkletEventHandler","setAndForwardRef","invariant","adaptViewConfig","RNRenderer","configureLayoutAnimations","enableLayoutAnimations","runOnUI","isJest","isChromeDebugger","shouldBeUseWeb","initialUpdaterRun","getShadowNodeWrapperFromRef","makeShareableShadowNodeWrapper","dummyListener","maybeBuild","layoutAnimationOrBuilder","isAnimationBuilder","value","build","flattenArray","array","Array","isArray","resultArr","_flattenArray","arr","forEach","item","push","onlyAnimatedStyles","styles","filter","style","viewDescriptors","isSameAnimatedStyle","style1","style2","viewsRef","isSameAnimatedProps","has","key","x","undefined","createAnimatedComponent","Component","options","prototype","isReactComponent","AnimatedComponent","constructor","props","getForwardedRef","forwardedRef","setLocalRef","ref","tag","layout","entering","exiting","_component","animatedStyle","componentWillUnmount","_detachNativeEvents","_detachStyles","componentDidMount","_attachNativeEvents","_attachAnimatedStyles","viewTag","prop","current","registerForEvents","unregisterFromEvents","OS","_styles","remove","_viewTag","animatedProps","global","_IS_FABRIC","shadowNodeWrapper","_removeShadowNodeFromRegistry","_reattachNativeEvents","prevProps","reattachNeeded","_updateFromNative","setNativeProps","prevStyles","prevAnimatedProps","_animatedProps","viewName","hostInstance","findHostInstance_DEPRECATED","Error","_nativeTag","viewConfig","uiViewClassName","hasReanimated2Props","length","hasOneSameStyle","prevStyle","isPresent","some","add","name","initial","componentDidUpdate","_filterNonAnimatedProps","inputProps","styleProp","processedStyle","map","_isFirstRender","initialStyle","updater","flatten","animatedProp","Object","keys","eventNames","eventName","listeners","render","platformProps","select","web","default","collapsable","_setComponentRef","displayName","forwardRef"],"sources":["createAnimatedComponent.tsx"],"sourcesContent":["import React, { Component, ComponentType, MutableRefObject, Ref } from 'react';\nimport { findNodeHandle, Platform, StyleSheet } from 'react-native';\nimport WorkletEventHandler from './reanimated2/WorkletEventHandler';\nimport setAndForwardRef from './setAndForwardRef';\nimport './reanimated2/layoutReanimation/animationsManager';\nimport invariant from 'invariant';\nimport { adaptViewConfig } from './ConfigHelper';\nimport { RNRenderer } from './reanimated2/platform-specific/RNRenderer';\nimport {\n configureLayoutAnimations,\n enableLayoutAnimations,\n runOnUI,\n} from './reanimated2/core';\nimport {\n isJest,\n isChromeDebugger,\n shouldBeUseWeb,\n} from './reanimated2/PlatformChecker';\nimport { initialUpdaterRun } from './reanimated2/animation';\nimport {\n BaseAnimationBuilder,\n EntryExitAnimationFunction,\n ILayoutAnimationBuilder,\n LayoutAnimationFunction,\n} from './reanimated2/layoutReanimation';\nimport {\n SharedValue,\n StyleProps,\n ShadowNodeWrapper,\n} from './reanimated2/commonTypes';\nimport {\n ViewDescriptorsSet,\n ViewRefSet,\n} from './reanimated2/ViewDescriptorsSet';\nimport { getShadowNodeWrapperFromRef } from './reanimated2/fabricUtils';\nimport { makeShareableShadowNodeWrapper } from './reanimated2/shareables';\n\nfunction dummyListener() {\n // empty listener we use to assign to listener properties for which animated\n // event is used.\n}\n\nfunction maybeBuild(\n layoutAnimationOrBuilder:\n | ILayoutAnimationBuilder\n | LayoutAnimationFunction\n | Keyframe\n): LayoutAnimationFunction | Keyframe {\n const isAnimationBuilder = (\n value: ILayoutAnimationBuilder | LayoutAnimationFunction | Keyframe\n ): value is ILayoutAnimationBuilder =>\n 'build' in layoutAnimationOrBuilder &&\n typeof layoutAnimationOrBuilder.build === 'function';\n\n if (isAnimationBuilder(layoutAnimationOrBuilder)) {\n return layoutAnimationOrBuilder.build();\n } else {\n return layoutAnimationOrBuilder;\n }\n}\n\ntype NestedArray<T> = T | NestedArray<T>[];\nfunction flattenArray<T>(array: NestedArray<T>): T[] {\n if (!Array.isArray(array)) {\n return [array];\n }\n const resultArr: T[] = [];\n\n const _flattenArray = (arr: NestedArray<T>[]): void => {\n arr.forEach((item) => {\n if (Array.isArray(item)) {\n _flattenArray(item);\n } else {\n resultArr.push(item);\n }\n });\n };\n _flattenArray(array);\n return resultArr;\n}\n\nfunction onlyAnimatedStyles(styles: StyleProps[]) {\n return styles.filter((style) => style?.viewDescriptors);\n}\n\nfunction isSameAnimatedStyle(\n style1?: StyleProps,\n style2?: StyleProps\n): boolean {\n // We cannot use equality check to compare useAnimatedStyle outputs directly.\n // Instead, we can compare its viewsRefs.\n return style1?.viewsRef === style2?.viewsRef;\n}\n\nconst isSameAnimatedProps = isSameAnimatedStyle;\n\nconst has = <K extends string>(\n key: K,\n x: unknown\n): x is { [key in K]: unknown } => {\n if (typeof x === 'function' || typeof x === 'object') {\n if (x === null || x === undefined) {\n return false;\n } else {\n return key in x;\n }\n }\n return false;\n};\n\ninterface AnimatedProps extends Record<string, unknown> {\n viewDescriptors?: ViewDescriptorsSet;\n viewsRef?: ViewRefSet<unknown>;\n initial?: SharedValue<StyleProps>;\n}\n\nexport type AnimatedComponentProps<P extends Record<string, unknown>> = P & {\n forwardedRef?: Ref<Component>;\n style?: NestedArray<StyleProps>;\n animatedProps?: Partial<AnimatedComponentProps<AnimatedProps>>;\n animatedStyle?: StyleProps;\n layout?:\n | BaseAnimationBuilder\n | ILayoutAnimationBuilder\n | typeof BaseAnimationBuilder;\n entering?:\n | BaseAnimationBuilder\n | typeof BaseAnimationBuilder\n | EntryExitAnimationFunction\n | Keyframe;\n exiting?:\n | BaseAnimationBuilder\n | typeof BaseAnimationBuilder\n | EntryExitAnimationFunction\n | Keyframe;\n};\n\ntype Options<P> = {\n setNativeProps: (ref: ComponentRef, props: P) => void;\n};\n\ninterface ComponentRef extends Component {\n setNativeProps?: (props: Record<string, unknown>) => void;\n getScrollableNode?: () => ComponentRef;\n}\n\nexport interface InitialComponentProps extends Record<string, unknown> {\n ref?: Ref<Component>;\n collapsable?: boolean;\n}\n\nexport default function createAnimatedComponent(\n Component: ComponentType<InitialComponentProps>,\n options?: Options<InitialComponentProps>\n): ComponentType<AnimatedComponentProps<InitialComponentProps>> {\n invariant(\n typeof Component !== 'function' ||\n (Component.prototype && Component.prototype.isReactComponent),\n '`createAnimatedComponent` does not support stateless functional components; ' +\n 'use a class component instead.'\n );\n\n class AnimatedComponent extends React.Component<\n AnimatedComponentProps<InitialComponentProps>\n > {\n _styles: StyleProps[] | null = null;\n _animatedProps?: Partial<AnimatedComponentProps<AnimatedProps>>;\n _viewTag = -1;\n _isFirstRender = true;\n animatedStyle: { value: StyleProps } = { value: {} };\n initialStyle = {};\n _component: ComponentRef | null = null;\n static displayName: string;\n\n constructor(props: AnimatedComponentProps<InitialComponentProps>) {\n super(props);\n if (isJest()) {\n this.animatedStyle = { value: {} };\n }\n }\n\n componentWillUnmount() {\n this._detachNativeEvents();\n this._detachStyles();\n }\n\n componentDidMount() {\n this._attachNativeEvents();\n this._attachAnimatedStyles();\n }\n\n _attachNativeEvents() {\n const viewTag = findNodeHandle(this);\n for (const key in this.props) {\n const prop = this.props[key];\n if (\n has('current', prop) &&\n prop.current instanceof WorkletEventHandler\n ) {\n prop.current.registerForEvents(viewTag as number, key);\n }\n }\n }\n\n _detachNativeEvents() {\n for (const key in this.props) {\n const prop = this.props[key];\n if (\n has('current', prop) &&\n prop.current instanceof WorkletEventHandler\n ) {\n prop.current.unregisterFromEvents();\n }\n }\n }\n\n _detachStyles() {\n if (Platform.OS === 'web' && this._styles !== null) {\n for (const style of this._styles) {\n if (style?.viewsRef) {\n style.viewsRef.remove(this);\n }\n }\n } else if (this._viewTag !== -1 && this._styles !== null) {\n for (const style of this._styles) {\n style.viewDescriptors.remove(this._viewTag);\n }\n if (this.props.animatedProps?.viewDescriptors) {\n this.props.animatedProps.viewDescriptors.remove(this._viewTag);\n }\n if (global._IS_FABRIC) {\n const shadowNodeWrapper = getShadowNodeWrapperFromRef(this);\n runOnUI(() => {\n 'worklet';\n _removeShadowNodeFromRegistry(shadowNodeWrapper);\n })();\n }\n }\n }\n\n _reattachNativeEvents(\n prevProps: AnimatedComponentProps<InitialComponentProps>\n ) {\n let viewTag: number | undefined;\n\n for (const key in this.props) {\n const prop = this.props[key];\n if (\n has('current', prop) &&\n prop.current instanceof WorkletEventHandler\n ) {\n if (viewTag === undefined) {\n viewTag = prop.current.viewTag;\n }\n }\n }\n for (const key in prevProps) {\n const prop = this.props[key];\n if (\n has('current', prop) &&\n prop.current instanceof WorkletEventHandler &&\n prop.current.reattachNeeded\n ) {\n prop.current.unregisterFromEvents();\n }\n }\n\n for (const key in this.props) {\n const prop = this.props[key];\n if (\n has('current', prop) &&\n prop.current instanceof WorkletEventHandler &&\n prop.current.reattachNeeded\n ) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n prop.current.registerForEvents(viewTag!, key);\n prop.current.reattachNeeded = false;\n }\n }\n }\n\n _updateFromNative(props: StyleProps) {\n if (options?.setNativeProps) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n options.setNativeProps(this._component!, props);\n } else {\n // eslint-disable-next-line no-unused-expressions\n this._component?.setNativeProps?.(props);\n }\n }\n\n _attachAnimatedStyles() {\n const styles = this.props.style\n ? onlyAnimatedStyles(flattenArray<StyleProps>(this.props.style))\n : [];\n const prevStyles = this._styles;\n this._styles = styles;\n\n const prevAnimatedProps = this._animatedProps;\n this._animatedProps = this.props.animatedProps;\n\n let viewTag: number | null;\n let viewName: string | null;\n let shadowNodeWrapper: ShadowNodeWrapper | null = null;\n if (Platform.OS === 'web') {\n viewTag = findNodeHandle(this);\n viewName = null;\n shadowNodeWrapper = null;\n } else {\n // hostInstance can be null for a component that doesn't render anything (render function returns null). Example: svg Stop: https://github.com/react-native-svg/react-native-svg/blob/develop/src/elements/Stop.tsx\n const hostInstance = RNRenderer.findHostInstance_DEPRECATED(this);\n if (!hostInstance) {\n throw new Error(\n 'Cannot find host instance for this component. Maybe it renders nothing?'\n );\n }\n // we can access view tag in the same way it's accessed here https://github.com/facebook/react/blob/e3f4eb7272d4ca0ee49f27577156b57eeb07cf73/packages/react-native-renderer/src/ReactFabric.js#L146\n viewTag = hostInstance?._nativeTag;\n /**\n * RN uses viewConfig for components for storing different properties of the component(example: https://github.com/facebook/react-native/blob/master/Libraries/Components/ScrollView/ScrollViewViewConfig.js#L16).\n * The name we're looking for is in the field named uiViewClassName.\n */\n viewName = hostInstance?.viewConfig?.uiViewClassName;\n // update UI props whitelist for this view\n const hasReanimated2Props =\n this.props.animatedProps?.viewDescriptors || styles.length;\n if (hasReanimated2Props && hostInstance?.viewConfig) {\n adaptViewConfig(hostInstance.viewConfig);\n }\n\n if (global._IS_FABRIC) {\n shadowNodeWrapper = makeShareableShadowNodeWrapper(\n getShadowNodeWrapperFromRef(this)\n );\n }\n }\n this._viewTag = viewTag as number;\n\n // remove old styles\n if (prevStyles) {\n // in most of the cases, views have only a single animated style and it remains unchanged\n const hasOneSameStyle =\n styles.length === 1 &&\n prevStyles.length === 1 &&\n isSameAnimatedStyle(styles[0], prevStyles[0]);\n\n if (!hasOneSameStyle) {\n // otherwise, remove each style that is not present in new styles\n for (const prevStyle of prevStyles) {\n const isPresent = styles.some((style) =>\n isSameAnimatedStyle(style, prevStyle)\n );\n if (!isPresent) {\n prevStyle.viewDescriptors.remove(viewTag);\n }\n }\n }\n }\n\n styles.forEach((style) => {\n style.viewDescriptors.add({\n tag: viewTag,\n name: viewName,\n shadowNodeWrapper,\n });\n if (isJest()) {\n /**\n * We need to connect Jest's TestObject instance whose contains just props object\n * with the updateProps() function where we update the properties of the component.\n * We can't update props object directly because TestObject contains a copy of props - look at render function:\n * const props = this._filterNonAnimatedProps(this.props);\n */\n this.animatedStyle.value = {\n ...this.animatedStyle.value,\n ...style.initial.value,\n };\n style.animatedStyle.current = this.animatedStyle;\n }\n });\n\n // detach old animatedProps\n if (\n prevAnimatedProps &&\n !isSameAnimatedProps(prevAnimatedProps, this.props.animatedProps)\n ) {\n prevAnimatedProps.viewDescriptors!.remove(viewTag as number);\n }\n\n // attach animatedProps property\n if (this.props.animatedProps?.viewDescriptors) {\n this.props.animatedProps.viewDescriptors.add({\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n tag: viewTag!,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n name: viewName!,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n shadowNodeWrapper: shadowNodeWrapper!,\n });\n }\n }\n\n componentDidUpdate(\n prevProps: AnimatedComponentProps<InitialComponentProps>\n ) {\n this._reattachNativeEvents(prevProps);\n this._attachAnimatedStyles();\n }\n\n _setComponentRef = setAndForwardRef<Component>({\n getForwardedRef: () =>\n this.props.forwardedRef as MutableRefObject<\n Component<Record<string, unknown>, Record<string, unknown>, unknown>\n >,\n setLocalRef: (ref) => {\n // TODO update config\n const tag = findNodeHandle(ref);\n const { layout, entering, exiting } = this.props;\n if ((layout || entering || exiting) && tag != null) {\n if (!shouldBeUseWeb()) {\n enableLayoutAnimations(true, false);\n }\n if (layout) {\n configureLayoutAnimations(tag, 'layout', maybeBuild(layout));\n }\n if (entering) {\n configureLayoutAnimations(tag, 'entering', maybeBuild(entering));\n }\n if (exiting) {\n configureLayoutAnimations(tag, 'exiting', maybeBuild(exiting));\n }\n }\n\n if (ref !== this._component) {\n this._component = ref;\n }\n },\n });\n\n _filterNonAnimatedProps(\n inputProps: AnimatedComponentProps<InitialComponentProps>\n ): Record<string, unknown> {\n const props: Record<string, unknown> = {};\n for (const key in inputProps) {\n const value = inputProps[key];\n if (key === 'style') {\n const styleProp = inputProps.style;\n const styles = flattenArray<StyleProps>(styleProp ?? []);\n const processedStyle: StyleProps = styles.map((style) => {\n if (style && style.viewDescriptors) {\n // this is how we recognize styles returned by useAnimatedStyle\n style.viewsRef.add(this);\n if (this._isFirstRender) {\n this.initialStyle = {\n ...style.initial.value,\n ...initialUpdaterRun<StyleProps>(style.initial.updater),\n };\n }\n return this.initialStyle;\n } else {\n return style;\n }\n });\n props[key] = StyleSheet.flatten(processedStyle);\n } else if (key === 'animatedProps') {\n const animatedProp = inputProps.animatedProps as Partial<\n AnimatedComponentProps<AnimatedProps>\n >;\n if (animatedProp.initial !== undefined) {\n Object.keys(animatedProp.initial.value).forEach((key) => {\n props[key] = animatedProp.initial?.value[key];\n animatedProp.viewsRef?.add(this);\n });\n }\n } else if (\n has('current', value) &&\n value.current instanceof WorkletEventHandler\n ) {\n if (value.current.eventNames.length > 0) {\n value.current.eventNames.forEach((eventName) => {\n props[eventName] = has('listeners', value.current)\n ? (value.current.listeners as Record<string, unknown>)[\n eventName\n ]\n : dummyListener;\n });\n } else {\n props[key] = dummyListener;\n }\n } else if (\n key !== 'onGestureHandlerStateChange' ||\n !isChromeDebugger()\n ) {\n props[key] = value;\n }\n }\n return props;\n }\n\n render() {\n const props = this._filterNonAnimatedProps(this.props);\n if (isJest()) {\n props.animatedStyle = this.animatedStyle;\n }\n\n if (this._isFirstRender) {\n this._isFirstRender = false;\n }\n\n const platformProps = Platform.select({\n web: {},\n default: { collapsable: false },\n });\n return (\n <Component {...props} ref={this._setComponentRef} {...platformProps} />\n );\n }\n }\n\n AnimatedComponent.displayName = `AnimatedComponent(${\n Component.displayName || Component.name || 'Component'\n })`;\n\n return React.forwardRef<Component>((props, ref) => {\n return (\n <AnimatedComponent\n {...props}\n {...(ref === null ? null : { forwardedRef: ref })}\n />\n );\n });\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","findNodeHandle","Platform","StyleSheet","WorkletEventHandler","setAndForwardRef","invariant","adaptViewConfig","RNRenderer","configureLayoutAnimations","enableLayoutAnimations","runOnUI","startMapper","stopMapper","isJest","isChromeDebugger","shouldBeUseWeb","initialUpdaterRun","DefaultSharedTransition","LayoutAnimationType","makeViewDescriptorsSet","getShadowNodeWrapperFromRef","updateProps","NativeReanimatedModule","isSharedValue","dummyListener","maybeBuild","layoutAnimationOrBuilder","isAnimationBuilder","value","build","flattenArray","array","Array","isArray","resultArr","_flattenArray","arr","forEach","item","push","onlyAnimatedStyles","styles","filter","style","viewDescriptors","isSameAnimatedStyle","style1","style2","viewsRef","isSameAnimatedProps","has","key","x","undefined","isInlineStyleTransform","transform","some","t","hasInlineStyles","Object","keys","styleValue","extractSharedValuesMapFromProps","props","inlineProps","entries","inlinePropsHasChanged","styles1","styles2","length","getInlinePropsUpdate","update","map","createAnimatedComponent","Component","options","prototype","isReactComponent","AnimatedComponent","constructor","getForwardedRef","forwardedRef","setLocalRef","ref","tag","layout","entering","exiting","sharedTransitionTag","LAYOUT","ENTERING","EXITING","sharedElementTransition","sharedTransitionStyle","SHARED_ELEMENT_TRANSITION","_component","animatedStyle","componentWillUnmount","_detachNativeEvents","_detachStyles","_detachInlineProps","componentDidMount","_attachNativeEvents","_attachAnimatedStyles","_attachInlineProps","_getEventViewRef","getScrollableNode","node","viewTag","setNativeProps","prop","current","registerForEvents","unregisterFromEvents","OS","_styles","remove","_viewTag","animatedProps","global","_IS_FABRIC","_removeShadowNodeFromRegistry","_reattachNativeEvents","prevProps","reattachNeeded","_updateFromNative","_getViewInfo","viewName","shadowNodeWrapper","viewConfig","hostInstance","findHostInstance_DEPRECATED","Error","_nativeTag","uiViewClassName","prevStyles","prevAnimatedProps","_animatedProps","hasReanimated2Props","hasOneSameStyle","prevStyle","isPresent","add","name","initial","newInlineProps","hasChanged","_inlineProps","_inlinePropsViewDescriptors","sharableViewDescriptors","maybeViewRef","native","items","Set","updaterFunction","_inlinePropsMapperId","values","componentDidUpdate","_filterNonAnimatedProps","inputProps","styleProp","processedStyle","_isFirstRender","initialStyle","updater","newStyle","flatten","animatedProp","eventNames","eventName","listeners","render","platformProps","select","web","default","collapsable","_setComponentRef","displayName","forwardRef"],"sources":["createAnimatedComponent.tsx"],"sourcesContent":["import React, { Component, ComponentType, MutableRefObject, Ref } from 'react';\nimport { findNodeHandle, Platform, StyleSheet } from 'react-native';\nimport WorkletEventHandler from './reanimated2/WorkletEventHandler';\nimport setAndForwardRef from './setAndForwardRef';\nimport './reanimated2/layoutReanimation/animationsManager';\nimport invariant from 'invariant';\nimport { adaptViewConfig } from './ConfigHelper';\nimport { RNRenderer } from './reanimated2/platform-specific/RNRenderer';\nimport {\n configureLayoutAnimations,\n enableLayoutAnimations,\n runOnUI,\n startMapper,\n stopMapper,\n} from './reanimated2/core';\nimport {\n isJest,\n isChromeDebugger,\n shouldBeUseWeb,\n} from './reanimated2/PlatformChecker';\nimport { initialUpdaterRun } from './reanimated2/animation';\nimport {\n BaseAnimationBuilder,\n DefaultSharedTransition,\n EntryExitAnimationFunction,\n ILayoutAnimationBuilder,\n LayoutAnimationFunction,\n LayoutAnimationType,\n} from './reanimated2/layoutReanimation';\nimport {\n SharedValue,\n StyleProps,\n ShadowNodeWrapper,\n} from './reanimated2/commonTypes';\nimport {\n makeViewDescriptorsSet,\n ViewDescriptorsSet,\n ViewRefSet,\n} from './reanimated2/ViewDescriptorsSet';\nimport { getShadowNodeWrapperFromRef } from './reanimated2/fabricUtils';\nimport updateProps from './reanimated2/UpdateProps';\nimport NativeReanimatedModule from './reanimated2/NativeReanimated';\nimport { isSharedValue } from './reanimated2';\n\nfunction dummyListener() {\n // empty listener we use to assign to listener properties for which animated\n // event is used.\n}\n\nfunction maybeBuild(\n layoutAnimationOrBuilder:\n | ILayoutAnimationBuilder\n | LayoutAnimationFunction\n | Keyframe\n): LayoutAnimationFunction | Keyframe {\n const isAnimationBuilder = (\n value: ILayoutAnimationBuilder | LayoutAnimationFunction | Keyframe\n ): value is ILayoutAnimationBuilder =>\n 'build' in layoutAnimationOrBuilder &&\n typeof layoutAnimationOrBuilder.build === 'function';\n\n if (isAnimationBuilder(layoutAnimationOrBuilder)) {\n return layoutAnimationOrBuilder.build();\n } else {\n return layoutAnimationOrBuilder;\n }\n}\n\ntype NestedArray<T> = T | NestedArray<T>[];\nfunction flattenArray<T>(array: NestedArray<T>): T[] {\n if (!Array.isArray(array)) {\n return [array];\n }\n const resultArr: T[] = [];\n\n const _flattenArray = (arr: NestedArray<T>[]): void => {\n arr.forEach((item) => {\n if (Array.isArray(item)) {\n _flattenArray(item);\n } else {\n resultArr.push(item);\n }\n });\n };\n _flattenArray(array);\n return resultArr;\n}\n\nfunction onlyAnimatedStyles(styles: StyleProps[]) {\n return styles.filter((style) => style?.viewDescriptors);\n}\n\nfunction isSameAnimatedStyle(\n style1?: StyleProps,\n style2?: StyleProps\n): boolean {\n // We cannot use equality check to compare useAnimatedStyle outputs directly.\n // Instead, we can compare its viewsRefs.\n return style1?.viewsRef === style2?.viewsRef;\n}\n\nconst isSameAnimatedProps = isSameAnimatedStyle;\n\nconst has = <K extends string>(\n key: K,\n x: unknown\n): x is { [key in K]: unknown } => {\n if (typeof x === 'function' || typeof x === 'object') {\n if (x === null || x === undefined) {\n return false;\n } else {\n return key in x;\n }\n }\n return false;\n};\n\nfunction isInlineStyleTransform(transform: any): boolean {\n return transform.some((t: Record<string, any>) => hasInlineStyles(t));\n}\n\nfunction hasInlineStyles(style: StyleProps): boolean {\n return Object.keys(style).some((key) => {\n const styleValue = style[key];\n return (\n isSharedValue(styleValue) ||\n (key === 'transform' && isInlineStyleTransform(styleValue))\n );\n });\n}\n\nfunction extractSharedValuesMapFromProps(\n props: AnimatedComponentProps<InitialComponentProps>\n): Record<string, any> {\n const inlineProps: Record<string, any> = {};\n\n for (const key in props) {\n const value = props[key];\n if (key === 'style') {\n const styles = flattenArray<StyleProps>(props.style ?? []);\n styles.forEach((style) => {\n for (const [key, styleValue] of Object.entries(style)) {\n if (isSharedValue(styleValue)) {\n inlineProps[key] = styleValue;\n } else if (\n key === 'transform' &&\n isInlineStyleTransform(styleValue)\n ) {\n inlineProps[key] = styleValue;\n }\n }\n });\n } else if (isSharedValue(value)) {\n inlineProps[key] = value;\n }\n }\n\n return inlineProps;\n}\n\nfunction inlinePropsHasChanged(styles1: StyleProps, styles2: StyleProps) {\n if (Object.keys(styles1).length !== Object.keys(styles2).length) {\n return true;\n }\n\n for (const key of Object.keys(styles1)) {\n if (styles1[key] !== styles2[key]) return true;\n }\n\n return false;\n}\n\nfunction getInlinePropsUpdate(inlineProps: Record<string, any>) {\n 'worklet';\n const update: Record<string, any> = {};\n for (const [key, styleValue] of Object.entries(inlineProps)) {\n if (key === 'transform') {\n update[key] = styleValue.map((transform: Record<string, any>) => {\n return getInlinePropsUpdate(transform);\n });\n } else if (isSharedValue(styleValue)) {\n update[key] = styleValue.value;\n } else {\n update[key] = styleValue;\n }\n }\n return update;\n}\n\ninterface AnimatedProps extends Record<string, unknown> {\n viewDescriptors?: ViewDescriptorsSet;\n viewsRef?: ViewRefSet<unknown>;\n initial?: SharedValue<StyleProps>;\n}\n\nexport type AnimatedComponentProps<P extends Record<string, unknown>> = P & {\n forwardedRef?: Ref<Component>;\n style?: NestedArray<StyleProps>;\n animatedProps?: Partial<AnimatedComponentProps<AnimatedProps>>;\n animatedStyle?: StyleProps;\n layout?:\n | BaseAnimationBuilder\n | ILayoutAnimationBuilder\n | typeof BaseAnimationBuilder;\n entering?:\n | BaseAnimationBuilder\n | typeof BaseAnimationBuilder\n | EntryExitAnimationFunction\n | Keyframe;\n exiting?:\n | BaseAnimationBuilder\n | typeof BaseAnimationBuilder\n | EntryExitAnimationFunction\n | Keyframe;\n sharedTransitionTag?: string;\n sharedTransitionStyle?: ILayoutAnimationBuilder;\n};\n\ntype Options<P> = {\n setNativeProps: (ref: ComponentRef, props: P) => void;\n};\n\ninterface ComponentRef extends Component {\n setNativeProps?: (props: Record<string, unknown>) => void;\n getScrollableNode?: () => ComponentRef;\n}\n\nexport interface InitialComponentProps extends Record<string, unknown> {\n ref?: Ref<Component>;\n collapsable?: boolean;\n}\n\nexport default function createAnimatedComponent(\n Component: ComponentType<InitialComponentProps>,\n options?: Options<InitialComponentProps>\n): ComponentType<AnimatedComponentProps<InitialComponentProps>> {\n invariant(\n typeof Component !== 'function' ||\n (Component.prototype && Component.prototype.isReactComponent),\n '`createAnimatedComponent` does not support stateless functional components; ' +\n 'use a class component instead.'\n );\n\n class AnimatedComponent extends React.Component<\n AnimatedComponentProps<InitialComponentProps>\n > {\n _styles: StyleProps[] | null = null;\n _animatedProps?: Partial<AnimatedComponentProps<AnimatedProps>>;\n _viewTag = -1;\n _isFirstRender = true;\n animatedStyle: { value: StyleProps } = { value: {} };\n initialStyle = {};\n _component: ComponentRef | null = null;\n _inlinePropsViewDescriptors: ViewDescriptorsSet | null = null;\n _inlinePropsMapperId: number | null = null;\n _inlineProps: StyleProps = {};\n static displayName: string;\n\n constructor(props: AnimatedComponentProps<InitialComponentProps>) {\n super(props);\n if (isJest()) {\n this.animatedStyle = { value: {} };\n }\n }\n\n componentWillUnmount() {\n this._detachNativeEvents();\n this._detachStyles();\n this._detachInlineProps();\n }\n\n componentDidMount() {\n this._attachNativeEvents();\n this._attachAnimatedStyles();\n this._attachInlineProps();\n }\n\n _getEventViewRef() {\n // Make sure to get the scrollable node for components that implement\n // `ScrollResponder.Mixin`.\n return this._component?.getScrollableNode\n ? this._component.getScrollableNode()\n : this._component;\n }\n\n _attachNativeEvents() {\n const node = this._getEventViewRef();\n const viewTag = findNodeHandle(options?.setNativeProps ? this : node);\n\n for (const key in this.props) {\n const prop = this.props[key];\n if (\n has('current', prop) &&\n prop.current instanceof WorkletEventHandler\n ) {\n prop.current.registerForEvents(viewTag as number, key);\n }\n }\n }\n\n _detachNativeEvents() {\n for (const key in this.props) {\n const prop = this.props[key];\n if (\n has('current', prop) &&\n prop.current instanceof WorkletEventHandler\n ) {\n prop.current.unregisterFromEvents();\n }\n }\n }\n\n _detachStyles() {\n if (Platform.OS === 'web' && this._styles !== null) {\n for (const style of this._styles) {\n if (style?.viewsRef) {\n style.viewsRef.remove(this);\n }\n }\n } else if (this._viewTag !== -1 && this._styles !== null) {\n for (const style of this._styles) {\n style.viewDescriptors.remove(this._viewTag);\n }\n if (this.props.animatedProps?.viewDescriptors) {\n this.props.animatedProps.viewDescriptors.remove(this._viewTag);\n }\n if (global._IS_FABRIC) {\n const viewTag = this._viewTag;\n runOnUI(() => {\n 'worklet';\n _removeShadowNodeFromRegistry(viewTag);\n })();\n }\n }\n }\n\n _reattachNativeEvents(\n prevProps: AnimatedComponentProps<InitialComponentProps>\n ) {\n let viewTag: number | undefined;\n\n for (const key in this.props) {\n const prop = this.props[key];\n if (\n has('current', prop) &&\n prop.current instanceof WorkletEventHandler\n ) {\n if (viewTag === undefined) {\n viewTag = prop.current.viewTag;\n }\n }\n }\n for (const key in prevProps) {\n const prop = this.props[key];\n if (\n has('current', prop) &&\n prop.current instanceof WorkletEventHandler &&\n prop.current.reattachNeeded\n ) {\n prop.current.unregisterFromEvents();\n }\n }\n\n for (const key in this.props) {\n const prop = this.props[key];\n if (\n has('current', prop) &&\n prop.current instanceof WorkletEventHandler &&\n prop.current.reattachNeeded\n ) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n prop.current.registerForEvents(viewTag!, key);\n prop.current.reattachNeeded = false;\n }\n }\n }\n\n _updateFromNative(props: StyleProps) {\n if (options?.setNativeProps) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n options.setNativeProps(this._component!, props);\n } else {\n // eslint-disable-next-line no-unused-expressions\n this._component?.setNativeProps?.(props);\n }\n }\n\n _getViewInfo() {\n let viewTag: number | null;\n let viewName: string | null;\n let shadowNodeWrapper: ShadowNodeWrapper | null = null;\n let viewConfig;\n if (Platform.OS === 'web') {\n viewTag = findNodeHandle(this);\n viewName = null;\n shadowNodeWrapper = null;\n viewConfig = null;\n } else {\n // hostInstance can be null for a component that doesn't render anything (render function returns null). Example: svg Stop: https://github.com/react-native-svg/react-native-svg/blob/develop/src/elements/Stop.tsx\n const hostInstance = RNRenderer.findHostInstance_DEPRECATED(this);\n if (!hostInstance) {\n throw new Error(\n 'Cannot find host instance for this component. Maybe it renders nothing?'\n );\n }\n // we can access view tag in the same way it's accessed here https://github.com/facebook/react/blob/e3f4eb7272d4ca0ee49f27577156b57eeb07cf73/packages/react-native-renderer/src/ReactFabric.js#L146\n viewTag = hostInstance?._nativeTag;\n /**\n * RN uses viewConfig for components for storing different properties of the component(example: https://github.com/facebook/react-native/blob/master/Libraries/Components/ScrollView/ScrollViewViewConfig.js#L16).\n * The name we're looking for is in the field named uiViewClassName.\n */\n viewName = hostInstance?.viewConfig?.uiViewClassName;\n\n viewConfig = hostInstance?.viewConfig;\n\n if (global._IS_FABRIC) {\n shadowNodeWrapper = getShadowNodeWrapperFromRef(this);\n }\n }\n return { viewTag, viewName, shadowNodeWrapper, viewConfig };\n }\n\n _attachAnimatedStyles() {\n const styles = this.props.style\n ? onlyAnimatedStyles(flattenArray<StyleProps>(this.props.style))\n : [];\n const prevStyles = this._styles;\n this._styles = styles;\n\n const prevAnimatedProps = this._animatedProps;\n this._animatedProps = this.props.animatedProps;\n\n const { viewTag, viewName, shadowNodeWrapper, viewConfig } =\n this._getViewInfo();\n\n // update UI props whitelist for this view\n const hasReanimated2Props =\n this.props.animatedProps?.viewDescriptors || styles.length;\n if (hasReanimated2Props && viewConfig) {\n adaptViewConfig(viewConfig);\n }\n\n this._viewTag = viewTag as number;\n\n // remove old styles\n if (prevStyles) {\n // in most of the cases, views have only a single animated style and it remains unchanged\n const hasOneSameStyle =\n styles.length === 1 &&\n prevStyles.length === 1 &&\n isSameAnimatedStyle(styles[0], prevStyles[0]);\n\n if (!hasOneSameStyle) {\n // otherwise, remove each style that is not present in new styles\n for (const prevStyle of prevStyles) {\n const isPresent = styles.some((style) =>\n isSameAnimatedStyle(style, prevStyle)\n );\n if (!isPresent) {\n prevStyle.viewDescriptors.remove(viewTag);\n }\n }\n }\n }\n\n styles.forEach((style) => {\n style.viewDescriptors.add({\n tag: viewTag,\n name: viewName,\n shadowNodeWrapper,\n });\n if (isJest()) {\n /**\n * We need to connect Jest's TestObject instance whose contains just props object\n * with the updateProps() function where we update the properties of the component.\n * We can't update props object directly because TestObject contains a copy of props - look at render function:\n * const props = this._filterNonAnimatedProps(this.props);\n */\n this.animatedStyle.value = {\n ...this.animatedStyle.value,\n ...style.initial.value,\n };\n style.animatedStyle.current = this.animatedStyle;\n }\n });\n\n // detach old animatedProps\n if (\n prevAnimatedProps &&\n !isSameAnimatedProps(prevAnimatedProps, this.props.animatedProps)\n ) {\n prevAnimatedProps.viewDescriptors!.remove(viewTag as number);\n }\n\n // attach animatedProps property\n if (this.props.animatedProps?.viewDescriptors) {\n this.props.animatedProps.viewDescriptors.add({\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n tag: viewTag!,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n name: viewName!,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n shadowNodeWrapper: shadowNodeWrapper!,\n });\n }\n }\n\n _attachInlineProps() {\n const newInlineProps: Record<string, any> =\n extractSharedValuesMapFromProps(this.props);\n const hasChanged = inlinePropsHasChanged(\n newInlineProps,\n this._inlineProps\n );\n\n if (hasChanged) {\n if (!this._inlinePropsViewDescriptors) {\n this._inlinePropsViewDescriptors = makeViewDescriptorsSet();\n\n const { viewTag, viewName, shadowNodeWrapper, viewConfig } =\n this._getViewInfo();\n\n if (Object.keys(newInlineProps).length && viewConfig) {\n adaptViewConfig(viewConfig);\n }\n\n this._inlinePropsViewDescriptors.add({\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n tag: viewTag!,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n name: viewName!,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n shadowNodeWrapper: shadowNodeWrapper!,\n });\n }\n const sharableViewDescriptors =\n this._inlinePropsViewDescriptors.sharableViewDescriptors;\n\n const maybeViewRef = NativeReanimatedModule.native\n ? undefined\n : ({ items: new Set([this]) } as ViewRefSet<any>); // see makeViewsRefSet\n\n const updaterFunction = () => {\n 'worklet';\n const update = getInlinePropsUpdate(newInlineProps);\n updateProps(sharableViewDescriptors, update, maybeViewRef);\n };\n this._inlineProps = newInlineProps;\n if (this._inlinePropsMapperId) {\n stopMapper(this._inlinePropsMapperId);\n }\n this._inlinePropsMapperId = null;\n if (Object.keys(newInlineProps).length) {\n this._inlinePropsMapperId = startMapper(\n updaterFunction,\n Object.values(newInlineProps)\n );\n }\n }\n }\n\n _detachInlineProps() {\n if (this._inlinePropsMapperId) {\n stopMapper(this._inlinePropsMapperId);\n }\n }\n\n componentDidUpdate(\n prevProps: AnimatedComponentProps<InitialComponentProps>\n ) {\n this._reattachNativeEvents(prevProps);\n this._attachAnimatedStyles();\n this._attachInlineProps();\n }\n\n _setComponentRef = setAndForwardRef<Component>({\n getForwardedRef: () =>\n this.props.forwardedRef as MutableRefObject<\n Component<Record<string, unknown>, Record<string, unknown>, unknown>\n >,\n setLocalRef: (ref) => {\n // TODO update config\n const tag = findNodeHandle(ref);\n const { layout, entering, exiting, sharedTransitionTag } = this.props;\n if (\n (layout || entering || exiting || sharedTransitionTag) &&\n tag != null\n ) {\n if (!shouldBeUseWeb()) {\n enableLayoutAnimations(true, false);\n }\n if (layout) {\n configureLayoutAnimations(\n tag,\n LayoutAnimationType.LAYOUT,\n maybeBuild(layout)\n );\n }\n if (entering) {\n configureLayoutAnimations(\n tag,\n LayoutAnimationType.ENTERING,\n maybeBuild(entering)\n );\n }\n if (exiting) {\n configureLayoutAnimations(\n tag,\n LayoutAnimationType.EXITING,\n maybeBuild(exiting)\n );\n }\n if (sharedTransitionTag) {\n const sharedElementTransition =\n this.props.sharedTransitionStyle ?? DefaultSharedTransition;\n configureLayoutAnimations(\n tag,\n LayoutAnimationType.SHARED_ELEMENT_TRANSITION,\n maybeBuild(sharedElementTransition),\n sharedTransitionTag\n );\n }\n }\n\n if (ref !== this._component) {\n this._component = ref;\n }\n },\n });\n\n _filterNonAnimatedProps(\n inputProps: AnimatedComponentProps<InitialComponentProps>\n ): Record<string, unknown> {\n const props: Record<string, unknown> = {};\n for (const key in inputProps) {\n const value = inputProps[key];\n if (key === 'style') {\n const styleProp = inputProps.style;\n const styles = flattenArray<StyleProps>(styleProp ?? []);\n const processedStyle: StyleProps = styles.map((style) => {\n if (style && style.viewDescriptors) {\n // this is how we recognize styles returned by useAnimatedStyle\n style.viewsRef.add(this);\n if (this._isFirstRender) {\n this.initialStyle = {\n ...style.initial.value,\n ...initialUpdaterRun<StyleProps>(style.initial.updater),\n };\n }\n return this.initialStyle;\n } else if (hasInlineStyles(style)) {\n if (this._isFirstRender) {\n return getInlinePropsUpdate(style);\n }\n const newStyle: StyleProps = {};\n for (const [key, styleValue] of Object.entries(style)) {\n if (\n !isSharedValue(styleValue) &&\n !(key === 'transform' && isInlineStyleTransform(styleValue))\n ) {\n newStyle[key] = styleValue;\n }\n }\n return newStyle;\n } else {\n return style;\n }\n });\n props[key] = StyleSheet.flatten(processedStyle);\n } else if (key === 'animatedProps') {\n const animatedProp = inputProps.animatedProps as Partial<\n AnimatedComponentProps<AnimatedProps>\n >;\n if (animatedProp.initial !== undefined) {\n Object.keys(animatedProp.initial.value).forEach((key) => {\n props[key] = animatedProp.initial?.value[key];\n animatedProp.viewsRef?.add(this);\n });\n }\n } else if (\n has('current', value) &&\n value.current instanceof WorkletEventHandler\n ) {\n if (value.current.eventNames.length > 0) {\n value.current.eventNames.forEach((eventName) => {\n props[eventName] = has('listeners', value.current)\n ? (value.current.listeners as Record<string, unknown>)[\n eventName\n ]\n : dummyListener;\n });\n } else {\n props[key] = dummyListener;\n }\n } else if (isSharedValue(value)) {\n if (this._isFirstRender) {\n props[key] = (value as SharedValue<any>).value;\n }\n } else if (\n key !== 'onGestureHandlerStateChange' ||\n !isChromeDebugger()\n ) {\n props[key] = value;\n }\n }\n return props;\n }\n\n render() {\n const props = this._filterNonAnimatedProps(this.props);\n if (isJest()) {\n props.animatedStyle = this.animatedStyle;\n }\n\n if (this._isFirstRender) {\n this._isFirstRender = false;\n }\n\n const platformProps = Platform.select({\n web: {},\n default: { collapsable: false },\n });\n return (\n <Component {...props} ref={this._setComponentRef} {...platformProps} />\n );\n }\n }\n\n AnimatedComponent.displayName = `AnimatedComponent(${\n Component.displayName || Component.name || 'Component'\n })`;\n\n return React.forwardRef<Component>((props, ref) => {\n return (\n <AnimatedComponent\n {...props}\n {...(ref === null ? null : { forwardedRef: ref })}\n />\n );\n });\n}\n"],"mappings":"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"}
@@ -540,7 +540,7 @@ function HSVtoRGB(h, s, v) {
540
540
  /* eslint-enable */
541
541
  }
542
542
 
543
- export const hsvToColor = (h, s, v) => {
543
+ export const hsvToColor = (h, s, v, a) => {
544
544
  'worklet';
545
545
 
546
546
  const {
@@ -548,7 +548,7 @@ export const hsvToColor = (h, s, v) => {
548
548
  g,
549
549
  b
550
550
  } = HSVtoRGB(h, s, v);
551
- return rgbaColor(r, g, b);
551
+ return rgbaColor(r, g, b, a);
552
552
  };
553
553
  export function processColorInitially(color) {
554
554
  'worklet';
@@ -603,30 +603,46 @@ export function processColor(color) {
603
603
 
604
604
  return normalizedColor;
605
605
  }
606
- export function convertToHSVA(color) {
606
+ export function convertToRGBA(color) {
607
607
  'worklet';
608
608
 
609
609
  const processedColor = processColorInitially(color); // argb;
610
610
 
611
611
  const a = (processedColor >>> 24) / 255;
612
- const r = processedColor << 8 >>> 24;
613
- const g = processedColor << 16 >>> 24;
614
- const b = processedColor << 24 >>> 24;
615
- const {
616
- h,
617
- s,
618
- v
619
- } = RGBtoHSV(r, g, b);
620
- return [h, s, v, a];
612
+ const r = (processedColor << 8 >>> 24) / 255;
613
+ const g = (processedColor << 16 >>> 24) / 255;
614
+ const b = (processedColor << 24 >>> 24) / 255;
615
+ return [r, g, b, a];
621
616
  }
622
- export function toRGBA(HSVA) {
617
+ export function rgbaArrayToRGBAColor(RGBA) {
623
618
  'worklet';
624
619
 
625
- const {
626
- r,
627
- g,
628
- b
629
- } = HSVtoRGB(HSVA[0], HSVA[1], HSVA[2]);
630
- return `rgba(${r}, ${g}, ${b}, ${HSVA[3]})`;
620
+ return `rgba(${Math.round(RGBA[0] * 255)}, ${Math.round(RGBA[1] * 255)}, ${Math.round(RGBA[2] * 255)}, ${RGBA[3]})`;
621
+ }
622
+ export function toLinearSpace(RGBA) {
623
+ 'worklet';
624
+
625
+ let gamma = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2.2;
626
+ const res = [];
627
+
628
+ for (let i = 0; i < 3; ++i) {
629
+ res.push(Math.pow(RGBA[i], gamma));
630
+ }
631
+
632
+ res.push(RGBA[3]);
633
+ return res;
634
+ }
635
+ export function toGammaSpace(RGBA) {
636
+ 'worklet';
637
+
638
+ let gamma = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2.2;
639
+ const res = [];
640
+
641
+ for (let i = 0; i < 3; ++i) {
642
+ res.push(Math.pow(RGBA[i], 1 / gamma));
643
+ }
644
+
645
+ res.push(RGBA[3]);
646
+ return res;
631
647
  }
632
648
  //# sourceMappingURL=Colors.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Platform","makeRemote","makeShareable","isConfigured","NUMBER","PERCENTAGE","call","args","join","jsCachedMatchers","uiCachedMatchers","getMatchers","cachedMatchers","_WORKLET","rgb","undefined","RegExp","rgba","hsl","hsla","hex3","hex4","hex6","hex8","hue2rgb","p","q","t","hslToRgb","h","s","l","r","g","b","Math","round","parse255","str","int","Number","parseInt","parse360","parseFloat","parse1","num","parsePercentage","names","transparent","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","normalizeColor","color","matchers","match","exec","opacity","c","rgbaColor","alpha","OS","RGBtoHSV","arguments","length","max","min","d","v","HSVtoRGB","i","f","floor","hsvToColor","processColorInitially","normalizedColor","isColor","value","processColor","convertToHSVA","processedColor","a","toRGBA","HSVA"],"sources":["Colors.ts"],"sourcesContent":["/* global _WORKLET */\n/**\n * Copied from:\n * react-native/Libraries/StyleSheet/normalizeColor.js\n * react-native/Libraries/StyleSheet/processColor.js\n * https://github.com/wcandillon/react-native-redash/blob/master/src/Colors.ts\n */\n\n/* eslint no-bitwise: 0 */\nimport { Platform } from 'react-native';\nimport { makeRemote, makeShareable, isConfigured } from './core';\n\ninterface RGB {\n r: number;\n g: number;\n b: number;\n}\n\ninterface HSV {\n h: number;\n s: number;\n v: number;\n}\n\n// var INTEGER = '[-+]?\\\\d+';\nconst NUMBER = '[-+]?(?:\\\\d+(?:\\\\.\\\\d*)?|\\\\.\\\\d+)';\nconst PERCENTAGE = NUMBER + '%';\n\nfunction call(...args: unknown[]): string {\n 'worklet';\n return '\\\\(\\\\s*(' + args.join(')\\\\s*,\\\\s*(') + ')\\\\s*\\\\)';\n}\n\n// matchers use RegExp objects which needs to be created separately on JS and on\n// the UI thread. We keep separate cache of Regexes for UI and JS using the below\n// objects, then pick the right cache in getMatchers() method.\nconst jsCachedMatchers: Matchers = {};\nconst uiCachedMatchers: Matchers = !isConfigured() ? {} : makeRemote({});\ntype Matchers = {\n rgb?: RegExp;\n rgba?: RegExp;\n hsl?: RegExp;\n hsla?: RegExp;\n hex3?: RegExp;\n hex4?: RegExp;\n hex5?: RegExp;\n hex6?: RegExp;\n hex8?: RegExp;\n};\nfunction getMatchers(): Matchers {\n 'worklet';\n const cachedMatchers: Matchers = _WORKLET\n ? uiCachedMatchers\n : jsCachedMatchers;\n if (cachedMatchers.rgb === undefined) {\n cachedMatchers.rgb = new RegExp('rgb' + call(NUMBER, NUMBER, NUMBER));\n cachedMatchers.rgba = new RegExp(\n 'rgba' + call(NUMBER, NUMBER, NUMBER, NUMBER)\n );\n cachedMatchers.hsl = new RegExp(\n 'hsl' + call(NUMBER, PERCENTAGE, PERCENTAGE)\n );\n cachedMatchers.hsla = new RegExp(\n 'hsla' + call(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER)\n );\n cachedMatchers.hex3 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;\n cachedMatchers.hex4 =\n /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;\n cachedMatchers.hex6 = /^#([0-9a-fA-F]{6})$/;\n cachedMatchers.hex8 = /^#([0-9a-fA-F]{8})$/;\n }\n return cachedMatchers;\n}\n// cachedMatchers is lazy loaded and it is frozen when worklet is being created,\n// it is possible to call getMatchers() when the object is frozen, then cachedMatchers\n// has no assigned regexes\ngetMatchers();\n\nfunction hue2rgb(p: number, q: number, t: number): number {\n 'worklet';\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * 6 * t;\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n\nfunction hslToRgb(h: number, s: number, l: number): number {\n 'worklet';\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = 2 * l - q;\n const r = hue2rgb(p, q, h + 1 / 3);\n const g = hue2rgb(p, q, h);\n const b = hue2rgb(p, q, h - 1 / 3);\n\n return (\n (Math.round(r * 255) << 24) |\n (Math.round(g * 255) << 16) |\n (Math.round(b * 255) << 8)\n );\n}\n\nfunction parse255(str: string): number {\n 'worklet';\n const int = Number.parseInt(str, 10);\n if (int < 0) {\n return 0;\n }\n if (int > 255) {\n return 255;\n }\n return int;\n}\n\nfunction parse360(str: string): number {\n 'worklet';\n const int = Number.parseFloat(str);\n return (((int % 360) + 360) % 360) / 360;\n}\n\nfunction parse1(str: string): number {\n 'worklet';\n const num = Number.parseFloat(str);\n if (num < 0) {\n return 0;\n }\n if (num > 1) {\n return 255;\n }\n return Math.round(num * 255);\n}\n\nfunction parsePercentage(str: string): number {\n 'worklet';\n // parseFloat conveniently ignores the final %\n const int = Number.parseFloat(str);\n if (int < 0) {\n return 0;\n }\n if (int > 100) {\n return 1;\n }\n return int / 100;\n}\n\nconst names: any = !isConfigured()\n ? null\n : makeShareable({\n transparent: 0x00000000,\n\n // http://www.w3.org/TR/css3-color/#svg-color\n aliceblue: 0xf0f8ffff,\n antiquewhite: 0xfaebd7ff,\n aqua: 0x00ffffff,\n aquamarine: 0x7fffd4ff,\n azure: 0xf0ffffff,\n beige: 0xf5f5dcff,\n bisque: 0xffe4c4ff,\n black: 0x000000ff,\n blanchedalmond: 0xffebcdff,\n blue: 0x0000ffff,\n blueviolet: 0x8a2be2ff,\n brown: 0xa52a2aff,\n burlywood: 0xdeb887ff,\n burntsienna: 0xea7e5dff,\n cadetblue: 0x5f9ea0ff,\n chartreuse: 0x7fff00ff,\n chocolate: 0xd2691eff,\n coral: 0xff7f50ff,\n cornflowerblue: 0x6495edff,\n cornsilk: 0xfff8dcff,\n crimson: 0xdc143cff,\n cyan: 0x00ffffff,\n darkblue: 0x00008bff,\n darkcyan: 0x008b8bff,\n darkgoldenrod: 0xb8860bff,\n darkgray: 0xa9a9a9ff,\n darkgreen: 0x006400ff,\n darkgrey: 0xa9a9a9ff,\n darkkhaki: 0xbdb76bff,\n darkmagenta: 0x8b008bff,\n darkolivegreen: 0x556b2fff,\n darkorange: 0xff8c00ff,\n darkorchid: 0x9932ccff,\n darkred: 0x8b0000ff,\n darksalmon: 0xe9967aff,\n darkseagreen: 0x8fbc8fff,\n darkslateblue: 0x483d8bff,\n darkslategray: 0x2f4f4fff,\n darkslategrey: 0x2f4f4fff,\n darkturquoise: 0x00ced1ff,\n darkviolet: 0x9400d3ff,\n deeppink: 0xff1493ff,\n deepskyblue: 0x00bfffff,\n dimgray: 0x696969ff,\n dimgrey: 0x696969ff,\n dodgerblue: 0x1e90ffff,\n firebrick: 0xb22222ff,\n floralwhite: 0xfffaf0ff,\n forestgreen: 0x228b22ff,\n fuchsia: 0xff00ffff,\n gainsboro: 0xdcdcdcff,\n ghostwhite: 0xf8f8ffff,\n gold: 0xffd700ff,\n goldenrod: 0xdaa520ff,\n gray: 0x808080ff,\n green: 0x008000ff,\n greenyellow: 0xadff2fff,\n grey: 0x808080ff,\n honeydew: 0xf0fff0ff,\n hotpink: 0xff69b4ff,\n indianred: 0xcd5c5cff,\n indigo: 0x4b0082ff,\n ivory: 0xfffff0ff,\n khaki: 0xf0e68cff,\n lavender: 0xe6e6faff,\n lavenderblush: 0xfff0f5ff,\n lawngreen: 0x7cfc00ff,\n lemonchiffon: 0xfffacdff,\n lightblue: 0xadd8e6ff,\n lightcoral: 0xf08080ff,\n lightcyan: 0xe0ffffff,\n lightgoldenrodyellow: 0xfafad2ff,\n lightgray: 0xd3d3d3ff,\n lightgreen: 0x90ee90ff,\n lightgrey: 0xd3d3d3ff,\n lightpink: 0xffb6c1ff,\n lightsalmon: 0xffa07aff,\n lightseagreen: 0x20b2aaff,\n lightskyblue: 0x87cefaff,\n lightslategray: 0x778899ff,\n lightslategrey: 0x778899ff,\n lightsteelblue: 0xb0c4deff,\n lightyellow: 0xffffe0ff,\n lime: 0x00ff00ff,\n limegreen: 0x32cd32ff,\n linen: 0xfaf0e6ff,\n magenta: 0xff00ffff,\n maroon: 0x800000ff,\n mediumaquamarine: 0x66cdaaff,\n mediumblue: 0x0000cdff,\n mediumorchid: 0xba55d3ff,\n mediumpurple: 0x9370dbff,\n mediumseagreen: 0x3cb371ff,\n mediumslateblue: 0x7b68eeff,\n mediumspringgreen: 0x00fa9aff,\n mediumturquoise: 0x48d1ccff,\n mediumvioletred: 0xc71585ff,\n midnightblue: 0x191970ff,\n mintcream: 0xf5fffaff,\n mistyrose: 0xffe4e1ff,\n moccasin: 0xffe4b5ff,\n navajowhite: 0xffdeadff,\n navy: 0x000080ff,\n oldlace: 0xfdf5e6ff,\n olive: 0x808000ff,\n olivedrab: 0x6b8e23ff,\n orange: 0xffa500ff,\n orangered: 0xff4500ff,\n orchid: 0xda70d6ff,\n palegoldenrod: 0xeee8aaff,\n palegreen: 0x98fb98ff,\n paleturquoise: 0xafeeeeff,\n palevioletred: 0xdb7093ff,\n papayawhip: 0xffefd5ff,\n peachpuff: 0xffdab9ff,\n peru: 0xcd853fff,\n pink: 0xffc0cbff,\n plum: 0xdda0ddff,\n powderblue: 0xb0e0e6ff,\n purple: 0x800080ff,\n rebeccapurple: 0x663399ff,\n red: 0xff0000ff,\n rosybrown: 0xbc8f8fff,\n royalblue: 0x4169e1ff,\n saddlebrown: 0x8b4513ff,\n salmon: 0xfa8072ff,\n sandybrown: 0xf4a460ff,\n seagreen: 0x2e8b57ff,\n seashell: 0xfff5eeff,\n sienna: 0xa0522dff,\n silver: 0xc0c0c0ff,\n skyblue: 0x87ceebff,\n slateblue: 0x6a5acdff,\n slategray: 0x708090ff,\n slategrey: 0x708090ff,\n snow: 0xfffafaff,\n springgreen: 0x00ff7fff,\n steelblue: 0x4682b4ff,\n tan: 0xd2b48cff,\n teal: 0x008080ff,\n thistle: 0xd8bfd8ff,\n tomato: 0xff6347ff,\n turquoise: 0x40e0d0ff,\n violet: 0xee82eeff,\n wheat: 0xf5deb3ff,\n white: 0xffffffff,\n whitesmoke: 0xf5f5f5ff,\n yellow: 0xffff00ff,\n yellowgreen: 0x9acd32ff,\n });\n\nfunction normalizeColor(color: unknown): number | null {\n 'worklet';\n\n if (typeof color === 'number') {\n if (color >>> 0 === color && color >= 0 && color <= 0xffffffff) {\n return color;\n }\n return null;\n }\n\n if (typeof color !== 'string') {\n return null;\n }\n\n const matchers = getMatchers();\n\n let match: RegExpExecArray | null | undefined;\n\n // Ordered based on occurrences on Facebook codebase\n if ((match = matchers?.hex6?.exec(color))) {\n return Number.parseInt(match[1] + 'ff', 16) >>> 0;\n }\n\n if (names[color] !== undefined) {\n return names[color];\n }\n\n if ((match = matchers?.rgb?.exec(color))) {\n return (\n // b\n ((parse255(match[1]) << 24) | // r\n (parse255(match[2]) << 16) | // g\n (parse255(match[3]) << 8) |\n 0x000000ff) >>> // a\n 0\n );\n }\n\n if ((match = matchers?.rgba?.exec(color))) {\n return (\n // b\n ((parse255(match[1]) << 24) | // r\n (parse255(match[2]) << 16) | // g\n (parse255(match[3]) << 8) |\n parse1(match[4])) >>> // a\n 0\n );\n }\n\n if ((match = matchers?.hex3?.exec(color))) {\n return (\n Number.parseInt(\n match[1] +\n match[1] + // r\n match[2] +\n match[2] + // g\n match[3] +\n match[3] + // b\n 'ff', // a\n 16\n ) >>> 0\n );\n }\n\n // https://drafts.csswg.org/css-color-4/#hex-notation\n if ((match = matchers?.hex8?.exec(color))) {\n return Number.parseInt(match[1], 16) >>> 0;\n }\n\n if ((match = matchers?.hex4?.exec(color))) {\n return (\n Number.parseInt(\n match[1] +\n match[1] + // r\n match[2] +\n match[2] + // g\n match[3] +\n match[3] + // b\n match[4] +\n match[4], // a\n 16\n ) >>> 0\n );\n }\n\n if ((match = matchers?.hsl?.exec(color))) {\n return (\n (hslToRgb(\n parse360(match[1]), // h\n parsePercentage(match[2]), // s\n parsePercentage(match[3]) // l\n ) |\n 0x000000ff) >>> // a\n 0\n );\n }\n\n if ((match = matchers?.hsla?.exec(color))) {\n return (\n (hslToRgb(\n parse360(match[1]), // h\n parsePercentage(match[2]), // s\n parsePercentage(match[3]) // l\n ) |\n parse1(match[4])) >>> // a\n 0\n );\n }\n\n return null;\n}\n\nexport const opacity = (c: number): number => {\n 'worklet';\n return ((c >> 24) & 255) / 255;\n};\n\nexport const red = (c: number): number => {\n 'worklet';\n return (c >> 16) & 255;\n};\n\nexport const green = (c: number): number => {\n 'worklet';\n return (c >> 8) & 255;\n};\n\nexport const blue = (c: number): number => {\n 'worklet';\n return c & 255;\n};\n\nexport const rgbaColor = (\n r: number,\n g: number,\n b: number,\n alpha = 1\n): number | string => {\n 'worklet';\n if (Platform.OS === 'web' || !_WORKLET) {\n return `rgba(${r}, ${g}, ${b}, ${alpha})`;\n }\n\n const c =\n Math.round(alpha * 255) * (1 << 24) +\n Math.round(r) * (1 << 16) +\n Math.round(g) * (1 << 8) +\n Math.round(b);\n if (Platform.OS === 'android') {\n // on Android color is represented as signed 32 bit int\n return c < (1 << 31) >>> 0 ? c : c - 4294967296; // 4294967296 == Math.pow(2, 32);\n }\n return c;\n};\n\n/* accepts parameters\n * r Object = {r:x, g:y, b:z}\n * OR\n * r, g, b\n * 0 <= r, g, b <= 255\n * returns 0 <= h, s, v <= 1\n */\nexport function RGBtoHSV(rgb: RGB): HSV;\nexport function RGBtoHSV(r: number, g: number, b: number): HSV;\nexport function RGBtoHSV(r: any, g?: any, b?: any): HSV {\n 'worklet';\n /* eslint-disable */\n if (arguments.length === 1) {\n g = r.g;\n b = r.b;\n r = r.r;\n }\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const d = max - min;\n const s = max === 0 ? 0 : d / max;\n const v = max / 255;\n\n let h;\n\n switch (max) {\n default:\n /* fallthrough */\n case min:\n h = 0;\n break;\n case r:\n h = g - b + d * (g < b ? 6 : 0);\n h /= 6 * d;\n break;\n case g:\n h = b - r + d * 2;\n h /= 6 * d;\n break;\n case b:\n h = r - g + d * 4;\n h /= 6 * d;\n break;\n }\n\n return {\n h: h,\n s: s,\n v: v,\n };\n /* eslint-enable */\n}\n\n/* accepts parameters\n * h Object = {h:x, s:y, v:z}\n * OR\n * h, s, v\n * 0 <= h, s, v <= 1\n * returns 0 <= r, g, b <= 255\n */\nfunction HSVtoRGB(hsv: HSV): RGB;\nfunction HSVtoRGB(h: number, s: number, v: number): RGB;\nfunction HSVtoRGB(h: any, s?: any, v?: any) {\n 'worklet';\n /* eslint-disable */\n var r, g, b, i, f, p, q, t;\n if (arguments.length === 1) {\n s = h.s;\n v = h.v;\n h = h.h;\n }\n i = Math.floor(h * 6);\n f = h * 6 - i;\n p = v * (1 - s);\n q = v * (1 - f * s);\n t = v * (1 - (1 - f) * s);\n switch (i % 6) {\n case 0:\n (r = v), (g = t), (b = p);\n break;\n case 1:\n (r = q), (g = v), (b = p);\n break;\n case 2:\n (r = p), (g = v), (b = t);\n break;\n case 3:\n (r = p), (g = q), (b = v);\n break;\n case 4:\n (r = t), (g = p), (b = v);\n break;\n case 5:\n (r = v), (g = p), (b = q);\n break;\n }\n return {\n r: Math.round(r * 255),\n g: Math.round(g * 255),\n b: Math.round(b * 255),\n };\n /* eslint-enable */\n}\n\nexport const hsvToColor = (\n h: number,\n s: number,\n v: number\n): number | string => {\n 'worklet';\n const { r, g, b } = HSVtoRGB(h, s, v);\n return rgbaColor(r, g, b);\n};\n\nexport function processColorInitially(\n color: unknown\n): number | null | undefined {\n 'worklet';\n if (color === null || color === undefined || typeof color === 'number') {\n return color;\n }\n\n let normalizedColor = normalizeColor(color);\n\n if (normalizedColor === null || normalizedColor === undefined) {\n return undefined;\n }\n\n if (typeof normalizedColor !== 'number') {\n return null;\n }\n\n normalizedColor = ((normalizedColor << 24) | (normalizedColor >>> 8)) >>> 0; // argb\n return normalizedColor;\n}\n\nexport function isColor(value: unknown): boolean {\n 'worklet';\n if (typeof value !== 'string') {\n return false;\n }\n return processColorInitially(value) != null;\n}\n\nexport function processColor(color: unknown): number | null | undefined {\n 'worklet';\n let normalizedColor = processColorInitially(color);\n if (normalizedColor === null || normalizedColor === undefined) {\n return undefined;\n }\n\n if (typeof normalizedColor !== 'number') {\n return null;\n }\n\n if (Platform.OS === 'android') {\n // Android use 32 bit *signed* integer to represent the color\n // We utilize the fact that bitwise operations in JS also operates on\n // signed 32 bit integers, so that we can use those to convert from\n // *unsigned* to *signed* 32bit int that way.\n normalizedColor = normalizedColor | 0x0;\n }\n\n return normalizedColor;\n}\n\nexport type ParsedColorArray = [number, number, number, number];\n\nexport function convertToHSVA(color: unknown): ParsedColorArray {\n 'worklet';\n const processedColor = processColorInitially(color)!; // argb;\n const a = (processedColor >>> 24) / 255;\n const r = (processedColor << 8) >>> 24;\n const g = (processedColor << 16) >>> 24;\n const b = (processedColor << 24) >>> 24;\n const { h, s, v } = RGBtoHSV(r, g, b);\n return [h, s, v, a];\n}\n\nexport function toRGBA(HSVA: ParsedColorArray): string {\n 'worklet';\n const { r, g, b } = HSVtoRGB(HSVA[0], HSVA[1], HSVA[2]);\n return `rgba(${r}, ${g}, ${b}, ${HSVA[3]})`;\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["Platform","makeRemote","makeShareable","isConfigured","NUMBER","PERCENTAGE","call","args","join","jsCachedMatchers","uiCachedMatchers","getMatchers","cachedMatchers","_WORKLET","rgb","undefined","RegExp","rgba","hsl","hsla","hex3","hex4","hex6","hex8","hue2rgb","p","q","t","hslToRgb","h","s","l","r","g","b","Math","round","parse255","str","int","Number","parseInt","parse360","parseFloat","parse1","num","parsePercentage","names","transparent","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","normalizeColor","color","matchers","match","exec","opacity","c","rgbaColor","alpha","OS","RGBtoHSV","arguments","length","max","min","d","v","HSVtoRGB","i","f","floor","hsvToColor","a","processColorInitially","normalizedColor","isColor","value","processColor","convertToRGBA","processedColor","rgbaArrayToRGBAColor","RGBA","toLinearSpace","gamma","res","push","pow","toGammaSpace"],"sources":["Colors.ts"],"sourcesContent":["/* global _WORKLET */\n/**\n * Copied from:\n * react-native/Libraries/StyleSheet/normalizeColor.js\n * react-native/Libraries/StyleSheet/processColor.js\n * https://github.com/wcandillon/react-native-redash/blob/master/src/Colors.ts\n */\n\n/* eslint no-bitwise: 0 */\nimport { Platform } from 'react-native';\nimport { makeRemote, makeShareable, isConfigured } from './core';\n\ninterface RGB {\n r: number;\n g: number;\n b: number;\n}\n\ninterface HSV {\n h: number;\n s: number;\n v: number;\n}\n\n// var INTEGER = '[-+]?\\\\d+';\nconst NUMBER = '[-+]?(?:\\\\d+(?:\\\\.\\\\d*)?|\\\\.\\\\d+)';\nconst PERCENTAGE = NUMBER + '%';\n\nfunction call(...args: unknown[]): string {\n 'worklet';\n return '\\\\(\\\\s*(' + args.join(')\\\\s*,\\\\s*(') + ')\\\\s*\\\\)';\n}\n\n// matchers use RegExp objects which needs to be created separately on JS and on\n// the UI thread. We keep separate cache of Regexes for UI and JS using the below\n// objects, then pick the right cache in getMatchers() method.\nconst jsCachedMatchers: Matchers = {};\nconst uiCachedMatchers: Matchers = !isConfigured() ? {} : makeRemote({});\ntype Matchers = {\n rgb?: RegExp;\n rgba?: RegExp;\n hsl?: RegExp;\n hsla?: RegExp;\n hex3?: RegExp;\n hex4?: RegExp;\n hex5?: RegExp;\n hex6?: RegExp;\n hex8?: RegExp;\n};\nfunction getMatchers(): Matchers {\n 'worklet';\n const cachedMatchers: Matchers = _WORKLET\n ? uiCachedMatchers\n : jsCachedMatchers;\n if (cachedMatchers.rgb === undefined) {\n cachedMatchers.rgb = new RegExp('rgb' + call(NUMBER, NUMBER, NUMBER));\n cachedMatchers.rgba = new RegExp(\n 'rgba' + call(NUMBER, NUMBER, NUMBER, NUMBER)\n );\n cachedMatchers.hsl = new RegExp(\n 'hsl' + call(NUMBER, PERCENTAGE, PERCENTAGE)\n );\n cachedMatchers.hsla = new RegExp(\n 'hsla' + call(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER)\n );\n cachedMatchers.hex3 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;\n cachedMatchers.hex4 =\n /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;\n cachedMatchers.hex6 = /^#([0-9a-fA-F]{6})$/;\n cachedMatchers.hex8 = /^#([0-9a-fA-F]{8})$/;\n }\n return cachedMatchers;\n}\n// cachedMatchers is lazy loaded and it is frozen when worklet is being created,\n// it is possible to call getMatchers() when the object is frozen, then cachedMatchers\n// has no assigned regexes\ngetMatchers();\n\nfunction hue2rgb(p: number, q: number, t: number): number {\n 'worklet';\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * 6 * t;\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n\nfunction hslToRgb(h: number, s: number, l: number): number {\n 'worklet';\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = 2 * l - q;\n const r = hue2rgb(p, q, h + 1 / 3);\n const g = hue2rgb(p, q, h);\n const b = hue2rgb(p, q, h - 1 / 3);\n\n return (\n (Math.round(r * 255) << 24) |\n (Math.round(g * 255) << 16) |\n (Math.round(b * 255) << 8)\n );\n}\n\nfunction parse255(str: string): number {\n 'worklet';\n const int = Number.parseInt(str, 10);\n if (int < 0) {\n return 0;\n }\n if (int > 255) {\n return 255;\n }\n return int;\n}\n\nfunction parse360(str: string): number {\n 'worklet';\n const int = Number.parseFloat(str);\n return (((int % 360) + 360) % 360) / 360;\n}\n\nfunction parse1(str: string): number {\n 'worklet';\n const num = Number.parseFloat(str);\n if (num < 0) {\n return 0;\n }\n if (num > 1) {\n return 255;\n }\n return Math.round(num * 255);\n}\n\nfunction parsePercentage(str: string): number {\n 'worklet';\n // parseFloat conveniently ignores the final %\n const int = Number.parseFloat(str);\n if (int < 0) {\n return 0;\n }\n if (int > 100) {\n return 1;\n }\n return int / 100;\n}\n\nconst names: any = !isConfigured()\n ? null\n : makeShareable({\n transparent: 0x00000000,\n\n // http://www.w3.org/TR/css3-color/#svg-color\n aliceblue: 0xf0f8ffff,\n antiquewhite: 0xfaebd7ff,\n aqua: 0x00ffffff,\n aquamarine: 0x7fffd4ff,\n azure: 0xf0ffffff,\n beige: 0xf5f5dcff,\n bisque: 0xffe4c4ff,\n black: 0x000000ff,\n blanchedalmond: 0xffebcdff,\n blue: 0x0000ffff,\n blueviolet: 0x8a2be2ff,\n brown: 0xa52a2aff,\n burlywood: 0xdeb887ff,\n burntsienna: 0xea7e5dff,\n cadetblue: 0x5f9ea0ff,\n chartreuse: 0x7fff00ff,\n chocolate: 0xd2691eff,\n coral: 0xff7f50ff,\n cornflowerblue: 0x6495edff,\n cornsilk: 0xfff8dcff,\n crimson: 0xdc143cff,\n cyan: 0x00ffffff,\n darkblue: 0x00008bff,\n darkcyan: 0x008b8bff,\n darkgoldenrod: 0xb8860bff,\n darkgray: 0xa9a9a9ff,\n darkgreen: 0x006400ff,\n darkgrey: 0xa9a9a9ff,\n darkkhaki: 0xbdb76bff,\n darkmagenta: 0x8b008bff,\n darkolivegreen: 0x556b2fff,\n darkorange: 0xff8c00ff,\n darkorchid: 0x9932ccff,\n darkred: 0x8b0000ff,\n darksalmon: 0xe9967aff,\n darkseagreen: 0x8fbc8fff,\n darkslateblue: 0x483d8bff,\n darkslategray: 0x2f4f4fff,\n darkslategrey: 0x2f4f4fff,\n darkturquoise: 0x00ced1ff,\n darkviolet: 0x9400d3ff,\n deeppink: 0xff1493ff,\n deepskyblue: 0x00bfffff,\n dimgray: 0x696969ff,\n dimgrey: 0x696969ff,\n dodgerblue: 0x1e90ffff,\n firebrick: 0xb22222ff,\n floralwhite: 0xfffaf0ff,\n forestgreen: 0x228b22ff,\n fuchsia: 0xff00ffff,\n gainsboro: 0xdcdcdcff,\n ghostwhite: 0xf8f8ffff,\n gold: 0xffd700ff,\n goldenrod: 0xdaa520ff,\n gray: 0x808080ff,\n green: 0x008000ff,\n greenyellow: 0xadff2fff,\n grey: 0x808080ff,\n honeydew: 0xf0fff0ff,\n hotpink: 0xff69b4ff,\n indianred: 0xcd5c5cff,\n indigo: 0x4b0082ff,\n ivory: 0xfffff0ff,\n khaki: 0xf0e68cff,\n lavender: 0xe6e6faff,\n lavenderblush: 0xfff0f5ff,\n lawngreen: 0x7cfc00ff,\n lemonchiffon: 0xfffacdff,\n lightblue: 0xadd8e6ff,\n lightcoral: 0xf08080ff,\n lightcyan: 0xe0ffffff,\n lightgoldenrodyellow: 0xfafad2ff,\n lightgray: 0xd3d3d3ff,\n lightgreen: 0x90ee90ff,\n lightgrey: 0xd3d3d3ff,\n lightpink: 0xffb6c1ff,\n lightsalmon: 0xffa07aff,\n lightseagreen: 0x20b2aaff,\n lightskyblue: 0x87cefaff,\n lightslategray: 0x778899ff,\n lightslategrey: 0x778899ff,\n lightsteelblue: 0xb0c4deff,\n lightyellow: 0xffffe0ff,\n lime: 0x00ff00ff,\n limegreen: 0x32cd32ff,\n linen: 0xfaf0e6ff,\n magenta: 0xff00ffff,\n maroon: 0x800000ff,\n mediumaquamarine: 0x66cdaaff,\n mediumblue: 0x0000cdff,\n mediumorchid: 0xba55d3ff,\n mediumpurple: 0x9370dbff,\n mediumseagreen: 0x3cb371ff,\n mediumslateblue: 0x7b68eeff,\n mediumspringgreen: 0x00fa9aff,\n mediumturquoise: 0x48d1ccff,\n mediumvioletred: 0xc71585ff,\n midnightblue: 0x191970ff,\n mintcream: 0xf5fffaff,\n mistyrose: 0xffe4e1ff,\n moccasin: 0xffe4b5ff,\n navajowhite: 0xffdeadff,\n navy: 0x000080ff,\n oldlace: 0xfdf5e6ff,\n olive: 0x808000ff,\n olivedrab: 0x6b8e23ff,\n orange: 0xffa500ff,\n orangered: 0xff4500ff,\n orchid: 0xda70d6ff,\n palegoldenrod: 0xeee8aaff,\n palegreen: 0x98fb98ff,\n paleturquoise: 0xafeeeeff,\n palevioletred: 0xdb7093ff,\n papayawhip: 0xffefd5ff,\n peachpuff: 0xffdab9ff,\n peru: 0xcd853fff,\n pink: 0xffc0cbff,\n plum: 0xdda0ddff,\n powderblue: 0xb0e0e6ff,\n purple: 0x800080ff,\n rebeccapurple: 0x663399ff,\n red: 0xff0000ff,\n rosybrown: 0xbc8f8fff,\n royalblue: 0x4169e1ff,\n saddlebrown: 0x8b4513ff,\n salmon: 0xfa8072ff,\n sandybrown: 0xf4a460ff,\n seagreen: 0x2e8b57ff,\n seashell: 0xfff5eeff,\n sienna: 0xa0522dff,\n silver: 0xc0c0c0ff,\n skyblue: 0x87ceebff,\n slateblue: 0x6a5acdff,\n slategray: 0x708090ff,\n slategrey: 0x708090ff,\n snow: 0xfffafaff,\n springgreen: 0x00ff7fff,\n steelblue: 0x4682b4ff,\n tan: 0xd2b48cff,\n teal: 0x008080ff,\n thistle: 0xd8bfd8ff,\n tomato: 0xff6347ff,\n turquoise: 0x40e0d0ff,\n violet: 0xee82eeff,\n wheat: 0xf5deb3ff,\n white: 0xffffffff,\n whitesmoke: 0xf5f5f5ff,\n yellow: 0xffff00ff,\n yellowgreen: 0x9acd32ff,\n });\n\nfunction normalizeColor(color: unknown): number | null {\n 'worklet';\n\n if (typeof color === 'number') {\n if (color >>> 0 === color && color >= 0 && color <= 0xffffffff) {\n return color;\n }\n return null;\n }\n\n if (typeof color !== 'string') {\n return null;\n }\n\n const matchers = getMatchers();\n\n let match: RegExpExecArray | null | undefined;\n\n // Ordered based on occurrences on Facebook codebase\n if ((match = matchers?.hex6?.exec(color))) {\n return Number.parseInt(match[1] + 'ff', 16) >>> 0;\n }\n\n if (names[color] !== undefined) {\n return names[color];\n }\n\n if ((match = matchers?.rgb?.exec(color))) {\n return (\n // b\n ((parse255(match[1]) << 24) | // r\n (parse255(match[2]) << 16) | // g\n (parse255(match[3]) << 8) |\n 0x000000ff) >>> // a\n 0\n );\n }\n\n if ((match = matchers?.rgba?.exec(color))) {\n return (\n // b\n ((parse255(match[1]) << 24) | // r\n (parse255(match[2]) << 16) | // g\n (parse255(match[3]) << 8) |\n parse1(match[4])) >>> // a\n 0\n );\n }\n\n if ((match = matchers?.hex3?.exec(color))) {\n return (\n Number.parseInt(\n match[1] +\n match[1] + // r\n match[2] +\n match[2] + // g\n match[3] +\n match[3] + // b\n 'ff', // a\n 16\n ) >>> 0\n );\n }\n\n // https://drafts.csswg.org/css-color-4/#hex-notation\n if ((match = matchers?.hex8?.exec(color))) {\n return Number.parseInt(match[1], 16) >>> 0;\n }\n\n if ((match = matchers?.hex4?.exec(color))) {\n return (\n Number.parseInt(\n match[1] +\n match[1] + // r\n match[2] +\n match[2] + // g\n match[3] +\n match[3] + // b\n match[4] +\n match[4], // a\n 16\n ) >>> 0\n );\n }\n\n if ((match = matchers?.hsl?.exec(color))) {\n return (\n (hslToRgb(\n parse360(match[1]), // h\n parsePercentage(match[2]), // s\n parsePercentage(match[3]) // l\n ) |\n 0x000000ff) >>> // a\n 0\n );\n }\n\n if ((match = matchers?.hsla?.exec(color))) {\n return (\n (hslToRgb(\n parse360(match[1]), // h\n parsePercentage(match[2]), // s\n parsePercentage(match[3]) // l\n ) |\n parse1(match[4])) >>> // a\n 0\n );\n }\n\n return null;\n}\n\nexport const opacity = (c: number): number => {\n 'worklet';\n return ((c >> 24) & 255) / 255;\n};\n\nexport const red = (c: number): number => {\n 'worklet';\n return (c >> 16) & 255;\n};\n\nexport const green = (c: number): number => {\n 'worklet';\n return (c >> 8) & 255;\n};\n\nexport const blue = (c: number): number => {\n 'worklet';\n return c & 255;\n};\n\nexport const rgbaColor = (\n r: number,\n g: number,\n b: number,\n alpha = 1\n): number | string => {\n 'worklet';\n if (Platform.OS === 'web' || !_WORKLET) {\n return `rgba(${r}, ${g}, ${b}, ${alpha})`;\n }\n\n const c =\n Math.round(alpha * 255) * (1 << 24) +\n Math.round(r) * (1 << 16) +\n Math.round(g) * (1 << 8) +\n Math.round(b);\n if (Platform.OS === 'android') {\n // on Android color is represented as signed 32 bit int\n return c < (1 << 31) >>> 0 ? c : c - 4294967296; // 4294967296 == Math.pow(2, 32);\n }\n return c;\n};\n\n/* accepts parameters\n * r Object = {r:x, g:y, b:z}\n * OR\n * r, g, b\n * 0 <= r, g, b <= 255\n * returns 0 <= h, s, v <= 1\n */\nexport function RGBtoHSV(rgb: RGB): HSV;\nexport function RGBtoHSV(r: number, g: number, b: number): HSV;\nexport function RGBtoHSV(r: any, g?: any, b?: any): HSV {\n 'worklet';\n /* eslint-disable */\n if (arguments.length === 1) {\n g = r.g;\n b = r.b;\n r = r.r;\n }\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const d = max - min;\n const s = max === 0 ? 0 : d / max;\n const v = max / 255;\n\n let h;\n\n switch (max) {\n default:\n /* fallthrough */\n case min:\n h = 0;\n break;\n case r:\n h = g - b + d * (g < b ? 6 : 0);\n h /= 6 * d;\n break;\n case g:\n h = b - r + d * 2;\n h /= 6 * d;\n break;\n case b:\n h = r - g + d * 4;\n h /= 6 * d;\n break;\n }\n\n return {\n h: h,\n s: s,\n v: v,\n };\n /* eslint-enable */\n}\n\n/* accepts parameters\n * h Object = {h:x, s:y, v:z}\n * OR\n * h, s, v\n * 0 <= h, s, v <= 1\n * returns 0 <= r, g, b <= 255\n */\nfunction HSVtoRGB(hsv: HSV): RGB;\nfunction HSVtoRGB(h: number, s: number, v: number): RGB;\nfunction HSVtoRGB(h: any, s?: any, v?: any) {\n 'worklet';\n /* eslint-disable */\n var r, g, b, i, f, p, q, t;\n if (arguments.length === 1) {\n s = h.s;\n v = h.v;\n h = h.h;\n }\n i = Math.floor(h * 6);\n f = h * 6 - i;\n p = v * (1 - s);\n q = v * (1 - f * s);\n t = v * (1 - (1 - f) * s);\n switch (i % 6) {\n case 0:\n (r = v), (g = t), (b = p);\n break;\n case 1:\n (r = q), (g = v), (b = p);\n break;\n case 2:\n (r = p), (g = v), (b = t);\n break;\n case 3:\n (r = p), (g = q), (b = v);\n break;\n case 4:\n (r = t), (g = p), (b = v);\n break;\n case 5:\n (r = v), (g = p), (b = q);\n break;\n }\n return {\n r: Math.round(r * 255),\n g: Math.round(g * 255),\n b: Math.round(b * 255),\n };\n /* eslint-enable */\n}\n\nexport const hsvToColor = (\n h: number,\n s: number,\n v: number,\n a: number\n): number | string => {\n 'worklet';\n const { r, g, b } = HSVtoRGB(h, s, v);\n return rgbaColor(r, g, b, a);\n};\n\nexport function processColorInitially(\n color: unknown\n): number | null | undefined {\n 'worklet';\n if (color === null || color === undefined || typeof color === 'number') {\n return color;\n }\n\n let normalizedColor = normalizeColor(color);\n\n if (normalizedColor === null || normalizedColor === undefined) {\n return undefined;\n }\n\n if (typeof normalizedColor !== 'number') {\n return null;\n }\n\n normalizedColor = ((normalizedColor << 24) | (normalizedColor >>> 8)) >>> 0; // argb\n return normalizedColor;\n}\n\nexport function isColor(value: unknown): boolean {\n 'worklet';\n if (typeof value !== 'string') {\n return false;\n }\n return processColorInitially(value) != null;\n}\n\nexport function processColor(color: unknown): number | null | undefined {\n 'worklet';\n let normalizedColor = processColorInitially(color);\n if (normalizedColor === null || normalizedColor === undefined) {\n return undefined;\n }\n\n if (typeof normalizedColor !== 'number') {\n return null;\n }\n\n if (Platform.OS === 'android') {\n // Android use 32 bit *signed* integer to represent the color\n // We utilize the fact that bitwise operations in JS also operates on\n // signed 32 bit integers, so that we can use those to convert from\n // *unsigned* to *signed* 32bit int that way.\n normalizedColor = normalizedColor | 0x0;\n }\n\n return normalizedColor;\n}\n\nexport type ParsedColorArray = [number, number, number, number];\n\nexport function convertToRGBA(color: unknown): ParsedColorArray {\n 'worklet';\n const processedColor = processColorInitially(color)!; // argb;\n const a = (processedColor >>> 24) / 255;\n const r = ((processedColor << 8) >>> 24) / 255;\n const g = ((processedColor << 16) >>> 24) / 255;\n const b = ((processedColor << 24) >>> 24) / 255;\n return [r, g, b, a];\n}\n\nexport function rgbaArrayToRGBAColor(RGBA: ParsedColorArray): string {\n 'worklet';\n return `rgba(${Math.round(RGBA[0] * 255)}, ${Math.round(\n RGBA[1] * 255\n )}, ${Math.round(RGBA[2] * 255)}, ${RGBA[3]})`;\n}\n\nexport function toLinearSpace(\n RGBA: ParsedColorArray,\n gamma = 2.2\n): ParsedColorArray {\n 'worklet';\n const res = [];\n for (let i = 0; i < 3; ++i) {\n res.push(Math.pow(RGBA[i], gamma));\n }\n res.push(RGBA[3]);\n return res as ParsedColorArray;\n}\n\nexport function toGammaSpace(\n RGBA: ParsedColorArray,\n gamma = 2.2\n): ParsedColorArray {\n 'worklet';\n const res = [];\n for (let i = 0; i < 3; ++i) {\n res.push(Math.pow(RGBA[i], 1 / gamma));\n }\n res.push(RGBA[3]);\n return res as ParsedColorArray;\n}\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
2
 
3
3
  import { NativeModules } from 'react-native';
4
- import { version as jsVersion } from '../../../package.json';
4
+ import { checkVersion } from '../platform-specific/checkVersion';
5
5
  export class NativeReanimated {
6
6
  constructor() {
7
7
  let native = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
@@ -21,40 +21,24 @@ export class NativeReanimated {
21
21
  this.native = native;
22
22
 
23
23
  if (native) {
24
- this.checkVersion();
25
- }
26
- }
27
-
28
- checkVersion() {
29
- const cppVersion = global._REANIMATED_VERSION_CPP;
30
-
31
- const ok = (() => {
32
- if (jsVersion.match(/^\d+\.\d+\.\d+$/) && cppVersion.match(/^\d+\.\d+\.\d+$/)) {
33
- // x.y.z, compare only major and minor, skip patch
34
- const [jsMajor, jsMinor] = jsVersion.split('.');
35
- const [cppMajor, cppMinor] = cppVersion.split('.');
36
- return jsMajor === cppMajor && jsMinor === cppMinor;
37
- } else {
38
- // alpha, beta or rc, compare everything
39
- return jsVersion === cppVersion;
24
+ if (this.InnerNativeModule === undefined) {
25
+ console.error(`[Reanimated] The native part of Reanimated doesn't seem to be initialized. This could be caused by\n\
26
+ - not rebuilding the app after installing or upgrading Reanimated\n\
27
+ - trying to run Reanimated on an unsupported platform\n\
28
+ - running in a brownfield app without manually initializing the native library`);
29
+ return;
40
30
  }
41
- })();
42
31
 
43
- if (!ok) {
44
- console.error(`[Reanimated] Mismatch between JavaScript part and native part of Reanimated (${jsVersion} vs. ${cppVersion}). Did you forget to re-build the app after upgrading react-native-reanimated? If you use Expo Go, you must downgrade to ${cppVersion} which is bundled into Expo SDK.`); // TODO: detect Expo managed workflow
32
+ checkVersion();
45
33
  }
46
34
  }
47
35
 
48
- getTimestamp() {
49
- throw new Error('stub implementation, used on the web only');
50
- }
51
-
52
36
  installCoreFunctions(callGuard, valueUnpacker) {
53
37
  return this.InnerNativeModule.installCoreFunctions(callGuard, valueUnpacker);
54
38
  }
55
39
 
56
- makeShareableClone(value) {
57
- return this.InnerNativeModule.makeShareableClone(value);
40
+ makeShareableClone(value, shouldPersistRemote) {
41
+ return this.InnerNativeModule.makeShareableClone(value, shouldPersistRemote);
58
42
  }
59
43
 
60
44
  makeSynchronizedDataHolder(valueRef) {
@@ -73,8 +57,8 @@ export class NativeReanimated {
73
57
  return this.InnerNativeModule.scheduleOnUI(shareable);
74
58
  }
75
59
 
76
- registerSensor(sensorType, interval, handler) {
77
- return this.InnerNativeModule.registerSensor(sensorType, interval, handler);
60
+ registerSensor(sensorType, interval, iosReferenceFrame, handler) {
61
+ return this.InnerNativeModule.registerSensor(sensorType, interval, iosReferenceFrame, handler);
78
62
  }
79
63
 
80
64
  unregisterSensor(sensorId) {
@@ -93,8 +77,8 @@ export class NativeReanimated {
93
77
  return this.InnerNativeModule.getViewProp(viewTag, propName, callback);
94
78
  }
95
79
 
96
- configureLayoutAnimation(viewTag, type, config) {
97
- this.InnerNativeModule.configureLayoutAnimation(viewTag, type, config);
80
+ configureLayoutAnimation(viewTag, type, sharedTransitionTag, config) {
81
+ this.InnerNativeModule.configureLayoutAnimation(viewTag, type, sharedTransitionTag, config);
98
82
  }
99
83
 
100
84
  enableLayoutAnimations(flag) {
@@ -105,8 +89,8 @@ export class NativeReanimated {
105
89
  this.InnerNativeModule.configureProps(uiProps, nativeProps);
106
90
  }
107
91
 
108
- subscribeForKeyboardEvents(handler) {
109
- return this.InnerNativeModule.subscribeForKeyboardEvents(handler);
92
+ subscribeForKeyboardEvents(handler, isStatusBarTranslucent) {
93
+ return this.InnerNativeModule.subscribeForKeyboardEvents(handler, isStatusBarTranslucent);
110
94
  }
111
95
 
112
96
  unsubscribeFromKeyboardEvents(listenerId) {
@@ -1 +1 @@
1
- {"version":3,"names":["NativeModules","version","jsVersion","NativeReanimated","constructor","native","global","__reanimatedModuleProxy","undefined","ReanimatedModule","installTurboModule","InnerNativeModule","checkVersion","cppVersion","_REANIMATED_VERSION_CPP","ok","match","jsMajor","jsMinor","split","cppMajor","cppMinor","console","error","getTimestamp","Error","installCoreFunctions","callGuard","valueUnpacker","makeShareableClone","value","makeSynchronizedDataHolder","valueRef","getDataSynchronously","ref","updateDataSynchronously","scheduleOnUI","shareable","registerSensor","sensorType","interval","handler","unregisterSensor","sensorId","registerEventHandler","eventHash","eventHandler","unregisterEventHandler","id","getViewProp","viewTag","propName","callback","configureLayoutAnimation","type","config","enableLayoutAnimations","flag","configureProps","uiProps","nativeProps","subscribeForKeyboardEvents","unsubscribeFromKeyboardEvents","listenerId"],"sources":["NativeReanimated.ts"],"sourcesContent":["import { NativeModules } from 'react-native';\nimport { ShareableRef, ShareableSyncDataHolderRef } from '../commonTypes';\nimport { LayoutAnimationFunction } from '../layoutReanimation';\nimport { version as jsVersion } from '../../../package.json';\n\nexport class NativeReanimated {\n native: boolean;\n private InnerNativeModule: any;\n\n constructor(native = true) {\n if (global.__reanimatedModuleProxy === undefined && native) {\n const { ReanimatedModule } = NativeModules;\n ReanimatedModule?.installTurboModule();\n }\n this.InnerNativeModule = global.__reanimatedModuleProxy;\n this.native = native;\n if (native) {\n this.checkVersion();\n }\n }\n\n checkVersion(): void {\n const cppVersion = global._REANIMATED_VERSION_CPP;\n const ok = (() => {\n if (\n jsVersion.match(/^\\d+\\.\\d+\\.\\d+$/) &&\n cppVersion.match(/^\\d+\\.\\d+\\.\\d+$/)\n ) {\n // x.y.z, compare only major and minor, skip patch\n const [jsMajor, jsMinor] = jsVersion.split('.');\n const [cppMajor, cppMinor] = cppVersion.split('.');\n return jsMajor === cppMajor && jsMinor === cppMinor;\n } else {\n // alpha, beta or rc, compare everything\n return jsVersion === cppVersion;\n }\n })();\n if (!ok) {\n console.error(\n `[Reanimated] Mismatch between JavaScript part and native part of Reanimated (${jsVersion} vs. ${cppVersion}). Did you forget to re-build the app after upgrading react-native-reanimated? If you use Expo Go, you must downgrade to ${cppVersion} which is bundled into Expo SDK.`\n );\n // TODO: detect Expo managed workflow\n }\n }\n\n getTimestamp(): number {\n throw new Error('stub implementation, used on the web only');\n }\n\n installCoreFunctions(\n callGuard: <T extends Array<any>, U>(\n fn: (...args: T) => U,\n ...args: T\n ) => void,\n valueUnpacker: <T>(value: T) => T\n ): void {\n return this.InnerNativeModule.installCoreFunctions(\n callGuard,\n valueUnpacker\n );\n }\n\n makeShareableClone<T>(value: T): ShareableRef<T> {\n return this.InnerNativeModule.makeShareableClone(value);\n }\n\n makeSynchronizedDataHolder<T>(\n valueRef: ShareableRef<T>\n ): ShareableSyncDataHolderRef<T> {\n return this.InnerNativeModule.makeSynchronizedDataHolder(valueRef);\n }\n\n getDataSynchronously<T>(ref: ShareableSyncDataHolderRef<T>): T {\n return this.InnerNativeModule.getDataSynchronously(ref);\n }\n\n updateDataSynchronously<T>(\n ref: ShareableSyncDataHolderRef<T>,\n value: T\n ): void {\n this.InnerNativeModule.updateDataSynchronously(ref, value);\n }\n\n scheduleOnUI<T>(shareable: ShareableRef<T>) {\n return this.InnerNativeModule.scheduleOnUI(shareable);\n }\n\n registerSensor<T>(\n sensorType: number,\n interval: number,\n handler: ShareableRef<T>\n ) {\n return this.InnerNativeModule.registerSensor(sensorType, interval, handler);\n }\n\n unregisterSensor(sensorId: number) {\n return this.InnerNativeModule.unregisterSensor(sensorId);\n }\n\n registerEventHandler<T>(\n eventHash: string,\n eventHandler: ShareableRef<T>\n ): string {\n return this.InnerNativeModule.registerEventHandler(eventHash, eventHandler);\n }\n\n unregisterEventHandler(id: string): void {\n return this.InnerNativeModule.unregisterEventHandler(id);\n }\n\n getViewProp<T>(\n viewTag: string,\n propName: string,\n callback?: (result: T) => void\n ): Promise<T> {\n return this.InnerNativeModule.getViewProp(viewTag, propName, callback);\n }\n\n configureLayoutAnimation(\n viewTag: number,\n type: string,\n config: ShareableRef<Keyframe | LayoutAnimationFunction>\n ) {\n this.InnerNativeModule.configureLayoutAnimation(viewTag, type, config);\n }\n\n enableLayoutAnimations(flag: boolean): void {\n this.InnerNativeModule.enableLayoutAnimations(flag);\n }\n\n configureProps(uiProps: string[], nativeProps: string[]): void {\n this.InnerNativeModule.configureProps(uiProps, nativeProps);\n }\n\n subscribeForKeyboardEvents(handler: ShareableRef<number>): number {\n return this.InnerNativeModule.subscribeForKeyboardEvents(handler);\n }\n\n unsubscribeFromKeyboardEvents(listenerId: number): void {\n this.InnerNativeModule.unsubscribeFromKeyboardEvents(listenerId);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["NativeModules","checkVersion","NativeReanimated","constructor","native","global","__reanimatedModuleProxy","undefined","ReanimatedModule","installTurboModule","InnerNativeModule","console","error","installCoreFunctions","callGuard","valueUnpacker","makeShareableClone","value","shouldPersistRemote","makeSynchronizedDataHolder","valueRef","getDataSynchronously","ref","updateDataSynchronously","scheduleOnUI","shareable","registerSensor","sensorType","interval","iosReferenceFrame","handler","unregisterSensor","sensorId","registerEventHandler","eventHash","eventHandler","unregisterEventHandler","id","getViewProp","viewTag","propName","callback","configureLayoutAnimation","type","sharedTransitionTag","config","enableLayoutAnimations","flag","configureProps","uiProps","nativeProps","subscribeForKeyboardEvents","isStatusBarTranslucent","unsubscribeFromKeyboardEvents","listenerId"],"sources":["NativeReanimated.ts"],"sourcesContent":["import { NativeModules } from 'react-native';\nimport {\n ShareableRef,\n ShareableSyncDataHolderRef,\n Value3D,\n ValueRotation,\n} from '../commonTypes';\nimport {\n LayoutAnimationFunction,\n LayoutAnimationType,\n} from '../layoutReanimation';\nimport { checkVersion } from '../platform-specific/checkVersion';\n\nexport class NativeReanimated {\n native: boolean;\n private InnerNativeModule: any;\n\n constructor(native = true) {\n if (global.__reanimatedModuleProxy === undefined && native) {\n const { ReanimatedModule } = NativeModules;\n ReanimatedModule?.installTurboModule();\n }\n this.InnerNativeModule = global.__reanimatedModuleProxy;\n this.native = native;\n if (native) {\n if (this.InnerNativeModule === undefined) {\n console.error(\n `[Reanimated] The native part of Reanimated doesn't seem to be initialized. This could be caused by\\n\\\n - not rebuilding the app after installing or upgrading Reanimated\\n\\\n - trying to run Reanimated on an unsupported platform\\n\\\n - running in a brownfield app without manually initializing the native library`\n );\n return;\n }\n checkVersion();\n }\n }\n\n installCoreFunctions(\n callGuard: <T extends Array<any>, U>(\n fn: (...args: T) => U,\n ...args: T\n ) => void,\n valueUnpacker: <T>(value: T) => T\n ): void {\n return this.InnerNativeModule.installCoreFunctions(\n callGuard,\n valueUnpacker\n );\n }\n\n makeShareableClone<T>(\n value: T,\n shouldPersistRemote: boolean\n ): ShareableRef<T> {\n return this.InnerNativeModule.makeShareableClone(\n value,\n shouldPersistRemote\n );\n }\n\n makeSynchronizedDataHolder<T>(\n valueRef: ShareableRef<T>\n ): ShareableSyncDataHolderRef<T> {\n return this.InnerNativeModule.makeSynchronizedDataHolder(valueRef);\n }\n\n getDataSynchronously<T>(ref: ShareableSyncDataHolderRef<T>): T {\n return this.InnerNativeModule.getDataSynchronously(ref);\n }\n\n updateDataSynchronously<T>(\n ref: ShareableSyncDataHolderRef<T>,\n value: T\n ): void {\n this.InnerNativeModule.updateDataSynchronously(ref, value);\n }\n\n scheduleOnUI<T>(shareable: ShareableRef<T>) {\n return this.InnerNativeModule.scheduleOnUI(shareable);\n }\n\n registerSensor<T>(\n sensorType: number,\n interval: number,\n iosReferenceFrame: number,\n handler: ShareableRef<T> | ((data: Value3D | ValueRotation) => void)\n ) {\n return this.InnerNativeModule.registerSensor(\n sensorType,\n interval,\n iosReferenceFrame,\n handler\n );\n }\n\n unregisterSensor(sensorId: number) {\n return this.InnerNativeModule.unregisterSensor(sensorId);\n }\n\n registerEventHandler<T>(\n eventHash: string,\n eventHandler: ShareableRef<T>\n ): string {\n return this.InnerNativeModule.registerEventHandler(eventHash, eventHandler);\n }\n\n unregisterEventHandler(id: string): void {\n return this.InnerNativeModule.unregisterEventHandler(id);\n }\n\n getViewProp<T>(\n viewTag: string,\n propName: string,\n callback?: (result: T) => void\n ): Promise<T> {\n return this.InnerNativeModule.getViewProp(viewTag, propName, callback);\n }\n\n configureLayoutAnimation(\n viewTag: number,\n type: LayoutAnimationType,\n sharedTransitionTag: string,\n config: ShareableRef<Keyframe | LayoutAnimationFunction>\n ) {\n this.InnerNativeModule.configureLayoutAnimation(\n viewTag,\n type,\n sharedTransitionTag,\n config\n );\n }\n\n enableLayoutAnimations(flag: boolean): void {\n this.InnerNativeModule.enableLayoutAnimations(flag);\n }\n\n configureProps(uiProps: string[], nativeProps: string[]): void {\n this.InnerNativeModule.configureProps(uiProps, nativeProps);\n }\n\n subscribeForKeyboardEvents(\n handler: ShareableRef<number>,\n isStatusBarTranslucent: boolean\n ): number {\n return this.InnerNativeModule.subscribeForKeyboardEvents(\n handler,\n isStatusBarTranslucent\n );\n }\n\n unsubscribeFromKeyboardEvents(listenerId: number): void {\n this.InnerNativeModule.unsubscribeFromKeyboardEvents(listenerId);\n }\n}\n"],"mappings":"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"}
@@ -29,7 +29,7 @@ export function setPath(obj, path, value) {
29
29
  // creates entry if there isn't one
30
30
  currObj = currObj;
31
31
 
32
- if (!currObj[keys[i]]) {
32
+ if (!(keys[i] in currObj)) {
33
33
  // if next key is a number create an array
34
34
  if (typeof keys[i + 1] === 'number') {
35
35
  currObj[keys[i]] = [];
@@ -135,6 +135,10 @@ export function withStyleAnimation(styleAnimations) {
135
135
  prevVal = prevAnimation.current;
136
136
  }
137
137
 
138
+ if (prevVal === undefined) {
139
+ console.warn(`Initial values for animation are missing for property ${currentEntry.path.join('.')}`);
140
+ }
141
+
138
142
  setPath(animation.current, currentEntry.path, prevVal);
139
143
  let currentAnimation;
140
144