@react-native-ohos/react-native-reanimated 4.0.1 → 4.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/compatibility.json +161 -161
- package/harmony/reanimated/BuildProfile.ets +1 -1
- package/harmony/reanimated/build-profile.json5 +18 -18
- package/harmony/reanimated/hvigorfile.ts +4 -4
- package/harmony/reanimated/index.ets +4 -4
- package/harmony/reanimated/oh-package-lock.json5 +39 -0
- package/harmony/reanimated/oh-package.json5 +12 -12
- package/harmony/reanimated/src/main/cpp/CMakeLists.txt +62 -62
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/AnimatedSensor/AnimatedSensorModule.cpp +81 -81
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/AnimatedSensor/AnimatedSensorModule.h +46 -46
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/InterpolatorRegistry.cpp +390 -390
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/InterpolatorRegistry.h +16 -16
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/definitions.h +30 -30
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/filters/FilterOp.cpp +46 -46
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/filters/FilterOp.h +23 -23
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/Quaternion.cpp +53 -53
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/Quaternion.h +21 -21
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix.cpp +166 -166
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix.h +71 -71
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix2D.cpp +368 -368
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix2D.h +53 -53
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix3D.cpp +594 -594
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix3D.h +67 -67
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformOp.cpp +52 -52
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformOp.h +26 -26
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/vectors.cpp +156 -156
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/vectors.h +76 -76
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSAngle.cpp +94 -94
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSAngle.h +33 -33
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSBoolean.cpp +48 -48
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSBoolean.h +31 -31
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSColor.cpp +135 -135
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSColor.h +61 -61
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSDiscreteArray.cpp +100 -100
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSDiscreteArray.h +45 -45
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSKeyword.cpp +81 -81
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSKeyword.h +53 -53
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSLength.cpp +122 -122
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSLength.h +38 -38
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSNumber.cpp +82 -82
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSNumber.h +63 -63
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSValue.h +118 -118
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSValueVariant.cpp +174 -174
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSValueVariant.h +111 -111
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSBoxShadow.cpp +196 -196
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSBoxShadow.h +66 -66
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSDropShadow.cpp +134 -134
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSDropShadow.h +44 -44
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSAnimationConfig.cpp +174 -174
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSAnimationConfig.h +49 -49
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSKeyframesConfig.cpp +45 -45
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSKeyframesConfig.h +26 -26
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSTransitionConfig.cpp +90 -90
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSTransitionConfig.h +43 -43
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/common.cpp +17 -17
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/common.h +13 -13
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSAnimation.cpp +127 -127
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSAnimation.h +51 -51
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSTransition.cpp +145 -145
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSTransition.h +47 -47
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/EasingFunctions.cpp +69 -69
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/EasingFunctions.h +22 -22
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/cubicBezier.cpp +66 -66
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/cubicBezier.h +15 -15
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/linear.cpp +28 -28
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/linear.h +15 -15
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/steps.cpp +13 -13
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/steps.h +12 -12
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/InterpolatorFactory.cpp +157 -157
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/InterpolatorFactory.h +189 -189
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/PropertyInterpolator.cpp +76 -76
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/PropertyInterpolator.h +66 -66
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/configs.h +20 -20
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperation.cpp +136 -136
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperation.h +40 -40
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperationInterpolator.cpp +38 -38
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperationInterpolator.h +24 -24
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterStyleInterpolator.cpp +58 -58
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterStyleInterpolator.h +24 -24
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/blur.h +14 -14
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/brightness.h +14 -14
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/contrast.h +14 -14
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/dropShadow.h +17 -17
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/grayscale.h +14 -14
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/hueRotate.h +14 -14
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/invert.h +14 -14
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/opacity.h +14 -14
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/saturate.h +14 -14
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/sepia.h +14 -14
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/ArrayPropertiesInterpolator.cpp +95 -95
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/ArrayPropertiesInterpolator.h +36 -36
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/GroupPropertiesInterpolator.cpp +41 -41
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/GroupPropertiesInterpolator.h +32 -32
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/RecordPropertiesInterpolator.cpp +99 -99
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/RecordPropertiesInterpolator.h +37 -37
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/OperationsStyleInterpolator.cpp +308 -308
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/OperationsStyleInterpolator.h +100 -100
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperation.cpp +19 -19
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperation.h +94 -94
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperationInterpolator.cpp +18 -18
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperationInterpolator.h +43 -43
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/styles/AnimationStyleInterpolator.h +26 -26
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/styles/TransitionStyleInterpolator.cpp +103 -103
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/styles/TransitionStyleInterpolator.h +42 -42
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperation.cpp +224 -224
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperation.h +52 -52
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperationInterpolator.cpp +218 -218
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperationInterpolator.h +89 -89
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformsStyleInterpolator.cpp +149 -149
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformsStyleInterpolator.h +33 -33
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/matrix.cpp +208 -208
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/matrix.h +56 -56
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/perspective.cpp +42 -42
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/perspective.h +20 -20
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/rotate.cpp +41 -41
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/rotate.h +39 -39
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/scale.cpp +28 -28
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/scale.h +25 -25
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/skew.cpp +14 -14
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/skew.h +20 -20
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/translate.cpp +39 -39
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/translate.h +25 -25
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ResolvableValueInterpolator.cpp +47 -47
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ResolvableValueInterpolator.h +43 -43
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/SimpleValueInterpolator.cpp +70 -70
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/SimpleValueInterpolator.h +40 -40
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ValueInterpolator.cpp +146 -146
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ValueInterpolator.h +71 -71
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/misc/ViewStylesRepository.cpp +155 -155
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/misc/ViewStylesRepository.h +53 -53
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/AnimationProgressProvider.cpp +170 -170
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/AnimationProgressProvider.h +67 -67
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/KeyframeProgressProvider.h +12 -12
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/RawProgressProvider.cpp +41 -41
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/RawProgressProvider.h +31 -31
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/TransitionProgressProvider.cpp +193 -193
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/TransitionProgressProvider.h +77 -77
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSAnimationsRegistry.cpp +340 -340
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSAnimationsRegistry.h +80 -80
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSKeyframesRegistry.cpp +45 -45
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSKeyframesRegistry.h +29 -29
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSTransitionsRegistry.cpp +167 -167
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSTransitionsRegistry.h +51 -51
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/StaticPropsRegistry.cpp +61 -61
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/StaticPropsRegistry.h +33 -33
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGBrush.cpp +80 -80
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGBrush.h +39 -39
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGLength.cpp +93 -93
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGLength.h +36 -36
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGStrokeDashArray.cpp +111 -111
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGStrokeDashArray.h +33 -33
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/DelayedItemsManager.cpp +75 -75
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/DelayedItemsManager.h +45 -45
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/algorithms.cpp +12 -12
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/algorithms.h +10 -10
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/interpolators.cpp +36 -36
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/interpolators.h +23 -23
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/props.cpp +149 -149
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/props.h +32 -32
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedCommitHook.cpp +113 -113
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedCommitHook.h +49 -49
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedCommitShadowNode.h +46 -46
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedMountHook.cpp +56 -56
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedMountHook.h +37 -37
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ShadowTreeCloner.cpp +104 -104
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ShadowTreeCloner.h +22 -22
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/AnimatedPropsRegistry.cpp +72 -72
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/AnimatedPropsRegistry.h +25 -25
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistry.cpp +160 -160
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistry.h +71 -71
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistryManager.cpp +161 -161
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistryManager.h +65 -65
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationType.h +11 -11
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsManager.cpp +137 -137
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsManager.h +82 -82
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxyCommon.cpp +79 -79
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxyCommon.h +81 -81
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Experimental.cpp +864 -864
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Experimental.h +214 -214
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Legacy.cpp +897 -897
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Legacy.h +220 -220
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsUtils.cpp +31 -31
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsUtils.h +146 -146
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/PropsDiffer.cpp +456 -456
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/PropsDiffer.h +102 -102
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/SharedTransitions.cpp +544 -544
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/PropValueProcessor.cpp +119 -119
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/PropValueProcessor.h +39 -39
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxy.cpp +1380 -1380
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxy.h +230 -230
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxySpec.cpp +183 -183
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxySpec.h +93 -93
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/RNRuntimeDecorator.cpp +54 -54
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/RNRuntimeDecorator.h +28 -28
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/UIRuntimeDecorator.cpp +58 -58
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/UIRuntimeDecorator.h +31 -31
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/FeatureFlags.cpp +18 -18
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/FeatureFlags.h +44 -44
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/PlatformDepMethodsHolder.h +67 -67
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/ReanimatedSystraceSection.h +114 -114
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/ReanimatedVersion.cpp +46 -46
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/ReanimatedVersion.h +18 -18
- package/harmony/reanimated/src/main/cpp/ReanimatedModule.cpp +246 -233
- package/harmony/reanimated/src/main/cpp/ReanimatedModule.h +23 -23
- package/harmony/reanimated/src/main/cpp/ReanimatedNodesManager.cpp +56 -56
- package/harmony/reanimated/src/main/cpp/ReanimatedNodesManager.h +30 -30
- package/harmony/reanimated/src/main/cpp/ReanimatedPackage.cpp +44 -44
- package/harmony/reanimated/src/main/cpp/ReanimatedPackage.h +16 -16
- package/harmony/reanimated/src/main/cpp/ReanimatedSensor.cpp +265 -265
- package/harmony/reanimated/src/main/cpp/ReanimatedSensor.h +36 -36
- package/harmony/reanimated/src/main/cpp/ReanimatedSensorContainer.cpp +35 -35
- package/harmony/reanimated/src/main/cpp/ReanimatedSensorContainer.h +23 -23
- package/harmony/reanimated/src/main/cpp/ReanimatedUIScheduler.cpp +23 -23
- package/harmony/reanimated/src/main/cpp/ReanimatedUIScheduler.h +19 -19
- package/harmony/reanimated/src/main/cpp/TransformParser.h +93 -93
- package/harmony/reanimated/src/main/ets/AnimationManager.ts +60 -60
- package/harmony/reanimated/src/main/ets/ReanimatedModule.ts +62 -51
- package/harmony/reanimated/src/main/ets/ReanimatedPackage.ts +25 -25
- package/harmony/reanimated/src/main/module.json5 +12 -12
- package/harmony/reanimated/src/main/resources/base/element/color.json +7 -7
- package/harmony/reanimated/src/main/resources/base/element/string.json +15 -15
- package/harmony/reanimated/src/main/resources/base/profile/main_pages.json +5 -5
- package/harmony/reanimated/src/main/resources/en_US/element/string.json +15 -15
- package/harmony/reanimated/src/main/resources/zh_CN/element/string.json +15 -15
- package/harmony/reanimated/ts.ts +6 -6
- package/harmony/reanimated.har +0 -0
- package/package.json +70 -69
- package/scripts/deploy.js +191 -191
- package/scripts/set-reanimated-version.js +37 -37
- package/scripts/update-version.js +119 -119
- package/scripts/validate-react-native-version.js +46 -46
- package/scripts/validate-worklets-build.js +17 -17
- package/scripts/validate-worklets-version.js +84 -84
- package/scripts/worklets-version.json +4 -4
- package/src/index.ts +9 -9
|
@@ -1,137 +1,137 @@
|
|
|
1
|
-
#include <reanimated/LayoutAnimations/LayoutAnimationsManager.h>
|
|
2
|
-
|
|
3
|
-
#include <memory>
|
|
4
|
-
#include <unordered_map>
|
|
5
|
-
#include <utility>
|
|
6
|
-
#include <vector>
|
|
7
|
-
|
|
8
|
-
namespace reanimated {
|
|
9
|
-
|
|
10
|
-
void LayoutAnimationsManager::configureAnimationBatch(const std::vector<LayoutAnimationConfig> &layoutAnimationsBatch) {
|
|
11
|
-
auto lock = std::unique_lock<std::recursive_mutex>(animationsMutex_);
|
|
12
|
-
for (const auto &layoutAnimationConfig : layoutAnimationsBatch) {
|
|
13
|
-
const auto &[tag, type, config, sharedTag] = layoutAnimationConfig;
|
|
14
|
-
|
|
15
|
-
if (type == LayoutAnimationType::ENTERING) {
|
|
16
|
-
enteringAnimationsForNativeID_[tag] = config;
|
|
17
|
-
continue;
|
|
18
|
-
}
|
|
19
|
-
if (type == LayoutAnimationType::SHARED_ELEMENT_TRANSITION_NATIVE_ID) {
|
|
20
|
-
sharedTransitionsForNativeID_[tag] = config;
|
|
21
|
-
sharedTransitionManager_->nativeIDToName_[tag] = sharedTag;
|
|
22
|
-
continue;
|
|
23
|
-
}
|
|
24
|
-
if (type == LayoutAnimationType::SHARED_ELEMENT_TRANSITION) {
|
|
25
|
-
if (config == nullptr) {
|
|
26
|
-
// TODO (future): if the view was transitioned (e.g. so we are on the second screen)
|
|
27
|
-
// and we remove the config, we should also bring back the view (probably using tagsToRestore_)
|
|
28
|
-
sharedTransitions_.erase(tag);
|
|
29
|
-
sharedTransitionManager_->tagToName_.erase(tag);
|
|
30
|
-
} else {
|
|
31
|
-
sharedTransitions_[tag] = config;
|
|
32
|
-
sharedTransitionManager_->tagToName_[tag] = sharedTag;
|
|
33
|
-
}
|
|
34
|
-
continue;
|
|
35
|
-
}
|
|
36
|
-
if (config == nullptr) {
|
|
37
|
-
getConfigsForType(type).erase(tag);
|
|
38
|
-
} else {
|
|
39
|
-
getConfigsForType(type)[tag] = config;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
void LayoutAnimationsManager::setShouldAnimateExiting(const int tag, const bool value) {
|
|
45
|
-
auto lock = std::unique_lock<std::recursive_mutex>(animationsMutex_);
|
|
46
|
-
shouldAnimateExitingForTag_[tag] = value;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
bool LayoutAnimationsManager::shouldAnimateExiting(const int tag, const bool shouldAnimate) {
|
|
50
|
-
auto lock = std::unique_lock<std::recursive_mutex>(animationsMutex_);
|
|
51
|
-
return shouldAnimateExitingForTag_.contains(tag) ? shouldAnimateExitingForTag_[tag] : shouldAnimate;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
bool LayoutAnimationsManager::hasLayoutAnimation(const int tag, const LayoutAnimationType type) {
|
|
55
|
-
auto lock = std::unique_lock<std::recursive_mutex>(animationsMutex_);
|
|
56
|
-
return getConfigsForType(type).contains(tag);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
void LayoutAnimationsManager::clearLayoutAnimationConfig(const int tag) {
|
|
60
|
-
auto lock = std::unique_lock<std::recursive_mutex>(animationsMutex_);
|
|
61
|
-
enteringAnimations_.erase(tag);
|
|
62
|
-
exitingAnimations_.erase(tag);
|
|
63
|
-
layoutAnimations_.erase(tag);
|
|
64
|
-
shouldAnimateExitingForTag_.erase(tag);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
void LayoutAnimationsManager::startLayoutAnimation(
|
|
68
|
-
jsi::Runtime &rt,
|
|
69
|
-
const int tag,
|
|
70
|
-
const LayoutAnimationType type,
|
|
71
|
-
const jsi::Object &values) {
|
|
72
|
-
std::shared_ptr<Serializable> config;
|
|
73
|
-
{
|
|
74
|
-
auto lock = std::unique_lock<std::recursive_mutex>(animationsMutex_);
|
|
75
|
-
if (!getConfigsForType(type).contains(tag)) {
|
|
76
|
-
return;
|
|
77
|
-
}
|
|
78
|
-
config = getConfigsForType(type)[tag];
|
|
79
|
-
}
|
|
80
|
-
// TODO: cache the following!!
|
|
81
|
-
jsi::Value layoutAnimationRepositoryAsValue =
|
|
82
|
-
rt.global().getPropertyAsObject(rt, "global").getProperty(rt, "LayoutAnimationsManager");
|
|
83
|
-
jsi::Function startAnimationForTag =
|
|
84
|
-
layoutAnimationRepositoryAsValue.getObject(rt).getPropertyAsFunction(rt, "start");
|
|
85
|
-
startAnimationForTag.call(rt, jsi::Value(tag), jsi::Value(static_cast<int>(type)), values, config->toJSValue(rt));
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
void LayoutAnimationsManager::cancelLayoutAnimation(jsi::Runtime &rt, const int tag) const {
|
|
89
|
-
jsi::Value layoutAnimationRepositoryAsValue =
|
|
90
|
-
rt.global().getPropertyAsObject(rt, "global").getProperty(rt, "LayoutAnimationsManager");
|
|
91
|
-
jsi::Function cancelLayoutAnimation =
|
|
92
|
-
layoutAnimationRepositoryAsValue.getObject(rt).getPropertyAsFunction(rt, "stop");
|
|
93
|
-
cancelLayoutAnimation.call(rt, jsi::Value(tag));
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
void LayoutAnimationsManager::transferConfigFromNativeID(const int nativeId, const int tag) {
|
|
97
|
-
auto lock = std::unique_lock<std::recursive_mutex>(animationsMutex_);
|
|
98
|
-
const auto config = enteringAnimationsForNativeID_[nativeId];
|
|
99
|
-
if (config) {
|
|
100
|
-
enteringAnimations_.insert_or_assign(tag, config);
|
|
101
|
-
}
|
|
102
|
-
enteringAnimationsForNativeID_.erase(nativeId);
|
|
103
|
-
|
|
104
|
-
const auto sharedTransitionConfig = sharedTransitionsForNativeID_[nativeId];
|
|
105
|
-
if (sharedTransitionConfig) {
|
|
106
|
-
sharedTransitions_.insert_or_assign(tag, sharedTransitionConfig);
|
|
107
|
-
sharedTransitionManager_->tagToName_[tag] = sharedTransitionManager_->nativeIDToName_[nativeId];
|
|
108
|
-
}
|
|
109
|
-
sharedTransitionsForNativeID_.erase(nativeId);
|
|
110
|
-
sharedTransitionManager_->nativeIDToName_.erase(nativeId);
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
void LayoutAnimationsManager::transferSharedConfig(const Tag from, const Tag to) {
|
|
114
|
-
sharedTransitions_[to] = sharedTransitions_[from];
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
std::shared_ptr<SharedTransitionManager> LayoutAnimationsManager::getSharedTransitionManager() {
|
|
118
|
-
return sharedTransitionManager_;
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
std::unordered_map<int, std::shared_ptr<Serializable>> &LayoutAnimationsManager::getConfigsForType(
|
|
122
|
-
const LayoutAnimationType type) {
|
|
123
|
-
switch (type) {
|
|
124
|
-
case LayoutAnimationType::ENTERING:
|
|
125
|
-
return enteringAnimations_;
|
|
126
|
-
case LayoutAnimationType::EXITING:
|
|
127
|
-
return exitingAnimations_;
|
|
128
|
-
case LayoutAnimationType::LAYOUT:
|
|
129
|
-
return layoutAnimations_;
|
|
130
|
-
case LayoutAnimationType::SHARED_ELEMENT_TRANSITION:
|
|
131
|
-
return sharedTransitions_;
|
|
132
|
-
default:
|
|
133
|
-
throw std::invalid_argument("[Reanimated] Unknown layout animation type");
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
} // namespace reanimated
|
|
1
|
+
#include <reanimated/LayoutAnimations/LayoutAnimationsManager.h>
|
|
2
|
+
|
|
3
|
+
#include <memory>
|
|
4
|
+
#include <unordered_map>
|
|
5
|
+
#include <utility>
|
|
6
|
+
#include <vector>
|
|
7
|
+
|
|
8
|
+
namespace reanimated {
|
|
9
|
+
|
|
10
|
+
void LayoutAnimationsManager::configureAnimationBatch(const std::vector<LayoutAnimationConfig> &layoutAnimationsBatch) {
|
|
11
|
+
auto lock = std::unique_lock<std::recursive_mutex>(animationsMutex_);
|
|
12
|
+
for (const auto &layoutAnimationConfig : layoutAnimationsBatch) {
|
|
13
|
+
const auto &[tag, type, config, sharedTag] = layoutAnimationConfig;
|
|
14
|
+
|
|
15
|
+
if (type == LayoutAnimationType::ENTERING) {
|
|
16
|
+
enteringAnimationsForNativeID_[tag] = config;
|
|
17
|
+
continue;
|
|
18
|
+
}
|
|
19
|
+
if (type == LayoutAnimationType::SHARED_ELEMENT_TRANSITION_NATIVE_ID) {
|
|
20
|
+
sharedTransitionsForNativeID_[tag] = config;
|
|
21
|
+
sharedTransitionManager_->nativeIDToName_[tag] = sharedTag;
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
24
|
+
if (type == LayoutAnimationType::SHARED_ELEMENT_TRANSITION) {
|
|
25
|
+
if (config == nullptr) {
|
|
26
|
+
// TODO (future): if the view was transitioned (e.g. so we are on the second screen)
|
|
27
|
+
// and we remove the config, we should also bring back the view (probably using tagsToRestore_)
|
|
28
|
+
sharedTransitions_.erase(tag);
|
|
29
|
+
sharedTransitionManager_->tagToName_.erase(tag);
|
|
30
|
+
} else {
|
|
31
|
+
sharedTransitions_[tag] = config;
|
|
32
|
+
sharedTransitionManager_->tagToName_[tag] = sharedTag;
|
|
33
|
+
}
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
if (config == nullptr) {
|
|
37
|
+
getConfigsForType(type).erase(tag);
|
|
38
|
+
} else {
|
|
39
|
+
getConfigsForType(type)[tag] = config;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
void LayoutAnimationsManager::setShouldAnimateExiting(const int tag, const bool value) {
|
|
45
|
+
auto lock = std::unique_lock<std::recursive_mutex>(animationsMutex_);
|
|
46
|
+
shouldAnimateExitingForTag_[tag] = value;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
bool LayoutAnimationsManager::shouldAnimateExiting(const int tag, const bool shouldAnimate) {
|
|
50
|
+
auto lock = std::unique_lock<std::recursive_mutex>(animationsMutex_);
|
|
51
|
+
return shouldAnimateExitingForTag_.contains(tag) ? shouldAnimateExitingForTag_[tag] : shouldAnimate;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
bool LayoutAnimationsManager::hasLayoutAnimation(const int tag, const LayoutAnimationType type) {
|
|
55
|
+
auto lock = std::unique_lock<std::recursive_mutex>(animationsMutex_);
|
|
56
|
+
return getConfigsForType(type).contains(tag);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
void LayoutAnimationsManager::clearLayoutAnimationConfig(const int tag) {
|
|
60
|
+
auto lock = std::unique_lock<std::recursive_mutex>(animationsMutex_);
|
|
61
|
+
enteringAnimations_.erase(tag);
|
|
62
|
+
exitingAnimations_.erase(tag);
|
|
63
|
+
layoutAnimations_.erase(tag);
|
|
64
|
+
shouldAnimateExitingForTag_.erase(tag);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
void LayoutAnimationsManager::startLayoutAnimation(
|
|
68
|
+
jsi::Runtime &rt,
|
|
69
|
+
const int tag,
|
|
70
|
+
const LayoutAnimationType type,
|
|
71
|
+
const jsi::Object &values) {
|
|
72
|
+
std::shared_ptr<Serializable> config;
|
|
73
|
+
{
|
|
74
|
+
auto lock = std::unique_lock<std::recursive_mutex>(animationsMutex_);
|
|
75
|
+
if (!getConfigsForType(type).contains(tag)) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
config = getConfigsForType(type)[tag];
|
|
79
|
+
}
|
|
80
|
+
// TODO: cache the following!!
|
|
81
|
+
jsi::Value layoutAnimationRepositoryAsValue =
|
|
82
|
+
rt.global().getPropertyAsObject(rt, "global").getProperty(rt, "LayoutAnimationsManager");
|
|
83
|
+
jsi::Function startAnimationForTag =
|
|
84
|
+
layoutAnimationRepositoryAsValue.getObject(rt).getPropertyAsFunction(rt, "start");
|
|
85
|
+
startAnimationForTag.call(rt, jsi::Value(tag), jsi::Value(static_cast<int>(type)), values, config->toJSValue(rt));
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
void LayoutAnimationsManager::cancelLayoutAnimation(jsi::Runtime &rt, const int tag) const {
|
|
89
|
+
jsi::Value layoutAnimationRepositoryAsValue =
|
|
90
|
+
rt.global().getPropertyAsObject(rt, "global").getProperty(rt, "LayoutAnimationsManager");
|
|
91
|
+
jsi::Function cancelLayoutAnimation =
|
|
92
|
+
layoutAnimationRepositoryAsValue.getObject(rt).getPropertyAsFunction(rt, "stop");
|
|
93
|
+
cancelLayoutAnimation.call(rt, jsi::Value(tag));
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
void LayoutAnimationsManager::transferConfigFromNativeID(const int nativeId, const int tag) {
|
|
97
|
+
auto lock = std::unique_lock<std::recursive_mutex>(animationsMutex_);
|
|
98
|
+
const auto config = enteringAnimationsForNativeID_[nativeId];
|
|
99
|
+
if (config) {
|
|
100
|
+
enteringAnimations_.insert_or_assign(tag, config);
|
|
101
|
+
}
|
|
102
|
+
enteringAnimationsForNativeID_.erase(nativeId);
|
|
103
|
+
|
|
104
|
+
const auto sharedTransitionConfig = sharedTransitionsForNativeID_[nativeId];
|
|
105
|
+
if (sharedTransitionConfig) {
|
|
106
|
+
sharedTransitions_.insert_or_assign(tag, sharedTransitionConfig);
|
|
107
|
+
sharedTransitionManager_->tagToName_[tag] = sharedTransitionManager_->nativeIDToName_[nativeId];
|
|
108
|
+
}
|
|
109
|
+
sharedTransitionsForNativeID_.erase(nativeId);
|
|
110
|
+
sharedTransitionManager_->nativeIDToName_.erase(nativeId);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
void LayoutAnimationsManager::transferSharedConfig(const Tag from, const Tag to) {
|
|
114
|
+
sharedTransitions_[to] = sharedTransitions_[from];
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
std::shared_ptr<SharedTransitionManager> LayoutAnimationsManager::getSharedTransitionManager() {
|
|
118
|
+
return sharedTransitionManager_;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
std::unordered_map<int, std::shared_ptr<Serializable>> &LayoutAnimationsManager::getConfigsForType(
|
|
122
|
+
const LayoutAnimationType type) {
|
|
123
|
+
switch (type) {
|
|
124
|
+
case LayoutAnimationType::ENTERING:
|
|
125
|
+
return enteringAnimations_;
|
|
126
|
+
case LayoutAnimationType::EXITING:
|
|
127
|
+
return exitingAnimations_;
|
|
128
|
+
case LayoutAnimationType::LAYOUT:
|
|
129
|
+
return layoutAnimations_;
|
|
130
|
+
case LayoutAnimationType::SHARED_ELEMENT_TRANSITION:
|
|
131
|
+
return sharedTransitions_;
|
|
132
|
+
default:
|
|
133
|
+
throw std::invalid_argument("[Reanimated] Unknown layout animation type");
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
} // namespace reanimated
|
|
@@ -1,82 +1,82 @@
|
|
|
1
|
-
#pragma once
|
|
2
|
-
|
|
3
|
-
#include <react/renderer/graphics/Transform.h>
|
|
4
|
-
#include <react/renderer/mounting/ShadowView.h>
|
|
5
|
-
#include <reanimated/LayoutAnimations/LayoutAnimationType.h>
|
|
6
|
-
|
|
7
|
-
#include <worklets/SharedItems/Serializable.h>
|
|
8
|
-
#include <worklets/Tools/JSLogger.h>
|
|
9
|
-
|
|
10
|
-
#include <jsi/jsi.h>
|
|
11
|
-
#include <stdio.h>
|
|
12
|
-
#include <functional>
|
|
13
|
-
#include <memory>
|
|
14
|
-
#include <mutex>
|
|
15
|
-
#include <stack>
|
|
16
|
-
#include <string>
|
|
17
|
-
#include <unordered_map>
|
|
18
|
-
#include <unordered_set>
|
|
19
|
-
#include <utility>
|
|
20
|
-
#include <vector>
|
|
21
|
-
|
|
22
|
-
namespace reanimated {
|
|
23
|
-
|
|
24
|
-
using namespace facebook;
|
|
25
|
-
using namespace worklets;
|
|
26
|
-
using SharedTag = std::string;
|
|
27
|
-
|
|
28
|
-
// [0] is before and [1] is after (best to use BeforeOrAfter enum)
|
|
29
|
-
struct Transition {
|
|
30
|
-
ShadowView snapshot[2];
|
|
31
|
-
Tag parentTag[2] = {0, 0};
|
|
32
|
-
std::optional<Transform> transform[2];
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
struct SharedTransitionManager {
|
|
36
|
-
std::unordered_map<std::string, Tag> containerTags_;
|
|
37
|
-
std::unordered_map<Tag, std::string> tagToName_;
|
|
38
|
-
std::unordered_map<Tag, std::string> nativeIDToName_;
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
using TransitionMap = std::unordered_map<SharedTag, Transition>;
|
|
42
|
-
using Transitions = std::vector<std::pair<SharedTag, Transition>>;
|
|
43
|
-
|
|
44
|
-
struct LayoutAnimationConfig {
|
|
45
|
-
int tag;
|
|
46
|
-
LayoutAnimationType type;
|
|
47
|
-
std::shared_ptr<Serializable> config;
|
|
48
|
-
std::string sharedTransitionTag;
|
|
49
|
-
};
|
|
50
|
-
|
|
51
|
-
class LayoutAnimationsManager {
|
|
52
|
-
public:
|
|
53
|
-
explicit LayoutAnimationsManager(const std::shared_ptr<JSLogger> &jsLogger)
|
|
54
|
-
: jsLogger_(jsLogger), sharedTransitionManager_(std::make_shared<SharedTransitionManager>()) {}
|
|
55
|
-
void configureAnimationBatch(const std::vector<LayoutAnimationConfig> &layoutAnimationsBatch);
|
|
56
|
-
void setShouldAnimateExiting(const int tag, const bool value);
|
|
57
|
-
bool shouldAnimateExiting(const int tag, const bool shouldAnimate);
|
|
58
|
-
bool hasLayoutAnimation(const int tag, const LayoutAnimationType type);
|
|
59
|
-
void startLayoutAnimation(jsi::Runtime &rt, const int tag, const LayoutAnimationType type, const jsi::Object &values);
|
|
60
|
-
void clearLayoutAnimationConfig(const int tag);
|
|
61
|
-
void cancelLayoutAnimation(jsi::Runtime &rt, const int tag) const;
|
|
62
|
-
void transferConfigFromNativeID(const int nativeId, const int tag);
|
|
63
|
-
void transferSharedConfig(const Tag from, const Tag to);
|
|
64
|
-
std::shared_ptr<SharedTransitionManager> getSharedTransitionManager();
|
|
65
|
-
|
|
66
|
-
private:
|
|
67
|
-
std::unordered_map<int, std::shared_ptr<Serializable>> &getConfigsForType(const LayoutAnimationType type);
|
|
68
|
-
|
|
69
|
-
std::shared_ptr<JSLogger> jsLogger_;
|
|
70
|
-
std::shared_ptr<SharedTransitionManager> sharedTransitionManager_;
|
|
71
|
-
std::unordered_map<int, std::shared_ptr<Serializable>> enteringAnimationsForNativeID_;
|
|
72
|
-
std::unordered_map<int, std::shared_ptr<Serializable>> sharedTransitionsForNativeID_;
|
|
73
|
-
std::unordered_map<int, std::shared_ptr<Serializable>> sharedTransitions_;
|
|
74
|
-
std::unordered_map<int, std::shared_ptr<Serializable>> enteringAnimations_;
|
|
75
|
-
std::unordered_map<int, std::shared_ptr<Serializable>> exitingAnimations_;
|
|
76
|
-
std::unordered_map<int, std::shared_ptr<Serializable>> layoutAnimations_;
|
|
77
|
-
std::unordered_map<int, bool> shouldAnimateExitingForTag_;
|
|
78
|
-
mutable std::recursive_mutex animationsMutex_; // Protects `enteringAnimations_`, `exitingAnimations_`,
|
|
79
|
-
// `layoutAnimations_` and `shouldAnimateExitingForTag_`.
|
|
80
|
-
};
|
|
81
|
-
|
|
82
|
-
} // namespace reanimated
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include <react/renderer/graphics/Transform.h>
|
|
4
|
+
#include <react/renderer/mounting/ShadowView.h>
|
|
5
|
+
#include <reanimated/LayoutAnimations/LayoutAnimationType.h>
|
|
6
|
+
|
|
7
|
+
#include <worklets/SharedItems/Serializable.h>
|
|
8
|
+
#include <worklets/Tools/JSLogger.h>
|
|
9
|
+
|
|
10
|
+
#include <jsi/jsi.h>
|
|
11
|
+
#include <stdio.h>
|
|
12
|
+
#include <functional>
|
|
13
|
+
#include <memory>
|
|
14
|
+
#include <mutex>
|
|
15
|
+
#include <stack>
|
|
16
|
+
#include <string>
|
|
17
|
+
#include <unordered_map>
|
|
18
|
+
#include <unordered_set>
|
|
19
|
+
#include <utility>
|
|
20
|
+
#include <vector>
|
|
21
|
+
|
|
22
|
+
namespace reanimated {
|
|
23
|
+
|
|
24
|
+
using namespace facebook;
|
|
25
|
+
using namespace worklets;
|
|
26
|
+
using SharedTag = std::string;
|
|
27
|
+
|
|
28
|
+
// [0] is before and [1] is after (best to use BeforeOrAfter enum)
|
|
29
|
+
struct Transition {
|
|
30
|
+
ShadowView snapshot[2];
|
|
31
|
+
Tag parentTag[2] = {0, 0};
|
|
32
|
+
std::optional<Transform> transform[2];
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
struct SharedTransitionManager {
|
|
36
|
+
std::unordered_map<std::string, Tag> containerTags_;
|
|
37
|
+
std::unordered_map<Tag, std::string> tagToName_;
|
|
38
|
+
std::unordered_map<Tag, std::string> nativeIDToName_;
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
using TransitionMap = std::unordered_map<SharedTag, Transition>;
|
|
42
|
+
using Transitions = std::vector<std::pair<SharedTag, Transition>>;
|
|
43
|
+
|
|
44
|
+
struct LayoutAnimationConfig {
|
|
45
|
+
int tag;
|
|
46
|
+
LayoutAnimationType type;
|
|
47
|
+
std::shared_ptr<Serializable> config;
|
|
48
|
+
std::string sharedTransitionTag;
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
class LayoutAnimationsManager {
|
|
52
|
+
public:
|
|
53
|
+
explicit LayoutAnimationsManager(const std::shared_ptr<JSLogger> &jsLogger)
|
|
54
|
+
: jsLogger_(jsLogger), sharedTransitionManager_(std::make_shared<SharedTransitionManager>()) {}
|
|
55
|
+
void configureAnimationBatch(const std::vector<LayoutAnimationConfig> &layoutAnimationsBatch);
|
|
56
|
+
void setShouldAnimateExiting(const int tag, const bool value);
|
|
57
|
+
bool shouldAnimateExiting(const int tag, const bool shouldAnimate);
|
|
58
|
+
bool hasLayoutAnimation(const int tag, const LayoutAnimationType type);
|
|
59
|
+
void startLayoutAnimation(jsi::Runtime &rt, const int tag, const LayoutAnimationType type, const jsi::Object &values);
|
|
60
|
+
void clearLayoutAnimationConfig(const int tag);
|
|
61
|
+
void cancelLayoutAnimation(jsi::Runtime &rt, const int tag) const;
|
|
62
|
+
void transferConfigFromNativeID(const int nativeId, const int tag);
|
|
63
|
+
void transferSharedConfig(const Tag from, const Tag to);
|
|
64
|
+
std::shared_ptr<SharedTransitionManager> getSharedTransitionManager();
|
|
65
|
+
|
|
66
|
+
private:
|
|
67
|
+
std::unordered_map<int, std::shared_ptr<Serializable>> &getConfigsForType(const LayoutAnimationType type);
|
|
68
|
+
|
|
69
|
+
std::shared_ptr<JSLogger> jsLogger_;
|
|
70
|
+
std::shared_ptr<SharedTransitionManager> sharedTransitionManager_;
|
|
71
|
+
std::unordered_map<int, std::shared_ptr<Serializable>> enteringAnimationsForNativeID_;
|
|
72
|
+
std::unordered_map<int, std::shared_ptr<Serializable>> sharedTransitionsForNativeID_;
|
|
73
|
+
std::unordered_map<int, std::shared_ptr<Serializable>> sharedTransitions_;
|
|
74
|
+
std::unordered_map<int, std::shared_ptr<Serializable>> enteringAnimations_;
|
|
75
|
+
std::unordered_map<int, std::shared_ptr<Serializable>> exitingAnimations_;
|
|
76
|
+
std::unordered_map<int, std::shared_ptr<Serializable>> layoutAnimations_;
|
|
77
|
+
std::unordered_map<int, bool> shouldAnimateExitingForTag_;
|
|
78
|
+
mutable std::recursive_mutex animationsMutex_; // Protects `enteringAnimations_`, `exitingAnimations_`,
|
|
79
|
+
// `layoutAnimations_` and `shouldAnimateExitingForTag_`.
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
} // namespace reanimated
|
|
@@ -1,79 +1,79 @@
|
|
|
1
|
-
#include <ReactCommon/CallInvoker.h>
|
|
2
|
-
#include <folly/dynamic.h>
|
|
3
|
-
#include <react/renderer/uimanager/UIManagerBinding.h>
|
|
4
|
-
#include <reanimated/Fabric/ShadowTreeCloner.h>
|
|
5
|
-
#include <reanimated/LayoutAnimations/LayoutAnimationsProxyCommon.h>
|
|
6
|
-
|
|
7
|
-
#include <functional>
|
|
8
|
-
#include <memory>
|
|
9
|
-
#include <utility>
|
|
10
|
-
#include <vector>
|
|
11
|
-
|
|
12
|
-
namespace reanimated {
|
|
13
|
-
|
|
14
|
-
std::optional<facebook::react::SurfaceId>
|
|
15
|
-
LayoutAnimationsProxyCommon::onTransitionProgress(int tag, double progress, bool isClosing, bool isGoingForward) {
|
|
16
|
-
return std::nullopt;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
std::optional<facebook::react::SurfaceId> LayoutAnimationsProxyCommon::onGestureCancel() {
|
|
20
|
-
return std::nullopt;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
void LayoutAnimationsProxyCommon::startSurface(const SurfaceId surfaceId) {}
|
|
24
|
-
|
|
25
|
-
#ifdef ANDROID
|
|
26
|
-
|
|
27
|
-
const facebook::react::ShadowNode *findInShadowTreeByTag(const facebook::react::ShadowNode &node, Tag tag) {
|
|
28
|
-
if (node.getTag() == tag) {
|
|
29
|
-
return &node;
|
|
30
|
-
}
|
|
31
|
-
for (const auto &child : node.getChildren()) {
|
|
32
|
-
if (const auto result = findInShadowTreeByTag(*child, tag)) {
|
|
33
|
-
return result;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
return nullptr;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
void LayoutAnimationsProxyCommon::restoreOpacityInCaseOfFlakyEnteringAnimation(SurfaceId surfaceId) const {
|
|
40
|
-
std::vector<std::pair<double, Tag>> opacityToRestore;
|
|
41
|
-
for (const auto tag : finishedAnimationTags_) {
|
|
42
|
-
const auto &opacity = layoutAnimations_[tag].opacity;
|
|
43
|
-
if (opacity.has_value()) {
|
|
44
|
-
opacityToRestore.emplace_back(std::pair<double, Tag>{opacity.value(), tag});
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
if (opacityToRestore.empty()) {
|
|
48
|
-
// Animation was successfully finished, and the opacity was restored, so we
|
|
49
|
-
// don't need to do anything. Only the Entering animation has a set opacity
|
|
50
|
-
// value.
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
const std::weak_ptr<UIManager> weakUiManager = uiManager_;
|
|
54
|
-
jsInvoker_->invokeAsync([=](jsi::Runtime &runtime) {
|
|
55
|
-
auto uiManager = weakUiManager.lock();
|
|
56
|
-
if (!uiManager) {
|
|
57
|
-
return;
|
|
58
|
-
}
|
|
59
|
-
uiManager->getShadowTreeRegistry().visit(surfaceId, [=](ShadowTree const &shadowTree) {
|
|
60
|
-
shadowTree.commit(
|
|
61
|
-
[=](RootShadowNode const &oldRootShadowNode) {
|
|
62
|
-
const auto &rootShadowNode = static_cast<const ShadowNode &>(oldRootShadowNode);
|
|
63
|
-
PropsMap propsMap;
|
|
64
|
-
for (const auto &[opacity, tag] : opacityToRestore) {
|
|
65
|
-
const auto *targetShadowNode = findInShadowTreeByTag(rootShadowNode, tag);
|
|
66
|
-
if (targetShadowNode != nullptr) {
|
|
67
|
-
propsMap[&targetShadowNode->getFamily()].emplace_back(folly::dynamic::object("opacity", opacity));
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
return cloneShadowTreeWithNewProps(oldRootShadowNode, propsMap);
|
|
71
|
-
},
|
|
72
|
-
{});
|
|
73
|
-
});
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
#endif // ANDROID
|
|
78
|
-
|
|
79
|
-
} // namespace reanimated
|
|
1
|
+
#include <ReactCommon/CallInvoker.h>
|
|
2
|
+
#include <folly/dynamic.h>
|
|
3
|
+
#include <react/renderer/uimanager/UIManagerBinding.h>
|
|
4
|
+
#include <reanimated/Fabric/ShadowTreeCloner.h>
|
|
5
|
+
#include <reanimated/LayoutAnimations/LayoutAnimationsProxyCommon.h>
|
|
6
|
+
|
|
7
|
+
#include <functional>
|
|
8
|
+
#include <memory>
|
|
9
|
+
#include <utility>
|
|
10
|
+
#include <vector>
|
|
11
|
+
|
|
12
|
+
namespace reanimated {
|
|
13
|
+
|
|
14
|
+
std::optional<facebook::react::SurfaceId>
|
|
15
|
+
LayoutAnimationsProxyCommon::onTransitionProgress(int tag, double progress, bool isClosing, bool isGoingForward) {
|
|
16
|
+
return std::nullopt;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
std::optional<facebook::react::SurfaceId> LayoutAnimationsProxyCommon::onGestureCancel() {
|
|
20
|
+
return std::nullopt;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
void LayoutAnimationsProxyCommon::startSurface(const SurfaceId surfaceId) {}
|
|
24
|
+
|
|
25
|
+
#ifdef ANDROID
|
|
26
|
+
|
|
27
|
+
const facebook::react::ShadowNode *findInShadowTreeByTag(const facebook::react::ShadowNode &node, Tag tag) {
|
|
28
|
+
if (node.getTag() == tag) {
|
|
29
|
+
return &node;
|
|
30
|
+
}
|
|
31
|
+
for (const auto &child : node.getChildren()) {
|
|
32
|
+
if (const auto result = findInShadowTreeByTag(*child, tag)) {
|
|
33
|
+
return result;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return nullptr;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
void LayoutAnimationsProxyCommon::restoreOpacityInCaseOfFlakyEnteringAnimation(SurfaceId surfaceId) const {
|
|
40
|
+
std::vector<std::pair<double, Tag>> opacityToRestore;
|
|
41
|
+
for (const auto tag : finishedAnimationTags_) {
|
|
42
|
+
const auto &opacity = layoutAnimations_[tag].opacity;
|
|
43
|
+
if (opacity.has_value()) {
|
|
44
|
+
opacityToRestore.emplace_back(std::pair<double, Tag>{opacity.value(), tag});
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
if (opacityToRestore.empty()) {
|
|
48
|
+
// Animation was successfully finished, and the opacity was restored, so we
|
|
49
|
+
// don't need to do anything. Only the Entering animation has a set opacity
|
|
50
|
+
// value.
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
const std::weak_ptr<UIManager> weakUiManager = uiManager_;
|
|
54
|
+
jsInvoker_->invokeAsync([=](jsi::Runtime &runtime) {
|
|
55
|
+
auto uiManager = weakUiManager.lock();
|
|
56
|
+
if (!uiManager) {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
uiManager->getShadowTreeRegistry().visit(surfaceId, [=](ShadowTree const &shadowTree) {
|
|
60
|
+
shadowTree.commit(
|
|
61
|
+
[=](RootShadowNode const &oldRootShadowNode) {
|
|
62
|
+
const auto &rootShadowNode = static_cast<const ShadowNode &>(oldRootShadowNode);
|
|
63
|
+
PropsMap propsMap;
|
|
64
|
+
for (const auto &[opacity, tag] : opacityToRestore) {
|
|
65
|
+
const auto *targetShadowNode = findInShadowTreeByTag(rootShadowNode, tag);
|
|
66
|
+
if (targetShadowNode != nullptr) {
|
|
67
|
+
propsMap[&targetShadowNode->getFamily()].emplace_back(folly::dynamic::object("opacity", opacity));
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return cloneShadowTreeWithNewProps(oldRootShadowNode, propsMap);
|
|
71
|
+
},
|
|
72
|
+
{});
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
#endif // ANDROID
|
|
78
|
+
|
|
79
|
+
} // namespace reanimated
|