react-native-reanimated 2.3.0-alpha.3 → 2.3.0-beta.4

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 (264) hide show
  1. package/Common/cpp/LayoutAnimations/LayoutAnimationsProxy.cpp +15 -8
  2. package/Common/cpp/NativeModules/NativeReanimatedModule.cpp +176 -154
  3. package/Common/cpp/NativeModules/NativeReanimatedModuleSpec.cpp +49 -33
  4. package/Common/cpp/Registries/EventHandlerRegistry.cpp +14 -7
  5. package/Common/cpp/Registries/MapperRegistry.cpp +24 -20
  6. package/Common/cpp/Registries/WorkletsCache.cpp +19 -9
  7. package/Common/cpp/SharedItems/FrozenObject.cpp +17 -8
  8. package/Common/cpp/SharedItems/MutableValue.cpp +38 -25
  9. package/Common/cpp/SharedItems/MutableValueSetterProxy.cpp +11 -7
  10. package/Common/cpp/SharedItems/RemoteObject.cpp +9 -5
  11. package/Common/cpp/SharedItems/ShareableValue.cpp +211 -160
  12. package/Common/cpp/Tools/FeaturesConfig.cpp +5 -0
  13. package/Common/cpp/Tools/JSIStoreValueUser.cpp +25 -6
  14. package/Common/cpp/Tools/Mapper.cpp +30 -30
  15. package/Common/cpp/Tools/RuntimeDecorator.cpp +124 -86
  16. package/Common/cpp/Tools/Scheduler.cpp +6 -5
  17. package/Common/cpp/Tools/WorkletEventHandler.cpp +4 -2
  18. package/Common/cpp/headers/LayoutAnimations/LayoutAnimationsProxy.h +12 -11
  19. package/Common/cpp/headers/NativeModules/NativeReanimatedModule.h +50 -31
  20. package/Common/cpp/headers/NativeModules/NativeReanimatedModuleSpec.h +34 -16
  21. package/Common/cpp/headers/Registries/EventHandlerRegistry.h +15 -8
  22. package/Common/cpp/headers/Registries/MapperRegistry.h +5 -4
  23. package/Common/cpp/headers/Registries/WorkletsCache.h +9 -7
  24. package/Common/cpp/headers/SharedItems/FrozenObject.h +19 -11
  25. package/Common/cpp/headers/SharedItems/HostFunctionHandler.h +8 -4
  26. package/Common/cpp/headers/SharedItems/MutableValue.h +23 -12
  27. package/Common/cpp/headers/SharedItems/MutableValueSetterProxy.h +12 -7
  28. package/Common/cpp/headers/SharedItems/RemoteObject.h +19 -8
  29. package/Common/cpp/headers/SharedItems/RuntimeManager.h +26 -25
  30. package/Common/cpp/headers/SharedItems/ShareableValue.h +32 -27
  31. package/Common/cpp/headers/SharedItems/SharedParent.h +10 -7
  32. package/Common/cpp/headers/SharedItems/ValueWrapper.h +95 -72
  33. package/Common/cpp/headers/SpecTools/ErrorHandler.h +18 -19
  34. package/Common/cpp/headers/Tools/FeaturesConfig.h +19 -0
  35. package/Common/cpp/headers/Tools/JSIStoreValueUser.h +13 -16
  36. package/Common/cpp/headers/Tools/Mapper.h +19 -16
  37. package/Common/cpp/headers/Tools/PlatformDepMethodsHolder.h +17 -7
  38. package/Common/cpp/headers/Tools/ReanimatedHiddenHeaders.h +7 -11
  39. package/Common/cpp/headers/Tools/RuntimeDecorator.h +36 -27
  40. package/Common/cpp/headers/Tools/Scheduler.h +30 -35
  41. package/Common/cpp/headers/Tools/WorkletEventHandler.h +11 -8
  42. package/Common/cpp/hidden_headers/Logger.h +14 -14
  43. package/Common/cpp/hidden_headers/LoggerInterface.h +8 -9
  44. package/Common/cpp/hidden_headers/SpeedChecker.h +7 -8
  45. package/README.md +1 -1
  46. package/RNReanimated.podspec +24 -6
  47. package/android/build.gradle +38 -29
  48. package/android/react-native-reanimated-63-hermes.aar +0 -0
  49. package/android/react-native-reanimated-63-jsc.aar +0 -0
  50. package/android/react-native-reanimated-64-hermes.aar +0 -0
  51. package/android/react-native-reanimated-64-jsc.aar +0 -0
  52. package/android/react-native-reanimated-65-hermes.aar +0 -0
  53. package/android/react-native-reanimated-65-jsc.aar +0 -0
  54. package/android/react-native-reanimated-66-hermes.aar +0 -0
  55. package/android/react-native-reanimated-66-jsc.aar +0 -0
  56. package/android/react-native-reanimated-67-hermes.aar +0 -0
  57. package/android/react-native-reanimated-67-jsc.aar +0 -0
  58. package/ios/LayoutReanimation/REAAnimationsManager.h +10 -8
  59. package/ios/LayoutReanimation/REAAnimationsManager.m +91 -87
  60. package/ios/LayoutReanimation/REASnapshot.h +2 -2
  61. package/ios/LayoutReanimation/REASnapshot.m +8 -7
  62. package/ios/LayoutReanimation/REAUIManager.h +4 -4
  63. package/ios/LayoutReanimation/REAUIManager.mm +116 -70
  64. package/ios/Nodes/REAAlwaysNode.m +14 -15
  65. package/ios/Nodes/REABezierNode.m +8 -7
  66. package/ios/Nodes/REABlockNode.m +1 -1
  67. package/ios/Nodes/REACallFuncNode.h +0 -1
  68. package/ios/Nodes/REACallFuncNode.m +10 -8
  69. package/ios/Nodes/REAClockNodes.m +22 -20
  70. package/ios/Nodes/REAConcatNode.h +0 -1
  71. package/ios/Nodes/REAConcatNode.m +2 -2
  72. package/ios/Nodes/REACondNode.m +7 -5
  73. package/ios/Nodes/READebugNode.m +5 -4
  74. package/ios/Nodes/REAEventNode.m +1 -1
  75. package/ios/Nodes/REAFunctionNode.h +0 -1
  76. package/ios/Nodes/REAFunctionNode.m +2 -2
  77. package/ios/Nodes/REAJSCallNode.m +4 -5
  78. package/ios/Nodes/REANode.h +3 -4
  79. package/ios/Nodes/REANode.m +9 -11
  80. package/ios/Nodes/REAOperatorNode.m +68 -67
  81. package/ios/Nodes/REAParamNode.h +1 -3
  82. package/ios/Nodes/REAParamNode.m +15 -17
  83. package/ios/Nodes/REAPropsNode.h +1 -3
  84. package/ios/Nodes/REAPropsNode.m +19 -22
  85. package/ios/Nodes/REASetNode.h +0 -1
  86. package/ios/Nodes/REASetNode.m +7 -5
  87. package/ios/Nodes/REAStyleNode.h +0 -1
  88. package/ios/Nodes/REAStyleNode.m +2 -4
  89. package/ios/Nodes/REATransformNode.h +0 -1
  90. package/ios/Nodes/REATransformNode.m +3 -5
  91. package/ios/Nodes/REAValueNode.m +5 -7
  92. package/ios/REAEventDispatcher.m +4 -4
  93. package/ios/REAModule.h +0 -2
  94. package/ios/REAModule.m +29 -38
  95. package/ios/REANodesManager.h +11 -19
  96. package/ios/REANodesManager.m +106 -130
  97. package/ios/REAUtils.h +5 -3
  98. package/ios/RNGestureHandlerStateManager.h +5 -0
  99. package/ios/Transitioning/RCTConvert+REATransition.m +45 -29
  100. package/ios/Transitioning/REAAllTransitions.h +2 -2
  101. package/ios/Transitioning/REAAllTransitions.m +14 -25
  102. package/ios/Transitioning/REATransition.h +8 -7
  103. package/ios/Transitioning/REATransition.m +19 -16
  104. package/ios/Transitioning/REATransitionAnimation.h +1 -1
  105. package/ios/Transitioning/REATransitionAnimation.m +2 -3
  106. package/ios/Transitioning/REATransitionManager.m +3 -3
  107. package/ios/native/NativeMethods.h +20 -5
  108. package/ios/native/NativeMethods.mm +14 -6
  109. package/ios/native/NativeProxy.h +4 -2
  110. package/ios/native/NativeProxy.mm +84 -63
  111. package/ios/native/REAIOSErrorHandler.h +13 -10
  112. package/ios/native/REAIOSErrorHandler.mm +19 -15
  113. package/ios/native/REAIOSLogger.h +8 -8
  114. package/ios/native/REAIOSLogger.mm +10 -6
  115. package/ios/native/REAIOSScheduler.h +5 -5
  116. package/ios/native/REAIOSScheduler.mm +17 -10
  117. package/ios/native/REAInitializer.h +5 -7
  118. package/ios/native/REAInitializer.mm +43 -31
  119. package/ios/native/UIResponder+Reanimated.mm +2 -2
  120. package/lib/Animated.js +9 -1
  121. package/lib/ConfigHelper.js +121 -138
  122. package/lib/ReanimatedEventEmitter.js +0 -1
  123. package/lib/ReanimatedModule.js +0 -1
  124. package/lib/ReanimatedModule.macos.js +0 -1
  125. package/lib/ReanimatedModule.native.js +5 -6
  126. package/lib/ReanimatedModule.windows.js +0 -1
  127. package/lib/ReanimatedModuleCompat.js +64 -35
  128. package/lib/createAnimatedComponent.js +468 -487
  129. package/lib/index.js +9 -1
  130. package/lib/reanimated2/NativeMethods.js +7 -12
  131. package/lib/reanimated2/NativeReanimated/NativeReanimated.js +37 -0
  132. package/lib/reanimated2/NativeReanimated/index.js +15 -0
  133. package/lib/reanimated2/PropAdapters.js +0 -1
  134. package/lib/reanimated2/UpdateProps.js +6 -7
  135. package/lib/reanimated2/ViewDescriptorsSet.js +4 -4
  136. package/lib/reanimated2/WorkletEventHandler.js +15 -13
  137. package/lib/reanimated2/animation/delay.js +8 -2
  138. package/lib/reanimated2/animation/spring.js +2 -0
  139. package/lib/reanimated2/animation/styleAnimation.js +7 -3
  140. package/lib/reanimated2/animation/util.js +25 -2
  141. package/lib/reanimated2/core.js +41 -17
  142. package/lib/reanimated2/globals.d.ts +21 -1
  143. package/lib/reanimated2/hook/useAnimatedRef.js +1 -1
  144. package/lib/reanimated2/hook/useAnimatedStyle.js +3 -3
  145. package/lib/reanimated2/index.js +1 -0
  146. package/lib/reanimated2/interpolation.js +95 -87
  147. package/lib/reanimated2/js-reanimated/JSReanimated.js +13 -10
  148. package/lib/reanimated2/js-reanimated/Mapper.js +4 -3
  149. package/lib/reanimated2/js-reanimated/MapperRegistry.js +3 -6
  150. package/lib/reanimated2/js-reanimated/MutableValue.js +0 -2
  151. package/lib/reanimated2/js-reanimated/index.js +10 -8
  152. package/lib/reanimated2/layoutReanimation/LayoutAnimationRepository.js +33 -2
  153. package/lib/reanimated2/layoutReanimation/animationBuilder/BaseAnimationBuilder.js +27 -124
  154. package/lib/reanimated2/layoutReanimation/animationBuilder/ComplexAnimationBuilder.js +125 -0
  155. package/lib/reanimated2/layoutReanimation/animationBuilder/index.js +1 -2
  156. package/lib/reanimated2/layoutReanimation/defaultAnimations/Bounce.js +115 -45
  157. package/lib/reanimated2/layoutReanimation/defaultAnimations/Default.js +7 -2
  158. package/lib/reanimated2/layoutReanimation/defaultAnimations/Fade.js +21 -21
  159. package/lib/reanimated2/layoutReanimation/defaultAnimations/Flip.js +25 -25
  160. package/lib/reanimated2/layoutReanimation/defaultAnimations/Lightspeed.js +19 -17
  161. package/lib/reanimated2/layoutReanimation/defaultAnimations/Pinwheel.js +5 -5
  162. package/lib/reanimated2/layoutReanimation/defaultAnimations/Roll.js +9 -9
  163. package/lib/reanimated2/layoutReanimation/defaultAnimations/Rotate.js +17 -17
  164. package/lib/reanimated2/layoutReanimation/defaultAnimations/Slide.js +19 -19
  165. package/lib/reanimated2/layoutReanimation/defaultAnimations/Stretch.js +9 -9
  166. package/lib/reanimated2/layoutReanimation/defaultAnimations/Zoom.js +33 -33
  167. package/lib/reanimated2/layoutReanimation/defaultTransitions/CurvedTransition.js +78 -0
  168. package/lib/reanimated2/layoutReanimation/defaultTransitions/EntryExitTransition.js +128 -0
  169. package/lib/reanimated2/layoutReanimation/defaultTransitions/FadingTransition.js +37 -0
  170. package/lib/reanimated2/layoutReanimation/defaultTransitions/JumpingTransition.js +41 -0
  171. package/lib/reanimated2/layoutReanimation/defaultTransitions/LinearTransition.js +34 -0
  172. package/lib/reanimated2/layoutReanimation/defaultTransitions/SequencedTransition.js +46 -0
  173. package/lib/reanimated2/layoutReanimation/defaultTransitions/index.js +6 -0
  174. package/lib/reanimated2/layoutReanimation/index.js +1 -0
  175. package/lib/reanimated2/mock.js +3 -1
  176. package/lib/reanimated2/utils.js +9 -0
  177. package/lib/setAndForwardRef.js +14 -48
  178. package/libSo/fbjni/jni/arm64-v8a/libfbjni.so +0 -0
  179. package/libSo/fbjni/jni/armeabi-v7a/libfbjni.so +0 -0
  180. package/libSo/fbjni/jni/x86/libfbjni.so +0 -0
  181. package/libSo/fbjni/jni/x86_64/libfbjni.so +0 -0
  182. package/mock.js +1 -1
  183. package/package.json +28 -17
  184. package/plugin.js +220 -39
  185. package/react-native-reanimated.d.ts +542 -547
  186. package/src/Animated.js +9 -1
  187. package/src/{ConfigHelper.js → ConfigHelper.ts} +15 -7
  188. package/src/{ReanimatedEventEmitter.js → ReanimatedEventEmitter.ts} +0 -0
  189. package/src/{ReanimatedModule.js → ReanimatedModule.macos.ts} +0 -0
  190. package/src/{ReanimatedModule.native.js → ReanimatedModule.native.ts} +0 -0
  191. package/src/{ReanimatedModule.macos.js → ReanimatedModule.ts} +0 -0
  192. package/src/{ReanimatedModule.windows.js → ReanimatedModule.windows.ts} +0 -0
  193. package/src/ReanimatedModuleCompat.ts +51 -0
  194. package/src/{createAnimatedComponent.js → createAnimatedComponent.tsx} +285 -126
  195. package/src/reanimated2/NativeMethods.ts +34 -13
  196. package/src/reanimated2/NativeReanimated/NativeReanimated.ts +72 -0
  197. package/src/reanimated2/NativeReanimated/index.ts +18 -0
  198. package/src/reanimated2/PropAdapters.ts +0 -1
  199. package/src/reanimated2/UpdateProps.ts +31 -15
  200. package/src/reanimated2/ViewDescriptorsSet.ts +15 -12
  201. package/src/reanimated2/WorkletEventHandler.ts +41 -23
  202. package/src/reanimated2/animation/commonTypes.ts +4 -4
  203. package/src/reanimated2/animation/decay.ts +2 -2
  204. package/src/reanimated2/animation/delay.ts +11 -5
  205. package/src/reanimated2/animation/index.ts +7 -7
  206. package/src/reanimated2/animation/repeat.ts +4 -4
  207. package/src/reanimated2/animation/sequence.ts +2 -2
  208. package/src/reanimated2/animation/spring.ts +6 -5
  209. package/src/reanimated2/animation/styleAnimation.ts +27 -15
  210. package/src/reanimated2/animation/timing.ts +5 -5
  211. package/src/reanimated2/animation/util.ts +47 -8
  212. package/src/reanimated2/commonTypes.ts +3 -0
  213. package/src/reanimated2/core.ts +80 -34
  214. package/src/reanimated2/globals.d.ts +21 -1
  215. package/src/reanimated2/hook/useAnimatedGestureHandler.ts +1 -1
  216. package/src/reanimated2/hook/useAnimatedRef.ts +13 -15
  217. package/src/reanimated2/hook/useAnimatedScrollHandler.ts +3 -3
  218. package/src/reanimated2/hook/useAnimatedStyle.ts +7 -7
  219. package/src/reanimated2/hook/utils.ts +4 -3
  220. package/src/reanimated2/index.ts +1 -0
  221. package/src/reanimated2/interpolation.ts +170 -103
  222. package/src/reanimated2/js-reanimated/JSReanimated.ts +37 -23
  223. package/src/reanimated2/js-reanimated/Mapper.ts +22 -9
  224. package/src/reanimated2/js-reanimated/MapperRegistry.ts +22 -19
  225. package/src/reanimated2/js-reanimated/MutableValue.ts +11 -11
  226. package/src/reanimated2/js-reanimated/index.ts +31 -14
  227. package/src/reanimated2/layoutReanimation/LayoutAnimationRepository.ts +75 -0
  228. package/src/reanimated2/layoutReanimation/animationBuilder/BaseAnimationBuilder.ts +29 -159
  229. package/src/reanimated2/layoutReanimation/animationBuilder/ComplexAnimationBuilder.ts +169 -0
  230. package/src/reanimated2/layoutReanimation/animationBuilder/Keyframe.ts +2 -2
  231. package/src/reanimated2/layoutReanimation/animationBuilder/commonTypes.ts +3 -9
  232. package/src/reanimated2/layoutReanimation/animationBuilder/index.ts +1 -5
  233. package/src/reanimated2/layoutReanimation/defaultAnimations/Bounce.ts +162 -82
  234. package/src/reanimated2/layoutReanimation/defaultAnimations/Default.ts +7 -2
  235. package/src/reanimated2/layoutReanimation/defaultAnimations/Fade.ts +32 -32
  236. package/src/reanimated2/layoutReanimation/defaultAnimations/Flip.ts +38 -38
  237. package/src/reanimated2/layoutReanimation/defaultAnimations/Lightspeed.ts +34 -32
  238. package/src/reanimated2/layoutReanimation/defaultAnimations/Pinwheel.ts +8 -8
  239. package/src/reanimated2/layoutReanimation/defaultAnimations/Roll.ts +14 -14
  240. package/src/reanimated2/layoutReanimation/defaultAnimations/Rotate.ts +26 -26
  241. package/src/reanimated2/layoutReanimation/defaultAnimations/Slide.ts +28 -28
  242. package/src/reanimated2/layoutReanimation/defaultAnimations/Stretch.ts +14 -14
  243. package/src/reanimated2/layoutReanimation/defaultAnimations/Zoom.ts +50 -50
  244. package/src/reanimated2/layoutReanimation/defaultTransitions/CurvedTransition.ts +104 -0
  245. package/src/reanimated2/layoutReanimation/defaultTransitions/EntryExitTransition.ts +213 -0
  246. package/src/reanimated2/layoutReanimation/defaultTransitions/FadingTransition.ts +60 -0
  247. package/src/reanimated2/layoutReanimation/defaultTransitions/JumpingTransition.ts +58 -0
  248. package/src/reanimated2/layoutReanimation/defaultTransitions/LinearTransition.ts +41 -0
  249. package/src/reanimated2/layoutReanimation/defaultTransitions/SequencedTransition.ts +78 -0
  250. package/src/reanimated2/layoutReanimation/defaultTransitions/index.ts +6 -0
  251. package/src/reanimated2/layoutReanimation/index.ts +1 -0
  252. package/src/reanimated2/mock.ts +3 -1
  253. package/src/reanimated2/utils.ts +21 -0
  254. package/src/{setAndForwardRef.js → setAndForwardRef.ts} +12 -2
  255. package/android/react-native-reanimated-62-hermes.aar +0 -0
  256. package/android/react-native-reanimated-62-jsc.aar +0 -0
  257. package/lib/reanimated2/NativeReanimated.js +0 -48
  258. package/lib/reanimated2/layoutReanimation/animationBuilder/BaseBounceAnimationBuilder.js +0 -55
  259. package/lib/reanimated2/layoutReanimation/animationBuilder/LayoutAnimationBuilder.js +0 -165
  260. package/src/ReanimatedModuleCompat.js +0 -37
  261. package/src/reanimated2/NativeReanimated.ts +0 -70
  262. package/src/reanimated2/layoutReanimation/LayoutAnimationRepository.tsx +0 -41
  263. package/src/reanimated2/layoutReanimation/animationBuilder/BaseBounceAnimationBuilder.ts +0 -82
  264. package/src/reanimated2/layoutReanimation/animationBuilder/LayoutAnimationBuilder.ts +0 -217
