react-native-reanimated 3.4.1 → 3.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. package/lib/module/Animated.js +60 -1
  2. package/lib/module/Animated.js.map +1 -1
  3. package/lib/module/createAnimatedComponent.js.map +1 -1
  4. package/lib/module/reanimated2/Easing.js +8 -0
  5. package/lib/module/reanimated2/Easing.js.map +1 -1
  6. package/lib/module/reanimated2/UpdateProps.js +2 -2
  7. package/lib/module/reanimated2/UpdateProps.js.map +1 -1
  8. package/lib/module/reanimated2/animation/commonTypes.js.map +1 -1
  9. package/lib/module/reanimated2/animation/decay.js.map +1 -1
  10. package/lib/module/reanimated2/animation/index.js +1 -1
  11. package/lib/module/reanimated2/animation/index.js.map +1 -1
  12. package/lib/module/reanimated2/animation/springUtils.js.map +1 -1
  13. package/lib/module/reanimated2/animation/styleAnimation.js +2 -2
  14. package/lib/module/reanimated2/animation/styleAnimation.js.map +1 -1
  15. package/lib/module/reanimated2/animation/timing.js.map +1 -1
  16. package/lib/module/reanimated2/animation/transformationMatrix/matrixUtils.js +6 -0
  17. package/lib/module/reanimated2/animation/transformationMatrix/matrixUtils.js.map +1 -1
  18. package/lib/module/reanimated2/animation/util.js +4 -19
  19. package/lib/module/reanimated2/animation/util.js.map +1 -1
  20. package/lib/module/reanimated2/commonTypes.js.map +1 -1
  21. package/lib/module/reanimated2/component/FlatList.js.map +1 -1
  22. package/lib/module/reanimated2/component/ScrollView.js.map +1 -1
  23. package/lib/module/reanimated2/fabricUtils.js +3 -1
  24. package/lib/module/reanimated2/fabricUtils.js.map +1 -1
  25. package/lib/module/reanimated2/globals.d.js.map +1 -1
  26. package/lib/module/reanimated2/helperTypes.js.map +1 -1
  27. package/lib/module/reanimated2/hook/commonTypes.js.map +1 -1
  28. package/lib/module/reanimated2/hook/index.js.map +1 -1
  29. package/lib/module/reanimated2/hook/useAnimatedGestureHandler.js +1 -1
  30. package/lib/module/reanimated2/hook/useAnimatedGestureHandler.js.map +1 -1
  31. package/lib/module/reanimated2/hook/useAnimatedRef.js +2 -2
  32. package/lib/module/reanimated2/hook/useAnimatedRef.js.map +1 -1
  33. package/lib/module/reanimated2/hook/useAnimatedStyle.js +1 -1
  34. package/lib/module/reanimated2/hook/useAnimatedStyle.js.map +1 -1
  35. package/lib/module/reanimated2/hook/utils.js +2 -27
  36. package/lib/module/reanimated2/hook/utils.js.map +1 -1
  37. package/lib/module/reanimated2/index.js.map +1 -1
  38. package/lib/module/reanimated2/interpolateColor.js.map +1 -1
  39. package/lib/module/reanimated2/js-reanimated/commonTypes.js.map +1 -1
  40. package/lib/module/reanimated2/js-reanimated/index.js.map +1 -1
  41. package/lib/module/reanimated2/layoutReanimation/animationBuilder/ComplexAnimationBuilder.js.map +1 -1
  42. package/lib/module/reanimated2/layoutReanimation/animationBuilder/Keyframe.js.map +1 -1
  43. package/lib/module/reanimated2/layoutReanimation/animationBuilder/commonTypes.js.map +1 -1
  44. package/lib/module/reanimated2/layoutReanimation/defaultTransitions/CurvedTransition.js.map +1 -1
  45. package/lib/module/reanimated2/layoutReanimation/index.js.map +1 -1
  46. package/lib/module/reanimated2/mappers.js +1 -1
  47. package/lib/module/reanimated2/mappers.js.map +1 -1
  48. package/lib/module/reanimated2/mock.js +26 -0
  49. package/lib/module/reanimated2/mock.js.map +1 -1
  50. package/lib/module/reanimated2/mutables.js +0 -1
  51. package/lib/module/reanimated2/mutables.js.map +1 -1
  52. package/lib/module/reanimated2/platform-specific/checkCppVersion.js +3 -0
  53. package/lib/module/reanimated2/platform-specific/checkCppVersion.js.map +1 -1
  54. package/lib/module/reanimated2/platform-specific/jsVersion.js +1 -1
  55. package/lib/module/reanimated2/platform-specific/jsVersion.js.map +1 -1
  56. package/lib/module/reanimated2/valueSetter.js +0 -1
  57. package/lib/module/reanimated2/valueSetter.js.map +1 -1
  58. package/lib/module/setAndForwardRef.js.map +1 -1
  59. package/lib/typescript/Animated.d.ts +68 -3
  60. package/lib/typescript/createAnimatedComponent.d.ts +1 -26
  61. package/lib/typescript/reanimated2/Easing.d.ts +17 -9
  62. package/lib/typescript/reanimated2/UpdateProps.d.ts +5 -5
  63. package/lib/typescript/reanimated2/animation/commonTypes.d.ts +4 -3
  64. package/lib/typescript/reanimated2/animation/decay.d.ts +2 -4
  65. package/lib/typescript/reanimated2/animation/index.d.ts +3 -3
  66. package/lib/typescript/reanimated2/animation/springUtils.d.ts +1 -0
  67. package/lib/typescript/reanimated2/animation/styleAnimation.d.ts +2 -6
  68. package/lib/typescript/reanimated2/animation/timing.d.ts +4 -7
  69. package/lib/typescript/reanimated2/animation/transformationMatrix/matrixUtils.d.ts +1 -1
  70. package/lib/typescript/reanimated2/animation/util.d.ts +2 -4
  71. package/lib/typescript/reanimated2/commonTypes.d.ts +0 -4
  72. package/lib/typescript/reanimated2/component/FlatList.d.ts +2 -1
  73. package/lib/typescript/reanimated2/component/ScrollView.d.ts +1 -1
  74. package/lib/typescript/reanimated2/helperTypes.d.ts +11 -7
  75. package/lib/typescript/reanimated2/hook/commonTypes.d.ts +2 -2
  76. package/lib/typescript/reanimated2/hook/index.d.ts +1 -1
  77. package/lib/typescript/reanimated2/hook/useAnimatedGestureHandler.d.ts +2 -2
  78. package/lib/typescript/reanimated2/hook/useAnimatedRef.d.ts +4 -4
  79. package/lib/typescript/reanimated2/hook/useAnimatedStyle.d.ts +4 -5
  80. package/lib/typescript/reanimated2/hook/utils.d.ts +3 -11
  81. package/lib/typescript/reanimated2/index.d.ts +3 -1
  82. package/lib/typescript/reanimated2/interpolateColor.d.ts +2 -3
  83. package/lib/typescript/reanimated2/js-reanimated/commonTypes.d.ts +1 -43
  84. package/lib/typescript/reanimated2/js-reanimated/index.d.ts +3 -2
  85. package/lib/typescript/reanimated2/layoutReanimation/animationBuilder/ComplexAnimationBuilder.d.ts +4 -4
  86. package/lib/typescript/reanimated2/layoutReanimation/animationBuilder/Keyframe.d.ts +0 -11
  87. package/lib/typescript/reanimated2/layoutReanimation/animationBuilder/commonTypes.d.ts +3 -3
  88. package/lib/typescript/reanimated2/layoutReanimation/defaultTransitions/CurvedTransition.d.ts +13 -13
  89. package/lib/typescript/reanimated2/layoutReanimation/index.d.ts +1 -0
  90. package/lib/typescript/reanimated2/mappers.d.ts +0 -12
  91. package/lib/typescript/reanimated2/mock.d.ts +1 -76
  92. package/lib/typescript/reanimated2/mutables.d.ts +0 -1
  93. package/lib/typescript/reanimated2/platform-specific/jsVersion.d.ts +1 -1
  94. package/lib/typescript/reanimated2/valueSetter.d.ts +0 -1
  95. package/lib/typescript/setAndForwardRef.d.ts +1 -1
  96. package/package.json +3 -1
  97. package/src/Animated.ts +80 -6
  98. package/src/createAnimatedComponent.tsx +2 -2
  99. package/src/reanimated2/Easing.ts +18 -8
  100. package/src/reanimated2/UpdateProps.ts +13 -17
  101. package/src/reanimated2/animation/commonTypes.ts +3 -3
  102. package/src/reanimated2/animation/decay.ts +3 -1
  103. package/src/reanimated2/animation/index.ts +3 -3
  104. package/src/reanimated2/animation/springUtils.ts +2 -0
  105. package/src/reanimated2/animation/styleAnimation.ts +5 -5
  106. package/src/reanimated2/animation/timing.ts +6 -4
  107. package/src/reanimated2/animation/transformationMatrix/matrixUtils.tsx +4 -1
  108. package/src/reanimated2/animation/util.ts +5 -29
  109. package/src/reanimated2/commonTypes.ts +0 -25
  110. package/src/reanimated2/component/FlatList.tsx +3 -1
  111. package/src/reanimated2/component/ScrollView.tsx +1 -1
  112. package/src/reanimated2/fabricUtils.ts +1 -0
  113. package/src/reanimated2/globals.d.ts +3 -3
  114. package/src/reanimated2/helperTypes.ts +17 -7
  115. package/src/reanimated2/hook/commonTypes.ts +2 -3
  116. package/src/reanimated2/hook/index.ts +4 -1
  117. package/src/reanimated2/hook/useAnimatedGestureHandler.ts +2 -2
  118. package/src/reanimated2/hook/useAnimatedRef.ts +13 -10
  119. package/src/reanimated2/hook/useAnimatedStyle.ts +27 -26
  120. package/src/reanimated2/hook/utils.ts +5 -31
  121. package/src/reanimated2/index.ts +13 -1
  122. package/src/reanimated2/interpolateColor.ts +2 -2
  123. package/src/reanimated2/js-reanimated/commonTypes.ts +3 -3
  124. package/src/reanimated2/js-reanimated/index.ts +4 -3
  125. package/src/reanimated2/layoutReanimation/animationBuilder/ComplexAnimationBuilder.ts +4 -4
  126. package/src/reanimated2/layoutReanimation/animationBuilder/Keyframe.ts +5 -5
  127. package/src/reanimated2/layoutReanimation/animationBuilder/commonTypes.ts +3 -3
  128. package/src/reanimated2/layoutReanimation/defaultTransitions/CurvedTransition.ts +13 -13
  129. package/src/reanimated2/layoutReanimation/index.ts +1 -0
  130. package/src/reanimated2/mappers.ts +2 -2
  131. package/src/reanimated2/mock.ts +27 -0
  132. package/src/reanimated2/mutables.ts +0 -1
  133. package/src/reanimated2/platform-specific/checkCppVersion.ts +2 -0
  134. package/src/reanimated2/platform-specific/jsVersion.ts +1 -1
  135. package/src/reanimated2/valueSetter.ts +0 -1
  136. package/src/setAndForwardRef.ts +1 -1
  137. package/lib/module/reanimated2/js-reanimated/Mapper.js +0 -69
  138. package/lib/module/reanimated2/js-reanimated/Mapper.js.map +0 -1
  139. package/lib/module/reanimated2/js-reanimated/MapperRegistry.js +0 -109
  140. package/lib/module/reanimated2/js-reanimated/MapperRegistry.js.map +0 -1
  141. package/lib/typescript/reanimated2/js-reanimated/Mapper.d.ts +0 -14
  142. package/lib/typescript/reanimated2/js-reanimated/MapperRegistry.d.ts +0 -14
  143. package/src/reanimated2/js-reanimated/Mapper.ts +0 -94
  144. package/src/reanimated2/js-reanimated/MapperRegistry.ts +0 -133
@@ -1,8 +1,67 @@
1
+ import { addWhitelistedNativeProps as _addWhitelistedNativeProps, addWhitelistedUIProps as _addWhitelistedUIProps } from './ConfigHelper';
1
2
  export { default as createAnimatedComponent } from './createAnimatedComponent';
2
- export { addWhitelistedNativeProps, addWhitelistedUIProps } from './ConfigHelper';
3
3
  export { AnimatedText as Text } from './reanimated2/component/Text';
4
4
  export { AnimatedView as View } from './reanimated2/component/View';
5
5
  export { AnimatedScrollView as ScrollView } from './reanimated2/component/ScrollView';
6
6
  export { AnimatedImage as Image } from './reanimated2/component/Image';
7
7
  export { ReanimatedFlatList as FlatList } from './reanimated2/component/FlatList';
8
+ /**
9
+ * @deprecated Please import `Extrapolate` directly from `react-native-reanimated` instead of `Animated` namespace.
10
+ */
11
+
12
+ /**
13
+ * @deprecated Please import `SharedValue` directly from `react-native-reanimated` instead of `Animated` namespace.
14
+ */
15
+
16
+ /**
17
+ * @deprecated Please import `DerivedValue` directly from `react-native-reanimated` instead of `Animated` namespace.
18
+ */
19
+
20
+ /**
21
+ * @deprecated Please import `Adaptable` directly from `react-native-reanimated` instead of `Animated` namespace.
22
+ */
23
+
24
+ /**
25
+ * @deprecated Please import `TransformStyleTypes` directly from `react-native-reanimated` instead of `Animated` namespace.
26
+ * */
27
+
28
+ /**
29
+ * @deprecated Please import `AdaptTransforms` directly from `react-native-reanimated` instead of `Animated` namespace.
30
+ * */
31
+
32
+ /**
33
+ * @deprecated Please import `AnimatedTransform` directly from `react-native-reanimated` instead of `Animated` namespace.
34
+ */
35
+
36
+ /**
37
+ * @deprecated Please import `AnimateStyle` directly from `react-native-reanimated` instead of `Animated` namespace.
38
+ * */
39
+
40
+ /**
41
+ * @deprecated Please import `StylesOrDefault` directly from `react-native-reanimated` instead of `Animated` namespace.
42
+ * */
43
+
44
+ /**
45
+ * @deprecated Please import `AnimateProps` directly from `react-native-reanimated` instead of `Animated` namespace.
46
+ * */
47
+
48
+ /**
49
+ * @deprecated Please import `EasingFunction` directly from `react-native-reanimated` instead of `Animated` namespace.
50
+ * */
51
+
52
+ /**
53
+ * @deprecated Please import `addWhitelistedNativeProps` directly from `react-native-reanimated` instead of `Animated` namespace.
54
+ * */
55
+ export const addWhitelistedNativeProps = _addWhitelistedNativeProps;
56
+ /**
57
+ * @deprecated Please import `addWhitelistedUIProps` directly from `react-native-reanimated` instead of `Animated` namespace.
58
+ * */
59
+ export const addWhitelistedUIProps = _addWhitelistedUIProps;
60
+ /**
61
+ * @deprecated Please import `AnimatedScrollViewProps` directly from `react-native-reanimated` instead of `Animated` namespace.
62
+ * */
63
+
64
+ /**
65
+ * @deprecated Please import `FlatListPropsWithLayout` directly from `react-native-reanimated` instead of `Animated` namespace.
66
+ * */
8
67
  //# sourceMappingURL=Animated.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["default","createAnimatedComponent","addWhitelistedNativeProps","addWhitelistedUIProps","AnimatedText","Text","AnimatedView","View","AnimatedScrollView","ScrollView","AnimatedImage","Image","ReanimatedFlatList","FlatList"],"sources":["Animated.ts"],"sourcesContent":["export { default as createAnimatedComponent } from './createAnimatedComponent';\nexport {\n addWhitelistedNativeProps,\n addWhitelistedUIProps,\n} from './ConfigHelper';\n\nexport { AnimatedText as Text } from './reanimated2/component/Text';\nexport { AnimatedView as View } from './reanimated2/component/View';\nexport { AnimatedScrollView as ScrollView } from './reanimated2/component/ScrollView';\nexport { AnimatedImage as Image } from './reanimated2/component/Image';\nexport { ReanimatedFlatList as FlatList } from './reanimated2/component/FlatList';\nexport type { SharedValue } from './reanimated2/commonTypes';\nexport type { AnimateStyle } from './reanimated2/helperTypes';\n"],"mappings":"AAAA,SAASA,OAAO,IAAIC,uBAAuB,QAAQ,2BAA2B;AAC9E,SACEC,yBAAyB,EACzBC,qBAAqB,QAChB,gBAAgB;AAEvB,SAASC,YAAY,IAAIC,IAAI,QAAQ,8BAA8B;AACnE,SAASC,YAAY,IAAIC,IAAI,QAAQ,8BAA8B;AACnE,SAASC,kBAAkB,IAAIC,UAAU,QAAQ,oCAAoC;AACrF,SAASC,aAAa,IAAIC,KAAK,QAAQ,+BAA+B;AACtE,SAASC,kBAAkB,IAAIC,QAAQ,QAAQ,kCAAkC"}
