@react-native-ohos/react-native-reanimated 3.18.2-rc.2 → 4.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/compatibility.json +161 -0
- package/harmony/reanimated/BuildProfile.ets +1 -1
- package/harmony/reanimated/build-profile.json5 +18 -11
- package/harmony/reanimated/oh-package.json5 +12 -11
- package/harmony/reanimated/src/main/cpp/CMakeLists.txt +31 -40
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/AnimatedSensor/AnimatedSensorModule.cpp +81 -86
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/AnimatedSensor/AnimatedSensorModule.h +46 -47
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/InterpolatorRegistry.cpp +390 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/InterpolatorRegistry.h +16 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/definitions.h +30 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/filters/FilterOp.cpp +46 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/filters/FilterOp.h +23 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/Quaternion.cpp +53 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/Quaternion.h +21 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix.cpp +166 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix.h +71 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix2D.cpp +368 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix2D.h +53 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix3D.cpp +594 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix3D.h +67 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformOp.cpp +52 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformOp.h +26 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/vectors.cpp +156 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/vectors.h +76 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSAngle.cpp +94 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSAngle.h +33 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSBoolean.cpp +48 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSBoolean.h +31 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSColor.cpp +135 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSColor.h +61 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSDiscreteArray.cpp +100 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSDiscreteArray.h +45 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSKeyword.cpp +81 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSKeyword.h +53 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSLength.cpp +122 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSLength.h +38 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSNumber.cpp +82 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSNumber.h +63 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSValue.h +118 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSValueVariant.cpp +174 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSValueVariant.h +111 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSBoxShadow.cpp +196 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSBoxShadow.h +66 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSDropShadow.cpp +134 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSDropShadow.h +44 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSAnimationConfig.cpp +174 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSAnimationConfig.h +49 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSKeyframesConfig.cpp +45 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSKeyframesConfig.h +26 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSTransitionConfig.cpp +90 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSTransitionConfig.h +43 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/common.cpp +17 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/common.h +13 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSAnimation.cpp +127 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSAnimation.h +51 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSTransition.cpp +145 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSTransition.h +47 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/EasingFunctions.cpp +69 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/EasingFunctions.h +22 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/cubicBezier.cpp +66 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/cubicBezier.h +15 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/linear.cpp +28 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/linear.h +15 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/steps.cpp +13 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/steps.h +12 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/InterpolatorFactory.cpp +157 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/InterpolatorFactory.h +189 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/PropertyInterpolator.cpp +76 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/PropertyInterpolator.h +66 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/configs.h +20 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperation.cpp +136 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperation.h +40 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperationInterpolator.cpp +38 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperationInterpolator.h +24 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterStyleInterpolator.cpp +58 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterStyleInterpolator.h +24 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/blur.h +14 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/brightness.h +14 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/contrast.h +14 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/dropShadow.h +17 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/grayscale.h +14 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/hueRotate.h +14 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/invert.h +14 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/opacity.h +14 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/saturate.h +14 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/sepia.h +14 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/ArrayPropertiesInterpolator.cpp +95 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/ArrayPropertiesInterpolator.h +36 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/GroupPropertiesInterpolator.cpp +41 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/GroupPropertiesInterpolator.h +32 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/RecordPropertiesInterpolator.cpp +99 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/RecordPropertiesInterpolator.h +37 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/OperationsStyleInterpolator.cpp +308 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/OperationsStyleInterpolator.h +100 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperation.cpp +19 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperation.h +94 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperationInterpolator.cpp +18 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperationInterpolator.h +43 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/styles/AnimationStyleInterpolator.h +26 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/styles/TransitionStyleInterpolator.cpp +103 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/styles/TransitionStyleInterpolator.h +42 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperation.cpp +224 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperation.h +52 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperationInterpolator.cpp +218 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperationInterpolator.h +89 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformsStyleInterpolator.cpp +149 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformsStyleInterpolator.h +33 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/matrix.cpp +208 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/matrix.h +56 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/perspective.cpp +42 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/perspective.h +20 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/rotate.cpp +41 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/rotate.h +39 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/scale.cpp +28 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/scale.h +25 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/skew.cpp +14 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/skew.h +20 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/translate.cpp +39 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/translate.h +25 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ResolvableValueInterpolator.cpp +47 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ResolvableValueInterpolator.h +43 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/SimpleValueInterpolator.cpp +70 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/SimpleValueInterpolator.h +40 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ValueInterpolator.cpp +146 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ValueInterpolator.h +71 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/misc/ViewStylesRepository.cpp +155 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/misc/ViewStylesRepository.h +53 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/AnimationProgressProvider.cpp +170 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/AnimationProgressProvider.h +67 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/KeyframeProgressProvider.h +12 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/RawProgressProvider.cpp +41 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/RawProgressProvider.h +31 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/TransitionProgressProvider.cpp +193 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/TransitionProgressProvider.h +77 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSAnimationsRegistry.cpp +340 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSAnimationsRegistry.h +80 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSKeyframesRegistry.cpp +45 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSKeyframesRegistry.h +29 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSTransitionsRegistry.cpp +167 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSTransitionsRegistry.h +51 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/StaticPropsRegistry.cpp +61 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/StaticPropsRegistry.h +33 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGBrush.cpp +80 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGBrush.h +39 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGLength.cpp +93 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGLength.h +36 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGStrokeDashArray.cpp +111 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGStrokeDashArray.h +33 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/DelayedItemsManager.cpp +75 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/DelayedItemsManager.h +45 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/algorithms.cpp +12 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/algorithms.h +10 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/interpolators.cpp +36 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/interpolators.h +23 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/props.cpp +149 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/props.h +32 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedCommitHook.cpp +113 -101
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedCommitHook.h +49 -51
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedCommitShadowNode.h +46 -49
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedMountHook.cpp +56 -96
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedMountHook.h +37 -33
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ShadowTreeCloner.cpp +104 -95
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ShadowTreeCloner.h +22 -29
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/AnimatedPropsRegistry.cpp +72 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/AnimatedPropsRegistry.h +25 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistry.cpp +160 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistry.h +71 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistryManager.cpp +161 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistryManager.h +65 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationType.h +11 -9
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsManager.cpp +137 -232
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsManager.h +82 -90
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxyCommon.cpp +79 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxyCommon.h +81 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Experimental.cpp +864 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Experimental.h +214 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/{LayoutAnimationsProxy.cpp → LayoutAnimationsProxy_Legacy.cpp} +897 -870
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Legacy.h +220 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsUtils.cpp +31 -91
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsUtils.h +146 -176
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/PropsDiffer.cpp +456 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/PropsDiffer.h +102 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/SharedTransitions.cpp +544 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/PropValueProcessor.cpp +119 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/PropValueProcessor.h +39 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxy.cpp +1380 -971
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxy.h +230 -252
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxySpec.cpp +183 -231
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxySpec.h +93 -109
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/RNRuntimeDecorator.cpp +54 -56
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/RNRuntimeDecorator.h +28 -20
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/UIRuntimeDecorator.cpp +58 -70
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/UIRuntimeDecorator.h +31 -35
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/FeatureFlags.cpp +18 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/FeatureFlags.h +44 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/PlatformDepMethodsHolder.h +67 -98
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/ReanimatedSystraceSection.h +114 -135
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/ReanimatedVersion.cpp +46 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/{worklets → reanimated}/Tools/ReanimatedVersion.h +18 -19
- package/harmony/reanimated/src/main/cpp/ReanimatedModule.cpp +63 -85
- package/harmony/reanimated/src/main/cpp/ReanimatedNodesManager.cpp +1 -0
- package/harmony/reanimated/src/main/cpp/ReanimatedPackage.cpp +0 -3
- package/harmony/reanimated/src/main/cpp/ReanimatedSensor.cpp +266 -0
- package/harmony/reanimated/src/main/cpp/ReanimatedSensor.h +36 -0
- package/harmony/reanimated/src/main/cpp/ReanimatedSensorContainer.cpp +36 -0
- package/harmony/reanimated/src/main/cpp/ReanimatedSensorContainer.h +23 -0
- package/harmony/reanimated/src/main/cpp/ReanimatedUIScheduler.h +3 -3
- package/harmony/reanimated/src/main/ets/ReanimatedModule.ts +5 -1
- package/harmony/reanimated/src/main/ets/ReanimatedPackage.ts +1 -4
- package/harmony/reanimated/src/main/module.json5 +12 -12
- package/harmony/reanimated/src/main/resources/base/element/color.json +7 -7
- package/harmony/reanimated/src/main/resources/base/element/string.json +15 -15
- package/harmony/reanimated/src/main/resources/base/profile/main_pages.json +5 -5
- package/harmony/reanimated/src/main/resources/en_US/element/string.json +15 -15
- package/harmony/reanimated/src/main/resources/zh_CN/element/string.json +15 -15
- package/harmony/reanimated/ts.ts +6 -6
- package/harmony/reanimated.har +0 -0
- package/package.json +69 -50
- package/scripts/deploy.js +191 -0
- package/scripts/set-reanimated-version.js +37 -0
- package/scripts/update-version.js +119 -0
- package/scripts/validate-react-native-version.js +46 -0
- package/scripts/validate-worklets-build.js +17 -0
- package/scripts/validate-worklets-version.js +84 -0
- package/scripts/worklets-version.json +4 -0
- package/LICENSE +0 -21
- package/README.OpenSource +0 -11
- package/README.md +0 -10
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/PropsRegistry.cpp +0 -68
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/PropsRegistry.h +0 -68
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy.h +0 -147
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/CollectionUtils.h +0 -14
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/FeaturesConfig.cpp +0 -5
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/FeaturesConfig.h +0 -19
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/NativeModules/WorkletsModuleProxy.cpp +0 -47
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/NativeModules/WorkletsModuleProxy.h +0 -59
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/NativeModules/WorkletsModuleProxySpec.cpp +0 -27
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/NativeModules/WorkletsModuleProxySpec.h +0 -25
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Registries/EventHandlerRegistry.cpp +0 -94
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Registries/EventHandlerRegistry.h +0 -49
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Registries/WorkletRuntimeRegistry.cpp +0 -8
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Registries/WorkletRuntimeRegistry.h +0 -39
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/SharedItems/Shareables.cpp +0 -326
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/SharedItems/Shareables.h +0 -345
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/AsyncQueue.cpp +0 -52
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/AsyncQueue.h +0 -35
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/Defs.h +0 -10
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/JSISerializer.cpp +0 -342
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/JSISerializer.h +0 -47
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/JSLogger.cpp +0 -16
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/JSLogger.h +0 -20
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/JSScheduler.cpp +0 -20
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/JSScheduler.h +0 -29
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/PlatformLogger.h +0 -16
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/ReanimatedJSIUtils.cpp +0 -26
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/ReanimatedJSIUtils.h +0 -199
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/ReanimatedVersion.cpp +0 -95
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/SingleInstanceChecker.h +0 -72
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/ThreadSafeQueue.h +0 -49
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/UIScheduler.cpp +0 -20
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/UIScheduler.h +0 -22
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/WorkletEventHandler.cpp +0 -29
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/WorkletEventHandler.h +0 -41
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/RNRuntimeWorkletDecorator.cpp +0 -16
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/RNRuntimeWorkletDecorator.h +0 -19
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/ReanimatedHermesRuntime.cpp +0 -112
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/ReanimatedHermesRuntime.h +0 -127
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/ReanimatedRuntime.cpp +0 -53
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/ReanimatedRuntime.h +0 -22
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/RuntimeInitialization.md +0 -191
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/WorkletRuntime.cpp +0 -173
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/WorkletRuntime.h +0 -90
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/WorkletRuntimeCollector.h +0 -36
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/WorkletRuntimeDecorator.cpp +0 -189
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/WorkletRuntimeDecorator.h +0 -22
- package/harmony/reanimated/src/main/cpp/ReanimatedLogger.cpp +0 -33
- package/harmony/reanimated/src/main/cpp/WorkletsModule.cpp +0 -61
- package/harmony/reanimated/src/main/cpp/WorkletsModule.h +0 -22
- package/harmony/reanimated/src/main/cpp/patches/AnimatedSensor/AnimatedSensorModule.cpp +0 -89
- package/harmony/reanimated/src/main/cpp/patches/Fabric/ShadowTreeCloner.cpp +0 -95
- package/harmony/reanimated/src/main/cpp/patches/NativeModules/ReanimatedModuleProxy.cpp +0 -964
- package/harmony/reanimated/src/main/ets/WorkletsModule.ts +0 -15
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
#include <reanimated/CSS/interpolation/filters/FilterOperationInterpolator.h>
|
|
2
|
+
|
|
3
|
+
#include <reanimated/CSS/interpolation/filters/operations/blur.h>
|
|
4
|
+
#include <reanimated/CSS/interpolation/filters/operations/brightness.h>
|
|
5
|
+
#include <reanimated/CSS/interpolation/filters/operations/contrast.h>
|
|
6
|
+
#include <reanimated/CSS/interpolation/filters/operations/dropShadow.h>
|
|
7
|
+
#include <reanimated/CSS/interpolation/filters/operations/grayscale.h>
|
|
8
|
+
#include <reanimated/CSS/interpolation/filters/operations/hueRotate.h>
|
|
9
|
+
#include <reanimated/CSS/interpolation/filters/operations/invert.h>
|
|
10
|
+
#include <reanimated/CSS/interpolation/filters/operations/opacity.h>
|
|
11
|
+
#include <reanimated/CSS/interpolation/filters/operations/saturate.h>
|
|
12
|
+
#include <reanimated/CSS/interpolation/filters/operations/sepia.h>
|
|
13
|
+
|
|
14
|
+
namespace reanimated::css {
|
|
15
|
+
|
|
16
|
+
template <typename TOperation>
|
|
17
|
+
std::unique_ptr<StyleOperation> FilterOperationInterpolator<TOperation>::interpolate(
|
|
18
|
+
double progress,
|
|
19
|
+
const std::shared_ptr<StyleOperation> &from,
|
|
20
|
+
const std::shared_ptr<StyleOperation> &to,
|
|
21
|
+
const StyleOperationsInterpolationContext &context) const {
|
|
22
|
+
const auto &fromOp = std::static_pointer_cast<TOperation>(from);
|
|
23
|
+
const auto &toOp = std::static_pointer_cast<TOperation>(to);
|
|
24
|
+
return std::make_unique<TOperation>(fromOp->value.interpolate(progress, toOp->value));
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
template class FilterOperationInterpolator<BlurOperation>;
|
|
28
|
+
template class FilterOperationInterpolator<BrightnessOperation>;
|
|
29
|
+
template class FilterOperationInterpolator<ContrastOperation>;
|
|
30
|
+
template class FilterOperationInterpolator<DropShadowOperation>;
|
|
31
|
+
template class FilterOperationInterpolator<GrayscaleOperation>;
|
|
32
|
+
template class FilterOperationInterpolator<HueRotateOperation>;
|
|
33
|
+
template class FilterOperationInterpolator<InvertOperation>;
|
|
34
|
+
template class FilterOperationInterpolator<OpacityOperation>;
|
|
35
|
+
template class FilterOperationInterpolator<SaturateOperation>;
|
|
36
|
+
template class FilterOperationInterpolator<SepiaOperation>;
|
|
37
|
+
|
|
38
|
+
} // namespace reanimated::css
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include <reanimated/CSS/common/filters/FilterOp.h>
|
|
4
|
+
#include <reanimated/CSS/interpolation/configs.h>
|
|
5
|
+
#include <reanimated/CSS/interpolation/filters/FilterOperation.h>
|
|
6
|
+
#include <reanimated/CSS/interpolation/operations/StyleOperationInterpolator.h>
|
|
7
|
+
|
|
8
|
+
#include <memory>
|
|
9
|
+
|
|
10
|
+
namespace reanimated::css {
|
|
11
|
+
|
|
12
|
+
template <typename TOperation>
|
|
13
|
+
class FilterOperationInterpolator final : public StyleOperationInterpolator {
|
|
14
|
+
public:
|
|
15
|
+
using StyleOperationInterpolator::StyleOperationInterpolator;
|
|
16
|
+
|
|
17
|
+
std::unique_ptr<StyleOperation> interpolate(
|
|
18
|
+
double progress,
|
|
19
|
+
const std::shared_ptr<StyleOperation> &from,
|
|
20
|
+
const std::shared_ptr<StyleOperation> &to,
|
|
21
|
+
const StyleOperationsInterpolationContext &context) const override;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
} // namespace reanimated::css
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
#include <reanimated/CSS/interpolation/filters/FilterStyleInterpolator.h>
|
|
2
|
+
|
|
3
|
+
#include <algorithm>
|
|
4
|
+
#include <memory>
|
|
5
|
+
#include <optional>
|
|
6
|
+
#include <utility>
|
|
7
|
+
|
|
8
|
+
namespace reanimated::css {
|
|
9
|
+
|
|
10
|
+
const folly::dynamic defaultStyleValueDynamic = folly::dynamic::array();
|
|
11
|
+
|
|
12
|
+
FilterStyleInterpolator::FilterStyleInterpolator(
|
|
13
|
+
const PropertyPath &propertyPath,
|
|
14
|
+
const std::shared_ptr<StyleOperationInterpolators> &interpolators,
|
|
15
|
+
const std::shared_ptr<ViewStylesRepository> &viewStylesRepository)
|
|
16
|
+
: OperationsStyleInterpolatorBase<FilterOperation>(
|
|
17
|
+
propertyPath,
|
|
18
|
+
interpolators,
|
|
19
|
+
viewStylesRepository,
|
|
20
|
+
defaultStyleValueDynamic) {}
|
|
21
|
+
|
|
22
|
+
std::optional<std::pair<StyleOperations, StyleOperations>> FilterStyleInterpolator::createInterpolationPair(
|
|
23
|
+
const StyleOperations &fromOperations,
|
|
24
|
+
const StyleOperations &toOperations) const {
|
|
25
|
+
StyleOperations fromOperationsResult, toOperationsResult;
|
|
26
|
+
size_t i = 0;
|
|
27
|
+
|
|
28
|
+
size_t fromOperationsSize = fromOperations.size();
|
|
29
|
+
size_t toOperationsSize = toOperations.size();
|
|
30
|
+
size_t minSize = std::min(fromOperationsSize, toOperationsSize);
|
|
31
|
+
|
|
32
|
+
for (; i < minSize; i++) {
|
|
33
|
+
const auto &fromOperation = fromOperations[i];
|
|
34
|
+
const auto &toOperation = toOperations[i];
|
|
35
|
+
|
|
36
|
+
// Types don't match, we need to return nullopt as we cannot interpolate
|
|
37
|
+
if (fromOperation->type != toOperation->type) {
|
|
38
|
+
return std::nullopt;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
fromOperationsResult.emplace_back(fromOperation);
|
|
42
|
+
toOperationsResult.emplace_back(toOperation);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// Add remaining operations with default values
|
|
46
|
+
for (; i < fromOperations.size(); ++i) {
|
|
47
|
+
fromOperationsResult.emplace_back(fromOperations[i]);
|
|
48
|
+
toOperationsResult.emplace_back(getDefaultOperationOfType(fromOperations[i]->type));
|
|
49
|
+
}
|
|
50
|
+
for (; i < toOperations.size(); ++i) {
|
|
51
|
+
fromOperationsResult.emplace_back(getDefaultOperationOfType(toOperations[i]->type));
|
|
52
|
+
toOperationsResult.emplace_back(toOperations[i]);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
return std::make_pair(fromOperationsResult, toOperationsResult);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
} // namespace reanimated::css
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include <reanimated/CSS/interpolation/filters/FilterOperation.h>
|
|
4
|
+
#include <reanimated/CSS/interpolation/operations/OperationsStyleInterpolator.h>
|
|
5
|
+
|
|
6
|
+
#include <memory>
|
|
7
|
+
#include <utility>
|
|
8
|
+
|
|
9
|
+
namespace reanimated::css {
|
|
10
|
+
|
|
11
|
+
class FilterStyleInterpolator final : public OperationsStyleInterpolatorBase<FilterOperation> {
|
|
12
|
+
public:
|
|
13
|
+
FilterStyleInterpolator(
|
|
14
|
+
const PropertyPath &propertyPath,
|
|
15
|
+
const std::shared_ptr<StyleOperationInterpolators> &interpolators,
|
|
16
|
+
const std::shared_ptr<ViewStylesRepository> &viewStylesRepository);
|
|
17
|
+
|
|
18
|
+
protected:
|
|
19
|
+
std::optional<std::pair<StyleOperations, StyleOperations>> createInterpolationPair(
|
|
20
|
+
const StyleOperations &fromOperations,
|
|
21
|
+
const StyleOperations &toOperations) const override;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
} // namespace reanimated::css
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include <reanimated/CSS/common/values/CSSNumber.h>
|
|
4
|
+
#include <reanimated/CSS/interpolation/filters/FilterOperation.h>
|
|
5
|
+
|
|
6
|
+
namespace reanimated::css {
|
|
7
|
+
|
|
8
|
+
struct BlurOperation final : public FilterOperationBase<FilterOp::Blur, CSSDouble> {
|
|
9
|
+
using FilterOperationBase<FilterOp::Blur, CSSDouble>::FilterOperationBase;
|
|
10
|
+
|
|
11
|
+
explicit BlurOperation(double value) : FilterOperationBase<FilterOp::Blur, CSSDouble>(CSSDouble(value)) {}
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
} // namespace reanimated::css
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include <reanimated/CSS/common/values/CSSNumber.h>
|
|
4
|
+
#include <reanimated/CSS/interpolation/filters/FilterOperation.h>
|
|
5
|
+
|
|
6
|
+
namespace reanimated::css {
|
|
7
|
+
|
|
8
|
+
struct BrightnessOperation final : public FilterOperationBase<FilterOp::Brightness, CSSDouble> {
|
|
9
|
+
using FilterOperationBase<FilterOp::Brightness, CSSDouble>::FilterOperationBase;
|
|
10
|
+
|
|
11
|
+
explicit BrightnessOperation(double value) : FilterOperationBase<FilterOp::Brightness, CSSDouble>(CSSDouble(value)) {}
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
} // namespace reanimated::css
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include <reanimated/CSS/common/values/CSSNumber.h>
|
|
4
|
+
#include <reanimated/CSS/interpolation/filters/FilterOperation.h>
|
|
5
|
+
|
|
6
|
+
namespace reanimated::css {
|
|
7
|
+
|
|
8
|
+
struct ContrastOperation final : public FilterOperationBase<FilterOp::Contrast, CSSDouble> {
|
|
9
|
+
using FilterOperationBase<FilterOp::Contrast, CSSDouble>::FilterOperationBase;
|
|
10
|
+
|
|
11
|
+
explicit ContrastOperation(double value) : FilterOperationBase<FilterOp::Contrast, CSSDouble>(CSSDouble(value)) {}
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
} // namespace reanimated::css
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include <reanimated/CSS/common/values/complex/CSSDropShadow.h>
|
|
4
|
+
#include <reanimated/CSS/interpolation/filters/FilterOperation.h>
|
|
5
|
+
|
|
6
|
+
#include <utility>
|
|
7
|
+
|
|
8
|
+
namespace reanimated::css {
|
|
9
|
+
|
|
10
|
+
struct DropShadowOperation final : public FilterOperationBase<FilterOp::DropShadow, CSSDropShadow> {
|
|
11
|
+
using FilterOperationBase<FilterOp::DropShadow, CSSDropShadow>::FilterOperationBase;
|
|
12
|
+
|
|
13
|
+
explicit DropShadowOperation(CSSDropShadow value)
|
|
14
|
+
: FilterOperationBase<FilterOp::DropShadow, CSSDropShadow>(std::move(value)) {}
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
} // namespace reanimated::css
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include <reanimated/CSS/common/values/CSSNumber.h>
|
|
4
|
+
#include <reanimated/CSS/interpolation/filters/FilterOperation.h>
|
|
5
|
+
|
|
6
|
+
namespace reanimated::css {
|
|
7
|
+
|
|
8
|
+
struct GrayscaleOperation final : public FilterOperationBase<FilterOp::Grayscale, CSSDouble> {
|
|
9
|
+
using FilterOperationBase<FilterOp::Grayscale, CSSDouble>::FilterOperationBase;
|
|
10
|
+
|
|
11
|
+
explicit GrayscaleOperation(double value) : FilterOperationBase<FilterOp::Grayscale, CSSDouble>(CSSDouble(value)) {}
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
} // namespace reanimated::css
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include <reanimated/CSS/common/values/CSSNumber.h>
|
|
4
|
+
#include <reanimated/CSS/interpolation/filters/FilterOperation.h>
|
|
5
|
+
|
|
6
|
+
namespace reanimated::css {
|
|
7
|
+
|
|
8
|
+
struct HueRotateOperation final : public FilterOperationBase<FilterOp::HueRotate, CSSDouble> {
|
|
9
|
+
using FilterOperationBase<FilterOp::HueRotate, CSSDouble>::FilterOperationBase;
|
|
10
|
+
|
|
11
|
+
explicit HueRotateOperation(double value) : FilterOperationBase<FilterOp::HueRotate, CSSDouble>(CSSDouble(value)) {}
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
} // namespace reanimated::css
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include <reanimated/CSS/common/values/CSSNumber.h>
|
|
4
|
+
#include <reanimated/CSS/interpolation/filters/FilterOperation.h>
|
|
5
|
+
|
|
6
|
+
namespace reanimated::css {
|
|
7
|
+
|
|
8
|
+
struct InvertOperation final : public FilterOperationBase<FilterOp::Invert, CSSDouble> {
|
|
9
|
+
using FilterOperationBase<FilterOp::Invert, CSSDouble>::FilterOperationBase;
|
|
10
|
+
|
|
11
|
+
explicit InvertOperation(double value) : FilterOperationBase<FilterOp::Invert, CSSDouble>(CSSDouble(value)) {}
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
} // namespace reanimated::css
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include <reanimated/CSS/common/values/CSSNumber.h>
|
|
4
|
+
#include <reanimated/CSS/interpolation/filters/FilterOperation.h>
|
|
5
|
+
|
|
6
|
+
namespace reanimated::css {
|
|
7
|
+
|
|
8
|
+
struct OpacityOperation final : public FilterOperationBase<FilterOp::Opacity, CSSDouble> {
|
|
9
|
+
using FilterOperationBase<FilterOp::Opacity, CSSDouble>::FilterOperationBase;
|
|
10
|
+
|
|
11
|
+
explicit OpacityOperation(double value) : FilterOperationBase<FilterOp::Opacity, CSSDouble>(CSSDouble(value)) {}
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
} // namespace reanimated::css
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include <reanimated/CSS/common/values/CSSNumber.h>
|
|
4
|
+
#include <reanimated/CSS/interpolation/filters/FilterOperation.h>
|
|
5
|
+
|
|
6
|
+
namespace reanimated::css {
|
|
7
|
+
|
|
8
|
+
struct SaturateOperation final : public FilterOperationBase<FilterOp::Saturate, CSSDouble> {
|
|
9
|
+
using FilterOperationBase<FilterOp::Saturate, CSSDouble>::FilterOperationBase;
|
|
10
|
+
|
|
11
|
+
explicit SaturateOperation(double value) : FilterOperationBase<FilterOp::Saturate, CSSDouble>(CSSDouble(value)) {}
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
} // namespace reanimated::css
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include <reanimated/CSS/common/values/CSSNumber.h>
|
|
4
|
+
#include <reanimated/CSS/interpolation/filters/FilterOperation.h>
|
|
5
|
+
|
|
6
|
+
namespace reanimated::css {
|
|
7
|
+
|
|
8
|
+
struct SepiaOperation final : public FilterOperationBase<FilterOp::Sepia, CSSDouble> {
|
|
9
|
+
using FilterOperationBase<FilterOp::Sepia, CSSDouble>::FilterOperationBase;
|
|
10
|
+
|
|
11
|
+
explicit SepiaOperation(double value) : FilterOperationBase<FilterOp::Sepia, CSSDouble>(CSSDouble(value)) {}
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
} // namespace reanimated::css
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
#include <reanimated/CSS/interpolation/groups/ArrayPropertiesInterpolator.h>
|
|
2
|
+
|
|
3
|
+
#include <algorithm>
|
|
4
|
+
#include <memory>
|
|
5
|
+
|
|
6
|
+
namespace reanimated::css {
|
|
7
|
+
|
|
8
|
+
ArrayPropertiesInterpolator::ArrayPropertiesInterpolator(
|
|
9
|
+
const InterpolatorFactoriesArray &factories,
|
|
10
|
+
const PropertyPath &propertyPath,
|
|
11
|
+
const std::shared_ptr<ViewStylesRepository> &viewStylesRepository)
|
|
12
|
+
: GroupPropertiesInterpolator(propertyPath, viewStylesRepository), factories_(factories) {}
|
|
13
|
+
|
|
14
|
+
bool ArrayPropertiesInterpolator::equalsReversingAdjustedStartValue(const folly::dynamic &propertyValue) const {
|
|
15
|
+
if (!propertyValue.isArray()) {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
const auto valuesCount = propertyValue.size();
|
|
20
|
+
if (valuesCount != interpolators_.size()) {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
for (size_t i = 0; i < valuesCount; ++i) {
|
|
25
|
+
if (!interpolators_[i]->equalsReversingAdjustedStartValue(propertyValue[i])) {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
void ArrayPropertiesInterpolator::updateKeyframes(jsi::Runtime &rt, const jsi::Value &keyframes) {
|
|
34
|
+
const jsi::Array keyframesArray = keyframes.asObject(rt).asArray(rt);
|
|
35
|
+
const size_t valuesCount = keyframesArray.size(rt);
|
|
36
|
+
|
|
37
|
+
resizeInterpolators(valuesCount);
|
|
38
|
+
|
|
39
|
+
for (size_t i = 0; i < valuesCount; ++i) {
|
|
40
|
+
interpolators_[i]->updateKeyframes(rt, keyframesArray.getValueAtIndex(rt, i));
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
void ArrayPropertiesInterpolator::updateKeyframesFromStyleChange(
|
|
45
|
+
const folly::dynamic &oldStyleValue,
|
|
46
|
+
const folly::dynamic &newStyleValue,
|
|
47
|
+
const folly::dynamic &lastUpdateValue) {
|
|
48
|
+
const auto emptyArray = folly::dynamic::array();
|
|
49
|
+
const auto null = folly::dynamic();
|
|
50
|
+
|
|
51
|
+
const auto &oldStyleArray = oldStyleValue.empty() ? emptyArray : oldStyleValue;
|
|
52
|
+
const auto &newStyleArray = newStyleValue.empty() ? emptyArray : newStyleValue;
|
|
53
|
+
const auto &lastUpdateArray = lastUpdateValue.empty() ? emptyArray : lastUpdateValue;
|
|
54
|
+
|
|
55
|
+
const size_t oldSize = oldStyleArray.size();
|
|
56
|
+
const size_t newSize = newStyleArray.size();
|
|
57
|
+
const size_t lastSize = lastUpdateArray.size();
|
|
58
|
+
const size_t valuesCount = std::max(oldSize, newSize);
|
|
59
|
+
|
|
60
|
+
resizeInterpolators(valuesCount);
|
|
61
|
+
|
|
62
|
+
for (size_t i = 0; i < valuesCount; ++i) {
|
|
63
|
+
// These index checks ensure that interpolation works between 2 arrays
|
|
64
|
+
// with different lengths
|
|
65
|
+
interpolators_[i]->updateKeyframesFromStyleChange(
|
|
66
|
+
i < oldSize ? oldStyleArray[i] : null,
|
|
67
|
+
i < newSize ? newStyleArray[i] : null,
|
|
68
|
+
i < lastSize ? lastUpdateArray[i] : null);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
folly::dynamic ArrayPropertiesInterpolator::mapInterpolators(
|
|
73
|
+
const std::function<folly::dynamic(PropertyInterpolator &)> &callback) const {
|
|
74
|
+
auto result = folly::dynamic::array();
|
|
75
|
+
|
|
76
|
+
for (size_t i = 0; i < interpolators_.size(); ++i) {
|
|
77
|
+
result.push_back(callback(*interpolators_[i]));
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
return result;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
void ArrayPropertiesInterpolator::resizeInterpolators(size_t valuesCount) {
|
|
84
|
+
// Remove excess interpolators if the array size has decreased
|
|
85
|
+
if (interpolators_.size() > valuesCount) {
|
|
86
|
+
interpolators_.resize(valuesCount);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
while (interpolators_.size() < valuesCount) {
|
|
90
|
+
interpolators_.emplace_back(
|
|
91
|
+
createPropertyInterpolator(interpolators_.size(), propertyPath_, factories_, viewStylesRepository_));
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
} // namespace reanimated::css
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include <reanimated/CSS/interpolation/groups/GroupPropertiesInterpolator.h>
|
|
4
|
+
#include <reanimated/CSS/utils/interpolators.h>
|
|
5
|
+
|
|
6
|
+
#include <memory>
|
|
7
|
+
|
|
8
|
+
namespace reanimated::css {
|
|
9
|
+
|
|
10
|
+
class ArrayPropertiesInterpolator : public GroupPropertiesInterpolator {
|
|
11
|
+
public:
|
|
12
|
+
ArrayPropertiesInterpolator(
|
|
13
|
+
const InterpolatorFactoriesArray &factories,
|
|
14
|
+
const PropertyPath &propertyPath,
|
|
15
|
+
const std::shared_ptr<ViewStylesRepository> &viewStylesRepository);
|
|
16
|
+
virtual ~ArrayPropertiesInterpolator() = default;
|
|
17
|
+
|
|
18
|
+
bool equalsReversingAdjustedStartValue(const folly::dynamic &propertyValue) const override;
|
|
19
|
+
|
|
20
|
+
void updateKeyframes(jsi::Runtime &rt, const jsi::Value &keyframes) override;
|
|
21
|
+
void updateKeyframesFromStyleChange(
|
|
22
|
+
const folly::dynamic &oldStyleValue,
|
|
23
|
+
const folly::dynamic &newStyleValue,
|
|
24
|
+
const folly::dynamic &lastUpdateValue) override;
|
|
25
|
+
|
|
26
|
+
protected:
|
|
27
|
+
folly::dynamic mapInterpolators(const std::function<folly::dynamic(PropertyInterpolator &)> &callback) const override;
|
|
28
|
+
|
|
29
|
+
private:
|
|
30
|
+
const InterpolatorFactoriesArray &factories_;
|
|
31
|
+
PropertyInterpolatorsArray interpolators_;
|
|
32
|
+
|
|
33
|
+
void resizeInterpolators(size_t valuesCount);
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
} // namespace reanimated::css
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
#include <reanimated/CSS/interpolation/groups/GroupPropertiesInterpolator.h>
|
|
2
|
+
|
|
3
|
+
#include <memory>
|
|
4
|
+
|
|
5
|
+
namespace reanimated::css {
|
|
6
|
+
|
|
7
|
+
GroupPropertiesInterpolator::GroupPropertiesInterpolator(
|
|
8
|
+
const PropertyPath &propertyPath,
|
|
9
|
+
const std::shared_ptr<ViewStylesRepository> &viewStylesRepository)
|
|
10
|
+
: PropertyInterpolator(propertyPath, viewStylesRepository) {}
|
|
11
|
+
|
|
12
|
+
folly::dynamic GroupPropertiesInterpolator::getStyleValue(const std::shared_ptr<const ShadowNode> &shadowNode) const {
|
|
13
|
+
return mapInterpolators(
|
|
14
|
+
[&](PropertyInterpolator &interpolator) -> folly::dynamic { return interpolator.getStyleValue(shadowNode); });
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
folly::dynamic GroupPropertiesInterpolator::getResetStyle(const std::shared_ptr<const ShadowNode> &shadowNode) const {
|
|
18
|
+
return mapInterpolators(
|
|
19
|
+
[&](PropertyInterpolator &interpolator) -> folly::dynamic { return interpolator.getResetStyle(shadowNode); });
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
folly::dynamic GroupPropertiesInterpolator::getFirstKeyframeValue() const {
|
|
23
|
+
return mapInterpolators(
|
|
24
|
+
[&](PropertyInterpolator &interpolator) -> folly::dynamic { return interpolator.getFirstKeyframeValue(); });
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
folly::dynamic GroupPropertiesInterpolator::getLastKeyframeValue() const {
|
|
28
|
+
return mapInterpolators(
|
|
29
|
+
[&](PropertyInterpolator &interpolator) -> folly::dynamic { return interpolator.getLastKeyframeValue(); });
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
folly::dynamic GroupPropertiesInterpolator::interpolate(
|
|
33
|
+
const std::shared_ptr<const ShadowNode> &shadowNode,
|
|
34
|
+
const std::shared_ptr<KeyframeProgressProvider> &progressProvider,
|
|
35
|
+
const double fallbackInterpolateThreshold) const {
|
|
36
|
+
return mapInterpolators([&](PropertyInterpolator &interpolator) -> folly::dynamic {
|
|
37
|
+
return interpolator.interpolate(shadowNode, progressProvider, fallbackInterpolateThreshold);
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
} // namespace reanimated::css
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include <reanimated/CSS/interpolation/PropertyInterpolator.h>
|
|
4
|
+
#include <reanimated/CSS/misc/ViewStylesRepository.h>
|
|
5
|
+
#include <reanimated/CSS/progress/KeyframeProgressProvider.h>
|
|
6
|
+
|
|
7
|
+
#include <memory>
|
|
8
|
+
|
|
9
|
+
namespace reanimated::css {
|
|
10
|
+
|
|
11
|
+
class GroupPropertiesInterpolator : public PropertyInterpolator {
|
|
12
|
+
public:
|
|
13
|
+
GroupPropertiesInterpolator(
|
|
14
|
+
const PropertyPath &propertyPath,
|
|
15
|
+
const std::shared_ptr<ViewStylesRepository> &viewStylesRepository);
|
|
16
|
+
|
|
17
|
+
folly::dynamic getStyleValue(const std::shared_ptr<const ShadowNode> &shadowNode) const override;
|
|
18
|
+
folly::dynamic getResetStyle(const std::shared_ptr<const ShadowNode> &shadowNode) const override;
|
|
19
|
+
folly::dynamic getFirstKeyframeValue() const override;
|
|
20
|
+
folly::dynamic getLastKeyframeValue() const override;
|
|
21
|
+
|
|
22
|
+
folly::dynamic interpolate(
|
|
23
|
+
const std::shared_ptr<const ShadowNode> &shadowNode,
|
|
24
|
+
const std::shared_ptr<KeyframeProgressProvider> &progressProvider,
|
|
25
|
+
double fallbackInterpolateThreshold) const override;
|
|
26
|
+
|
|
27
|
+
protected:
|
|
28
|
+
virtual folly::dynamic mapInterpolators(
|
|
29
|
+
const std::function<folly::dynamic(PropertyInterpolator &)> &callback) const = 0;
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
} // namespace reanimated::css
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
#include <reanimated/CSS/interpolation/groups/RecordPropertiesInterpolator.h>
|
|
2
|
+
|
|
3
|
+
#include <memory>
|
|
4
|
+
#include <string>
|
|
5
|
+
#include <unordered_set>
|
|
6
|
+
|
|
7
|
+
namespace reanimated::css {
|
|
8
|
+
|
|
9
|
+
RecordPropertiesInterpolator::RecordPropertiesInterpolator(
|
|
10
|
+
const InterpolatorFactoriesRecord &factories,
|
|
11
|
+
const PropertyPath &propertyPath,
|
|
12
|
+
const std::shared_ptr<ViewStylesRepository> &viewStylesRepository)
|
|
13
|
+
: GroupPropertiesInterpolator(propertyPath, viewStylesRepository), factories_(factories) {}
|
|
14
|
+
|
|
15
|
+
bool RecordPropertiesInterpolator::equalsReversingAdjustedStartValue(const folly::dynamic &propertyValue) const {
|
|
16
|
+
// return std::ranges::all_of(propertyValue.items(), [this](const auto &item) {
|
|
17
|
+
// const auto &[propName, propValue] = item;
|
|
18
|
+
// const auto it = interpolators_.find(propName.getString());
|
|
19
|
+
// return it != interpolators_.end() && it->second->equalsReversingAdjustedStartValue(propValue);
|
|
20
|
+
// });
|
|
21
|
+
//TODO
|
|
22
|
+
return std::all_of(propertyValue.items().begin(), propertyValue.items().end(), [this](const auto &item) {
|
|
23
|
+
const auto &[propName, propValue] = item;
|
|
24
|
+
const auto it = interpolators_.find(propName.getString());
|
|
25
|
+
return it != interpolators_.end() &&
|
|
26
|
+
it->second->equalsReversingAdjustedStartValue(propValue);
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
void RecordPropertiesInterpolator::updateKeyframes(jsi::Runtime &rt, const jsi::Value &keyframes) {
|
|
31
|
+
// TODO - maybe add a possibility to remove interpolators that are no longer
|
|
32
|
+
// used (for now, for simplicity, we only add new ones)
|
|
33
|
+
const jsi::Object keyframesObject = keyframes.asObject(rt);
|
|
34
|
+
|
|
35
|
+
jsi::Array propertyNames = keyframesObject.getPropertyNames(rt);
|
|
36
|
+
size_t propertiesCount = propertyNames.size(rt);
|
|
37
|
+
|
|
38
|
+
for (size_t i = 0; i < propertiesCount; ++i) {
|
|
39
|
+
const std::string propertyName = propertyNames.getValueAtIndex(rt, i).asString(rt).utf8(rt);
|
|
40
|
+
const jsi::Value &propertyKeyframes = keyframesObject.getProperty(rt, jsi::PropNameID::forUtf8(rt, propertyName));
|
|
41
|
+
|
|
42
|
+
maybeCreateInterpolator(propertyName);
|
|
43
|
+
interpolators_[propertyName]->updateKeyframes(rt, propertyKeyframes);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
void RecordPropertiesInterpolator::updateKeyframesFromStyleChange(
|
|
48
|
+
const folly::dynamic &oldStyleValue,
|
|
49
|
+
const folly::dynamic &newStyleValue,
|
|
50
|
+
const folly::dynamic &lastUpdateValue) {
|
|
51
|
+
// TODO - maybe add a possibility to remove interpolators that are no longer
|
|
52
|
+
// used (for now, for simplicity, we only add new ones)
|
|
53
|
+
const folly::dynamic emptyObject = folly::dynamic::object();
|
|
54
|
+
const auto null = folly::dynamic();
|
|
55
|
+
|
|
56
|
+
const auto &oldStyleObject = oldStyleValue.empty() ? emptyObject : oldStyleValue;
|
|
57
|
+
const auto &newStyleObject = newStyleValue.empty() ? emptyObject : newStyleValue;
|
|
58
|
+
const auto &lastUpdateObject = lastUpdateValue.empty() ? emptyObject : lastUpdateValue;
|
|
59
|
+
|
|
60
|
+
std::unordered_set<std::string> propertyNamesSet;
|
|
61
|
+
for (const auto &key : oldStyleObject.keys()) {
|
|
62
|
+
propertyNamesSet.insert(key.asString());
|
|
63
|
+
}
|
|
64
|
+
for (const auto &key : newStyleObject.keys()) {
|
|
65
|
+
propertyNamesSet.insert(key.asString());
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
for (const auto &propertyName : propertyNamesSet) {
|
|
69
|
+
maybeCreateInterpolator(propertyName);
|
|
70
|
+
interpolators_[propertyName]->updateKeyframesFromStyleChange(
|
|
71
|
+
oldStyleObject.getDefault(propertyName, null),
|
|
72
|
+
newStyleObject.getDefault(propertyName, null),
|
|
73
|
+
lastUpdateObject.getDefault(propertyName, null));
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
folly::dynamic RecordPropertiesInterpolator::mapInterpolators(
|
|
78
|
+
const std::function<folly::dynamic(PropertyInterpolator &)> &callback) const {
|
|
79
|
+
folly::dynamic result = folly::dynamic::object;
|
|
80
|
+
|
|
81
|
+
for (const auto &[propertyName, interpolator] : interpolators_) {
|
|
82
|
+
const auto value = callback(*interpolator);
|
|
83
|
+
if (!value.isNull()) {
|
|
84
|
+
result[propertyName] = value;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
return result;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
void RecordPropertiesInterpolator::maybeCreateInterpolator(const std::string &propertyName) {
|
|
92
|
+
if (interpolators_.find(propertyName) == interpolators_.end()) {
|
|
93
|
+
const auto newInterpolator =
|
|
94
|
+
createPropertyInterpolator(propertyName, propertyPath_, factories_, viewStylesRepository_);
|
|
95
|
+
interpolators_.emplace(propertyName, newInterpolator);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
} // namespace reanimated::css
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include <reanimated/CSS/interpolation/groups/GroupPropertiesInterpolator.h>
|
|
4
|
+
#include <reanimated/CSS/utils/interpolators.h>
|
|
5
|
+
|
|
6
|
+
#include <memory>
|
|
7
|
+
#include <string>
|
|
8
|
+
|
|
9
|
+
namespace reanimated::css {
|
|
10
|
+
|
|
11
|
+
class RecordPropertiesInterpolator : public GroupPropertiesInterpolator {
|
|
12
|
+
public:
|
|
13
|
+
RecordPropertiesInterpolator(
|
|
14
|
+
const InterpolatorFactoriesRecord &factories,
|
|
15
|
+
const PropertyPath &propertyPath,
|
|
16
|
+
const std::shared_ptr<ViewStylesRepository> &viewStylesRepository);
|
|
17
|
+
virtual ~RecordPropertiesInterpolator() = default;
|
|
18
|
+
|
|
19
|
+
bool equalsReversingAdjustedStartValue(const folly::dynamic &propertyValue) const override;
|
|
20
|
+
|
|
21
|
+
void updateKeyframes(jsi::Runtime &rt, const jsi::Value &keyframes) override;
|
|
22
|
+
void updateKeyframesFromStyleChange(
|
|
23
|
+
const folly::dynamic &oldStyleValue,
|
|
24
|
+
const folly::dynamic &newStyleValue,
|
|
25
|
+
const folly::dynamic &lastUpdateValue) override;
|
|
26
|
+
|
|
27
|
+
protected:
|
|
28
|
+
folly::dynamic mapInterpolators(const std::function<folly::dynamic(PropertyInterpolator &)> &callback) const override;
|
|
29
|
+
|
|
30
|
+
void maybeCreateInterpolator(const std::string &propertyName);
|
|
31
|
+
|
|
32
|
+
private:
|
|
33
|
+
const InterpolatorFactoriesRecord &factories_;
|
|
34
|
+
PropertyInterpolatorsRecord interpolators_;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
} // namespace reanimated::css
|