react-native-reanimated 2.16.0 → 2.17.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 (287) hide show
  1. package/android/.gradle/7.5.1/checksums/checksums.lock +0 -0
  2. package/android/.gradle/7.5.1/checksums/md5-checksums.bin +0 -0
  3. package/android/.gradle/7.5.1/checksums/sha1-checksums.bin +0 -0
  4. package/android/.gradle/7.5.1/dependencies-accessors/dependencies-accessors.lock +0 -0
  5. package/android/.gradle/7.5.1/dependencies-accessors/gc.properties +0 -0
  6. package/android/.gradle/7.5.1/executionHistory/executionHistory.bin +0 -0
  7. package/android/.gradle/7.5.1/executionHistory/executionHistory.lock +0 -0
  8. package/android/.gradle/7.5.1/fileChanges/last-build.bin +0 -0
  9. package/android/.gradle/7.5.1/fileHashes/fileHashes.bin +0 -0
  10. package/android/.gradle/7.5.1/fileHashes/fileHashes.lock +0 -0
  11. package/android/.gradle/7.5.1/fileHashes/resourceHashesCache.bin +0 -0
  12. package/android/.gradle/7.5.1/gc.properties +0 -0
  13. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  14. package/android/.gradle/buildOutputCleanup/cache.properties +2 -0
  15. package/android/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
  16. package/android/.gradle/file-system.probe +0 -0
  17. package/android/.gradle/vcs-1/gc.properties +0 -0
  18. package/android/react-native-reanimated-67-hermes.aar +0 -0
  19. package/android/react-native-reanimated-67-jsc.aar +0 -0
  20. package/android/react-native-reanimated-68-hermes.aar +0 -0
  21. package/android/react-native-reanimated-68-jsc.aar +0 -0
  22. package/android/react-native-reanimated-69-hermes.aar +0 -0
  23. package/android/react-native-reanimated-69-jsc.aar +0 -0
  24. package/android/react-native-reanimated-70-hermes.aar +0 -0
  25. package/android/react-native-reanimated-70-jsc.aar +0 -0
  26. package/android/react-native-reanimated-71-hermes.aar +0 -0
  27. package/android/react-native-reanimated-71-jsc.aar +0 -0
  28. package/lib/Animated.js +9 -0
  29. package/lib/ConfigHelper.js +145 -0
  30. package/lib/ReanimatedEventEmitter.js +3 -0
  31. package/lib/ReanimatedModule.js +2 -0
  32. package/lib/ReanimatedModule.macos.js +2 -0
  33. package/lib/ReanimatedModule.native.js +12 -0
  34. package/lib/ReanimatedModule.windows.js +2 -0
  35. package/lib/ReanimatedModuleCompat.js +66 -0
  36. package/lib/__mocks__/ReanimatedEventEmitter.js +8 -0
  37. package/lib/__mocks__/ReanimatedModule.native.js +11 -0
  38. package/lib/createAnimatedComponent.js +518 -0
  39. package/lib/index.js +14 -0
  40. package/lib/index.web.js +6 -0
  41. package/lib/reanimated1/Easing.js +231 -0
  42. package/lib/reanimated1/SpringConfig.js +79 -0
  43. package/lib/reanimated1/Transitioning.js +158 -0
  44. package/lib/reanimated1/animations/Animation.js +32 -0
  45. package/lib/reanimated1/animations/SpringUtils.js +199 -0
  46. package/lib/reanimated1/animations/backwardCompatibleAnimWrapper.js +117 -0
  47. package/lib/reanimated1/animations/decay.js +54 -0
  48. package/lib/reanimated1/animations/spring.js +198 -0
  49. package/lib/reanimated1/animations/timing.js +74 -0
  50. package/lib/reanimated1/base.js +13 -0
  51. package/lib/reanimated1/core/AnimatedAlways.js +33 -0
  52. package/lib/reanimated1/core/AnimatedBezier.js +150 -0
  53. package/lib/reanimated1/core/AnimatedBlock.js +52 -0
  54. package/lib/reanimated1/core/AnimatedCall.js +55 -0
  55. package/lib/reanimated1/core/AnimatedCallFunc.js +72 -0
  56. package/lib/reanimated1/core/AnimatedClock.js +90 -0
  57. package/lib/reanimated1/core/AnimatedClockTest.js +22 -0
  58. package/lib/reanimated1/core/AnimatedCode.js +32 -0
  59. package/lib/reanimated1/core/AnimatedConcat.js +32 -0
  60. package/lib/reanimated1/core/AnimatedCond.js +57 -0
  61. package/lib/reanimated1/core/AnimatedDebug.js +62 -0
  62. package/lib/reanimated1/core/AnimatedEvent.js +126 -0
  63. package/lib/reanimated1/core/AnimatedFunction.js +55 -0
  64. package/lib/reanimated1/core/AnimatedNode.js +223 -0
  65. package/lib/reanimated1/core/AnimatedOperator.js +103 -0
  66. package/lib/reanimated1/core/AnimatedParam.js +88 -0
  67. package/lib/reanimated1/core/AnimatedProps.js +108 -0
  68. package/lib/reanimated1/core/AnimatedSet.js +38 -0
  69. package/lib/reanimated1/core/AnimatedStartClock.js +30 -0
  70. package/lib/reanimated1/core/AnimatedStopClock.js +30 -0
  71. package/lib/reanimated1/core/AnimatedStyle.js +78 -0
  72. package/lib/reanimated1/core/AnimatedTransform.js +78 -0
  73. package/lib/reanimated1/core/AnimatedValue.js +38 -0
  74. package/lib/reanimated1/core/InternalAnimatedValue.js +87 -0
  75. package/lib/reanimated1/core/__mocks__/AnimatedProps.js +86 -0
  76. package/lib/reanimated1/core/createEventObjectProxyPolyfill.js +44 -0
  77. package/lib/reanimated1/derived/__mocks__/evaluateOnce.js +14 -0
  78. package/lib/reanimated1/derived/acc.js +11 -0
  79. package/lib/reanimated1/derived/color.js +47 -0
  80. package/lib/reanimated1/derived/diff.js +16 -0
  81. package/lib/reanimated1/derived/diffClamp.js +11 -0
  82. package/lib/reanimated1/derived/evaluateOnce.js +35 -0
  83. package/lib/reanimated1/derived/index.js +8 -0
  84. package/lib/reanimated1/derived/interpolate.js +152 -0
  85. package/lib/reanimated1/derived/interpolateColors.js +62 -0
  86. package/lib/reanimated1/derived/onChange.js +14 -0
  87. package/lib/reanimated1/derived/useCode.js +41 -0
  88. package/lib/reanimated1/index.js +53 -0
  89. package/lib/reanimated1/operators.js +35 -0
  90. package/lib/reanimated1/useValue.js +10 -0
  91. package/lib/reanimated1/val.js +3 -0
  92. package/lib/reanimated2/Bezier.js +126 -0
  93. package/lib/reanimated2/Colors.js +538 -0
  94. package/lib/reanimated2/Easing.js +248 -0
  95. package/lib/reanimated2/NativeMethods.js +94 -0
  96. package/lib/reanimated2/NativeReanimated/NativeReanimated.js +60 -0
  97. package/lib/reanimated2/NativeReanimated/index.js +11 -0
  98. package/lib/reanimated2/PlatformChecker.js +16 -0
  99. package/lib/reanimated2/PropAdapters.js +55 -0
  100. package/lib/reanimated2/UpdateProps.js +55 -0
  101. package/lib/reanimated2/ViewDescriptorsSet.js +75 -0
  102. package/lib/reanimated2/WorkletEventHandler.js +37 -0
  103. package/lib/reanimated2/__mocks__/MutableValue.js +13 -0
  104. package/lib/reanimated2/__mocks__/NativeReanimated.js +20 -0
  105. package/lib/reanimated2/animation/commonTypes.js +1 -0
  106. package/lib/reanimated2/animation/decay.js +71 -0
  107. package/lib/reanimated2/animation/delay.js +64 -0
  108. package/lib/reanimated2/animation/index.js +8 -0
  109. package/lib/reanimated2/animation/repeat.js +69 -0
  110. package/lib/reanimated2/animation/sequence.js +69 -0
  111. package/lib/reanimated2/animation/spring.js +103 -0
  112. package/lib/reanimated2/animation/styleAnimation.js +174 -0
  113. package/lib/reanimated2/animation/timing.js +64 -0
  114. package/lib/reanimated2/animation/util.js +183 -0
  115. package/lib/reanimated2/commonTypes.js +8 -0
  116. package/lib/reanimated2/component/FlatList.js +30 -0
  117. package/lib/reanimated2/component/Image.js +4 -0
  118. package/lib/reanimated2/component/ScrollView.js +4 -0
  119. package/lib/reanimated2/component/Text.js +4 -0
  120. package/lib/reanimated2/component/View.js +4 -0
  121. package/lib/reanimated2/core.js +269 -0
  122. package/lib/reanimated2/frameCallback/FrameCallbackRegistryJS.js +32 -0
  123. package/lib/reanimated2/frameCallback/FrameCallbackRegistryUI.js +76 -0
  124. package/lib/reanimated2/globals.d.ts +91 -0
  125. package/lib/reanimated2/hook/Hooks.js +9 -0
  126. package/lib/reanimated2/hook/commonTypes.js +1 -0
  127. package/lib/reanimated2/hook/index.js +12 -0
  128. package/lib/reanimated2/hook/useAnimatedGestureHandler.js +49 -0
  129. package/lib/reanimated2/hook/useAnimatedKeyboard.js +31 -0
  130. package/lib/reanimated2/hook/useAnimatedReaction.js +44 -0
  131. package/lib/reanimated2/hook/useAnimatedRef.js +25 -0
  132. package/lib/reanimated2/hook/useAnimatedScrollHandler.js +41 -0
  133. package/lib/reanimated2/hook/useAnimatedSensor.js +66 -0
  134. package/lib/reanimated2/hook/useAnimatedStyle.js +402 -0
  135. package/lib/reanimated2/hook/useDerivedValue.js +43 -0
  136. package/lib/reanimated2/hook/useFrameCallback.js +23 -0
  137. package/lib/reanimated2/hook/useScrollViewOffset.js +27 -0
  138. package/lib/reanimated2/hook/useSharedValue.js +17 -0
  139. package/lib/reanimated2/hook/utils.js +165 -0
  140. package/lib/reanimated2/index.js +12 -0
  141. package/lib/reanimated2/interpolateColor.js +157 -0
  142. package/lib/reanimated2/interpolation.js +127 -0
  143. package/lib/reanimated2/jestUtils.js +175 -0
  144. package/lib/reanimated2/js-reanimated/JSReanimated.js +106 -0
  145. package/lib/reanimated2/js-reanimated/Mapper.js +43 -0
  146. package/lib/reanimated2/js-reanimated/MapperRegistry.js +101 -0
  147. package/lib/reanimated2/js-reanimated/MutableValue.js +29 -0
  148. package/lib/reanimated2/js-reanimated/commonTypes.js +1 -0
  149. package/lib/reanimated2/js-reanimated/global.js +36 -0
  150. package/lib/reanimated2/js-reanimated/index.js +35 -0
  151. package/lib/reanimated2/layoutReanimation/LayoutAnimationRepository.js +67 -0
  152. package/lib/reanimated2/layoutReanimation/animationBuilder/BaseAnimationBuilder.js +69 -0
  153. package/lib/reanimated2/layoutReanimation/animationBuilder/ComplexAnimationBuilder.js +133 -0
  154. package/lib/reanimated2/layoutReanimation/animationBuilder/Keyframe.js +194 -0
  155. package/lib/reanimated2/layoutReanimation/animationBuilder/commonTypes.js +1 -0
  156. package/lib/reanimated2/layoutReanimation/animationBuilder/index.js +3 -0
  157. package/lib/reanimated2/layoutReanimation/defaultAnimations/Bounce.js +374 -0
  158. package/lib/reanimated2/layoutReanimation/defaultAnimations/Default.js +36 -0
  159. package/lib/reanimated2/layoutReanimation/defaultAnimations/Fade.js +275 -0
  160. package/lib/reanimated2/layoutReanimation/defaultAnimations/Flip.js +385 -0
  161. package/lib/reanimated2/layoutReanimation/defaultAnimations/Lightspeed.js +136 -0
  162. package/lib/reanimated2/layoutReanimation/defaultAnimations/Pinwheel.js +81 -0
  163. package/lib/reanimated2/layoutReanimation/defaultAnimations/Roll.js +120 -0
  164. package/lib/reanimated2/layoutReanimation/defaultAnimations/Rotate.js +273 -0
  165. package/lib/reanimated2/layoutReanimation/defaultAnimations/Slide.js +201 -0
  166. package/lib/reanimated2/layoutReanimation/defaultAnimations/Stretch.js +101 -0
  167. package/lib/reanimated2/layoutReanimation/defaultAnimations/Zoom.js +457 -0
  168. package/lib/reanimated2/layoutReanimation/defaultAnimations/index.js +10 -0
  169. package/lib/reanimated2/layoutReanimation/defaultTransitions/CurvedTransition.js +90 -0
  170. package/lib/reanimated2/layoutReanimation/defaultTransitions/EntryExitTransition.js +132 -0
  171. package/lib/reanimated2/layoutReanimation/defaultTransitions/FadingTransition.js +37 -0
  172. package/lib/reanimated2/layoutReanimation/defaultTransitions/JumpingTransition.js +41 -0
  173. package/lib/reanimated2/layoutReanimation/defaultTransitions/LinearTransition.js +34 -0
  174. package/lib/reanimated2/layoutReanimation/defaultTransitions/SequencedTransition.js +46 -0
  175. package/lib/reanimated2/layoutReanimation/defaultTransitions/index.js +6 -0
  176. package/lib/reanimated2/layoutReanimation/index.js +4 -0
  177. package/lib/reanimated2/mock.js +75 -0
  178. package/lib/reanimated2/platform-specific/RNRenderer.js +3 -0
  179. package/lib/reanimated2/platform-specific/RNRenderer.web.js +3 -0
  180. package/lib/reanimated2/platform-specific/checkVersion.js +28 -0
  181. package/lib/reanimated2/platform-specific/checkVersion.web.js +6 -0
  182. package/lib/reanimated2/utils.js +16 -0
  183. package/lib/setAndForwardRef.js +19 -0
  184. package/lib/types/lib/Animated.d.ts +8 -0
  185. package/lib/types/lib/ConfigHelper.d.ts +12 -0
  186. package/lib/types/lib/ReanimatedEventEmitter.d.ts +3 -0
  187. package/lib/types/lib/ReanimatedModule.d.ts +2 -0
  188. package/lib/types/lib/ReanimatedModule.macos.d.ts +2 -0
  189. package/lib/types/lib/ReanimatedModule.native.d.ts +2 -0
  190. package/lib/types/lib/ReanimatedModule.windows.d.ts +2 -0
  191. package/lib/types/lib/ReanimatedModuleCompat.d.ts +14 -0
  192. package/lib/types/lib/createAnimatedComponent.d.ts +33 -0
  193. package/lib/types/lib/index.d.ts +4 -0
  194. package/lib/types/lib/index.web.d.ts +4 -0
  195. package/lib/types/lib/reanimated2/Bezier.d.ts +6 -0
  196. package/lib/types/lib/reanimated2/Colors.d.ts +33 -0
  197. package/lib/types/lib/reanimated2/Easing.d.ts +172 -0
  198. package/lib/types/lib/reanimated2/NativeMethods.d.ts +7 -0
  199. package/lib/types/lib/reanimated2/NativeReanimated/NativeReanimated.d.ts +22 -0
  200. package/lib/types/lib/reanimated2/NativeReanimated/index.d.ts +3 -0
  201. package/lib/types/lib/reanimated2/PlatformChecker.d.ts +5 -0
  202. package/lib/types/lib/reanimated2/PropAdapters.d.ts +4 -0
  203. package/lib/types/lib/reanimated2/UpdateProps.d.ts +9 -0
  204. package/lib/types/lib/reanimated2/ViewDescriptorsSet.d.ts +20 -0
  205. package/lib/types/lib/reanimated2/WorkletEventHandler.d.ts +13 -0
  206. package/lib/types/lib/reanimated2/__mocks__/MutableValue.d.ts +5 -0
  207. package/lib/types/lib/reanimated2/__mocks__/NativeReanimated.d.ts +13 -0
  208. package/lib/types/lib/reanimated2/animation/commonTypes.d.ts +27 -0
  209. package/lib/types/lib/reanimated2/animation/decay.d.ts +19 -0
  210. package/lib/types/lib/reanimated2/animation/delay.d.ts +7 -0
  211. package/lib/types/lib/reanimated2/animation/index.d.ts +9 -0
  212. package/lib/types/lib/reanimated2/animation/repeat.d.ts +12 -0
  213. package/lib/types/lib/reanimated2/animation/sequence.d.ts +7 -0
  214. package/lib/types/lib/reanimated2/animation/spring.d.ts +22 -0
  215. package/lib/types/lib/reanimated2/animation/styleAnimation.d.ts +7 -0
  216. package/lib/types/lib/reanimated2/animation/timing.d.ts +21 -0
  217. package/lib/types/lib/reanimated2/animation/util.d.ts +9 -0
  218. package/lib/types/lib/reanimated2/commonTypes.d.ts +99 -0
  219. package/lib/types/lib/reanimated2/component/FlatList.d.ts +9 -0
  220. package/lib/types/lib/reanimated2/component/Image.d.ts +3 -0
  221. package/lib/types/lib/reanimated2/component/ScrollView.d.ts +3 -0
  222. package/lib/types/lib/reanimated2/component/Text.d.ts +3 -0
  223. package/lib/types/lib/reanimated2/component/View.d.ts +3 -0
  224. package/lib/types/lib/reanimated2/core.d.ts +24 -0
  225. package/lib/types/lib/reanimated2/frameCallback/FrameCallbackRegistryJS.d.ts +8 -0
  226. package/lib/types/lib/reanimated2/frameCallback/FrameCallbackRegistryUI.d.ts +20 -0
  227. package/lib/types/lib/reanimated2/hook/Hooks.d.ts +5 -0
  228. package/lib/types/lib/reanimated2/hook/commonTypes.d.ts +14 -0
  229. package/lib/types/lib/reanimated2/hook/index.d.ts +14 -0
  230. package/lib/types/lib/reanimated2/hook/useAnimatedGestureHandler.d.ts +35 -0
  231. package/lib/types/lib/reanimated2/hook/useAnimatedKeyboard.d.ts +2 -0
  232. package/lib/types/lib/reanimated2/hook/useAnimatedReaction.d.ts +12 -0
  233. package/lib/types/lib/reanimated2/hook/useAnimatedRef.d.ts +3 -0
  234. package/lib/types/lib/reanimated2/hook/useAnimatedScrollHandler.d.ts +20 -0
  235. package/lib/types/lib/reanimated2/hook/useAnimatedSensor.d.ts +18 -0
  236. package/lib/types/lib/reanimated2/hook/useAnimatedStyle.d.ts +11 -0
  237. package/lib/types/lib/reanimated2/hook/useDerivedValue.d.ts +4 -0
  238. package/lib/types/lib/reanimated2/hook/useFrameCallback.d.ts +7 -0
  239. package/lib/types/lib/reanimated2/hook/useScrollViewOffset.d.ts +4 -0
  240. package/lib/types/lib/reanimated2/hook/useSharedValue.d.ts +2 -0
  241. package/lib/types/lib/reanimated2/hook/utils.d.ts +28 -0
  242. package/lib/types/lib/reanimated2/index.d.ts +12 -0
  243. package/lib/types/lib/reanimated2/interpolateColor.d.ts +32 -0
  244. package/lib/types/lib/reanimated2/interpolation.d.ts +14 -0
  245. package/lib/types/lib/reanimated2/jestUtils.d.ts +12 -0
  246. package/lib/types/lib/reanimated2/js-reanimated/JSReanimated.d.ts +32 -0
  247. package/lib/types/lib/reanimated2/js-reanimated/Mapper.d.ts +14 -0
  248. package/lib/types/lib/reanimated2/js-reanimated/MapperRegistry.d.ts +14 -0
  249. package/lib/types/lib/reanimated2/js-reanimated/MutableValue.d.ts +14 -0
  250. package/lib/types/lib/reanimated2/js-reanimated/commonTypes.d.ts +44 -0
  251. package/lib/types/lib/reanimated2/js-reanimated/global.d.ts +2 -0
  252. package/lib/types/lib/reanimated2/js-reanimated/index.d.ts +15 -0
  253. package/lib/types/lib/reanimated2/layoutReanimation/LayoutAnimationRepository.d.ts +1 -0
  254. package/lib/types/lib/reanimated2/layoutReanimation/animationBuilder/BaseAnimationBuilder.d.ts +22 -0
  255. package/lib/types/lib/reanimated2/layoutReanimation/animationBuilder/ComplexAnimationBuilder.d.ts +38 -0
  256. package/lib/types/lib/reanimated2/layoutReanimation/animationBuilder/Keyframe.d.ts +25 -0
  257. package/lib/types/lib/reanimated2/layoutReanimation/animationBuilder/commonTypes.d.ts +81 -0
  258. package/lib/types/lib/reanimated2/layoutReanimation/animationBuilder/index.d.ts +4 -0
  259. package/lib/types/lib/reanimated2/layoutReanimation/defaultAnimations/Bounce.d.ts +62 -0
  260. package/lib/types/lib/reanimated2/layoutReanimation/defaultAnimations/Default.d.ts +4 -0
  261. package/lib/types/lib/reanimated2/layoutReanimation/defaultAnimations/Fade.d.ts +42 -0
  262. package/lib/types/lib/reanimated2/layoutReanimation/defaultAnimations/Flip.d.ts +50 -0
  263. package/lib/types/lib/reanimated2/layoutReanimation/defaultAnimations/Lightspeed.d.ts +18 -0
  264. package/lib/types/lib/reanimated2/layoutReanimation/defaultAnimations/Pinwheel.d.ts +10 -0
  265. package/lib/types/lib/reanimated2/layoutReanimation/defaultAnimations/Roll.d.ts +18 -0
  266. package/lib/types/lib/reanimated2/layoutReanimation/defaultAnimations/Rotate.d.ts +34 -0
  267. package/lib/types/lib/reanimated2/layoutReanimation/defaultAnimations/Slide.d.ts +34 -0
  268. package/lib/types/lib/reanimated2/layoutReanimation/defaultAnimations/Stretch.d.ts +18 -0
  269. package/lib/types/lib/reanimated2/layoutReanimation/defaultAnimations/Zoom.d.ts +66 -0
  270. package/lib/types/lib/reanimated2/layoutReanimation/defaultAnimations/index.d.ts +10 -0
  271. package/lib/types/lib/reanimated2/layoutReanimation/defaultTransitions/CurvedTransition.d.ts +19 -0
  272. package/lib/types/lib/reanimated2/layoutReanimation/defaultTransitions/EntryExitTransition.d.ts +13 -0
  273. package/lib/types/lib/reanimated2/layoutReanimation/defaultTransitions/FadingTransition.d.ts +6 -0
  274. package/lib/types/lib/reanimated2/layoutReanimation/defaultTransitions/JumpingTransition.d.ts +6 -0
  275. package/lib/types/lib/reanimated2/layoutReanimation/defaultTransitions/LinearTransition.d.ts +7 -0
  276. package/lib/types/lib/reanimated2/layoutReanimation/defaultTransitions/SequencedTransition.d.ts +9 -0
  277. package/lib/types/lib/reanimated2/layoutReanimation/defaultTransitions/index.d.ts +6 -0
  278. package/lib/types/lib/reanimated2/layoutReanimation/index.d.ts +4 -0
  279. package/lib/types/lib/reanimated2/mock.d.ts +61 -0
  280. package/lib/types/lib/reanimated2/platform-specific/RNRenderer.d.ts +1 -0
  281. package/lib/types/lib/reanimated2/platform-specific/RNRenderer.web.d.ts +0 -0
  282. package/lib/types/lib/reanimated2/platform-specific/checkVersion.d.ts +4 -0
  283. package/lib/types/lib/reanimated2/platform-specific/checkVersion.web.d.ts +5 -0
  284. package/lib/types/lib/reanimated2/utils.d.ts +11 -0
  285. package/lib/types/lib/setAndForwardRef.d.ts +40 -0
  286. package/package.json +1 -1
  287. package/src/reanimated1/core/Core.test.js +0 -30