1
+ {"version":3,"names":["addWhitelistedNativeProps","_addWhitelistedNativeProps","addWhitelistedUIProps","_addWhitelistedUIProps","default","createAnimatedComponent","AnimatedText","Text","AnimatedView","View","AnimatedScrollView","ScrollView","AnimatedImage","Image","ReanimatedFlatList","FlatList"],"sources":["Animated.ts"],"sourcesContent":["import type { Extrapolate as _Extrapolate } from './reanimated2/interpolateColor';\nimport type { SharedValue as _SharedValue } from './reanimated2/commonTypes';\nimport type { DerivedValue as _DerivedValue } from './reanimated2/hook/useDerivedValue';\nimport type {\n TransformStyleTypes as _TransformStyleTypes,\n Adaptable as _Adaptable,\n AdaptTransforms as _AdaptTransforms,\n AnimatedTransform as _AnimatedTransform,\n AnimateStyle as _AnimateStyle,\n StylesOrDefault as _StylesOrDefault,\n AnimateProps as _AnimateProps,\n} from './reanimated2/helperTypes';\nimport type { EasingFunction as _EasingFunction } from './reanimated2/Easing';\nimport {\n addWhitelistedNativeProps as _addWhitelistedNativeProps,\n addWhitelistedUIProps as _addWhitelistedUIProps,\n} from './ConfigHelper';\nimport type { AnimatedScrollViewProps as _AnimatedScrollViewProps } from './reanimated2/component/ScrollView';\nimport type { FlatListPropsWithLayout as _FlatListPropsWithLayout } from './reanimated2/component/FlatList';\nexport { default as createAnimatedComponent } from './createAnimatedComponent';\n\nexport { AnimatedText as Text } from './reanimated2/component/Text';\nexport { AnimatedView as View } from './reanimated2/component/View';\nexport { AnimatedScrollView as ScrollView } from './reanimated2/component/ScrollView';\nexport { AnimatedImage as Image } from './reanimated2/component/Image';\nexport { ReanimatedFlatList as FlatList } from './reanimated2/component/FlatList';\n/**\n * @deprecated Please import `Extrapolate` directly from `react-native-reanimated` instead of `Animated` namespace.\n */\nexport type Extrapolate = typeof _Extrapolate;\n/**\n * @deprecated Please import `SharedValue` directly from `react-native-reanimated` instead of `Animated` namespace.\n */\n\nexport type SharedValue<T> = _SharedValue<T>;\n/**\n * @deprecated Please import `DerivedValue` directly from `react-native-reanimated` instead of `Animated` namespace.\n */\nexport type DerivedValue<T> = _DerivedValue<T>;\n/**\n * @deprecated Please import `Adaptable` directly from `react-native-reanimated` instead of `Animated` namespace.\n */\nexport type Adaptable<T> = _Adaptable<T>;\n/**\n * @deprecated Please import `TransformStyleTypes` directly from `react-native-reanimated` instead of `Animated` namespace.\n * */\nexport type TransformStyleTypes = _TransformStyleTypes;\n/**\n * @deprecated Please import `AdaptTransforms` directly from `react-native-reanimated` instead of `Animated` namespace.\n * */\nexport type AdaptTransforms<T> = _AdaptTransforms<T>;\n/**\n * @deprecated Please import `AnimatedTransform` directly from `react-native-reanimated` instead of `Animated` namespace.\n */\nexport type AnimatedTransform = _AnimatedTransform;\n/**\n * @deprecated Please import `AnimateStyle` directly from `react-native-reanimated` instead of `Animated` namespace.\n * */\nexport type AnimateStyle<S> = _AnimateStyle<S>;\n/**\n * @deprecated Please import `StylesOrDefault` directly from `react-native-reanimated` instead of `Animated` namespace.\n * */\nexport type StylesOrDefault<S> = _StylesOrDefault<S>;\n/**\n * @deprecated Please import `AnimateProps` directly from `react-native-reanimated` instead of `Animated` namespace.\n * */\nexport type AnimateProps<P extends object> = _AnimateProps<P>;\n/**\n * @deprecated Please import `EasingFunction` directly from `react-native-reanimated` instead of `Animated` namespace.\n * */\nexport type EasingFunction = _EasingFunction;\n/**\n * @deprecated Please import `addWhitelistedNativeProps` directly from `react-native-reanimated` instead of `Animated` namespace.\n * */\nexport const addWhitelistedNativeProps = _addWhitelistedNativeProps;\n/**\n * @deprecated Please import `addWhitelistedUIProps` directly from `react-native-reanimated` instead of `Animated` namespace.\n * */\nexport const addWhitelistedUIProps = _addWhitelistedUIProps;\n/**\n * @deprecated Please import `AnimatedScrollViewProps` directly from `react-native-reanimated` instead of `Animated` namespace.\n * */\nexport type AnimatedScrollViewProps = _AnimatedScrollViewProps;\n/**\n * @deprecated Please import `FlatListPropsWithLayout` directly from `react-native-reanimated` instead of `Animated` namespace.\n * */\nexport type FlatListPropsWithLayout<T> = _FlatListPropsWithLayout<T>;\n"],"mappings":"AAaA,SACEA,yBAAyB,IAAIC,0BAA0B,EACvDC,qBAAqB,IAAIC,sBAAsB,QAC1C,gBAAgB;AAGvB,SAASC,OAAO,IAAIC,uBAAuB,QAAQ,2BAA2B;AAE9E,SAASC,YAAY,IAAIC,IAAI,QAAQ,8BAA8B;AACnE,SAASC,YAAY,IAAIC,IAAI,QAAQ,8BAA8B;AACnE,SAASC,kBAAkB,IAAIC,UAAU,QAAQ,oCAAoC;AACrF,SAASC,aAAa,IAAIC,KAAK,QAAQ,+BAA+B;AACtE,SAASC,kBAAkB,IAAIC,QAAQ,QAAQ,kCAAkC;AACjF;AACA;AACA;;AAEA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO,MAAMf,yBAAyB,GAAGC,0BAA0B;AACnE;AACA;AACA;AACA,OAAO,MAAMC,qBAAqB,GAAGC,sBAAsB;AAC3D;AACA;AACA;;AAEA;AACA;AACA"}
@@ -1 +1 @@
1
- {"version":3,"names":["React","findNodeHandle","Platform","StyleSheet","WorkletEventHandler","setAndForwardRef","invariant","adaptViewConfig","RNRenderer","configureLayoutAnimations","enableLayoutAnimations","startMapper","stopMapper","isJest","isChromeDebugger","shouldBeUseWeb","isWeb","initialUpdaterRun","SharedTransition","LayoutAnimationType","makeViewDescriptorsSet","getShadowNodeWrapperFromRef","updateProps","NativeReanimatedModule","isSharedValue","removeFromPropsRegistry","dummyListener","maybeBuild","layoutAnimationOrBuilder","isAnimationBuilder","value","build","flattenArray","array","Array","isArray","resultArr","_flattenArray","arr","forEach","item","push","onlyAnimatedStyles","styles","filter","style","viewDescriptors","isSameAnimatedStyle","style1","style2","viewsRef","isSameAnimatedProps","has","key","x","undefined","isInlineStyleTransform","transform","some","t","hasInlineStyles","Object","keys","styleValue","extractSharedValuesMapFromProps","props","inlineProps","entries","inlinePropsHasChanged","styles1","styles2","length","getInlinePropsUpdate","update","map","createAnimatedComponent","Component","options","prototype","isReactComponent","name","AnimatedComponent","constructor","_defineProperty","getForwardedRef","forwardedRef","setLocalRef","ref","tag","layout","entering","exiting","sharedTransitionTag","LAYOUT","ENTERING","EXITING","sharedElementTransition","sharedTransitionStyle","registerTransition","_sharedElementTransition","_component","animatedStyle","componentWillUnmount","_this$_sharedElementT","_detachNativeEvents","_detachStyles","_detachInlineProps","unregisterTransition","_viewTag","componentDidMount","_attachNativeEvents","_attachAnimatedStyles","_attachInlineProps","_getEventViewRef","_this$_component","getScrollableNode","node","viewTag","prop","current","setNativeProps","registerForEvents","unregisterFromEvents","_styles","remove","_this$props$animatedP","animatedProps","global","_IS_FABRIC","_reattachNativeEvents","prevProps","reattachNeeded","_updateFromNative","_this$_component2","_this$_component2$set","call","_getViewInfo","_this$_component3","viewName","shadowNodeWrapper","viewConfig","component","getAnimatableRef","_hostInstance$viewCon","hostInstance","findHostInstance_DEPRECATED","Error","_nativeTag","uiViewClassName","_this$props$animatedP2","_this$props$animatedP3","prevStyles","prevAnimatedProps","_animatedProps","hasReanimated2Props","hasOneSameStyle","prevStyle","isPresent","add","initial","newInlineProps","hasChanged","_inlineProps","_inlinePropsViewDescriptors","sharableViewDescriptors","maybeViewRef","native","items","Set","updaterFunction","_inlinePropsMapperId","values","componentDidUpdate","_filterNonAnimatedProps","inputProps","styleProp","processedStyle","_isFirstRender","initialStyle","updater","newStyle","flatten","animatedProp","_animatedProp$initial","_animatedProp$viewsRe","eventNames","eventName","listeners","render","platformProps","select","web","default","collapsable","createElement","_extends","_setComponentRef","displayName","forwardRef"],"sources":["createAnimatedComponent.tsx"],"sourcesContent":["import type {\n Component,\n ComponentClass,\n ComponentType,\n FunctionComponent,\n MutableRefObject,\n Ref,\n} from 'react';\nimport React from 'react';\nimport { findNodeHandle, Platform, StyleSheet } from 'react-native';\nimport WorkletEventHandler from './reanimated2/WorkletEventHandler';\nimport setAndForwardRef from './setAndForwardRef';\nimport './reanimated2/layoutReanimation/animationsManager';\nimport invariant from 'invariant';\nimport { adaptViewConfig } from './ConfigHelper';\nimport { RNRenderer } from './reanimated2/platform-specific/RNRenderer';\nimport {\n configureLayoutAnimations,\n enableLayoutAnimations,\n startMapper,\n stopMapper,\n} from './reanimated2/core';\nimport {\n isJest,\n isChromeDebugger,\n shouldBeUseWeb,\n isWeb,\n} from './reanimated2/PlatformChecker';\nimport { initialUpdaterRun } from './reanimated2/animation';\nimport type {\n BaseAnimationBuilder,\n EntryExitAnimationFunction,\n ILayoutAnimationBuilder,\n LayoutAnimationFunction,\n} from './reanimated2/layoutReanimation';\nimport {\n SharedTransition,\n LayoutAnimationType,\n} from './reanimated2/layoutReanimation';\nimport type {\n SharedValue,\n StyleProps,\n ShadowNodeWrapper,\n} from './reanimated2/commonTypes';\nimport type {\n ViewDescriptorsSet,\n ViewRefSet,\n} from './reanimated2/ViewDescriptorsSet';\nimport { makeViewDescriptorsSet } from './reanimated2/ViewDescriptorsSet';\nimport { getShadowNodeWrapperFromRef } from './reanimated2/fabricUtils';\nimport updateProps from './reanimated2/UpdateProps';\nimport NativeReanimatedModule from './reanimated2/NativeReanimated';\nimport { isSharedValue } from './reanimated2';\nimport type { AnimateProps } from './reanimated2/helperTypes';\nimport { removeFromPropsRegistry } from './reanimated2/PropsRegistry';\n\nfunction dummyListener() {\n // empty listener we use to assign to listener properties for which animated\n // event is used.\n}\n\nfunction maybeBuild(\n layoutAnimationOrBuilder:\n | ILayoutAnimationBuilder\n | LayoutAnimationFunction\n | Keyframe\n): LayoutAnimationFunction | Keyframe {\n const isAnimationBuilder = (\n value: ILayoutAnimationBuilder | LayoutAnimationFunction | Keyframe\n ): value is ILayoutAnimationBuilder =>\n 'build' in layoutAnimationOrBuilder &&\n typeof layoutAnimationOrBuilder.build === 'function';\n\n if (isAnimationBuilder(layoutAnimationOrBuilder)) {\n return layoutAnimationOrBuilder.build();\n } else {\n return layoutAnimationOrBuilder;\n }\n}\n\ntype NestedArray<T> = T | NestedArray<T>[];\nfunction flattenArray<T>(array: NestedArray<T>): T[] {\n if (!Array.isArray(array)) {\n return [array];\n }\n const resultArr: T[] = [];\n\n const _flattenArray = (arr: NestedArray<T>[]): void => {\n arr.forEach((item) => {\n if (Array.isArray(item)) {\n _flattenArray(item);\n } else {\n resultArr.push(item);\n }\n });\n };\n _flattenArray(array);\n return resultArr;\n}\n\nfunction onlyAnimatedStyles(styles: StyleProps[]) {\n return styles.filter((style) => style?.viewDescriptors);\n}\n\nfunction isSameAnimatedStyle(\n style1?: StyleProps,\n style2?: StyleProps\n): boolean {\n // We cannot use equality check to compare useAnimatedStyle outputs directly.\n // Instead, we can compare its viewsRefs.\n return style1?.viewsRef === style2?.viewsRef;\n}\n\nconst isSameAnimatedProps = isSameAnimatedStyle;\n\nconst has = <K extends string>(\n key: K,\n x: unknown\n): x is { [key in K]: unknown } => {\n if (typeof x === 'function' || typeof x === 'object') {\n if (x === null || x === undefined) {\n return false;\n } else {\n return key in x;\n }\n }\n return false;\n};\n\nfunction isInlineStyleTransform(transform: any): boolean {\n if (!transform) {\n return false;\n }\n return transform.some((t: Record<string, any>) => hasInlineStyles(t));\n}\n\nfunction hasInlineStyles(style: StyleProps): boolean {\n if (!style) {\n return false;\n }\n return Object.keys(style).some((key) => {\n const styleValue = style[key];\n return (\n isSharedValue(styleValue) ||\n (key === 'transform' && isInlineStyleTransform(styleValue))\n );\n });\n}\n\nfunction extractSharedValuesMapFromProps(\n props: AnimatedComponentProps<InitialComponentProps>\n): Record<string, any> {\n const inlineProps: Record<string, any> = {};\n\n for (const key in props) {\n const value = props[key];\n if (key === 'style') {\n const styles = flattenArray<StyleProps>(props.style ?? []);\n styles.forEach((style) => {\n if (!style) {\n return;\n }\n for (const [key, styleValue] of Object.entries(style)) {\n if (isSharedValue(styleValue)) {\n inlineProps[key] = styleValue;\n } else if (\n key === 'transform' &&\n isInlineStyleTransform(styleValue)\n ) {\n inlineProps[key] = styleValue;\n }\n }\n });\n } else if (isSharedValue(value)) {\n inlineProps[key] = value;\n }\n }\n\n return inlineProps;\n}\n\nfunction inlinePropsHasChanged(styles1: StyleProps, styles2: StyleProps) {\n if (Object.keys(styles1).length !== Object.keys(styles2).length) {\n return true;\n }\n\n for (const key of Object.keys(styles1)) {\n if (styles1[key] !== styles2[key]) return true;\n }\n\n return false;\n}\n\nfunction getInlinePropsUpdate(inlineProps: Record<string, any>) {\n 'worklet';\n const update: Record<string, any> = {};\n for (const [key, styleValue] of Object.entries(inlineProps)) {\n if (key === 'transform') {\n update[key] = styleValue.map((transform: Record<string, any>) => {\n return getInlinePropsUpdate(transform);\n });\n } else if (isSharedValue(styleValue)) {\n update[key] = styleValue.value;\n } else {\n update[key] = styleValue;\n }\n }\n return update;\n}\n\ninterface AnimatedProps extends Record<string, unknown> {\n viewDescriptors?: ViewDescriptorsSet;\n viewsRef?: ViewRefSet<unknown>;\n initial?: SharedValue<StyleProps>;\n}\n\nexport type AnimatedComponentProps<P extends Record<string, unknown>> = P & {\n forwardedRef?: Ref<Component>;\n style?: NestedArray<StyleProps>;\n animatedProps?: Partial<AnimatedComponentProps<AnimatedProps>>;\n animatedStyle?: StyleProps;\n layout?:\n | BaseAnimationBuilder\n | ILayoutAnimationBuilder\n | typeof BaseAnimationBuilder;\n entering?:\n | BaseAnimationBuilder\n | typeof BaseAnimationBuilder\n | EntryExitAnimationFunction\n | Keyframe;\n exiting?:\n | BaseAnimationBuilder\n | typeof BaseAnimationBuilder\n | EntryExitAnimationFunction\n | Keyframe;\n sharedTransitionTag?: string;\n sharedTransitionStyle?: SharedTransition;\n};\n\ntype Options<P> = {\n setNativeProps: (ref: ComponentRef, props: P) => void;\n};\n\ninterface ComponentRef extends Component {\n setNativeProps?: (props: Record<string, unknown>) => void;\n getScrollableNode?: () => ComponentRef;\n getAnimatableRef?: () => ComponentRef;\n}\n\nexport interface InitialComponentProps extends Record<string, unknown> {\n ref?: Ref<Component>;\n collapsable?: boolean;\n}\n\nexport default function createAnimatedComponent<P extends object>(\n component: FunctionComponent<P>,\n options?: Options<P>\n): FunctionComponent<AnimateProps<P>>;\n\nexport default function createAnimatedComponent<P extends object>(\n component: ComponentClass<P>,\n options?: Options<P>\n): ComponentClass<AnimateProps<P>>;\n\nexport default function createAnimatedComponent(\n Component: ComponentType<InitialComponentProps>,\n options?: Options<InitialComponentProps>\n): any {\n invariant(\n typeof Component !== 'function' ||\n (Component.prototype && Component.prototype.isReactComponent),\n `Looks like you're passing a function component \\`${Component.name}\\` to \\`createAnimatedComponent\\` function which supports only class components. Please wrap your function component with \\`React.forwardRef()\\` or use a class component instead.`\n );\n\n class AnimatedComponent extends React.Component<\n AnimatedComponentProps<InitialComponentProps>\n > {\n _styles: StyleProps[] | null = null;\n _animatedProps?: Partial<AnimatedComponentProps<AnimatedProps>>;\n _viewTag = -1;\n _isFirstRender = true;\n animatedStyle: { value: StyleProps } = { value: {} };\n initialStyle = {};\n _component: ComponentRef | null = null;\n _inlinePropsViewDescriptors: ViewDescriptorsSet | null = null;\n _inlinePropsMapperId: number | null = null;\n _inlineProps: StyleProps = {};\n _sharedElementTransition: SharedTransition | null = null;\n static displayName: string;\n\n constructor(props: AnimatedComponentProps<InitialComponentProps>) {\n super(props);\n if (isJest()) {\n this.animatedStyle = { value: {} };\n }\n }\n\n componentWillUnmount() {\n this._detachNativeEvents();\n this._detachStyles();\n this._detachInlineProps();\n this._sharedElementTransition?.unregisterTransition(this._viewTag);\n }\n\n componentDidMount() {\n this._attachNativeEvents();\n this._attachAnimatedStyles();\n this._attachInlineProps();\n }\n\n _getEventViewRef() {\n // Make sure to get the scrollable node for components that implement\n // `ScrollResponder.Mixin`.\n return this._component?.getScrollableNode\n ? this._component.getScrollableNode()\n : this._component;\n }\n\n _attachNativeEvents() {\n const node = this._getEventViewRef();\n let viewTag = null; // We set it only if needed\n\n for (const key in this.props) {\n const prop = this.props[key];\n if (\n has('current', prop) &&\n prop.current instanceof WorkletEventHandler\n ) {\n if (viewTag === null) {\n viewTag = findNodeHandle(options?.setNativeProps ? this : node);\n }\n prop.current.registerForEvents(viewTag as number, key);\n }\n }\n }\n\n _detachNativeEvents() {\n for (const key in this.props) {\n const prop = this.props[key];\n if (\n has('current', prop) &&\n prop.current instanceof WorkletEventHandler\n ) {\n prop.current.unregisterFromEvents();\n }\n }\n }\n\n _detachStyles() {\n if (isWeb() && this._styles !== null) {\n for (const style of this._styles) {\n if (style?.viewsRef) {\n style.viewsRef.remove(this);\n }\n }\n } else if (this._viewTag !== -1 && this._styles !== null) {\n for (const style of this._styles) {\n style.viewDescriptors.remove(this._viewTag);\n }\n if (this.props.animatedProps?.viewDescriptors) {\n this.props.animatedProps.viewDescriptors.remove(this._viewTag);\n }\n if (global._IS_FABRIC) {\n removeFromPropsRegistry(this._viewTag);\n }\n }\n }\n\n _reattachNativeEvents(\n prevProps: AnimatedComponentProps<InitialComponentProps>\n ) {\n for (const key in prevProps) {\n const prop = this.props[key];\n if (\n has('current', prop) &&\n prop.current instanceof WorkletEventHandler &&\n prop.current.reattachNeeded\n ) {\n prop.current.unregisterFromEvents();\n }\n }\n\n let viewTag = null;\n\n for (const key in this.props) {\n const prop = this.props[key];\n if (\n has('current', prop) &&\n prop.current instanceof WorkletEventHandler &&\n prop.current.reattachNeeded\n ) {\n if (viewTag === null) {\n const node = this._getEventViewRef();\n viewTag = findNodeHandle(options?.setNativeProps ? this : node);\n }\n prop.current.registerForEvents(viewTag as number, key);\n prop.current.reattachNeeded = false;\n }\n }\n }\n\n _updateFromNative(props: StyleProps) {\n if (options?.setNativeProps) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n options.setNativeProps(this._component!, props);\n } else {\n // eslint-disable-next-line no-unused-expressions\n this._component?.setNativeProps?.(props);\n }\n }\n\n _getViewInfo() {\n let viewTag: number | null;\n let viewName: string | null;\n let shadowNodeWrapper: ShadowNodeWrapper | null = null;\n let viewConfig;\n // Component can specify ref which should be animated when animated version of the component is created.\n // Otherwise, we animate the component itself.\n const component = this._component?.getAnimatableRef\n ? this._component.getAnimatableRef()\n : this;\n if (isWeb()) {\n viewTag = findNodeHandle(component);\n viewName = null;\n shadowNodeWrapper = null;\n viewConfig = null;\n } else {\n // hostInstance can be null for a component that doesn't render anything (render function returns null). Example: svg Stop: https://github.com/react-native-svg/react-native-svg/blob/develop/src/elements/Stop.tsx\n const hostInstance = RNRenderer.findHostInstance_DEPRECATED(component);\n if (!hostInstance) {\n throw new Error(\n 'Cannot find host instance for this component. Maybe it renders nothing?'\n );\n }\n // we can access view tag in the same way it's accessed here https://github.com/facebook/react/blob/e3f4eb7272d4ca0ee49f27577156b57eeb07cf73/packages/react-native-renderer/src/ReactFabric.js#L146\n viewTag = hostInstance?._nativeTag;\n /**\n * RN uses viewConfig for components for storing different properties of the component(example: https://github.com/facebook/react-native/blob/master/Libraries/Components/ScrollView/ScrollViewViewConfig.js#L16).\n * The name we're looking for is in the field named uiViewClassName.\n */\n viewName = hostInstance?.viewConfig?.uiViewClassName;\n\n viewConfig = hostInstance?.viewConfig;\n\n if (global._IS_FABRIC) {\n shadowNodeWrapper = getShadowNodeWrapperFromRef(this);\n }\n }\n return { viewTag, viewName, shadowNodeWrapper, viewConfig };\n }\n\n _attachAnimatedStyles() {\n const styles = this.props.style\n ? onlyAnimatedStyles(flattenArray<StyleProps>(this.props.style))\n : [];\n const prevStyles = this._styles;\n this._styles = styles;\n\n const prevAnimatedProps = this._animatedProps;\n this._animatedProps = this.props.animatedProps;\n\n const { viewTag, viewName, shadowNodeWrapper, viewConfig } =\n this._getViewInfo();\n\n // update UI props whitelist for this view\n const hasReanimated2Props =\n this.props.animatedProps?.viewDescriptors || styles.length;\n if (hasReanimated2Props && viewConfig) {\n adaptViewConfig(viewConfig);\n }\n\n this._viewTag = viewTag as number;\n\n // remove old styles\n if (prevStyles) {\n // in most of the cases, views have only a single animated style and it remains unchanged\n const hasOneSameStyle =\n styles.length === 1 &&\n prevStyles.length === 1 &&\n isSameAnimatedStyle(styles[0], prevStyles[0]);\n\n if (!hasOneSameStyle) {\n // otherwise, remove each style that is not present in new styles\n for (const prevStyle of prevStyles) {\n const isPresent = styles.some((style) =>\n isSameAnimatedStyle(style, prevStyle)\n );\n if (!isPresent) {\n prevStyle.viewDescriptors.remove(viewTag);\n }\n }\n }\n }\n\n styles.forEach((style) => {\n style.viewDescriptors.add({\n tag: viewTag,\n name: viewName,\n shadowNodeWrapper,\n });\n if (isJest()) {\n /**\n * We need to connect Jest's TestObject instance whose contains just props object\n * with the updateProps() function where we update the properties of the component.\n * We can't update props object directly because TestObject contains a copy of props - look at render function:\n * const props = this._filterNonAnimatedProps(this.props);\n */\n this.animatedStyle.value = {\n ...this.animatedStyle.value,\n ...style.initial.value,\n };\n style.animatedStyle.current = this.animatedStyle;\n }\n });\n\n // detach old animatedProps\n if (\n prevAnimatedProps &&\n !isSameAnimatedProps(prevAnimatedProps, this.props.animatedProps)\n ) {\n prevAnimatedProps.viewDescriptors!.remove(viewTag as number);\n }\n\n // attach animatedProps property\n if (this.props.animatedProps?.viewDescriptors) {\n this.props.animatedProps.viewDescriptors.add({\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n tag: viewTag!,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n name: viewName!,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n shadowNodeWrapper: shadowNodeWrapper!,\n });\n }\n }\n\n _attachInlineProps() {\n const newInlineProps: Record<string, any> =\n extractSharedValuesMapFromProps(this.props);\n const hasChanged = inlinePropsHasChanged(\n newInlineProps,\n this._inlineProps\n );\n\n if (hasChanged) {\n if (!this._inlinePropsViewDescriptors) {\n this._inlinePropsViewDescriptors = makeViewDescriptorsSet();\n\n const { viewTag, viewName, shadowNodeWrapper, viewConfig } =\n this._getViewInfo();\n\n if (Object.keys(newInlineProps).length && viewConfig) {\n adaptViewConfig(viewConfig);\n }\n\n this._inlinePropsViewDescriptors.add({\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n tag: viewTag!,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n name: viewName!,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n shadowNodeWrapper: shadowNodeWrapper!,\n });\n }\n const sharableViewDescriptors =\n this._inlinePropsViewDescriptors.sharableViewDescriptors;\n\n const maybeViewRef = NativeReanimatedModule.native\n ? undefined\n : ({ items: new Set([this]) } as ViewRefSet<any>); // see makeViewsRefSet\n\n const updaterFunction = () => {\n 'worklet';\n const update = getInlinePropsUpdate(newInlineProps);\n updateProps(sharableViewDescriptors, update, maybeViewRef);\n };\n this._inlineProps = newInlineProps;\n if (this._inlinePropsMapperId) {\n stopMapper(this._inlinePropsMapperId);\n }\n this._inlinePropsMapperId = null;\n if (Object.keys(newInlineProps).length) {\n this._inlinePropsMapperId = startMapper(\n updaterFunction,\n Object.values(newInlineProps)\n );\n }\n }\n }\n\n _detachInlineProps() {\n if (this._inlinePropsMapperId) {\n stopMapper(this._inlinePropsMapperId);\n }\n }\n\n componentDidUpdate(\n prevProps: AnimatedComponentProps<InitialComponentProps>\n ) {\n this._reattachNativeEvents(prevProps);\n this._attachAnimatedStyles();\n this._attachInlineProps();\n }\n\n _setComponentRef = setAndForwardRef<Component>({\n getForwardedRef: () =>\n this.props.forwardedRef as MutableRefObject<\n Component<Record<string, unknown>, Record<string, unknown>, unknown>\n >,\n setLocalRef: (ref) => {\n // TODO update config\n const tag = findNodeHandle(ref);\n const { layout, entering, exiting, sharedTransitionTag } = this.props;\n if (\n (layout || entering || exiting || sharedTransitionTag) &&\n tag != null\n ) {\n if (!shouldBeUseWeb()) {\n enableLayoutAnimations(true, false);\n }\n if (layout) {\n configureLayoutAnimations(\n tag,\n LayoutAnimationType.LAYOUT,\n maybeBuild(layout)\n );\n }\n if (entering) {\n configureLayoutAnimations(\n tag,\n LayoutAnimationType.ENTERING,\n maybeBuild(entering)\n );\n }\n if (exiting) {\n configureLayoutAnimations(\n tag,\n LayoutAnimationType.EXITING,\n maybeBuild(exiting)\n );\n }\n if (sharedTransitionTag) {\n const sharedElementTransition =\n this.props.sharedTransitionStyle ?? new SharedTransition();\n sharedElementTransition.registerTransition(\n tag,\n sharedTransitionTag\n );\n this._sharedElementTransition = sharedElementTransition;\n }\n }\n\n if (ref !== this._component) {\n this._component = ref;\n }\n },\n });\n\n _filterNonAnimatedProps(\n inputProps: AnimatedComponentProps<InitialComponentProps>\n ): Record<string, unknown> {\n const props: Record<string, unknown> = {};\n for (const key in inputProps) {\n const value = inputProps[key];\n if (key === 'style') {\n const styleProp = inputProps.style;\n const styles = flattenArray<StyleProps>(styleProp ?? []);\n const processedStyle: StyleProps = styles.map((style) => {\n if (style && style.viewDescriptors) {\n // this is how we recognize styles returned by useAnimatedStyle\n style.viewsRef.add(this);\n if (this._isFirstRender) {\n this.initialStyle = {\n ...style.initial.value,\n ...this.initialStyle,\n ...initialUpdaterRun<StyleProps>(style.initial.updater),\n };\n }\n return this.initialStyle;\n } else if (hasInlineStyles(style)) {\n if (this._isFirstRender) {\n return getInlinePropsUpdate(style);\n }\n const newStyle: StyleProps = {};\n for (const [key, styleValue] of Object.entries(style)) {\n if (\n !isSharedValue(styleValue) &&\n !(key === 'transform' && isInlineStyleTransform(styleValue))\n ) {\n newStyle[key] = styleValue;\n }\n }\n return newStyle;\n } else {\n return style;\n }\n });\n props[key] = StyleSheet.flatten(processedStyle);\n } else if (key === 'animatedProps') {\n const animatedProp = inputProps.animatedProps as Partial<\n AnimatedComponentProps<AnimatedProps>\n >;\n if (animatedProp.initial !== undefined) {\n Object.keys(animatedProp.initial.value).forEach((key) => {\n props[key] = animatedProp.initial?.value[key];\n animatedProp.viewsRef?.add(this);\n });\n }\n } else if (\n has('current', value) &&\n value.current instanceof WorkletEventHandler\n ) {\n if (value.current.eventNames.length > 0) {\n value.current.eventNames.forEach((eventName) => {\n props[eventName] = has('listeners', value.current)\n ? (value.current.listeners as Record<string, unknown>)[\n eventName\n ]\n : dummyListener;\n });\n } else {\n props[key] = dummyListener;\n }\n } else if (isSharedValue(value)) {\n if (this._isFirstRender) {\n props[key] = (value as SharedValue<any>).value;\n }\n } else if (\n key !== 'onGestureHandlerStateChange' ||\n !isChromeDebugger()\n ) {\n props[key] = value;\n }\n }\n return props;\n }\n\n render() {\n const props = this._filterNonAnimatedProps(this.props);\n if (isJest()) {\n props.animatedStyle = this.animatedStyle;\n }\n\n if (this._isFirstRender) {\n this._isFirstRender = false;\n }\n\n const platformProps = Platform.select({\n web: {},\n default: { collapsable: false },\n });\n return (\n <Component {...props} ref={this._setComponentRef} {...platformProps} />\n );\n }\n }\n\n AnimatedComponent.displayName = `AnimatedComponent(${\n Component.displayName || Component.name || 'Component'\n })`;\n\n return React.forwardRef<Component>((props, ref) => {\n return (\n <AnimatedComponent\n {...props}\n {...(ref === null ? null : { forwardedRef: ref })}\n />\n );\n });\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","findNodeHandle","Platform","StyleSheet","WorkletEventHandler","setAndForwardRef","invariant","adaptViewConfig","RNRenderer","configureLayoutAnimations","enableLayoutAnimations","startMapper","stopMapper","isJest","isChromeDebugger","shouldBeUseWeb","isWeb","initialUpdaterRun","SharedTransition","LayoutAnimationType","makeViewDescriptorsSet","getShadowNodeWrapperFromRef","updateProps","NativeReanimatedModule","isSharedValue","removeFromPropsRegistry","dummyListener","maybeBuild","layoutAnimationOrBuilder","isAnimationBuilder","value","build","flattenArray","array","Array","isArray","resultArr","_flattenArray","arr","forEach","item","push","onlyAnimatedStyles","styles","filter","style","viewDescriptors","isSameAnimatedStyle","style1","style2","viewsRef","isSameAnimatedProps","has","key","x","undefined","isInlineStyleTransform","transform","some","t","hasInlineStyles","Object","keys","styleValue","extractSharedValuesMapFromProps","props","inlineProps","entries","inlinePropsHasChanged","styles1","styles2","length","getInlinePropsUpdate","update","map","createAnimatedComponent","Component","options","prototype","isReactComponent","name","AnimatedComponent","constructor","_defineProperty","getForwardedRef","forwardedRef","setLocalRef","ref","tag","layout","entering","exiting","sharedTransitionTag","LAYOUT","ENTERING","EXITING","sharedElementTransition","sharedTransitionStyle","registerTransition","_sharedElementTransition","_component","animatedStyle","componentWillUnmount","_this$_sharedElementT","_detachNativeEvents","_detachStyles","_detachInlineProps","unregisterTransition","_viewTag","componentDidMount","_attachNativeEvents","_attachAnimatedStyles","_attachInlineProps","_getEventViewRef","_this$_component","getScrollableNode","node","viewTag","prop","current","setNativeProps","registerForEvents","unregisterFromEvents","_styles","remove","_this$props$animatedP","animatedProps","global","_IS_FABRIC","_reattachNativeEvents","prevProps","reattachNeeded","_updateFromNative","_this$_component2","_this$_component2$set","call","_getViewInfo","_this$_component3","viewName","shadowNodeWrapper","viewConfig","component","getAnimatableRef","_hostInstance$viewCon","hostInstance","findHostInstance_DEPRECATED","Error","_nativeTag","uiViewClassName","_this$props$animatedP2","_this$props$animatedP3","prevStyles","prevAnimatedProps","_animatedProps","hasReanimated2Props","hasOneSameStyle","prevStyle","isPresent","add","initial","newInlineProps","hasChanged","_inlineProps","_inlinePropsViewDescriptors","sharableViewDescriptors","maybeViewRef","native","items","Set","updaterFunction","_inlinePropsMapperId","values","componentDidUpdate","_filterNonAnimatedProps","inputProps","styleProp","processedStyle","_isFirstRender","initialStyle","updater","newStyle","flatten","animatedProp","_animatedProp$initial","_animatedProp$viewsRe","eventNames","eventName","listeners","render","platformProps","select","web","default","collapsable","createElement","_extends","_setComponentRef","displayName","forwardRef"],"sources":["createAnimatedComponent.tsx"],"sourcesContent":["import type {\n Component,\n ComponentClass,\n ComponentType,\n FunctionComponent,\n MutableRefObject,\n Ref,\n} from 'react';\nimport React from 'react';\nimport { findNodeHandle, Platform, StyleSheet } from 'react-native';\nimport WorkletEventHandler from './reanimated2/WorkletEventHandler';\nimport setAndForwardRef from './setAndForwardRef';\nimport './reanimated2/layoutReanimation/animationsManager';\nimport invariant from 'invariant';\nimport { adaptViewConfig } from './ConfigHelper';\nimport { RNRenderer } from './reanimated2/platform-specific/RNRenderer';\nimport {\n configureLayoutAnimations,\n enableLayoutAnimations,\n startMapper,\n stopMapper,\n} from './reanimated2/core';\nimport {\n isJest,\n isChromeDebugger,\n shouldBeUseWeb,\n isWeb,\n} from './reanimated2/PlatformChecker';\nimport { initialUpdaterRun } from './reanimated2/animation';\nimport type {\n BaseAnimationBuilder,\n EntryExitAnimationFunction,\n ILayoutAnimationBuilder,\n LayoutAnimationFunction,\n} from './reanimated2/layoutReanimation';\nimport {\n SharedTransition,\n LayoutAnimationType,\n} from './reanimated2/layoutReanimation';\nimport type {\n SharedValue,\n StyleProps,\n ShadowNodeWrapper,\n} from './reanimated2/commonTypes';\nimport type {\n ViewDescriptorsSet,\n ViewRefSet,\n} from './reanimated2/ViewDescriptorsSet';\nimport { makeViewDescriptorsSet } from './reanimated2/ViewDescriptorsSet';\nimport { getShadowNodeWrapperFromRef } from './reanimated2/fabricUtils';\nimport updateProps from './reanimated2/UpdateProps';\nimport NativeReanimatedModule from './reanimated2/NativeReanimated';\nimport { isSharedValue } from './reanimated2';\nimport type { AnimateProps } from './reanimated2/helperTypes';\nimport { removeFromPropsRegistry } from './reanimated2/PropsRegistry';\n\nfunction dummyListener() {\n // empty listener we use to assign to listener properties for which animated\n // event is used.\n}\n\nfunction maybeBuild(\n layoutAnimationOrBuilder:\n | ILayoutAnimationBuilder\n | LayoutAnimationFunction\n | Keyframe\n): LayoutAnimationFunction | Keyframe {\n const isAnimationBuilder = (\n value: ILayoutAnimationBuilder | LayoutAnimationFunction | Keyframe\n ): value is ILayoutAnimationBuilder =>\n 'build' in layoutAnimationOrBuilder &&\n typeof layoutAnimationOrBuilder.build === 'function';\n\n if (isAnimationBuilder(layoutAnimationOrBuilder)) {\n return layoutAnimationOrBuilder.build();\n } else {\n return layoutAnimationOrBuilder;\n }\n}\n\ntype NestedArray<T> = T | NestedArray<T>[];\nfunction flattenArray<T>(array: NestedArray<T>): T[] {\n if (!Array.isArray(array)) {\n return [array];\n }\n const resultArr: T[] = [];\n\n const _flattenArray = (arr: NestedArray<T>[]): void => {\n arr.forEach((item) => {\n if (Array.isArray(item)) {\n _flattenArray(item);\n } else {\n resultArr.push(item);\n }\n });\n };\n _flattenArray(array);\n return resultArr;\n}\n\nfunction onlyAnimatedStyles(styles: StyleProps[]) {\n return styles.filter((style) => style?.viewDescriptors);\n}\n\nfunction isSameAnimatedStyle(\n style1?: StyleProps,\n style2?: StyleProps\n): boolean {\n // We cannot use equality check to compare useAnimatedStyle outputs directly.\n // Instead, we can compare its viewsRefs.\n return style1?.viewsRef === style2?.viewsRef;\n}\n\nconst isSameAnimatedProps = isSameAnimatedStyle;\n\nconst has = <K extends string>(\n key: K,\n x: unknown\n): x is { [key in K]: unknown } => {\n if (typeof x === 'function' || typeof x === 'object') {\n if (x === null || x === undefined) {\n return false;\n } else {\n return key in x;\n }\n }\n return false;\n};\n\nfunction isInlineStyleTransform(transform: any): boolean {\n if (!transform) {\n return false;\n }\n return transform.some((t: Record<string, any>) => hasInlineStyles(t));\n}\n\nfunction hasInlineStyles(style: StyleProps): boolean {\n if (!style) {\n return false;\n }\n return Object.keys(style).some((key) => {\n const styleValue = style[key];\n return (\n isSharedValue(styleValue) ||\n (key === 'transform' && isInlineStyleTransform(styleValue))\n );\n });\n}\n\nfunction extractSharedValuesMapFromProps(\n props: AnimatedComponentProps<InitialComponentProps>\n): Record<string, any> {\n const inlineProps: Record<string, any> = {};\n\n for (const key in props) {\n const value = props[key];\n if (key === 'style') {\n const styles = flattenArray<StyleProps>(props.style ?? []);\n styles.forEach((style) => {\n if (!style) {\n return;\n }\n for (const [key, styleValue] of Object.entries(style)) {\n if (isSharedValue(styleValue)) {\n inlineProps[key] = styleValue;\n } else if (\n key === 'transform' &&\n isInlineStyleTransform(styleValue)\n ) {\n inlineProps[key] = styleValue;\n }\n }\n });\n } else if (isSharedValue(value)) {\n inlineProps[key] = value;\n }\n }\n\n return inlineProps;\n}\n\nfunction inlinePropsHasChanged(styles1: StyleProps, styles2: StyleProps) {\n if (Object.keys(styles1).length !== Object.keys(styles2).length) {\n return true;\n }\n\n for (const key of Object.keys(styles1)) {\n if (styles1[key] !== styles2[key]) return true;\n }\n\n return false;\n}\n\nfunction getInlinePropsUpdate(inlineProps: Record<string, any>) {\n 'worklet';\n const update: Record<string, any> = {};\n for (const [key, styleValue] of Object.entries(inlineProps)) {\n if (key === 'transform') {\n update[key] = styleValue.map((transform: Record<string, any>) => {\n return getInlinePropsUpdate(transform);\n });\n } else if (isSharedValue(styleValue)) {\n update[key] = styleValue.value;\n } else {\n update[key] = styleValue;\n }\n }\n return update;\n}\n\ninterface AnimatedProps extends Record<string, unknown> {\n viewDescriptors?: ViewDescriptorsSet;\n viewsRef?: ViewRefSet<unknown>;\n initial?: SharedValue<StyleProps>;\n}\n\ntype AnimatedComponentProps<P extends Record<string, unknown>> = P & {\n forwardedRef?: Ref<Component>;\n style?: NestedArray<StyleProps>;\n animatedProps?: Partial<AnimatedComponentProps<AnimatedProps>>;\n animatedStyle?: StyleProps;\n layout?:\n | BaseAnimationBuilder\n | ILayoutAnimationBuilder\n | typeof BaseAnimationBuilder;\n entering?:\n | BaseAnimationBuilder\n | typeof BaseAnimationBuilder\n | EntryExitAnimationFunction\n | Keyframe;\n exiting?:\n | BaseAnimationBuilder\n | typeof BaseAnimationBuilder\n | EntryExitAnimationFunction\n | Keyframe;\n sharedTransitionTag?: string;\n sharedTransitionStyle?: SharedTransition;\n};\n\ntype Options<P> = {\n setNativeProps: (ref: ComponentRef, props: P) => void;\n};\n\ninterface ComponentRef extends Component {\n setNativeProps?: (props: Record<string, unknown>) => void;\n getScrollableNode?: () => ComponentRef;\n getAnimatableRef?: () => ComponentRef;\n}\n\ninterface InitialComponentProps extends Record<string, unknown> {\n ref?: Ref<Component>;\n collapsable?: boolean;\n}\n\nexport default function createAnimatedComponent<P extends object>(\n component: FunctionComponent<P>,\n options?: Options<P>\n): FunctionComponent<AnimateProps<P>>;\n\nexport default function createAnimatedComponent<P extends object>(\n component: ComponentClass<P>,\n options?: Options<P>\n): ComponentClass<AnimateProps<P>>;\n\nexport default function createAnimatedComponent(\n Component: ComponentType<InitialComponentProps>,\n options?: Options<InitialComponentProps>\n): any {\n invariant(\n typeof Component !== 'function' ||\n (Component.prototype && Component.prototype.isReactComponent),\n `Looks like you're passing a function component \\`${Component.name}\\` to \\`createAnimatedComponent\\` function which supports only class components. Please wrap your function component with \\`React.forwardRef()\\` or use a class component instead.`\n );\n\n class AnimatedComponent extends React.Component<\n AnimatedComponentProps<InitialComponentProps>\n > {\n _styles: StyleProps[] | null = null;\n _animatedProps?: Partial<AnimatedComponentProps<AnimatedProps>>;\n _viewTag = -1;\n _isFirstRender = true;\n animatedStyle: { value: StyleProps } = { value: {} };\n initialStyle = {};\n _component: ComponentRef | null = null;\n _inlinePropsViewDescriptors: ViewDescriptorsSet | null = null;\n _inlinePropsMapperId: number | null = null;\n _inlineProps: StyleProps = {};\n _sharedElementTransition: SharedTransition | null = null;\n static displayName: string;\n\n constructor(props: AnimatedComponentProps<InitialComponentProps>) {\n super(props);\n if (isJest()) {\n this.animatedStyle = { value: {} };\n }\n }\n\n componentWillUnmount() {\n this._detachNativeEvents();\n this._detachStyles();\n this._detachInlineProps();\n this._sharedElementTransition?.unregisterTransition(this._viewTag);\n }\n\n componentDidMount() {\n this._attachNativeEvents();\n this._attachAnimatedStyles();\n this._attachInlineProps();\n }\n\n _getEventViewRef() {\n // Make sure to get the scrollable node for components that implement\n // `ScrollResponder.Mixin`.\n return this._component?.getScrollableNode\n ? this._component.getScrollableNode()\n : this._component;\n }\n\n _attachNativeEvents() {\n const node = this._getEventViewRef();\n let viewTag = null; // We set it only if needed\n\n for (const key in this.props) {\n const prop = this.props[key];\n if (\n has('current', prop) &&\n prop.current instanceof WorkletEventHandler\n ) {\n if (viewTag === null) {\n viewTag = findNodeHandle(options?.setNativeProps ? this : node);\n }\n prop.current.registerForEvents(viewTag as number, key);\n }\n }\n }\n\n _detachNativeEvents() {\n for (const key in this.props) {\n const prop = this.props[key];\n if (\n has('current', prop) &&\n prop.current instanceof WorkletEventHandler\n ) {\n prop.current.unregisterFromEvents();\n }\n }\n }\n\n _detachStyles() {\n if (isWeb() && this._styles !== null) {\n for (const style of this._styles) {\n if (style?.viewsRef) {\n style.viewsRef.remove(this);\n }\n }\n } else if (this._viewTag !== -1 && this._styles !== null) {\n for (const style of this._styles) {\n style.viewDescriptors.remove(this._viewTag);\n }\n if (this.props.animatedProps?.viewDescriptors) {\n this.props.animatedProps.viewDescriptors.remove(this._viewTag);\n }\n if (global._IS_FABRIC) {\n removeFromPropsRegistry(this._viewTag);\n }\n }\n }\n\n _reattachNativeEvents(\n prevProps: AnimatedComponentProps<InitialComponentProps>\n ) {\n for (const key in prevProps) {\n const prop = this.props[key];\n if (\n has('current', prop) &&\n prop.current instanceof WorkletEventHandler &&\n prop.current.reattachNeeded\n ) {\n prop.current.unregisterFromEvents();\n }\n }\n\n let viewTag = null;\n\n for (const key in this.props) {\n const prop = this.props[key];\n if (\n has('current', prop) &&\n prop.current instanceof WorkletEventHandler &&\n prop.current.reattachNeeded\n ) {\n if (viewTag === null) {\n const node = this._getEventViewRef();\n viewTag = findNodeHandle(options?.setNativeProps ? this : node);\n }\n prop.current.registerForEvents(viewTag as number, key);\n prop.current.reattachNeeded = false;\n }\n }\n }\n\n _updateFromNative(props: StyleProps) {\n if (options?.setNativeProps) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n options.setNativeProps(this._component!, props);\n } else {\n // eslint-disable-next-line no-unused-expressions\n this._component?.setNativeProps?.(props);\n }\n }\n\n _getViewInfo() {\n let viewTag: number | null;\n let viewName: string | null;\n let shadowNodeWrapper: ShadowNodeWrapper | null = null;\n let viewConfig;\n // Component can specify ref which should be animated when animated version of the component is created.\n // Otherwise, we animate the component itself.\n const component = this._component?.getAnimatableRef\n ? this._component.getAnimatableRef()\n : this;\n if (isWeb()) {\n viewTag = findNodeHandle(component);\n viewName = null;\n shadowNodeWrapper = null;\n viewConfig = null;\n } else {\n // hostInstance can be null for a component that doesn't render anything (render function returns null). Example: svg Stop: https://github.com/react-native-svg/react-native-svg/blob/develop/src/elements/Stop.tsx\n const hostInstance = RNRenderer.findHostInstance_DEPRECATED(component);\n if (!hostInstance) {\n throw new Error(\n 'Cannot find host instance for this component. Maybe it renders nothing?'\n );\n }\n // we can access view tag in the same way it's accessed here https://github.com/facebook/react/blob/e3f4eb7272d4ca0ee49f27577156b57eeb07cf73/packages/react-native-renderer/src/ReactFabric.js#L146\n viewTag = hostInstance?._nativeTag;\n /**\n * RN uses viewConfig for components for storing different properties of the component(example: https://github.com/facebook/react-native/blob/master/Libraries/Components/ScrollView/ScrollViewViewConfig.js#L16).\n * The name we're looking for is in the field named uiViewClassName.\n */\n viewName = hostInstance?.viewConfig?.uiViewClassName;\n\n viewConfig = hostInstance?.viewConfig;\n\n if (global._IS_FABRIC) {\n shadowNodeWrapper = getShadowNodeWrapperFromRef(this);\n }\n }\n return { viewTag, viewName, shadowNodeWrapper, viewConfig };\n }\n\n _attachAnimatedStyles() {\n const styles = this.props.style\n ? onlyAnimatedStyles(flattenArray<StyleProps>(this.props.style))\n : [];\n const prevStyles = this._styles;\n this._styles = styles;\n\n const prevAnimatedProps = this._animatedProps;\n this._animatedProps = this.props.animatedProps;\n\n const { viewTag, viewName, shadowNodeWrapper, viewConfig } =\n this._getViewInfo();\n\n // update UI props whitelist for this view\n const hasReanimated2Props =\n this.props.animatedProps?.viewDescriptors || styles.length;\n if (hasReanimated2Props && viewConfig) {\n adaptViewConfig(viewConfig);\n }\n\n this._viewTag = viewTag as number;\n\n // remove old styles\n if (prevStyles) {\n // in most of the cases, views have only a single animated style and it remains unchanged\n const hasOneSameStyle =\n styles.length === 1 &&\n prevStyles.length === 1 &&\n isSameAnimatedStyle(styles[0], prevStyles[0]);\n\n if (!hasOneSameStyle) {\n // otherwise, remove each style that is not present in new styles\n for (const prevStyle of prevStyles) {\n const isPresent = styles.some((style) =>\n isSameAnimatedStyle(style, prevStyle)\n );\n if (!isPresent) {\n prevStyle.viewDescriptors.remove(viewTag);\n }\n }\n }\n }\n\n styles.forEach((style) => {\n style.viewDescriptors.add({\n tag: viewTag,\n name: viewName,\n shadowNodeWrapper,\n });\n if (isJest()) {\n /**\n * We need to connect Jest's TestObject instance whose contains just props object\n * with the updateProps() function where we update the properties of the component.\n * We can't update props object directly because TestObject contains a copy of props - look at render function:\n * const props = this._filterNonAnimatedProps(this.props);\n */\n this.animatedStyle.value = {\n ...this.animatedStyle.value,\n ...style.initial.value,\n };\n style.animatedStyle.current = this.animatedStyle;\n }\n });\n\n // detach old animatedProps\n if (\n prevAnimatedProps &&\n !isSameAnimatedProps(prevAnimatedProps, this.props.animatedProps)\n ) {\n prevAnimatedProps.viewDescriptors!.remove(viewTag as number);\n }\n\n // attach animatedProps property\n if (this.props.animatedProps?.viewDescriptors) {\n this.props.animatedProps.viewDescriptors.add({\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n tag: viewTag!,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n name: viewName!,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n shadowNodeWrapper: shadowNodeWrapper!,\n });\n }\n }\n\n _attachInlineProps() {\n const newInlineProps: Record<string, any> =\n extractSharedValuesMapFromProps(this.props);\n const hasChanged = inlinePropsHasChanged(\n newInlineProps,\n this._inlineProps\n );\n\n if (hasChanged) {\n if (!this._inlinePropsViewDescriptors) {\n this._inlinePropsViewDescriptors = makeViewDescriptorsSet();\n\n const { viewTag, viewName, shadowNodeWrapper, viewConfig } =\n this._getViewInfo();\n\n if (Object.keys(newInlineProps).length && viewConfig) {\n adaptViewConfig(viewConfig);\n }\n\n this._inlinePropsViewDescriptors.add({\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n tag: viewTag!,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n name: viewName!,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n shadowNodeWrapper: shadowNodeWrapper!,\n });\n }\n const sharableViewDescriptors =\n this._inlinePropsViewDescriptors.sharableViewDescriptors;\n\n const maybeViewRef = NativeReanimatedModule.native\n ? undefined\n : ({ items: new Set([this]) } as ViewRefSet<any>); // see makeViewsRefSet\n\n const updaterFunction = () => {\n 'worklet';\n const update = getInlinePropsUpdate(newInlineProps);\n updateProps(sharableViewDescriptors, update, maybeViewRef);\n };\n this._inlineProps = newInlineProps;\n if (this._inlinePropsMapperId) {\n stopMapper(this._inlinePropsMapperId);\n }\n this._inlinePropsMapperId = null;\n if (Object.keys(newInlineProps).length) {\n this._inlinePropsMapperId = startMapper(\n updaterFunction,\n Object.values(newInlineProps)\n );\n }\n }\n }\n\n _detachInlineProps() {\n if (this._inlinePropsMapperId) {\n stopMapper(this._inlinePropsMapperId);\n }\n }\n\n componentDidUpdate(\n prevProps: AnimatedComponentProps<InitialComponentProps>\n ) {\n this._reattachNativeEvents(prevProps);\n this._attachAnimatedStyles();\n this._attachInlineProps();\n }\n\n _setComponentRef = setAndForwardRef<Component>({\n getForwardedRef: () =>\n this.props.forwardedRef as MutableRefObject<\n Component<Record<string, unknown>, Record<string, unknown>, unknown>\n >,\n setLocalRef: (ref) => {\n // TODO update config\n const tag = findNodeHandle(ref);\n const { layout, entering, exiting, sharedTransitionTag } = this.props;\n if (\n (layout || entering || exiting || sharedTransitionTag) &&\n tag != null\n ) {\n if (!shouldBeUseWeb()) {\n enableLayoutAnimations(true, false);\n }\n if (layout) {\n configureLayoutAnimations(\n tag,\n LayoutAnimationType.LAYOUT,\n maybeBuild(layout)\n );\n }\n if (entering) {\n configureLayoutAnimations(\n tag,\n LayoutAnimationType.ENTERING,\n maybeBuild(entering)\n );\n }\n if (exiting) {\n configureLayoutAnimations(\n tag,\n LayoutAnimationType.EXITING,\n maybeBuild(exiting)\n );\n }\n if (sharedTransitionTag) {\n const sharedElementTransition =\n this.props.sharedTransitionStyle ?? new SharedTransition();\n sharedElementTransition.registerTransition(\n tag,\n sharedTransitionTag\n );\n this._sharedElementTransition = sharedElementTransition;\n }\n }\n\n if (ref !== this._component) {\n this._component = ref;\n }\n },\n });\n\n _filterNonAnimatedProps(\n inputProps: AnimatedComponentProps<InitialComponentProps>\n ): Record<string, unknown> {\n const props: Record<string, unknown> = {};\n for (const key in inputProps) {\n const value = inputProps[key];\n if (key === 'style') {\n const styleProp = inputProps.style;\n const styles = flattenArray<StyleProps>(styleProp ?? []);\n const processedStyle: StyleProps = styles.map((style) => {\n if (style && style.viewDescriptors) {\n // this is how we recognize styles returned by useAnimatedStyle\n style.viewsRef.add(this);\n if (this._isFirstRender) {\n this.initialStyle = {\n ...style.initial.value,\n ...this.initialStyle,\n ...initialUpdaterRun<StyleProps>(style.initial.updater),\n };\n }\n return this.initialStyle;\n } else if (hasInlineStyles(style)) {\n if (this._isFirstRender) {\n return getInlinePropsUpdate(style);\n }\n const newStyle: StyleProps = {};\n for (const [key, styleValue] of Object.entries(style)) {\n if (\n !isSharedValue(styleValue) &&\n !(key === 'transform' && isInlineStyleTransform(styleValue))\n ) {\n newStyle[key] = styleValue;\n }\n }\n return newStyle;\n } else {\n return style;\n }\n });\n props[key] = StyleSheet.flatten(processedStyle);\n } else if (key === 'animatedProps') {\n const animatedProp = inputProps.animatedProps as Partial<\n AnimatedComponentProps<AnimatedProps>\n >;\n if (animatedProp.initial !== undefined) {\n Object.keys(animatedProp.initial.value).forEach((key) => {\n props[key] = animatedProp.initial?.value[key];\n animatedProp.viewsRef?.add(this);\n });\n }\n } else if (\n has('current', value) &&\n value.current instanceof WorkletEventHandler\n ) {\n if (value.current.eventNames.length > 0) {\n value.current.eventNames.forEach((eventName) => {\n props[eventName] = has('listeners', value.current)\n ? (value.current.listeners as Record<string, unknown>)[\n eventName\n ]\n : dummyListener;\n });\n } else {\n props[key] = dummyListener;\n }\n } else if (isSharedValue(value)) {\n if (this._isFirstRender) {\n props[key] = (value as SharedValue<any>).value;\n }\n } else if (\n key !== 'onGestureHandlerStateChange' ||\n !isChromeDebugger()\n ) {\n props[key] = value;\n }\n }\n return props;\n }\n\n render() {\n const props = this._filterNonAnimatedProps(this.props);\n if (isJest()) {\n props.animatedStyle = this.animatedStyle;\n }\n\n if (this._isFirstRender) {\n this._isFirstRender = false;\n }\n\n const platformProps = Platform.select({\n web: {},\n default: { collapsable: false },\n });\n return (\n <Component {...props} ref={this._setComponentRef} {...platformProps} />\n );\n }\n }\n\n AnimatedComponent.displayName = `AnimatedComponent(${\n Component.displayName || Component.name || 'Component'\n })`;\n\n return React.forwardRef<Component>((props, ref) => {\n return (\n <AnimatedComponent\n {...props}\n {...(ref === null ? null : { forwardedRef: ref })}\n />\n );\n });\n}\n"],"mappings":"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"}
@@ -46,6 +46,14 @@ import { Bezier } from './Bezier';
46
46
  * - [`out`](docs/easing.html#out) runs an easing function backwards
47
47
  */
48
48
 
49
+ /**
50
+ * @deprecated Please use `EasingFunction` type instead.
51
+ */
52
+
53
+ /**
54
+ * @deprecated Please use `EasingFunctionFactory` type instead.
55
+ */
56
+
49
57
  /**
50
58
  * A linear function, `f(t) = t`. Position correlates to elapsed time one to
51
59
  * one.
@@ -1 +1 @@
1
- {"version":3,"names":["Bezier","linear","t","ease","quad","cubic","poly","n","Math","pow","sin","cos","PI","circle","sqrt","exp","elastic","bounciness","arguments","length","undefined","p","back","s","bounce","t2","bezier","x1","y1","x2","y2","factory","bezierFn","in_","easing","out","inOut","steps","roundToNextStep","value","min","max","ceil","floor","EasingObject","in","Easing"],"sources":["Easing.ts"],"sourcesContent":["import { Bezier } from './Bezier';\n\n/**\n * The `Easing` module implements common easing functions. This module is used\n * by [Animate.timing()](docs/animate.html#timing) to convey physically\n * believable motion in animations.\n *\n * You can find a visualization of some common easing functions at\n * http://easings.net/\n *\n * ### Predefined animations\n *\n * The `Easing` module provides several predefined animations through the\n * following methods:\n *\n * - [`back`](docs/easing.html#back) provides a simple animation where the\n * object goes slightly back before moving forward\n * - [`bounce`](docs/easing.html#bounce) provides a bouncing animation\n * - [`ease`](docs/easing.html#ease) provides a simple inertial animation\n * - [`elastic`](docs/easing.html#elastic) provides a simple spring interaction\n *\n * ### Standard functions\n *\n * Three standard easing functions are provided:\n *\n * - [`linear`](docs/easing.html#linear)\n * - [`quad`](docs/easing.html#quad)\n * - [`cubic`](docs/easing.html#cubic)\n *\n * The [`poly`](docs/easing.html#poly) function can be used to implement\n * quartic, quintic, and other higher power functions.\n *\n * ### Additional functions\n *\n * Additional mathematical functions are provided by the following methods:\n *\n * - [`bezier`](docs/easing.html#bezier) provides a cubic bezier curve\n * - [`circle`](docs/easing.html#circle) provides a circular function\n * - [`sin`](docs/easing.html#sin) provides a sinusoidal function\n * - [`exp`](docs/easing.html#exp) provides an exponential function\n *\n * The following helpers are used to modify other easing functions.\n *\n * - [`in`](docs/easing.html#in) runs an easing function forwards\n * - [`inOut`](docs/easing.html#inout) makes any easing function symmetrical\n * - [`out`](docs/easing.html#out) runs an easing function backwards\n */\n\nexport type EasingFn = (t: number) => number;\n\nexport type EasingFactoryFn = { factory: () => EasingFn };\n/**\n * A linear function, `f(t) = t`. Position correlates to elapsed time one to\n * one.\n *\n * http://cubic-bezier.com/#0,0,1,1\n */\nfunction linear(t: number): number {\n 'worklet';\n return t;\n}\n\n/**\n * A simple inertial interaction, similar to an object slowly accelerating to\n * speed.\n *\n * http://cubic-bezier.com/#.42,0,1,1\n */\nfunction ease(t: number): number {\n 'worklet';\n return Bezier(0.42, 0, 1, 1)(t);\n}\n\n/**\n * A quadratic function, `f(t) = t * t`. Position equals the square of elapsed\n * time.\n *\n * http://easings.net/#easeInQuad\n */\nfunction quad(t: number): number {\n 'worklet';\n return t * t;\n}\n\n/**\n * A cubic function, `f(t) = t * t * t`. Position equals the cube of elapsed\n * time.\n *\n * http://easings.net/#easeInCubic\n */\nfunction cubic(t: number): number {\n 'worklet';\n return t * t * t;\n}\n\n/**\n * A power function. Position is equal to the Nth power of elapsed time.\n *\n * n = 4: http://easings.net/#easeInQuart\n * n = 5: http://easings.net/#easeInQuint\n */\nfunction poly(n: number): EasingFn {\n 'worklet';\n return (t) => {\n 'worklet';\n return Math.pow(t, n);\n };\n}\n\n/**\n * A sinusoidal function.\n *\n * http://easings.net/#easeInSine\n */\nfunction sin(t: number): number {\n 'worklet';\n return 1 - Math.cos((t * Math.PI) / 2);\n}\n\n/**\n * A circular function.\n *\n * http://easings.net/#easeInCirc\n */\nfunction circle(t: number): number {\n 'worklet';\n return 1 - Math.sqrt(1 - t * t);\n}\n\n/**\n * An exponential function.\n *\n * http://easings.net/#easeInExpo\n */\nfunction exp(t: number): number {\n 'worklet';\n return Math.pow(2, 10 * (t - 1));\n}\n\n/**\n * A simple elastic interaction, similar to a spring oscillating back and\n * forth.\n *\n * Default bounciness is 1, which overshoots a little bit once. 0 bounciness\n * doesn't overshoot at all, and bounciness of N > 1 will overshoot about N\n * times.\n *\n * http://easings.net/#easeInElastic\n */\nfunction elastic(bounciness = 1): EasingFn {\n 'worklet';\n const p = bounciness * Math.PI;\n return (t) => {\n 'worklet';\n return 1 - Math.pow(Math.cos((t * Math.PI) / 2), 3) * Math.cos(t * p);\n };\n}\n\n/**\n * Use with `Animated.parallel()` to create a simple effect where the object\n * animates back slightly as the animation starts.\n *\n * Wolfram Plot:\n *\n * - http://tiny.cc/back_default (s = 1.70158, default)\n */\nfunction back(s = 1.70158): (t: number) => number {\n 'worklet';\n return (t) => {\n 'worklet';\n return t * t * ((s + 1) * t - s);\n };\n}\n\n/**\n * Provides a simple bouncing effect.\n *\n * http://easings.net/#easeInBounce\n */\nfunction bounce(t: number): number {\n 'worklet';\n if (t < 1 / 2.75) {\n return 7.5625 * t * t;\n }\n\n if (t < 2 / 2.75) {\n const t2 = t - 1.5 / 2.75;\n return 7.5625 * t2 * t2 + 0.75;\n }\n\n if (t < 2.5 / 2.75) {\n const t2 = t - 2.25 / 2.75;\n return 7.5625 * t2 * t2 + 0.9375;\n }\n\n const t2 = t - 2.625 / 2.75;\n return 7.5625 * t2 * t2 + 0.984375;\n}\n\n/**\n * Provides a cubic bezier curve, equivalent to CSS Transitions'\n * `transition-timing-function`.\n *\n * A useful tool to visualize cubic bezier curves can be found at\n * http://cubic-bezier.com/\n */\nfunction bezier(\n x1: number,\n y1: number,\n x2: number,\n y2: number\n): { factory: () => (x: number) => number } {\n 'worklet';\n return {\n factory: () => {\n 'worklet';\n return Bezier(x1, y1, x2, y2);\n },\n };\n}\n\nfunction bezierFn(\n x1: number,\n y1: number,\n x2: number,\n y2: number\n): (x: number) => number {\n 'worklet';\n return Bezier(x1, y1, x2, y2);\n}\n\n/**\n * Runs an easing function forwards.\n */\nfunction in_(easing: EasingFn): EasingFn {\n 'worklet';\n return easing;\n}\n\n/**\n * Runs an easing function backwards.\n */\nfunction out(easing: EasingFn): EasingFn {\n 'worklet';\n return (t) => {\n 'worklet';\n return 1 - easing(1 - t);\n };\n}\n\n/**\n * Makes any easing function symmetrical. The easing function will run\n * forwards for half of the duration, then backwards for the rest of the\n * duration.\n */\nfunction inOut(easing: EasingFn): EasingFn {\n 'worklet';\n return (t) => {\n 'worklet';\n if (t < 0.5) {\n return easing(t * 2) / 2;\n }\n return 1 - easing((1 - t) * 2) / 2;\n };\n}\n\n/**\n * The `steps` easing function jumps between discrete values at regular intervals,\n * creating a stepped animation effect. The `n` parameter determines the number of\n * steps in the animation, and the `roundToNextStep` parameter determines whether the animation\n * should start at the beginning or end of each step.\n */\nfunction steps(n = 10, roundToNextStep = true): EasingFn {\n 'worklet';\n return (t) => {\n 'worklet';\n const value = Math.min(Math.max(t, 0), 1) * n;\n if (roundToNextStep) {\n return Math.ceil(value) / n;\n }\n return Math.floor(value) / n;\n };\n}\n\nconst EasingObject = {\n linear,\n ease,\n quad,\n cubic,\n poly,\n sin,\n circle,\n exp,\n elastic,\n back,\n bounce,\n bezier,\n bezierFn,\n steps,\n in: in_,\n out,\n inOut,\n};\n\nexport const Easing = EasingObject;\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,UAAU;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,MAAMA,CAACC,CAAS,EAAU;EACjC,SAAS;;EACT,OAAOA,CAAC;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,IAAIA,CAACD,CAAS,EAAU;EAC/B,SAAS;;EACT,OAAOF,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAACE,CAAC,CAAC;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAASE,IAAIA,CAACF,CAAS,EAAU;EAC/B,SAAS;;EACT,OAAOA,CAAC,GAAGA,CAAC;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAASG,KAAKA,CAACH,CAAS,EAAU;EAChC,SAAS;;EACT,OAAOA,CAAC,GAAGA,CAAC,GAAGA,CAAC;AAClB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAASI,IAAIA,CAACC,CAAS,EAAY;EACjC,SAAS;;EACT,OAAQL,CAAC,IAAK;IACZ,SAAS;;IACT,OAAOM,IAAI,CAACC,GAAG,CAACP,CAAC,EAAEK,CAAC,CAAC;EACvB,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,SAASG,GAAGA,CAACR,CAAS,EAAU;EAC9B,SAAS;;EACT,OAAO,CAAC,GAAGM,IAAI,CAACG,GAAG,CAAET,CAAC,GAAGM,IAAI,CAACI,EAAE,GAAI,CAAC,CAAC;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA,SAASC,MAAMA,CAACX,CAAS,EAAU;EACjC,SAAS;;EACT,OAAO,CAAC,GAAGM,IAAI,CAACM,IAAI,CAAC,CAAC,GAAGZ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"}
1
+ {"version":3,"names":["Bezier","linear","t","ease","quad","cubic","poly","n","Math","pow","sin","cos","PI","circle","sqrt","exp","elastic","bounciness","arguments","length","undefined","p","back","s","bounce","t2","bezier","x1","y1","x2","y2","factory","bezierFn","in_","easing","out","inOut","steps","roundToNextStep","value","min","max","ceil","floor","EasingObject","in","Easing"],"sources":["Easing.ts"],"sourcesContent":["import { Bezier } from './Bezier';\n\n/**\n * The `Easing` module implements common easing functions. This module is used\n * by [Animate.timing()](docs/animate.html#timing) to convey physically\n * believable motion in animations.\n *\n * You can find a visualization of some common easing functions at\n * http://easings.net/\n *\n * ### Predefined animations\n *\n * The `Easing` module provides several predefined animations through the\n * following methods:\n *\n * - [`back`](docs/easing.html#back) provides a simple animation where the\n * object goes slightly back before moving forward\n * - [`bounce`](docs/easing.html#bounce) provides a bouncing animation\n * - [`ease`](docs/easing.html#ease) provides a simple inertial animation\n * - [`elastic`](docs/easing.html#elastic) provides a simple spring interaction\n *\n * ### Standard functions\n *\n * Three standard easing functions are provided:\n *\n * - [`linear`](docs/easing.html#linear)\n * - [`quad`](docs/easing.html#quad)\n * - [`cubic`](docs/easing.html#cubic)\n *\n * The [`poly`](docs/easing.html#poly) function can be used to implement\n * quartic, quintic, and other higher power functions.\n *\n * ### Additional functions\n *\n * Additional mathematical functions are provided by the following methods:\n *\n * - [`bezier`](docs/easing.html#bezier) provides a cubic bezier curve\n * - [`circle`](docs/easing.html#circle) provides a circular function\n * - [`sin`](docs/easing.html#sin) provides a sinusoidal function\n * - [`exp`](docs/easing.html#exp) provides an exponential function\n *\n * The following helpers are used to modify other easing functions.\n *\n * - [`in`](docs/easing.html#in) runs an easing function forwards\n * - [`inOut`](docs/easing.html#inout) makes any easing function symmetrical\n * - [`out`](docs/easing.html#out) runs an easing function backwards\n */\n\nexport type EasingFunction = (t: number) => number;\n\n/**\n * @deprecated Please use `EasingFunction` type instead.\n */\nexport type EasingFn = EasingFunction;\n\nexport type EasingFunctionFactory = { factory: () => EasingFunction };\n\n/**\n * @deprecated Please use `EasingFunctionFactory` type instead.\n */\nexport type EasingFactoryFn = EasingFunctionFactory;\n/**\n * A linear function, `f(t) = t`. Position correlates to elapsed time one to\n * one.\n *\n * http://cubic-bezier.com/#0,0,1,1\n */\nfunction linear(t: number): number {\n 'worklet';\n return t;\n}\n\n/**\n * A simple inertial interaction, similar to an object slowly accelerating to\n * speed.\n *\n * http://cubic-bezier.com/#.42,0,1,1\n */\nfunction ease(t: number): number {\n 'worklet';\n return Bezier(0.42, 0, 1, 1)(t);\n}\n\n/**\n * A quadratic function, `f(t) = t * t`. Position equals the square of elapsed\n * time.\n *\n * http://easings.net/#easeInQuad\n */\nfunction quad(t: number): number {\n 'worklet';\n return t * t;\n}\n\n/**\n * A cubic function, `f(t) = t * t * t`. Position equals the cube of elapsed\n * time.\n *\n * http://easings.net/#easeInCubic\n */\nfunction cubic(t: number): number {\n 'worklet';\n return t * t * t;\n}\n\n/**\n * A power function. Position is equal to the Nth power of elapsed time.\n *\n * n = 4: http://easings.net/#easeInQuart\n * n = 5: http://easings.net/#easeInQuint\n */\nfunction poly(n: number): EasingFunction {\n 'worklet';\n return (t) => {\n 'worklet';\n return Math.pow(t, n);\n };\n}\n\n/**\n * A sinusoidal function.\n *\n * http://easings.net/#easeInSine\n */\nfunction sin(t: number): number {\n 'worklet';\n return 1 - Math.cos((t * Math.PI) / 2);\n}\n\n/**\n * A circular function.\n *\n * http://easings.net/#easeInCirc\n */\nfunction circle(t: number): number {\n 'worklet';\n return 1 - Math.sqrt(1 - t * t);\n}\n\n/**\n * An exponential function.\n *\n * http://easings.net/#easeInExpo\n */\nfunction exp(t: number): number {\n 'worklet';\n return Math.pow(2, 10 * (t - 1));\n}\n\n/**\n * A simple elastic interaction, similar to a spring oscillating back and\n * forth.\n *\n * Default bounciness is 1, which overshoots a little bit once. 0 bounciness\n * doesn't overshoot at all, and bounciness of N > 1 will overshoot about N\n * times.\n *\n * http://easings.net/#easeInElastic\n */\nfunction elastic(bounciness = 1): EasingFunction {\n 'worklet';\n const p = bounciness * Math.PI;\n return (t) => {\n 'worklet';\n return 1 - Math.pow(Math.cos((t * Math.PI) / 2), 3) * Math.cos(t * p);\n };\n}\n\n/**\n * Use with `Animated.parallel()` to create a simple effect where the object\n * animates back slightly as the animation starts.\n *\n * Wolfram Plot:\n *\n * - http://tiny.cc/back_default (s = 1.70158, default)\n */\nfunction back(s = 1.70158): (t: number) => number {\n 'worklet';\n return (t) => {\n 'worklet';\n return t * t * ((s + 1) * t - s);\n };\n}\n\n/**\n * Provides a simple bouncing effect.\n *\n * http://easings.net/#easeInBounce\n */\nfunction bounce(t: number): number {\n 'worklet';\n if (t < 1 / 2.75) {\n return 7.5625 * t * t;\n }\n\n if (t < 2 / 2.75) {\n const t2 = t - 1.5 / 2.75;\n return 7.5625 * t2 * t2 + 0.75;\n }\n\n if (t < 2.5 / 2.75) {\n const t2 = t - 2.25 / 2.75;\n return 7.5625 * t2 * t2 + 0.9375;\n }\n\n const t2 = t - 2.625 / 2.75;\n return 7.5625 * t2 * t2 + 0.984375;\n}\n\n/**\n * Provides a cubic bezier curve, equivalent to CSS Transitions'\n * `transition-timing-function`.\n *\n * A useful tool to visualize cubic bezier curves can be found at\n * http://cubic-bezier.com/\n */\nfunction bezier(\n x1: number,\n y1: number,\n x2: number,\n y2: number\n): { factory: () => (x: number) => number } {\n 'worklet';\n return {\n factory: () => {\n 'worklet';\n return Bezier(x1, y1, x2, y2);\n },\n };\n}\n\nfunction bezierFn(\n x1: number,\n y1: number,\n x2: number,\n y2: number\n): (x: number) => number {\n 'worklet';\n return Bezier(x1, y1, x2, y2);\n}\n\n/**\n * Runs an easing function forwards.\n */\nfunction in_(easing: EasingFunction): EasingFunction {\n 'worklet';\n return easing;\n}\n\n/**\n * Runs an easing function backwards.\n */\nfunction out(easing: EasingFunction): EasingFunction {\n 'worklet';\n return (t) => {\n 'worklet';\n return 1 - easing(1 - t);\n };\n}\n\n/**\n * Makes any easing function symmetrical. The easing function will run\n * forwards for half of the duration, then backwards for the rest of the\n * duration.\n */\nfunction inOut(easing: EasingFunction): EasingFunction {\n 'worklet';\n return (t) => {\n 'worklet';\n if (t < 0.5) {\n return easing(t * 2) / 2;\n }\n return 1 - easing((1 - t) * 2) / 2;\n };\n}\n\n/**\n * The `steps` easing function jumps between discrete values at regular intervals,\n * creating a stepped animation effect. The `n` parameter determines the number of\n * steps in the animation, and the `roundToNextStep` parameter determines whether the animation\n * should start at the beginning or end of each step.\n */\nfunction steps(n = 10, roundToNextStep = true): EasingFunction {\n 'worklet';\n return (t) => {\n 'worklet';\n const value = Math.min(Math.max(t, 0), 1) * n;\n if (roundToNextStep) {\n return Math.ceil(value) / n;\n }\n return Math.floor(value) / n;\n };\n}\n\nconst EasingObject = {\n linear,\n ease,\n quad,\n cubic,\n poly,\n sin,\n circle,\n exp,\n elastic,\n back,\n bounce,\n bezier,\n bezierFn,\n steps,\n in: in_,\n out,\n inOut,\n};\n\nexport const Easing = EasingObject;\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,UAAU;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA;AACA;AACA;;AAKA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,MAAMA,CAACC,CAAS,EAAU;EACjC,SAAS;;EACT,OAAOA,CAAC;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,IAAIA,CAACD,CAAS,EAAU;EAC/B,SAAS;;EACT,OAAOF,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAACE,CAAC,CAAC;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAASE,IAAIA,CAACF,CAAS,EAAU;EAC/B,SAAS;;EACT,OAAOA,CAAC,GAAGA,CAAC;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAASG,KAAKA,CAACH,CAAS,EAAU;EAChC,SAAS;;EACT,OAAOA,CAAC,GAAGA,CAAC,GAAGA,CAAC;AAClB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAASI,IAAIA,CAACC,CAAS,EAAkB;EACvC,SAAS;;EACT,OAAQL,CAAC,IAAK;IACZ,SAAS;;IACT,OAAOM,IAAI,CAACC,GAAG,CAACP,CAAC,EAAEK,CAAC,CAAC;EACvB,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,SAASG,GAAGA,CAACR,CAAS,EAAU;EAC9B,SAAS;;EACT,OAAO,CAAC,GAAGM,IAAI,CAACG,GAAG,CAAET,CAAC,GAAGM,IAAI,CAACI,EAAE,GAAI,CAAC,CAAC;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA,SAASC,MAAMA,CAACX,CAAS,EAAU;EACjC,SAAS;;EACT,OAAO,CAAC,GAAG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"}
@@ -5,9 +5,9 @@ import { shouldBeUseWeb } from './PlatformChecker';
5
5
  import { runOnUIImmediately } from './threads';
6
6
 
7
7
  // copied from react-native/Libraries/Components/View/ReactNativeStyleAttributes
8
- export const colorProps = ['backgroundColor', 'borderBottomColor', 'borderColor', 'borderLeftColor', 'borderRightColor', 'borderTopColor', 'borderStartColor', 'borderEndColor', 'color', 'shadowColor', 'textDecorationColor', 'tintColor', 'textShadowColor', 'overlayColor'];
8
+ const colorProps = ['backgroundColor', 'borderBottomColor', 'borderColor', 'borderLeftColor', 'borderRightColor', 'borderTopColor', 'borderStartColor', 'borderEndColor', 'color', 'shadowColor', 'textDecorationColor', 'tintColor', 'textShadowColor', 'overlayColor'];
9
9
  export const ColorProperties = makeShareable(colorProps);
10
- export let updateProps;
10
+ let updateProps;
11
11
  if (shouldBeUseWeb()) {
12
12
  updateProps = (_, updates, maybeViewRef) => {
13
13
  'worklet';
@@ -1 +1 @@
1
- {"version":3,"names":["processColor","makeShareable","_updatePropsJS","shouldBeUseWeb","runOnUIImmediately","colorProps","ColorProperties","updateProps","_","updates","maybeViewRef","items","forEach","item","viewDescriptors","key","indexOf","global","UpdatePropsManager","update","updatePropsJestWrapper","animatedStyle","adapters","adapter","current","value","createUpdatePropsManager","_IS_FABRIC","operations","viewDescriptor","push","shadowNodeWrapper","length","queueMicrotask","flush","_updatePropsFabric","tag","name","_updatePropsPaper"],"sources":["UpdateProps.ts"],"sourcesContent":["import type { MutableRefObject } from 'react';\nimport { processColor } from './Colors';\nimport type {\n AnimatedStyle,\n ShadowNodeWrapper,\n SharedValue,\n StyleProps,\n} from './commonTypes';\nimport { makeShareable } from './core';\nimport type { Descriptor } from './hook/commonTypes';\nimport { _updatePropsJS } from './js-reanimated';\nimport { shouldBeUseWeb } from './PlatformChecker';\nimport type { ViewRefSet } from './ViewDescriptorsSet';\nimport { runOnUIImmediately } from './threads';\n\n// copied from react-native/Libraries/Components/View/ReactNativeStyleAttributes\nexport const colorProps = [\n 'backgroundColor',\n 'borderBottomColor',\n 'borderColor',\n 'borderLeftColor',\n 'borderRightColor',\n 'borderTopColor',\n 'borderStartColor',\n 'borderEndColor',\n 'color',\n 'shadowColor',\n 'textDecorationColor',\n 'tintColor',\n 'textShadowColor',\n 'overlayColor',\n];\n\nexport const ColorProperties = makeShareable(colorProps);\n\nexport let updateProps: (\n viewDescriptor: SharedValue<Descriptor[]>,\n updates: StyleProps | AnimatedStyle,\n maybeViewRef: ViewRefSet<any> | undefined\n) => void;\n\nif (shouldBeUseWeb()) {\n updateProps = (_, updates, maybeViewRef) => {\n 'worklet';\n if (maybeViewRef) {\n maybeViewRef.items.forEach((item, _) => {\n _updatePropsJS(updates, item);\n });\n }\n };\n} else {\n updateProps = (viewDescriptors, updates) => {\n 'worklet';\n for (const key in updates) {\n if (ColorProperties.indexOf(key) !== -1) {\n updates[key] = processColor(updates[key]);\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n global.UpdatePropsManager!.update(viewDescriptors, updates);\n };\n}\n\nexport const updatePropsJestWrapper = (\n viewDescriptors: SharedValue<Descriptor[]>,\n updates: AnimatedStyle,\n maybeViewRef: ViewRefSet<any> | undefined,\n animatedStyle: MutableRefObject<AnimatedStyle>,\n adapters: ((updates: AnimatedStyle) => void)[]\n): void => {\n adapters.forEach((adapter) => {\n adapter(updates);\n });\n animatedStyle.current.value = {\n ...animatedStyle.current.value,\n ...updates,\n };\n\n updateProps(viewDescriptors, updates, maybeViewRef);\n};\n\nexport default updateProps;\n\nconst createUpdatePropsManager = global._IS_FABRIC\n ? () => {\n 'worklet';\n // Fabric\n const operations: {\n shadowNodeWrapper: ShadowNodeWrapper;\n updates: StyleProps | AnimatedStyle;\n }[] = [];\n return {\n update(\n viewDescriptors: SharedValue<Descriptor[]>,\n updates: StyleProps | AnimatedStyle\n ) {\n viewDescriptors.value.forEach((viewDescriptor) => {\n operations.push({\n shadowNodeWrapper: viewDescriptor.shadowNodeWrapper,\n updates,\n });\n if (operations.length === 1) {\n queueMicrotask(this.flush);\n }\n });\n },\n flush() {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n _updatePropsFabric!(operations);\n operations.length = 0;\n },\n };\n }\n : () => {\n 'worklet';\n // Paper\n const operations: {\n tag: number;\n name: string;\n updates: StyleProps | AnimatedStyle;\n }[] = [];\n return {\n update(\n viewDescriptors: SharedValue<Descriptor[]>,\n updates: StyleProps | AnimatedStyle\n ) {\n viewDescriptors.value.forEach((viewDescriptor) => {\n operations.push({\n tag: viewDescriptor.tag,\n name: viewDescriptor.name || 'RCTView',\n updates,\n });\n if (operations.length === 1) {\n queueMicrotask(this.flush);\n }\n });\n },\n flush() {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n _updatePropsPaper!(operations);\n operations.length = 0;\n },\n };\n };\n\nrunOnUIImmediately(() => {\n 'worklet';\n global.UpdatePropsManager = createUpdatePropsManager();\n})();\n\nexport interface UpdatePropsManager {\n update(\n viewDescriptors: SharedValue<Descriptor[]>,\n updates: StyleProps | AnimatedStyle\n ): void;\n flush(): void;\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["processColor","makeShareable","_updatePropsJS","shouldBeUseWeb","runOnUIImmediately","colorProps","ColorProperties","updateProps","_","updates","maybeViewRef","items","forEach","item","viewDescriptors","key","indexOf","global","UpdatePropsManager","update","updatePropsJestWrapper","animatedStyle","adapters","adapter","current","value","createUpdatePropsManager","_IS_FABRIC","operations","viewDescriptor","push","shadowNodeWrapper","length","queueMicrotask","flush","_updatePropsFabric","tag","name","_updatePropsPaper"],"sources":["UpdateProps.ts"],"sourcesContent":["import type { MutableRefObject } from 'react';\nimport { processColor } from './Colors';\nimport type { ShadowNodeWrapper, SharedValue, StyleProps } from './commonTypes';\nimport type { AnimatedStyle } from './helperTypes';\nimport { makeShareable } from './core';\nimport type { Descriptor } from './hook/commonTypes';\nimport { _updatePropsJS } from './js-reanimated';\nimport { shouldBeUseWeb } from './PlatformChecker';\nimport type { ViewRefSet } from './ViewDescriptorsSet';\nimport { runOnUIImmediately } from './threads';\n\n// copied from react-native/Libraries/Components/View/ReactNativeStyleAttributes\nconst colorProps = [\n 'backgroundColor',\n 'borderBottomColor',\n 'borderColor',\n 'borderLeftColor',\n 'borderRightColor',\n 'borderTopColor',\n 'borderStartColor',\n 'borderEndColor',\n 'color',\n 'shadowColor',\n 'textDecorationColor',\n 'tintColor',\n 'textShadowColor',\n 'overlayColor',\n];\n\nexport const ColorProperties = makeShareable(colorProps);\n\nlet updateProps: (\n viewDescriptor: SharedValue<Descriptor[]>,\n updates: StyleProps | AnimatedStyle<any>,\n maybeViewRef: ViewRefSet<any> | undefined\n) => void;\n\nif (shouldBeUseWeb()) {\n updateProps = (_, updates, maybeViewRef) => {\n 'worklet';\n if (maybeViewRef) {\n maybeViewRef.items.forEach((item, _) => {\n _updatePropsJS(updates, item);\n });\n }\n };\n} else {\n updateProps = (viewDescriptors, updates) => {\n 'worklet';\n for (const key in updates) {\n if (ColorProperties.indexOf(key) !== -1) {\n updates[key] = processColor(updates[key]);\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n global.UpdatePropsManager!.update(viewDescriptors, updates);\n };\n}\n\nexport const updatePropsJestWrapper = (\n viewDescriptors: SharedValue<Descriptor[]>,\n updates: AnimatedStyle<any>,\n maybeViewRef: ViewRefSet<any> | undefined,\n animatedStyle: MutableRefObject<AnimatedStyle<any>>,\n adapters: ((updates: AnimatedStyle<any>) => void)[]\n): void => {\n adapters.forEach((adapter) => {\n adapter(updates);\n });\n animatedStyle.current.value = {\n ...animatedStyle.current.value,\n ...updates,\n };\n\n updateProps(viewDescriptors, updates, maybeViewRef);\n};\n\nexport default updateProps;\n\nconst createUpdatePropsManager = global._IS_FABRIC\n ? () => {\n 'worklet';\n // Fabric\n const operations: {\n shadowNodeWrapper: ShadowNodeWrapper;\n updates: StyleProps | AnimatedStyle<any>;\n }[] = [];\n return {\n update(\n viewDescriptors: SharedValue<Descriptor[]>,\n updates: StyleProps | AnimatedStyle<any>\n ) {\n viewDescriptors.value.forEach((viewDescriptor) => {\n operations.push({\n shadowNodeWrapper: viewDescriptor.shadowNodeWrapper,\n updates,\n });\n if (operations.length === 1) {\n queueMicrotask(this.flush);\n }\n });\n },\n flush() {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n _updatePropsFabric!(operations);\n operations.length = 0;\n },\n };\n }\n : () => {\n 'worklet';\n // Paper\n const operations: {\n tag: number;\n name: string;\n updates: StyleProps | AnimatedStyle<any>;\n }[] = [];\n return {\n update(\n viewDescriptors: SharedValue<Descriptor[]>,\n updates: StyleProps | AnimatedStyle<any>\n ) {\n viewDescriptors.value.forEach((viewDescriptor) => {\n operations.push({\n tag: viewDescriptor.tag,\n name: viewDescriptor.name || 'RCTView',\n updates,\n });\n if (operations.length === 1) {\n queueMicrotask(this.flush);\n }\n });\n },\n flush() {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n _updatePropsPaper!(operations);\n operations.length = 0;\n },\n };\n };\n\nrunOnUIImmediately(() => {\n 'worklet';\n global.UpdatePropsManager = createUpdatePropsManager();\n})();\n\nexport interface UpdatePropsManager {\n update(\n viewDescriptors: SharedValue<Descriptor[]>,\n updates: StyleProps | AnimatedStyle<any>\n ): void;\n flush(): void;\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["commonTypes.ts"],"sourcesContent":["import type {\n AnimatedStyle,\n StyleProps,\n AnimatableValue,\n AnimationObject,\n Animation,\n Timestamp,\n AnimationCallback,\n} from '../commonTypes';\n\nexport interface HigherOrderAnimation {\n isHigherOrder?: boolean;\n}\n\nexport type NextAnimation<T extends AnimationObject> = T | (() => T);\n\nexport interface DelayAnimation\n extends Animation<DelayAnimation>,\n HigherOrderAnimation {\n startTime: Timestamp;\n started: boolean;\n previousAnimation: DelayAnimation | null;\n current: AnimatableValue;\n}\n\nexport interface RepeatAnimation\n extends Animation<RepeatAnimation>,\n HigherOrderAnimation {\n reps: number;\n startValue: AnimatableValue;\n toValue?: AnimatableValue;\n previousAnimation?: RepeatAnimation;\n}\n\nexport interface SequenceAnimation\n extends Animation<SequenceAnimation>,\n HigherOrderAnimation {\n animationIndex: number;\n}\n\nexport interface StyleLayoutAnimation extends HigherOrderAnimation {\n current: StyleProps;\n styleAnimations: AnimatedStyle;\n onFrame: (animation: StyleLayoutAnimation, timestamp: Timestamp) => boolean;\n onStart: (\n nextAnimation: StyleLayoutAnimation,\n current: AnimatedStyle,\n timestamp: Timestamp,\n previousAnimation: StyleLayoutAnimation\n ) => void;\n callback?: AnimationCallback;\n}\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["commonTypes.ts"],"sourcesContent":["import type {\n StyleProps,\n AnimatableValue,\n AnimationObject,\n Animation,\n Timestamp,\n AnimationCallback,\n} from '../commonTypes';\nimport type { AnimatedStyle } from '../helperTypes';\n\nexport interface HigherOrderAnimation {\n isHigherOrder?: boolean;\n}\n\nexport type NextAnimation<T extends AnimationObject> = T | (() => T);\n\nexport interface DelayAnimation\n extends Animation<DelayAnimation>,\n HigherOrderAnimation {\n startTime: Timestamp;\n started: boolean;\n previousAnimation: DelayAnimation | null;\n current: AnimatableValue;\n}\n\nexport interface RepeatAnimation\n extends Animation<RepeatAnimation>,\n HigherOrderAnimation {\n reps: number;\n startValue: AnimatableValue;\n toValue?: AnimatableValue;\n previousAnimation?: RepeatAnimation;\n}\n\nexport interface SequenceAnimation\n extends Animation<SequenceAnimation>,\n HigherOrderAnimation {\n animationIndex: number;\n}\n\nexport interface StyleLayoutAnimation extends HigherOrderAnimation {\n current: StyleProps;\n styleAnimations: AnimatedStyle<any>;\n onFrame: (animation: StyleLayoutAnimation, timestamp: Timestamp) => boolean;\n onStart: (\n nextAnimation: StyleLayoutAnimation,\n current: AnimatedStyle<any>,\n timestamp: Timestamp,\n previousAnimation: StyleLayoutAnimation\n ) => void;\n callback?: AnimationCallback;\n}\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"names":["defineAnimation","isWeb","IS_WEB","withDecay","userConfig","callback","config","deceleration","velocityFactor","velocity","rubberBandFactor","Object","keys","forEach","key","VELOCITY_EPS","SLOPE_FACTOR","decay","rubberBandEffect","animation","now","lastTimestamp","startTimestamp","current","deltaTime","Math","min","clampIndex","abs","clamp","derivative","springActive","v","exp","initialVelocity","validateConfig","Array","isArray","Error","length","onStart","value","onFrame"],"sources":["decay.ts"],"sourcesContent":["import { defineAnimation } from './util';\nimport type {\n Animation,\n AnimationCallback,\n AnimationObject,\n AnimatableValue,\n Timestamp,\n} from '../commonTypes';\nimport { isWeb } from '../PlatformChecker';\n\ninterface DecayConfig {\n deceleration?: number;\n velocityFactor?: number;\n clamp?: number[];\n velocity?: number;\n}\n\ninterface DefaultDecayConfig {\n deceleration: number;\n velocityFactor: number;\n clamp?: number[];\n velocity: number;\n rubberBandEffect?: boolean;\n rubberBandFactor: number;\n}\n\nexport interface DecayAnimation extends Animation<DecayAnimation> {\n lastTimestamp: Timestamp;\n startTimestamp: Timestamp;\n initialVelocity: number;\n velocity: number;\n current: AnimatableValue;\n}\n\nexport interface InnerDecayAnimation\n extends Omit<DecayAnimation, 'current'>,\n AnimationObject {\n current: number;\n}\n\nconst IS_WEB = isWeb();\n\n// TODO TYPESCRIPT This is a temporary type to get rid of .d.ts file.\ntype withDecayType = (\n userConfig: DecayConfig,\n callback?: AnimationCallback\n) => number;\n\nexport const withDecay = function (\n userConfig: DecayConfig,\n callback?: AnimationCallback\n): Animation<DecayAnimation> {\n 'worklet';\n\n return defineAnimation<DecayAnimation>(0, () => {\n 'worklet';\n const config: DefaultDecayConfig = {\n deceleration: 0.998,\n velocityFactor: 1,\n velocity: 0,\n rubberBandFactor: 0.6,\n };\n if (userConfig) {\n Object.keys(userConfig).forEach(\n (key) =>\n ((config as any)[key] = userConfig[key as keyof typeof userConfig])\n );\n }\n\n const VELOCITY_EPS = IS_WEB ? 1 / 20 : 1;\n const SLOPE_FACTOR = 0.1;\n\n let decay: (animation: InnerDecayAnimation, now: number) => boolean;\n\n if (config.rubberBandEffect) {\n decay = (animation: InnerDecayAnimation, now: number): boolean => {\n const { lastTimestamp, startTimestamp, current, velocity } = animation;\n\n const deltaTime = Math.min(now - lastTimestamp, 64);\n const clampIndex =\n Math.abs(current - config.clamp![0]) <\n Math.abs(current - config.clamp![1])\n ? 0\n : 1;\n\n let derivative = 0;\n if (current < config.clamp![0] || current > config.clamp![1]) {\n derivative = current - config.clamp![clampIndex];\n }\n\n if (derivative !== 0) {\n animation.springActive = true;\n } else if (derivative === 0 && animation.springActive) {\n animation.current = config.clamp![clampIndex];\n return true;\n }\n\n const v =\n velocity *\n Math.exp(\n -(1 - config.deceleration) * (now - startTimestamp) * SLOPE_FACTOR\n ) -\n derivative * config.rubberBandFactor;\n\n animation.current =\n current + (v * config.velocityFactor * deltaTime) / 1000;\n animation.velocity = v;\n animation.lastTimestamp = now;\n return false;\n };\n } else {\n decay = (animation: InnerDecayAnimation, now: number): boolean => {\n const {\n lastTimestamp,\n startTimestamp,\n initialVelocity,\n current,\n velocity,\n } = animation;\n\n const deltaTime = Math.min(now - lastTimestamp, 64);\n const v =\n velocity *\n Math.exp(\n -(1 - config.deceleration) * (now - startTimestamp) * SLOPE_FACTOR\n );\n animation.current =\n current + (v * config.velocityFactor * deltaTime) / 1000;\n animation.velocity = v;\n animation.lastTimestamp = now;\n\n if (config.clamp) {\n if (initialVelocity < 0 && animation.current <= config.clamp[0]) {\n animation.current = config.clamp[0];\n return true;\n } else if (\n initialVelocity > 0 &&\n animation.current >= config.clamp[1]\n ) {\n animation.current = config.clamp[1];\n return true;\n }\n }\n\n return Math.abs(v) < VELOCITY_EPS;\n };\n }\n\n function validateConfig(): void {\n if (config.clamp) {\n if (!Array.isArray(config.clamp)) {\n throw Error(\n `config.clamp must be an array but is ${typeof config.clamp}`\n );\n }\n if (config.clamp.length !== 2) {\n throw Error(\n `clamp array must contain 2 items but is given ${config.clamp.length}`\n );\n }\n }\n if (config.velocityFactor <= 0) {\n throw Error(\n `config.velocityFactor must be greather then 0 but is ${config.velocityFactor}`\n );\n }\n if (config.rubberBandEffect && !config.clamp) {\n throw Error(\n 'You need to set `clamp` property when using `rubberBandEffect`.'\n );\n }\n }\n\n function onStart(\n animation: DecayAnimation,\n value: number,\n now: Timestamp\n ): void {\n animation.current = value;\n animation.lastTimestamp = now;\n animation.startTimestamp = now;\n animation.initialVelocity = config.velocity;\n validateConfig();\n }\n\n return {\n onFrame: decay,\n onStart,\n callback,\n velocity: config.velocity ?? 0,\n initialVelocity: 0,\n current: 0,\n lastTimestamp: 0,\n startTimestamp: 0,\n } as DecayAnimation;\n });\n} as unknown as withDecayType;\n"],"mappings":"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"}
1
+ {"version":3,"names":["defineAnimation","isWeb","IS_WEB","withDecay","userConfig","callback","config","deceleration","velocityFactor","velocity","rubberBandFactor","Object","keys","forEach","key","VELOCITY_EPS","SLOPE_FACTOR","decay","rubberBandEffect","animation","now","lastTimestamp","startTimestamp","current","deltaTime","Math","min","clampIndex","abs","clamp","derivative","springActive","v","exp","initialVelocity","validateConfig","Array","isArray","Error","length","onStart","value","onFrame"],"sources":["decay.ts"],"sourcesContent":["import { defineAnimation } from './util';\nimport type {\n Animation,\n AnimationCallback,\n AnimationObject,\n AnimatableValue,\n Timestamp,\n} from '../commonTypes';\nimport { isWeb } from '../PlatformChecker';\n\ninterface DecayConfig {\n deceleration?: number;\n velocityFactor?: number;\n clamp?: number[];\n velocity?: number;\n}\n\nexport type WithDecayConfig = DecayConfig;\n\ninterface DefaultDecayConfig {\n deceleration: number;\n velocityFactor: number;\n clamp?: number[];\n velocity: number;\n rubberBandEffect?: boolean;\n rubberBandFactor: number;\n}\n\nexport interface DecayAnimation extends Animation<DecayAnimation> {\n lastTimestamp: Timestamp;\n startTimestamp: Timestamp;\n initialVelocity: number;\n velocity: number;\n current: AnimatableValue;\n}\n\ninterface InnerDecayAnimation\n extends Omit<DecayAnimation, 'current'>,\n AnimationObject {\n current: number;\n}\n\nconst IS_WEB = isWeb();\n\n// TODO TYPESCRIPT This is a temporary type to get rid of .d.ts file.\ntype withDecayType = (\n userConfig: DecayConfig,\n callback?: AnimationCallback\n) => number;\n\nexport const withDecay = function (\n userConfig: DecayConfig,\n callback?: AnimationCallback\n): Animation<DecayAnimation> {\n 'worklet';\n\n return defineAnimation<DecayAnimation>(0, () => {\n 'worklet';\n const config: DefaultDecayConfig = {\n deceleration: 0.998,\n velocityFactor: 1,\n velocity: 0,\n rubberBandFactor: 0.6,\n };\n if (userConfig) {\n Object.keys(userConfig).forEach(\n (key) =>\n ((config as any)[key] = userConfig[key as keyof typeof userConfig])\n );\n }\n\n const VELOCITY_EPS = IS_WEB ? 1 / 20 : 1;\n const SLOPE_FACTOR = 0.1;\n\n let decay: (animation: InnerDecayAnimation, now: number) => boolean;\n\n if (config.rubberBandEffect) {\n decay = (animation: InnerDecayAnimation, now: number): boolean => {\n const { lastTimestamp, startTimestamp, current, velocity } = animation;\n\n const deltaTime = Math.min(now - lastTimestamp, 64);\n const clampIndex =\n Math.abs(current - config.clamp![0]) <\n Math.abs(current - config.clamp![1])\n ? 0\n : 1;\n\n let derivative = 0;\n if (current < config.clamp![0] || current > config.clamp![1]) {\n derivative = current - config.clamp![clampIndex];\n }\n\n if (derivative !== 0) {\n animation.springActive = true;\n } else if (derivative === 0 && animation.springActive) {\n animation.current = config.clamp![clampIndex];\n return true;\n }\n\n const v =\n velocity *\n Math.exp(\n -(1 - config.deceleration) * (now - startTimestamp) * SLOPE_FACTOR\n ) -\n derivative * config.rubberBandFactor;\n\n animation.current =\n current + (v * config.velocityFactor * deltaTime) / 1000;\n animation.velocity = v;\n animation.lastTimestamp = now;\n return false;\n };\n } else {\n decay = (animation: InnerDecayAnimation, now: number): boolean => {\n const {\n lastTimestamp,\n startTimestamp,\n initialVelocity,\n current,\n velocity,\n } = animation;\n\n const deltaTime = Math.min(now - lastTimestamp, 64);\n const v =\n velocity *\n Math.exp(\n -(1 - config.deceleration) * (now - startTimestamp) * SLOPE_FACTOR\n );\n animation.current =\n current + (v * config.velocityFactor * deltaTime) / 1000;\n animation.velocity = v;\n animation.lastTimestamp = now;\n\n if (config.clamp) {\n if (initialVelocity < 0 && animation.current <= config.clamp[0]) {\n animation.current = config.clamp[0];\n return true;\n } else if (\n initialVelocity > 0 &&\n animation.current >= config.clamp[1]\n ) {\n animation.current = config.clamp[1];\n return true;\n }\n }\n\n return Math.abs(v) < VELOCITY_EPS;\n };\n }\n\n function validateConfig(): void {\n if (config.clamp) {\n if (!Array.isArray(config.clamp)) {\n throw Error(\n `config.clamp must be an array but is ${typeof config.clamp}`\n );\n }\n if (config.clamp.length !== 2) {\n throw Error(\n `clamp array must contain 2 items but is given ${config.clamp.length}`\n );\n }\n }\n if (config.velocityFactor <= 0) {\n throw Error(\n `config.velocityFactor must be greather then 0 but is ${config.velocityFactor}`\n );\n }\n if (config.rubberBandEffect && !config.clamp) {\n throw Error(\n 'You need to set `clamp` property when using `rubberBandEffect`.'\n );\n }\n }\n\n function onStart(\n animation: DecayAnimation,\n value: number,\n now: Timestamp\n ): void {\n animation.current = value;\n animation.lastTimestamp = now;\n animation.startTimestamp = now;\n animation.initialVelocity = config.velocity;\n validateConfig();\n }\n\n return {\n onFrame: decay,\n onStart,\n callback,\n velocity: config.velocity ?? 0,\n initialVelocity: 0,\n current: 0,\n lastTimestamp: 0,\n startTimestamp: 0,\n } as DecayAnimation;\n });\n} as unknown as withDecayType;\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  export { cancelAnimation, defineAnimation, initialUpdaterRun } from './util';
2
2
  export { withTiming } from './timing';
3
3
  export { withSpring } from './spring';
4
- export { withDecay } from './decay';
4
+ export { withDecay, WithDecayConfig } from './decay';
5
5
  export { withDelay } from './delay';
6
6
  export { withRepeat } from './repeat';
7
7
  export { withSequence } from './sequence';
@@ -1 +1 @@
1
- {"version":3,"names":["cancelAnimation","defineAnimation","initialUpdaterRun","withTiming","withSpring","withDecay","withDelay","withRepeat","withSequence","withStyleAnimation"],"sources":["index.ts"],"sourcesContent":["export type {\n HigherOrderAnimation,\n NextAnimation,\n DelayAnimation,\n RepeatAnimation,\n SequenceAnimation,\n StyleLayoutAnimation,\n} from './commonTypes';\nexport { cancelAnimation, defineAnimation, initialUpdaterRun } from './util';\nexport { withTiming } from './timing';\nexport type { TimingAnimation } from './timing';\nexport { withSpring } from './spring';\nexport type { SpringAnimation } from './springUtils';\nexport { withDecay } from './decay';\nexport type { DecayAnimation } from './decay';\nexport { withDelay } from './delay';\nexport { withRepeat } from './repeat';\nexport { withSequence } from './sequence';\nexport { withStyleAnimation } from './styleAnimation';\n"],"mappings":"AAQA,SAASA,eAAe,EAAEC,eAAe,EAAEC,iBAAiB,QAAQ,QAAQ;AAC5E,SAASC,UAAU,QAAQ,UAAU;AAErC,SAASC,UAAU,QAAQ,UAAU;AAErC,SAASC,SAAS,QAAQ,SAAS;AAEnC,SAASC,SAAS,QAAQ,SAAS;AACnC,SAASC,UAAU,QAAQ,UAAU;AACrC,SAASC,YAAY,QAAQ,YAAY;AACzC,SAASC,kBAAkB,QAAQ,kBAAkB"}
1
+ {"version":3,"names":["cancelAnimation","defineAnimation","initialUpdaterRun","withTiming","withSpring","withDecay","WithDecayConfig","withDelay","withRepeat","withSequence","withStyleAnimation"],"sources":["index.ts"],"sourcesContent":["export type {\n HigherOrderAnimation,\n NextAnimation,\n DelayAnimation,\n RepeatAnimation,\n SequenceAnimation,\n StyleLayoutAnimation,\n} from './commonTypes';\nexport { cancelAnimation, defineAnimation, initialUpdaterRun } from './util';\nexport { withTiming } from './timing';\nexport type { TimingAnimation, WithTimingConfig } from './timing';\nexport { withSpring } from './spring';\nexport type { SpringAnimation, WithSpringConfig } from './springUtils';\nexport { withDecay, WithDecayConfig } from './decay';\nexport type { DecayAnimation } from './decay';\nexport { withDelay } from './delay';\nexport { withRepeat } from './repeat';\nexport { withSequence } from './sequence';\nexport { withStyleAnimation } from './styleAnimation';\n"],"mappings":"AAQA,SAASA,eAAe,EAAEC,eAAe,EAAEC,iBAAiB,QAAQ,QAAQ;AAC5E,SAASC,UAAU,QAAQ,UAAU;AAErC,SAASC,UAAU,QAAQ,UAAU;AAErC,SAASC,SAAS,EAAEC,eAAe,QAAQ,SAAS;AAEpD,SAASC,SAAS,QAAQ,SAAS;AACnC,SAASC,UAAU,QAAQ,UAAU;AACrC,SAASC,YAAY,QAAQ,YAAY;AACzC,SAASC,kBAAkB,QAAQ,kBAAkB"}