@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,149 +1,149 @@
|
|
|
1
|
-
#include <reanimated/CSS/utils/props.h>
|
|
2
|
-
|
|
3
|
-
#include <string>
|
|
4
|
-
#include <utility>
|
|
5
|
-
|
|
6
|
-
namespace reanimated::css {
|
|
7
|
-
|
|
8
|
-
bool isDiscreteProperty(const std::string &propName, const std::string &componentName) {
|
|
9
|
-
const auto &interpolators = getComponentInterpolators(componentName);
|
|
10
|
-
const auto it = interpolators.find(propName);
|
|
11
|
-
if (it == interpolators.end()) {
|
|
12
|
-
return false;
|
|
13
|
-
}
|
|
14
|
-
return it->second->isDiscreteProperty();
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
bool areArraysDifferentRecursive(const folly::dynamic &oldArray, const folly::dynamic &newArray) {
|
|
18
|
-
if (oldArray.size() != newArray.size()) {
|
|
19
|
-
return true;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
for (size_t i = 0; i < oldArray.size(); i++) {
|
|
23
|
-
const auto [oldChangedProp, newChangedProp] = getChangedPropsRecursive(oldArray[i], newArray[i]);
|
|
24
|
-
|
|
25
|
-
if (!oldChangedProp.isNull() || !newChangedProp.isNull()) {
|
|
26
|
-
return true;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
return false;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
std::pair<folly::dynamic, folly::dynamic> getChangedPropsRecursive(
|
|
34
|
-
const folly::dynamic &oldProp,
|
|
35
|
-
const folly::dynamic &newProp) {
|
|
36
|
-
if (!oldProp.isObject() || !newProp.isObject()) {
|
|
37
|
-
// Primitive values comparison
|
|
38
|
-
if (oldProp != newProp) {
|
|
39
|
-
return {oldProp, newProp};
|
|
40
|
-
}
|
|
41
|
-
return {folly::dynamic(), folly::dynamic()};
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
if (oldProp.isArray() && newProp.isArray()) {
|
|
45
|
-
// Arrays comparison
|
|
46
|
-
if (areArraysDifferentRecursive(oldProp, newProp)) {
|
|
47
|
-
return {oldProp, newProp};
|
|
48
|
-
}
|
|
49
|
-
return {folly::dynamic(), folly::dynamic()};
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
folly::dynamic oldResult = folly::dynamic::object;
|
|
53
|
-
folly::dynamic newResult = folly::dynamic::object;
|
|
54
|
-
bool oldHasChanges = false;
|
|
55
|
-
bool newHasChanges = false;
|
|
56
|
-
|
|
57
|
-
// Check for removed properties
|
|
58
|
-
for (const auto &item : oldProp.items()) {
|
|
59
|
-
const auto &propName = item.first.asString();
|
|
60
|
-
if (!newProp.count(propName)) {
|
|
61
|
-
const auto &oldValue = item.second;
|
|
62
|
-
oldResult[propName] = oldValue;
|
|
63
|
-
oldHasChanges = true;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
// Check for new and changed properties
|
|
68
|
-
for (const auto &item : newProp.items()) {
|
|
69
|
-
const auto &propName = item.first.asString();
|
|
70
|
-
const auto &newValue = item.second;
|
|
71
|
-
|
|
72
|
-
if (oldProp.count(propName)) {
|
|
73
|
-
const auto &oldValue = oldProp[propName];
|
|
74
|
-
auto [oldChangedProp, newChangedProp] = getChangedPropsRecursive(oldValue, newValue);
|
|
75
|
-
|
|
76
|
-
if (!oldChangedProp.isNull() && !newChangedProp.isNull()) {
|
|
77
|
-
oldResult[propName] = std::move(oldChangedProp);
|
|
78
|
-
newResult[propName] = std::move(newChangedProp);
|
|
79
|
-
oldHasChanges = true;
|
|
80
|
-
newHasChanges = true;
|
|
81
|
-
}
|
|
82
|
-
} else {
|
|
83
|
-
newResult[propName] = newValue;
|
|
84
|
-
newHasChanges = true;
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
return {
|
|
89
|
-
oldHasChanges ? std::move(oldResult) : folly::dynamic(), newHasChanges ? std::move(newResult) : folly::dynamic()};
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
std::pair<folly::dynamic, folly::dynamic>
|
|
93
|
-
getChangedValueForProp(const folly::dynamic &oldObject, const folly::dynamic &newObject, const std::string &propName) {
|
|
94
|
-
const bool oldHasProperty = oldObject.count(propName);
|
|
95
|
-
const bool newHasProperty = newObject.count(propName);
|
|
96
|
-
|
|
97
|
-
if (oldHasProperty && newHasProperty) {
|
|
98
|
-
const auto &oldVal = oldObject[propName];
|
|
99
|
-
const auto &newVal = newObject[propName];
|
|
100
|
-
|
|
101
|
-
if (oldVal.isObject() && newVal.isObject()) {
|
|
102
|
-
return getChangedPropsRecursive(oldVal, newVal);
|
|
103
|
-
} else if (oldVal != newVal) {
|
|
104
|
-
return {oldVal, newVal};
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
return {folly::dynamic(), folly::dynamic()};
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
if (oldHasProperty) {
|
|
111
|
-
const auto &oldVal = oldObject[propName];
|
|
112
|
-
return {oldVal, folly::dynamic()};
|
|
113
|
-
} else if (newHasProperty) {
|
|
114
|
-
const auto &newVal = newObject[propName];
|
|
115
|
-
return {folly::dynamic(), newVal};
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
return {folly::dynamic(), folly::dynamic()};
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
ChangedProps getChangedProps(
|
|
122
|
-
const folly::dynamic &oldProps,
|
|
123
|
-
const folly::dynamic &newProps,
|
|
124
|
-
const PropertyNames &allowedProperties) {
|
|
125
|
-
folly::dynamic oldResult = folly::dynamic::object;
|
|
126
|
-
folly::dynamic newResult = folly::dynamic::object;
|
|
127
|
-
PropertyNames changedPropertyNames;
|
|
128
|
-
|
|
129
|
-
for (const auto &propName : allowedProperties) {
|
|
130
|
-
auto [oldChangedProp, newChangedProp] = getChangedValueForProp(oldProps, newProps, propName);
|
|
131
|
-
|
|
132
|
-
const auto hasOldChangedProp = !oldChangedProp.isNull();
|
|
133
|
-
const auto hasNewChangedProp = !newChangedProp.isNull();
|
|
134
|
-
|
|
135
|
-
if (hasOldChangedProp) {
|
|
136
|
-
oldResult[propName] = std::move(oldChangedProp);
|
|
137
|
-
}
|
|
138
|
-
if (hasNewChangedProp) {
|
|
139
|
-
newResult[propName] = std::move(newChangedProp);
|
|
140
|
-
}
|
|
141
|
-
if (hasOldChangedProp || hasNewChangedProp) {
|
|
142
|
-
changedPropertyNames.push_back(propName);
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
return {std::move(oldResult), std::move(newResult), std::move(changedPropertyNames)};
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
} // namespace reanimated::css
|
|
1
|
+
#include <reanimated/CSS/utils/props.h>
|
|
2
|
+
|
|
3
|
+
#include <string>
|
|
4
|
+
#include <utility>
|
|
5
|
+
|
|
6
|
+
namespace reanimated::css {
|
|
7
|
+
|
|
8
|
+
bool isDiscreteProperty(const std::string &propName, const std::string &componentName) {
|
|
9
|
+
const auto &interpolators = getComponentInterpolators(componentName);
|
|
10
|
+
const auto it = interpolators.find(propName);
|
|
11
|
+
if (it == interpolators.end()) {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
return it->second->isDiscreteProperty();
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
bool areArraysDifferentRecursive(const folly::dynamic &oldArray, const folly::dynamic &newArray) {
|
|
18
|
+
if (oldArray.size() != newArray.size()) {
|
|
19
|
+
return true;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
for (size_t i = 0; i < oldArray.size(); i++) {
|
|
23
|
+
const auto [oldChangedProp, newChangedProp] = getChangedPropsRecursive(oldArray[i], newArray[i]);
|
|
24
|
+
|
|
25
|
+
if (!oldChangedProp.isNull() || !newChangedProp.isNull()) {
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
std::pair<folly::dynamic, folly::dynamic> getChangedPropsRecursive(
|
|
34
|
+
const folly::dynamic &oldProp,
|
|
35
|
+
const folly::dynamic &newProp) {
|
|
36
|
+
if (!oldProp.isObject() || !newProp.isObject()) {
|
|
37
|
+
// Primitive values comparison
|
|
38
|
+
if (oldProp != newProp) {
|
|
39
|
+
return {oldProp, newProp};
|
|
40
|
+
}
|
|
41
|
+
return {folly::dynamic(), folly::dynamic()};
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
if (oldProp.isArray() && newProp.isArray()) {
|
|
45
|
+
// Arrays comparison
|
|
46
|
+
if (areArraysDifferentRecursive(oldProp, newProp)) {
|
|
47
|
+
return {oldProp, newProp};
|
|
48
|
+
}
|
|
49
|
+
return {folly::dynamic(), folly::dynamic()};
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
folly::dynamic oldResult = folly::dynamic::object;
|
|
53
|
+
folly::dynamic newResult = folly::dynamic::object;
|
|
54
|
+
bool oldHasChanges = false;
|
|
55
|
+
bool newHasChanges = false;
|
|
56
|
+
|
|
57
|
+
// Check for removed properties
|
|
58
|
+
for (const auto &item : oldProp.items()) {
|
|
59
|
+
const auto &propName = item.first.asString();
|
|
60
|
+
if (!newProp.count(propName)) {
|
|
61
|
+
const auto &oldValue = item.second;
|
|
62
|
+
oldResult[propName] = oldValue;
|
|
63
|
+
oldHasChanges = true;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
// Check for new and changed properties
|
|
68
|
+
for (const auto &item : newProp.items()) {
|
|
69
|
+
const auto &propName = item.first.asString();
|
|
70
|
+
const auto &newValue = item.second;
|
|
71
|
+
|
|
72
|
+
if (oldProp.count(propName)) {
|
|
73
|
+
const auto &oldValue = oldProp[propName];
|
|
74
|
+
auto [oldChangedProp, newChangedProp] = getChangedPropsRecursive(oldValue, newValue);
|
|
75
|
+
|
|
76
|
+
if (!oldChangedProp.isNull() && !newChangedProp.isNull()) {
|
|
77
|
+
oldResult[propName] = std::move(oldChangedProp);
|
|
78
|
+
newResult[propName] = std::move(newChangedProp);
|
|
79
|
+
oldHasChanges = true;
|
|
80
|
+
newHasChanges = true;
|
|
81
|
+
}
|
|
82
|
+
} else {
|
|
83
|
+
newResult[propName] = newValue;
|
|
84
|
+
newHasChanges = true;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
return {
|
|
89
|
+
oldHasChanges ? std::move(oldResult) : folly::dynamic(), newHasChanges ? std::move(newResult) : folly::dynamic()};
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
std::pair<folly::dynamic, folly::dynamic>
|
|
93
|
+
getChangedValueForProp(const folly::dynamic &oldObject, const folly::dynamic &newObject, const std::string &propName) {
|
|
94
|
+
const bool oldHasProperty = oldObject.count(propName);
|
|
95
|
+
const bool newHasProperty = newObject.count(propName);
|
|
96
|
+
|
|
97
|
+
if (oldHasProperty && newHasProperty) {
|
|
98
|
+
const auto &oldVal = oldObject[propName];
|
|
99
|
+
const auto &newVal = newObject[propName];
|
|
100
|
+
|
|
101
|
+
if (oldVal.isObject() && newVal.isObject()) {
|
|
102
|
+
return getChangedPropsRecursive(oldVal, newVal);
|
|
103
|
+
} else if (oldVal != newVal) {
|
|
104
|
+
return {oldVal, newVal};
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
return {folly::dynamic(), folly::dynamic()};
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
if (oldHasProperty) {
|
|
111
|
+
const auto &oldVal = oldObject[propName];
|
|
112
|
+
return {oldVal, folly::dynamic()};
|
|
113
|
+
} else if (newHasProperty) {
|
|
114
|
+
const auto &newVal = newObject[propName];
|
|
115
|
+
return {folly::dynamic(), newVal};
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
return {folly::dynamic(), folly::dynamic()};
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
ChangedProps getChangedProps(
|
|
122
|
+
const folly::dynamic &oldProps,
|
|
123
|
+
const folly::dynamic &newProps,
|
|
124
|
+
const PropertyNames &allowedProperties) {
|
|
125
|
+
folly::dynamic oldResult = folly::dynamic::object;
|
|
126
|
+
folly::dynamic newResult = folly::dynamic::object;
|
|
127
|
+
PropertyNames changedPropertyNames;
|
|
128
|
+
|
|
129
|
+
for (const auto &propName : allowedProperties) {
|
|
130
|
+
auto [oldChangedProp, newChangedProp] = getChangedValueForProp(oldProps, newProps, propName);
|
|
131
|
+
|
|
132
|
+
const auto hasOldChangedProp = !oldChangedProp.isNull();
|
|
133
|
+
const auto hasNewChangedProp = !newChangedProp.isNull();
|
|
134
|
+
|
|
135
|
+
if (hasOldChangedProp) {
|
|
136
|
+
oldResult[propName] = std::move(oldChangedProp);
|
|
137
|
+
}
|
|
138
|
+
if (hasNewChangedProp) {
|
|
139
|
+
newResult[propName] = std::move(newChangedProp);
|
|
140
|
+
}
|
|
141
|
+
if (hasOldChangedProp || hasNewChangedProp) {
|
|
142
|
+
changedPropertyNames.push_back(propName);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
return {std::move(oldResult), std::move(newResult), std::move(changedPropertyNames)};
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
} // namespace reanimated::css
|
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
#pragma once
|
|
2
|
-
|
|
3
|
-
#include <reanimated/CSS/InterpolatorRegistry.h>
|
|
4
|
-
#include <reanimated/CSS/common/definitions.h>
|
|
5
|
-
|
|
6
|
-
#include <memory>
|
|
7
|
-
#include <string>
|
|
8
|
-
#include <unordered_map>
|
|
9
|
-
#include <unordered_set>
|
|
10
|
-
#include <utility>
|
|
11
|
-
|
|
12
|
-
namespace reanimated::css {
|
|
13
|
-
|
|
14
|
-
struct ChangedProps {
|
|
15
|
-
const folly::dynamic oldProps;
|
|
16
|
-
const folly::dynamic newProps;
|
|
17
|
-
const PropertyNames changedPropertyNames;
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
bool isDiscreteProperty(const std::string &propName, const std::string &componentName);
|
|
21
|
-
|
|
22
|
-
// We need to specify it here because there are 2 methods referencing
|
|
23
|
-
// each other in the recursion and areArraysDifferentRecursive must be
|
|
24
|
-
// aware that getChangedPropsRecursive exists
|
|
25
|
-
std::pair<folly::dynamic, folly::dynamic> getChangedPropsRecursive(
|
|
26
|
-
const folly::dynamic &oldProp,
|
|
27
|
-
const folly::dynamic &newProp);
|
|
28
|
-
|
|
29
|
-
ChangedProps
|
|
30
|
-
getChangedProps(const folly::dynamic &oldProps, const folly::dynamic &newProps, const PropertyNames &allowedProperties);
|
|
31
|
-
|
|
32
|
-
} // namespace reanimated::css
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include <reanimated/CSS/InterpolatorRegistry.h>
|
|
4
|
+
#include <reanimated/CSS/common/definitions.h>
|
|
5
|
+
|
|
6
|
+
#include <memory>
|
|
7
|
+
#include <string>
|
|
8
|
+
#include <unordered_map>
|
|
9
|
+
#include <unordered_set>
|
|
10
|
+
#include <utility>
|
|
11
|
+
|
|
12
|
+
namespace reanimated::css {
|
|
13
|
+
|
|
14
|
+
struct ChangedProps {
|
|
15
|
+
const folly::dynamic oldProps;
|
|
16
|
+
const folly::dynamic newProps;
|
|
17
|
+
const PropertyNames changedPropertyNames;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
bool isDiscreteProperty(const std::string &propName, const std::string &componentName);
|
|
21
|
+
|
|
22
|
+
// We need to specify it here because there are 2 methods referencing
|
|
23
|
+
// each other in the recursion and areArraysDifferentRecursive must be
|
|
24
|
+
// aware that getChangedPropsRecursive exists
|
|
25
|
+
std::pair<folly::dynamic, folly::dynamic> getChangedPropsRecursive(
|
|
26
|
+
const folly::dynamic &oldProp,
|
|
27
|
+
const folly::dynamic &newProp);
|
|
28
|
+
|
|
29
|
+
ChangedProps
|
|
30
|
+
getChangedProps(const folly::dynamic &oldProps, const folly::dynamic &newProps, const PropertyNames &allowedProperties);
|
|
31
|
+
|
|
32
|
+
} // namespace reanimated::css
|
package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedCommitHook.cpp
CHANGED
|
@@ -1,113 +1,113 @@
|
|
|
1
|
-
#include <reanimated/Fabric/ReanimatedCommitHook.h>
|
|
2
|
-
#include <reanimated/Fabric/ReanimatedCommitShadowNode.h>
|
|
3
|
-
#include <reanimated/Fabric/ShadowTreeCloner.h>
|
|
4
|
-
#include <reanimated/Tools/FeatureFlags.h>
|
|
5
|
-
#include <reanimated/Tools/ReanimatedSystraceSection.h>
|
|
6
|
-
|
|
7
|
-
#include <react/renderer/core/ComponentDescriptor.h>
|
|
8
|
-
|
|
9
|
-
#include <memory>
|
|
10
|
-
#include <unordered_map>
|
|
11
|
-
#include <vector>
|
|
12
|
-
|
|
13
|
-
using namespace facebook::react;
|
|
14
|
-
|
|
15
|
-
namespace reanimated {
|
|
16
|
-
|
|
17
|
-
ReanimatedCommitHook::ReanimatedCommitHook(
|
|
18
|
-
const std::shared_ptr<UIManager> &uiManager,
|
|
19
|
-
const std::shared_ptr<UpdatesRegistryManager> &updatesRegistryManager,
|
|
20
|
-
const std::shared_ptr<LayoutAnimationsProxyCommon> &layoutAnimationsProxy)
|
|
21
|
-
: uiManager_(uiManager),
|
|
22
|
-
updatesRegistryManager_(updatesRegistryManager),
|
|
23
|
-
layoutAnimationsProxy_(layoutAnimationsProxy) {
|
|
24
|
-
uiManager_->registerCommitHook(*this);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
ReanimatedCommitHook::~ReanimatedCommitHook() noexcept {
|
|
28
|
-
uiManager_->unregisterCommitHook(*this);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
void ReanimatedCommitHook::maybeInitializeLayoutAnimations(SurfaceId surfaceId) {
|
|
32
|
-
auto lock = std::unique_lock<std::mutex>(mutex_);
|
|
33
|
-
if (surfaceId > currentMaxSurfaceId_) {
|
|
34
|
-
// when a new surfaceId is observed we call setMountingOverrideDelegate
|
|
35
|
-
// for all yet unseen surfaces
|
|
36
|
-
uiManager_->getShadowTreeRegistry().enumerate([strongThis = shared_from_this()](
|
|
37
|
-
const ShadowTree &shadowTree, bool &stop) {
|
|
38
|
-
// Executed synchronously.
|
|
39
|
-
if (shadowTree.getSurfaceId() <= strongThis->currentMaxSurfaceId_) {
|
|
40
|
-
// the set function actually adds our delegate to a list, so we
|
|
41
|
-
// shouldn't invoke it twice for the same surface
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
// TODO: We should consider registering a new instance of proxy for each surface.
|
|
45
|
-
// The current approach will encounter problems on platforms where it is more common to have multiple surfaces.
|
|
46
|
-
strongThis->layoutAnimationsProxy_->startSurface(shadowTree.getSurfaceId());
|
|
47
|
-
shadowTree.getMountingCoordinator()->setMountingOverrideDelegate(strongThis->layoutAnimationsProxy_);
|
|
48
|
-
});
|
|
49
|
-
currentMaxSurfaceId_ = surfaceId;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
RootShadowNode::Unshared ReanimatedCommitHook::shadowTreeWillCommit(
|
|
54
|
-
ShadowTree const &,
|
|
55
|
-
RootShadowNode::Shared const &,
|
|
56
|
-
RootShadowNode::Unshared const &newRootShadowNode
|
|
57
|
-
#if REACT_NATIVE_MINOR_VERSION >= 80
|
|
58
|
-
,
|
|
59
|
-
const ShadowTreeCommitOptions &commitOptions
|
|
60
|
-
#endif
|
|
61
|
-
) noexcept {
|
|
62
|
-
ReanimatedSystraceSection s("ReanimatedCommitHook::shadowTreeWillCommit");
|
|
63
|
-
|
|
64
|
-
maybeInitializeLayoutAnimations(newRootShadowNode->getSurfaceId());
|
|
65
|
-
|
|
66
|
-
auto reaShadowNode = std::reinterpret_pointer_cast<ReanimatedCommitShadowNode>(newRootShadowNode);
|
|
67
|
-
|
|
68
|
-
if (reaShadowNode->hasReanimatedCommitTrait()) {
|
|
69
|
-
// ShadowTree commited by Reanimated, no need to apply updates from
|
|
70
|
-
// the updates registry manager
|
|
71
|
-
reaShadowNode->unsetReanimatedCommitTrait();
|
|
72
|
-
reaShadowNode->setReanimatedMountTrait();
|
|
73
|
-
return newRootShadowNode;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
#if REACT_NATIVE_MINOR_VERSION >= 80
|
|
77
|
-
if constexpr (StaticFeatureFlags::getFlag("USE_COMMIT_HOOK_ONLY_FOR_REACT_COMMITS")) {
|
|
78
|
-
// State updates are based on the currently committed ShadowTree,
|
|
79
|
-
// which means that all animation changes are already included.
|
|
80
|
-
// Therefore, there's no need to reapply styles from the props map.
|
|
81
|
-
if (commitOptions.source != ShadowTreeCommitSource::React) {
|
|
82
|
-
return newRootShadowNode;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
#endif
|
|
86
|
-
|
|
87
|
-
// ShadowTree not commited by Reanimated, apply updates from the updates
|
|
88
|
-
// registry manager
|
|
89
|
-
reaShadowNode->unsetReanimatedMountTrait();
|
|
90
|
-
RootShadowNode::Unshared rootNode = newRootShadowNode;
|
|
91
|
-
|
|
92
|
-
{
|
|
93
|
-
auto lock = updatesRegistryManager_->lock();
|
|
94
|
-
|
|
95
|
-
PropsMap propsMap = updatesRegistryManager_->collectProps();
|
|
96
|
-
updatesRegistryManager_->cancelCommitAfterPause();
|
|
97
|
-
|
|
98
|
-
rootNode = cloneShadowTreeWithNewProps(*rootNode, propsMap);
|
|
99
|
-
// If the commit comes from React Native then pause commits from
|
|
100
|
-
// Reanimated since the ShadowTree to be committed by Reanimated may not
|
|
101
|
-
// include the new changes from React Native yet and all changes of animated
|
|
102
|
-
// props will be applied in ReanimatedCommitHook by UpdatesRegistryManager
|
|
103
|
-
// This is very important, since if we didn't pause Reanimated commits,
|
|
104
|
-
// it could lead to RN commits being delayed until the animation is finished
|
|
105
|
-
// (very bad). We don't pause Reanimated commits for state updates coming
|
|
106
|
-
// from React Native as this would break sticky header animations.
|
|
107
|
-
updatesRegistryManager_->pauseReanimatedCommits();
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
return rootNode;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
} // namespace reanimated
|
|
1
|
+
#include <reanimated/Fabric/ReanimatedCommitHook.h>
|
|
2
|
+
#include <reanimated/Fabric/ReanimatedCommitShadowNode.h>
|
|
3
|
+
#include <reanimated/Fabric/ShadowTreeCloner.h>
|
|
4
|
+
#include <reanimated/Tools/FeatureFlags.h>
|
|
5
|
+
#include <reanimated/Tools/ReanimatedSystraceSection.h>
|
|
6
|
+
|
|
7
|
+
#include <react/renderer/core/ComponentDescriptor.h>
|
|
8
|
+
|
|
9
|
+
#include <memory>
|
|
10
|
+
#include <unordered_map>
|
|
11
|
+
#include <vector>
|
|
12
|
+
|
|
13
|
+
using namespace facebook::react;
|
|
14
|
+
|
|
15
|
+
namespace reanimated {
|
|
16
|
+
|
|
17
|
+
ReanimatedCommitHook::ReanimatedCommitHook(
|
|
18
|
+
const std::shared_ptr<UIManager> &uiManager,
|
|
19
|
+
const std::shared_ptr<UpdatesRegistryManager> &updatesRegistryManager,
|
|
20
|
+
const std::shared_ptr<LayoutAnimationsProxyCommon> &layoutAnimationsProxy)
|
|
21
|
+
: uiManager_(uiManager),
|
|
22
|
+
updatesRegistryManager_(updatesRegistryManager),
|
|
23
|
+
layoutAnimationsProxy_(layoutAnimationsProxy) {
|
|
24
|
+
uiManager_->registerCommitHook(*this);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
ReanimatedCommitHook::~ReanimatedCommitHook() noexcept {
|
|
28
|
+
uiManager_->unregisterCommitHook(*this);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
void ReanimatedCommitHook::maybeInitializeLayoutAnimations(SurfaceId surfaceId) {
|
|
32
|
+
auto lock = std::unique_lock<std::mutex>(mutex_);
|
|
33
|
+
if (surfaceId > currentMaxSurfaceId_) {
|
|
34
|
+
// when a new surfaceId is observed we call setMountingOverrideDelegate
|
|
35
|
+
// for all yet unseen surfaces
|
|
36
|
+
uiManager_->getShadowTreeRegistry().enumerate([strongThis = shared_from_this()](
|
|
37
|
+
const ShadowTree &shadowTree, bool &stop) {
|
|
38
|
+
// Executed synchronously.
|
|
39
|
+
if (shadowTree.getSurfaceId() <= strongThis->currentMaxSurfaceId_) {
|
|
40
|
+
// the set function actually adds our delegate to a list, so we
|
|
41
|
+
// shouldn't invoke it twice for the same surface
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
// TODO: We should consider registering a new instance of proxy for each surface.
|
|
45
|
+
// The current approach will encounter problems on platforms where it is more common to have multiple surfaces.
|
|
46
|
+
strongThis->layoutAnimationsProxy_->startSurface(shadowTree.getSurfaceId());
|
|
47
|
+
shadowTree.getMountingCoordinator()->setMountingOverrideDelegate(strongThis->layoutAnimationsProxy_);
|
|
48
|
+
});
|
|
49
|
+
currentMaxSurfaceId_ = surfaceId;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
RootShadowNode::Unshared ReanimatedCommitHook::shadowTreeWillCommit(
|
|
54
|
+
ShadowTree const &,
|
|
55
|
+
RootShadowNode::Shared const &,
|
|
56
|
+
RootShadowNode::Unshared const &newRootShadowNode
|
|
57
|
+
#if REACT_NATIVE_MINOR_VERSION >= 80
|
|
58
|
+
,
|
|
59
|
+
const ShadowTreeCommitOptions &commitOptions
|
|
60
|
+
#endif
|
|
61
|
+
) noexcept {
|
|
62
|
+
ReanimatedSystraceSection s("ReanimatedCommitHook::shadowTreeWillCommit");
|
|
63
|
+
|
|
64
|
+
maybeInitializeLayoutAnimations(newRootShadowNode->getSurfaceId());
|
|
65
|
+
|
|
66
|
+
auto reaShadowNode = std::reinterpret_pointer_cast<ReanimatedCommitShadowNode>(newRootShadowNode);
|
|
67
|
+
|
|
68
|
+
if (reaShadowNode->hasReanimatedCommitTrait()) {
|
|
69
|
+
// ShadowTree commited by Reanimated, no need to apply updates from
|
|
70
|
+
// the updates registry manager
|
|
71
|
+
reaShadowNode->unsetReanimatedCommitTrait();
|
|
72
|
+
reaShadowNode->setReanimatedMountTrait();
|
|
73
|
+
return newRootShadowNode;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
#if REACT_NATIVE_MINOR_VERSION >= 80
|
|
77
|
+
if constexpr (StaticFeatureFlags::getFlag("USE_COMMIT_HOOK_ONLY_FOR_REACT_COMMITS")) {
|
|
78
|
+
// State updates are based on the currently committed ShadowTree,
|
|
79
|
+
// which means that all animation changes are already included.
|
|
80
|
+
// Therefore, there's no need to reapply styles from the props map.
|
|
81
|
+
if (commitOptions.source != ShadowTreeCommitSource::React) {
|
|
82
|
+
return newRootShadowNode;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
#endif
|
|
86
|
+
|
|
87
|
+
// ShadowTree not commited by Reanimated, apply updates from the updates
|
|
88
|
+
// registry manager
|
|
89
|
+
reaShadowNode->unsetReanimatedMountTrait();
|
|
90
|
+
RootShadowNode::Unshared rootNode = newRootShadowNode;
|
|
91
|
+
|
|
92
|
+
{
|
|
93
|
+
auto lock = updatesRegistryManager_->lock();
|
|
94
|
+
|
|
95
|
+
PropsMap propsMap = updatesRegistryManager_->collectProps();
|
|
96
|
+
updatesRegistryManager_->cancelCommitAfterPause();
|
|
97
|
+
|
|
98
|
+
rootNode = cloneShadowTreeWithNewProps(*rootNode, propsMap);
|
|
99
|
+
// If the commit comes from React Native then pause commits from
|
|
100
|
+
// Reanimated since the ShadowTree to be committed by Reanimated may not
|
|
101
|
+
// include the new changes from React Native yet and all changes of animated
|
|
102
|
+
// props will be applied in ReanimatedCommitHook by UpdatesRegistryManager
|
|
103
|
+
// This is very important, since if we didn't pause Reanimated commits,
|
|
104
|
+
// it could lead to RN commits being delayed until the animation is finished
|
|
105
|
+
// (very bad). We don't pause Reanimated commits for state updates coming
|
|
106
|
+
// from React Native as this would break sticky header animations.
|
|
107
|
+
updatesRegistryManager_->pauseReanimatedCommits();
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
return rootNode;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
} // namespace reanimated
|