@@ -1,82 +0,0 @@
1
- import { withDelay, withTiming } from '../../animation';
2
- import {
3
- EntryExitAnimationFunction,
4
- AnimationFunction,
5
- LayoutAnimationAndConfig,
6
- BounceBuilderAnimationConfig,
7
- EntryExitAnimationBuild,
8
- } from './commonTypes';
9
-
10
- export class BaseBounceAnimationBuilder {
11
- durationV?: number;
12
- delayV?: number;
13
- callbackV?: (finished: boolean) => void;
14
-
15
- static createInstance: () => BaseBounceAnimationBuilder;
16
- build: EntryExitAnimationBuild = () => {
17
- throw Error('Unimplemented method in child class.');
18
- };
19
-
20
- static duration(durationMs: number): BaseBounceAnimationBuilder {
21
- const instance = this.createInstance();
22
- return instance.duration(durationMs);
23
- }
24
-
25
- duration(durationMs: number): BaseBounceAnimationBuilder {
26
- this.durationV = durationMs;
27
- return this;
28
- }
29
-
30
- static delay(delayMs: number): BaseBounceAnimationBuilder {
31
- const instance = this.createInstance();
32
- return instance.delay(delayMs);
33
- }
34
-
35
- delay(delayMs: number): BaseBounceAnimationBuilder {
36
- this.delayV = delayMs;
37
- return this;
38
- }
39
-
40
- static withCallback(
41
- callback: (finished: boolean) => void
42
- ): BaseBounceAnimationBuilder {
43
- const instance = this.createInstance();
44
- return instance.withCallback(callback);
45
- }
46
-
47
- withCallback(
48
- callback: (finsihed: boolean) => void
49
- ): BaseBounceAnimationBuilder {
50
- this.callbackV = callback;
51
- return this;
52
- }
53
-
54
- getDelayFunction(): AnimationFunction {
55
- const delay = this.delayV;
56
- return delay
57
- ? withDelay
58
- : (_, animation) => {
59
- 'worklet';
60
- return animation;
61
- };
62
- }
63
-
64
- getAnimationAndConfig(): LayoutAnimationAndConfig {
65
- const duration = this.durationV;
66
- const type = withTiming;
67
- const animation = type;
68
-
69
- const config: BounceBuilderAnimationConfig = {};
70
-
71
- if (duration) {
72
- config.duration = duration;
73
- }
74
-
75
- return [animation, config];
76
- }
77
-
78
- static build(): EntryExitAnimationFunction {
79
- const instance = this.createInstance();
80
- return instance.build();
81
- }
82
- }
@@ -1,217 +0,0 @@
1
- import { withDelay, withTiming, withSpring } from '../../animation';
2
- import {
3
- AnimationFunction,
4
- ILayoutAnimationBuilder,
5
- LayoutAnimationFunction,
6
- BaseLayoutAnimationConfig,
7
- LayoutAnimationBuild,
8
- } from './commonTypes';
9
- import { EasingFn } from '../../Easing';
10
-
11
- export class LayoutAnimationBuilder implements ILayoutAnimationBuilder {
12
- durationV?: number;
13
- easingV?: EasingFn;
14
- delayV?: number;
15
- type?: AnimationFunction;
16
- dampingV?: number;
17
- massV?: number;
18
- stiffnessV?: number;
19
- overshootClampingV?: number;
20
- restDisplacementThresholdV?: number;
21
- restSpeedThresholdV?: number;
22
- callbackV?: (finished: boolean) => void;
23
-
24
- static duration(durationMs: number): LayoutAnimationBuilder {
25
- const instance = new LayoutAnimationBuilder();
26
- return instance.duration(durationMs);
27
- }
28
-
29
- duration(durationMs: number): LayoutAnimationBuilder {
30
- this.durationV = durationMs;
31
- return this;
32
- }
33
-
34
- static easing(easingFunction: EasingFn): LayoutAnimationBuilder {
35
- const instance = new LayoutAnimationBuilder();
36
- return instance.easing(easingFunction);
37
- }
38
-
39
- easing(easingFunction: EasingFn): LayoutAnimationBuilder {
40
- this.easingV = easingFunction;
41
- return this;
42
- }
43
-
44
- static delay(durationMs: number): LayoutAnimationBuilder {
45
- const instance = new LayoutAnimationBuilder();
46
- return instance.delay(durationMs);
47
- }
48
-
49
- delay(durationMs: number): LayoutAnimationBuilder {
50
- this.delayV = durationMs;
51
- return this;
52
- }
53
-
54
- static springify(): LayoutAnimationBuilder {
55
- const instance = new LayoutAnimationBuilder();
56
- return instance.springify();
57
- }
58
-
59
- springify(): LayoutAnimationBuilder {
60
- this.type = withSpring as AnimationFunction;
61
- return this;
62
- }
63
-
64
- static damping(damping: number): LayoutAnimationBuilder {
65
- const instance = new LayoutAnimationBuilder();
66
- return instance.damping(damping);
67
- }
68
-
69
- damping(damping: number): LayoutAnimationBuilder {
70
- this.dampingV = damping;
71
- return this;
72
- }
73
-
74
- static mass(mass: number): LayoutAnimationBuilder {
75
- const instance = new LayoutAnimationBuilder();
76
- return instance.mass(mass);
77
- }
78
-
79
- mass(mass: number): LayoutAnimationBuilder {
80
- this.massV = mass;
81
- return this;
82
- }
83
-
84
- static stiffness(stiffness: number): LayoutAnimationBuilder {
85
- const instance = new LayoutAnimationBuilder();
86
- return instance.stiffness(stiffness);
87
- }
88
-
89
- stiffness(stiffness: number): LayoutAnimationBuilder {
90
- this.stiffnessV = stiffness;
91
- return this;
92
- }
93
-
94
- static overshootClamping(overshootClamping: number): LayoutAnimationBuilder {
95
- const instance = new LayoutAnimationBuilder();
96
- return instance.overshootClamping(overshootClamping);
97
- }
98
-
99
- overshootClamping(overshootClamping: number): LayoutAnimationBuilder {
100
- this.overshootClampingV = overshootClamping;
101
- return this;
102
- }
103
-
104
- static restDisplacementThreshold(
105
- restDisplacementThreshold: number
106
- ): LayoutAnimationBuilder {
107
- const instance = new LayoutAnimationBuilder();
108
- return instance.restDisplacementThreshold(restDisplacementThreshold);
109
- }
110
-
111
- restDisplacementThreshold(
112
- restDisplacementThreshold: number
113
- ): LayoutAnimationBuilder {
114
- this.restDisplacementThresholdV = restDisplacementThreshold;
115
- return this;
116
- }
117
-
118
- static restSpeedThreshold(r: number): LayoutAnimationBuilder {
119
- const instance = new LayoutAnimationBuilder();
120
- return instance.restSpeedThreshold(r);
121
- }
122
-
123
- restSpeedThreshold(restSpeedThreshold: number): LayoutAnimationBuilder {
124
- this.restSpeedThresholdV = restSpeedThreshold;
125
- return this;
126
- }
127
-
128
- static withCallback(
129
- callback: (finished: boolean) => void
130
- ): LayoutAnimationBuilder {
131
- const instance = new LayoutAnimationBuilder();
132
- return instance.withCallback(callback);
133
- }
134
-
135
- withCallback(callback: (finished: boolean) => void): LayoutAnimationBuilder {
136
- this.callbackV = callback;
137
- return this;
138
- }
139
-
140
- static build(): LayoutAnimationFunction {
141
- const instance = new LayoutAnimationBuilder();
142
- return instance.build();
143
- }
144
-
145
- build: LayoutAnimationBuild = () => {
146
- const duration = this.durationV;
147
- const easing = this.easingV;
148
- const delay = this.delayV;
149
- const type = this.type ? this.type : (withTiming as AnimationFunction);
150
- const damping = this.dampingV;
151
- const mass = this.massV;
152
- const stiffness = this.stiffnessV;
153
- const overshootClamping = this.overshootClampingV;
154
- const restDisplacementThreshold = this.restDisplacementThresholdV;
155
- const restSpeedThreshold = this.restSpeedThresholdV;
156
- const callback = this.callbackV;
157
-
158
- const delayFunction: AnimationFunction = delay
159
- ? withDelay
160
- : (_, animation: AnimationFunction) => {
161
- 'worklet';
162
- return animation;
163
- };
164
-
165
- const animation = type;
166
-
167
- const config: BaseLayoutAnimationConfig = {};
168
-
169
- if (type === withTiming) {
170
- if (easing) {
171
- config.easing = easing;
172
- }
173
- if (duration) {
174
- config.duration = duration;
175
- }
176
- } else {
177
- if (damping) {
178
- config.damping = damping;
179
- }
180
- if (mass) {
181
- config.mass = mass;
182
- }
183
- if (stiffness) {
184
- config.stiffness = stiffness;
185
- }
186
- if (overshootClamping) {
187
- config.overshootClamping = overshootClamping;
188
- }
189
- if (restDisplacementThreshold) {
190
- config.restDisplacementThreshold = restDisplacementThreshold;
191
- }
192
- if (restSpeedThreshold) {
193
- config.restSpeedThreshold = restSpeedThreshold;
194
- }
195
- }
196
-
197
- return (values) => {
198
- 'worklet';
199
- return {
200
- initialValues: {
201
- originX: values.boriginX,
202
- originY: values.boriginY,
203
- width: values.bwidth,
204
- height: values.bheight,
205
- },
206
- animations: {
207
- originX: delayFunction(delay, animation(values.originX, config)),
208
- originY: delayFunction(delay, animation(values.originY, config)),
209
- width: delayFunction(delay, animation(values.width, config)),
210
- height: delayFunction(delay, animation(values.height, config)),
211
- },
212
- callback: callback,
213
- };
214
- };
215
- };
216
- }
217
- export const Layout = LayoutAnimationBuilder;