react-native-reanimated 3.0.0-rc.9 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Common/cpp/AnimatedSensor/AnimatedSensorModule.cpp +30 -12
- package/Common/cpp/AnimatedSensor/AnimatedSensorModule.h +2 -0
- package/Common/cpp/Fabric/FabricUtils.cpp +3 -107
- package/Common/cpp/Fabric/FabricUtils.h +3 -24
- package/Common/cpp/Fabric/ReanimatedUIManagerBinding.cpp +54 -37
- package/Common/cpp/LayoutAnimations/LayoutAnimationType.h +8 -0
- package/Common/cpp/LayoutAnimations/LayoutAnimationsManager.cpp +81 -26
- package/Common/cpp/LayoutAnimations/LayoutAnimationsManager.h +20 -3
- package/Common/cpp/NativeModules/NativeReanimatedModule.cpp +105 -109
- package/Common/cpp/NativeModules/NativeReanimatedModule.h +19 -12
- package/Common/cpp/NativeModules/NativeReanimatedModuleSpec.cpp +15 -7
- package/Common/cpp/NativeModules/NativeReanimatedModuleSpec.h +6 -2
- package/Common/cpp/ReanimatedRuntime/ReanimatedHermesRuntime.cpp +20 -1
- package/Common/cpp/ReanimatedRuntime/ReanimatedHermesRuntime.h +9 -0
- package/Common/cpp/ReanimatedRuntime/ReanimatedRuntime.cpp +5 -1
- package/Common/cpp/Registries/EventHandlerRegistry.cpp +8 -34
- package/Common/cpp/Registries/EventHandlerRegistry.h +7 -13
- package/Common/cpp/SharedItems/Shareables.cpp +9 -63
- package/Common/cpp/SharedItems/Shareables.h +77 -72
- package/Common/cpp/Tools/CollectionUtils.h +14 -0
- package/Common/cpp/Tools/JsiUtils.cpp +26 -0
- package/Common/cpp/Tools/JsiUtils.h +176 -0
- package/Common/cpp/Tools/PlatformDepMethodsHolder.h +5 -5
- package/Common/cpp/Tools/ReanimatedVersion.cpp +17 -0
- package/Common/cpp/Tools/ReanimatedVersion.h +11 -0
- package/Common/cpp/Tools/RuntimeDecorator.cpp +49 -230
- package/Common/cpp/Tools/RuntimeDecorator.h +0 -2
- package/Common/cpp/Tools/WorkletEventHandler.cpp +3 -2
- package/Common/cpp/Tools/WorkletEventHandler.h +14 -6
- package/RNReanimated.podspec +2 -1
- package/android/CMakeLists.txt +188 -181
- package/android/build.gradle +362 -311
- package/android/proguard-rules.pro +2 -0
- package/android/src/fabric/java/com/swmansion/reanimated/NativeProxy.java +63 -295
- package/android/src/main/cpp/LayoutAnimations.cpp +35 -5
- package/android/src/main/cpp/LayoutAnimations.h +23 -6
- package/android/src/main/cpp/NativeProxy.cpp +143 -98
- package/android/src/main/cpp/NativeProxy.h +22 -28
- package/android/src/main/java/com/swmansion/reanimated/ReanimatedPackage.java +5 -4
- package/android/src/main/java/com/swmansion/reanimated/Utils.java +7 -1
- package/android/src/main/java/com/swmansion/reanimated/keyboardObserver/ReanimatedKeyboardEventListener.java +10 -3
- package/android/src/main/java/com/swmansion/reanimated/layoutReanimation/AnimationsManager.java +218 -35
- package/android/src/main/java/com/swmansion/reanimated/layoutReanimation/LayoutAnimations.java +43 -17
- package/android/src/main/java/com/swmansion/reanimated/layoutReanimation/NativeMethodsHolder.java +6 -2
- package/android/src/main/java/com/swmansion/reanimated/layoutReanimation/SharedElement.java +19 -0
- package/android/src/main/java/com/swmansion/reanimated/layoutReanimation/SharedTransitionManager.java +610 -0
- package/android/src/main/java/com/swmansion/reanimated/layoutReanimation/Snapshot.java +93 -23
- package/android/src/main/java/com/swmansion/reanimated/nativeProxy/AnimationFrameCallback.java +19 -0
- package/android/src/main/java/com/swmansion/reanimated/nativeProxy/EventHandler.java +35 -0
- package/android/src/main/java/com/swmansion/reanimated/nativeProxy/KeyboardEventDataUpdater.java +16 -0
- package/android/src/main/java/com/swmansion/reanimated/nativeProxy/NativeProxyCommon.java +206 -0
- package/android/src/main/java/com/swmansion/reanimated/nativeProxy/SensorSetter.java +17 -0
- package/android/src/main/java/com/swmansion/reanimated/sensor/ReanimatedSensor.java +9 -3
- package/android/src/main/java/com/swmansion/reanimated/sensor/ReanimatedSensorContainer.java +3 -4
- package/android/src/main/java/com/swmansion/reanimated/sensor/ReanimatedSensorListener.java +31 -7
- package/android/src/paper/java/com/swmansion/reanimated/NativeProxy.java +90 -307
- package/android/src/reactNativeVersionPatch/ReanimatedUIManager/70/com/swmansion/reanimated/ReanimatedUIManagerFactory.java +16 -0
- package/android/src/reactNativeVersionPatch/ReanimatedUIManager/latest/com/swmansion/reanimated/ReanimatedUIManagerFactory.java +63 -0
- package/android/src/reactNativeVersionPatch/ReanimatedUIManager/latest/com/swmansion/reanimated/layoutReanimation/ReanimatedUIManager.java +271 -0
- package/android/src/reactNativeVersionPatch/nativeHierarchyManager/latest/com/swmansion/reanimated/layoutReanimation/ReanimatedNativeHierarchyManager.java +76 -20
- package/ios/LayoutReanimation/REAAnimationsManager.h +28 -4
- package/ios/LayoutReanimation/REAAnimationsManager.m +216 -61
- package/ios/LayoutReanimation/REAFrame.h +10 -0
- package/ios/LayoutReanimation/REAFrame.m +15 -0
- package/ios/LayoutReanimation/REAScreensHelper.h +19 -0
- package/ios/LayoutReanimation/REAScreensHelper.m +106 -0
- package/ios/LayoutReanimation/REASharedElement.h +15 -0
- package/ios/LayoutReanimation/REASharedElement.m +16 -0
- package/ios/LayoutReanimation/REASharedTransitionManager.h +17 -0
- package/ios/LayoutReanimation/REASharedTransitionManager.m +632 -0
- package/ios/LayoutReanimation/REASnapshot.h +1 -0
- package/ios/LayoutReanimation/REASnapshot.m +96 -11
- package/ios/LayoutReanimation/REAUIManager.mm +64 -17
- package/ios/REAModule.mm +2 -7
- package/ios/REANodesManager.mm +1 -21
- package/ios/keyboardObserver/REAKeyboardEventObserver.m +72 -36
- package/ios/native/NativeProxy.mm +75 -114
- package/ios/native/REAInitializer.mm +2 -7
- package/ios/native/REAJSIUtils.h +60 -2
- package/ios/sensor/ReanimatedSensor.h +6 -2
- package/ios/sensor/ReanimatedSensor.m +43 -7
- package/ios/sensor/ReanimatedSensorContainer.h +4 -1
- package/ios/sensor/ReanimatedSensorContainer.m +8 -2
- package/lib/commonjs/createAnimatedComponent.js +232 -28
- package/lib/commonjs/createAnimatedComponent.js.map +1 -1
- package/lib/commonjs/reanimated2/Colors.js +43 -22
- package/lib/commonjs/reanimated2/Colors.js.map +1 -1
- package/lib/commonjs/reanimated2/NativeReanimated/NativeReanimated.js +16 -33
- package/lib/commonjs/reanimated2/NativeReanimated/NativeReanimated.js.map +1 -1
- package/lib/commonjs/reanimated2/animation/styleAnimation.js +5 -1
- package/lib/commonjs/reanimated2/animation/styleAnimation.js.map +1 -1
- package/lib/commonjs/reanimated2/animation/util.js +17 -15
- package/lib/commonjs/reanimated2/animation/util.js.map +1 -1
- package/lib/commonjs/reanimated2/commonTypes.js +33 -1
- package/lib/commonjs/reanimated2/commonTypes.js.map +1 -1
- package/lib/commonjs/reanimated2/core.js +33 -14
- package/lib/commonjs/reanimated2/core.js.map +1 -1
- package/lib/commonjs/reanimated2/frameCallback/FrameCallbackRegistryUI.js +2 -2
- package/lib/commonjs/reanimated2/frameCallback/FrameCallbackRegistryUI.js.map +1 -1
- package/lib/commonjs/reanimated2/globals.d.js.map +1 -1
- package/lib/commonjs/reanimated2/hook/index.js +0 -6
- package/lib/commonjs/reanimated2/hook/index.js.map +1 -1
- package/lib/commonjs/reanimated2/hook/useAnimatedKeyboard.js +5 -2
- package/lib/commonjs/reanimated2/hook/useAnimatedKeyboard.js.map +1 -1
- package/lib/commonjs/reanimated2/hook/useAnimatedReaction.js +13 -1
- package/lib/commonjs/reanimated2/hook/useAnimatedReaction.js.map +1 -1
- package/lib/commonjs/reanimated2/hook/useAnimatedRef.js +1 -1
- package/lib/commonjs/reanimated2/hook/useAnimatedRef.js.map +1 -1
- package/lib/commonjs/reanimated2/hook/useAnimatedSensor.js +89 -16
- package/lib/commonjs/reanimated2/hook/useAnimatedSensor.js.map +1 -1
- package/lib/commonjs/reanimated2/hook/useAnimatedStyle.js +43 -40
- package/lib/commonjs/reanimated2/hook/useAnimatedStyle.js.map +1 -1
- package/lib/commonjs/reanimated2/hook/useDerivedValue.js +13 -1
- package/lib/commonjs/reanimated2/hook/useDerivedValue.js.map +1 -1
- package/lib/commonjs/reanimated2/hook/useScrollViewOffset.js +2 -2
- package/lib/commonjs/reanimated2/hook/useScrollViewOffset.js.map +1 -1
- package/lib/commonjs/reanimated2/hook/utils.js +18 -65
- package/lib/commonjs/reanimated2/hook/utils.js.map +1 -1
- package/lib/commonjs/reanimated2/index.js +13 -0
- package/lib/commonjs/reanimated2/index.js.map +1 -1
- package/lib/commonjs/reanimated2/initializers.js +71 -32
- package/lib/commonjs/reanimated2/initializers.js.map +1 -1
- package/lib/commonjs/reanimated2/interpolateColor.js +96 -19
- package/lib/commonjs/reanimated2/interpolateColor.js.map +1 -1
- package/lib/commonjs/reanimated2/jestUtils.js +1 -1
- package/lib/commonjs/reanimated2/jestUtils.js.map +1 -1
- package/lib/commonjs/reanimated2/js-reanimated/JSReanimated.js +103 -13
- package/lib/commonjs/reanimated2/js-reanimated/JSReanimated.js.map +1 -1
- package/lib/commonjs/reanimated2/js-reanimated/Mapper.js +22 -0
- package/lib/commonjs/reanimated2/js-reanimated/Mapper.js.map +1 -1
- package/lib/commonjs/reanimated2/js-reanimated/WebSensor.js +2 -0
- package/lib/commonjs/reanimated2/js-reanimated/WebSensor.js.map +1 -0
- package/lib/commonjs/reanimated2/js-reanimated/commonTypes.js.map +1 -1
- package/lib/commonjs/reanimated2/js-reanimated/global.js +0 -2
- package/lib/commonjs/reanimated2/js-reanimated/global.js.map +1 -1
- package/lib/commonjs/reanimated2/js-reanimated/index.js +0 -1
- package/lib/commonjs/reanimated2/js-reanimated/index.js.map +1 -1
- package/lib/commonjs/reanimated2/layoutReanimation/animationBuilder/commonTypes.js +11 -0
- package/lib/commonjs/reanimated2/layoutReanimation/animationBuilder/commonTypes.js.map +1 -1
- package/lib/commonjs/reanimated2/layoutReanimation/animationBuilder/index.js +8 -0
- package/lib/commonjs/reanimated2/layoutReanimation/animationBuilder/index.js.map +1 -1
- package/lib/commonjs/reanimated2/layoutReanimation/animationsManager.js +17 -9
- package/lib/commonjs/reanimated2/layoutReanimation/animationsManager.js.map +1 -1
- package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Bounce.js +16 -23
- package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Bounce.js.map +1 -1
- package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Lightspeed.js +8 -14
- package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Lightspeed.js.map +1 -1
- package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Roll.js +8 -14
- package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Roll.js.map +1 -1
- package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Slide.js +8 -15
- package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Slide.js.map +1 -1
- package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Zoom.js +16 -23
- package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Zoom.js.map +1 -1
- package/lib/commonjs/reanimated2/layoutReanimation/index.js +13 -0
- package/lib/commonjs/reanimated2/layoutReanimation/index.js.map +1 -1
- package/lib/commonjs/reanimated2/layoutReanimation/sharedTransitions/index.js +94 -0
- package/lib/commonjs/reanimated2/layoutReanimation/sharedTransitions/index.js.map +1 -0
- package/lib/commonjs/reanimated2/mappers.js +18 -6
- package/lib/commonjs/reanimated2/mappers.js.map +1 -1
- package/lib/commonjs/reanimated2/mock.js +20 -1
- package/lib/commonjs/reanimated2/mock.js.map +1 -1
- package/lib/commonjs/reanimated2/mutables.js +4 -2
- package/lib/commonjs/reanimated2/mutables.js.map +1 -1
- package/lib/commonjs/reanimated2/platform-specific/checkVersion.js +42 -0
- package/lib/commonjs/reanimated2/platform-specific/checkVersion.js.map +1 -0
- package/lib/commonjs/reanimated2/platform-specific/checkVersion.web.js +15 -0
- package/lib/commonjs/reanimated2/platform-specific/checkVersion.web.js.map +1 -0
- package/lib/commonjs/reanimated2/pluginUtils.js +11 -0
- package/lib/commonjs/reanimated2/pluginUtils.js.map +1 -0
- package/lib/commonjs/reanimated2/shareables.js +36 -15
- package/lib/commonjs/reanimated2/shareables.js.map +1 -1
- package/lib/commonjs/reanimated2/threads.js +114 -4
- package/lib/commonjs/reanimated2/threads.js.map +1 -1
- package/lib/commonjs/reanimated2/utils.js +7 -0
- package/lib/commonjs/reanimated2/utils.js.map +1 -1
- package/lib/commonjs/reanimated2/valueSetter.js +1 -3
- package/lib/commonjs/reanimated2/valueSetter.js.map +1 -1
- package/lib/module/createAnimatedComponent.js +229 -29
- package/lib/module/createAnimatedComponent.js.map +1 -1
- package/lib/module/reanimated2/Colors.js +35 -19
- package/lib/module/reanimated2/Colors.js.map +1 -1
- package/lib/module/reanimated2/NativeReanimated/NativeReanimated.js +16 -32
- package/lib/module/reanimated2/NativeReanimated/NativeReanimated.js.map +1 -1
- package/lib/module/reanimated2/animation/styleAnimation.js +5 -1
- package/lib/module/reanimated2/animation/styleAnimation.js.map +1 -1
- package/lib/module/reanimated2/animation/util.js +17 -16
- package/lib/module/reanimated2/animation/util.js.map +1 -1
- package/lib/module/reanimated2/commonTypes.js +29 -0
- package/lib/module/reanimated2/commonTypes.js.map +1 -1
- package/lib/module/reanimated2/core.js +32 -7
- package/lib/module/reanimated2/core.js.map +1 -1
- package/lib/module/reanimated2/frameCallback/FrameCallbackRegistryUI.js +2 -2
- package/lib/module/reanimated2/frameCallback/FrameCallbackRegistryUI.js.map +1 -1
- package/lib/module/reanimated2/globals.d.js.map +1 -1
- package/lib/module/reanimated2/hook/index.js +1 -1
- package/lib/module/reanimated2/hook/index.js.map +1 -1
- package/lib/module/reanimated2/hook/useAnimatedKeyboard.js +5 -2
- package/lib/module/reanimated2/hook/useAnimatedKeyboard.js.map +1 -1
- package/lib/module/reanimated2/hook/useAnimatedReaction.js +12 -1
- package/lib/module/reanimated2/hook/useAnimatedReaction.js.map +1 -1
- package/lib/module/reanimated2/hook/useAnimatedRef.js +2 -2
- package/lib/module/reanimated2/hook/useAnimatedRef.js.map +1 -1
- package/lib/module/reanimated2/hook/useAnimatedSensor.js +88 -13
- package/lib/module/reanimated2/hook/useAnimatedSensor.js.map +1 -1
- package/lib/module/reanimated2/hook/useAnimatedStyle.js +46 -43
- package/lib/module/reanimated2/hook/useAnimatedStyle.js.map +1 -1
- package/lib/module/reanimated2/hook/useDerivedValue.js +12 -1
- package/lib/module/reanimated2/hook/useDerivedValue.js.map +1 -1
- package/lib/module/reanimated2/hook/useScrollViewOffset.js +2 -2
- package/lib/module/reanimated2/hook/useScrollViewOffset.js.map +1 -1
- package/lib/module/reanimated2/hook/utils.js +17 -60
- package/lib/module/reanimated2/hook/utils.js.map +1 -1
- package/lib/module/reanimated2/index.js +1 -0
- package/lib/module/reanimated2/index.js.map +1 -1
- package/lib/module/reanimated2/initializers.js +72 -33
- package/lib/module/reanimated2/initializers.js.map +1 -1
- package/lib/module/reanimated2/interpolateColor.js +96 -19
- package/lib/module/reanimated2/interpolateColor.js.map +1 -1
- package/lib/module/reanimated2/jestUtils.js +1 -1
- package/lib/module/reanimated2/jestUtils.js.map +1 -1
- package/lib/module/reanimated2/js-reanimated/JSReanimated.js +103 -13
- package/lib/module/reanimated2/js-reanimated/JSReanimated.js.map +1 -1
- package/lib/module/reanimated2/js-reanimated/Mapper.js +21 -0
- package/lib/module/reanimated2/js-reanimated/Mapper.js.map +1 -1
- package/lib/module/reanimated2/js-reanimated/WebSensor.js +2 -0
- package/lib/module/reanimated2/js-reanimated/WebSensor.js.map +1 -0
- package/lib/module/reanimated2/js-reanimated/commonTypes.js.map +1 -1
- package/lib/module/reanimated2/js-reanimated/global.js +0 -2
- package/lib/module/reanimated2/js-reanimated/global.js.map +1 -1
- package/lib/module/reanimated2/js-reanimated/index.js +0 -1
- package/lib/module/reanimated2/js-reanimated/index.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/animationBuilder/commonTypes.js +9 -1
- package/lib/module/reanimated2/layoutReanimation/animationBuilder/commonTypes.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/animationBuilder/index.js +1 -0
- package/lib/module/reanimated2/layoutReanimation/animationBuilder/index.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/animationsManager.js +15 -8
- package/lib/module/reanimated2/layoutReanimation/animationsManager.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Bounce.js +16 -21
- package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Bounce.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Lightspeed.js +8 -12
- package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Lightspeed.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Roll.js +8 -12
- package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Roll.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Slide.js +8 -13
- package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Slide.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Zoom.js +16 -21
- package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Zoom.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/index.js +1 -0
- package/lib/module/reanimated2/layoutReanimation/index.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/sharedTransitions/index.js +82 -0
- package/lib/module/reanimated2/layoutReanimation/sharedTransitions/index.js.map +1 -0
- package/lib/module/reanimated2/mappers.js +16 -6
- package/lib/module/reanimated2/mappers.js.map +1 -1
- package/lib/module/reanimated2/mock.js +20 -1
- package/lib/module/reanimated2/mock.js.map +1 -1
- package/lib/module/reanimated2/mutables.js +4 -2
- package/lib/module/reanimated2/mutables.js.map +1 -1
- package/lib/module/reanimated2/platform-specific/checkVersion.js +35 -0
- package/lib/module/reanimated2/platform-specific/checkVersion.js.map +1 -0
- package/lib/module/reanimated2/platform-specific/checkVersion.web.js +8 -0
- package/lib/module/reanimated2/platform-specific/checkVersion.web.js.map +1 -0
- package/lib/module/reanimated2/pluginUtils.js +4 -0
- package/lib/module/reanimated2/pluginUtils.js.map +1 -0
- package/lib/module/reanimated2/shareables.js +36 -12
- package/lib/module/reanimated2/shareables.js.map +1 -1
- package/lib/module/reanimated2/threads.js +105 -4
- package/lib/module/reanimated2/threads.js.map +1 -1
- package/lib/module/reanimated2/utils.js +5 -0
- package/lib/module/reanimated2/utils.js.map +1 -1
- package/lib/module/reanimated2/valueSetter.js +1 -2
- package/lib/module/reanimated2/valueSetter.js.map +1 -1
- package/package.json +10 -10
- package/{plugin.js → plugin/index.js} +128 -249
- package/react-native-reanimated.d.ts +57 -10
- package/scripts/reanimated_utils.rb +15 -2
- package/src/createAnimatedComponent.tsx +238 -28
- package/src/reanimated2/Colors.ts +38 -11
- package/src/reanimated2/NativeReanimated/NativeReanimated.ts +52 -39
- package/src/reanimated2/animation/styleAnimation.ts +8 -1
- package/src/reanimated2/animation/util.ts +29 -16
- package/src/reanimated2/commonTypes.ts +28 -1
- package/src/reanimated2/core.ts +42 -9
- package/src/reanimated2/frameCallback/FrameCallbackRegistryUI.ts +2 -2
- package/src/reanimated2/globals.d.ts +12 -15
- package/src/reanimated2/hook/index.ts +1 -1
- package/src/reanimated2/hook/useAnimatedKeyboard.ts +10 -4
- package/src/reanimated2/hook/useAnimatedReaction.ts +12 -5
- package/src/reanimated2/hook/useAnimatedRef.ts +1 -4
- package/src/reanimated2/hook/useAnimatedSensor.ts +88 -11
- package/src/reanimated2/hook/useAnimatedStyle.ts +44 -36
- package/src/reanimated2/hook/useDerivedValue.ts +8 -1
- package/src/reanimated2/hook/useScrollViewOffset.ts +2 -2
- package/src/reanimated2/hook/utils.ts +15 -61
- package/src/reanimated2/index.ts +1 -0
- package/src/reanimated2/initializers.ts +76 -35
- package/src/reanimated2/interpolateColor.ts +104 -20
- package/src/reanimated2/jestUtils.ts +1 -1
- package/src/reanimated2/js-reanimated/JSReanimated.ts +98 -15
- package/src/reanimated2/js-reanimated/Mapper.ts +32 -0
- package/src/reanimated2/js-reanimated/WebSensor.ts +34 -0
- package/src/reanimated2/js-reanimated/commonTypes.ts +0 -1
- package/src/reanimated2/js-reanimated/global.ts +0 -1
- package/src/reanimated2/js-reanimated/index.ts +0 -1
- package/src/reanimated2/layoutReanimation/animationBuilder/commonTypes.ts +13 -1
- package/src/reanimated2/layoutReanimation/animationBuilder/index.ts +1 -0
- package/src/reanimated2/layoutReanimation/animationsManager.ts +17 -9
- package/src/reanimated2/layoutReanimation/defaultAnimations/Bounce.ts +16 -19
- package/src/reanimated2/layoutReanimation/defaultAnimations/Lightspeed.ts +14 -11
- package/src/reanimated2/layoutReanimation/defaultAnimations/Roll.ts +21 -11
- package/src/reanimated2/layoutReanimation/defaultAnimations/Slide.ts +32 -11
- package/src/reanimated2/layoutReanimation/defaultAnimations/Zoom.ts +36 -19
- package/src/reanimated2/layoutReanimation/index.ts +1 -0
- package/src/reanimated2/layoutReanimation/sharedTransitions/index.ts +87 -0
- package/src/reanimated2/mappers.ts +17 -6
- package/src/reanimated2/mock.ts +24 -1
- package/src/reanimated2/mutables.ts +2 -0
- package/src/reanimated2/platform-specific/checkVersion.ts +39 -0
- package/src/reanimated2/platform-specific/checkVersion.web.ts +6 -0
- package/src/reanimated2/pluginUtils.ts +8 -0
- package/src/reanimated2/shareables.ts +45 -16
- package/src/reanimated2/threads.ts +103 -1
- package/src/reanimated2/utils.ts +6 -0
- package/src/reanimated2/valueSetter.ts +1 -2
- package/lib/commonjs/reanimated2/time.js +0 -55
- package/lib/commonjs/reanimated2/time.js.map +0 -1
- package/lib/module/reanimated2/time.js +0 -37
- package/lib/module/reanimated2/time.js.map +0 -1
- package/src/reanimated2/time.ts +0 -30
- /package/android/src/{main/java → reactNativeVersionPatch/ReanimatedUIManager/70}/com/swmansion/reanimated/layoutReanimation/ReanimatedUIManager.java +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["IN_STYLE_UPDATER","initialUpdaterRun","updater","result","recognizePrefixSuffix","value","match","Error","prefix","suffix","number","strippedValue","parseFloat","decorateAnimation","animation","isHigherOrder","baseOnStart","onStart","baseOnFrame","onFrame","animationCopy","Object","assign","callback","prefNumberSuffOnStart","timestamp","previousAnimation","__prefix","__suffix","strippedCurrent","strippedToValue","toValue","current","startValue","paPrefix","paSuffix","paStrippedValue","prefNumberSuffOnFrame","res","tab","colorOnStart","HSVAValue","HSVACurrent","HSVAToValue","isColor","convertToHSVA","forEach","i","index","undefined","push","toRGBA","colorOnFrame","finished","arrayOnStart","v","arrayOnFrame","Array","isArray","defineAnimation","starting","factory","create","_WORKLET","NativeReanimatedModule","native","cancelAnimation","sharedValue","withStartValue"],"sources":["util.ts"],"sourcesContent":["import {\n HigherOrderAnimation,\n NextAnimation,\n DelayAnimation,\n RepeatAnimation,\n SequenceAnimation,\n StyleLayoutAnimation,\n} from './commonTypes';\n/* global _WORKLET */\nimport { ParsedColorArray, convertToHSVA, isColor, toRGBA } from '../Colors';\n\nimport {\n AnimatedStyle,\n SharedValue,\n AnimatableValue,\n Animation,\n AnimationObject,\n Timestamp,\n} from '../commonTypes';\nimport NativeReanimatedModule from '../NativeReanimated';\n\nlet IN_STYLE_UPDATER = false;\n\nexport type UserUpdater = () => AnimatedStyle;\n\nexport function initialUpdaterRun<T>(updater: () => T): T {\n IN_STYLE_UPDATER = true;\n const result = updater();\n IN_STYLE_UPDATER = false;\n return result;\n}\n\ninterface RecognizedPrefixSuffix {\n prefix?: string;\n suffix?: string;\n strippedValue: number;\n}\n\nfunction recognizePrefixSuffix(value: string | number): RecognizedPrefixSuffix {\n 'worklet';\n if (typeof value === 'string') {\n const match = value.match(\n /([A-Za-z]*)(-?\\d*\\.?\\d*)([eE][-+]?[0-9]+)?([A-Za-z%]*)/\n );\n if (!match) {\n throw Error(\n \"Couldn't parse animation value. Check if there isn't any typo.\"\n );\n }\n const prefix = match[1];\n const suffix = match[4];\n // number with scientific notation\n const number = match[2] + (match[3] ?? '');\n return { prefix, suffix, strippedValue: parseFloat(number) };\n } else {\n return { strippedValue: value };\n }\n}\n\nfunction decorateAnimation<T extends AnimationObject | StyleLayoutAnimation>(\n animation: T\n): void {\n 'worklet';\n if ((animation as HigherOrderAnimation).isHigherOrder) {\n return;\n }\n\n const baseOnStart = (animation as Animation<AnimationObject>).onStart;\n const baseOnFrame = (animation as Animation<AnimationObject>).onFrame;\n const animationCopy = Object.assign({}, animation);\n delete animationCopy.callback;\n\n const prefNumberSuffOnStart = (\n animation: Animation<AnimationObject>,\n value: string | number,\n timestamp: number,\n previousAnimation: Animation<AnimationObject>\n ) => {\n // recognize prefix, suffix, and updates stripped value on animation start\n const { prefix, suffix, strippedValue } = recognizePrefixSuffix(value);\n animation.__prefix = prefix;\n animation.__suffix = suffix;\n animation.strippedCurrent = strippedValue;\n const { strippedValue: strippedToValue } = recognizePrefixSuffix(\n animation.toValue as string | number\n );\n animation.current = strippedValue;\n animation.startValue = strippedValue;\n animation.toValue = strippedToValue;\n if (previousAnimation && previousAnimation !== animation) {\n const {\n prefix: paPrefix,\n suffix: paSuffix,\n strippedValue: paStrippedValue,\n } = recognizePrefixSuffix(previousAnimation.current as string | number);\n previousAnimation.current = paStrippedValue;\n previousAnimation.__prefix = paPrefix;\n previousAnimation.__suffix = paSuffix;\n }\n\n baseOnStart(animation, strippedValue, timestamp, previousAnimation);\n\n animation.current =\n (animation.__prefix ?? '') +\n animation.current +\n (animation.__suffix ?? '');\n\n if (previousAnimation && previousAnimation !== animation) {\n previousAnimation.current =\n (previousAnimation.__prefix ?? '') +\n previousAnimation.current +\n (previousAnimation.__suffix ?? '');\n }\n };\n const prefNumberSuffOnFrame = (\n animation: Animation<AnimationObject>,\n timestamp: number\n ) => {\n animation.current = animation.strippedCurrent;\n const res = baseOnFrame(animation, timestamp);\n animation.strippedCurrent = animation.current;\n animation.current =\n (animation.__prefix ?? '') +\n animation.current +\n (animation.__suffix ?? '');\n return res;\n };\n\n const tab = ['H', 'S', 'V', 'A'];\n const colorOnStart = (\n animation: Animation<AnimationObject>,\n value: string | number,\n timestamp: Timestamp,\n previousAnimation: Animation<AnimationObject>\n ): void => {\n let HSVAValue: ParsedColorArray;\n let HSVACurrent: ParsedColorArray;\n let HSVAToValue: ParsedColorArray;\n const res: Array<number> = [];\n if (isColor(value)) {\n HSVACurrent = convertToHSVA(animation.current);\n HSVAValue = convertToHSVA(value);\n if (animation.toValue) {\n HSVAToValue = convertToHSVA(animation.toValue);\n }\n }\n tab.forEach((i, index) => {\n animation[i] = Object.assign({}, animationCopy);\n animation[i].current = HSVACurrent[index];\n animation[i].toValue = HSVAToValue ? HSVAToValue[index] : undefined;\n animation[i].onStart(\n animation[i],\n HSVAValue[index],\n timestamp,\n previousAnimation ? previousAnimation[i] : undefined\n );\n res.push(animation[i].current);\n });\n\n animation.current = toRGBA(res as ParsedColorArray);\n };\n\n const colorOnFrame = (\n animation: Animation<AnimationObject>,\n timestamp: Timestamp\n ): boolean => {\n const HSVACurrent = convertToHSVA(animation.current);\n const res: Array<number> = [];\n let finished = true;\n tab.forEach((i, index) => {\n animation[i].current = HSVACurrent[index];\n // @ts-ignore: disable-next-line\n finished &= animation[i].onFrame(animation[i], timestamp);\n res.push(animation[i].current);\n });\n\n animation.current = toRGBA(res as ParsedColorArray);\n return finished;\n };\n\n const arrayOnStart = (\n animation: Animation<AnimationObject>,\n value: Array<number>,\n timestamp: Timestamp,\n previousAnimation: Animation<AnimationObject>\n ): void => {\n value.forEach((v, i) => {\n animation[i] = Object.assign({}, animationCopy);\n animation[i].current = v;\n animation[i].toValue = (animation.toValue as Array<number>)[i];\n animation[i].onStart(\n animation[i],\n v,\n timestamp,\n previousAnimation ? previousAnimation[i] : undefined\n );\n });\n\n animation.current = value;\n };\n\n const arrayOnFrame = (\n animation: Animation<AnimationObject>,\n timestamp: Timestamp\n ): boolean => {\n let finished = true;\n (animation.current as Array<number>).forEach((v, i) => {\n // @ts-ignore: disable-next-line\n finished &= animation[i].onFrame(animation[i], timestamp);\n (animation.current as Array<number>)[i] = animation[i].current;\n });\n\n return finished;\n };\n\n animation.onStart = (\n animation: Animation<AnimationObject>,\n value: number,\n timestamp: Timestamp,\n previousAnimation: Animation<AnimationObject>\n ) => {\n if (isColor(value)) {\n colorOnStart(animation, value, timestamp, previousAnimation);\n animation.onFrame = colorOnFrame;\n return;\n } else if (Array.isArray(value)) {\n arrayOnStart(animation, value, timestamp, previousAnimation);\n animation.onFrame = arrayOnFrame;\n return;\n } else if (typeof value === 'string') {\n prefNumberSuffOnStart(animation, value, timestamp, previousAnimation);\n animation.onFrame = prefNumberSuffOnFrame;\n return;\n }\n baseOnStart(animation, value, timestamp, previousAnimation);\n };\n}\n\ntype AnimationToDecoration<T extends AnimationObject | StyleLayoutAnimation> =\n T extends StyleLayoutAnimation\n ? Record<string, unknown>\n : T extends DelayAnimation\n ? NextAnimation<DelayAnimation>\n : T extends RepeatAnimation\n ? NextAnimation<RepeatAnimation>\n : T extends SequenceAnimation\n ? NextAnimation<SequenceAnimation>\n : AnimatableValue | T;\n\nexport function defineAnimation<\n T extends AnimationObject | StyleLayoutAnimation\n>(starting: AnimationToDecoration<T>, factory: () => T): T {\n 'worklet';\n if (IN_STYLE_UPDATER) {\n return starting as T;\n }\n const create = () => {\n 'worklet';\n const animation = factory();\n decorateAnimation<T>(animation);\n return animation;\n };\n\n if (_WORKLET || !NativeReanimatedModule.native) {\n return create();\n }\n // @ts-ignore: eslint-disable-line\n return create;\n}\n\nexport function cancelAnimation<T>(sharedValue: SharedValue<T>): void {\n 'worklet';\n // setting the current value cancels the animation if one is currently running\n sharedValue.value = sharedValue.value; // eslint-disable-line no-self-assign\n}\n\n// TODO it should work only if there was no animation before.\nexport function withStartValue(\n startValue: AnimatableValue,\n animation: NextAnimation<AnimationObject>\n): Animation<AnimationObject> {\n 'worklet';\n return defineAnimation(startValue, () => {\n 'worklet';\n if (!_WORKLET && typeof animation === 'function') {\n animation = animation();\n }\n (animation as Animation<AnimationObject>).current = startValue;\n return animation as Animation<AnimationObject>;\n });\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["IN_STYLE_UPDATER","initialUpdaterRun","updater","result","recognizePrefixSuffix","value","match","Error","prefix","suffix","number","strippedValue","parseFloat","decorateAnimation","animation","isHigherOrder","baseOnStart","onStart","baseOnFrame","onFrame","animationCopy","Object","assign","callback","prefNumberSuffOnStart","timestamp","previousAnimation","__prefix","__suffix","strippedCurrent","strippedToValue","toValue","current","startValue","paPrefix","paSuffix","paStrippedValue","prefNumberSuffOnFrame","res","tab","colorOnStart","RGBAValue","RGBACurrent","RGBAToValue","isColor","toLinearSpace","convertToRGBA","forEach","i","index","undefined","push","rgbaArrayToRGBAColor","toGammaSpace","colorOnFrame","finished","arrayOnStart","v","arrayOnFrame","Array","isArray","IS_NATIVE","NativeReanimatedModule","native","defineAnimation","starting","factory","create","_WORKLET","cancelAnimation","sharedValue","withStartValue"],"sources":["util.ts"],"sourcesContent":["import {\n HigherOrderAnimation,\n NextAnimation,\n DelayAnimation,\n RepeatAnimation,\n SequenceAnimation,\n StyleLayoutAnimation,\n} from './commonTypes';\n/* global _WORKLET */\nimport {\n ParsedColorArray,\n isColor,\n convertToRGBA,\n rgbaArrayToRGBAColor,\n toGammaSpace,\n toLinearSpace,\n} from '../Colors';\n\nimport {\n AnimatedStyle,\n SharedValue,\n AnimatableValue,\n Animation,\n AnimationObject,\n Timestamp,\n} from '../commonTypes';\nimport NativeReanimatedModule from '../NativeReanimated';\n\nlet IN_STYLE_UPDATER = false;\n\nexport type UserUpdater = () => AnimatedStyle;\n\nexport function initialUpdaterRun<T>(updater: () => T): T {\n IN_STYLE_UPDATER = true;\n const result = updater();\n IN_STYLE_UPDATER = false;\n return result;\n}\n\ninterface RecognizedPrefixSuffix {\n prefix?: string;\n suffix?: string;\n strippedValue: number;\n}\n\nfunction recognizePrefixSuffix(value: string | number): RecognizedPrefixSuffix {\n 'worklet';\n if (typeof value === 'string') {\n const match = value.match(\n /([A-Za-z]*)(-?\\d*\\.?\\d*)([eE][-+]?[0-9]+)?([A-Za-z%]*)/\n );\n if (!match) {\n throw Error(\n \"Couldn't parse animation value. Check if there isn't any typo.\"\n );\n }\n const prefix = match[1];\n const suffix = match[4];\n // number with scientific notation\n const number = match[2] + (match[3] ?? '');\n return { prefix, suffix, strippedValue: parseFloat(number) };\n } else {\n return { strippedValue: value };\n }\n}\n\nfunction decorateAnimation<T extends AnimationObject | StyleLayoutAnimation>(\n animation: T\n): void {\n 'worklet';\n if ((animation as HigherOrderAnimation).isHigherOrder) {\n return;\n }\n\n const baseOnStart = (animation as Animation<AnimationObject>).onStart;\n const baseOnFrame = (animation as Animation<AnimationObject>).onFrame;\n const animationCopy = Object.assign({}, animation);\n delete animationCopy.callback;\n\n const prefNumberSuffOnStart = (\n animation: Animation<AnimationObject>,\n value: string | number,\n timestamp: number,\n previousAnimation: Animation<AnimationObject>\n ) => {\n // recognize prefix, suffix, and updates stripped value on animation start\n const { prefix, suffix, strippedValue } = recognizePrefixSuffix(value);\n animation.__prefix = prefix;\n animation.__suffix = suffix;\n animation.strippedCurrent = strippedValue;\n const { strippedValue: strippedToValue } = recognizePrefixSuffix(\n animation.toValue as string | number\n );\n animation.current = strippedValue;\n animation.startValue = strippedValue;\n animation.toValue = strippedToValue;\n if (previousAnimation && previousAnimation !== animation) {\n const {\n prefix: paPrefix,\n suffix: paSuffix,\n strippedValue: paStrippedValue,\n } = recognizePrefixSuffix(previousAnimation.current as string | number);\n previousAnimation.current = paStrippedValue;\n previousAnimation.__prefix = paPrefix;\n previousAnimation.__suffix = paSuffix;\n }\n\n baseOnStart(animation, strippedValue, timestamp, previousAnimation);\n\n animation.current =\n (animation.__prefix ?? '') +\n animation.current +\n (animation.__suffix ?? '');\n\n if (previousAnimation && previousAnimation !== animation) {\n previousAnimation.current =\n (previousAnimation.__prefix ?? '') +\n previousAnimation.current +\n (previousAnimation.__suffix ?? '');\n }\n };\n const prefNumberSuffOnFrame = (\n animation: Animation<AnimationObject>,\n timestamp: number\n ) => {\n animation.current = animation.strippedCurrent;\n const res = baseOnFrame(animation, timestamp);\n animation.strippedCurrent = animation.current;\n animation.current =\n (animation.__prefix ?? '') +\n animation.current +\n (animation.__suffix ?? '');\n return res;\n };\n\n const tab = ['R', 'G', 'B', 'A'];\n const colorOnStart = (\n animation: Animation<AnimationObject>,\n value: string | number,\n timestamp: Timestamp,\n previousAnimation: Animation<AnimationObject>\n ): void => {\n let RGBAValue: ParsedColorArray;\n let RGBACurrent: ParsedColorArray;\n let RGBAToValue: ParsedColorArray;\n const res: Array<number> = [];\n if (isColor(value)) {\n RGBACurrent = toLinearSpace(convertToRGBA(animation.current));\n RGBAValue = toLinearSpace(convertToRGBA(value));\n if (animation.toValue) {\n RGBAToValue = toLinearSpace(convertToRGBA(animation.toValue));\n }\n }\n tab.forEach((i, index) => {\n animation[i] = Object.assign({}, animationCopy);\n animation[i].current = RGBACurrent[index];\n animation[i].toValue = RGBAToValue ? RGBAToValue[index] : undefined;\n animation[i].onStart(\n animation[i],\n RGBAValue[index],\n timestamp,\n previousAnimation ? previousAnimation[i] : undefined\n );\n res.push(animation[i].current);\n });\n\n animation.current = rgbaArrayToRGBAColor(\n toGammaSpace(res as ParsedColorArray)\n );\n };\n\n const colorOnFrame = (\n animation: Animation<AnimationObject>,\n timestamp: Timestamp\n ): boolean => {\n const RGBACurrent = toLinearSpace(convertToRGBA(animation.current));\n const res: Array<number> = [];\n let finished = true;\n tab.forEach((i, index) => {\n animation[i].current = RGBACurrent[index];\n // @ts-ignore: disable-next-line\n finished &= animation[i].onFrame(animation[i], timestamp);\n res.push(animation[i].current);\n });\n\n animation.current = rgbaArrayToRGBAColor(\n toGammaSpace(res as ParsedColorArray)\n );\n return finished;\n };\n\n const arrayOnStart = (\n animation: Animation<AnimationObject>,\n value: Array<number>,\n timestamp: Timestamp,\n previousAnimation: Animation<AnimationObject>\n ): void => {\n value.forEach((v, i) => {\n animation[i] = Object.assign({}, animationCopy);\n animation[i].current = v;\n animation[i].toValue = (animation.toValue as Array<number>)[i];\n animation[i].onStart(\n animation[i],\n v,\n timestamp,\n previousAnimation ? previousAnimation[i] : undefined\n );\n });\n\n animation.current = value;\n };\n\n const arrayOnFrame = (\n animation: Animation<AnimationObject>,\n timestamp: Timestamp\n ): boolean => {\n let finished = true;\n (animation.current as Array<number>).forEach((v, i) => {\n // @ts-ignore: disable-next-line\n finished &= animation[i].onFrame(animation[i], timestamp);\n (animation.current as Array<number>)[i] = animation[i].current;\n });\n\n return finished;\n };\n\n animation.onStart = (\n animation: Animation<AnimationObject>,\n value: number,\n timestamp: Timestamp,\n previousAnimation: Animation<AnimationObject>\n ) => {\n if (isColor(value)) {\n colorOnStart(animation, value, timestamp, previousAnimation);\n animation.onFrame = colorOnFrame;\n return;\n } else if (Array.isArray(value)) {\n arrayOnStart(animation, value, timestamp, previousAnimation);\n animation.onFrame = arrayOnFrame;\n return;\n } else if (typeof value === 'string') {\n prefNumberSuffOnStart(animation, value, timestamp, previousAnimation);\n animation.onFrame = prefNumberSuffOnFrame;\n return;\n }\n baseOnStart(animation, value, timestamp, previousAnimation);\n };\n}\n\ntype AnimationToDecoration<T extends AnimationObject | StyleLayoutAnimation> =\n T extends StyleLayoutAnimation\n ? Record<string, unknown>\n : T extends DelayAnimation\n ? NextAnimation<DelayAnimation>\n : T extends RepeatAnimation\n ? NextAnimation<RepeatAnimation>\n : T extends SequenceAnimation\n ? NextAnimation<SequenceAnimation>\n : AnimatableValue | T;\n\nconst IS_NATIVE = NativeReanimatedModule.native;\n\nexport function defineAnimation<\n T extends AnimationObject | StyleLayoutAnimation\n>(starting: AnimationToDecoration<T>, factory: () => T): T {\n 'worklet';\n if (IN_STYLE_UPDATER) {\n return starting as T;\n }\n const create = () => {\n 'worklet';\n const animation = factory();\n decorateAnimation<T>(animation);\n return animation;\n };\n\n if (_WORKLET || !IS_NATIVE) {\n return create();\n }\n // @ts-ignore: eslint-disable-line\n return create;\n}\n\nexport function cancelAnimation<T>(sharedValue: SharedValue<T>): void {\n 'worklet';\n // setting the current value cancels the animation if one is currently running\n sharedValue.value = sharedValue.value; // eslint-disable-line no-self-assign\n}\n\n// TODO it should work only if there was no animation before.\nexport function withStartValue(\n startValue: AnimatableValue,\n animation: NextAnimation<AnimationObject>\n): Animation<AnimationObject> {\n 'worklet';\n return defineAnimation(startValue, () => {\n 'worklet';\n if (!_WORKLET && typeof animation === 'function') {\n animation = animation();\n }\n (animation as Animation<AnimationObject>).current = startValue;\n return animation as Animation<AnimationObject>;\n });\n}\n"],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.KeyboardState = void 0;
|
|
6
|
+
exports.SensorType = exports.KeyboardState = exports.InterfaceOrientation = exports.IOSReferenceFrame = void 0;
|
|
7
7
|
// The below type is used for HostObjects retured by the JSI API that don't have
|
|
8
8
|
// any accessable fields or methods but can carry data that is accessed from the
|
|
9
9
|
// c++ side. We add a field to the type to make it possible for typescript to recognize
|
|
@@ -11,6 +11,38 @@ exports.KeyboardState = void 0;
|
|
|
11
11
|
// check other methods that may use them. However, this field is not actually defined
|
|
12
12
|
// nor should be used for anything else as assigning any data to those objects will
|
|
13
13
|
// throw an error.
|
|
14
|
+
let SensorType;
|
|
15
|
+
exports.SensorType = SensorType;
|
|
16
|
+
|
|
17
|
+
(function (SensorType) {
|
|
18
|
+
SensorType[SensorType["ACCELEROMETER"] = 1] = "ACCELEROMETER";
|
|
19
|
+
SensorType[SensorType["GYROSCOPE"] = 2] = "GYROSCOPE";
|
|
20
|
+
SensorType[SensorType["GRAVITY"] = 3] = "GRAVITY";
|
|
21
|
+
SensorType[SensorType["MAGNETIC_FIELD"] = 4] = "MAGNETIC_FIELD";
|
|
22
|
+
SensorType[SensorType["ROTATION"] = 5] = "ROTATION";
|
|
23
|
+
})(SensorType || (exports.SensorType = SensorType = {}));
|
|
24
|
+
|
|
25
|
+
let IOSReferenceFrame;
|
|
26
|
+
exports.IOSReferenceFrame = IOSReferenceFrame;
|
|
27
|
+
|
|
28
|
+
(function (IOSReferenceFrame) {
|
|
29
|
+
IOSReferenceFrame[IOSReferenceFrame["XArbitraryZVertical"] = 0] = "XArbitraryZVertical";
|
|
30
|
+
IOSReferenceFrame[IOSReferenceFrame["XArbitraryCorrectedZVertical"] = 1] = "XArbitraryCorrectedZVertical";
|
|
31
|
+
IOSReferenceFrame[IOSReferenceFrame["XMagneticNorthZVertical"] = 2] = "XMagneticNorthZVertical";
|
|
32
|
+
IOSReferenceFrame[IOSReferenceFrame["XTrueNorthZVertical"] = 3] = "XTrueNorthZVertical";
|
|
33
|
+
IOSReferenceFrame[IOSReferenceFrame["Auto"] = 4] = "Auto";
|
|
34
|
+
})(IOSReferenceFrame || (exports.IOSReferenceFrame = IOSReferenceFrame = {}));
|
|
35
|
+
|
|
36
|
+
let InterfaceOrientation;
|
|
37
|
+
exports.InterfaceOrientation = InterfaceOrientation;
|
|
38
|
+
|
|
39
|
+
(function (InterfaceOrientation) {
|
|
40
|
+
InterfaceOrientation[InterfaceOrientation["ROTATION_0"] = 0] = "ROTATION_0";
|
|
41
|
+
InterfaceOrientation[InterfaceOrientation["ROTATION_90"] = 90] = "ROTATION_90";
|
|
42
|
+
InterfaceOrientation[InterfaceOrientation["ROTATION_180"] = 180] = "ROTATION_180";
|
|
43
|
+
InterfaceOrientation[InterfaceOrientation["ROTATION_270"] = 270] = "ROTATION_270";
|
|
44
|
+
})(InterfaceOrientation || (exports.InterfaceOrientation = InterfaceOrientation = {}));
|
|
45
|
+
|
|
14
46
|
let KeyboardState;
|
|
15
47
|
exports.KeyboardState = KeyboardState;
|
|
16
48
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["KeyboardState"],"sources":["commonTypes.ts"],"sourcesContent":["import {\n PerpectiveTransform,\n RotateTransform,\n RotateXTransform,\n RotateYTransform,\n RotateZTransform,\n ScaleTransform,\n ScaleXTransform,\n ScaleYTransform,\n TranslateXTransform,\n TranslateYTransform,\n SkewXTransform,\n SkewYTransform,\n MatrixTransform,\n ViewStyle,\n TextStyle,\n} from 'react-native';\n\nexport type TransformProperty =\n | PerpectiveTransform\n | RotateTransform\n | RotateXTransform\n | RotateYTransform\n | RotateZTransform\n | ScaleTransform\n | ScaleXTransform\n | ScaleYTransform\n | TranslateXTransform\n | TranslateYTransform\n | SkewXTransform\n | SkewYTransform\n | MatrixTransform;\n\nexport interface StyleProps extends ViewStyle, TextStyle {\n originX?: number;\n originY?: number;\n [key: string]: any;\n}\n\nexport interface AnimatedStyle\n extends Record<string, Animation<AnimationObject>> {\n [key: string]: any;\n transform?: Array<Record<string, Animation<AnimationObject>>>;\n}\nexport interface SharedValue<T> {\n value: T;\n addListener: (listenerID: number, listener: (value: T) => void) => void;\n removeListener: (listenerID: number) => void;\n modify: (modifier: (value: T) => T) => void;\n}\n\n// The below type is used for HostObjects retured by the JSI API that don't have\n// any accessable fields or methods but can carry data that is accessed from the\n// c++ side. We add a field to the type to make it possible for typescript to recognize\n// which JSI methods accept those types as arguments and to be able to correctly type\n// check other methods that may use them. However, this field is not actually defined\n// nor should be used for anything else as assigning any data to those objects will\n// throw an error.\nexport type ShareableRef<T> = {\n __hostObjectShareableJSRef: T;\n};\n\nexport type ShareableSyncDataHolderRef<T> = {\n __hostObjectShareableJSRefSyncDataHolder: T;\n};\n\nexport type MapperRegistry = {\n start: (\n mapperID: number,\n worklet: () => void,\n inputs: SharedValue<any>[],\n outputs?: SharedValue<any>[]\n ) => void;\n stop: (mapperID: number) => void;\n};\n\nexport type Context = Record<string, unknown>;\n\nexport interface WorkletFunction {\n _closure?: Context;\n __workletHash?: number;\n
|
|
1
|
+
{"version":3,"names":["SensorType","IOSReferenceFrame","InterfaceOrientation","KeyboardState"],"sources":["commonTypes.ts"],"sourcesContent":["import {\n PerpectiveTransform,\n RotateTransform,\n RotateXTransform,\n RotateYTransform,\n RotateZTransform,\n ScaleTransform,\n ScaleXTransform,\n ScaleYTransform,\n TranslateXTransform,\n TranslateYTransform,\n SkewXTransform,\n SkewYTransform,\n MatrixTransform,\n ViewStyle,\n TextStyle,\n} from 'react-native';\n\nexport type TransformProperty =\n | PerpectiveTransform\n | RotateTransform\n | RotateXTransform\n | RotateYTransform\n | RotateZTransform\n | ScaleTransform\n | ScaleXTransform\n | ScaleYTransform\n | TranslateXTransform\n | TranslateYTransform\n | SkewXTransform\n | SkewYTransform\n | MatrixTransform;\n\nexport interface StyleProps extends ViewStyle, TextStyle {\n originX?: number;\n originY?: number;\n [key: string]: any;\n}\n\nexport interface AnimatedStyle\n extends Record<string, Animation<AnimationObject>> {\n [key: string]: any;\n transform?: Array<Record<string, Animation<AnimationObject>>>;\n}\nexport interface SharedValue<T> {\n value: T;\n addListener: (listenerID: number, listener: (value: T) => void) => void;\n removeListener: (listenerID: number) => void;\n modify: (modifier: (value: T) => T) => void;\n}\n\n// The below type is used for HostObjects retured by the JSI API that don't have\n// any accessable fields or methods but can carry data that is accessed from the\n// c++ side. We add a field to the type to make it possible for typescript to recognize\n// which JSI methods accept those types as arguments and to be able to correctly type\n// check other methods that may use them. However, this field is not actually defined\n// nor should be used for anything else as assigning any data to those objects will\n// throw an error.\nexport type ShareableRef<T> = {\n __hostObjectShareableJSRef: T;\n};\n\nexport type ShareableSyncDataHolderRef<T> = {\n __hostObjectShareableJSRefSyncDataHolder: T;\n};\n\nexport type MapperRegistry = {\n start: (\n mapperID: number,\n worklet: () => void,\n inputs: SharedValue<any>[],\n outputs?: SharedValue<any>[]\n ) => void;\n stop: (mapperID: number) => void;\n};\n\nexport type Context = Record<string, unknown>;\n\nexport interface WorkletFunction {\n _closure?: Context;\n __workletHash?: number;\n}\n\nexport interface BasicWorkletFunction<T> extends WorkletFunction {\n (): T;\n}\n\nexport interface BasicWorkletFunctionOptional<T> extends WorkletFunction {\n (): Partial<T>;\n}\n\nexport interface NativeEvent<T> {\n nativeEvent: T;\n}\nexport interface ComplexWorkletFunction<A extends any[], R>\n extends WorkletFunction {\n (...args: A): R;\n __remoteFunction?: (...args: A) => R;\n}\n\nexport interface NestedObject<T> {\n [key: string]: NestedObjectValues<T>;\n}\n\nexport type NestedObjectValues<T> =\n | T\n | Array<NestedObjectValues<T>>\n | NestedObject<T>;\n\nexport interface AdapterWorkletFunction extends WorkletFunction {\n (value: NestedObject<string | number | AnimationObject>): void;\n}\n\nexport type AnimatableValue = number | string | Array<number>;\n\nexport interface AnimationObject {\n [key: string]: any;\n callback: AnimationCallback;\n current?: AnimatableValue;\n toValue?: AnimationObject['current'];\n startValue?: AnimationObject['current'];\n finished?: boolean;\n strippedCurrent?: number;\n cancelled?: boolean;\n\n __prefix?: string;\n __suffix?: string;\n onFrame: (animation: any, timestamp: Timestamp) => boolean;\n onStart: (\n nextAnimation: any,\n current: any,\n timestamp: Timestamp,\n previousAnimation: any\n ) => void;\n}\n\nexport interface Animation<T extends AnimationObject> extends AnimationObject {\n onFrame: (animation: T, timestamp: Timestamp) => boolean;\n onStart: (\n nextAnimation: T,\n current: T extends NumericAnimation ? number : AnimatableValue,\n timestamp: Timestamp,\n previousAnimation: T\n ) => void;\n}\n\nexport enum SensorType {\n ACCELEROMETER = 1,\n GYROSCOPE = 2,\n GRAVITY = 3,\n MAGNETIC_FIELD = 4,\n ROTATION = 5,\n}\nexport enum IOSReferenceFrame {\n XArbitraryZVertical,\n XArbitraryCorrectedZVertical,\n XMagneticNorthZVertical,\n XTrueNorthZVertical,\n Auto,\n}\n\nexport interface NumericAnimation {\n current?: number;\n}\n\nexport type AnimationCallback = (\n finished?: boolean,\n current?: AnimatableValue\n) => void;\n\nexport type Timestamp = number;\n\nexport type Value3D = {\n x: number;\n y: number;\n z: number;\n interfaceOrientation: InterfaceOrientation;\n};\n\nexport type ValueRotation = {\n qw: number;\n qx: number;\n qy: number;\n qz: number;\n yaw: number;\n pitch: number;\n roll: number;\n interfaceOrientation: InterfaceOrientation;\n};\n\nexport enum InterfaceOrientation {\n ROTATION_0 = 0,\n ROTATION_90 = 90,\n ROTATION_180 = 180,\n ROTATION_270 = 270,\n}\n\nexport type ShadowNodeWrapper = object;\n\nexport enum KeyboardState {\n UNKNOWN = 0,\n OPENING = 1,\n OPEN = 2,\n CLOSING = 3,\n CLOSED = 4,\n}\n\nexport type AnimatedKeyboardInfo = {\n height: SharedValue<number>;\n state: SharedValue<KeyboardState>;\n};\n\nexport interface MeasuredDimensions {\n x: number;\n y: number;\n width: number;\n height: number;\n pageX: number;\n pageY: number;\n}\n\nexport interface AnimatedKeyboardOptions {\n isStatusBarTranslucentAndroid?: boolean;\n}\n"],"mappings":";;;;;;AAmDA;AACA;AACA;AACA;AACA;AACA;AACA;IAyFYA,U;;;WAAAA,U;EAAAA,U,CAAAA,U;EAAAA,U,CAAAA,U;EAAAA,U,CAAAA,U;EAAAA,U,CAAAA,U;EAAAA,U,CAAAA,U;GAAAA,U,0BAAAA,U;;IAOAC,iB;;;WAAAA,iB;EAAAA,iB,CAAAA,iB;EAAAA,iB,CAAAA,iB;EAAAA,iB,CAAAA,iB;EAAAA,iB,CAAAA,iB;EAAAA,iB,CAAAA,iB;GAAAA,iB,iCAAAA,iB;;IAqCAC,oB;;;WAAAA,oB;EAAAA,oB,CAAAA,oB;EAAAA,oB,CAAAA,oB;EAAAA,oB,CAAAA,oB;EAAAA,oB,CAAAA,oB;GAAAA,oB,oCAAAA,oB;;IASAC,a;;;WAAAA,a;EAAAA,a,CAAAA,a;EAAAA,a,CAAAA,a;EAAAA,a,CAAAA,a;EAAAA,a,CAAAA,a;EAAAA,a,CAAAA,a;GAAAA,a,6BAAAA,a"}
|
|
@@ -7,12 +7,6 @@ exports.checkPluginState = void 0;
|
|
|
7
7
|
exports.configureLayoutAnimations = configureLayoutAnimations;
|
|
8
8
|
exports.configureProps = configureProps;
|
|
9
9
|
exports.enableLayoutAnimations = enableLayoutAnimations;
|
|
10
|
-
Object.defineProperty(exports, "getTimestamp", {
|
|
11
|
-
enumerable: true,
|
|
12
|
-
get: function () {
|
|
13
|
-
return _time.getTimestamp;
|
|
14
|
-
}
|
|
15
|
-
});
|
|
16
10
|
exports.getViewProp = getViewProp;
|
|
17
11
|
exports.makeShareable = exports.makeRemote = exports.makeMutable = exports.isConfiguredCheck = exports.isConfigured = void 0;
|
|
18
12
|
exports.registerEventHandler = registerEventHandler;
|
|
@@ -55,8 +49,6 @@ var _initializers = require("./initializers");
|
|
|
55
49
|
|
|
56
50
|
var _threads = require("./threads");
|
|
57
51
|
|
|
58
|
-
var _time = require("./time");
|
|
59
|
-
|
|
60
52
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
61
53
|
|
|
62
54
|
const testWorklet = () => {
|
|
@@ -132,23 +124,48 @@ function getViewProp(viewTag, propName) {
|
|
|
132
124
|
}
|
|
133
125
|
|
|
134
126
|
function registerEventHandler(eventHash, eventHandler) {
|
|
135
|
-
|
|
127
|
+
function handleAndFlushImmediates(eventTimestamp, event) {
|
|
128
|
+
'worklet';
|
|
129
|
+
|
|
130
|
+
global.__frameTimestamp = eventTimestamp;
|
|
131
|
+
eventHandler(event);
|
|
132
|
+
|
|
133
|
+
global.__flushAnimationFrame(eventTimestamp);
|
|
134
|
+
|
|
135
|
+
global.__frameTimestamp = undefined;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
return _NativeReanimated.default.registerEventHandler(eventHash, (0, _shareables.makeShareableCloneRecursive)(handleAndFlushImmediates));
|
|
136
139
|
}
|
|
137
140
|
|
|
138
141
|
function unregisterEventHandler(id) {
|
|
139
142
|
return _NativeReanimated.default.unregisterEventHandler(id);
|
|
140
143
|
}
|
|
141
144
|
|
|
142
|
-
function subscribeForKeyboardEvents(eventHandler) {
|
|
143
|
-
|
|
145
|
+
function subscribeForKeyboardEvents(eventHandler, options) {
|
|
146
|
+
// TODO: this should really go with the same code path as other events, that is
|
|
147
|
+
// via registerEventHandler. For now we are copying the code from there.
|
|
148
|
+
function handleAndFlushImmediates(state, height) {
|
|
149
|
+
'worklet';
|
|
150
|
+
|
|
151
|
+
const now = performance.now();
|
|
152
|
+
global.__frameTimestamp = now;
|
|
153
|
+
eventHandler(state, height);
|
|
154
|
+
|
|
155
|
+
global.__flushAnimationFrame(now);
|
|
156
|
+
|
|
157
|
+
global.__frameTimestamp = undefined;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
return _NativeReanimated.default.subscribeForKeyboardEvents((0, _shareables.makeShareableCloneRecursive)(handleAndFlushImmediates), options.isStatusBarTranslucentAndroid ?? false);
|
|
144
161
|
}
|
|
145
162
|
|
|
146
163
|
function unsubscribeFromKeyboardEvents(listenerId) {
|
|
147
164
|
return _NativeReanimated.default.unsubscribeFromKeyboardEvents(listenerId);
|
|
148
165
|
}
|
|
149
166
|
|
|
150
|
-
function registerSensor(sensorType, interval, eventHandler) {
|
|
151
|
-
return _NativeReanimated.default.registerSensor(sensorType, interval, (0, _shareables.makeShareableCloneRecursive)(eventHandler));
|
|
167
|
+
function registerSensor(sensorType, interval, iosReferenceFrame, eventHandler) {
|
|
168
|
+
return _NativeReanimated.default.registerSensor(sensorType, interval, iosReferenceFrame, (0, _shareables.makeShareableCloneRecursive)(eventHandler));
|
|
152
169
|
}
|
|
153
170
|
|
|
154
171
|
function unregisterSensor(listenerId) {
|
|
@@ -183,7 +200,9 @@ function enableLayoutAnimations(flag) {
|
|
|
183
200
|
}
|
|
184
201
|
|
|
185
202
|
function configureLayoutAnimations(viewTag, type, config) {
|
|
186
|
-
|
|
203
|
+
let sharedTransitionTag = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';
|
|
204
|
+
|
|
205
|
+
_NativeReanimated.default.configureLayoutAnimation(viewTag, type, sharedTransitionTag, (0, _shareables.makeShareableCloneRecursive)(config));
|
|
187
206
|
}
|
|
188
207
|
|
|
189
208
|
function configureProps(uiProps, nativeProps) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["testWorklet","throwUninitializedReanimatedException","Error","checkPluginState","throwError","__workletHash","shouldBeUseWeb","isConfigured","isConfiguredCheck","configurationCheckWrapper","__DEV__","fn","startMapper","startMapperUnwrapped","makeShareable","makeShareableUnwrapped","makeMutable","makeMutableUnwrapped","makeRemote","makeRemoteUnwrapped","global","_WORKLET","_log","s","console","log","getViewProp","viewTag","propName","_IS_FABRIC","Promise","resolve","reject","NativeReanimatedModule","result","substr","registerEventHandler","eventHash","eventHandler","makeShareableCloneRecursive","unregisterEventHandler","id","subscribeForKeyboardEvents","unsubscribeFromKeyboardEvents","listenerId","registerSensor","sensorType","interval","unregisterSensor","isWeb","initializeUIRuntime","featuresConfig","enableLayoutAnimations","setByUser","flag","isCallByUser","configureLayoutAnimations","type","config","configureLayoutAnimation","configureProps","uiProps","nativeProps","nativeShouldBeMock"],"sources":["core.ts"],"sourcesContent":["import NativeReanimatedModule from './NativeReanimated';\nimport { nativeShouldBeMock, shouldBeUseWeb, isWeb } from './PlatformChecker';\nimport { BasicWorkletFunction, Value3D, ValueRotation } from './commonTypes';\nimport {\n makeShareableCloneRecursive,\n makeShareable as makeShareableUnwrapped,\n} from './shareables';\nimport { startMapper as startMapperUnwrapped } from './mappers';\nimport {\n makeMutable as makeMutableUnwrapped,\n makeRemote as makeRemoteUnwrapped,\n} from './mutables';\nimport { LayoutAnimationFunction } from './layoutReanimation';\nimport { initializeUIRuntime } from './initializers';\n\nexport { stopMapper } from './mappers';\nexport { runOnJS, runOnUI } from './threads';\nexport { getTimestamp } from './time';\n\nexport type ReanimatedConsole = Pick<\n Console,\n 'debug' | 'log' | 'warn' | 'info' | 'error'\n>;\n\nconst testWorklet: BasicWorkletFunction<void> = () => {\n 'worklet';\n};\n\nconst throwUninitializedReanimatedException = () => {\n throw new Error(\n \"Failed to initialize react-native-reanimated library, make sure you followed installation steps here: https://docs.swmansion.com/react-native-reanimated/docs/fundamentals/installation/ \\n1) Make sure reanimated's babel plugin is installed in your babel.config.js (you should have 'react-native-reanimated/plugin' listed there - also see the above link for details) \\n2) Make sure you reset build cache after updating the config, run: yarn start --reset-cache\"\n );\n};\n\nexport const checkPluginState: (throwError: boolean) => boolean = (\n throwError = true\n) => {\n if (!testWorklet.__workletHash && !shouldBeUseWeb()) {\n if (throwError) {\n throwUninitializedReanimatedException();\n }\n return false;\n }\n return true;\n};\n\nexport const isConfigured: (throwError?: boolean) => boolean = (\n throwError = false\n) => {\n return checkPluginState(throwError);\n};\n\nexport const isConfiguredCheck: () => void = () => {\n checkPluginState(true);\n};\n\nconst configurationCheckWrapper = __DEV__\n ? <T extends Array<any>, U>(fn: (...args: T) => U) => {\n return (...args: T): U => {\n isConfigured(true);\n return fn(...args);\n };\n }\n : <T extends Array<any>, U>(fn: (...args: T) => U) => fn;\n\nexport const startMapper = __DEV__\n ? configurationCheckWrapper(startMapperUnwrapped)\n : startMapperUnwrapped;\n\nexport const makeShareable = __DEV__\n ? configurationCheckWrapper(makeShareableUnwrapped)\n : makeShareableUnwrapped;\n\nexport const makeMutable = __DEV__\n ? configurationCheckWrapper(makeMutableUnwrapped)\n : makeMutableUnwrapped;\n\nexport const makeRemote = __DEV__\n ? configurationCheckWrapper(makeRemoteUnwrapped)\n : makeRemoteUnwrapped;\n\nglobal._WORKLET = false;\nglobal._log = function (s: string) {\n console.log(s);\n};\n\nexport function getViewProp<T>(viewTag: string, propName: string): Promise<T> {\n if (global._IS_FABRIC) {\n throw new Error(\n '[react-native-reanimated] `getViewProp` is not supported on Fabric yet'\n );\n }\n\n return new Promise((resolve, reject) => {\n return NativeReanimatedModule.getViewProp(\n viewTag,\n propName,\n (result: T) => {\n if (typeof result === 'string' && result.substr(0, 6) === 'error:') {\n reject(result);\n } else {\n resolve(result);\n }\n }\n );\n });\n}\n\nexport function registerEventHandler<T>(\n eventHash: string,\n eventHandler: (event: T) => void\n): string {\n return NativeReanimatedModule.registerEventHandler(\n eventHash,\n makeShareableCloneRecursive(eventHandler)\n );\n}\n\nexport function unregisterEventHandler(id: string): void {\n return NativeReanimatedModule.unregisterEventHandler(id);\n}\n\nexport function subscribeForKeyboardEvents(\n eventHandler: (state: number, height: number) => void\n): number {\n return NativeReanimatedModule.subscribeForKeyboardEvents(\n makeShareableCloneRecursive(eventHandler)\n );\n}\n\nexport function unsubscribeFromKeyboardEvents(listenerId: number): void {\n return NativeReanimatedModule.unsubscribeFromKeyboardEvents(listenerId);\n}\n\nexport function registerSensor(\n sensorType: number,\n interval: number,\n eventHandler: (data: Value3D | ValueRotation) => void\n): number {\n return NativeReanimatedModule.registerSensor(\n sensorType,\n interval,\n makeShareableCloneRecursive(eventHandler)\n );\n}\n\nexport function unregisterSensor(listenerId: number): void {\n return NativeReanimatedModule.unregisterSensor(listenerId);\n}\n\n// initialize UI runtime if applicable\nif (!isWeb() && isConfigured()) {\n initializeUIRuntime();\n}\n\ntype FeaturesConfig = {\n enableLayoutAnimations: boolean;\n setByUser: boolean;\n};\n\nlet featuresConfig: FeaturesConfig = {\n enableLayoutAnimations: false,\n setByUser: false,\n};\n\nexport function enableLayoutAnimations(\n flag: boolean,\n isCallByUser = true\n): void {\n if (isCallByUser) {\n featuresConfig = {\n enableLayoutAnimations: flag,\n setByUser: true,\n };\n NativeReanimatedModule.enableLayoutAnimations(flag);\n } else if (\n !featuresConfig.setByUser &&\n featuresConfig.enableLayoutAnimations !== flag\n ) {\n featuresConfig.enableLayoutAnimations = flag;\n NativeReanimatedModule.enableLayoutAnimations(flag);\n }\n}\n\nexport function configureLayoutAnimations(\n viewTag: number,\n type: string,\n config: LayoutAnimationFunction | Keyframe\n): void {\n NativeReanimatedModule.configureLayoutAnimation(\n viewTag,\n type,\n makeShareableCloneRecursive(config)\n );\n}\n\nexport function configureProps(uiProps: string[], nativeProps: string[]): void {\n if (!nativeShouldBeMock()) {\n NativeReanimatedModule.configureProps(uiProps, nativeProps);\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["testWorklet","throwUninitializedReanimatedException","Error","checkPluginState","throwError","__workletHash","shouldBeUseWeb","isConfigured","isConfiguredCheck","configurationCheckWrapper","__DEV__","fn","startMapper","startMapperUnwrapped","makeShareable","makeShareableUnwrapped","makeMutable","makeMutableUnwrapped","makeRemote","makeRemoteUnwrapped","global","_WORKLET","_log","s","console","log","getViewProp","viewTag","propName","_IS_FABRIC","Promise","resolve","reject","NativeReanimatedModule","result","substr","registerEventHandler","eventHash","eventHandler","handleAndFlushImmediates","eventTimestamp","event","__frameTimestamp","__flushAnimationFrame","undefined","makeShareableCloneRecursive","unregisterEventHandler","id","subscribeForKeyboardEvents","options","state","height","now","performance","isStatusBarTranslucentAndroid","unsubscribeFromKeyboardEvents","listenerId","registerSensor","sensorType","interval","iosReferenceFrame","unregisterSensor","isWeb","initializeUIRuntime","featuresConfig","enableLayoutAnimations","setByUser","flag","isCallByUser","configureLayoutAnimations","type","config","sharedTransitionTag","configureLayoutAnimation","configureProps","uiProps","nativeProps","nativeShouldBeMock"],"sources":["core.ts"],"sourcesContent":["import NativeReanimatedModule from './NativeReanimated';\nimport { nativeShouldBeMock, shouldBeUseWeb, isWeb } from './PlatformChecker';\nimport {\n AnimatedKeyboardOptions,\n BasicWorkletFunction,\n Value3D,\n ValueRotation,\n} from './commonTypes';\nimport {\n makeShareableCloneRecursive,\n makeShareable as makeShareableUnwrapped,\n} from './shareables';\nimport { startMapper as startMapperUnwrapped } from './mappers';\nimport {\n makeMutable as makeMutableUnwrapped,\n makeRemote as makeRemoteUnwrapped,\n} from './mutables';\nimport {\n LayoutAnimationFunction,\n LayoutAnimationType,\n} from './layoutReanimation';\nimport { initializeUIRuntime } from './initializers';\n\nexport { stopMapper } from './mappers';\nexport { runOnJS, runOnUI } from './threads';\n\nexport type ReanimatedConsole = Pick<\n Console,\n 'debug' | 'log' | 'warn' | 'info' | 'error'\n>;\n\nconst testWorklet: BasicWorkletFunction<void> = () => {\n 'worklet';\n};\n\nconst throwUninitializedReanimatedException = () => {\n throw new Error(\n \"Failed to initialize react-native-reanimated library, make sure you followed installation steps here: https://docs.swmansion.com/react-native-reanimated/docs/fundamentals/installation/ \\n1) Make sure reanimated's babel plugin is installed in your babel.config.js (you should have 'react-native-reanimated/plugin' listed there - also see the above link for details) \\n2) Make sure you reset build cache after updating the config, run: yarn start --reset-cache\"\n );\n};\n\nexport const checkPluginState: (throwError: boolean) => boolean = (\n throwError = true\n) => {\n if (!testWorklet.__workletHash && !shouldBeUseWeb()) {\n if (throwError) {\n throwUninitializedReanimatedException();\n }\n return false;\n }\n return true;\n};\n\nexport const isConfigured: (throwError?: boolean) => boolean = (\n throwError = false\n) => {\n return checkPluginState(throwError);\n};\n\nexport const isConfiguredCheck: () => void = () => {\n checkPluginState(true);\n};\n\nconst configurationCheckWrapper = __DEV__\n ? <T extends Array<any>, U>(fn: (...args: T) => U) => {\n return (...args: T): U => {\n isConfigured(true);\n return fn(...args);\n };\n }\n : <T extends Array<any>, U>(fn: (...args: T) => U) => fn;\n\nexport const startMapper = __DEV__\n ? configurationCheckWrapper(startMapperUnwrapped)\n : startMapperUnwrapped;\n\nexport const makeShareable = __DEV__\n ? configurationCheckWrapper(makeShareableUnwrapped)\n : makeShareableUnwrapped;\n\nexport const makeMutable = __DEV__\n ? configurationCheckWrapper(makeMutableUnwrapped)\n : makeMutableUnwrapped;\n\nexport const makeRemote = __DEV__\n ? configurationCheckWrapper(makeRemoteUnwrapped)\n : makeRemoteUnwrapped;\n\nglobal._WORKLET = false;\nglobal._log = function (s: string) {\n console.log(s);\n};\n\nexport function getViewProp<T>(viewTag: string, propName: string): Promise<T> {\n if (global._IS_FABRIC) {\n throw new Error(\n '[react-native-reanimated] `getViewProp` is not supported on Fabric yet'\n );\n }\n\n return new Promise((resolve, reject) => {\n return NativeReanimatedModule.getViewProp(\n viewTag,\n propName,\n (result: T) => {\n if (typeof result === 'string' && result.substr(0, 6) === 'error:') {\n reject(result);\n } else {\n resolve(result);\n }\n }\n );\n });\n}\n\nexport function registerEventHandler<T>(\n eventHash: string,\n eventHandler: (event: T) => void\n): string {\n function handleAndFlushImmediates(eventTimestamp: number, event: T) {\n 'worklet';\n global.__frameTimestamp = eventTimestamp;\n eventHandler(event);\n global.__flushAnimationFrame(eventTimestamp);\n global.__frameTimestamp = undefined;\n }\n return NativeReanimatedModule.registerEventHandler(\n eventHash,\n makeShareableCloneRecursive(handleAndFlushImmediates)\n );\n}\n\nexport function unregisterEventHandler(id: string): void {\n return NativeReanimatedModule.unregisterEventHandler(id);\n}\n\nexport function subscribeForKeyboardEvents(\n eventHandler: (state: number, height: number) => void,\n options: AnimatedKeyboardOptions\n): number {\n // TODO: this should really go with the same code path as other events, that is\n // via registerEventHandler. For now we are copying the code from there.\n function handleAndFlushImmediates(state: number, height: number) {\n 'worklet';\n const now = performance.now();\n global.__frameTimestamp = now;\n eventHandler(state, height);\n global.__flushAnimationFrame(now);\n global.__frameTimestamp = undefined;\n }\n return NativeReanimatedModule.subscribeForKeyboardEvents(\n makeShareableCloneRecursive(handleAndFlushImmediates),\n options.isStatusBarTranslucentAndroid ?? false\n );\n}\n\nexport function unsubscribeFromKeyboardEvents(listenerId: number): void {\n return NativeReanimatedModule.unsubscribeFromKeyboardEvents(listenerId);\n}\n\nexport function registerSensor(\n sensorType: number,\n interval: number,\n iosReferenceFrame: number,\n eventHandler: (\n data: Value3D | ValueRotation,\n orientationDegrees: number\n ) => void\n): number {\n return NativeReanimatedModule.registerSensor(\n sensorType,\n interval,\n iosReferenceFrame,\n makeShareableCloneRecursive(eventHandler)\n );\n}\n\nexport function unregisterSensor(listenerId: number): void {\n return NativeReanimatedModule.unregisterSensor(listenerId);\n}\n\n// initialize UI runtime if applicable\nif (!isWeb() && isConfigured()) {\n initializeUIRuntime();\n}\n\ntype FeaturesConfig = {\n enableLayoutAnimations: boolean;\n setByUser: boolean;\n};\n\nlet featuresConfig: FeaturesConfig = {\n enableLayoutAnimations: false,\n setByUser: false,\n};\n\nexport function enableLayoutAnimations(\n flag: boolean,\n isCallByUser = true\n): void {\n if (isCallByUser) {\n featuresConfig = {\n enableLayoutAnimations: flag,\n setByUser: true,\n };\n NativeReanimatedModule.enableLayoutAnimations(flag);\n } else if (\n !featuresConfig.setByUser &&\n featuresConfig.enableLayoutAnimations !== flag\n ) {\n featuresConfig.enableLayoutAnimations = flag;\n NativeReanimatedModule.enableLayoutAnimations(flag);\n }\n}\n\nexport function configureLayoutAnimations(\n viewTag: number,\n type: LayoutAnimationType,\n config: LayoutAnimationFunction | Keyframe,\n sharedTransitionTag = ''\n): void {\n NativeReanimatedModule.configureLayoutAnimation(\n viewTag,\n type,\n sharedTransitionTag,\n makeShareableCloneRecursive(config)\n );\n}\n\nexport function configureProps(uiProps: string[], nativeProps: string[]): void {\n if (!nativeShouldBeMock()) {\n NativeReanimatedModule.configureProps(uiProps, nativeProps);\n }\n}\n"],"mappings":"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"}
|
|
@@ -5,9 +5,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.prepareUIRegistry = void 0;
|
|
7
7
|
|
|
8
|
-
var
|
|
8
|
+
var _threads = require("../threads");
|
|
9
9
|
|
|
10
|
-
const prepareUIRegistry = (0,
|
|
10
|
+
const prepareUIRegistry = (0, _threads.runOnUIImmediately)(() => {
|
|
11
11
|
'worklet';
|
|
12
12
|
|
|
13
13
|
const frameCallbackRegistry = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["prepareUIRegistry","
|
|
1
|
+
{"version":3,"names":["prepareUIRegistry","runOnUIImmediately","frameCallbackRegistry","Map","activeFrameCallbacks","Set","previousFrameTimestamp","runCallbacks","loop","timestamp","delta","forEach","callbackId","callbackDetails","get","startTime","callback","timeSincePreviousFrame","timeSinceFirstFrame","size","requestAnimationFrame","registerFrameCallback","set","unregisterFrameCallback","manageStateFrameCallback","delete","state","add","global","_frameCallbackRegistry"],"sources":["FrameCallbackRegistryUI.ts"],"sourcesContent":["import { runOnUIImmediately } from '../threads';\n\ntype CallbackDetails = {\n callback: (frameInfo: FrameInfo) => void;\n startTime: number | null;\n};\n\nexport type FrameInfo = {\n timestamp: number;\n timeSincePreviousFrame: number | null;\n timeSinceFirstFrame: number;\n};\n\nexport interface FrameCallbackRegistryUI {\n frameCallbackRegistry: Map<number, CallbackDetails>;\n activeFrameCallbacks: Set<number>;\n previousFrameTimestamp: number | null;\n runCallbacks: () => void;\n registerFrameCallback: (\n callback: (frameInfo: FrameInfo) => void,\n callbackId: number\n ) => void;\n unregisterFrameCallback: (callbackId: number) => void;\n manageStateFrameCallback: (callbackId: number, state: boolean) => void;\n}\n\nexport const prepareUIRegistry = runOnUIImmediately(() => {\n 'worklet';\n\n const frameCallbackRegistry: FrameCallbackRegistryUI = {\n frameCallbackRegistry: new Map<number, CallbackDetails>(),\n activeFrameCallbacks: new Set<number>(),\n previousFrameTimestamp: null,\n\n runCallbacks() {\n const loop = (timestamp: number) => {\n if (this.previousFrameTimestamp === null) {\n this.previousFrameTimestamp = timestamp;\n }\n\n const delta = timestamp - this.previousFrameTimestamp;\n\n this.activeFrameCallbacks.forEach((callbackId: number) => {\n const callbackDetails = this.frameCallbackRegistry.get(callbackId)!;\n\n const { startTime } = callbackDetails;\n\n if (startTime === null) {\n // First frame\n callbackDetails.startTime = timestamp;\n\n callbackDetails.callback({\n timestamp,\n timeSincePreviousFrame: null,\n timeSinceFirstFrame: 0,\n });\n } else {\n // Next frame\n callbackDetails.callback({\n timestamp,\n timeSincePreviousFrame: delta,\n timeSinceFirstFrame: timestamp - startTime,\n });\n }\n });\n\n if (this.activeFrameCallbacks.size > 0) {\n this.previousFrameTimestamp = timestamp;\n requestAnimationFrame(loop);\n } else {\n this.previousFrameTimestamp = null;\n }\n };\n\n // runCallback() should only be called after registering a callback,\n // so if there is only one active callback, then it means that there were\n // zero previously and the loop isn't running yet.\n if (this.activeFrameCallbacks.size === 1) {\n requestAnimationFrame(loop);\n }\n },\n\n registerFrameCallback(\n callback: (frameInfo: FrameInfo) => void,\n callbackId: number\n ) {\n this.frameCallbackRegistry.set(callbackId, {\n callback: callback,\n startTime: null,\n });\n },\n\n unregisterFrameCallback(callbackId: number) {\n this.manageStateFrameCallback(callbackId, false);\n this.frameCallbackRegistry.delete(callbackId);\n },\n\n manageStateFrameCallback(callbackId: number, state: boolean) {\n if (callbackId === -1) {\n return;\n }\n if (state) {\n this.activeFrameCallbacks.add(callbackId);\n this.runCallbacks();\n } else {\n const callback = this.frameCallbackRegistry.get(callbackId)!;\n callback.startTime = null;\n\n this.activeFrameCallbacks.delete(callbackId);\n }\n },\n };\n\n global._frameCallbackRegistry = frameCallbackRegistry;\n});\n"],"mappings":";;;;;;;AAAA;;AA0BO,MAAMA,iBAAiB,GAAG,IAAAC,2BAAA,EAAmB,MAAM;EACxD;;EAEA,MAAMC,qBAA8C,GAAG;IACrDA,qBAAqB,EAAE,IAAIC,GAAJ,EAD8B;IAErDC,oBAAoB,EAAE,IAAIC,GAAJ,EAF+B;IAGrDC,sBAAsB,EAAE,IAH6B;;IAKrDC,YAAY,GAAG;MACb,MAAMC,IAAI,GAAIC,SAAD,IAAuB;QAClC,IAAI,KAAKH,sBAAL,KAAgC,IAApC,EAA0C;UACxC,KAAKA,sBAAL,GAA8BG,SAA9B;QACD;;QAED,MAAMC,KAAK,GAAGD,SAAS,GAAG,KAAKH,sBAA/B;QAEA,KAAKF,oBAAL,CAA0BO,OAA1B,CAAmCC,UAAD,IAAwB;UACxD,MAAMC,eAAe,GAAG,KAAKX,qBAAL,CAA2BY,GAA3B,CAA+BF,UAA/B,CAAxB;UAEA,MAAM;YAAEG;UAAF,IAAgBF,eAAtB;;UAEA,IAAIE,SAAS,KAAK,IAAlB,EAAwB;YACtB;YACAF,eAAe,CAACE,SAAhB,GAA4BN,SAA5B;YAEAI,eAAe,CAACG,QAAhB,CAAyB;cACvBP,SADuB;cAEvBQ,sBAAsB,EAAE,IAFD;cAGvBC,mBAAmB,EAAE;YAHE,CAAzB;UAKD,CATD,MASO;YACL;YACAL,eAAe,CAACG,QAAhB,CAAyB;cACvBP,SADuB;cAEvBQ,sBAAsB,EAAEP,KAFD;cAGvBQ,mBAAmB,EAAET,SAAS,GAAGM;YAHV,CAAzB;UAKD;QACF,CAtBD;;QAwBA,IAAI,KAAKX,oBAAL,CAA0Be,IAA1B,GAAiC,CAArC,EAAwC;UACtC,KAAKb,sBAAL,GAA8BG,SAA9B;UACAW,qBAAqB,CAACZ,IAAD,CAArB;QACD,CAHD,MAGO;UACL,KAAKF,sBAAL,GAA8B,IAA9B;QACD;MACF,CArCD,CADa,CAwCb;MACA;MACA;;;MACA,IAAI,KAAKF,oBAAL,CAA0Be,IAA1B,KAAmC,CAAvC,EAA0C;QACxCC,qBAAqB,CAACZ,IAAD,CAArB;MACD;IACF,CAnDoD;;IAqDrDa,qBAAqB,CACnBL,QADmB,EAEnBJ,UAFmB,EAGnB;MACA,KAAKV,qBAAL,CAA2BoB,GAA3B,CAA+BV,UAA/B,EAA2C;QACzCI,QAAQ,EAAEA,QAD+B;QAEzCD,SAAS,EAAE;MAF8B,CAA3C;IAID,CA7DoD;;IA+DrDQ,uBAAuB,CAACX,UAAD,EAAqB;MAC1C,KAAKY,wBAAL,CAA8BZ,UAA9B,EAA0C,KAA1C;MACA,KAAKV,qBAAL,CAA2BuB,MAA3B,CAAkCb,UAAlC;IACD,CAlEoD;;IAoErDY,wBAAwB,CAACZ,UAAD,EAAqBc,KAArB,EAAqC;MAC3D,IAAId,UAAU,KAAK,CAAC,CAApB,EAAuB;QACrB;MACD;;MACD,IAAIc,KAAJ,EAAW;QACT,KAAKtB,oBAAL,CAA0BuB,GAA1B,CAA8Bf,UAA9B;QACA,KAAKL,YAAL;MACD,CAHD,MAGO;QACL,MAAMS,QAAQ,GAAG,KAAKd,qBAAL,CAA2BY,GAA3B,CAA+BF,UAA/B,CAAjB;QACAI,QAAQ,CAACD,SAAT,GAAqB,IAArB;QAEA,KAAKX,oBAAL,CAA0BqB,MAA1B,CAAiCb,UAAjC;MACD;IACF;;EAjFoD,CAAvD;EAoFAgB,MAAM,CAACC,sBAAP,GAAgC3B,qBAAhC;AACD,CAxFgC,CAA1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["globals.d.ts"],"sourcesContent":["import type {\n AnimatedStyle,\n StyleProps,\n MeasuredDimensions,\n MapperRegistry,\n ShareableRef,\n ShareableSyncDataHolderRef,\n} from './commonTypes';\nimport type { FrameCallbackRegistryUI } from './frameCallback/FrameCallbackRegistryUI';\nimport type { ShadowNodeWrapper } from './hook/commonTypes';\nimport { LayoutAnimationStartFunction } from './layoutReanimation';\nimport type { NativeReanimated } from './NativeReanimated/NativeReanimated';\n\ndeclare global {\n const _WORKLET: boolean;\n const _IS_FABRIC: boolean;\n const _REANIMATED_VERSION_CPP: string;\n const
|
|
1
|
+
{"version":3,"names":[],"sources":["globals.d.ts"],"sourcesContent":["import type {\n AnimatedStyle,\n StyleProps,\n MeasuredDimensions,\n MapperRegistry,\n ShareableRef,\n ShareableSyncDataHolderRef,\n} from './commonTypes';\nimport type { FrameCallbackRegistryUI } from './frameCallback/FrameCallbackRegistryUI';\nimport type { ShadowNodeWrapper } from './hook/commonTypes';\nimport { LayoutAnimationStartFunction } from './layoutReanimation';\nimport type { NativeReanimated } from './NativeReanimated/NativeReanimated';\n\ndeclare global {\n const _WORKLET: boolean;\n const _IS_FABRIC: boolean;\n const _REANIMATED_VERSION_CPP: string;\n const __reanimatedModuleProxy: NativeReanimated;\n const evalWithSourceMap: (\n js: string,\n sourceURL: string,\n sourceMap: string\n ) => any;\n const evalWithSourceUrl: (js: string, sourceURL: string) => any;\n const _log: (s: string) => void;\n const _getCurrentTime: () => number;\n const _notifyAboutProgress: (\n tag: number,\n value: number,\n isSharedTransition: boolean\n ) => void;\n const _notifyAboutEnd: (\n tag: number,\n finished: boolean,\n removeView: boolean\n ) => void;\n const _setGestureState: (handlerTag: number, newState: number) => void;\n const _makeShareableClone: (value: any) => any;\n const _updateDataSynchronously: (\n dataHolder: ShareableSyncDataHolderRef,\n data: ShareableRef\n ) => void;\n const _scheduleOnJS: (fun: ShareableRef, args?: ShareableRef) => void;\n const _updatePropsPaper: (\n tag: number,\n name: string,\n updates: StyleProps | AnimatedStyle\n ) => void;\n const _updatePropsFabric: (\n shadowNodeWrapper: ShadowNodeWrapper,\n props: StyleProps | AnimatedStyle\n ) => void;\n const _removeShadowNodeFromRegistry: (viewTag: number) => void;\n const _measure: (viewTag: number) => MeasuredDimensions;\n const _scrollTo: (\n viewTag: number,\n x: number,\n y: number,\n animated: boolean\n ) => void;\n const _dispatchCommand: (\n shadowNodeWrapper: ShadowNodeWrapper,\n commandName: string,\n args: Array<unknown>\n ) => void;\n const performance: { now: () => number };\n const ReanimatedDataMock: {\n now: () => number;\n };\n const ErrorUtils: {\n reportFatalError: (error: Error) => void;\n };\n const _frameCallbackRegistry: FrameCallbackRegistryUI;\n const requestAnimationFrame: (callback: (time: number) => void) => number;\n const setImmediate: (callback: (time: number) => void) => number;\n const console: Console;\n\n namespace NodeJS {\n interface Global {\n _WORKLET: boolean;\n _IS_FABRIC: boolean;\n _REANIMATED_VERSION_CPP: string;\n __reanimatedModuleProxy: NativeReanimated;\n __frameTimestamp?: number;\n evalWithSourceMap: (\n js: string,\n sourceURL: string,\n sourceMap: string\n ) => any;\n evalWithSourceUrl: (js: string, sourceURL: string) => any;\n _log: (s: string) => void;\n _getCurrentTime: () => number;\n _setGestureState: (handlerTag: number, newState: number) => void;\n _makeShareableClone: (value: any) => any;\n _updateDataSynchronously: (\n ShareableSyncDataHolderRef,\n ShareableRef\n ) => void;\n _scheduleOnJS: (fun: ShareableRef, args?: ShareableRef) => void;\n _updatePropsPaper: (\n tag: number,\n name: string,\n updates: StyleProps | AnimatedStyle\n ) => void;\n _updatePropsFabric: (\n shadowNodeWrapper: ShadowNodeWrapper,\n props: StyleProps | AnimatedStyle\n ) => void;\n _removeShadowNodeFromRegistry: (viewTag: number) => void;\n _measure: (viewTag: number) => MeasuredDimensions;\n _scrollTo: (\n viewTag: number,\n x: number,\n y: number,\n animated: boolean\n ) => void;\n _dispatchCommand: (\n shadowNodeWrapper: ShadowNodeWrapper,\n commandName: string,\n args: Array<unknown>\n ) => void;\n performance: { now: () => number };\n LayoutAnimationsManager: {\n start: LayoutAnimationStartFunction;\n };\n ReanimatedDataMock: {\n now: () => number;\n };\n ErrorUtils: {\n reportFatalError: (error: Error) => void;\n };\n _frameCallbackRegistry: FrameCallbackRegistryUI;\n __workletsCache?: Map<string, (...args: any[]) => any>;\n __handleCache?: WeakMap<any, any>;\n __mapperRegistry?: MapperRegistry;\n __flushImmediates: () => void;\n __flushAnimationFrame: (frameTimestamp: number) => void;\n requestAnimationFrame: (callback: (time: number) => void) => number;\n setImmediate: (callback: (time: number) => void) => number;\n console: Console;\n }\n }\n}\n"],"mappings":""}
|
|
@@ -3,12 +3,6 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
Object.defineProperty(exports, "SensorType", {
|
|
7
|
-
enumerable: true,
|
|
8
|
-
get: function () {
|
|
9
|
-
return _useAnimatedSensor.SensorType;
|
|
10
|
-
}
|
|
11
|
-
});
|
|
12
6
|
Object.defineProperty(exports, "useAnimatedGestureHandler", {
|
|
13
7
|
enumerable: true,
|
|
14
8
|
get: function () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export type { DependencyList } from './commonTypes';\nexport {\n useAnimatedProps,\n useEvent,\n useHandler,\n useWorkletCallback,\n} from './Hooks';\nexport { useSharedValue } from './useSharedValue';\nexport { useAnimatedStyle } from './useAnimatedStyle';\nexport type { AnimatedStyleResult } from './useAnimatedStyle';\nexport { useAnimatedGestureHandler } from './useAnimatedGestureHandler';\nexport type {\n GestureHandlerEvent,\n GestureHandlers,\n} from './useAnimatedGestureHandler';\nexport { useAnimatedReaction } from './useAnimatedReaction';\nexport type { AnimatedReactionWorkletFunction } from './useAnimatedReaction';\nexport { useAnimatedRef } from './useAnimatedRef';\nexport { useAnimatedScrollHandler } from './useAnimatedScrollHandler';\nexport type { ScrollHandler, ScrollHandlers } from './useAnimatedScrollHandler';\nexport { useDerivedValue } from './useDerivedValue';\nexport type { DerivedValue } from './useDerivedValue';\nexport { useAnimatedSensor
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export type { DependencyList } from './commonTypes';\nexport {\n useAnimatedProps,\n useEvent,\n useHandler,\n useWorkletCallback,\n} from './Hooks';\nexport { useSharedValue } from './useSharedValue';\nexport { useAnimatedStyle } from './useAnimatedStyle';\nexport type { AnimatedStyleResult } from './useAnimatedStyle';\nexport { useAnimatedGestureHandler } from './useAnimatedGestureHandler';\nexport type {\n GestureHandlerEvent,\n GestureHandlers,\n} from './useAnimatedGestureHandler';\nexport { useAnimatedReaction } from './useAnimatedReaction';\nexport type { AnimatedReactionWorkletFunction } from './useAnimatedReaction';\nexport { useAnimatedRef } from './useAnimatedRef';\nexport { useAnimatedScrollHandler } from './useAnimatedScrollHandler';\nexport type { ScrollHandler, ScrollHandlers } from './useAnimatedScrollHandler';\nexport { useDerivedValue } from './useDerivedValue';\nexport type { DerivedValue } from './useDerivedValue';\nexport { useAnimatedSensor } from './useAnimatedSensor';\nexport { useFrameCallback } from './useFrameCallback';\nexport type { FrameCallback } from './useFrameCallback';\nexport { useAnimatedKeyboard } from './useAnimatedKeyboard';\nexport { useScrollViewOffset } from './useScrollViewOffset';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AAMA;;AACA;;AAEA;;AAKA;;AAEA;;AACA;;AAEA;;AAEA;;AACA;;AAEA;;AACA"}
|
|
@@ -12,6 +12,9 @@ var _core = require("../core");
|
|
|
12
12
|
var _commonTypes = require("../commonTypes");
|
|
13
13
|
|
|
14
14
|
function useAnimatedKeyboard() {
|
|
15
|
+
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
|
|
16
|
+
isStatusBarTranslucentAndroid: false
|
|
17
|
+
};
|
|
15
18
|
const ref = (0, _react.useRef)(null);
|
|
16
19
|
const listenerId = (0, _react.useRef)(-1);
|
|
17
20
|
const isSubscribed = (0, _react.useRef)(false);
|
|
@@ -26,7 +29,7 @@ function useAnimatedKeyboard() {
|
|
|
26
29
|
|
|
27
30
|
keyboardEventData.state.value = state;
|
|
28
31
|
keyboardEventData.height.value = height;
|
|
29
|
-
});
|
|
32
|
+
}, options);
|
|
30
33
|
ref.current = keyboardEventData;
|
|
31
34
|
isSubscribed.current = true;
|
|
32
35
|
}
|
|
@@ -40,7 +43,7 @@ function useAnimatedKeyboard() {
|
|
|
40
43
|
|
|
41
44
|
keyboardEventData.state.value = state;
|
|
42
45
|
keyboardEventData.height.value = height;
|
|
43
|
-
});
|
|
46
|
+
}, options);
|
|
44
47
|
isSubscribed.current = true;
|
|
45
48
|
}
|
|
46
49
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useAnimatedKeyboard","ref","useRef","listenerId","isSubscribed","current","keyboardEventData","state","makeMutable","KeyboardState","UNKNOWN","height","subscribeForKeyboardEvents","value","useEffect","unsubscribeFromKeyboardEvents"],"sources":["useAnimatedKeyboard.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport {\n makeMutable,\n subscribeForKeyboardEvents,\n unsubscribeFromKeyboardEvents,\n} from '../core';\nimport {
|
|
1
|
+
{"version":3,"names":["useAnimatedKeyboard","options","isStatusBarTranslucentAndroid","ref","useRef","listenerId","isSubscribed","current","keyboardEventData","state","makeMutable","KeyboardState","UNKNOWN","height","subscribeForKeyboardEvents","value","useEffect","unsubscribeFromKeyboardEvents"],"sources":["useAnimatedKeyboard.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport {\n makeMutable,\n subscribeForKeyboardEvents,\n unsubscribeFromKeyboardEvents,\n} from '../core';\nimport {\n AnimatedKeyboardInfo,\n AnimatedKeyboardOptions,\n KeyboardState,\n} from '../commonTypes';\n\nexport function useAnimatedKeyboard(\n options: AnimatedKeyboardOptions = { isStatusBarTranslucentAndroid: false }\n): AnimatedKeyboardInfo {\n const ref = useRef<AnimatedKeyboardInfo | null>(null);\n const listenerId = useRef<number>(-1);\n const isSubscribed = useRef<boolean>(false);\n\n if (ref.current === null) {\n const keyboardEventData: AnimatedKeyboardInfo = {\n state: makeMutable<KeyboardState>(KeyboardState.UNKNOWN),\n height: makeMutable(0),\n };\n listenerId.current = subscribeForKeyboardEvents((state, height) => {\n 'worklet';\n keyboardEventData.state.value = state;\n keyboardEventData.height.value = height;\n }, options);\n ref.current = keyboardEventData;\n isSubscribed.current = true;\n }\n useEffect(() => {\n if (isSubscribed.current === false && ref.current !== null) {\n const keyboardEventData = ref.current;\n // subscribe again after Fast Refresh\n listenerId.current = subscribeForKeyboardEvents((state, height) => {\n 'worklet';\n keyboardEventData.state.value = state;\n keyboardEventData.height.value = height;\n }, options);\n isSubscribed.current = true;\n }\n return () => {\n unsubscribeFromKeyboardEvents(listenerId.current);\n isSubscribed.current = false;\n };\n }, []);\n return ref.current;\n}\n"],"mappings":";;;;;;;AAAA;;AACA;;AAKA;;AAMO,SAASA,mBAAT,GAEiB;EAAA,IADtBC,OACsB,uEADa;IAAEC,6BAA6B,EAAE;EAAjC,CACb;EACtB,MAAMC,GAAG,GAAG,IAAAC,aAAA,EAAoC,IAApC,CAAZ;EACA,MAAMC,UAAU,GAAG,IAAAD,aAAA,EAAe,CAAC,CAAhB,CAAnB;EACA,MAAME,YAAY,GAAG,IAAAF,aAAA,EAAgB,KAAhB,CAArB;;EAEA,IAAID,GAAG,CAACI,OAAJ,KAAgB,IAApB,EAA0B;IACxB,MAAMC,iBAAuC,GAAG;MAC9CC,KAAK,EAAE,IAAAC,iBAAA,EAA2BC,0BAAA,CAAcC,OAAzC,CADuC;MAE9CC,MAAM,EAAE,IAAAH,iBAAA,EAAY,CAAZ;IAFsC,CAAhD;IAIAL,UAAU,CAACE,OAAX,GAAqB,IAAAO,gCAAA,EAA2B,CAACL,KAAD,EAAQI,MAAR,KAAmB;MACjE;;MACAL,iBAAiB,CAACC,KAAlB,CAAwBM,KAAxB,GAAgCN,KAAhC;MACAD,iBAAiB,CAACK,MAAlB,CAAyBE,KAAzB,GAAiCF,MAAjC;IACD,CAJoB,EAIlBZ,OAJkB,CAArB;IAKAE,GAAG,CAACI,OAAJ,GAAcC,iBAAd;IACAF,YAAY,CAACC,OAAb,GAAuB,IAAvB;EACD;;EACD,IAAAS,gBAAA,EAAU,MAAM;IACd,IAAIV,YAAY,CAACC,OAAb,KAAyB,KAAzB,IAAkCJ,GAAG,CAACI,OAAJ,KAAgB,IAAtD,EAA4D;MAC1D,MAAMC,iBAAiB,GAAGL,GAAG,CAACI,OAA9B,CAD0D,CAE1D;;MACAF,UAAU,CAACE,OAAX,GAAqB,IAAAO,gCAAA,EAA2B,CAACL,KAAD,EAAQI,MAAR,KAAmB;QACjE;;QACAL,iBAAiB,CAACC,KAAlB,CAAwBM,KAAxB,GAAgCN,KAAhC;QACAD,iBAAiB,CAACK,MAAlB,CAAyBE,KAAzB,GAAiCF,MAAjC;MACD,CAJoB,EAIlBZ,OAJkB,CAArB;MAKAK,YAAY,CAACC,OAAb,GAAuB,IAAvB;IACD;;IACD,OAAO,MAAM;MACX,IAAAU,mCAAA,EAA8BZ,UAAU,CAACE,OAAzC;MACAD,YAAY,CAACC,OAAb,GAAuB,KAAvB;IACD,CAHD;EAID,CAfD,EAeG,EAfH;EAgBA,OAAOJ,GAAG,CAACI,OAAX;AACD"}
|
|
@@ -11,6 +11,8 @@ var _core = require("../core");
|
|
|
11
11
|
|
|
12
12
|
var _useSharedValue = require("./useSharedValue");
|
|
13
13
|
|
|
14
|
+
var _PlatformChecker = require("../PlatformChecker");
|
|
15
|
+
|
|
14
16
|
/**
|
|
15
17
|
* @param prepare - worklet used for data preparation for the second parameter
|
|
16
18
|
* @param react - worklet which takes data prepared by the one in the first parameter and performs certain actions
|
|
@@ -19,6 +21,16 @@ var _useSharedValue = require("./useSharedValue");
|
|
|
19
21
|
*/
|
|
20
22
|
function useAnimatedReaction(prepare, react, dependencies) {
|
|
21
23
|
const previous = (0, _useSharedValue.useSharedValue)(null);
|
|
24
|
+
let inputs = Object.values(prepare._closure ?? {});
|
|
25
|
+
|
|
26
|
+
if ((0, _PlatformChecker.shouldBeUseWeb)()) {
|
|
27
|
+
var _dependencies;
|
|
28
|
+
|
|
29
|
+
if (!inputs.length && (_dependencies = dependencies) !== null && _dependencies !== void 0 && _dependencies.length) {
|
|
30
|
+
// let web work without a Babel/SWC plugin
|
|
31
|
+
inputs = dependencies;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
22
34
|
|
|
23
35
|
if (dependencies === undefined) {
|
|
24
36
|
dependencies = [Object.values(prepare._closure ?? {}), Object.values(react._closure ?? {}), prepare.__workletHash, react.__workletHash];
|
|
@@ -35,7 +47,7 @@ function useAnimatedReaction(prepare, react, dependencies) {
|
|
|
35
47
|
previous.value = input;
|
|
36
48
|
};
|
|
37
49
|
|
|
38
|
-
const mapperId = (0, _core.startMapper)(fun,
|
|
50
|
+
const mapperId = (0, _core.startMapper)(fun, inputs, []);
|
|
39
51
|
return () => {
|
|
40
52
|
(0, _core.stopMapper)(mapperId);
|
|
41
53
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useAnimatedReaction","prepare","react","dependencies","previous","useSharedValue","
|
|
1
|
+
{"version":3,"names":["useAnimatedReaction","prepare","react","dependencies","previous","useSharedValue","inputs","Object","values","_closure","shouldBeUseWeb","length","undefined","__workletHash","push","useEffect","fun","input","value","mapperId","startMapper","stopMapper"],"sources":["useAnimatedReaction.ts"],"sourcesContent":["import { useEffect } from 'react';\nimport { BasicWorkletFunction, WorkletFunction } from '../commonTypes';\nimport { startMapper, stopMapper } from '../core';\nimport { DependencyList } from './commonTypes';\nimport { useSharedValue } from './useSharedValue';\nimport { shouldBeUseWeb } from '../PlatformChecker';\n\nexport interface AnimatedReactionWorkletFunction<T> extends WorkletFunction {\n (prepared: T, previous: T | null): void;\n}\n/**\n * @param prepare - worklet used for data preparation for the second parameter\n * @param react - worklet which takes data prepared by the one in the first parameter and performs certain actions\n * the first worklet defines the inputs, in other words on which shared values change will it be called.\n * the second one can modify any shared values but those which are mentioned in the first worklet. Beware of that, because this may result in endless loop and high cpu usage.\n */\nexport function useAnimatedReaction<T>(\n prepare: BasicWorkletFunction<T>,\n react: AnimatedReactionWorkletFunction<T>,\n dependencies: DependencyList\n): void {\n const previous = useSharedValue<T | null>(null);\n\n let inputs = Object.values(prepare._closure ?? {});\n\n if (shouldBeUseWeb()) {\n if (!inputs.length && dependencies?.length) {\n // let web work without a Babel/SWC plugin\n inputs = dependencies;\n }\n }\n\n if (dependencies === undefined) {\n dependencies = [\n Object.values(prepare._closure ?? {}),\n Object.values(react._closure ?? {}),\n prepare.__workletHash,\n react.__workletHash,\n ];\n } else {\n dependencies.push(prepare.__workletHash, react.__workletHash);\n }\n\n useEffect(() => {\n const fun = () => {\n 'worklet';\n const input = prepare();\n react(input, previous.value);\n previous.value = input;\n };\n const mapperId = startMapper(fun, inputs, []);\n return () => {\n stopMapper(mapperId);\n };\n }, dependencies);\n}\n"],"mappings":";;;;;;;AAAA;;AAEA;;AAEA;;AACA;;AAKA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,mBAAT,CACLC,OADK,EAELC,KAFK,EAGLC,YAHK,EAIC;EACN,MAAMC,QAAQ,GAAG,IAAAC,8BAAA,EAAyB,IAAzB,CAAjB;EAEA,IAAIC,MAAM,GAAGC,MAAM,CAACC,MAAP,CAAcP,OAAO,CAACQ,QAAR,IAAoB,EAAlC,CAAb;;EAEA,IAAI,IAAAC,+BAAA,GAAJ,EAAsB;IAAA;;IACpB,IAAI,CAACJ,MAAM,CAACK,MAAR,qBAAkBR,YAAlB,0CAAkB,cAAcQ,MAApC,EAA4C;MAC1C;MACAL,MAAM,GAAGH,YAAT;IACD;EACF;;EAED,IAAIA,YAAY,KAAKS,SAArB,EAAgC;IAC9BT,YAAY,GAAG,CACbI,MAAM,CAACC,MAAP,CAAcP,OAAO,CAACQ,QAAR,IAAoB,EAAlC,CADa,EAEbF,MAAM,CAACC,MAAP,CAAcN,KAAK,CAACO,QAAN,IAAkB,EAAhC,CAFa,EAGbR,OAAO,CAACY,aAHK,EAIbX,KAAK,CAACW,aAJO,CAAf;EAMD,CAPD,MAOO;IACLV,YAAY,CAACW,IAAb,CAAkBb,OAAO,CAACY,aAA1B,EAAyCX,KAAK,CAACW,aAA/C;EACD;;EAED,IAAAE,gBAAA,EAAU,MAAM;IACd,MAAMC,GAAG,GAAG,MAAM;MAChB;;MACA,MAAMC,KAAK,GAAGhB,OAAO,EAArB;MACAC,KAAK,CAACe,KAAD,EAAQb,QAAQ,CAACc,KAAjB,CAAL;MACAd,QAAQ,CAACc,KAAT,GAAiBD,KAAjB;IACD,CALD;;IAMA,MAAME,QAAQ,GAAG,IAAAC,iBAAA,EAAYJ,GAAZ,EAAiBV,MAAjB,EAAyB,EAAzB,CAAjB;IACA,OAAO,MAAM;MACX,IAAAe,gBAAA,EAAWF,QAAX;IACD,CAFD;EAGD,CAXD,EAWGhB,YAXH;AAYD"}
|
|
@@ -16,7 +16,7 @@ var _fabricUtils = require("../fabricUtils");
|
|
|
16
16
|
var _shareables = require("../shareables");
|
|
17
17
|
|
|
18
18
|
function getShareableShadowNodeFromComponent(component) {
|
|
19
|
-
return (0,
|
|
19
|
+
return (0, _fabricUtils.getShadowNodeWrapperFromHostInstance)(component);
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
const getTagValueFunction = global._IS_FABRIC ? getShareableShadowNodeFromComponent : _NativeMethods.getTag;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getShareableShadowNodeFromComponent","component","
|
|
1
|
+
{"version":3,"names":["getShareableShadowNodeFromComponent","component","getShadowNodeWrapperFromHostInstance","getTagValueFunction","global","_IS_FABRIC","getTag","useAnimatedRef","tag","useSharedValue","ref","useRef","current","fun","value","remoteRef","makeShareableCloneRecursive","__init","registerShareableMapping"],"sources":["useAnimatedRef.ts"],"sourcesContent":["import { Component, useRef } from 'react';\nimport { useSharedValue } from './useSharedValue';\nimport { RefObjectFunction } from './commonTypes';\nimport { ShadowNodeWrapper } from '../commonTypes';\nimport { getTag } from '../NativeMethods';\nimport { getShadowNodeWrapperFromHostInstance } from '../fabricUtils';\nimport {\n makeShareableCloneRecursive,\n registerShareableMapping,\n} from '../shareables';\n\nfunction getShareableShadowNodeFromComponent(\n component: Component\n): ShadowNodeWrapper {\n return getShadowNodeWrapperFromHostInstance(component);\n}\n\nconst getTagValueFunction = global._IS_FABRIC\n ? getShareableShadowNodeFromComponent\n : getTag;\n\nexport function useAnimatedRef<T extends Component>(): RefObjectFunction<T> {\n const tag = useSharedValue<number | ShadowNodeWrapper | null>(-1);\n const ref = useRef<RefObjectFunction<T>>();\n\n if (!ref.current) {\n const fun: RefObjectFunction<T> = <RefObjectFunction<T>>((component) => {\n // enters when ref is set by attaching to a component\n if (component) {\n tag.value = getTagValueFunction(component);\n fun.current = component;\n }\n return tag.value;\n });\n\n fun.current = null;\n\n const remoteRef = makeShareableCloneRecursive({\n __init: () => {\n 'worklet';\n return () => tag.value;\n },\n });\n registerShareableMapping(fun, remoteRef);\n\n ref.current = fun;\n }\n\n return ref.current;\n}\n"],"mappings":";;;;;;;AAAA;;AACA;;AAGA;;AACA;;AACA;;AAKA,SAASA,mCAAT,CACEC,SADF,EAEqB;EACnB,OAAO,IAAAC,iDAAA,EAAqCD,SAArC,CAAP;AACD;;AAED,MAAME,mBAAmB,GAAGC,MAAM,CAACC,UAAP,GACxBL,mCADwB,GAExBM,qBAFJ;;AAIO,SAASC,cAAT,GAAqE;EAC1E,MAAMC,GAAG,GAAG,IAAAC,8BAAA,EAAkD,CAAC,CAAnD,CAAZ;EACA,MAAMC,GAAG,GAAG,IAAAC,aAAA,GAAZ;;EAEA,IAAI,CAACD,GAAG,CAACE,OAAT,EAAkB;IAChB,MAAMC,GAAyB,GAA2BZ,SAAD,IAAe;MACtE;MACA,IAAIA,SAAJ,EAAe;QACbO,GAAG,CAACM,KAAJ,GAAYX,mBAAmB,CAACF,SAAD,CAA/B;QACAY,GAAG,CAACD,OAAJ,GAAcX,SAAd;MACD;;MACD,OAAOO,GAAG,CAACM,KAAX;IACD,CAPD;;IASAD,GAAG,CAACD,OAAJ,GAAc,IAAd;IAEA,MAAMG,SAAS,GAAG,IAAAC,uCAAA,EAA4B;MAC5CC,MAAM,EAAE,MAAM;QACZ;;QACA,OAAO,MAAMT,GAAG,CAACM,KAAjB;MACD;IAJ2C,CAA5B,CAAlB;IAMA,IAAAI,oCAAA,EAAyBL,GAAzB,EAA8BE,SAA9B;IAEAL,GAAG,CAACE,OAAJ,GAAcC,GAAd;EACD;;EAED,OAAOH,GAAG,CAACE,OAAX;AACD"}
|