react-native-reanimated 2.6.0 → 3.0.0-rc.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.
- package/Common/cpp/Fabric/FabricUtils.cpp +128 -0
- package/Common/cpp/Fabric/ReanimatedUIManagerBinding.cpp +197 -0
- package/Common/cpp/NativeModules/NativeReanimatedModule.cpp +311 -6
- package/Common/cpp/Registries/EventHandlerRegistry.cpp +14 -1
- package/Common/cpp/Registries/NewestShadowNodesRegistry.cpp +68 -0
- package/Common/cpp/SharedItems/ShareableValue.cpp +20 -2
- package/Common/cpp/Tools/Mapper.cpp +23 -4
- package/Common/cpp/Tools/RuntimeDecorator.cpp +92 -46
- package/Common/cpp/Tools/Scheduler.cpp +4 -0
- package/Common/cpp/headers/Fabric/FabricUtils.h +78 -0
- package/Common/cpp/headers/Fabric/ReanimatedUIManagerBinding.h +46 -0
- package/Common/cpp/headers/NativeModules/NativeReanimatedModule.h +72 -2
- package/Common/cpp/headers/Registries/EventHandlerRegistry.h +8 -0
- package/Common/cpp/headers/Registries/NewestShadowNodesRegistry.h +41 -0
- package/Common/cpp/headers/SharedItems/SharedParent.h +3 -0
- package/Common/cpp/headers/SharedItems/ValueWrapper.h +25 -0
- package/Common/cpp/headers/SpecTools/ErrorHandler.h +5 -0
- package/Common/cpp/headers/Tools/Mapper.h +1 -1
- package/Common/cpp/headers/Tools/PlatformDepMethodsHolder.h +43 -8
- package/Common/cpp/headers/Tools/RuntimeDecorator.h +8 -3
- package/README.md +4 -0
- package/RNReanimated.podspec +22 -11
- package/android/CMakeLists.txt +139 -27
- package/android/build.gradle +86 -209
- package/android/local.properties +1 -0
- package/android/src/fabric/java/com/swmansion/reanimated/NativeProxy.java +310 -0
- package/android/src/fabric/java/com/swmansion/reanimated/ReaCompatibility.java +25 -0
- package/android/src/main/cpp/NativeProxy.cpp +196 -41
- package/android/src/main/cpp/headers/NativeProxy.h +45 -7
- package/android/src/main/java/com/swmansion/reanimated/NodesManager.java +13 -245
- package/android/src/main/java/com/swmansion/reanimated/ReanimatedModule.java +0 -125
- package/android/src/main/java/com/swmansion/reanimated/layoutReanimation/AnimationsManager.java +13 -6
- package/android/src/main/java/com/swmansion/reanimated/layoutReanimation/LayoutAnimations.java +2 -1
- package/android/src/{main → paper}/java/com/swmansion/reanimated/NativeProxy.java +26 -10
- package/android/src/paper/java/com/swmansion/reanimated/ReaCompatibility.java +17 -0
- package/ios/Fabric/REAInitializerRCTFabricSurface.h +12 -0
- package/ios/Fabric/REAInitializerRCTFabricSurface.mm +73 -0
- package/ios/LayoutReanimation/REAAnimationsManager.h +1 -1
- package/ios/LayoutReanimation/REAAnimationsManager.m +2 -2
- package/ios/LayoutReanimation/REASnapshot.m +1 -1
- package/ios/LayoutReanimation/REAUIManager.h +1 -1
- package/ios/LayoutReanimation/REAUIManager.mm +4 -5
- package/ios/REAEventDispatcher.m +1 -2
- package/ios/REAModule.h +10 -1
- package/ios/REAModule.mm +284 -0
- package/ios/REANodesManager.h +27 -52
- package/ios/{REANodesManager.m → REANodesManager.mm} +92 -226
- package/ios/native/NativeMethods.h +1 -3
- package/ios/native/NativeMethods.mm +1 -1
- package/ios/native/NativeProxy.h +2 -2
- package/ios/native/NativeProxy.mm +162 -32
- package/ios/native/REAIOSErrorHandler.h +2 -4
- package/ios/native/REAIOSErrorHandler.mm +1 -1
- package/ios/native/REAIOSLogger.h +1 -3
- package/ios/native/REAIOSLogger.mm +1 -1
- package/ios/native/REAIOSScheduler.h +1 -3
- package/ios/native/REAIOSScheduler.mm +2 -2
- package/ios/native/REAInitializer.h +0 -7
- package/ios/native/REAInitializer.mm +14 -6
- package/ios/native/UIResponder+Reanimated.h +3 -1
- package/ios/native/UIResponder+Reanimated.mm +6 -4
- package/ios/sensor/ReanimatedSensor.h +1 -1
- package/ios/sensor/ReanimatedSensor.m +1 -1
- package/ios/sensor/ReanimatedSensorContainer.h +1 -1
- package/ios/sensor/ReanimatedSensorContainer.m +2 -2
- package/lib/Animated.js +0 -13
- package/lib/ConfigHelper.js +0 -1
- package/lib/createAnimatedComponent.js +30 -169
- package/lib/index.js +0 -13
- package/lib/reanimated2/Easing.js +8 -44
- package/lib/reanimated2/NativeMethods.js +20 -3
- package/lib/reanimated2/UpdateProps.js +25 -10
- package/lib/reanimated2/core.js +4 -37
- package/lib/reanimated2/fabricUtils.js +18 -0
- package/lib/reanimated2/globals.d.ts +18 -3
- package/lib/reanimated2/hook/useAnimatedRef.js +6 -2
- package/lib/reanimated2/hook/utils.js +0 -5
- package/lib/reanimated2/interpolateColor.js +5 -2
- package/lib/reanimated2/interpolation.js +0 -15
- package/lib/reanimated2/js-reanimated/index.js +3 -0
- package/lib/types/{lib/ConfigHelper.d.ts → ConfigHelper.d.ts} +0 -0
- package/lib/types/{lib/ReanimatedEventEmitter.d.ts → ReanimatedEventEmitter.d.ts} +0 -0
- package/lib/types/{lib/ReanimatedModule.d.ts → ReanimatedModule.d.ts} +0 -0
- package/lib/types/{lib/ReanimatedModule.macos.d.ts → ReanimatedModule.macos.d.ts} +0 -0
- package/lib/types/{lib/ReanimatedModule.native.d.ts → ReanimatedModule.native.d.ts} +0 -0
- package/lib/types/{lib/ReanimatedModule.windows.d.ts → ReanimatedModule.windows.d.ts} +0 -0
- package/lib/types/{lib/ReanimatedModuleCompat.d.ts → ReanimatedModuleCompat.d.ts} +0 -0
- package/lib/types/{lib/createAnimatedComponent.d.ts → createAnimatedComponent.d.ts} +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/Bezier.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/Colors.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/Easing.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/NativeMethods.d.ts +2 -1
- package/lib/types/{lib/reanimated2 → reanimated2}/NativeReanimated/NativeReanimated.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/NativeReanimated/index.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/PlatformChecker.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/PropAdapters.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/UpdateProps.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/ViewDescriptorsSet.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/WorkletEventHandler.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/__mocks__/MutableValue.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/__mocks__/NativeReanimated.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/__mocks__/NativeReanimated.native.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/animation/commonTypes.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/animation/decay.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/animation/delay.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/animation/index.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/animation/repeat.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/animation/sequence.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/animation/spring.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/animation/styleAnimation.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/animation/timing.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/animation/util.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/commonTypes.d.ts +2 -2
- package/lib/types/{lib/reanimated2 → reanimated2}/component/FlatList.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/component/WrappedComponents.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/component/index.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/core.d.ts +0 -0
- package/lib/types/reanimated2/fabricUtils.d.ts +4 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/hook/Hooks.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/hook/commonTypes.d.ts +2 -1
- package/lib/types/{lib/reanimated2 → reanimated2}/hook/index.d.ts +1 -1
- package/lib/types/{lib/reanimated2 → reanimated2}/hook/useAnimatedGestureHandler.d.ts +2 -2
- package/lib/types/{lib/reanimated2 → reanimated2}/hook/useAnimatedReaction.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/hook/useAnimatedRef.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/hook/useAnimatedScrollHandler.d.ts +2 -2
- package/lib/types/{lib/reanimated2 → reanimated2}/hook/useAnimatedSensor.d.ts +1 -3
- package/lib/types/{lib/reanimated2 → reanimated2}/hook/useAnimatedStyle.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/hook/useDerivedValue.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/hook/useSharedValue.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/hook/utils.d.ts +2 -2
- package/lib/types/{lib/reanimated2 → reanimated2}/index.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/interpolateColor.d.ts +5 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/interpolation.d.ts +1 -4
- package/lib/types/{lib/reanimated2 → reanimated2}/jestUtils.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/js-reanimated/JSReanimated.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/js-reanimated/Mapper.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/js-reanimated/MapperRegistry.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/js-reanimated/MutableValue.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/js-reanimated/commonTypes.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/js-reanimated/index.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/LayoutAnimationRepository.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/animationBuilder/BaseAnimationBuilder.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/animationBuilder/ComplexAnimationBuilder.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/animationBuilder/Keyframe.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/animationBuilder/commonTypes.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/animationBuilder/index.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Bounce.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Default.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Fade.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Flip.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Lightspeed.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Pinwheel.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Roll.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Rotate.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Slide.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Stretch.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Zoom.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/index.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultTransitions/CurvedTransition.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultTransitions/EntryExitTransition.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultTransitions/FadingTransition.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultTransitions/JumpingTransition.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultTransitions/LinearTransition.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultTransitions/SequencedTransition.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultTransitions/index.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/index.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/mock.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/platform-specific/RNRenderer.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/platform-specific/RNRenderer.web.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/utils.d.ts +0 -0
- package/lib/types/{lib/setAndForwardRef.d.ts → setAndForwardRef.d.ts} +0 -0
- package/package.json +10 -10
- package/plugin.js +29 -33
- package/react-native-reanimated.d.ts +15 -3
- package/src/Animated.js +0 -13
- package/src/ConfigHelper.ts +0 -1
- package/src/createAnimatedComponent.tsx +37 -197
- package/src/reanimated2/Easing.ts +8 -55
- package/src/reanimated2/NativeMethods.ts +39 -7
- package/src/reanimated2/UpdateProps.ts +38 -19
- package/src/reanimated2/commonTypes.ts +4 -2
- package/src/reanimated2/component/FlatList.tsx +8 -5
- package/src/reanimated2/core.ts +7 -48
- package/src/reanimated2/fabricUtils.ts +27 -0
- package/src/reanimated2/globals.d.ts +18 -3
- package/src/reanimated2/hook/commonTypes.ts +4 -2
- package/src/reanimated2/hook/index.ts +1 -1
- package/src/reanimated2/hook/useAnimatedGestureHandler.ts +2 -2
- package/src/reanimated2/hook/useAnimatedRef.ts +8 -3
- package/src/reanimated2/hook/useAnimatedScrollHandler.ts +2 -2
- package/src/reanimated2/hook/useAnimatedSensor.ts +1 -3
- package/src/reanimated2/hook/utils.ts +2 -11
- package/src/reanimated2/interpolateColor.ts +6 -2
- package/src/reanimated2/interpolation.ts +1 -26
- package/src/reanimated2/js-reanimated/index.ts +5 -0
- package/android/.gradle/7.2/dependencies-accessors/dependencies-accessors.lock +0 -0
- package/android/.gradle/7.2/dependencies-accessors/gc.properties +0 -0
- package/android/.gradle/7.2/executionHistory/executionHistory.bin +0 -0
- package/android/.gradle/7.2/executionHistory/executionHistory.lock +0 -0
- package/android/.gradle/7.2/fileChanges/last-build.bin +0 -0
- package/android/.gradle/7.2/fileHashes/fileHashes.bin +0 -0
- package/android/.gradle/7.2/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/7.2/fileHashes/resourceHashesCache.bin +0 -0
- package/android/.gradle/7.2/gc.properties +0 -0
- package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/android/.gradle/buildOutputCleanup/cache.properties +0 -2
- package/android/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
- package/android/.gradle/checksums/checksums.lock +0 -0
- package/android/.gradle/checksums/md5-checksums.bin +0 -0
- package/android/.gradle/checksums/sha1-checksums.bin +0 -0
- package/android/.gradle/vcs-1/gc.properties +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/android/react-native-reanimated-67-hermes.aar +0 -0
- package/android/react-native-reanimated-67-jsc.aar +0 -0
- package/android/react-native-reanimated-68-hermes.aar +0 -0
- package/android/react-native-reanimated-68-jsc.aar +0 -0
- package/android/src/main/java/com/swmansion/reanimated/UpdateContext.java +0 -11
- package/android/src/main/java/com/swmansion/reanimated/nodes/AlwaysNode.java +0 -29
- package/android/src/main/java/com/swmansion/reanimated/nodes/BezierNode.java +0 -87
- package/android/src/main/java/com/swmansion/reanimated/nodes/BlockNode.java +0 -24
- package/android/src/main/java/com/swmansion/reanimated/nodes/CallFuncNode.java +0 -49
- package/android/src/main/java/com/swmansion/reanimated/nodes/ClockNode.java +0 -38
- package/android/src/main/java/com/swmansion/reanimated/nodes/ClockOpNode.java +0 -73
- package/android/src/main/java/com/swmansion/reanimated/nodes/ConcatNode.java +0 -36
- package/android/src/main/java/com/swmansion/reanimated/nodes/CondNode.java +0 -41
- package/android/src/main/java/com/swmansion/reanimated/nodes/DebugNode.java +0 -33
- package/android/src/main/java/com/swmansion/reanimated/nodes/EventNode.java +0 -83
- package/android/src/main/java/com/swmansion/reanimated/nodes/FinalNode.java +0 -5
- package/android/src/main/java/com/swmansion/reanimated/nodes/FunctionNode.java +0 -20
- package/android/src/main/java/com/swmansion/reanimated/nodes/JSCallNode.java +0 -41
- package/android/src/main/java/com/swmansion/reanimated/nodes/Node.java +0 -139
- package/android/src/main/java/com/swmansion/reanimated/nodes/NoopNode.java +0 -37
- package/android/src/main/java/com/swmansion/reanimated/nodes/OperatorNode.java +0 -377
- package/android/src/main/java/com/swmansion/reanimated/nodes/ParamNode.java +0 -71
- package/android/src/main/java/com/swmansion/reanimated/nodes/PropsNode.java +0 -153
- package/android/src/main/java/com/swmansion/reanimated/nodes/SetNode.java +0 -32
- package/android/src/main/java/com/swmansion/reanimated/nodes/StyleNode.java +0 -40
- package/android/src/main/java/com/swmansion/reanimated/nodes/TransformNode.java +0 -84
- package/android/src/main/java/com/swmansion/reanimated/nodes/ValueNode.java +0 -40
- package/android/src/main/java/com/swmansion/reanimated/transitions/ChangeTransition.java +0 -84
- package/android/src/main/java/com/swmansion/reanimated/transitions/SaneSidePropagation.java +0 -25
- package/android/src/main/java/com/swmansion/reanimated/transitions/Scale.java +0 -86
- package/android/src/main/java/com/swmansion/reanimated/transitions/TransitionModule.java +0 -41
- package/android/src/main/java/com/swmansion/reanimated/transitions/TransitionUtils.java +0 -161
- package/ios/Nodes/REAAlwaysNode.h +0 -4
- package/ios/Nodes/REAAlwaysNode.m +0 -35
- package/ios/Nodes/REABezierNode.h +0 -5
- package/ios/Nodes/REABezierNode.m +0 -104
- package/ios/Nodes/REABlockNode.h +0 -5
- package/ios/Nodes/REABlockNode.m +0 -25
- package/ios/Nodes/REACallFuncNode.h +0 -6
- package/ios/Nodes/REACallFuncNode.m +0 -69
- package/ios/Nodes/REAClockNodes.h +0 -19
- package/ios/Nodes/REAClockNodes.m +0 -118
- package/ios/Nodes/REAConcatNode.h +0 -5
- package/ios/Nodes/REAConcatNode.m +0 -32
- package/ios/Nodes/REACondNode.h +0 -5
- package/ios/Nodes/REACondNode.m +0 -36
- package/ios/Nodes/READebugNode.h +0 -5
- package/ios/Nodes/READebugNode.m +0 -30
- package/ios/Nodes/REAEventNode.h +0 -9
- package/ios/Nodes/REAEventNode.m +0 -35
- package/ios/Nodes/REAFunctionNode.h +0 -6
- package/ios/Nodes/REAFunctionNode.m +0 -24
- package/ios/Nodes/REAJSCallNode.h +0 -5
- package/ios/Nodes/REAJSCallNode.m +0 -30
- package/ios/Nodes/REANode.h +0 -40
- package/ios/Nodes/REANode.m +0 -155
- package/ios/Nodes/REAOperatorNode.h +0 -5
- package/ios/Nodes/REAOperatorNode.m +0 -115
- package/ios/Nodes/REAParamNode.h +0 -10
- package/ios/Nodes/REAParamNode.m +0 -79
- package/ios/Nodes/REAPropsNode.h +0 -9
- package/ios/Nodes/REAPropsNode.m +0 -98
- package/ios/Nodes/REASetNode.h +0 -5
- package/ios/Nodes/REASetNode.m +0 -34
- package/ios/Nodes/REAStyleNode.h +0 -5
- package/ios/Nodes/REAStyleNode.m +0 -28
- package/ios/Nodes/REATransformNode.h +0 -5
- package/ios/Nodes/REATransformNode.m +0 -36
- package/ios/Nodes/REAValueNode.h +0 -11
- package/ios/Nodes/REAValueNode.m +0 -26
- package/ios/REAModule.m +0 -185
- package/ios/Transitioning/RCTConvert+REATransition.h +0 -12
- package/ios/Transitioning/RCTConvert+REATransition.m +0 -53
- package/ios/Transitioning/REAAllTransitions.h +0 -26
- package/ios/Transitioning/REAAllTransitions.m +0 -297
- package/ios/Transitioning/REATransition.h +0 -65
- package/ios/Transitioning/REATransition.m +0 -211
- package/ios/Transitioning/REATransitionAnimation.h +0 -17
- package/ios/Transitioning/REATransitionAnimation.m +0 -80
- package/ios/Transitioning/REATransitionManager.h +0 -9
- package/ios/Transitioning/REATransitionManager.m +0 -62
- package/ios/Transitioning/REATransitionValues.h +0 -15
- package/ios/Transitioning/REATransitionValues.m +0 -26
- package/lib/reanimated1/Easing.js +0 -231
- package/lib/reanimated1/SpringConfig.js +0 -79
- package/lib/reanimated1/Transitioning.js +0 -158
- package/lib/reanimated1/animations/Animation.js +0 -32
- package/lib/reanimated1/animations/SpringUtils.js +0 -199
- package/lib/reanimated1/animations/backwardCompatibleAnimWrapper.js +0 -117
- package/lib/reanimated1/animations/decay.js +0 -54
- package/lib/reanimated1/animations/spring.js +0 -198
- package/lib/reanimated1/animations/timing.js +0 -74
- package/lib/reanimated1/base.js +0 -13
- package/lib/reanimated1/core/AnimatedAlways.js +0 -33
- package/lib/reanimated1/core/AnimatedBezier.js +0 -150
- package/lib/reanimated1/core/AnimatedBlock.js +0 -52
- package/lib/reanimated1/core/AnimatedCall.js +0 -55
- package/lib/reanimated1/core/AnimatedCallFunc.js +0 -72
- package/lib/reanimated1/core/AnimatedClock.js +0 -90
- package/lib/reanimated1/core/AnimatedClockTest.js +0 -22
- package/lib/reanimated1/core/AnimatedCode.js +0 -32
- package/lib/reanimated1/core/AnimatedConcat.js +0 -32
- package/lib/reanimated1/core/AnimatedCond.js +0 -57
- package/lib/reanimated1/core/AnimatedDebug.js +0 -62
- package/lib/reanimated1/core/AnimatedEvent.js +0 -126
- package/lib/reanimated1/core/AnimatedFunction.js +0 -55
- package/lib/reanimated1/core/AnimatedNode.js +0 -223
- package/lib/reanimated1/core/AnimatedOperator.js +0 -103
- package/lib/reanimated1/core/AnimatedParam.js +0 -88
- package/lib/reanimated1/core/AnimatedProps.js +0 -108
- package/lib/reanimated1/core/AnimatedSet.js +0 -38
- package/lib/reanimated1/core/AnimatedStartClock.js +0 -30
- package/lib/reanimated1/core/AnimatedStopClock.js +0 -30
- package/lib/reanimated1/core/AnimatedStyle.js +0 -78
- package/lib/reanimated1/core/AnimatedTransform.js +0 -78
- package/lib/reanimated1/core/AnimatedValue.js +0 -38
- package/lib/reanimated1/core/Core.test.js +0 -30
- package/lib/reanimated1/core/InternalAnimatedValue.js +0 -87
- package/lib/reanimated1/core/__mocks__/AnimatedProps.js +0 -86
- package/lib/reanimated1/core/createEventObjectProxyPolyfill.js +0 -44
- package/lib/reanimated1/derived/__mocks__/evaluateOnce.js +0 -14
- package/lib/reanimated1/derived/acc.js +0 -11
- package/lib/reanimated1/derived/color.js +0 -47
- package/lib/reanimated1/derived/diff.js +0 -16
- package/lib/reanimated1/derived/diffClamp.js +0 -11
- package/lib/reanimated1/derived/evaluateOnce.js +0 -35
- package/lib/reanimated1/derived/index.js +0 -8
- package/lib/reanimated1/derived/interpolate.js +0 -152
- package/lib/reanimated1/derived/interpolateColors.js +0 -62
- package/lib/reanimated1/derived/onChange.js +0 -14
- package/lib/reanimated1/derived/useCode.js +0 -41
- package/lib/reanimated1/index.js +0 -53
- package/lib/reanimated1/operators.js +0 -35
- package/lib/reanimated1/useValue.js +0 -10
- package/lib/reanimated1/val.js +0 -3
- package/lib/types/react-native-reanimated-tests.d.ts +0 -1
- package/src/reanimated1/Easing.js +0 -231
- package/src/reanimated1/SpringConfig.js +0 -79
- package/src/reanimated1/Transitioning.js +0 -158
- package/src/reanimated1/animations/Animation.js +0 -32
- package/src/reanimated1/animations/SpringUtils.js +0 -199
- package/src/reanimated1/animations/backwardCompatibleAnimWrapper.js +0 -117
- package/src/reanimated1/animations/decay.js +0 -54
- package/src/reanimated1/animations/spring.js +0 -198
- package/src/reanimated1/animations/timing.js +0 -74
- package/src/reanimated1/base.js +0 -13
- package/src/reanimated1/core/AnimatedAlways.js +0 -33
- package/src/reanimated1/core/AnimatedBezier.js +0 -150
- package/src/reanimated1/core/AnimatedBlock.js +0 -52
- package/src/reanimated1/core/AnimatedCall.js +0 -55
- package/src/reanimated1/core/AnimatedCallFunc.js +0 -72
- package/src/reanimated1/core/AnimatedClock.js +0 -90
- package/src/reanimated1/core/AnimatedClockTest.js +0 -22
- package/src/reanimated1/core/AnimatedCode.js +0 -32
- package/src/reanimated1/core/AnimatedConcat.js +0 -32
- package/src/reanimated1/core/AnimatedCond.js +0 -57
- package/src/reanimated1/core/AnimatedDebug.js +0 -62
- package/src/reanimated1/core/AnimatedEvent.js +0 -126
- package/src/reanimated1/core/AnimatedFunction.js +0 -55
- package/src/reanimated1/core/AnimatedNode.js +0 -223
- package/src/reanimated1/core/AnimatedOperator.js +0 -103
- package/src/reanimated1/core/AnimatedParam.js +0 -88
- package/src/reanimated1/core/AnimatedProps.js +0 -108
- package/src/reanimated1/core/AnimatedSet.js +0 -38
- package/src/reanimated1/core/AnimatedStartClock.js +0 -30
- package/src/reanimated1/core/AnimatedStopClock.js +0 -30
- package/src/reanimated1/core/AnimatedStyle.js +0 -78
- package/src/reanimated1/core/AnimatedTransform.js +0 -78
- package/src/reanimated1/core/AnimatedValue.js +0 -38
- package/src/reanimated1/core/Core.test.js +0 -30
- package/src/reanimated1/core/InternalAnimatedValue.js +0 -87
- package/src/reanimated1/core/__mocks__/AnimatedProps.js +0 -86
- package/src/reanimated1/core/createEventObjectProxyPolyfill.js +0 -44
- package/src/reanimated1/derived/__mocks__/evaluateOnce.js +0 -14
- package/src/reanimated1/derived/acc.js +0 -11
- package/src/reanimated1/derived/color.js +0 -47
- package/src/reanimated1/derived/diff.js +0 -16
- package/src/reanimated1/derived/diffClamp.js +0 -11
- package/src/reanimated1/derived/evaluateOnce.js +0 -35
- package/src/reanimated1/derived/index.js +0 -8
- package/src/reanimated1/derived/interpolate.js +0 -152
- package/src/reanimated1/derived/interpolateColors.js +0 -62
- package/src/reanimated1/derived/onChange.js +0 -14
- package/src/reanimated1/derived/useCode.js +0 -41
- package/src/reanimated1/index.js +0 -53
- package/src/reanimated1/operators.js +0 -35
- package/src/reanimated1/useValue.js +0 -10
- package/src/reanimated1/val.js +0 -3
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
package com.swmansion.reanimated.nodes;
|
|
2
|
-
|
|
3
|
-
import com.facebook.react.bridge.ReadableMap;
|
|
4
|
-
import com.facebook.react.bridge.UiThreadUtil;
|
|
5
|
-
import com.swmansion.reanimated.NodesManager;
|
|
6
|
-
import com.swmansion.reanimated.UpdateContext;
|
|
7
|
-
import java.util.ArrayList;
|
|
8
|
-
import java.util.HashMap;
|
|
9
|
-
import java.util.HashSet;
|
|
10
|
-
import java.util.List;
|
|
11
|
-
import java.util.Map;
|
|
12
|
-
import java.util.Set;
|
|
13
|
-
import java.util.Stack;
|
|
14
|
-
import javax.annotation.Nullable;
|
|
15
|
-
|
|
16
|
-
public abstract class Node {
|
|
17
|
-
|
|
18
|
-
public static final Double ZERO = Double.valueOf(0);
|
|
19
|
-
public static final Double ONE = Double.valueOf(1);
|
|
20
|
-
|
|
21
|
-
protected final int mNodeID;
|
|
22
|
-
protected final NodesManager mNodesManager;
|
|
23
|
-
|
|
24
|
-
protected final UpdateContext mUpdateContext;
|
|
25
|
-
|
|
26
|
-
private final Map<String, Long> mLastLoopID = new HashMap<>();
|
|
27
|
-
private final Map<String, Object> mMemoizedValue = new HashMap<>();
|
|
28
|
-
private @Nullable List<Node> mChildren; /* lazy-initialized when a child is added */
|
|
29
|
-
|
|
30
|
-
public Node(int nodeID, @Nullable ReadableMap config, NodesManager nodesManager) {
|
|
31
|
-
mLastLoopID.put("", -1L);
|
|
32
|
-
mNodeID = nodeID;
|
|
33
|
-
mNodesManager = nodesManager;
|
|
34
|
-
mUpdateContext = nodesManager.updateContext;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
protected abstract @Nullable Object evaluate();
|
|
38
|
-
|
|
39
|
-
public final @Nullable Object value() {
|
|
40
|
-
if (!mLastLoopID.containsKey(mUpdateContext.callID)
|
|
41
|
-
|| mLastLoopID.get(mUpdateContext.callID) < mUpdateContext.updateLoopID) {
|
|
42
|
-
mLastLoopID.put(mUpdateContext.callID, mUpdateContext.updateLoopID);
|
|
43
|
-
Object result = evaluate();
|
|
44
|
-
mMemoizedValue.put(mUpdateContext.callID, result);
|
|
45
|
-
|
|
46
|
-
return result;
|
|
47
|
-
}
|
|
48
|
-
return mMemoizedValue.get(mUpdateContext.callID);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* This method will never return null. If value is null or of a different type we try to cast and
|
|
53
|
-
* return 0 if we fail to properly cast the value. This is to match iOS behavior where the node
|
|
54
|
-
* would not throw even if the value was not set.
|
|
55
|
-
*/
|
|
56
|
-
public final Double doubleValue() {
|
|
57
|
-
Object value = value();
|
|
58
|
-
if (value == null) {
|
|
59
|
-
return ZERO;
|
|
60
|
-
} else if (value instanceof Double) {
|
|
61
|
-
return (Double) value;
|
|
62
|
-
} else if (value instanceof Number) {
|
|
63
|
-
return Double.valueOf(((Number) value).doubleValue());
|
|
64
|
-
} else if (value instanceof Boolean) {
|
|
65
|
-
return ((Boolean) value).booleanValue() ? ONE : ZERO;
|
|
66
|
-
}
|
|
67
|
-
throw new IllegalStateException("Value of node " + this + " cannot be cast to a number");
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
public void addChild(Node child) {
|
|
71
|
-
if (mChildren == null) {
|
|
72
|
-
mChildren = new ArrayList<>();
|
|
73
|
-
}
|
|
74
|
-
mChildren.add(child);
|
|
75
|
-
child.dangerouslyRescheduleEvaluate();
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
public void removeChild(Node child) {
|
|
79
|
-
if (mChildren != null) {
|
|
80
|
-
mChildren.remove(child);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
protected void markUpdated() {
|
|
85
|
-
UiThreadUtil.assertOnUiThread();
|
|
86
|
-
mUpdateContext.updatedNodes.add(this);
|
|
87
|
-
mNodesManager.postRunUpdatesAfterAnimation();
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
public void onDrop() {
|
|
91
|
-
// noop
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
protected final void dangerouslyRescheduleEvaluate() {
|
|
95
|
-
mLastLoopID.put(mUpdateContext.callID, -1L);
|
|
96
|
-
markUpdated();
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
protected final void forceUpdateMemoizedValue(Object value) {
|
|
100
|
-
mMemoizedValue.put(mUpdateContext.callID, value);
|
|
101
|
-
markUpdated();
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
private static void findAndUpdateNodes(
|
|
105
|
-
Node node, Set<Node> visitedNodes, Stack<FinalNode> finalNodes) {
|
|
106
|
-
if (visitedNodes.contains(node)) {
|
|
107
|
-
return;
|
|
108
|
-
} else {
|
|
109
|
-
visitedNodes.add(node);
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
List<Node> children = node.mChildren;
|
|
113
|
-
if (children != null) {
|
|
114
|
-
for (Node child : children) {
|
|
115
|
-
findAndUpdateNodes(child, visitedNodes, finalNodes);
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
if (node instanceof FinalNode) {
|
|
119
|
-
finalNodes.push((FinalNode) node);
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
public static void runUpdates(UpdateContext updateContext) {
|
|
124
|
-
UiThreadUtil.assertOnUiThread();
|
|
125
|
-
ArrayList<Node> updatedNodes = updateContext.updatedNodes;
|
|
126
|
-
Set<Node> visitedNodes = new HashSet<>();
|
|
127
|
-
Stack<FinalNode> finalNodes = new Stack<>();
|
|
128
|
-
for (int i = 0; i < updatedNodes.size(); i++) {
|
|
129
|
-
findAndUpdateNodes(updatedNodes.get(i), visitedNodes, finalNodes);
|
|
130
|
-
if (i == updatedNodes.size() - 1) {
|
|
131
|
-
while (!finalNodes.isEmpty()) {
|
|
132
|
-
finalNodes.pop().update();
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
updatedNodes.clear();
|
|
137
|
-
updateContext.updateLoopID++;
|
|
138
|
-
}
|
|
139
|
-
}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
package com.swmansion.reanimated.nodes;
|
|
2
|
-
|
|
3
|
-
import com.swmansion.reanimated.NodesManager;
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* This node is used by {@link NodesManager} to return in place of a missing node that might have
|
|
7
|
-
* been requested. This way we avoid a top of null-checks and we make nodes manager compatible with
|
|
8
|
-
* the iOS code which does not crash for missing nodes. In most of the cases it is desirable to
|
|
9
|
-
* handle missing nodes gracefully as it usually means the node hasn't been hooked under animated
|
|
10
|
-
* view prop but is referenced in the graph (e.g. to support some edge case).
|
|
11
|
-
*/
|
|
12
|
-
public class NoopNode extends ValueNode {
|
|
13
|
-
|
|
14
|
-
public NoopNode(NodesManager nodesManager) {
|
|
15
|
-
super(-2, null, nodesManager);
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
@Override
|
|
19
|
-
public void setValue(Object value) {
|
|
20
|
-
// no-op
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
@Override
|
|
24
|
-
public void addChild(Node child) {
|
|
25
|
-
// no-op
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
@Override
|
|
29
|
-
public void removeChild(Node child) {
|
|
30
|
-
// no-op
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
@Override
|
|
34
|
-
protected void markUpdated() {
|
|
35
|
-
// no-op
|
|
36
|
-
}
|
|
37
|
-
}
|
|
@@ -1,377 +0,0 @@
|
|
|
1
|
-
package com.swmansion.reanimated.nodes;
|
|
2
|
-
|
|
3
|
-
import com.facebook.react.bridge.JSApplicationIllegalArgumentException;
|
|
4
|
-
import com.facebook.react.bridge.ReadableMap;
|
|
5
|
-
import com.swmansion.reanimated.NodesManager;
|
|
6
|
-
import com.swmansion.reanimated.Utils;
|
|
7
|
-
|
|
8
|
-
public class OperatorNode extends Node {
|
|
9
|
-
|
|
10
|
-
private static boolean truthy(Object value) {
|
|
11
|
-
return value != null && !value.equals(0.);
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
private interface Operator {
|
|
15
|
-
double evaluate(Node[] input);
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
private abstract static class ReduceOperator implements Operator {
|
|
19
|
-
@Override
|
|
20
|
-
public double evaluate(Node[] input) {
|
|
21
|
-
double acc = input[0].doubleValue();
|
|
22
|
-
for (int i = 1; i < input.length; i++) {
|
|
23
|
-
acc = reduce(acc, input[i].doubleValue());
|
|
24
|
-
}
|
|
25
|
-
return acc;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
public abstract double reduce(Double x, Double y);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
private abstract static class SingleOperator implements Operator {
|
|
32
|
-
@Override
|
|
33
|
-
public double evaluate(Node[] input) {
|
|
34
|
-
return eval((Double) input[0].value());
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
public abstract double eval(Double x);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
private abstract static class CompOperator implements Operator {
|
|
41
|
-
@Override
|
|
42
|
-
public double evaluate(Node[] input) {
|
|
43
|
-
return eval((Double) input[0].value(), (Double) input[1].value()) ? 1. : 0.;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
public abstract boolean eval(Double x, Double y);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
// arithmetic
|
|
50
|
-
private static final Operator ADD =
|
|
51
|
-
new ReduceOperator() {
|
|
52
|
-
@Override
|
|
53
|
-
public double reduce(Double x, Double y) {
|
|
54
|
-
return x + y;
|
|
55
|
-
}
|
|
56
|
-
};
|
|
57
|
-
private static final Operator SUB =
|
|
58
|
-
new ReduceOperator() {
|
|
59
|
-
@Override
|
|
60
|
-
public double reduce(Double x, Double y) {
|
|
61
|
-
return x - y;
|
|
62
|
-
}
|
|
63
|
-
};
|
|
64
|
-
private static final Operator MULTIPLY =
|
|
65
|
-
new ReduceOperator() {
|
|
66
|
-
@Override
|
|
67
|
-
public double reduce(Double x, Double y) {
|
|
68
|
-
return x * y;
|
|
69
|
-
}
|
|
70
|
-
};
|
|
71
|
-
private static final Operator DIVIDE =
|
|
72
|
-
new ReduceOperator() {
|
|
73
|
-
@Override
|
|
74
|
-
public double reduce(Double x, Double y) {
|
|
75
|
-
return x / y;
|
|
76
|
-
}
|
|
77
|
-
};
|
|
78
|
-
private static final Operator POW =
|
|
79
|
-
new ReduceOperator() {
|
|
80
|
-
@Override
|
|
81
|
-
public double reduce(Double x, Double y) {
|
|
82
|
-
return Math.pow(x, y);
|
|
83
|
-
}
|
|
84
|
-
};
|
|
85
|
-
private static final Operator MODULO =
|
|
86
|
-
new ReduceOperator() {
|
|
87
|
-
@Override
|
|
88
|
-
public double reduce(Double x, Double y) {
|
|
89
|
-
return ((x % y) + y) % y;
|
|
90
|
-
}
|
|
91
|
-
};
|
|
92
|
-
private static final Operator SQRT =
|
|
93
|
-
new SingleOperator() {
|
|
94
|
-
@Override
|
|
95
|
-
public double eval(Double x) {
|
|
96
|
-
return Math.sqrt(x);
|
|
97
|
-
}
|
|
98
|
-
};
|
|
99
|
-
private static final Operator LOG =
|
|
100
|
-
new SingleOperator() {
|
|
101
|
-
@Override
|
|
102
|
-
public double eval(Double x) {
|
|
103
|
-
return Math.log(x);
|
|
104
|
-
}
|
|
105
|
-
};
|
|
106
|
-
private static final Operator SIN =
|
|
107
|
-
new SingleOperator() {
|
|
108
|
-
@Override
|
|
109
|
-
public double eval(Double x) {
|
|
110
|
-
return Math.sin(x);
|
|
111
|
-
}
|
|
112
|
-
};
|
|
113
|
-
private static final Operator COS =
|
|
114
|
-
new SingleOperator() {
|
|
115
|
-
@Override
|
|
116
|
-
public double eval(Double x) {
|
|
117
|
-
return Math.cos(x);
|
|
118
|
-
}
|
|
119
|
-
};
|
|
120
|
-
private static final Operator TAN =
|
|
121
|
-
new SingleOperator() {
|
|
122
|
-
@Override
|
|
123
|
-
public double eval(Double x) {
|
|
124
|
-
return Math.tan(x);
|
|
125
|
-
}
|
|
126
|
-
};
|
|
127
|
-
private static final Operator ACOS =
|
|
128
|
-
new SingleOperator() {
|
|
129
|
-
@Override
|
|
130
|
-
public double eval(Double x) {
|
|
131
|
-
return Math.acos(x);
|
|
132
|
-
}
|
|
133
|
-
};
|
|
134
|
-
private static final Operator ASIN =
|
|
135
|
-
new SingleOperator() {
|
|
136
|
-
@Override
|
|
137
|
-
public double eval(Double x) {
|
|
138
|
-
return Math.asin(x);
|
|
139
|
-
}
|
|
140
|
-
};
|
|
141
|
-
private static final Operator ATAN =
|
|
142
|
-
new SingleOperator() {
|
|
143
|
-
@Override
|
|
144
|
-
public double eval(Double x) {
|
|
145
|
-
return Math.atan(x);
|
|
146
|
-
}
|
|
147
|
-
};
|
|
148
|
-
private static final Operator EXP =
|
|
149
|
-
new SingleOperator() {
|
|
150
|
-
@Override
|
|
151
|
-
public double eval(Double x) {
|
|
152
|
-
return Math.exp(x);
|
|
153
|
-
}
|
|
154
|
-
};
|
|
155
|
-
private static final Operator ROUND =
|
|
156
|
-
new SingleOperator() {
|
|
157
|
-
@Override
|
|
158
|
-
public double eval(Double x) {
|
|
159
|
-
return Math.round(x);
|
|
160
|
-
}
|
|
161
|
-
};
|
|
162
|
-
private static final Operator ABS =
|
|
163
|
-
new SingleOperator() {
|
|
164
|
-
@Override
|
|
165
|
-
public double eval(Double x) {
|
|
166
|
-
return Math.abs(x);
|
|
167
|
-
}
|
|
168
|
-
};
|
|
169
|
-
private static final Operator FLOOR =
|
|
170
|
-
new SingleOperator() {
|
|
171
|
-
@Override
|
|
172
|
-
public double eval(Double x) {
|
|
173
|
-
return Math.floor(x);
|
|
174
|
-
}
|
|
175
|
-
};
|
|
176
|
-
private static final Operator CEIL =
|
|
177
|
-
new SingleOperator() {
|
|
178
|
-
@Override
|
|
179
|
-
public double eval(Double x) {
|
|
180
|
-
return Math.ceil(x);
|
|
181
|
-
}
|
|
182
|
-
};
|
|
183
|
-
private static final Operator MIN =
|
|
184
|
-
new ReduceOperator() {
|
|
185
|
-
@Override
|
|
186
|
-
public double reduce(Double x, Double y) {
|
|
187
|
-
return Math.min(x, y);
|
|
188
|
-
}
|
|
189
|
-
};
|
|
190
|
-
private static final Operator MAX =
|
|
191
|
-
new ReduceOperator() {
|
|
192
|
-
@Override
|
|
193
|
-
public double reduce(Double x, Double y) {
|
|
194
|
-
return Math.max(x, y);
|
|
195
|
-
}
|
|
196
|
-
};
|
|
197
|
-
|
|
198
|
-
// logical
|
|
199
|
-
private static final Operator AND =
|
|
200
|
-
new Operator() {
|
|
201
|
-
@Override
|
|
202
|
-
public double evaluate(Node[] input) {
|
|
203
|
-
boolean res = truthy(input[0].value());
|
|
204
|
-
for (int i = 1; i < input.length && res; i++) {
|
|
205
|
-
res = res && truthy(input[i].value());
|
|
206
|
-
}
|
|
207
|
-
return res ? 1. : 0.;
|
|
208
|
-
}
|
|
209
|
-
};
|
|
210
|
-
private static final Operator OR =
|
|
211
|
-
new Operator() {
|
|
212
|
-
@Override
|
|
213
|
-
public double evaluate(Node[] input) {
|
|
214
|
-
boolean res = truthy(input[0].value());
|
|
215
|
-
for (int i = 1; i < input.length && !res; i++) {
|
|
216
|
-
res = res || truthy(input[i].value());
|
|
217
|
-
}
|
|
218
|
-
return res ? 1. : 0.;
|
|
219
|
-
}
|
|
220
|
-
};
|
|
221
|
-
private static final Operator NOT =
|
|
222
|
-
new Operator() {
|
|
223
|
-
@Override
|
|
224
|
-
public double evaluate(Node[] input) {
|
|
225
|
-
return truthy(input[0].value()) ? 0. : 1.;
|
|
226
|
-
}
|
|
227
|
-
};
|
|
228
|
-
private static final Operator DEFINED =
|
|
229
|
-
new Operator() {
|
|
230
|
-
@Override
|
|
231
|
-
public double evaluate(Node[] input) {
|
|
232
|
-
Object res = input[0].value();
|
|
233
|
-
return (res != null && !(res instanceof Double && ((Double) res).isNaN())) ? 1. : 0.;
|
|
234
|
-
}
|
|
235
|
-
};
|
|
236
|
-
|
|
237
|
-
// comparison
|
|
238
|
-
private static final Operator LESS_THAN =
|
|
239
|
-
new CompOperator() {
|
|
240
|
-
@Override
|
|
241
|
-
public boolean eval(Double x, Double y) {
|
|
242
|
-
if (x == null || y == null) {
|
|
243
|
-
return false;
|
|
244
|
-
}
|
|
245
|
-
return x < y;
|
|
246
|
-
}
|
|
247
|
-
};
|
|
248
|
-
private static final Operator EQ =
|
|
249
|
-
new CompOperator() {
|
|
250
|
-
@Override
|
|
251
|
-
public boolean eval(Double x, Double y) {
|
|
252
|
-
if (x == null || y == null) {
|
|
253
|
-
return x == y;
|
|
254
|
-
}
|
|
255
|
-
return x.doubleValue() == y.doubleValue();
|
|
256
|
-
}
|
|
257
|
-
};
|
|
258
|
-
private static final Operator GREATER_THAN =
|
|
259
|
-
new CompOperator() {
|
|
260
|
-
@Override
|
|
261
|
-
public boolean eval(Double x, Double y) {
|
|
262
|
-
if (x == null || y == null) {
|
|
263
|
-
return false;
|
|
264
|
-
}
|
|
265
|
-
return x > y;
|
|
266
|
-
}
|
|
267
|
-
};
|
|
268
|
-
private static final Operator LESS_OR_EQ =
|
|
269
|
-
new CompOperator() {
|
|
270
|
-
@Override
|
|
271
|
-
public boolean eval(Double x, Double y) {
|
|
272
|
-
return x <= y;
|
|
273
|
-
}
|
|
274
|
-
};
|
|
275
|
-
private static final Operator GREATER_OR_EQ =
|
|
276
|
-
new CompOperator() {
|
|
277
|
-
@Override
|
|
278
|
-
public boolean eval(Double x, Double y) {
|
|
279
|
-
return x >= y;
|
|
280
|
-
}
|
|
281
|
-
};
|
|
282
|
-
private static final Operator NEQ =
|
|
283
|
-
new CompOperator() {
|
|
284
|
-
@Override
|
|
285
|
-
public boolean eval(Double x, Double y) {
|
|
286
|
-
if (x == null || y == null) {
|
|
287
|
-
return x == y;
|
|
288
|
-
}
|
|
289
|
-
return x.doubleValue() != y.doubleValue();
|
|
290
|
-
}
|
|
291
|
-
};
|
|
292
|
-
|
|
293
|
-
private final int[] mInputIDs;
|
|
294
|
-
private final Node[] mInputNodes;
|
|
295
|
-
private final Operator mOperator;
|
|
296
|
-
|
|
297
|
-
public OperatorNode(int nodeID, ReadableMap config, NodesManager nodesManager) {
|
|
298
|
-
super(nodeID, config, nodesManager);
|
|
299
|
-
mInputIDs = Utils.processIntArray(config.getArray("input"));
|
|
300
|
-
mInputNodes = new Node[mInputIDs.length];
|
|
301
|
-
|
|
302
|
-
String op = config.getString("op");
|
|
303
|
-
if ("add".equals(op)) {
|
|
304
|
-
mOperator = ADD;
|
|
305
|
-
} else if ("sub".equals(op)) {
|
|
306
|
-
mOperator = SUB;
|
|
307
|
-
} else if ("multiply".equals(op)) {
|
|
308
|
-
mOperator = MULTIPLY;
|
|
309
|
-
} else if ("divide".equals(op)) {
|
|
310
|
-
mOperator = DIVIDE;
|
|
311
|
-
} else if ("pow".equals(op)) {
|
|
312
|
-
mOperator = POW;
|
|
313
|
-
} else if ("modulo".equals(op)) {
|
|
314
|
-
mOperator = MODULO;
|
|
315
|
-
} else if ("sqrt".equals(op)) {
|
|
316
|
-
mOperator = SQRT;
|
|
317
|
-
} else if ("log".equals(op)) {
|
|
318
|
-
mOperator = LOG;
|
|
319
|
-
} else if ("sin".equals(op)) {
|
|
320
|
-
mOperator = SIN;
|
|
321
|
-
} else if ("cos".equals(op)) {
|
|
322
|
-
mOperator = COS;
|
|
323
|
-
} else if ("tan".equals(op)) {
|
|
324
|
-
mOperator = TAN;
|
|
325
|
-
} else if ("acos".equals(op)) {
|
|
326
|
-
mOperator = ACOS;
|
|
327
|
-
} else if ("asin".equals(op)) {
|
|
328
|
-
mOperator = ASIN;
|
|
329
|
-
} else if ("atan".equals(op)) {
|
|
330
|
-
mOperator = ATAN;
|
|
331
|
-
} else if ("exp".equals(op)) {
|
|
332
|
-
mOperator = EXP;
|
|
333
|
-
} else if ("round".equals(op)) {
|
|
334
|
-
mOperator = ROUND;
|
|
335
|
-
} else if ("and".equals(op)) {
|
|
336
|
-
mOperator = AND;
|
|
337
|
-
} else if ("or".equals(op)) {
|
|
338
|
-
mOperator = OR;
|
|
339
|
-
} else if ("not".equals(op)) {
|
|
340
|
-
mOperator = NOT;
|
|
341
|
-
} else if ("defined".equals(op)) {
|
|
342
|
-
mOperator = DEFINED;
|
|
343
|
-
} else if ("lessThan".equals(op)) {
|
|
344
|
-
mOperator = LESS_THAN;
|
|
345
|
-
} else if ("eq".equals(op)) {
|
|
346
|
-
mOperator = EQ;
|
|
347
|
-
} else if ("greaterThan".equals(op)) {
|
|
348
|
-
mOperator = GREATER_THAN;
|
|
349
|
-
} else if ("lessOrEq".equals(op)) {
|
|
350
|
-
mOperator = LESS_OR_EQ;
|
|
351
|
-
} else if ("greaterOrEq".equals(op)) {
|
|
352
|
-
mOperator = GREATER_OR_EQ;
|
|
353
|
-
} else if ("neq".equals(op)) {
|
|
354
|
-
mOperator = NEQ;
|
|
355
|
-
} else if ("abs".equals(op)) {
|
|
356
|
-
mOperator = ABS;
|
|
357
|
-
} else if ("floor".equals(op)) {
|
|
358
|
-
mOperator = FLOOR;
|
|
359
|
-
} else if ("ceil".equals(op)) {
|
|
360
|
-
mOperator = CEIL;
|
|
361
|
-
} else if ("max".equals(op)) {
|
|
362
|
-
mOperator = MAX;
|
|
363
|
-
} else if ("min".equals(op)) {
|
|
364
|
-
mOperator = MIN;
|
|
365
|
-
} else {
|
|
366
|
-
throw new JSApplicationIllegalArgumentException("Unrecognized operator " + op);
|
|
367
|
-
}
|
|
368
|
-
}
|
|
369
|
-
|
|
370
|
-
@Override
|
|
371
|
-
protected Object evaluate() {
|
|
372
|
-
for (int i = 0; i < mInputIDs.length; i++) {
|
|
373
|
-
mInputNodes[i] = mNodesManager.findNodeById(mInputIDs[i], Node.class);
|
|
374
|
-
}
|
|
375
|
-
return mOperator.evaluate(mInputNodes);
|
|
376
|
-
}
|
|
377
|
-
}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
package com.swmansion.reanimated.nodes;
|
|
2
|
-
|
|
3
|
-
import com.facebook.react.bridge.ReadableMap;
|
|
4
|
-
import com.swmansion.reanimated.NodesManager;
|
|
5
|
-
import java.util.Stack;
|
|
6
|
-
|
|
7
|
-
public class ParamNode extends ValueNode {
|
|
8
|
-
|
|
9
|
-
private final Stack<Integer> mArgsStack;
|
|
10
|
-
private String mPrevCallID;
|
|
11
|
-
|
|
12
|
-
public ParamNode(int nodeID, ReadableMap config, NodesManager nodesManager) {
|
|
13
|
-
super(nodeID, config, nodesManager);
|
|
14
|
-
mArgsStack = new Stack<>();
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
@Override
|
|
18
|
-
public void setValue(Object value) {
|
|
19
|
-
Node node = mNodesManager.findNodeById(mArgsStack.peek(), Node.class);
|
|
20
|
-
String callID = mUpdateContext.callID;
|
|
21
|
-
mUpdateContext.callID = mPrevCallID;
|
|
22
|
-
((ValueNode) node).setValue(value);
|
|
23
|
-
mUpdateContext.callID = callID;
|
|
24
|
-
forceUpdateMemoizedValue(value);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
public void beginContext(Integer ref, String prevCallID) {
|
|
28
|
-
mPrevCallID = prevCallID;
|
|
29
|
-
mArgsStack.push(ref);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
public void endContext() {
|
|
33
|
-
mArgsStack.pop();
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
@Override
|
|
37
|
-
protected Object evaluate() {
|
|
38
|
-
String callID = mUpdateContext.callID;
|
|
39
|
-
mUpdateContext.callID = mPrevCallID;
|
|
40
|
-
Node node = mNodesManager.findNodeById(mArgsStack.peek(), Node.class);
|
|
41
|
-
Object val = node.value();
|
|
42
|
-
mUpdateContext.callID = callID;
|
|
43
|
-
return val;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
public void start() {
|
|
47
|
-
Node node = mNodesManager.findNodeById(mArgsStack.peek(), Node.class);
|
|
48
|
-
if (node instanceof ParamNode) {
|
|
49
|
-
((ParamNode) node).start();
|
|
50
|
-
} else {
|
|
51
|
-
((ClockNode) node).start();
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
public void stop() {
|
|
56
|
-
Node node = mNodesManager.findNodeById(mArgsStack.peek(), Node.class);
|
|
57
|
-
if (node instanceof ParamNode) {
|
|
58
|
-
((ParamNode) node).stop();
|
|
59
|
-
} else {
|
|
60
|
-
((ClockNode) node).stop();
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
public boolean isRunning() {
|
|
65
|
-
Node node = mNodesManager.findNodeById(mArgsStack.peek(), Node.class);
|
|
66
|
-
if (node instanceof ParamNode) {
|
|
67
|
-
return ((ParamNode) node).isRunning();
|
|
68
|
-
}
|
|
69
|
-
return ((ClockNode) node).isRunning;
|
|
70
|
-
}
|
|
71
|
-
}
|