@@ -0,0 +1,248 @@
1
+ // spread and rest parameters can't be used in worklets right now
2
+ /* eslint-disable prefer-rest-params */
3
+ /* eslint-disable prefer-spread */
4
+ /* global _WORKLET */
5
+ // @ts-ignore reanimated1/Easing is JS file
6
+ import EasingNode from '../reanimated1/Easing';
7
+ import { Bezier } from './Bezier';
8
+ /**
9
+ * A linear function, `f(t) = t`. Position correlates to elapsed time one to
10
+ * one.
11
+ *
12
+ * http://cubic-bezier.com/#0,0,1,1
13
+ */
14
+ function linear(t) {
15
+ 'worklet';
16
+ return t;
17
+ }
18
+ /**
19
+ * A simple inertial interaction, similar to an object slowly accelerating to
20
+ * speed.
21
+ *
22
+ * http://cubic-bezier.com/#.42,0,1,1
23
+ */
24
+ function ease(t) {
25
+ 'worklet';
26
+ return Bezier(0.42, 0, 1, 1)(t);
27
+ }
28
+ /**
29
+ * A quadratic function, `f(t) = t * t`. Position equals the square of elapsed
30
+ * time.
31
+ *
32
+ * http://easings.net/#easeInQuad
33
+ */
34
+ function quad(t) {
35
+ 'worklet';
36
+ return t * t;
37
+ }
38
+ /**
39
+ * A cubic function, `f(t) = t * t * t`. Position equals the cube of elapsed
40
+ * time.
41
+ *
42
+ * http://easings.net/#easeInCubic
43
+ */
44
+ function cubic(t) {
45
+ 'worklet';
46
+ return t * t * t;
47
+ }
48
+ /**
49
+ * A power function. Position is equal to the Nth power of elapsed time.
50
+ *
51
+ * n = 4: http://easings.net/#easeInQuart
52
+ * n = 5: http://easings.net/#easeInQuint
53
+ */
54
+ function poly(n) {
55
+ 'worklet';
56
+ return (t) => {
57
+ 'worklet';
58
+ return Math.pow(t, n);
59
+ };
60
+ }
61
+ /**
62
+ * A sinusoidal function.
63
+ *
64
+ * http://easings.net/#easeInSine
65
+ */
66
+ function sin(t) {
67
+ 'worklet';
68
+ return 1 - Math.cos((t * Math.PI) / 2);
69
+ }
70
+ /**
71
+ * A circular function.
72
+ *
73
+ * http://easings.net/#easeInCirc
74
+ */
75
+ function circle(t) {
76
+ 'worklet';
77
+ return 1 - Math.sqrt(1 - t * t);
78
+ }
79
+ /**
80
+ * An exponential function.
81
+ *
82
+ * http://easings.net/#easeInExpo
83
+ */
84
+ function exp(t) {
85
+ 'worklet';
86
+ return Math.pow(2, 10 * (t - 1));
87
+ }
88
+ /**
89
+ * A simple elastic interaction, similar to a spring oscillating back and
90
+ * forth.
91
+ *
92
+ * Default bounciness is 1, which overshoots a little bit once. 0 bounciness
93
+ * doesn't overshoot at all, and bounciness of N > 1 will overshoot about N
94
+ * times.
95
+ *
96
+ * http://easings.net/#easeInElastic
97
+ */
98
+ function elastic(bounciness = 1) {
99
+ 'worklet';
100
+ const p = bounciness * Math.PI;
101
+ return (t) => {
102
+ 'worklet';
103
+ return 1 - Math.pow(Math.cos((t * Math.PI) / 2), 3) * Math.cos(t * p);
104
+ };
105
+ }
106
+ /**
107
+ * Use with `Animated.parallel()` to create a simple effect where the object
108
+ * animates back slightly as the animation starts.
109
+ *
110
+ * Wolfram Plot:
111
+ *
112
+ * - http://tiny.cc/back_default (s = 1.70158, default)
113
+ */
114
+ function back(s = 1.70158) {
115
+ 'worklet';
116
+ return (t) => {
117
+ 'worklet';
118
+ return t * t * ((s + 1) * t - s);
119
+ };
120
+ }
121
+ /**
122
+ * Provides a simple bouncing effect.
123
+ *
124
+ * http://easings.net/#easeInBounce
125
+ */
126
+ function bounce(t) {
127
+ 'worklet';
128
+ if (t < 1 / 2.75) {
129
+ return 7.5625 * t * t;
130
+ }
131
+ if (t < 2 / 2.75) {
132
+ const t2 = t - 1.5 / 2.75;
133
+ return 7.5625 * t2 * t2 + 0.75;
134
+ }
135
+ if (t < 2.5 / 2.75) {
136
+ const t2 = t - 2.25 / 2.75;
137
+ return 7.5625 * t2 * t2 + 0.9375;
138
+ }
139
+ const t2 = t - 2.625 / 2.75;
140
+ return 7.5625 * t2 * t2 + 0.984375;
141
+ }
142
+ /**
143
+ * Provides a cubic bezier curve, equivalent to CSS Transitions'
144
+ * `transition-timing-function`.
145
+ *
146
+ * A useful tool to visualize cubic bezier curves can be found at
147
+ * http://cubic-bezier.com/
148
+ */
149
+ function bezier(x1, y1, x2, y2) {
150
+ 'worklet';
151
+ return {
152
+ factory: () => {
153
+ 'worklet';
154
+ return Bezier(x1, y1, x2, y2);
155
+ },
156
+ };
157
+ }
158
+ function bezierFn(x1, y1, x2, y2) {
159
+ 'worklet';
160
+ return Bezier(x1, y1, x2, y2);
161
+ }
162
+ /**
163
+ * Runs an easing function forwards.
164
+ */
165
+ function in_(easing) {
166
+ 'worklet';
167
+ return easing;
168
+ }
169
+ /**
170
+ * Runs an easing function backwards.
171
+ */
172
+ function out(easing) {
173
+ 'worklet';
174
+ return (t) => {
175
+ 'worklet';
176
+ return 1 - easing(1 - t);
177
+ };
178
+ }
179
+ /**
180
+ * Makes any easing function symmetrical. The easing function will run
181
+ * forwards for half of the duration, then backwards for the rest of the
182
+ * duration.
183
+ */
184
+ function inOut(easing) {
185
+ 'worklet';
186
+ return (t) => {
187
+ 'worklet';
188
+ if (t < 0.5) {
189
+ return easing(t * 2) / 2;
190
+ }
191
+ return 1 - easing((1 - t) * 2) / 2;
192
+ };
193
+ }
194
+ const EasingObject = {
195
+ linear,
196
+ ease,
197
+ quad,
198
+ cubic,
199
+ poly,
200
+ sin,
201
+ circle,
202
+ exp,
203
+ elastic,
204
+ back,
205
+ bounce,
206
+ bezier,
207
+ bezierFn,
208
+ in: in_,
209
+ out,
210
+ inOut,
211
+ };
212
+ // TODO type worklets
213
+ function createChecker(worklet, workletName, prevArgs) {
214
+ /* should return Animated.Value or worklet */
215
+ function checkIfReaOne() {
216
+ 'worklet';
217
+ if (arguments && !_WORKLET) {
218
+ for (let i = 0; i < arguments.length; i++) {
219
+ const arg = arguments[i];
220
+ if (arg && arg.__nodeID) {
221
+ console.warn(`Easing was renamed to EasingNode in Reanimated 2. Please use EasingNode instead`);
222
+ if (prevArgs) {
223
+ return EasingNode[workletName]
224
+ .apply(undefined, prevArgs)
225
+ .apply(undefined, arguments);
226
+ }
227
+ return EasingNode[workletName].apply(undefined, arguments);
228
+ }
229
+ }
230
+ }
231
+ // @ts-ignore this is implicitly any - TODO
232
+ const res = worklet.apply(this, arguments);
233
+ if (!_WORKLET && res && typeof res === 'function' && res.__workletHash) {
234
+ return createChecker(res, workletName, arguments);
235
+ }
236
+ return res;
237
+ }
238
+ // use original worklet on UI side
239
+ checkIfReaOne._closure = worklet._closure;
240
+ checkIfReaOne.asString = worklet.asString;
241
+ checkIfReaOne.__workletHash = worklet.__workletHash;
242
+ checkIfReaOne.__location = worklet.__location;
243
+ return checkIfReaOne;
244
+ }
245
+ Object.keys(EasingObject).forEach((key) => {
246
+ EasingObject[key] = createChecker(EasingObject[key], key);
247
+ });
248
+ export const Easing = EasingObject;
@@ -0,0 +1,94 @@
1
+ import { findNodeHandle } from 'react-native';
2
+ import { isChromeDebugger, isWeb, shouldBeUseWeb } from './PlatformChecker';
3
+ export function getTag(view) {
4
+ return findNodeHandle(view);
5
+ }
6
+ const isNative = !shouldBeUseWeb();
7
+ export let measure;
8
+ if (isWeb()) {
9
+ measure = (animatedRef) => {
10
+ const element = animatedRef(); // TODO: fix typing of animated refs on web
11
+ const viewportOffset = element.getBoundingClientRect();
12
+ return {
13
+ width: element.offsetWidth,
14
+ height: element.offsetHeight,
15
+ x: element.offsetLeft,
16
+ y: element.offsetTop,
17
+ pageX: viewportOffset.left,
18
+ pageY: viewportOffset.top,
19
+ };
20
+ };
21
+ }
22
+ else if (isChromeDebugger()) {
23
+ measure = (_animatedRef) => {
24
+ console.warn('[Reanimated] measure() cannot be used with Chrome Debugger.');
25
+ return null;
26
+ };
27
+ }
28
+ else {
29
+ measure = (animatedRef) => {
30
+ 'worklet';
31
+ if (!_WORKLET) {
32
+ console.warn('[Reanimated] measure() was called from the main JS context. Measure is ' +
33
+ 'only available in the UI runtime. This may also happen if measure() ' +
34
+ 'was called by a worklet in the useAnimatedStyle hook, because useAnimatedStyle ' +
35
+ 'calls the given worklet on the JS runtime during render. If you want to ' +
36
+ 'prevent this warning then wrap the call with `if (_WORKLET)`. Then it will ' +
37
+ 'only be called on the UI runtime after the render has been completed.');
38
+ return null;
39
+ }
40
+ const viewTag = animatedRef();
41
+ if (viewTag === -1) {
42
+ console.warn(`[Reanimated] The view with tag ${viewTag} is not a valid argument for measure(). This may be because the view is not currently rendered, which may not be a bug (e.g. an off-screen FlatList item).`);
43
+ return null;
44
+ }
45
+ const measured = _measure(viewTag);
46
+ if (measured === null) {
47
+ console.warn(`[Reanimated] The view with tag ${viewTag} has some undefined, not-yet-computed or meaningless value of \`LayoutMetrics\` type. This may be because the view is not currently rendered, which may not be a bug (e.g. an off-screen FlatList item).`);
48
+ return null;
49
+ }
50
+ else if (measured.x === -1234567) {
51
+ console.warn(`[Reanimated] The view with tag ${viewTag} returned an invalid measurement response.`);
52
+ return null;
53
+ }
54
+ else if (isNaN(measured.x)) {
55
+ console.warn(`[Reanimated] The view with tag ${viewTag} gets view-flattened on Android. To disable view-flattening, set \`collapsable={false}\` on this component.`);
56
+ return null;
57
+ }
58
+ else {
59
+ return measured;
60
+ }
61
+ };
62
+ }
63
+ export let scrollTo;
64
+ if (isWeb()) {
65
+ scrollTo = (animatedRef, x, y, animated) => {
66
+ 'worklet';
67
+ const element = animatedRef();
68
+ // @ts-ignore same call as in react-native-web
69
+ element.scrollTo({ x, y, animated });
70
+ };
71
+ }
72
+ else if (isNative) {
73
+ scrollTo = (animatedRef, x, y, animated) => {
74
+ 'worklet';
75
+ if (!_WORKLET) {
76
+ return;
77
+ }
78
+ const viewTag = animatedRef();
79
+ _scrollTo(viewTag, x, y, animated);
80
+ };
81
+ }
82
+ else {
83
+ scrollTo = (_animatedRef, _x, _y) => {
84
+ // no-op
85
+ };
86
+ }
87
+ export function setGestureState(handlerTag, newState) {
88
+ 'worklet';
89
+ if (!_WORKLET || !isNative) {
90
+ console.warn('[Reanimated] You can not use setGestureState in non-worklet function.');
91
+ return;
92
+ }
93
+ _setGestureState(handlerTag, newState);
94
+ }
@@ -0,0 +1,60 @@
1
+ import { NativeModules } from 'react-native';
2
+ import { checkVersion } from '../platform-specific/checkVersion';
3
+ export class NativeReanimated {
4
+ constructor(native = true) {
5
+ if (global.__reanimatedModuleProxy === undefined && native) {
6
+ const { ReanimatedModule } = NativeModules;
7
+ ReanimatedModule === null || ReanimatedModule === void 0 ? void 0 : ReanimatedModule.installTurboModule();
8
+ }
9
+ this.InnerNativeModule = global.__reanimatedModuleProxy;
10
+ this.native = native;
11
+ if (native) {
12
+ checkVersion();
13
+ }
14
+ }
15
+ installCoreFunctions(valueSetter) {
16
+ return this.InnerNativeModule.installCoreFunctions(valueSetter);
17
+ }
18
+ makeShareable(value) {
19
+ return this.InnerNativeModule.makeShareable(value);
20
+ }
21
+ makeMutable(value) {
22
+ return this.InnerNativeModule.makeMutable(value);
23
+ }
24
+ makeRemote(object = {}) {
25
+ return this.InnerNativeModule.makeRemote(object);
26
+ }
27
+ registerSensor(sensorType, interval, sensorData) {
28
+ return this.InnerNativeModule.registerSensor(sensorType, interval, sensorData);
29
+ }
30
+ unregisterSensor(sensorId) {
31
+ return this.InnerNativeModule.unregisterSensor(sensorId);
32
+ }
33
+ startMapper(mapper, inputs = [], outputs = [], updater, viewDescriptors) {
34
+ return this.InnerNativeModule.startMapper(mapper, inputs, outputs, updater, viewDescriptors);
35
+ }
36
+ stopMapper(mapperId) {
37
+ return this.InnerNativeModule.stopMapper(mapperId);
38
+ }
39
+ registerEventHandler(eventHash, eventHandler) {
40
+ return this.InnerNativeModule.registerEventHandler(eventHash, eventHandler);
41
+ }
42
+ unregisterEventHandler(id) {
43
+ return this.InnerNativeModule.unregisterEventHandler(id);
44
+ }
45
+ getViewProp(viewTag, propName, callback) {
46
+ return this.InnerNativeModule.getViewProp(viewTag, propName, callback);
47
+ }
48
+ enableLayoutAnimations(flag) {
49
+ this.InnerNativeModule.enableLayoutAnimations(flag);
50
+ }
51
+ configureProps(uiProps, nativeProps) {
52
+ this.InnerNativeModule.configureProps(uiProps, nativeProps);
53
+ }
54
+ subscribeForKeyboardEvents(keyboardEventData) {
55
+ return this.InnerNativeModule.subscribeForKeyboardEvents(keyboardEventData);
56
+ }
57
+ unsubscribeFromKeyboardEvents(listenerId) {
58
+ this.InnerNativeModule.unsubscribeFromKeyboardEvents(listenerId);
59
+ }
60
+ }
@@ -0,0 +1,11 @@
1
+ import reanimatedJS from '../js-reanimated';
2
+ import { shouldBeUseWeb } from '../PlatformChecker';
3
+ import { NativeReanimated } from './NativeReanimated';
4
+ let exportedModule;
5
+ if (shouldBeUseWeb()) {
6
+ exportedModule = reanimatedJS;
7
+ }
8
+ else {
9
+ exportedModule = new NativeReanimated();
10
+ }
11
+ export default exportedModule;
@@ -0,0 +1,16 @@
1
+ import { Platform } from 'react-native';
2
+ export function isJest() {
3
+ return !!process.env.JEST_WORKER_ID;
4
+ }
5
+ export function isChromeDebugger() {
6
+ return !global.nativeCallSyncHook || global.__REMOTEDEV__;
7
+ }
8
+ export function isWeb() {
9
+ return Platform.OS === 'web';
10
+ }
11
+ export function shouldBeUseWeb() {
12
+ return isJest() || isChromeDebugger() || isWeb();
13
+ }
14
+ export function nativeShouldBeMock() {
15
+ return isJest() || isChromeDebugger();
16
+ }
@@ -0,0 +1,55 @@
1
+ import { addWhitelistedNativeProps } from '../ConfigHelper';
2
+ export function createAnimatedPropAdapter(adapter, nativeProps) {
3
+ const nativePropsToAdd = {};
4
+ // eslint-disable-next-line no-unused-expressions
5
+ nativeProps === null || nativeProps === void 0 ? void 0 : nativeProps.forEach((prop) => {
6
+ nativePropsToAdd[prop] = true;
7
+ });
8
+ addWhitelistedNativeProps(nativePropsToAdd);
9
+ return adapter;
10
+ }
11
+ // ADAPTERS
12
+ export const SVGAdapter = createAnimatedPropAdapter((props) => {
13
+ 'worklet';
14
+ var _a, _b;
15
+ const keys = Object.keys(props);
16
+ // transform
17
+ if (keys.includes('transform')) {
18
+ if (Array.isArray(props.transform)) {
19
+ // case of array with 6 values => https://github.com/react-native-svg/react-native-svg/blob/b2e2c355204ff4b10973d3afce1495f7e4167ff7/src/elements/Shape.tsx#L200
20
+ if (props.transform.length !== 6) {
21
+ throw new Error(`invalid transform length of ${props.transform.length}, should be 6`);
22
+ }
23
+ const transform = props.transform;
24
+ const x = (_a = props.x) !== null && _a !== void 0 ? _a : 0;
25
+ const y = (_b = props.y) !== null && _b !== void 0 ? _b : 0;
26
+ props.transform = [
27
+ { translateX: transform[0] * x + transform[2] * y + transform[4] },
28
+ { translateY: transform[1] * x + transform[3] * y + transform[5] },
29
+ ];
30
+ }
31
+ else if (typeof props.transform === 'string') {
32
+ // case of string 'translate(translateX translateY)'
33
+ // todo: handle other cases of transform string like here https://github.com/react-native-svg/react-native-svg/blob/b2e2c355204ff4b10973d3afce1495f7e4167ff7/src/lib/extract/extractTransform.ts#L184
34
+ const transform = props.transform;
35
+ const arr = transform
36
+ .replace('translate(', '')
37
+ .replace(')', '')
38
+ .split(' ');
39
+ props.transform = [
40
+ { translateX: parseFloat(arr[0]) },
41
+ { translateY: parseFloat(arr[1]) },
42
+ ];
43
+ }
44
+ }
45
+ // todo: other props
46
+ });
47
+ export const TextInputAdapter = createAnimatedPropAdapter((props) => {
48
+ 'worklet';
49
+ const keys = Object.keys(props);
50
+ // convert text to value like RN does here: https://github.com/facebook/react-native/blob/f2c6279ca497b34d5a2bfbb6f2d33dc7a7bea02a/Libraries/Components/TextInput/TextInput.js#L878
51
+ if (keys.includes('value')) {
52
+ props.text = props.value;
53
+ delete props.value;
54
+ }
55
+ }, ['text']);
@@ -0,0 +1,55 @@
1
+ import { processColor } from './Colors';
2
+ import { makeShareable, isConfigured } from './core';
3
+ import { _updatePropsJS } from './js-reanimated';
4
+ import { shouldBeUseWeb } from './PlatformChecker';
5
+ // copied from react-native/Libraries/Components/View/ReactNativeStyleAttributes
6
+ export const colorProps = [
7
+ 'backgroundColor',
8
+ 'borderBottomColor',
9
+ 'borderColor',
10
+ 'borderLeftColor',
11
+ 'borderRightColor',
12
+ 'borderTopColor',
13
+ 'borderStartColor',
14
+ 'borderEndColor',
15
+ 'color',
16
+ 'shadowColor',
17
+ 'textDecorationColor',
18
+ 'tintColor',
19
+ 'textShadowColor',
20
+ 'overlayColor',
21
+ ];
22
+ export const ColorProperties = !isConfigured() ? [] : makeShareable(colorProps);
23
+ let updatePropsByPlatform;
24
+ if (shouldBeUseWeb()) {
25
+ updatePropsByPlatform = (_, updates, maybeViewRef) => {
26
+ 'worklet';
27
+ if (maybeViewRef) {
28
+ maybeViewRef.items.forEach((item, _) => {
29
+ _updatePropsJS(updates, item);
30
+ });
31
+ }
32
+ };
33
+ }
34
+ else {
35
+ updatePropsByPlatform = (viewDescriptors, updates, _) => {
36
+ 'worklet';
37
+ for (const key in updates) {
38
+ if (ColorProperties.indexOf(key) !== -1) {
39
+ updates[key] = processColor(updates[key]);
40
+ }
41
+ }
42
+ viewDescriptors.value.forEach((viewDescriptor) => {
43
+ _updateProps(viewDescriptor.tag, viewDescriptor.name || 'RCTView', updates);
44
+ });
45
+ };
46
+ }
47
+ export const updateProps = updatePropsByPlatform;
48
+ export const updatePropsJestWrapper = (viewDescriptors, updates, maybeViewRef, animatedStyle, adapters) => {
49
+ adapters.forEach((adapter) => {
50
+ adapter(updates);
51
+ });
52
+ animatedStyle.current.value = Object.assign(Object.assign({}, animatedStyle.current.value), updates);
53
+ updateProps(viewDescriptors, updates, maybeViewRef);
54
+ };
55
+ export default updateProps;
@@ -0,0 +1,75 @@
1
+ import { useRef } from 'react';
2
+ import { makeMutable } from './core';
3
+ import { shouldBeUseWeb } from './PlatformChecker';
4
+ const scheduleUpdates = shouldBeUseWeb() ? requestAnimationFrame : setImmediate;
5
+ export function makeViewDescriptorsSet() {
6
+ const ref = useRef(null);
7
+ if (ref.current === null) {
8
+ const data = {
9
+ batchToRemove: new Set(),
10
+ tags: new Set(),
11
+ waitForInsertSync: false,
12
+ waitForRemoveSync: false,
13
+ sharableViewDescriptors: makeMutable([]),
14
+ items: [],
15
+ add: (item) => {
16
+ if (data.tags.has(item.tag)) {
17
+ return;
18
+ }
19
+ data.tags.add(item.tag);
20
+ data.items.push(item);
21
+ if (!data.waitForInsertSync) {
22
+ data.waitForInsertSync = true;
23
+ scheduleUpdates(() => {
24
+ data.sharableViewDescriptors.value = data.items;
25
+ data.waitForInsertSync = false;
26
+ });
27
+ }
28
+ },
29
+ remove: (viewTag) => {
30
+ data.batchToRemove.add(viewTag);
31
+ if (!data.waitForRemoveSync) {
32
+ data.waitForRemoveSync = true;
33
+ scheduleUpdates(() => {
34
+ const items = [];
35
+ for (const item of data.items) {
36
+ if (data.batchToRemove.has(item.tag)) {
37
+ data.tags.delete(item.tag);
38
+ }
39
+ else {
40
+ items.push(item);
41
+ }
42
+ }
43
+ data.items = items;
44
+ data.sharableViewDescriptors.value = items;
45
+ data.batchToRemove = new Set();
46
+ data.waitForRemoveSync = false;
47
+ });
48
+ }
49
+ },
50
+ rebuildsharableViewDescriptors: (sharableViewDescriptors) => {
51
+ data.sharableViewDescriptors = sharableViewDescriptors;
52
+ },
53
+ };
54
+ ref.current = data;
55
+ }
56
+ return ref.current;
57
+ }
58
+ export function makeViewsRefSet() {
59
+ const ref = useRef(null);
60
+ if (ref.current === null) {
61
+ const data = {
62
+ items: new Set(),
63
+ add: (item) => {
64
+ if (data.items.has(item))
65
+ return;
66
+ data.items.add(item);
67
+ },
68
+ remove: (item) => {
69
+ data.items.delete(item);
70
+ },
71
+ };
72
+ ref.current = data;
73
+ }
74
+ return ref.current;
75
+ }
@@ -0,0 +1,37 @@
1
+ import NativeReanimatedModule from './NativeReanimated';
2
+ function jsListener(eventName, handler) {
3
+ return (evt) => {
4
+ handler(Object.assign(Object.assign({}, evt.nativeEvent), { eventName }));
5
+ };
6
+ }
7
+ export default class WorkletEventHandler {
8
+ constructor(worklet, eventNames = []) {
9
+ this.worklet = worklet;
10
+ this.eventNames = eventNames;
11
+ this.reattachNeeded = false;
12
+ this.listeners = {};
13
+ this.viewTag = undefined;
14
+ this.registrations = [];
15
+ if (!NativeReanimatedModule.native) {
16
+ this.listeners = eventNames.reduce((acc, eventName) => {
17
+ acc[eventName] = jsListener(eventName, worklet);
18
+ return acc;
19
+ }, {});
20
+ }
21
+ }
22
+ updateWorklet(newWorklet) {
23
+ this.worklet = newWorklet;
24
+ this.reattachNeeded = true;
25
+ }
26
+ registerForEvents(viewTag, fallbackEventName) {
27
+ this.viewTag = viewTag;
28
+ this.registrations = this.eventNames.map((eventName) => NativeReanimatedModule.registerEventHandler(viewTag + eventName, this.worklet));
29
+ if (this.registrations.length === 0 && fallbackEventName) {
30
+ this.registrations.push(NativeReanimatedModule.registerEventHandler(viewTag + fallbackEventName, this.worklet));
31
+ }
32
+ }
33
+ unregisterFromEvents() {
34
+ this.registrations.forEach((id) => NativeReanimatedModule.unregisterEventHandler(id));
35
+ this.registrations = [];
36
+ }
37
+ }
@@ -0,0 +1,13 @@
1
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
2
+ // @ts-nocheck
3
+ export default class MutableValue {
4
+ constructor(value) {
5
+ this._value = value;
6
+ }
7
+ get value() {
8
+ return this._value;
9
+ }
10
+ set value(nextValue) {
11
+ this._value = nextValue;
12
+ }
13
+ }
@@ -0,0 +1,20 @@
1
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
2
+ // @ts-nocheck
3
+ import MutableValue from './MutableValue';
4
+ global._setGlobalConsole = (_val) => {
5
+ // noop
6
+ };
7
+ const NOOP = () => {
8
+ // noop
9
+ };
10
+ export default {
11
+ installCoreFunctions: NOOP,
12
+ makeShareable: (worklet) => worklet,
13
+ makeMutable: (init) => new MutableValue(init),
14
+ makeRemote: NOOP,
15
+ startMapper: NOOP,
16
+ stopMapper: NOOP,
17
+ registerEventHandler: NOOP,
18
+ unregisterEventHandler: NOOP,
19
+ getViewProp: NOOP,
20
+ };
@@ -0,0 +1 @@
1
+ export {};