@react-native-ohos/react-native-reanimated 4.0.1 → 4.0.2-beta.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 -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 +65 -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 +233 -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 +51 -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
package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSAnimationsRegistry.h
CHANGED
|
@@ -1,80 +1,80 @@
|
|
|
1
|
-
#pragma once
|
|
2
|
-
|
|
3
|
-
#include <reanimated/CSS/configs/CSSAnimationConfig.h>
|
|
4
|
-
#include <reanimated/CSS/core/CSSAnimation.h>
|
|
5
|
-
#include <reanimated/CSS/utils/DelayedItemsManager.h>
|
|
6
|
-
#include <reanimated/CSS/utils/props.h>
|
|
7
|
-
#include <reanimated/Fabric/updates/UpdatesRegistry.h>
|
|
8
|
-
|
|
9
|
-
#include <memory>
|
|
10
|
-
#include <set>
|
|
11
|
-
#include <string>
|
|
12
|
-
#include <unordered_map>
|
|
13
|
-
#include <unordered_set>
|
|
14
|
-
#include <utility>
|
|
15
|
-
#include <vector>
|
|
16
|
-
|
|
17
|
-
namespace reanimated::css {
|
|
18
|
-
|
|
19
|
-
using CSSAnimationsMap = std::unordered_map<size_t, std::shared_ptr<CSSAnimation>>;
|
|
20
|
-
using CSSAnimationsVector = std::vector<std::shared_ptr<CSSAnimation>>;
|
|
21
|
-
|
|
22
|
-
class CSSAnimationsRegistry : public UpdatesRegistry, std::enable_shared_from_this<CSSAnimationsRegistry> {
|
|
23
|
-
public:
|
|
24
|
-
using SettingsUpdates = std::vector<std::pair<size_t, PartialCSSAnimationSettings>>;
|
|
25
|
-
|
|
26
|
-
bool isEmpty() const override;
|
|
27
|
-
bool hasUpdates() const;
|
|
28
|
-
|
|
29
|
-
void apply(
|
|
30
|
-
jsi::Runtime &rt,
|
|
31
|
-
const std::shared_ptr<const ShadowNode> &shadowNode,
|
|
32
|
-
const std::optional<std::vector<std::string>> &animationNames,
|
|
33
|
-
const CSSAnimationsMap &newAnimations,
|
|
34
|
-
const CSSAnimationSettingsUpdatesMap &settingsUpdates,
|
|
35
|
-
double timestamp);
|
|
36
|
-
void remove(Tag viewTag) override;
|
|
37
|
-
|
|
38
|
-
void update(double timestamp);
|
|
39
|
-
|
|
40
|
-
private:
|
|
41
|
-
using AnimationToIndexMap = std::unordered_map<std::shared_ptr<CSSAnimation>, size_t>;
|
|
42
|
-
using RunningAnimationIndicesMap = std::unordered_map<Tag, std::set<size_t>>;
|
|
43
|
-
using AnimationsToRevertMap = std::unordered_map<Tag, std::unordered_set<size_t>>;
|
|
44
|
-
struct RegistryEntry {
|
|
45
|
-
const CSSAnimationsVector animationsVector;
|
|
46
|
-
const AnimationToIndexMap animationToIndexMap;
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
using Registry = std::unordered_map<Tag, RegistryEntry>;
|
|
50
|
-
|
|
51
|
-
Registry registry_;
|
|
52
|
-
|
|
53
|
-
RunningAnimationIndicesMap runningAnimationIndicesMap_;
|
|
54
|
-
AnimationsToRevertMap animationsToRevertMap_;
|
|
55
|
-
DelayedItemsManager<std::shared_ptr<CSSAnimation>> delayedAnimationsManager_;
|
|
56
|
-
|
|
57
|
-
CSSAnimationsVector buildAnimationsVector(
|
|
58
|
-
jsi::Runtime &rt,
|
|
59
|
-
const std::shared_ptr<const ShadowNode> &shadowNode,
|
|
60
|
-
const std::optional<std::vector<std::string>> &animationNames,
|
|
61
|
-
const std::optional<CSSAnimationsMap> &newAnimations) const;
|
|
62
|
-
AnimationToIndexMap buildAnimationToIndexMap(const CSSAnimationsVector &animationsVector) const;
|
|
63
|
-
void updateAnimationSettings(
|
|
64
|
-
const CSSAnimationsVector &animationsVector,
|
|
65
|
-
const CSSAnimationSettingsUpdatesMap &settingsUpdates,
|
|
66
|
-
double timestamp);
|
|
67
|
-
|
|
68
|
-
void
|
|
69
|
-
updateViewAnimations(Tag viewTag, const std::vector<size_t> &animationIndices, double timestamp, bool addToBatch);
|
|
70
|
-
void
|
|
71
|
-
scheduleOrActivateAnimation(size_t animationIndex, const std::shared_ptr<CSSAnimation> &animation, double timestamp);
|
|
72
|
-
void removeViewAnimations(Tag viewTag);
|
|
73
|
-
void applyViewAnimationsStyle(Tag viewTag, double timestamp);
|
|
74
|
-
void activateDelayedAnimations(double timestamp);
|
|
75
|
-
void handleAnimationsToRevert(double timestamp);
|
|
76
|
-
|
|
77
|
-
static bool addStyleUpdates(folly::dynamic &target, const folly::dynamic &updates, bool shouldOverride);
|
|
78
|
-
};
|
|
79
|
-
|
|
80
|
-
} // namespace reanimated::css
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include <reanimated/CSS/configs/CSSAnimationConfig.h>
|
|
4
|
+
#include <reanimated/CSS/core/CSSAnimation.h>
|
|
5
|
+
#include <reanimated/CSS/utils/DelayedItemsManager.h>
|
|
6
|
+
#include <reanimated/CSS/utils/props.h>
|
|
7
|
+
#include <reanimated/Fabric/updates/UpdatesRegistry.h>
|
|
8
|
+
|
|
9
|
+
#include <memory>
|
|
10
|
+
#include <set>
|
|
11
|
+
#include <string>
|
|
12
|
+
#include <unordered_map>
|
|
13
|
+
#include <unordered_set>
|
|
14
|
+
#include <utility>
|
|
15
|
+
#include <vector>
|
|
16
|
+
|
|
17
|
+
namespace reanimated::css {
|
|
18
|
+
|
|
19
|
+
using CSSAnimationsMap = std::unordered_map<size_t, std::shared_ptr<CSSAnimation>>;
|
|
20
|
+
using CSSAnimationsVector = std::vector<std::shared_ptr<CSSAnimation>>;
|
|
21
|
+
|
|
22
|
+
class CSSAnimationsRegistry : public UpdatesRegistry, std::enable_shared_from_this<CSSAnimationsRegistry> {
|
|
23
|
+
public:
|
|
24
|
+
using SettingsUpdates = std::vector<std::pair<size_t, PartialCSSAnimationSettings>>;
|
|
25
|
+
|
|
26
|
+
bool isEmpty() const override;
|
|
27
|
+
bool hasUpdates() const;
|
|
28
|
+
|
|
29
|
+
void apply(
|
|
30
|
+
jsi::Runtime &rt,
|
|
31
|
+
const std::shared_ptr<const ShadowNode> &shadowNode,
|
|
32
|
+
const std::optional<std::vector<std::string>> &animationNames,
|
|
33
|
+
const CSSAnimationsMap &newAnimations,
|
|
34
|
+
const CSSAnimationSettingsUpdatesMap &settingsUpdates,
|
|
35
|
+
double timestamp);
|
|
36
|
+
void remove(Tag viewTag) override;
|
|
37
|
+
|
|
38
|
+
void update(double timestamp);
|
|
39
|
+
|
|
40
|
+
private:
|
|
41
|
+
using AnimationToIndexMap = std::unordered_map<std::shared_ptr<CSSAnimation>, size_t>;
|
|
42
|
+
using RunningAnimationIndicesMap = std::unordered_map<Tag, std::set<size_t>>;
|
|
43
|
+
using AnimationsToRevertMap = std::unordered_map<Tag, std::unordered_set<size_t>>;
|
|
44
|
+
struct RegistryEntry {
|
|
45
|
+
const CSSAnimationsVector animationsVector;
|
|
46
|
+
const AnimationToIndexMap animationToIndexMap;
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
using Registry = std::unordered_map<Tag, RegistryEntry>;
|
|
50
|
+
|
|
51
|
+
Registry registry_;
|
|
52
|
+
|
|
53
|
+
RunningAnimationIndicesMap runningAnimationIndicesMap_;
|
|
54
|
+
AnimationsToRevertMap animationsToRevertMap_;
|
|
55
|
+
DelayedItemsManager<std::shared_ptr<CSSAnimation>> delayedAnimationsManager_;
|
|
56
|
+
|
|
57
|
+
CSSAnimationsVector buildAnimationsVector(
|
|
58
|
+
jsi::Runtime &rt,
|
|
59
|
+
const std::shared_ptr<const ShadowNode> &shadowNode,
|
|
60
|
+
const std::optional<std::vector<std::string>> &animationNames,
|
|
61
|
+
const std::optional<CSSAnimationsMap> &newAnimations) const;
|
|
62
|
+
AnimationToIndexMap buildAnimationToIndexMap(const CSSAnimationsVector &animationsVector) const;
|
|
63
|
+
void updateAnimationSettings(
|
|
64
|
+
const CSSAnimationsVector &animationsVector,
|
|
65
|
+
const CSSAnimationSettingsUpdatesMap &settingsUpdates,
|
|
66
|
+
double timestamp);
|
|
67
|
+
|
|
68
|
+
void
|
|
69
|
+
updateViewAnimations(Tag viewTag, const std::vector<size_t> &animationIndices, double timestamp, bool addToBatch);
|
|
70
|
+
void
|
|
71
|
+
scheduleOrActivateAnimation(size_t animationIndex, const std::shared_ptr<CSSAnimation> &animation, double timestamp);
|
|
72
|
+
void removeViewAnimations(Tag viewTag);
|
|
73
|
+
void applyViewAnimationsStyle(Tag viewTag, double timestamp);
|
|
74
|
+
void activateDelayedAnimations(double timestamp);
|
|
75
|
+
void handleAnimationsToRevert(double timestamp);
|
|
76
|
+
|
|
77
|
+
static bool addStyleUpdates(folly::dynamic &target, const folly::dynamic &updates, bool shouldOverride);
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
} // namespace reanimated::css
|
|
@@ -1,45 +1,45 @@
|
|
|
1
|
-
#include <reanimated/CSS/registries/CSSKeyframesRegistry.h>
|
|
2
|
-
|
|
3
|
-
#include <memory>
|
|
4
|
-
#include <string>
|
|
5
|
-
#include <utility>
|
|
6
|
-
|
|
7
|
-
namespace reanimated::css {
|
|
8
|
-
|
|
9
|
-
CSSKeyframesRegistry::CSSKeyframesRegistry(const std::shared_ptr<ViewStylesRepository> &viewStylesRepository)
|
|
10
|
-
: viewStylesRepository_(viewStylesRepository) {}
|
|
11
|
-
|
|
12
|
-
const CSSKeyframesConfig &CSSKeyframesRegistry::get(
|
|
13
|
-
const std::string &animationName,
|
|
14
|
-
const std::string &componentName) {
|
|
15
|
-
const auto ®istryIt = registry_.find(animationName);
|
|
16
|
-
if (registryIt == registry_.end()) {
|
|
17
|
-
throw std::runtime_error("[Reanimated] No keyframes with name `" + animationName + "` were registered");
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
const auto &keyframesByComponentName = registryIt->second;
|
|
21
|
-
const auto &keyframesByComponentNameIt = keyframesByComponentName.find(componentName);
|
|
22
|
-
if (keyframesByComponentNameIt == keyframesByComponentName.end()) {
|
|
23
|
-
throw std::runtime_error(
|
|
24
|
-
"[Reanimated] No keyframes with name `" + animationName + "` were registered for component `" + componentName +
|
|
25
|
-
"`");
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
return keyframesByComponentNameIt->second;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
void CSSKeyframesRegistry::set(
|
|
32
|
-
const std::string &animationName,
|
|
33
|
-
const std::string &componentName,
|
|
34
|
-
CSSKeyframesConfig &&config) {
|
|
35
|
-
registry_[animationName][componentName] = std::move(config);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
void CSSKeyframesRegistry::remove(const std::string &animationName, const std::string &componentName) {
|
|
39
|
-
registry_[animationName].erase(componentName);
|
|
40
|
-
if (registry_[animationName].empty()) {
|
|
41
|
-
registry_.erase(animationName);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
} // namespace reanimated::css
|
|
1
|
+
#include <reanimated/CSS/registries/CSSKeyframesRegistry.h>
|
|
2
|
+
|
|
3
|
+
#include <memory>
|
|
4
|
+
#include <string>
|
|
5
|
+
#include <utility>
|
|
6
|
+
|
|
7
|
+
namespace reanimated::css {
|
|
8
|
+
|
|
9
|
+
CSSKeyframesRegistry::CSSKeyframesRegistry(const std::shared_ptr<ViewStylesRepository> &viewStylesRepository)
|
|
10
|
+
: viewStylesRepository_(viewStylesRepository) {}
|
|
11
|
+
|
|
12
|
+
const CSSKeyframesConfig &CSSKeyframesRegistry::get(
|
|
13
|
+
const std::string &animationName,
|
|
14
|
+
const std::string &componentName) {
|
|
15
|
+
const auto ®istryIt = registry_.find(animationName);
|
|
16
|
+
if (registryIt == registry_.end()) {
|
|
17
|
+
throw std::runtime_error("[Reanimated] No keyframes with name `" + animationName + "` were registered");
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
const auto &keyframesByComponentName = registryIt->second;
|
|
21
|
+
const auto &keyframesByComponentNameIt = keyframesByComponentName.find(componentName);
|
|
22
|
+
if (keyframesByComponentNameIt == keyframesByComponentName.end()) {
|
|
23
|
+
throw std::runtime_error(
|
|
24
|
+
"[Reanimated] No keyframes with name `" + animationName + "` were registered for component `" + componentName +
|
|
25
|
+
"`");
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
return keyframesByComponentNameIt->second;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
void CSSKeyframesRegistry::set(
|
|
32
|
+
const std::string &animationName,
|
|
33
|
+
const std::string &componentName,
|
|
34
|
+
CSSKeyframesConfig &&config) {
|
|
35
|
+
registry_[animationName][componentName] = std::move(config);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
void CSSKeyframesRegistry::remove(const std::string &animationName, const std::string &componentName) {
|
|
39
|
+
registry_[animationName].erase(componentName);
|
|
40
|
+
if (registry_[animationName].empty()) {
|
|
41
|
+
registry_.erase(animationName);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
} // namespace reanimated::css
|
package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSKeyframesRegistry.h
CHANGED
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
#pragma once
|
|
2
|
-
|
|
3
|
-
#include <reanimated/CSS/configs/CSSKeyframesConfig.h>
|
|
4
|
-
#include <reanimated/CSS/interpolation/styles/AnimationStyleInterpolator.h>
|
|
5
|
-
#include <reanimated/CSS/misc/ViewStylesRepository.h>
|
|
6
|
-
|
|
7
|
-
#include <memory>
|
|
8
|
-
#include <string>
|
|
9
|
-
#include <unordered_map>
|
|
10
|
-
#include <utility>
|
|
11
|
-
|
|
12
|
-
namespace reanimated::css {
|
|
13
|
-
|
|
14
|
-
class CSSKeyframesRegistry {
|
|
15
|
-
public:
|
|
16
|
-
explicit CSSKeyframesRegistry(const std::shared_ptr<ViewStylesRepository> &viewStylesRepository);
|
|
17
|
-
|
|
18
|
-
const CSSKeyframesConfig &get(const std::string &animationName, const std::string &componentName);
|
|
19
|
-
void set(const std::string &animationName, const std::string &componentName, CSSKeyframesConfig &&config);
|
|
20
|
-
void remove(const std::string &animationName, const std::string &componentName);
|
|
21
|
-
|
|
22
|
-
private:
|
|
23
|
-
using ConfigsByComponentName = std::unordered_map<std::string, CSSKeyframesConfig>;
|
|
24
|
-
|
|
25
|
-
std::unordered_map<std::string, ConfigsByComponentName> registry_;
|
|
26
|
-
const std::shared_ptr<ViewStylesRepository> viewStylesRepository_;
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
} // namespace reanimated::css
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include <reanimated/CSS/configs/CSSKeyframesConfig.h>
|
|
4
|
+
#include <reanimated/CSS/interpolation/styles/AnimationStyleInterpolator.h>
|
|
5
|
+
#include <reanimated/CSS/misc/ViewStylesRepository.h>
|
|
6
|
+
|
|
7
|
+
#include <memory>
|
|
8
|
+
#include <string>
|
|
9
|
+
#include <unordered_map>
|
|
10
|
+
#include <utility>
|
|
11
|
+
|
|
12
|
+
namespace reanimated::css {
|
|
13
|
+
|
|
14
|
+
class CSSKeyframesRegistry {
|
|
15
|
+
public:
|
|
16
|
+
explicit CSSKeyframesRegistry(const std::shared_ptr<ViewStylesRepository> &viewStylesRepository);
|
|
17
|
+
|
|
18
|
+
const CSSKeyframesConfig &get(const std::string &animationName, const std::string &componentName);
|
|
19
|
+
void set(const std::string &animationName, const std::string &componentName, CSSKeyframesConfig &&config);
|
|
20
|
+
void remove(const std::string &animationName, const std::string &componentName);
|
|
21
|
+
|
|
22
|
+
private:
|
|
23
|
+
using ConfigsByComponentName = std::unordered_map<std::string, CSSKeyframesConfig>;
|
|
24
|
+
|
|
25
|
+
std::unordered_map<std::string, ConfigsByComponentName> registry_;
|
|
26
|
+
const std::shared_ptr<ViewStylesRepository> viewStylesRepository_;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
} // namespace reanimated::css
|
|
@@ -1,167 +1,167 @@
|
|
|
1
|
-
#include <reanimated/CSS/registries/CSSTransitionsRegistry.h>
|
|
2
|
-
|
|
3
|
-
#include <memory>
|
|
4
|
-
#include <utility>
|
|
5
|
-
|
|
6
|
-
namespace reanimated::css {
|
|
7
|
-
|
|
8
|
-
CSSTransitionsRegistry::CSSTransitionsRegistry(
|
|
9
|
-
const std::shared_ptr<StaticPropsRegistry> &staticPropsRegistry,
|
|
10
|
-
const GetAnimationTimestampFunction &getCurrentTimestamp)
|
|
11
|
-
: getCurrentTimestamp_(getCurrentTimestamp), staticPropsRegistry_(staticPropsRegistry) {}
|
|
12
|
-
|
|
13
|
-
bool CSSTransitionsRegistry::isEmpty() const {
|
|
14
|
-
// The registry is empty if has no registered animations and no updates
|
|
15
|
-
// stored in the updates registry
|
|
16
|
-
return UpdatesRegistry::isEmpty() && registry_.empty();
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
bool CSSTransitionsRegistry::hasUpdates() const {
|
|
20
|
-
return !runningTransitionTags_.empty() || !delayedTransitionsManager_.empty();
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
void CSSTransitionsRegistry::add(const std::shared_ptr<CSSTransition> &transition) {
|
|
24
|
-
const auto &shadowNode = transition->getShadowNode();
|
|
25
|
-
const auto viewTag = shadowNode->getTag();
|
|
26
|
-
|
|
27
|
-
registry_.insert({viewTag, transition});
|
|
28
|
-
PropsObserver observer = createPropsObserver(viewTag);
|
|
29
|
-
staticPropsRegistry_->setObserver(viewTag, std::move(observer));
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
void CSSTransitionsRegistry::remove(const Tag viewTag) {
|
|
33
|
-
removeFromUpdatesRegistry(viewTag);
|
|
34
|
-
staticPropsRegistry_->removeObserver(viewTag);
|
|
35
|
-
delayedTransitionsManager_.remove(viewTag);
|
|
36
|
-
runningTransitionTags_.erase(viewTag);
|
|
37
|
-
registry_.erase(viewTag);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
void CSSTransitionsRegistry::updateSettings(const Tag viewTag, const PartialCSSTransitionConfig &config) {
|
|
41
|
-
const auto &transition = registry_[viewTag];
|
|
42
|
-
transition->updateSettings(config);
|
|
43
|
-
|
|
44
|
-
// Replace style overrides with the new ones if transition properties were
|
|
45
|
-
// updated (we want to keep overrides only for transitioned properties)
|
|
46
|
-
if (config.properties.has_value()) {
|
|
47
|
-
updateInUpdatesRegistry(transition, transition->getCurrentInterpolationStyle());
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
void CSSTransitionsRegistry::update(const double timestamp) {
|
|
52
|
-
// Activate all delayed transitions that should start now
|
|
53
|
-
activateDelayedTransitions(timestamp);
|
|
54
|
-
|
|
55
|
-
// Iterate over active transitions and update them
|
|
56
|
-
for (auto it = runningTransitionTags_.begin(); it != runningTransitionTags_.end();) {
|
|
57
|
-
const auto &viewTag = *it;
|
|
58
|
-
const auto &transition = registry_[viewTag];
|
|
59
|
-
|
|
60
|
-
const folly::dynamic &updates = transition->update(timestamp);
|
|
61
|
-
if (!updates.empty()) {
|
|
62
|
-
addUpdatesToBatch(transition->getShadowNode(), updates);
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
// We remove transition from running and schedule it when animation of one
|
|
66
|
-
// of properties has finished and the other one is still delayed
|
|
67
|
-
const auto &minDelay = transition->getMinDelay(timestamp);
|
|
68
|
-
if (minDelay > 0) {
|
|
69
|
-
delayedTransitionsManager_.add(timestamp + transition->getMinDelay(timestamp), viewTag);
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
if (transition->getState() != TransitionProgressState::Running) {
|
|
73
|
-
it = runningTransitionTags_.erase(it);
|
|
74
|
-
} else {
|
|
75
|
-
++it;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
void CSSTransitionsRegistry::activateDelayedTransitions(const double timestamp) {
|
|
81
|
-
while (!delayedTransitionsManager_.empty() && delayedTransitionsManager_.top().timestamp <= timestamp) {
|
|
82
|
-
const auto [_, viewTag] = delayedTransitionsManager_.pop();
|
|
83
|
-
|
|
84
|
-
// Add only these transitions which weren't removed in the meantime
|
|
85
|
-
if (registry_.find(viewTag) != registry_.end()) {
|
|
86
|
-
runningTransitionTags_.insert(viewTag);
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
void CSSTransitionsRegistry::scheduleOrActivateTransition(const std::shared_ptr<CSSTransition> &transition) {
|
|
92
|
-
const auto viewTag = transition->getViewTag();
|
|
93
|
-
const auto currentTimestamp = getCurrentTimestamp_();
|
|
94
|
-
const auto minDelay = transition->getMinDelay(currentTimestamp);
|
|
95
|
-
|
|
96
|
-
// Remove transition from delayed (if it is already added to delayed
|
|
97
|
-
// transitions)
|
|
98
|
-
delayedTransitionsManager_.remove(viewTag);
|
|
99
|
-
|
|
100
|
-
if (minDelay > 0) {
|
|
101
|
-
delayedTransitionsManager_.add(currentTimestamp + minDelay, viewTag);
|
|
102
|
-
} else {
|
|
103
|
-
runningTransitionTags_.insert(viewTag);
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
PropsObserver CSSTransitionsRegistry::createPropsObserver(const Tag viewTag) {
|
|
108
|
-
return [weakThis = weak_from_this(), viewTag](const folly::dynamic &oldProps, const folly::dynamic &newProps) {
|
|
109
|
-
auto strongThis = weakThis.lock();
|
|
110
|
-
if (!strongThis) {
|
|
111
|
-
return;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
const auto &transition = strongThis->registry_[viewTag];
|
|
115
|
-
const auto allowedProperties = transition->getAllowedProperties(oldProps, newProps);
|
|
116
|
-
|
|
117
|
-
const auto changedProps = getChangedProps(oldProps, newProps, allowedProperties);
|
|
118
|
-
|
|
119
|
-
if (changedProps.changedPropertyNames.empty()) {
|
|
120
|
-
return;
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
{
|
|
124
|
-
std::lock_guard<std::mutex> lock{strongThis->mutex_};
|
|
125
|
-
|
|
126
|
-
const auto &shadowNode = transition->getShadowNode();
|
|
127
|
-
const auto &lastUpdates = strongThis->getUpdatesFromRegistry(shadowNode->getTag());
|
|
128
|
-
const auto &transitionStartStyle = transition->run(changedProps, lastUpdates, strongThis->getCurrentTimestamp_());
|
|
129
|
-
strongThis->updateInUpdatesRegistry(transition, transitionStartStyle);
|
|
130
|
-
strongThis->scheduleOrActivateTransition(transition);
|
|
131
|
-
}
|
|
132
|
-
};
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
void CSSTransitionsRegistry::updateInUpdatesRegistry(
|
|
136
|
-
const std::shared_ptr<CSSTransition> &transition,
|
|
137
|
-
const folly::dynamic &updates) {
|
|
138
|
-
const auto &shadowNode = transition->getShadowNode();
|
|
139
|
-
const auto &lastUpdates = getUpdatesFromRegistry(shadowNode->getTag());
|
|
140
|
-
const auto &transitionProperties = transition->getProperties();
|
|
141
|
-
|
|
142
|
-
folly::dynamic filteredUpdates = folly::dynamic::object;
|
|
143
|
-
|
|
144
|
-
if (!transitionProperties.has_value()) {
|
|
145
|
-
// If transitionProperty is set to 'all' (optional has no value), we have
|
|
146
|
-
// to keep the result of the previous transition updated with the new
|
|
147
|
-
// transition starting values
|
|
148
|
-
if (!lastUpdates.empty()) {
|
|
149
|
-
filteredUpdates = lastUpdates;
|
|
150
|
-
}
|
|
151
|
-
} else if (!lastUpdates.empty()) {
|
|
152
|
-
// Otherwise, we keep only allowed properties from the last updates
|
|
153
|
-
// and update the object with the new transition starting values
|
|
154
|
-
for (const auto &prop : transitionProperties.value()) {
|
|
155
|
-
if (lastUpdates.count(prop)) {
|
|
156
|
-
filteredUpdates[prop] = lastUpdates[prop];
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
// updated object contains only allowed properties so we don't need
|
|
162
|
-
// to do additional filtering here
|
|
163
|
-
filteredUpdates.update(updates);
|
|
164
|
-
setInUpdatesRegistry(shadowNode, filteredUpdates);
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
} // namespace reanimated::css
|
|
1
|
+
#include <reanimated/CSS/registries/CSSTransitionsRegistry.h>
|
|
2
|
+
|
|
3
|
+
#include <memory>
|
|
4
|
+
#include <utility>
|
|
5
|
+
|
|
6
|
+
namespace reanimated::css {
|
|
7
|
+
|
|
8
|
+
CSSTransitionsRegistry::CSSTransitionsRegistry(
|
|
9
|
+
const std::shared_ptr<StaticPropsRegistry> &staticPropsRegistry,
|
|
10
|
+
const GetAnimationTimestampFunction &getCurrentTimestamp)
|
|
11
|
+
: getCurrentTimestamp_(getCurrentTimestamp), staticPropsRegistry_(staticPropsRegistry) {}
|
|
12
|
+
|
|
13
|
+
bool CSSTransitionsRegistry::isEmpty() const {
|
|
14
|
+
// The registry is empty if has no registered animations and no updates
|
|
15
|
+
// stored in the updates registry
|
|
16
|
+
return UpdatesRegistry::isEmpty() && registry_.empty();
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
bool CSSTransitionsRegistry::hasUpdates() const {
|
|
20
|
+
return !runningTransitionTags_.empty() || !delayedTransitionsManager_.empty();
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
void CSSTransitionsRegistry::add(const std::shared_ptr<CSSTransition> &transition) {
|
|
24
|
+
const auto &shadowNode = transition->getShadowNode();
|
|
25
|
+
const auto viewTag = shadowNode->getTag();
|
|
26
|
+
|
|
27
|
+
registry_.insert({viewTag, transition});
|
|
28
|
+
PropsObserver observer = createPropsObserver(viewTag);
|
|
29
|
+
staticPropsRegistry_->setObserver(viewTag, std::move(observer));
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
void CSSTransitionsRegistry::remove(const Tag viewTag) {
|
|
33
|
+
removeFromUpdatesRegistry(viewTag);
|
|
34
|
+
staticPropsRegistry_->removeObserver(viewTag);
|
|
35
|
+
delayedTransitionsManager_.remove(viewTag);
|
|
36
|
+
runningTransitionTags_.erase(viewTag);
|
|
37
|
+
registry_.erase(viewTag);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
void CSSTransitionsRegistry::updateSettings(const Tag viewTag, const PartialCSSTransitionConfig &config) {
|
|
41
|
+
const auto &transition = registry_[viewTag];
|
|
42
|
+
transition->updateSettings(config);
|
|
43
|
+
|
|
44
|
+
// Replace style overrides with the new ones if transition properties were
|
|
45
|
+
// updated (we want to keep overrides only for transitioned properties)
|
|
46
|
+
if (config.properties.has_value()) {
|
|
47
|
+
updateInUpdatesRegistry(transition, transition->getCurrentInterpolationStyle());
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
void CSSTransitionsRegistry::update(const double timestamp) {
|
|
52
|
+
// Activate all delayed transitions that should start now
|
|
53
|
+
activateDelayedTransitions(timestamp);
|
|
54
|
+
|
|
55
|
+
// Iterate over active transitions and update them
|
|
56
|
+
for (auto it = runningTransitionTags_.begin(); it != runningTransitionTags_.end();) {
|
|
57
|
+
const auto &viewTag = *it;
|
|
58
|
+
const auto &transition = registry_[viewTag];
|
|
59
|
+
|
|
60
|
+
const folly::dynamic &updates = transition->update(timestamp);
|
|
61
|
+
if (!updates.empty()) {
|
|
62
|
+
addUpdatesToBatch(transition->getShadowNode(), updates);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// We remove transition from running and schedule it when animation of one
|
|
66
|
+
// of properties has finished and the other one is still delayed
|
|
67
|
+
const auto &minDelay = transition->getMinDelay(timestamp);
|
|
68
|
+
if (minDelay > 0) {
|
|
69
|
+
delayedTransitionsManager_.add(timestamp + transition->getMinDelay(timestamp), viewTag);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
if (transition->getState() != TransitionProgressState::Running) {
|
|
73
|
+
it = runningTransitionTags_.erase(it);
|
|
74
|
+
} else {
|
|
75
|
+
++it;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
void CSSTransitionsRegistry::activateDelayedTransitions(const double timestamp) {
|
|
81
|
+
while (!delayedTransitionsManager_.empty() && delayedTransitionsManager_.top().timestamp <= timestamp) {
|
|
82
|
+
const auto [_, viewTag] = delayedTransitionsManager_.pop();
|
|
83
|
+
|
|
84
|
+
// Add only these transitions which weren't removed in the meantime
|
|
85
|
+
if (registry_.find(viewTag) != registry_.end()) {
|
|
86
|
+
runningTransitionTags_.insert(viewTag);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
void CSSTransitionsRegistry::scheduleOrActivateTransition(const std::shared_ptr<CSSTransition> &transition) {
|
|
92
|
+
const auto viewTag = transition->getViewTag();
|
|
93
|
+
const auto currentTimestamp = getCurrentTimestamp_();
|
|
94
|
+
const auto minDelay = transition->getMinDelay(currentTimestamp);
|
|
95
|
+
|
|
96
|
+
// Remove transition from delayed (if it is already added to delayed
|
|
97
|
+
// transitions)
|
|
98
|
+
delayedTransitionsManager_.remove(viewTag);
|
|
99
|
+
|
|
100
|
+
if (minDelay > 0) {
|
|
101
|
+
delayedTransitionsManager_.add(currentTimestamp + minDelay, viewTag);
|
|
102
|
+
} else {
|
|
103
|
+
runningTransitionTags_.insert(viewTag);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
PropsObserver CSSTransitionsRegistry::createPropsObserver(const Tag viewTag) {
|
|
108
|
+
return [weakThis = weak_from_this(), viewTag](const folly::dynamic &oldProps, const folly::dynamic &newProps) {
|
|
109
|
+
auto strongThis = weakThis.lock();
|
|
110
|
+
if (!strongThis) {
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
const auto &transition = strongThis->registry_[viewTag];
|
|
115
|
+
const auto allowedProperties = transition->getAllowedProperties(oldProps, newProps);
|
|
116
|
+
|
|
117
|
+
const auto changedProps = getChangedProps(oldProps, newProps, allowedProperties);
|
|
118
|
+
|
|
119
|
+
if (changedProps.changedPropertyNames.empty()) {
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
{
|
|
124
|
+
std::lock_guard<std::mutex> lock{strongThis->mutex_};
|
|
125
|
+
|
|
126
|
+
const auto &shadowNode = transition->getShadowNode();
|
|
127
|
+
const auto &lastUpdates = strongThis->getUpdatesFromRegistry(shadowNode->getTag());
|
|
128
|
+
const auto &transitionStartStyle = transition->run(changedProps, lastUpdates, strongThis->getCurrentTimestamp_());
|
|
129
|
+
strongThis->updateInUpdatesRegistry(transition, transitionStartStyle);
|
|
130
|
+
strongThis->scheduleOrActivateTransition(transition);
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
void CSSTransitionsRegistry::updateInUpdatesRegistry(
|
|
136
|
+
const std::shared_ptr<CSSTransition> &transition,
|
|
137
|
+
const folly::dynamic &updates) {
|
|
138
|
+
const auto &shadowNode = transition->getShadowNode();
|
|
139
|
+
const auto &lastUpdates = getUpdatesFromRegistry(shadowNode->getTag());
|
|
140
|
+
const auto &transitionProperties = transition->getProperties();
|
|
141
|
+
|
|
142
|
+
folly::dynamic filteredUpdates = folly::dynamic::object;
|
|
143
|
+
|
|
144
|
+
if (!transitionProperties.has_value()) {
|
|
145
|
+
// If transitionProperty is set to 'all' (optional has no value), we have
|
|
146
|
+
// to keep the result of the previous transition updated with the new
|
|
147
|
+
// transition starting values
|
|
148
|
+
if (!lastUpdates.empty()) {
|
|
149
|
+
filteredUpdates = lastUpdates;
|
|
150
|
+
}
|
|
151
|
+
} else if (!lastUpdates.empty()) {
|
|
152
|
+
// Otherwise, we keep only allowed properties from the last updates
|
|
153
|
+
// and update the object with the new transition starting values
|
|
154
|
+
for (const auto &prop : transitionProperties.value()) {
|
|
155
|
+
if (lastUpdates.count(prop)) {
|
|
156
|
+
filteredUpdates[prop] = lastUpdates[prop];
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
// updated object contains only allowed properties so we don't need
|
|
162
|
+
// to do additional filtering here
|
|
163
|
+
filteredUpdates.update(updates);
|
|
164
|
+
setInUpdatesRegistry(shadowNode, filteredUpdates);
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
} // namespace reanimated::css
|