react-native-reanimated 2.3.0-alpha.1 → 2.3.0-beta.2
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.
- package/Common/cpp/LayoutAnimations/LayoutAnimationsProxy.cpp +15 -8
- package/Common/cpp/NativeModules/NativeReanimatedModule.cpp +170 -166
- package/Common/cpp/NativeModules/NativeReanimatedModuleSpec.cpp +36 -34
- package/Common/cpp/Registries/EventHandlerRegistry.cpp +13 -6
- package/Common/cpp/Registries/MapperRegistry.cpp +19 -15
- package/Common/cpp/Registries/WorkletsCache.cpp +19 -9
- package/Common/cpp/SharedItems/FrozenObject.cpp +19 -8
- package/Common/cpp/SharedItems/MutableValue.cpp +38 -25
- package/Common/cpp/SharedItems/MutableValueSetterProxy.cpp +11 -7
- package/Common/cpp/SharedItems/RemoteObject.cpp +9 -5
- package/Common/cpp/SharedItems/ShareableValue.cpp +216 -143
- package/Common/cpp/Tools/JSIStoreValueUser.cpp +36 -24
- package/Common/cpp/Tools/Mapper.cpp +41 -29
- package/Common/cpp/Tools/RuntimeDecorator.cpp +103 -84
- package/Common/cpp/Tools/Scheduler.cpp +14 -6
- package/Common/cpp/Tools/WorkletEventHandler.cpp +1 -1
- package/Common/cpp/headers/LayoutAnimations/LayoutAnimationsProxy.h +12 -11
- package/Common/cpp/headers/NativeModules/NativeReanimatedModule.h +45 -34
- package/Common/cpp/headers/NativeModules/NativeReanimatedModuleSpec.h +28 -16
- package/Common/cpp/headers/Registries/EventHandlerRegistry.h +14 -8
- package/Common/cpp/headers/Registries/MapperRegistry.h +4 -4
- package/Common/cpp/headers/Registries/WorkletsCache.h +9 -7
- package/Common/cpp/headers/SharedItems/FrozenObject.h +15 -11
- package/Common/cpp/headers/SharedItems/HostFunctionHandler.h +6 -4
- package/Common/cpp/headers/SharedItems/MutableValue.h +21 -12
- package/Common/cpp/headers/SharedItems/MutableValueSetterProxy.h +10 -7
- package/Common/cpp/headers/SharedItems/RemoteObject.h +16 -8
- package/Common/cpp/headers/SharedItems/RuntimeManager.h +39 -21
- package/Common/cpp/headers/SharedItems/ShareableValue.h +31 -27
- package/Common/cpp/headers/SharedItems/SharedParent.h +7 -4
- package/Common/cpp/headers/SharedItems/ValueWrapper.h +80 -61
- package/Common/cpp/headers/SpecTools/ErrorHandler.h +17 -19
- package/Common/cpp/headers/Tools/JSIStoreValueUser.h +18 -13
- package/Common/cpp/headers/Tools/Mapper.h +24 -18
- package/Common/cpp/headers/Tools/PlatformDepMethodsHolder.h +12 -7
- package/Common/cpp/headers/Tools/ReanimatedHiddenHeaders.h +7 -7
- package/Common/cpp/headers/Tools/RuntimeDecorator.h +29 -23
- package/Common/cpp/headers/Tools/Scheduler.h +28 -33
- package/Common/cpp/headers/Tools/WorkletEventHandler.h +9 -7
- package/Common/cpp/hidden_headers/Logger.h +14 -14
- package/Common/cpp/hidden_headers/LoggerInterface.h +8 -9
- package/Common/cpp/hidden_headers/SpeedChecker.h +7 -8
- package/README.md +1 -1
- package/RNReanimated.podspec +4 -4
- package/android/build.gradle +80 -3
- package/android/react-native-reanimated-63-hermes.aar +0 -0
- package/android/react-native-reanimated-63-jsc.aar +0 -0
- package/android/react-native-reanimated-64-hermes.aar +0 -0
- package/android/react-native-reanimated-64-jsc.aar +0 -0
- package/android/react-native-reanimated-65-hermes.aar +0 -0
- package/android/react-native-reanimated-65-jsc.aar +0 -0
- package/android/react-native-reanimated-66-hermes.aar +0 -0
- package/android/react-native-reanimated-66-jsc.aar +0 -0
- package/ios/LayoutReanimation/REAAnimationsManager.h +19 -10
- package/ios/LayoutReanimation/REAAnimationsManager.m +195 -200
- package/ios/LayoutReanimation/REASnapshot.h +13 -0
- package/ios/LayoutReanimation/REASnapshot.m +29 -0
- package/ios/LayoutReanimation/REAUIManager.h +16 -0
- package/ios/LayoutReanimation/REAUIManager.mm +348 -0
- package/ios/Nodes/REAAlwaysNode.m +14 -15
- package/ios/Nodes/REABezierNode.m +8 -7
- package/ios/Nodes/REABlockNode.m +1 -1
- package/ios/Nodes/REACallFuncNode.h +0 -1
- package/ios/Nodes/REACallFuncNode.m +10 -8
- package/ios/Nodes/REAClockNodes.m +22 -20
- package/ios/Nodes/REAConcatNode.h +0 -1
- package/ios/Nodes/REAConcatNode.m +2 -2
- package/ios/Nodes/REACondNode.m +7 -5
- package/ios/Nodes/READebugNode.m +5 -4
- package/ios/Nodes/REAEventNode.m +1 -1
- package/ios/Nodes/REAFunctionNode.h +0 -1
- package/ios/Nodes/REAFunctionNode.m +2 -2
- package/ios/Nodes/REAJSCallNode.m +4 -5
- package/ios/Nodes/REANode.h +3 -4
- package/ios/Nodes/REANode.m +9 -11
- package/ios/Nodes/REAOperatorNode.m +68 -67
- package/ios/Nodes/REAParamNode.h +1 -3
- package/ios/Nodes/REAParamNode.m +15 -17
- package/ios/Nodes/REAPropsNode.h +1 -3
- package/ios/Nodes/REAPropsNode.m +19 -22
- package/ios/Nodes/REASetNode.h +0 -1
- package/ios/Nodes/REASetNode.m +7 -5
- package/ios/Nodes/REAStyleNode.h +0 -1
- package/ios/Nodes/REAStyleNode.m +2 -4
- package/ios/Nodes/REATransformNode.h +0 -1
- package/ios/Nodes/REATransformNode.m +3 -5
- package/ios/Nodes/REAValueNode.m +5 -7
- package/ios/REAEventDispatcher.m +3 -3
- package/ios/REAModule.h +0 -2
- package/ios/REAModule.m +29 -40
- package/ios/REANodesManager.h +11 -19
- package/ios/REANodesManager.m +105 -130
- package/ios/REAUtils.h +5 -3
- package/ios/Transitioning/RCTConvert+REATransition.m +45 -29
- package/ios/Transitioning/REAAllTransitions.h +2 -2
- package/ios/Transitioning/REAAllTransitions.m +14 -25
- package/ios/Transitioning/REATransition.h +8 -7
- package/ios/Transitioning/REATransition.m +19 -16
- package/ios/Transitioning/REATransitionAnimation.h +1 -1
- package/ios/Transitioning/REATransitionAnimation.m +2 -3
- package/ios/Transitioning/REATransitionManager.m +3 -3
- package/ios/native/NativeMethods.h +15 -5
- package/ios/native/NativeProxy.h +4 -3
- package/ios/native/NativeProxy.mm +19 -5
- package/ios/native/REAIOSErrorHandler.h +13 -10
- package/ios/native/REAIOSLogger.h +8 -8
- package/ios/native/REAIOSScheduler.h +5 -5
- package/ios/native/REAIOSScheduler.mm +7 -5
- package/ios/native/REAInitializer.h +37 -0
- package/ios/native/REAInitializer.mm +63 -0
- package/ios/native/UIResponder+Reanimated.mm +9 -48
- package/lib/ConfigHelper.js +1 -0
- package/lib/ReanimatedModule.native.js +10 -2
- package/lib/createAnimatedComponent.js +64 -30
- package/lib/reanimated1/core/AnimatedAlways.js +1 -1
- package/lib/reanimated1/core/AnimatedBezier.js +1 -1
- package/lib/reanimated1/core/AnimatedBlock.js +1 -1
- package/lib/reanimated1/core/AnimatedCall.js +1 -1
- package/lib/reanimated1/core/AnimatedCallFunc.js +1 -1
- package/lib/reanimated1/core/AnimatedConcat.js +1 -1
- package/lib/reanimated1/core/AnimatedCond.js +1 -1
- package/lib/reanimated1/core/AnimatedDebug.js +1 -1
- package/lib/reanimated1/core/AnimatedEvent.js +1 -1
- package/lib/reanimated1/core/AnimatedFunction.js +1 -1
- package/lib/reanimated1/core/AnimatedOperator.js +1 -1
- package/lib/reanimated1/core/AnimatedParam.js +1 -1
- package/lib/reanimated1/core/AnimatedProps.js +2 -2
- package/lib/reanimated1/core/AnimatedSet.js +1 -1
- package/lib/reanimated1/core/AnimatedStartClock.js +1 -1
- package/lib/reanimated1/core/AnimatedStopClock.js +1 -1
- package/lib/reanimated1/core/AnimatedStyle.js +1 -1
- package/lib/reanimated1/core/AnimatedTransform.js +1 -1
- package/lib/reanimated1/core/Core.test.js +30 -0
- package/lib/reanimated1/core/InternalAnimatedValue.js +1 -1
- package/lib/reanimated1/core/__mocks__/AnimatedProps.js +1 -1
- package/lib/reanimated1/derived/interpolate.js +1 -1
- package/lib/reanimated2/Colors.js +16 -12
- package/lib/reanimated2/NativeMethods.js +3 -14
- package/lib/reanimated2/{NativeReanimated.native.js → NativeReanimated/NativeReanimated.js} +19 -24
- package/lib/reanimated2/NativeReanimated/index.js +15 -0
- package/lib/reanimated2/PlatformChecker.js +16 -0
- package/lib/reanimated2/PropAdapters.js +14 -4
- package/lib/reanimated2/UpdateProps.js +14 -11
- package/lib/reanimated2/ViewDescriptorsSet.js +73 -0
- package/lib/reanimated2/WorkletEventHandler.js +15 -13
- package/lib/reanimated2/animation/commonTypes.js +1 -0
- package/lib/reanimated2/animation/decay.js +71 -0
- package/lib/reanimated2/animation/delay.js +64 -0
- package/lib/reanimated2/animation/index.js +8 -0
- package/lib/reanimated2/animation/repeat.js +69 -0
- package/lib/reanimated2/animation/sequence.js +72 -0
- package/lib/reanimated2/animation/spring.js +101 -0
- package/lib/reanimated2/animation/styleAnimation.js +166 -0
- package/lib/reanimated2/animation/timing.js +64 -0
- package/lib/reanimated2/animation/util.js +157 -0
- package/lib/reanimated2/commonTypes.js +1 -0
- package/lib/reanimated2/core.js +35 -39
- package/lib/reanimated2/globals.d.ts +47 -1
- package/lib/reanimated2/hook/Hooks.js +9 -0
- package/lib/reanimated2/hook/commonTypes.js +1 -0
- package/lib/reanimated2/hook/index.js +8 -0
- package/lib/reanimated2/hook/useAnimatedGestureHandler.js +50 -0
- package/lib/reanimated2/hook/useAnimatedReaction.js +37 -0
- package/lib/reanimated2/hook/useAnimatedRef.js +25 -0
- package/lib/reanimated2/hook/useAnimatedScrollHandler.js +41 -0
- package/lib/reanimated2/hook/useAnimatedStyle.js +376 -0
- package/lib/reanimated2/hook/useDerivedValue.js +36 -0
- package/lib/reanimated2/hook/useSharedValue.js +17 -0
- package/lib/reanimated2/hook/utils.js +175 -0
- package/lib/reanimated2/index.js +3 -2
- package/lib/reanimated2/interpolation.js +95 -86
- package/lib/reanimated2/jestUtils.js +0 -12
- package/lib/reanimated2/js-reanimated/JSReanimated.js +9 -10
- package/lib/reanimated2/js-reanimated/index.js +57 -1
- package/lib/reanimated2/layoutReanimation/LayoutAnimationRepository.js +58 -0
- package/lib/reanimated2/layoutReanimation/animationBuilder/BaseAnimationBuilder.js +69 -0
- package/lib/reanimated2/layoutReanimation/animationBuilder/ComplexAnimationBuilder.js +125 -0
- package/lib/reanimated2/layoutReanimation/animationBuilder/Keyframe.js +193 -0
- package/lib/reanimated2/layoutReanimation/animationBuilder/commonTypes.js +1 -0
- package/lib/reanimated2/layoutReanimation/animationBuilder/index.js +3 -0
- package/lib/reanimated2/layoutReanimation/defaultAnimations/Bounce.js +325 -207
- package/lib/reanimated2/layoutReanimation/defaultAnimations/Default.js +36 -0
- package/lib/reanimated2/layoutReanimation/defaultAnimations/Fade.js +235 -187
- package/lib/reanimated2/layoutReanimation/defaultAnimations/Flip.js +327 -269
- package/lib/reanimated2/layoutReanimation/defaultAnimations/Lightspeed.js +146 -0
- package/lib/reanimated2/layoutReanimation/defaultAnimations/Pinwheel.js +85 -0
- package/lib/reanimated2/layoutReanimation/defaultAnimations/Roll.js +119 -0
- package/lib/reanimated2/layoutReanimation/defaultAnimations/Rotate.js +289 -0
- package/lib/reanimated2/layoutReanimation/defaultAnimations/Slide.js +159 -121
- package/lib/reanimated2/layoutReanimation/defaultAnimations/Stretch.js +83 -65
- package/lib/reanimated2/layoutReanimation/defaultAnimations/Zoom.js +371 -277
- package/lib/reanimated2/layoutReanimation/defaultAnimations/index.js +4 -0
- package/lib/reanimated2/layoutReanimation/defaultTransitions/CurvedTransition.js +78 -0
- package/lib/reanimated2/layoutReanimation/defaultTransitions/EntryExitTransition.js +128 -0
- package/lib/reanimated2/layoutReanimation/defaultTransitions/FadingTransition.js +37 -0
- package/lib/reanimated2/layoutReanimation/defaultTransitions/JumpingTransition.js +41 -0
- package/lib/reanimated2/layoutReanimation/defaultTransitions/LinearTransition.js +34 -0
- package/lib/reanimated2/layoutReanimation/defaultTransitions/SequencedTransition.js +46 -0
- package/lib/reanimated2/layoutReanimation/defaultTransitions/index.js +6 -0
- package/lib/reanimated2/layoutReanimation/index.js +3 -2
- package/lib/reanimated2/platform-specific/RNRenderer.web.js +2 -0
- package/lib/reanimated2/utils.js +9 -0
- package/libSo/fbjni/jni/arm64-v8a/libfbjni.so +0 -0
- package/libSo/fbjni/jni/armeabi-v7a/libfbjni.so +0 -0
- package/libSo/fbjni/jni/x86/libfbjni.so +0 -0
- package/libSo/fbjni/jni/x86_64/libfbjni.so +0 -0
- package/package.json +21 -10
- package/plugin.js +244 -85
- package/react-native-reanimated.d.ts +531 -453
- package/src/ConfigHelper.js +1 -0
- package/src/ReanimatedModule.native.js +10 -2
- package/src/createAnimatedComponent.js +64 -30
- package/src/reanimated1/core/AnimatedAlways.js +1 -1
- package/src/reanimated1/core/AnimatedBezier.js +1 -1
- package/src/reanimated1/core/AnimatedBlock.js +1 -1
- package/src/reanimated1/core/AnimatedCall.js +1 -1
- package/src/reanimated1/core/AnimatedCallFunc.js +1 -1
- package/src/reanimated1/core/AnimatedConcat.js +1 -1
- package/src/reanimated1/core/AnimatedCond.js +1 -1
- package/src/reanimated1/core/AnimatedDebug.js +1 -1
- package/src/reanimated1/core/AnimatedEvent.js +1 -1
- package/src/reanimated1/core/AnimatedFunction.js +1 -1
- package/src/reanimated1/core/AnimatedOperator.js +1 -1
- package/src/reanimated1/core/AnimatedParam.js +1 -1
- package/src/reanimated1/core/AnimatedProps.js +2 -2
- package/src/reanimated1/core/AnimatedSet.js +1 -1
- package/src/reanimated1/core/AnimatedStartClock.js +1 -1
- package/src/reanimated1/core/AnimatedStopClock.js +1 -1
- package/src/reanimated1/core/AnimatedStyle.js +1 -1
- package/src/reanimated1/core/AnimatedTransform.js +1 -1
- package/src/reanimated1/core/Core.test.js +30 -0
- package/src/reanimated1/core/InternalAnimatedValue.js +1 -1
- package/src/reanimated1/core/__mocks__/AnimatedProps.js +1 -1
- package/src/reanimated1/derived/interpolate.js +1 -1
- package/src/reanimated2/Colors.ts +30 -27
- package/src/reanimated2/Easing.ts +3 -1
- package/src/reanimated2/NativeMethods.ts +26 -16
- package/src/reanimated2/NativeReanimated/NativeReanimated.ts +78 -0
- package/src/reanimated2/NativeReanimated/index.ts +18 -0
- package/src/reanimated2/PlatformChecker.ts +21 -0
- package/src/reanimated2/PropAdapters.ts +52 -34
- package/src/reanimated2/UpdateProps.ts +40 -20
- package/src/reanimated2/ViewDescriptorsSet.ts +108 -0
- package/src/reanimated2/WorkletEventHandler.ts +41 -23
- package/src/reanimated2/animation/commonTypes.ts +48 -0
- package/src/reanimated2/animation/decay.ts +141 -0
- package/src/reanimated2/animation/delay.ts +103 -0
- package/src/reanimated2/animation/index.ts +16 -0
- package/src/reanimated2/animation/repeat.ts +128 -0
- package/src/reanimated2/animation/sequence.ts +110 -0
- package/src/reanimated2/animation/spring.ts +165 -0
- package/src/reanimated2/animation/styleAnimation.ts +253 -0
- package/src/reanimated2/animation/timing.ts +109 -0
- package/src/reanimated2/animation/util.ts +242 -0
- package/src/reanimated2/commonTypes.ts +81 -0
- package/src/reanimated2/core.ts +128 -82
- package/src/reanimated2/globals.d.ts +47 -1
- package/src/reanimated2/hook/Hooks.ts +16 -0
- package/src/reanimated2/hook/commonTypes.ts +12 -0
- package/src/reanimated2/hook/index.ts +25 -0
- package/src/reanimated2/hook/useAnimatedGestureHandler.ts +110 -0
- package/src/reanimated2/hook/useAnimatedReaction.ts +49 -0
- package/src/reanimated2/hook/useAnimatedRef.ts +34 -0
- package/src/reanimated2/hook/useAnimatedScrollHandler.ts +83 -0
- package/src/reanimated2/hook/useAnimatedStyle.ts +538 -0
- package/src/reanimated2/hook/useDerivedValue.ts +48 -0
- package/src/reanimated2/hook/useSharedValue.ts +22 -0
- package/src/reanimated2/hook/utils.ts +259 -0
- package/src/reanimated2/index.ts +3 -2
- package/src/reanimated2/interpolation.ts +170 -101
- package/src/reanimated2/jestUtils.ts +0 -12
- package/src/reanimated2/js-reanimated/JSReanimated.ts +47 -22
- package/src/reanimated2/js-reanimated/Mapper.ts +1 -1
- package/src/reanimated2/js-reanimated/index.ts +71 -0
- package/src/reanimated2/layoutReanimation/LayoutAnimationRepository.tsx +62 -0
- package/src/reanimated2/layoutReanimation/animationBuilder/BaseAnimationBuilder.ts +91 -0
- package/src/reanimated2/layoutReanimation/animationBuilder/ComplexAnimationBuilder.ts +169 -0
- package/src/reanimated2/layoutReanimation/animationBuilder/Keyframe.ts +263 -0
- package/src/reanimated2/layoutReanimation/animationBuilder/commonTypes.ts +78 -0
- package/src/reanimated2/layoutReanimation/animationBuilder/index.ts +16 -0
- package/src/reanimated2/layoutReanimation/defaultAnimations/Bounce.ts +243 -121
- package/src/reanimated2/layoutReanimation/defaultAnimations/Default.ts +43 -0
- package/src/reanimated2/layoutReanimation/defaultAnimations/Fade.ts +95 -53
- package/src/reanimated2/layoutReanimation/defaultAnimations/Flip.ts +114 -64
- package/src/reanimated2/layoutReanimation/defaultAnimations/Lightspeed.ts +179 -0
- package/src/reanimated2/layoutReanimation/defaultAnimations/Pinwheel.ts +93 -0
- package/src/reanimated2/layoutReanimation/defaultAnimations/Roll.ts +132 -0
- package/src/reanimated2/layoutReanimation/defaultAnimations/Rotate.ts +333 -0
- package/src/reanimated2/layoutReanimation/defaultAnimations/Slide.ts +84 -50
- package/src/reanimated2/layoutReanimation/defaultAnimations/Stretch.ts +41 -23
- package/src/reanimated2/layoutReanimation/defaultAnimations/Zoom.ts +234 -154
- package/src/reanimated2/layoutReanimation/defaultAnimations/index.ts +4 -0
- package/src/reanimated2/layoutReanimation/defaultTransitions/CurvedTransition.ts +104 -0
- package/src/reanimated2/layoutReanimation/defaultTransitions/EntryExitTransition.ts +213 -0
- package/src/reanimated2/layoutReanimation/defaultTransitions/FadingTransition.ts +60 -0
- package/src/reanimated2/layoutReanimation/defaultTransitions/JumpingTransition.ts +58 -0
- package/src/reanimated2/layoutReanimation/defaultTransitions/LinearTransition.ts +41 -0
- package/src/reanimated2/layoutReanimation/defaultTransitions/SequencedTransition.ts +78 -0
- package/src/reanimated2/layoutReanimation/defaultTransitions/index.ts +6 -0
- package/src/reanimated2/layoutReanimation/index.ts +3 -2
- package/src/reanimated2/platform-specific/RNRenderer.web.ts +2 -0
- package/src/reanimated2/utils.ts +21 -0
- package/android/react-native-reanimated-62-hermes.aar +0 -0
- package/android/react-native-reanimated-62-jsc.aar +0 -0
- package/ios/LayoutReanimation/REAAnimationRootView.h +0 -12
- package/ios/LayoutReanimation/REAAnimationRootView.m +0 -16
- package/ios/LayoutReanimation/REAAnimationRootViewManager.h +0 -9
- package/ios/LayoutReanimation/REAAnimationRootViewManager.m +0 -49
- package/ios/LayoutReanimation/REAReactBatchObserver.h +0 -20
- package/ios/LayoutReanimation/REAReactBatchObserver.m +0 -125
- package/ios/LayoutReanimation/REASnapshooter.h +0 -19
- package/ios/LayoutReanimation/REASnapshooter.m +0 -64
- package/ios/LayoutReanimation/REAViewTraverser.h +0 -13
- package/ios/LayoutReanimation/REAViewTraverser.m +0 -40
- package/lib/reanimated2/Hooks.js +0 -732
- package/lib/reanimated2/NativeReanimated.js +0 -4
- package/lib/reanimated2/animations.js +0 -713
- package/lib/reanimated2/js-reanimated/index.web.js +0 -20
- package/lib/reanimated2/layoutReanimation/AnimatedRoot.js +0 -55
- package/lib/reanimated2/layoutReanimation/defaultAnimationsBuilder.js +0 -374
- package/src/reanimated2/Hooks.ts +0 -918
- package/src/reanimated2/NativeReanimated.native.ts +0 -61
- package/src/reanimated2/NativeReanimated.ts +0 -5
- package/src/reanimated2/animations.ts +0 -868
- package/src/reanimated2/js-reanimated/index.js +0 -0
- package/src/reanimated2/js-reanimated/index.web.ts +0 -29
- package/src/reanimated2/layoutReanimation/AnimatedRoot.tsx +0 -68
- package/src/reanimated2/layoutReanimation/defaultAnimationsBuilder.ts +0 -440
|
@@ -1,35 +1,47 @@
|
|
|
1
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
2
|
-
// @ts-nocheck
|
|
3
1
|
import MapperRegistry from './MapperRegistry';
|
|
4
2
|
import MutableValue from './MutableValue';
|
|
5
3
|
import Mapper from './Mapper';
|
|
4
|
+
import { NativeReanimated } from '../NativeReanimated/NativeReanimated';
|
|
5
|
+
import {
|
|
6
|
+
AnimationObject,
|
|
7
|
+
PrimitiveValue,
|
|
8
|
+
Timestamp,
|
|
9
|
+
} from '../animation/commonTypes';
|
|
10
|
+
import { Descriptor } from '../hook/commonTypes';
|
|
11
|
+
|
|
12
|
+
export default class JSReanimated extends NativeReanimated {
|
|
13
|
+
_valueSetter?: (
|
|
14
|
+
value:
|
|
15
|
+
| (() => AnimationObject)
|
|
16
|
+
| AnimationObject
|
|
17
|
+
| PrimitiveValue
|
|
18
|
+
| Descriptor
|
|
19
|
+
) => void = undefined;
|
|
6
20
|
|
|
7
|
-
export default class JSReanimated {
|
|
8
|
-
native = false;
|
|
9
|
-
_valueSetter = undefined;
|
|
10
21
|
_renderRequested = false;
|
|
11
22
|
_mapperRegistry = new MapperRegistry(this);
|
|
12
|
-
_frames = [];
|
|
13
|
-
timeProvider
|
|
23
|
+
_frames: ((timestamp: Timestamp) => void)[] = [];
|
|
24
|
+
timeProvider: { now: () => number };
|
|
14
25
|
|
|
15
26
|
constructor() {
|
|
27
|
+
super(false);
|
|
16
28
|
if (process.env.JEST_WORKER_ID) {
|
|
17
|
-
this.timeProvider
|
|
29
|
+
this.timeProvider = { now: () => Date.now() };
|
|
18
30
|
} else {
|
|
19
|
-
this.timeProvider
|
|
31
|
+
this.timeProvider = { now: () => window.performance.now() };
|
|
20
32
|
}
|
|
21
33
|
}
|
|
22
34
|
|
|
23
|
-
pushFrame(frame) {
|
|
35
|
+
pushFrame(frame: (timestamp: Timestamp) => void): void {
|
|
24
36
|
this._frames.push(frame);
|
|
25
37
|
this.maybeRequestRender();
|
|
26
38
|
}
|
|
27
39
|
|
|
28
|
-
getTimestamp() {
|
|
40
|
+
getTimestamp(): number {
|
|
29
41
|
return this.timeProvider.now();
|
|
30
42
|
}
|
|
31
43
|
|
|
32
|
-
maybeRequestRender() {
|
|
44
|
+
maybeRequestRender(): void {
|
|
33
45
|
if (!this._renderRequested) {
|
|
34
46
|
this._renderRequested = true;
|
|
35
47
|
|
|
@@ -41,7 +53,7 @@ export default class JSReanimated {
|
|
|
41
53
|
}
|
|
42
54
|
}
|
|
43
55
|
|
|
44
|
-
_onRender(timestampMs) {
|
|
56
|
+
_onRender(timestampMs: number): void {
|
|
45
57
|
this._mapperRegistry.execute();
|
|
46
58
|
|
|
47
59
|
const frames = [...this._frames];
|
|
@@ -56,38 +68,51 @@ export default class JSReanimated {
|
|
|
56
68
|
}
|
|
57
69
|
}
|
|
58
70
|
|
|
59
|
-
installCoreFunctions(
|
|
71
|
+
installCoreFunctions(
|
|
72
|
+
valueSetter: (
|
|
73
|
+
value:
|
|
74
|
+
| (() => AnimationObject)
|
|
75
|
+
| AnimationObject
|
|
76
|
+
| PrimitiveValue
|
|
77
|
+
| Descriptor
|
|
78
|
+
) => void
|
|
79
|
+
): void {
|
|
60
80
|
this._valueSetter = valueSetter;
|
|
61
81
|
}
|
|
62
82
|
|
|
63
|
-
makeShareable(value) {
|
|
83
|
+
makeShareable<T>(value: T): T {
|
|
64
84
|
return value;
|
|
65
85
|
}
|
|
66
86
|
|
|
67
|
-
makeMutable(value) {
|
|
87
|
+
makeMutable<T>(value: T): MutableValue {
|
|
68
88
|
return new MutableValue(value, this._valueSetter);
|
|
69
89
|
}
|
|
70
90
|
|
|
71
|
-
makeRemote(object) {
|
|
72
|
-
return object;
|
|
91
|
+
makeRemote<T>(object = {}): T {
|
|
92
|
+
return object as T;
|
|
73
93
|
}
|
|
74
94
|
|
|
75
|
-
startMapper(
|
|
95
|
+
startMapper(
|
|
96
|
+
mapper: () => void,
|
|
97
|
+
inputs: any[] = [],
|
|
98
|
+
outputs: any[] = []
|
|
99
|
+
): number {
|
|
76
100
|
const instance = new Mapper(this, mapper, inputs, outputs);
|
|
77
101
|
const mapperId = this._mapperRegistry.startMapper(instance);
|
|
78
102
|
this.maybeRequestRender();
|
|
79
103
|
return mapperId;
|
|
80
104
|
}
|
|
81
105
|
|
|
82
|
-
stopMapper(mapperId) {
|
|
106
|
+
stopMapper(mapperId: number): void {
|
|
83
107
|
this._mapperRegistry.stopMapper(mapperId);
|
|
84
108
|
}
|
|
85
109
|
|
|
86
|
-
registerEventHandler(
|
|
110
|
+
registerEventHandler<T>(_: string, __: (event: T) => void): string {
|
|
87
111
|
// noop
|
|
112
|
+
return '';
|
|
88
113
|
}
|
|
89
114
|
|
|
90
|
-
unregisterEventHandler(
|
|
115
|
+
unregisterEventHandler(_: string): void {
|
|
91
116
|
// noop
|
|
92
117
|
}
|
|
93
118
|
}
|
|
@@ -7,7 +7,7 @@ export default class Mapper {
|
|
|
7
7
|
|
|
8
8
|
dirty = true;
|
|
9
9
|
|
|
10
|
-
constructor(module, mapper, inputs = [], outputs = []) {
|
|
10
|
+
constructor(module, mapper, inputs: any[] = [], outputs: any[] = []) {
|
|
11
11
|
this.id = Mapper.MAPPER_ID++;
|
|
12
12
|
this.inputs = this.extractMutablesFromArray(inputs);
|
|
13
13
|
this.outputs = this.extractMutablesFromArray(outputs);
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
2
|
+
// @ts-nocheck
|
|
3
|
+
import JSReanimated from './JSReanimated';
|
|
4
|
+
import { shouldBeUseWeb } from '../PlatformChecker';
|
|
5
|
+
|
|
6
|
+
const reanimatedJS = new JSReanimated();
|
|
7
|
+
|
|
8
|
+
if (shouldBeUseWeb()) {
|
|
9
|
+
global._frameTimestamp = null;
|
|
10
|
+
global._setGlobalConsole = (_val) => {
|
|
11
|
+
// noop
|
|
12
|
+
};
|
|
13
|
+
global._measure = () => {
|
|
14
|
+
console.warn(
|
|
15
|
+
"[Reanimated] You can't use 'measue' method with Chrome Debugger or with web version"
|
|
16
|
+
);
|
|
17
|
+
return {
|
|
18
|
+
x: 0,
|
|
19
|
+
y: 0,
|
|
20
|
+
width: 0,
|
|
21
|
+
height: 0,
|
|
22
|
+
pageX: 0,
|
|
23
|
+
pageY: 0,
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
global._scrollTo = () => {
|
|
27
|
+
console.warn(
|
|
28
|
+
"[Reanimated] You can't use 'scrollTo' method with Chrome Debugger or with web version"
|
|
29
|
+
);
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export const _updatePropsJS = (updates, viewRef) => {
|
|
34
|
+
if (viewRef?._component) {
|
|
35
|
+
const [rawStyles] = Object.keys(updates).reduce(
|
|
36
|
+
(acc, key) => {
|
|
37
|
+
const value = updates[key];
|
|
38
|
+
const index = typeof value === 'function' ? 1 : 0;
|
|
39
|
+
acc[index][key] = value;
|
|
40
|
+
return acc;
|
|
41
|
+
},
|
|
42
|
+
[{}, {}]
|
|
43
|
+
);
|
|
44
|
+
|
|
45
|
+
if (typeof viewRef._component.setNativeProps === 'function') {
|
|
46
|
+
setNativeProps(viewRef._component, rawStyles);
|
|
47
|
+
} else if (Object.keys(viewRef._component.props).length > 0) {
|
|
48
|
+
Object.keys(viewRef._component.props).forEach((key) => {
|
|
49
|
+
if (!rawStyles[key]) {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
const dashedKey = key.replace(/[A-Z]/g, (m) => '-' + m.toLowerCase());
|
|
53
|
+
viewRef._component._touchableNode.setAttribute(
|
|
54
|
+
dashedKey,
|
|
55
|
+
rawStyles[key]
|
|
56
|
+
);
|
|
57
|
+
});
|
|
58
|
+
} else {
|
|
59
|
+
console.warn('It is not possible to manipulate component');
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
const setNativeProps = (component, style) => {
|
|
65
|
+
const previousStyle = component.previousStyle ? component.previousStyle : {};
|
|
66
|
+
const currentStyle = { ...previousStyle, ...style };
|
|
67
|
+
component.previousStyle = currentStyle;
|
|
68
|
+
component.setNativeProps({ style: currentStyle });
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
export default reanimatedJS;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/* global _stopObservingProgress, _startObservingProgress */
|
|
2
|
+
import { runOnUI } from '../core';
|
|
3
|
+
import { withStyleAnimation } from '../animation/styleAnimation';
|
|
4
|
+
|
|
5
|
+
runOnUI(() => {
|
|
6
|
+
'worklet';
|
|
7
|
+
|
|
8
|
+
const configs: Record<string, any> = {};
|
|
9
|
+
const enteringAnimationForTag: Record<string, any> = {};
|
|
10
|
+
|
|
11
|
+
global.LayoutAnimationRepository = {
|
|
12
|
+
configs,
|
|
13
|
+
registerConfig(tag, config) {
|
|
14
|
+
configs[tag] = config;
|
|
15
|
+
enteringAnimationForTag[tag] = null;
|
|
16
|
+
},
|
|
17
|
+
removeConfig(tag) {
|
|
18
|
+
delete configs[tag];
|
|
19
|
+
delete enteringAnimationForTag[tag];
|
|
20
|
+
},
|
|
21
|
+
startAnimationForTag(tag, type, yogaValues) {
|
|
22
|
+
if (configs[tag] == null) {
|
|
23
|
+
return; // :(
|
|
24
|
+
}
|
|
25
|
+
const style = configs[tag][type](yogaValues);
|
|
26
|
+
let currentAnimation = style.animations;
|
|
27
|
+
if (type === 'entering') {
|
|
28
|
+
enteringAnimationForTag[tag] = style;
|
|
29
|
+
} else if (type === 'layout' && enteringAnimationForTag[tag] !== null) {
|
|
30
|
+
const entryAniamtion = enteringAnimationForTag[tag].animations;
|
|
31
|
+
const layoutAnimation = style.animations;
|
|
32
|
+
currentAnimation = {};
|
|
33
|
+
for (const key in entryAniamtion) {
|
|
34
|
+
currentAnimation[key] = entryAniamtion[key];
|
|
35
|
+
}
|
|
36
|
+
for (const key in layoutAnimation) {
|
|
37
|
+
currentAnimation[key] = layoutAnimation[key];
|
|
38
|
+
}
|
|
39
|
+
enteringAnimationForTag[tag] = null;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
const sv: { value: boolean; _value: boolean } = configs[tag].sv;
|
|
43
|
+
_stopObservingProgress(tag, false);
|
|
44
|
+
_startObservingProgress(tag, sv);
|
|
45
|
+
sv._value = Object.assign({}, sv._value, style.initialValues);
|
|
46
|
+
_stopObservingProgress(tag, false);
|
|
47
|
+
const animation = withStyleAnimation(currentAnimation);
|
|
48
|
+
|
|
49
|
+
animation.callback = (finished?: boolean) => {
|
|
50
|
+
if (finished) {
|
|
51
|
+
_stopObservingProgress(tag, finished);
|
|
52
|
+
}
|
|
53
|
+
style.callback && style.callback(finished);
|
|
54
|
+
if (type === 'entering') {
|
|
55
|
+
enteringAnimationForTag[tag] = null;
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
configs[tag].sv.value = animation;
|
|
59
|
+
_startObservingProgress(tag, sv);
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
})();
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { withDelay } from '../../animation';
|
|
2
|
+
import {
|
|
3
|
+
EntryExitAnimationFunction,
|
|
4
|
+
AnimationFunction,
|
|
5
|
+
LayoutAnimationFunction,
|
|
6
|
+
} from './commonTypes';
|
|
7
|
+
|
|
8
|
+
export class BaseAnimationBuilder {
|
|
9
|
+
durationV?: number;
|
|
10
|
+
delayV?: number;
|
|
11
|
+
randomizeDelay = false;
|
|
12
|
+
callbackV?: (finished: boolean) => void;
|
|
13
|
+
|
|
14
|
+
static createInstance: () => BaseAnimationBuilder;
|
|
15
|
+
build = (): EntryExitAnimationFunction | LayoutAnimationFunction => {
|
|
16
|
+
throw Error('Unimplemented method in child class.');
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
static duration(durationMs: number): BaseAnimationBuilder {
|
|
20
|
+
const instance = this.createInstance();
|
|
21
|
+
return instance.duration(durationMs);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
duration(durationMs: number): BaseAnimationBuilder {
|
|
25
|
+
this.durationV = durationMs;
|
|
26
|
+
return this;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
static delay(delayMs: number): BaseAnimationBuilder {
|
|
30
|
+
const instance = this.createInstance();
|
|
31
|
+
return instance.delay(delayMs);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
delay(delayMs: number): BaseAnimationBuilder {
|
|
35
|
+
this.delayV = delayMs;
|
|
36
|
+
return this;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
static withCallback(
|
|
40
|
+
callback: (finished: boolean) => void
|
|
41
|
+
): BaseAnimationBuilder {
|
|
42
|
+
const instance = this.createInstance();
|
|
43
|
+
return instance.withCallback(callback);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
withCallback(callback: (finsihed: boolean) => void): BaseAnimationBuilder {
|
|
47
|
+
this.callbackV = callback;
|
|
48
|
+
return this;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// 300ms is the default animation duration. If any animation has different default has to override this method.
|
|
52
|
+
static getDuration(): number {
|
|
53
|
+
return 300;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
getDuration(): number {
|
|
57
|
+
return this.durationV ?? 300;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
static randomDelay(): BaseAnimationBuilder {
|
|
61
|
+
const instance = this.createInstance();
|
|
62
|
+
return instance.randomDelay();
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
randomDelay(): BaseAnimationBuilder {
|
|
66
|
+
this.randomizeDelay = true;
|
|
67
|
+
return this;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// when randomizeDelay is set to true, randomize delay between 0 and provided value (or 1000ms if delay is not provided)
|
|
71
|
+
getDelay(): number {
|
|
72
|
+
return this.randomizeDelay
|
|
73
|
+
? Math.random() * (this.delayV ?? 1000)
|
|
74
|
+
: this.delayV ?? 0;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
getDelayFunction(): AnimationFunction {
|
|
78
|
+
const isDelayProvided = this.randomizeDelay || this.delayV;
|
|
79
|
+
return isDelayProvided
|
|
80
|
+
? withDelay
|
|
81
|
+
: (_, animation) => {
|
|
82
|
+
'worklet';
|
|
83
|
+
return animation;
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
static build(): EntryExitAnimationFunction | LayoutAnimationFunction {
|
|
88
|
+
const instance = this.createInstance();
|
|
89
|
+
return instance.build();
|
|
90
|
+
}
|
|
91
|
+
}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import { withTiming, withSpring } from '../../animation';
|
|
2
|
+
import {
|
|
3
|
+
AnimationFunction,
|
|
4
|
+
BaseBuilderAnimationConfig,
|
|
5
|
+
LayoutAnimationAndConfig,
|
|
6
|
+
} from './commonTypes';
|
|
7
|
+
import { EasingFn } from '../../Easing';
|
|
8
|
+
import { BaseAnimationBuilder } from './BaseAnimationBuilder';
|
|
9
|
+
export class ComplexAnimationBuilder extends BaseAnimationBuilder {
|
|
10
|
+
easingV?: EasingFn;
|
|
11
|
+
rotateV?: string;
|
|
12
|
+
type?: AnimationFunction;
|
|
13
|
+
dampingV?: number;
|
|
14
|
+
massV?: number;
|
|
15
|
+
stiffnessV?: number;
|
|
16
|
+
overshootClampingV?: number;
|
|
17
|
+
restDisplacementThresholdV?: number;
|
|
18
|
+
restSpeedThresholdV?: number;
|
|
19
|
+
|
|
20
|
+
static createInstance: () => ComplexAnimationBuilder;
|
|
21
|
+
|
|
22
|
+
static easing(easingFunction: EasingFn): ComplexAnimationBuilder {
|
|
23
|
+
const instance = this.createInstance();
|
|
24
|
+
return instance.easing(easingFunction);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
easing(easingFunction: EasingFn): ComplexAnimationBuilder {
|
|
28
|
+
this.easingV = easingFunction;
|
|
29
|
+
return this;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
static rotate(degree: string): ComplexAnimationBuilder {
|
|
33
|
+
const instance = this.createInstance();
|
|
34
|
+
return instance.rotate(degree);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
rotate(degree: string): ComplexAnimationBuilder {
|
|
38
|
+
this.rotateV = degree;
|
|
39
|
+
return this;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
static springify(): ComplexAnimationBuilder {
|
|
43
|
+
const instance = this.createInstance();
|
|
44
|
+
return instance.springify();
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
springify(): ComplexAnimationBuilder {
|
|
48
|
+
this.type = withSpring as AnimationFunction;
|
|
49
|
+
return this;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
static damping(damping: number): ComplexAnimationBuilder {
|
|
53
|
+
const instance = this.createInstance();
|
|
54
|
+
return instance.damping(damping);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
damping(damping: number): ComplexAnimationBuilder {
|
|
58
|
+
this.dampingV = damping;
|
|
59
|
+
return this;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
static mass(mass: number): ComplexAnimationBuilder {
|
|
63
|
+
const instance = this.createInstance();
|
|
64
|
+
return instance.mass(mass);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
mass(mass: number): ComplexAnimationBuilder {
|
|
68
|
+
this.massV = mass;
|
|
69
|
+
return this;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
static stiffness(stiffness: number): ComplexAnimationBuilder {
|
|
73
|
+
const instance = this.createInstance();
|
|
74
|
+
return instance.stiffness(stiffness);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
stiffness(stiffness: number): ComplexAnimationBuilder {
|
|
78
|
+
this.stiffnessV = stiffness;
|
|
79
|
+
return this;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
static overshootClamping(overshootClamping: number): ComplexAnimationBuilder {
|
|
83
|
+
const instance = this.createInstance();
|
|
84
|
+
return instance.overshootClamping(overshootClamping);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
overshootClamping(overshootClamping: number): ComplexAnimationBuilder {
|
|
88
|
+
this.overshootClampingV = overshootClamping;
|
|
89
|
+
return this;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
static restDisplacementThreshold(
|
|
93
|
+
restDisplacementThreshold: number
|
|
94
|
+
): ComplexAnimationBuilder {
|
|
95
|
+
const instance = this.createInstance();
|
|
96
|
+
return instance.restDisplacementThreshold(restDisplacementThreshold);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
restDisplacementThreshold(
|
|
100
|
+
restDisplacementThreshold: number
|
|
101
|
+
): ComplexAnimationBuilder {
|
|
102
|
+
this.restDisplacementThresholdV = restDisplacementThreshold;
|
|
103
|
+
return this;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
static restSpeedThreshold(
|
|
107
|
+
restSpeedThreshold: number
|
|
108
|
+
): ComplexAnimationBuilder {
|
|
109
|
+
const instance = this.createInstance();
|
|
110
|
+
return instance.restSpeedThreshold(restSpeedThreshold);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
restSpeedThreshold(restSpeedThreshold: number): ComplexAnimationBuilder {
|
|
114
|
+
this.restSpeedThresholdV = restSpeedThreshold;
|
|
115
|
+
return this;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
getAnimationAndConfig(): LayoutAnimationAndConfig {
|
|
119
|
+
const duration = this.durationV;
|
|
120
|
+
const easing = this.easingV;
|
|
121
|
+
const rotate = this.rotateV;
|
|
122
|
+
const type = this.type ? this.type : (withTiming as AnimationFunction);
|
|
123
|
+
const damping = this.dampingV;
|
|
124
|
+
const mass = this.massV;
|
|
125
|
+
const stiffness = this.stiffnessV;
|
|
126
|
+
const overshootClamping = this.overshootClampingV;
|
|
127
|
+
const restDisplacementThreshold = this.restDisplacementThresholdV;
|
|
128
|
+
const restSpeedThreshold = this.restSpeedThresholdV;
|
|
129
|
+
|
|
130
|
+
const animation = type;
|
|
131
|
+
|
|
132
|
+
const config: BaseBuilderAnimationConfig = {};
|
|
133
|
+
|
|
134
|
+
if (type === withTiming) {
|
|
135
|
+
if (easing) {
|
|
136
|
+
config.easing = easing;
|
|
137
|
+
}
|
|
138
|
+
if (duration) {
|
|
139
|
+
config.duration = duration;
|
|
140
|
+
}
|
|
141
|
+
if (rotate) {
|
|
142
|
+
config.rotate = rotate;
|
|
143
|
+
}
|
|
144
|
+
} else {
|
|
145
|
+
if (damping) {
|
|
146
|
+
config.damping = damping;
|
|
147
|
+
}
|
|
148
|
+
if (mass) {
|
|
149
|
+
config.mass = mass;
|
|
150
|
+
}
|
|
151
|
+
if (stiffness) {
|
|
152
|
+
config.stiffness = stiffness;
|
|
153
|
+
}
|
|
154
|
+
if (overshootClamping) {
|
|
155
|
+
config.overshootClamping = overshootClamping;
|
|
156
|
+
}
|
|
157
|
+
if (restDisplacementThreshold) {
|
|
158
|
+
config.restDisplacementThreshold = restDisplacementThreshold;
|
|
159
|
+
}
|
|
160
|
+
if (restSpeedThreshold) {
|
|
161
|
+
config.restSpeedThreshold = restSpeedThreshold;
|
|
162
|
+
}
|
|
163
|
+
if (rotate) {
|
|
164
|
+
config.rotate = rotate;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
return [animation, config];
|
|
168
|
+
}
|
|
169
|
+
}
|