@react-native-ohos/react-native-reanimated 3.18.2-rc.2 → 4.0.1
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 -0
- package/harmony/reanimated/BuildProfile.ets +1 -1
- package/harmony/reanimated/build-profile.json5 +18 -11
- package/harmony/reanimated/oh-package.json5 +12 -11
- package/harmony/reanimated/src/main/cpp/CMakeLists.txt +31 -40
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/AnimatedSensor/AnimatedSensorModule.cpp +81 -86
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/AnimatedSensor/AnimatedSensorModule.h +46 -47
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/InterpolatorRegistry.cpp +390 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/InterpolatorRegistry.h +16 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/definitions.h +30 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/filters/FilterOp.cpp +46 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/filters/FilterOp.h +23 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/Quaternion.cpp +53 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/Quaternion.h +21 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix.cpp +166 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix.h +71 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix2D.cpp +368 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix2D.h +53 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix3D.cpp +594 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix3D.h +67 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformOp.cpp +52 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformOp.h +26 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/vectors.cpp +156 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/vectors.h +76 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSAngle.cpp +94 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSAngle.h +33 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSBoolean.cpp +48 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSBoolean.h +31 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSColor.cpp +135 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSColor.h +61 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSDiscreteArray.cpp +100 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSDiscreteArray.h +45 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSKeyword.cpp +81 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSKeyword.h +53 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSLength.cpp +122 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSLength.h +38 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSNumber.cpp +82 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSNumber.h +63 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSValue.h +118 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSValueVariant.cpp +174 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSValueVariant.h +111 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSBoxShadow.cpp +196 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSBoxShadow.h +66 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSDropShadow.cpp +134 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSDropShadow.h +44 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSAnimationConfig.cpp +174 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSAnimationConfig.h +49 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSKeyframesConfig.cpp +45 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSKeyframesConfig.h +26 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSTransitionConfig.cpp +90 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSTransitionConfig.h +43 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/common.cpp +17 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/common.h +13 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSAnimation.cpp +127 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSAnimation.h +51 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSTransition.cpp +145 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSTransition.h +47 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/EasingFunctions.cpp +69 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/EasingFunctions.h +22 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/cubicBezier.cpp +66 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/cubicBezier.h +15 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/linear.cpp +28 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/linear.h +15 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/steps.cpp +13 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/steps.h +12 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/InterpolatorFactory.cpp +157 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/InterpolatorFactory.h +189 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/PropertyInterpolator.cpp +76 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/PropertyInterpolator.h +66 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/configs.h +20 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperation.cpp +136 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperation.h +40 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperationInterpolator.cpp +38 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperationInterpolator.h +24 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterStyleInterpolator.cpp +58 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterStyleInterpolator.h +24 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/blur.h +14 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/brightness.h +14 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/contrast.h +14 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/dropShadow.h +17 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/grayscale.h +14 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/hueRotate.h +14 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/invert.h +14 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/opacity.h +14 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/saturate.h +14 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/sepia.h +14 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/ArrayPropertiesInterpolator.cpp +95 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/ArrayPropertiesInterpolator.h +36 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/GroupPropertiesInterpolator.cpp +41 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/GroupPropertiesInterpolator.h +32 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/RecordPropertiesInterpolator.cpp +99 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/RecordPropertiesInterpolator.h +37 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/OperationsStyleInterpolator.cpp +308 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/OperationsStyleInterpolator.h +100 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperation.cpp +19 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperation.h +94 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperationInterpolator.cpp +18 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperationInterpolator.h +43 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/styles/AnimationStyleInterpolator.h +26 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/styles/TransitionStyleInterpolator.cpp +103 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/styles/TransitionStyleInterpolator.h +42 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperation.cpp +224 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperation.h +52 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperationInterpolator.cpp +218 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperationInterpolator.h +89 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformsStyleInterpolator.cpp +149 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformsStyleInterpolator.h +33 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/matrix.cpp +208 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/matrix.h +56 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/perspective.cpp +42 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/perspective.h +20 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/rotate.cpp +41 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/rotate.h +39 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/scale.cpp +28 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/scale.h +25 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/skew.cpp +14 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/skew.h +20 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/translate.cpp +39 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/translate.h +25 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ResolvableValueInterpolator.cpp +47 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ResolvableValueInterpolator.h +43 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/SimpleValueInterpolator.cpp +70 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/SimpleValueInterpolator.h +40 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ValueInterpolator.cpp +146 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ValueInterpolator.h +71 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/misc/ViewStylesRepository.cpp +155 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/misc/ViewStylesRepository.h +53 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/AnimationProgressProvider.cpp +170 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/AnimationProgressProvider.h +67 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/KeyframeProgressProvider.h +12 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/RawProgressProvider.cpp +41 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/RawProgressProvider.h +31 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/TransitionProgressProvider.cpp +193 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/TransitionProgressProvider.h +77 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSAnimationsRegistry.cpp +340 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSAnimationsRegistry.h +80 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSKeyframesRegistry.cpp +45 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSKeyframesRegistry.h +29 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSTransitionsRegistry.cpp +167 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSTransitionsRegistry.h +51 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/StaticPropsRegistry.cpp +61 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/StaticPropsRegistry.h +33 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGBrush.cpp +80 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGBrush.h +39 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGLength.cpp +93 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGLength.h +36 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGStrokeDashArray.cpp +111 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGStrokeDashArray.h +33 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/DelayedItemsManager.cpp +75 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/DelayedItemsManager.h +45 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/algorithms.cpp +12 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/algorithms.h +10 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/interpolators.cpp +36 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/interpolators.h +23 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/props.cpp +149 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/props.h +32 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedCommitHook.cpp +113 -101
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedCommitHook.h +49 -51
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedCommitShadowNode.h +46 -49
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedMountHook.cpp +56 -96
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedMountHook.h +37 -33
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ShadowTreeCloner.cpp +104 -95
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ShadowTreeCloner.h +22 -29
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/AnimatedPropsRegistry.cpp +72 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/AnimatedPropsRegistry.h +25 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistry.cpp +160 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistry.h +71 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistryManager.cpp +161 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistryManager.h +65 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationType.h +11 -9
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsManager.cpp +137 -232
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsManager.h +82 -90
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxyCommon.cpp +79 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxyCommon.h +81 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Experimental.cpp +864 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Experimental.h +214 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/{LayoutAnimationsProxy.cpp → LayoutAnimationsProxy_Legacy.cpp} +897 -870
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Legacy.h +220 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsUtils.cpp +31 -91
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsUtils.h +146 -176
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/PropsDiffer.cpp +456 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/PropsDiffer.h +102 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/SharedTransitions.cpp +544 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/PropValueProcessor.cpp +119 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/PropValueProcessor.h +39 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxy.cpp +1380 -971
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxy.h +230 -252
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxySpec.cpp +183 -231
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxySpec.h +93 -109
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/RNRuntimeDecorator.cpp +54 -56
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/RNRuntimeDecorator.h +28 -20
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/UIRuntimeDecorator.cpp +58 -70
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/UIRuntimeDecorator.h +31 -35
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/FeatureFlags.cpp +18 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/FeatureFlags.h +44 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/PlatformDepMethodsHolder.h +67 -98
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/ReanimatedSystraceSection.h +114 -135
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/ReanimatedVersion.cpp +46 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/{worklets → reanimated}/Tools/ReanimatedVersion.h +18 -19
- package/harmony/reanimated/src/main/cpp/ReanimatedModule.cpp +63 -85
- package/harmony/reanimated/src/main/cpp/ReanimatedNodesManager.cpp +1 -0
- package/harmony/reanimated/src/main/cpp/ReanimatedPackage.cpp +0 -3
- package/harmony/reanimated/src/main/cpp/ReanimatedSensor.cpp +266 -0
- package/harmony/reanimated/src/main/cpp/ReanimatedSensor.h +36 -0
- package/harmony/reanimated/src/main/cpp/ReanimatedSensorContainer.cpp +36 -0
- package/harmony/reanimated/src/main/cpp/ReanimatedSensorContainer.h +23 -0
- package/harmony/reanimated/src/main/cpp/ReanimatedUIScheduler.h +3 -3
- package/harmony/reanimated/src/main/ets/ReanimatedModule.ts +5 -1
- package/harmony/reanimated/src/main/ets/ReanimatedPackage.ts +1 -4
- 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 +69 -50
- package/scripts/deploy.js +191 -0
- package/scripts/set-reanimated-version.js +37 -0
- package/scripts/update-version.js +119 -0
- package/scripts/validate-react-native-version.js +46 -0
- package/scripts/validate-worklets-build.js +17 -0
- package/scripts/validate-worklets-version.js +84 -0
- package/scripts/worklets-version.json +4 -0
- package/LICENSE +0 -21
- package/README.OpenSource +0 -11
- package/README.md +0 -10
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/PropsRegistry.cpp +0 -68
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/PropsRegistry.h +0 -68
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy.h +0 -147
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/CollectionUtils.h +0 -14
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/FeaturesConfig.cpp +0 -5
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/FeaturesConfig.h +0 -19
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/NativeModules/WorkletsModuleProxy.cpp +0 -47
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/NativeModules/WorkletsModuleProxy.h +0 -59
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/NativeModules/WorkletsModuleProxySpec.cpp +0 -27
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/NativeModules/WorkletsModuleProxySpec.h +0 -25
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Registries/EventHandlerRegistry.cpp +0 -94
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Registries/EventHandlerRegistry.h +0 -49
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Registries/WorkletRuntimeRegistry.cpp +0 -8
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Registries/WorkletRuntimeRegistry.h +0 -39
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/SharedItems/Shareables.cpp +0 -326
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/SharedItems/Shareables.h +0 -345
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/AsyncQueue.cpp +0 -52
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/AsyncQueue.h +0 -35
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/Defs.h +0 -10
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/JSISerializer.cpp +0 -342
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/JSISerializer.h +0 -47
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/JSLogger.cpp +0 -16
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/JSLogger.h +0 -20
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/JSScheduler.cpp +0 -20
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/JSScheduler.h +0 -29
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/PlatformLogger.h +0 -16
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/ReanimatedJSIUtils.cpp +0 -26
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/ReanimatedJSIUtils.h +0 -199
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/ReanimatedVersion.cpp +0 -95
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/SingleInstanceChecker.h +0 -72
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/ThreadSafeQueue.h +0 -49
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/UIScheduler.cpp +0 -20
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/UIScheduler.h +0 -22
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/WorkletEventHandler.cpp +0 -29
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/WorkletEventHandler.h +0 -41
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/RNRuntimeWorkletDecorator.cpp +0 -16
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/RNRuntimeWorkletDecorator.h +0 -19
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/ReanimatedHermesRuntime.cpp +0 -112
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/ReanimatedHermesRuntime.h +0 -127
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/ReanimatedRuntime.cpp +0 -53
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/ReanimatedRuntime.h +0 -22
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/RuntimeInitialization.md +0 -191
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/WorkletRuntime.cpp +0 -173
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/WorkletRuntime.h +0 -90
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/WorkletRuntimeCollector.h +0 -36
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/WorkletRuntimeDecorator.cpp +0 -189
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/WorkletRuntimeDecorator.h +0 -22
- package/harmony/reanimated/src/main/cpp/ReanimatedLogger.cpp +0 -33
- package/harmony/reanimated/src/main/cpp/WorkletsModule.cpp +0 -61
- package/harmony/reanimated/src/main/cpp/WorkletsModule.h +0 -22
- package/harmony/reanimated/src/main/cpp/patches/AnimatedSensor/AnimatedSensorModule.cpp +0 -89
- package/harmony/reanimated/src/main/cpp/patches/Fabric/ShadowTreeCloner.cpp +0 -95
- package/harmony/reanimated/src/main/cpp/patches/NativeModules/ReanimatedModuleProxy.cpp +0 -964
- package/harmony/reanimated/src/main/ets/WorkletsModule.ts +0 -15
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
#include <reanimated/CSS/core/CSSAnimation.h>
|
|
2
|
+
|
|
3
|
+
#include <memory>
|
|
4
|
+
#include <string>
|
|
5
|
+
#include <utility>
|
|
6
|
+
|
|
7
|
+
namespace reanimated::css {
|
|
8
|
+
|
|
9
|
+
CSSAnimation::CSSAnimation(
|
|
10
|
+
jsi::Runtime &rt,
|
|
11
|
+
std::shared_ptr<const ShadowNode> shadowNode,
|
|
12
|
+
std::string animationName,
|
|
13
|
+
const CSSKeyframesConfig &cssKeyframesConfig,
|
|
14
|
+
const CSSAnimationSettings &settings,
|
|
15
|
+
const double timestamp)
|
|
16
|
+
: name_(std::move(animationName)),
|
|
17
|
+
shadowNode_(std::move(shadowNode)),
|
|
18
|
+
fillMode_(settings.fillMode),
|
|
19
|
+
styleInterpolator_(cssKeyframesConfig.styleInterpolator),
|
|
20
|
+
progressProvider_(std::make_shared<AnimationProgressProvider>(
|
|
21
|
+
timestamp,
|
|
22
|
+
settings.duration,
|
|
23
|
+
settings.delay,
|
|
24
|
+
settings.iterationCount,
|
|
25
|
+
settings.direction,
|
|
26
|
+
settings.easingFunction,
|
|
27
|
+
cssKeyframesConfig.keyframeEasingFunctions)) {
|
|
28
|
+
if (settings.playState == AnimationPlayState::Paused) {
|
|
29
|
+
progressProvider_->pause(timestamp);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
const std::string &CSSAnimation::getName() const {
|
|
34
|
+
return name_;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
std::shared_ptr<const ShadowNode> CSSAnimation::getShadowNode() const {
|
|
38
|
+
return shadowNode_;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
double CSSAnimation::getStartTimestamp(const double timestamp) const {
|
|
42
|
+
return progressProvider_->getStartTimestamp(timestamp);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
AnimationProgressState CSSAnimation::getState(double timestamp) const {
|
|
46
|
+
return progressProvider_->getState(timestamp);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
bool CSSAnimation::isReversed() const {
|
|
50
|
+
const auto direction = progressProvider_->getDirection();
|
|
51
|
+
return direction == AnimationDirection::Reverse || direction == AnimationDirection::AlternateReverse;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
bool CSSAnimation::hasForwardsFillMode() const {
|
|
55
|
+
return fillMode_ == AnimationFillMode::Forwards || fillMode_ == AnimationFillMode::Both;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
bool CSSAnimation::hasBackwardsFillMode() const {
|
|
59
|
+
return fillMode_ == AnimationFillMode::Backwards || fillMode_ == AnimationFillMode::Both;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
folly::dynamic CSSAnimation::getCurrentInterpolationStyle() const {
|
|
63
|
+
return styleInterpolator_->interpolate(shadowNode_, progressProvider_, FALLBACK_INTERPOLATION_THRESHOLD);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
folly::dynamic CSSAnimation::getBackwardsFillStyle() const {
|
|
67
|
+
return isReversed() ? styleInterpolator_->getLastKeyframeValue() : styleInterpolator_->getFirstKeyframeValue();
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
folly::dynamic CSSAnimation::getResetStyle() const {
|
|
71
|
+
return styleInterpolator_->getResetStyle(shadowNode_);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
void CSSAnimation::run(const double timestamp) {
|
|
75
|
+
if (progressProvider_->getState(timestamp) == AnimationProgressState::Finished) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
progressProvider_->play(timestamp);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
folly::dynamic CSSAnimation::update(const double timestamp) {
|
|
82
|
+
progressProvider_->update(timestamp);
|
|
83
|
+
|
|
84
|
+
// Check if the animation has not started yet because of the delay
|
|
85
|
+
// (In general, it shouldn't be activated until the delay has passed but we
|
|
86
|
+
// add this check to make sure that animation doesn't start with the negative
|
|
87
|
+
// progress)
|
|
88
|
+
if (progressProvider_->getState(timestamp) == AnimationProgressState::Pending) {
|
|
89
|
+
return hasBackwardsFillMode() ? getBackwardsFillStyle() : folly::dynamic();
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
return styleInterpolator_->interpolate(shadowNode_, progressProvider_, FALLBACK_INTERPOLATION_THRESHOLD);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
void CSSAnimation::updateSettings(const PartialCSSAnimationSettings &updatedSettings, const double timestamp) {
|
|
96
|
+
progressProvider_->resetProgress();
|
|
97
|
+
|
|
98
|
+
if (updatedSettings.duration.has_value()) {
|
|
99
|
+
progressProvider_->setDuration(updatedSettings.duration.value());
|
|
100
|
+
}
|
|
101
|
+
if (updatedSettings.easingFunction.has_value()) {
|
|
102
|
+
progressProvider_->setEasingFunction(updatedSettings.easingFunction.value());
|
|
103
|
+
}
|
|
104
|
+
if (updatedSettings.delay.has_value()) {
|
|
105
|
+
progressProvider_->setDelay(updatedSettings.delay.value());
|
|
106
|
+
}
|
|
107
|
+
if (updatedSettings.iterationCount.has_value()) {
|
|
108
|
+
progressProvider_->setIterationCount(updatedSettings.iterationCount.value());
|
|
109
|
+
}
|
|
110
|
+
if (updatedSettings.direction.has_value()) {
|
|
111
|
+
progressProvider_->setDirection(updatedSettings.direction.value());
|
|
112
|
+
}
|
|
113
|
+
if (updatedSettings.fillMode.has_value()) {
|
|
114
|
+
fillMode_ = updatedSettings.fillMode.value();
|
|
115
|
+
}
|
|
116
|
+
if (updatedSettings.playState.has_value()) {
|
|
117
|
+
if (updatedSettings.playState.value() == AnimationPlayState::Paused) {
|
|
118
|
+
progressProvider_->pause(timestamp);
|
|
119
|
+
} else {
|
|
120
|
+
progressProvider_->play(timestamp);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
progressProvider_->update(timestamp);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
} // namespace reanimated::css
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include <reanimated/CSS/configs/CSSAnimationConfig.h>
|
|
4
|
+
#include <reanimated/CSS/configs/CSSKeyframesConfig.h>
|
|
5
|
+
#include <reanimated/CSS/progress/AnimationProgressProvider.h>
|
|
6
|
+
|
|
7
|
+
#include <memory>
|
|
8
|
+
#include <string>
|
|
9
|
+
|
|
10
|
+
namespace reanimated::css {
|
|
11
|
+
|
|
12
|
+
class CSSAnimation {
|
|
13
|
+
public:
|
|
14
|
+
static constexpr double FALLBACK_INTERPOLATION_THRESHOLD = 0.5;
|
|
15
|
+
|
|
16
|
+
CSSAnimation(
|
|
17
|
+
jsi::Runtime &rt,
|
|
18
|
+
std::shared_ptr<const ShadowNode> shadowNode,
|
|
19
|
+
std::string animationName,
|
|
20
|
+
const CSSKeyframesConfig &cssKeyframesConfig,
|
|
21
|
+
const CSSAnimationSettings &settings,
|
|
22
|
+
double timestamp);
|
|
23
|
+
|
|
24
|
+
const std::string &getName() const;
|
|
25
|
+
std::shared_ptr<const ShadowNode> getShadowNode() const;
|
|
26
|
+
|
|
27
|
+
double getStartTimestamp(double timestamp) const;
|
|
28
|
+
AnimationProgressState getState(double timestamp) const;
|
|
29
|
+
bool isReversed() const;
|
|
30
|
+
|
|
31
|
+
bool hasForwardsFillMode() const;
|
|
32
|
+
bool hasBackwardsFillMode() const;
|
|
33
|
+
|
|
34
|
+
folly::dynamic getCurrentInterpolationStyle() const;
|
|
35
|
+
folly::dynamic getBackwardsFillStyle() const;
|
|
36
|
+
folly::dynamic getResetStyle() const;
|
|
37
|
+
|
|
38
|
+
void run(double timestamp);
|
|
39
|
+
folly::dynamic update(double timestamp);
|
|
40
|
+
void updateSettings(const PartialCSSAnimationSettings &updatedSettings, double timestamp);
|
|
41
|
+
|
|
42
|
+
private:
|
|
43
|
+
const std::string name_;
|
|
44
|
+
const std::shared_ptr<const ShadowNode> shadowNode_;
|
|
45
|
+
AnimationFillMode fillMode_;
|
|
46
|
+
|
|
47
|
+
const std::shared_ptr<AnimationStyleInterpolator> styleInterpolator_;
|
|
48
|
+
const std::shared_ptr<AnimationProgressProvider> progressProvider_;
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
} // namespace reanimated::css
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
#include <reanimated/CSS/core/CSSTransition.h>
|
|
2
|
+
|
|
3
|
+
#include <memory>
|
|
4
|
+
#include <string>
|
|
5
|
+
#include <unordered_set>
|
|
6
|
+
#include <utility>
|
|
7
|
+
|
|
8
|
+
namespace reanimated::css {
|
|
9
|
+
|
|
10
|
+
CSSTransition::CSSTransition(
|
|
11
|
+
std::shared_ptr<const ShadowNode> shadowNode,
|
|
12
|
+
const CSSTransitionConfig &config,
|
|
13
|
+
const std::shared_ptr<ViewStylesRepository> &viewStylesRepository)
|
|
14
|
+
: shadowNode_(std::move(shadowNode)),
|
|
15
|
+
viewStylesRepository_(viewStylesRepository),
|
|
16
|
+
properties_(config.properties),
|
|
17
|
+
settings_(config.settings),
|
|
18
|
+
styleInterpolator_(TransitionStyleInterpolator(shadowNode_->getComponentName(), viewStylesRepository)),
|
|
19
|
+
progressProvider_(TransitionProgressProvider()) {
|
|
20
|
+
updateAllowedDiscreteProperties();
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
Tag CSSTransition::getViewTag() const {
|
|
24
|
+
return shadowNode_->getTag();
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
std::shared_ptr<const ShadowNode> CSSTransition::getShadowNode() const {
|
|
28
|
+
return shadowNode_;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
double CSSTransition::getMinDelay(double timestamp) const {
|
|
32
|
+
return progressProvider_.getMinDelay(timestamp);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
TransitionProgressState CSSTransition::getState() const {
|
|
36
|
+
return progressProvider_.getState();
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
folly::dynamic CSSTransition::getCurrentInterpolationStyle() const {
|
|
40
|
+
return styleInterpolator_.interpolate(shadowNode_, progressProvider_, allowDiscreteProperties_);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
TransitionProperties CSSTransition::getProperties() const {
|
|
44
|
+
return properties_;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
PropertyNames CSSTransition::getAllowedProperties(const folly::dynamic &oldProps, const folly::dynamic &newProps) {
|
|
48
|
+
if (!oldProps.isObject() || !newProps.isObject()) {
|
|
49
|
+
return {};
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// If specific properties are set, process only those
|
|
53
|
+
if (properties_.has_value()) {
|
|
54
|
+
PropertyNames allowedProps;
|
|
55
|
+
const auto &properties = properties_.value();
|
|
56
|
+
allowedProps.reserve(properties.size());
|
|
57
|
+
|
|
58
|
+
for (const auto &prop : properties) {
|
|
59
|
+
if (isAllowedProperty(prop)) {
|
|
60
|
+
allowedProps.push_back(prop);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
return allowedProps;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
// Process all properties from both old and new props
|
|
68
|
+
std::unordered_set<std::string> allAllowedProps;
|
|
69
|
+
|
|
70
|
+
for (const auto &props : {oldProps, newProps}) {
|
|
71
|
+
for (const auto &propertyName : props.keys()) {
|
|
72
|
+
if (isAllowedProperty(propertyName.asString())) {
|
|
73
|
+
allAllowedProps.insert(propertyName.asString());
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
return {allAllowedProps.begin(), allAllowedProps.end()};
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
void CSSTransition::updateSettings(const PartialCSSTransitionConfig &config) {
|
|
82
|
+
if (config.properties.has_value()) {
|
|
83
|
+
updateTransitionProperties(config.properties.value());
|
|
84
|
+
}
|
|
85
|
+
if (config.settings.has_value()) {
|
|
86
|
+
settings_ = config.settings.value();
|
|
87
|
+
updateAllowedDiscreteProperties();
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
folly::dynamic
|
|
92
|
+
CSSTransition::run(const ChangedProps &changedProps, const folly::dynamic &lastUpdateValue, const double timestamp) {
|
|
93
|
+
progressProvider_.runProgressProviders(
|
|
94
|
+
timestamp,
|
|
95
|
+
settings_,
|
|
96
|
+
changedProps.changedPropertyNames,
|
|
97
|
+
styleInterpolator_.getReversedPropertyNames(changedProps.newProps));
|
|
98
|
+
styleInterpolator_.updateInterpolatedProperties(changedProps, lastUpdateValue);
|
|
99
|
+
return update(timestamp);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
folly::dynamic CSSTransition::update(const double timestamp) {
|
|
103
|
+
progressProvider_.update(timestamp);
|
|
104
|
+
auto result = styleInterpolator_.interpolate(shadowNode_, progressProvider_, allowDiscreteProperties_);
|
|
105
|
+
// Remove interpolators for which interpolation has finished
|
|
106
|
+
// (we won't need them anymore in the current transition)
|
|
107
|
+
styleInterpolator_.discardFinishedInterpolators(progressProvider_);
|
|
108
|
+
// And remove finished progress providers after they were used to calculate
|
|
109
|
+
// the last frame of the transition
|
|
110
|
+
progressProvider_.discardFinishedProgressProviders();
|
|
111
|
+
return result;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
void CSSTransition::updateTransitionProperties(const TransitionProperties &properties) {
|
|
115
|
+
properties_ = properties;
|
|
116
|
+
|
|
117
|
+
const auto isAllPropertiesTransition = !properties_.has_value();
|
|
118
|
+
if (isAllPropertiesTransition) {
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
const std::unordered_set<std::string> transitionPropertyNames(properties_->begin(), properties_->end());
|
|
123
|
+
|
|
124
|
+
styleInterpolator_.discardIrrelevantInterpolators(transitionPropertyNames);
|
|
125
|
+
progressProvider_.discardIrrelevantProgressProviders(transitionPropertyNames);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
void CSSTransition::updateAllowedDiscreteProperties() {
|
|
129
|
+
allowDiscreteProperties_.clear();
|
|
130
|
+
for (const auto &[propertyName, propertySettings] : settings_) {
|
|
131
|
+
if (propertySettings.allowDiscrete) {
|
|
132
|
+
allowDiscreteProperties_.insert(propertyName);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
bool CSSTransition::isAllowedProperty(const std::string &propertyName) const {
|
|
138
|
+
if (!isDiscreteProperty(propertyName, shadowNode_->getComponentName())) {
|
|
139
|
+
return true;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
return allowDiscreteProperties_.contains(propertyName) || allowDiscreteProperties_.contains("all");
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
} // namespace reanimated::css
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include <reanimated/CSS/configs/CSSTransitionConfig.h>
|
|
4
|
+
#include <reanimated/CSS/easing/EasingFunctions.h>
|
|
5
|
+
#include <reanimated/CSS/interpolation/styles/TransitionStyleInterpolator.h>
|
|
6
|
+
#include <reanimated/CSS/progress/TransitionProgressProvider.h>
|
|
7
|
+
|
|
8
|
+
#include <memory>
|
|
9
|
+
#include <string>
|
|
10
|
+
#include <unordered_set>
|
|
11
|
+
|
|
12
|
+
namespace reanimated::css {
|
|
13
|
+
|
|
14
|
+
class CSSTransition {
|
|
15
|
+
public:
|
|
16
|
+
CSSTransition(
|
|
17
|
+
std::shared_ptr<const ShadowNode> shadowNode,
|
|
18
|
+
const CSSTransitionConfig &config,
|
|
19
|
+
const std::shared_ptr<ViewStylesRepository> &viewStylesRepository);
|
|
20
|
+
|
|
21
|
+
Tag getViewTag() const;
|
|
22
|
+
std::shared_ptr<const ShadowNode> getShadowNode() const;
|
|
23
|
+
double getMinDelay(double timestamp) const;
|
|
24
|
+
TransitionProgressState getState() const;
|
|
25
|
+
folly::dynamic getCurrentInterpolationStyle() const;
|
|
26
|
+
TransitionProperties getProperties() const;
|
|
27
|
+
PropertyNames getAllowedProperties(const folly::dynamic &oldProps, const folly::dynamic &newProps);
|
|
28
|
+
|
|
29
|
+
void updateSettings(const PartialCSSTransitionConfig &config);
|
|
30
|
+
folly::dynamic run(const ChangedProps &changedProps, const folly::dynamic &lastUpdateValue, double timestamp);
|
|
31
|
+
folly::dynamic update(double timestamp);
|
|
32
|
+
|
|
33
|
+
private:
|
|
34
|
+
const std::shared_ptr<const ShadowNode> shadowNode_;
|
|
35
|
+
const std::shared_ptr<ViewStylesRepository> viewStylesRepository_;
|
|
36
|
+
std::unordered_set<std::string> allowDiscreteProperties_;
|
|
37
|
+
TransitionProperties properties_;
|
|
38
|
+
CSSTransitionPropertiesSettings settings_;
|
|
39
|
+
TransitionStyleInterpolator styleInterpolator_;
|
|
40
|
+
TransitionProgressProvider progressProvider_;
|
|
41
|
+
|
|
42
|
+
void updateTransitionProperties(const TransitionProperties &properties);
|
|
43
|
+
void updateAllowedDiscreteProperties();
|
|
44
|
+
bool isAllowedProperty(const std::string &propertyName) const;
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
} // namespace reanimated::css
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
#include <reanimated/CSS/easing/EasingFunctions.h>
|
|
2
|
+
|
|
3
|
+
#include <string>
|
|
4
|
+
#include <unordered_map>
|
|
5
|
+
#include <vector>
|
|
6
|
+
|
|
7
|
+
namespace reanimated::css {
|
|
8
|
+
|
|
9
|
+
inline const std::unordered_map<std::string, EasingFunction> PREDEFINED_EASING_MAP = {
|
|
10
|
+
{"linear",
|
|
11
|
+
[](double x) {
|
|
12
|
+
return x;
|
|
13
|
+
}},
|
|
14
|
+
{"ease", cubicBezier(0.25, 0.1, 0.25, 0.1)},
|
|
15
|
+
{"ease-in", cubicBezier(0.42, 0.0, 1.0, 1.0)},
|
|
16
|
+
{"ease-out", cubicBezier(0.0, 0.0, 0.58, 1.0)},
|
|
17
|
+
{"ease-in-out", cubicBezier(0.42, 0.0, 0.58, 1.0)},
|
|
18
|
+
{"step-start", steps(std::vector<double>{0}, std::vector<double>{1})},
|
|
19
|
+
{"step-end", steps(std::vector<double>{0, 1}, std::vector<double>{0, 1})}};
|
|
20
|
+
|
|
21
|
+
EasingFunction createEasingFunction(jsi::Runtime &rt, const jsi::Value &easingConfig) {
|
|
22
|
+
if (easingConfig.isString()) {
|
|
23
|
+
return getPredefinedEasingFunction(easingConfig.asString(rt).utf8(rt));
|
|
24
|
+
} else if (easingConfig.isObject()) {
|
|
25
|
+
return createParametrizedEasingFunction(rt, easingConfig.asObject(rt));
|
|
26
|
+
} else {
|
|
27
|
+
throw std::runtime_error(std::string("[Reanimated] Invalid easing function"));
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
EasingFunction getPredefinedEasingFunction(const std::string &name) {
|
|
32
|
+
auto it = PREDEFINED_EASING_MAP.find(name);
|
|
33
|
+
if (it != PREDEFINED_EASING_MAP.end()) {
|
|
34
|
+
return it->second;
|
|
35
|
+
} else {
|
|
36
|
+
throw std::runtime_error(std::string("[Reanimated] Easing function with name '" + name + "' is not defined."));
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
EasingFunction createParametrizedEasingFunction(jsi::Runtime &rt, const jsi::Object &easingConfig) {
|
|
41
|
+
const auto easingName = easingConfig.getProperty(rt, "name").asString(rt).utf8(rt);
|
|
42
|
+
|
|
43
|
+
if (easingName == "cubicBezier") {
|
|
44
|
+
return cubicBezier(rt, easingConfig);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
std::vector<double> pointsX;
|
|
48
|
+
std::vector<double> pointsY;
|
|
49
|
+
|
|
50
|
+
const auto points = easingConfig.getProperty(rt, "points").asObject(rt).asArray(rt);
|
|
51
|
+
const auto pointsCount = points.size(rt);
|
|
52
|
+
|
|
53
|
+
for (size_t i = 0; i < pointsCount; i++) {
|
|
54
|
+
const auto pointObj = points.getValueAtIndex(rt, i).asObject(rt);
|
|
55
|
+
pointsX.push_back(pointObj.getProperty(rt, "x").asNumber());
|
|
56
|
+
pointsY.push_back(pointObj.getProperty(rt, "y").asNumber());
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
if (easingName == "linear") {
|
|
60
|
+
return linear(pointsX, pointsY);
|
|
61
|
+
} else if (easingName == "steps") {
|
|
62
|
+
return steps(pointsX, pointsY);
|
|
63
|
+
} else {
|
|
64
|
+
throw std::runtime_error(
|
|
65
|
+
std::string("[Reanimated] Parametrized easing function with name '" + easingName + "' is not defined."));
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
} // namespace reanimated::css
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include <reanimated/CSS/easing/cubicBezier.h>
|
|
4
|
+
#include <reanimated/CSS/easing/linear.h>
|
|
5
|
+
#include <reanimated/CSS/easing/steps.h>
|
|
6
|
+
|
|
7
|
+
#include <jsi/jsi.h>
|
|
8
|
+
#include <string>
|
|
9
|
+
#include <unordered_map>
|
|
10
|
+
|
|
11
|
+
namespace reanimated::css {
|
|
12
|
+
|
|
13
|
+
using namespace facebook;
|
|
14
|
+
|
|
15
|
+
extern const std::unordered_map<std::string, EasingFunction> PREDEFINED_EASING_MAP;
|
|
16
|
+
|
|
17
|
+
EasingFunction getPredefinedEasingFunction(const std::string &name);
|
|
18
|
+
EasingFunction createParametrizedEasingFunction(jsi::Runtime &rt, const jsi::Object &easingConfig);
|
|
19
|
+
|
|
20
|
+
EasingFunction createEasingFunction(jsi::Runtime &rt, const jsi::Value &easingConfig);
|
|
21
|
+
|
|
22
|
+
} // namespace reanimated::css
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
#include <reanimated/CSS/easing/cubicBezier.h>
|
|
2
|
+
|
|
3
|
+
namespace reanimated::css {
|
|
4
|
+
|
|
5
|
+
double sampleCurveX(const double t, const double x1, const double x2) {
|
|
6
|
+
return 3 * (1 - t) * (1 - t) * t * x1 + 3 * (1 - t) * t * t * x2 + t * t * t;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
double sampleCurveY(const double t, const double y1, const double y2) {
|
|
10
|
+
return 3 * (1 - t) * (1 - t) * t * y1 + 3 * (1 - t) * t * t * y2 + t * t * t;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
double sampleCurveDerivativeX(const double t, const double x1, const double x2) {
|
|
14
|
+
return -6 * (1 - t) * t * x1 + 3 * (1 - t) * (1 - t) * x1 + 6 * (1 - t) * t * x2 - 6 * t * t * x2 + 3 * t * t;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
double solveCurveX(const double x, const double x1, const double x2, const double epsilon) {
|
|
18
|
+
double t0 = 0.0, t1 = 1.0, t2 = x, xValue, dX;
|
|
19
|
+
int iterations = 0;
|
|
20
|
+
|
|
21
|
+
while (iterations < 8) {
|
|
22
|
+
xValue = sampleCurveX(t2, x1, x2) - x;
|
|
23
|
+
if (std::abs(xValue) < epsilon) {
|
|
24
|
+
return t2;
|
|
25
|
+
}
|
|
26
|
+
dX = sampleCurveDerivativeX(t2, x1, x2);
|
|
27
|
+
if (std::abs(dX) < epsilon) {
|
|
28
|
+
break;
|
|
29
|
+
}
|
|
30
|
+
t2 = t2 - xValue / dX;
|
|
31
|
+
iterations++;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// Fallback: Use binary search
|
|
35
|
+
while (t0 < t1) {
|
|
36
|
+
t2 = (t0 + t1) / 2.0;
|
|
37
|
+
xValue = sampleCurveX(t2, x1, x2);
|
|
38
|
+
if (std::abs(xValue - x) < epsilon) {
|
|
39
|
+
return t2;
|
|
40
|
+
}
|
|
41
|
+
if (x > xValue) {
|
|
42
|
+
t0 = t2;
|
|
43
|
+
} else {
|
|
44
|
+
t1 = t2;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
return t2;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
EasingFunction cubicBezier(const double x1, const double y1, const double x2, const double y2) {
|
|
52
|
+
return [=](double x) {
|
|
53
|
+
double t = solveCurveX(x, x1, x2);
|
|
54
|
+
return sampleCurveY(t, y1, y2);
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
EasingFunction cubicBezier(jsi::Runtime &rt, const jsi::Object &easingConfig) {
|
|
59
|
+
const auto x1 = easingConfig.getProperty(rt, "x1").asNumber();
|
|
60
|
+
const auto y1 = easingConfig.getProperty(rt, "y1").asNumber();
|
|
61
|
+
const auto x2 = easingConfig.getProperty(rt, "x2").asNumber();
|
|
62
|
+
const auto y2 = easingConfig.getProperty(rt, "y2").asNumber();
|
|
63
|
+
return cubicBezier(x1, y1, x2, y2);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
} // namespace reanimated::css
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include <reanimated/CSS/common/definitions.h>
|
|
4
|
+
|
|
5
|
+
namespace reanimated::css {
|
|
6
|
+
|
|
7
|
+
double sampleCurveX(double t, double x1, double x2);
|
|
8
|
+
double sampleCurveY(double t, double y1, double y2);
|
|
9
|
+
double sampleCurveDerivativeX(double t, double x1, double x2);
|
|
10
|
+
double solveCurveX(double x, double x1, double x2, double epsilon = 1e-6);
|
|
11
|
+
|
|
12
|
+
EasingFunction cubicBezier(double x1, double y1, double x2, double y2);
|
|
13
|
+
EasingFunction cubicBezier(jsi::Runtime &rt, const jsi::Object &easingConfig);
|
|
14
|
+
|
|
15
|
+
} // namespace reanimated::css
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
#include <reanimated/CSS/easing/linear.h>
|
|
2
|
+
|
|
3
|
+
#include <vector>
|
|
4
|
+
|
|
5
|
+
namespace reanimated::css {
|
|
6
|
+
|
|
7
|
+
double
|
|
8
|
+
interpolateValue(double x, size_t leftIdx, const std::vector<double> &pointsX, const std::vector<double> &pointsY) {
|
|
9
|
+
if (leftIdx == pointsX.size() - 1) {
|
|
10
|
+
// We are exactly on the last point of the curve, we just return its y
|
|
11
|
+
// coordinate
|
|
12
|
+
return pointsY[leftIdx];
|
|
13
|
+
}
|
|
14
|
+
const auto rightIdx = leftIdx + 1;
|
|
15
|
+
// Calculate the line equation for the line between leftIdx and rightIdx
|
|
16
|
+
// points
|
|
17
|
+
const auto a = (pointsY[rightIdx] - pointsY[leftIdx]) / (pointsX[rightIdx] - pointsX[leftIdx]);
|
|
18
|
+
return pointsY[leftIdx] + a * (x - pointsX[leftIdx]);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
EasingFunction linear(const std::vector<double> &pointsX, const std::vector<double> &pointsY) {
|
|
22
|
+
return [=](double x) {
|
|
23
|
+
size_t leftIdx = firstSmallerOrEqual(x, pointsX);
|
|
24
|
+
return interpolateValue(x, leftIdx, pointsX, pointsY);
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
} // namespace reanimated::css
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include <reanimated/CSS/common/definitions.h>
|
|
4
|
+
#include <reanimated/CSS/utils/algorithms.h>
|
|
5
|
+
|
|
6
|
+
#include <vector>
|
|
7
|
+
|
|
8
|
+
namespace reanimated::css {
|
|
9
|
+
|
|
10
|
+
double
|
|
11
|
+
interpolateValue(double x, std::size_t leftIdx, const std::vector<double> &arrX, const std::vector<double> &arrY);
|
|
12
|
+
|
|
13
|
+
EasingFunction linear(const std::vector<double> &pointsX, const std::vector<double> &pointsY);
|
|
14
|
+
|
|
15
|
+
} // namespace reanimated::css
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
#include <reanimated/CSS/easing/steps.h>
|
|
2
|
+
|
|
3
|
+
#include <vector>
|
|
4
|
+
|
|
5
|
+
namespace reanimated::css {
|
|
6
|
+
EasingFunction steps(const std::vector<double> &pointsX, const std::vector<double> &pointsY) {
|
|
7
|
+
return [=](double x) {
|
|
8
|
+
size_t stepIdx = firstSmallerOrEqual(x, pointsX);
|
|
9
|
+
return pointsY[stepIdx];
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
} // namespace reanimated::css
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include <reanimated/CSS/common/definitions.h>
|
|
4
|
+
#include <reanimated/CSS/utils/algorithms.h>
|
|
5
|
+
|
|
6
|
+
#include <vector>
|
|
7
|
+
|
|
8
|
+
namespace reanimated::css {
|
|
9
|
+
|
|
10
|
+
EasingFunction steps(const std::vector<double> &pointsX, const std::vector<double> &pointsY);
|
|
11
|
+
|
|
12
|
+
} // namespace reanimated::css
|