react-native-reanimated 2.3.0-beta.4 → 2.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/Common/cpp/Tools/RuntimeDecorator.cpp +17 -0
  2. package/LICENSE +1 -1
  3. package/README.md +1 -1
  4. package/android/build.gradle +5 -3
  5. package/android/expo/linking.gradle +46 -0
  6. package/android/expo/src/main/java/com/swmansion/reanimated/EXReanimatedAdapter.java +12 -0
  7. package/android/expo/src/main/java/expo/modules/adapters/reanimated/EXReanimatedPackage.java +26 -0
  8. package/android/react-native-reanimated-63-hermes.aar +0 -0
  9. package/android/react-native-reanimated-63-jsc.aar +0 -0
  10. package/android/react-native-reanimated-64-hermes.aar +0 -0
  11. package/android/react-native-reanimated-64-jsc.aar +0 -0
  12. package/android/react-native-reanimated-65-hermes.aar +0 -0
  13. package/android/react-native-reanimated-65-jsc.aar +0 -0
  14. package/android/react-native-reanimated-66-hermes.aar +0 -0
  15. package/android/react-native-reanimated-66-jsc.aar +0 -0
  16. package/android/react-native-reanimated-67-hermes.aar +0 -0
  17. package/android/react-native-reanimated-67-jsc.aar +0 -0
  18. package/expo-module.config.json +3 -0
  19. package/ios/LayoutReanimation/REAAnimationsManager.h +1 -1
  20. package/ios/LayoutReanimation/REAAnimationsManager.m +68 -19
  21. package/ios/LayoutReanimation/REAUIManager.mm +8 -7
  22. package/ios/Nodes/REAPropsNode.m +1 -1
  23. package/ios/native/NativeMethods.h +1 -1
  24. package/ios/native/NativeProxy.mm +10 -2
  25. package/ios/native/REAInitializer.mm +3 -4
  26. package/lib/Animated.js +3 -5
  27. package/lib/createAnimatedComponent.js +4 -2
  28. package/lib/index.js +3 -5
  29. package/lib/reanimated1/core/Core.test.js +1 -1
  30. package/lib/reanimated2/Colors.js +1 -97
  31. package/lib/reanimated2/Easing.js +5 -0
  32. package/lib/reanimated2/NativeMethods.js +15 -5
  33. package/lib/reanimated2/NativeReanimated/index.js +2 -2
  34. package/lib/reanimated2/component/FlatList.js +30 -0
  35. package/lib/reanimated2/component/WrappedComponents.js +9 -0
  36. package/lib/reanimated2/component/index.js +4 -0
  37. package/lib/reanimated2/core.js +9 -3
  38. package/lib/reanimated2/globals.d.ts +3 -0
  39. package/lib/reanimated2/hook/useAnimatedGestureHandler.js +1 -2
  40. package/lib/reanimated2/hook/useAnimatedStyle.js +31 -14
  41. package/lib/reanimated2/hook/utils.js +14 -11
  42. package/lib/reanimated2/index.js +2 -0
  43. package/lib/reanimated2/interpolateColor.js +98 -0
  44. package/lib/reanimated2/js-reanimated/JSReanimated.js +1 -1
  45. package/lib/reanimated2/js-reanimated/commonTypes.js +1 -0
  46. package/lib/reanimated2/layoutReanimation/defaultAnimations/Default.js +14 -14
  47. package/lib/reanimated2/layoutReanimation/defaultAnimations/Flip.js +8 -8
  48. package/lib/reanimated2/layoutReanimation/defaultAnimations/Rotate.js +16 -16
  49. package/lib/reanimated2/layoutReanimation/defaultAnimations/Slide.js +15 -15
  50. package/lib/reanimated2/layoutReanimation/defaultAnimations/Zoom.js +4 -4
  51. package/lib/reanimated2/layoutReanimation/defaultTransitions/CurvedTransition.js +20 -8
  52. package/lib/reanimated2/layoutReanimation/defaultTransitions/EntryExitTransition.js +2 -2
  53. package/lib/reanimated2/layoutReanimation/defaultTransitions/FadingTransition.js +8 -8
  54. package/lib/reanimated2/layoutReanimation/defaultTransitions/JumpingTransition.js +10 -10
  55. package/lib/reanimated2/layoutReanimation/defaultTransitions/LinearTransition.js +8 -8
  56. package/lib/reanimated2/layoutReanimation/defaultTransitions/SequencedTransition.js +8 -8
  57. package/mock.js +2 -0
  58. package/package.json +8 -5
  59. package/plugin.js +3 -1
  60. package/react-native-reanimated.d.ts +101 -27
  61. package/src/Animated.js +3 -5
  62. package/src/createAnimatedComponent.tsx +13 -5
  63. package/src/reanimated1/core/Core.test.js +1 -1
  64. package/src/reanimated2/Colors.ts +6 -150
  65. package/src/reanimated2/Easing.ts +11 -0
  66. package/src/reanimated2/NativeMethods.ts +19 -6
  67. package/src/reanimated2/NativeReanimated/NativeReanimated.ts +1 -0
  68. package/src/reanimated2/NativeReanimated/index.ts +2 -2
  69. package/src/reanimated2/animation/commonTypes.ts +44 -40
  70. package/src/reanimated2/animation/decay.ts +1 -1
  71. package/src/reanimated2/animation/delay.ts +2 -16
  72. package/src/reanimated2/animation/index.ts +7 -8
  73. package/src/reanimated2/animation/repeat.ts +2 -12
  74. package/src/reanimated2/animation/sequence.ts +3 -10
  75. package/src/reanimated2/animation/spring.ts +1 -1
  76. package/src/reanimated2/animation/styleAnimation.ts +1 -18
  77. package/src/reanimated2/animation/timing.ts +1 -1
  78. package/src/reanimated2/animation/util.ts +12 -9
  79. package/src/reanimated2/commonTypes.ts +48 -1
  80. package/src/reanimated2/component/FlatList.tsx +44 -0
  81. package/src/reanimated2/component/WrappedComponents.ts +11 -0
  82. package/src/reanimated2/component/index.ts +9 -0
  83. package/src/reanimated2/core.ts +10 -6
  84. package/src/reanimated2/globals.d.ts +3 -0
  85. package/src/reanimated2/hook/commonTypes.ts +5 -0
  86. package/src/reanimated2/hook/useAnimatedGestureHandler.ts +1 -2
  87. package/src/reanimated2/hook/useAnimatedRef.ts +1 -5
  88. package/src/reanimated2/hook/useAnimatedStyle.ts +35 -16
  89. package/src/reanimated2/hook/utils.ts +18 -17
  90. package/src/reanimated2/index.ts +2 -0
  91. package/src/reanimated2/interpolateColor.ts +178 -0
  92. package/src/reanimated2/js-reanimated/JSReanimated.ts +3 -4
  93. package/src/reanimated2/js-reanimated/Mapper.ts +1 -1
  94. package/src/reanimated2/js-reanimated/MapperRegistry.ts +1 -1
  95. package/src/reanimated2/js-reanimated/commonTypes.ts +51 -0
  96. package/src/reanimated2/layoutReanimation/animationBuilder/commonTypes.ts +39 -20
  97. package/src/reanimated2/layoutReanimation/animationBuilder/index.ts +5 -1
  98. package/src/reanimated2/layoutReanimation/defaultAnimations/Default.ts +21 -15
  99. package/src/reanimated2/layoutReanimation/defaultAnimations/Flip.ts +29 -24
  100. package/src/reanimated2/layoutReanimation/defaultAnimations/Rotate.ts +61 -34
  101. package/src/reanimated2/layoutReanimation/defaultAnimations/Slide.ts +48 -33
  102. package/src/reanimated2/layoutReanimation/defaultAnimations/Zoom.ts +17 -12
  103. package/src/reanimated2/layoutReanimation/defaultTransitions/CurvedTransition.ts +20 -8
  104. package/src/reanimated2/layoutReanimation/defaultTransitions/EntryExitTransition.ts +14 -10
  105. package/src/reanimated2/layoutReanimation/defaultTransitions/FadingTransition.ts +8 -8
  106. package/src/reanimated2/layoutReanimation/defaultTransitions/JumpingTransition.ts +20 -14
  107. package/src/reanimated2/layoutReanimation/defaultTransitions/LinearTransition.ts +14 -8
  108. package/src/reanimated2/layoutReanimation/defaultTransitions/SequencedTransition.ts +24 -12
  109. package/src/reanimated2/utils.ts +1 -1
@@ -0,0 +1,178 @@
1
+ import {
2
+ hsvToColor,
3
+ RGBtoHSV,
4
+ rgbaColor,
5
+ processColor,
6
+ red,
7
+ green,
8
+ blue,
9
+ opacity,
10
+ } from './Colors';
11
+ import { makeMutable } from './core';
12
+ import { interpolate } from './interpolation';
13
+ // @ts-ignore JS file
14
+ import { Extrapolate } from '../reanimated1/derived';
15
+ import { SharedValue } from './commonTypes';
16
+ import { useSharedValue } from './hook/useSharedValue';
17
+
18
+ const interpolateColorsHSV = (
19
+ value: number,
20
+ inputRange: readonly number[],
21
+ colors: InterpolateHSV
22
+ ) => {
23
+ 'worklet';
24
+ const h = interpolate(value, inputRange, colors.h, Extrapolate.CLAMP);
25
+ const s = interpolate(value, inputRange, colors.s, Extrapolate.CLAMP);
26
+ const v = interpolate(value, inputRange, colors.v, Extrapolate.CLAMP);
27
+ return hsvToColor(h, s, v);
28
+ };
29
+
30
+ const interpolateColorsRGB = (
31
+ value: number,
32
+ inputRange: readonly number[],
33
+ colors: InterpolateRGB
34
+ ) => {
35
+ 'worklet';
36
+ const r = interpolate(value, inputRange, colors.r, Extrapolate.CLAMP);
37
+ const g = interpolate(value, inputRange, colors.g, Extrapolate.CLAMP);
38
+ const b = interpolate(value, inputRange, colors.b, Extrapolate.CLAMP);
39
+ const a = interpolate(value, inputRange, colors.a, Extrapolate.CLAMP);
40
+ return rgbaColor(r, g, b, a);
41
+ };
42
+
43
+ interface InterpolateRGB {
44
+ r: number[];
45
+ g: number[];
46
+ b: number[];
47
+ a: number[];
48
+ }
49
+
50
+ const getInterpolateRGB = (
51
+ colors: readonly (string | number)[]
52
+ ): InterpolateRGB => {
53
+ 'worklet';
54
+
55
+ const r = [];
56
+ const g = [];
57
+ const b = [];
58
+ const a = [];
59
+ for (let i = 0; i < colors.length; ++i) {
60
+ const color = colors[i];
61
+ const proocessedColor = processColor(color);
62
+ // explicit check in case if processedColor is 0
63
+ if (proocessedColor !== null && proocessedColor !== undefined) {
64
+ r.push(red(proocessedColor));
65
+ g.push(green(proocessedColor));
66
+ b.push(blue(proocessedColor));
67
+ a.push(opacity(proocessedColor));
68
+ }
69
+ }
70
+ return { r, g, b, a };
71
+ };
72
+
73
+ interface InterpolateHSV {
74
+ h: number[];
75
+ s: number[];
76
+ v: number[];
77
+ }
78
+
79
+ const getInterpolateHSV = (
80
+ colors: readonly (string | number)[]
81
+ ): InterpolateHSV => {
82
+ 'worklet';
83
+ const h = [];
84
+ const s = [];
85
+ const v = [];
86
+ for (let i = 0; i < colors.length; ++i) {
87
+ const color = colors[i];
88
+ const proocessedColor = RGBtoHSV(processColor(color) as any);
89
+ if (proocessedColor) {
90
+ h.push(proocessedColor.h);
91
+ s.push(proocessedColor.s);
92
+ v.push(proocessedColor.v);
93
+ }
94
+ }
95
+ return { h, s, v };
96
+ };
97
+
98
+ export const interpolateColor = (
99
+ value: number,
100
+ inputRange: readonly number[],
101
+ outputRange: readonly (string | number)[],
102
+ colorSpace: 'RGB' | 'HSV' = 'RGB'
103
+ ): string | number => {
104
+ 'worklet';
105
+ if (colorSpace === 'HSV') {
106
+ return interpolateColorsHSV(
107
+ value,
108
+ inputRange,
109
+ getInterpolateHSV(outputRange)
110
+ );
111
+ } else if (colorSpace === 'RGB') {
112
+ return interpolateColorsRGB(
113
+ value,
114
+ inputRange,
115
+ getInterpolateRGB(outputRange)
116
+ );
117
+ }
118
+ throw new Error(
119
+ `Invalid color space provided: ${colorSpace}. Supported values are: ['RGB', 'HSV']`
120
+ );
121
+ };
122
+
123
+ export enum ColorSpace {
124
+ RGB = 0,
125
+ HSV = 1,
126
+ }
127
+
128
+ export interface InterpolateConfig {
129
+ inputRange: readonly number[];
130
+ outputRange: readonly (string | number)[];
131
+ colorSpace: ColorSpace;
132
+ cache: SharedValue<InterpolateRGB | InterpolateHSV | null>;
133
+ }
134
+
135
+ export function useInterpolateConfig(
136
+ inputRange: readonly number[],
137
+ outputRange: readonly (string | number)[],
138
+ colorSpace = ColorSpace.RGB
139
+ ): SharedValue<InterpolateConfig> {
140
+ return useSharedValue({
141
+ inputRange,
142
+ outputRange,
143
+ colorSpace,
144
+ cache: makeMutable(null),
145
+ });
146
+ }
147
+
148
+ export const interpolateSharableColor = (
149
+ value: number,
150
+ interpolateConfig: SharedValue<InterpolateConfig>
151
+ ): string | number => {
152
+ 'worklet';
153
+ let colors = interpolateConfig.value.cache.value;
154
+ if (interpolateConfig.value.colorSpace === ColorSpace.RGB) {
155
+ if (!colors) {
156
+ colors = getInterpolateRGB(interpolateConfig.value.outputRange);
157
+ interpolateConfig.value.cache.value = colors;
158
+ }
159
+ return interpolateColorsRGB(
160
+ value,
161
+ interpolateConfig.value.inputRange,
162
+ colors as InterpolateRGB
163
+ );
164
+ } else if (interpolateConfig.value.colorSpace === ColorSpace.HSV) {
165
+ if (!colors) {
166
+ colors = getInterpolateHSV(interpolateConfig.value.outputRange);
167
+ interpolateConfig.value.cache.value = colors;
168
+ }
169
+ return interpolateColorsHSV(
170
+ value,
171
+ interpolateConfig.value.inputRange,
172
+ colors as InterpolateHSV
173
+ );
174
+ }
175
+ throw new Error(
176
+ `Invalid color space provided: ${interpolateConfig.value.colorSpace}. Supported values are: ['RGB', 'HSV']`
177
+ );
178
+ };
@@ -1,15 +1,14 @@
1
1
  import MapperRegistry from './MapperRegistry';
2
- import MutableValue from './MutableValue';
3
2
  import Mapper from './Mapper';
3
+ import MutableValue from './MutableValue';
4
4
  import { NativeReanimated } from '../NativeReanimated/NativeReanimated';
5
- import { Timestamp } from '../animation/commonTypes';
6
- import { NestedObjectValues } from '../commonTypes';
5
+ import { Timestamp, NestedObjectValues } from '../commonTypes';
7
6
 
8
7
  export default class JSReanimated extends NativeReanimated {
9
8
  _valueSetter?: <T>(value: T) => void = undefined;
10
9
 
11
10
  _renderRequested = false;
12
- _mapperRegistry = new MapperRegistry(this);
11
+ _mapperRegistry: MapperRegistry<any> = new MapperRegistry(this);
13
12
  _frames: ((timestamp: Timestamp) => void)[] = [];
14
13
  timeProvider: { now: () => number };
15
14
 
@@ -1,5 +1,5 @@
1
1
  import { NestedObjectValues } from '../commonTypes';
2
- import JSReanimated from './JSReanimated';
2
+ import { JSReanimated } from './commonTypes';
3
3
  import MutableValue from './MutableValue';
4
4
 
5
5
  export default class Mapper<T> {
@@ -1,4 +1,4 @@
1
- import JSReanimated from './JSReanimated';
1
+ import { JSReanimated } from './commonTypes';
2
2
  import Mapper from './Mapper';
3
3
 
4
4
  export default class MapperRegistry<T> {
@@ -0,0 +1,51 @@
1
+ import { Timestamp, NestedObjectValues } from '../commonTypes';
2
+ import MutableValue from './MutableValue';
3
+
4
+ export interface Mapper<T> {
5
+ MAPPER_ID?: number;
6
+ id: number;
7
+ inputs: MutableValue<T>[];
8
+ outputs: MutableValue<T>[];
9
+ mapper: () => void;
10
+ dirty: boolean;
11
+ execute(): void;
12
+ extractMutablesFromArray<T>(
13
+ array: NestedObjectValues<MutableValue<T>>
14
+ ): MutableValue<T>[];
15
+ }
16
+
17
+ export interface MapperRegistry<T> {
18
+ sortedMappers: Mapper<T>[];
19
+ mappers: Map<number, Mapper<T>>;
20
+ _module: JSReanimated;
21
+ updatedSinceLastExecute: boolean;
22
+ startMapper(mapper: Mapper<T>): number;
23
+ stopMapper(id: number): void;
24
+ execute(): void;
25
+ updateOrder(): void;
26
+ }
27
+
28
+ export interface JSReanimated {
29
+ _valueSetter?: <T>(value: T) => void;
30
+ _renderRequested: boolean;
31
+ _mapperRegistry: MapperRegistry<any>;
32
+ _frames: ((timestamp: Timestamp) => void)[];
33
+ timeProvider: { now: () => number };
34
+ pushFrame(frame: (timestamp: Timestamp) => void): void;
35
+ getTimestamp(): number;
36
+ maybeRequestRender(): void;
37
+ _onRender(timestampMs: number): void;
38
+ installCoreFunctions(valueSetter: <T>(value: T) => void): void;
39
+ makeShareable<T>(value: T): T;
40
+ makeMutable<T>(value: T): MutableValue<T>;
41
+ makeRemote<T>(object: Record<string, any>): T;
42
+ startMapper(
43
+ mapper: () => void,
44
+ inputs: NestedObjectValues<MutableValue<unknown>>[],
45
+ outputs: NestedObjectValues<MutableValue<unknown>>[]
46
+ ): number;
47
+ stopMapper(mapperId: number): void;
48
+ registerEventHandler<T>(_: string, __: (event: T) => void): string;
49
+ unregisterEventHandler(_: string): void;
50
+ enableLayoutAnimations(): void;
51
+ }
@@ -14,32 +14,43 @@ export type LayoutAnimation = {
14
14
 
15
15
  export type AnimationFunction = (a?: any, b?: any, c?: any) => any; // this is just a temporary mock
16
16
 
17
- export interface EntryExitAnimationsValues {
18
- originX: number;
19
- originY: number;
20
- width: number;
21
- height: number;
22
- globalOriginX: number;
23
- globalOriginY: number;
17
+ export interface EntryAnimationsValues {
18
+ targetOriginX: number;
19
+ targetOriginY: number;
20
+ targetWidth: number;
21
+ targetHeight: number;
22
+ targetGlobalOriginX: number;
23
+ targetGlobalOriginY: number;
24
+ }
25
+
26
+ export interface ExitAnimationsValues {
27
+ currentOriginX: number;
28
+ currentOriginY: number;
29
+ currentWidth: number;
30
+ currentHeight: number;
31
+ currentGlobalOriginX: number;
32
+ currentGlobalOriginY: number;
24
33
  }
25
34
 
26
35
  export type EntryExitAnimationFunction = (
27
- targetValues: EntryExitAnimationsValues
36
+ targetValues: EntryAnimationsValues | ExitAnimationsValues
28
37
  ) => LayoutAnimation;
29
38
 
39
+ export type AnimationConfigFunction<T> = (targetValues: T) => LayoutAnimation;
40
+
30
41
  export interface LayoutAnimationsValues {
31
- originX: number;
32
- originY: number;
33
- width: number;
34
- height: number;
35
- globalOriginX: number;
36
- globalOriginY: number;
37
- boriginX: number;
38
- boriginY: number;
39
- bwidth: number;
40
- bheight: number;
41
- bglobalOriginX: number;
42
- bglobalOriginY: number;
42
+ currentOriginX: number;
43
+ currentOriginY: number;
44
+ currentWidth: number;
45
+ currentHeight: number;
46
+ currentGlobalOriginX: number;
47
+ currentGlobalOriginY: number;
48
+ targetOriginX: number;
49
+ targetOriginY: number;
50
+ targetWidth: number;
51
+ targetHeight: number;
52
+ targetGlobalOriginX: number;
53
+ targetGlobalOriginY: number;
43
54
  windowWidth: number;
44
55
  windowHeight: number;
45
56
  }
@@ -76,3 +87,11 @@ export type LayoutAnimationAndConfig = [
76
87
  export interface IEntryExitAnimationBuilder {
77
88
  build: () => EntryExitAnimationFunction;
78
89
  }
90
+
91
+ export interface IEntryAnimationBuilder {
92
+ build: () => AnimationConfigFunction<EntryAnimationsValues>;
93
+ }
94
+
95
+ export interface IExitAnimationBuilder {
96
+ build: () => AnimationConfigFunction<ExitAnimationsValues>;
97
+ }
@@ -4,8 +4,12 @@ export { Keyframe } from './Keyframe';
4
4
  export {
5
5
  LayoutAnimation,
6
6
  AnimationFunction,
7
- EntryExitAnimationsValues,
7
+ EntryAnimationsValues,
8
+ ExitAnimationsValues,
8
9
  EntryExitAnimationFunction,
10
+ AnimationConfigFunction,
11
+ IEntryAnimationBuilder,
12
+ IExitAnimationBuilder,
9
13
  LayoutAnimationsValues,
10
14
  LayoutAnimationFunction,
11
15
  ILayoutAnimationBuilder,
@@ -1,42 +1,48 @@
1
1
  import {
2
2
  LayoutAnimationFunction,
3
- EntryExitAnimationFunction,
3
+ EntryAnimationsValues,
4
+ ExitAnimationsValues,
5
+ AnimationConfigFunction,
4
6
  } from '../animationBuilder/commonTypes';
5
7
 
6
8
  export const DefaultLayout: LayoutAnimationFunction = (values) => {
7
9
  'worklet';
8
10
  return {
9
11
  initialValues: {
10
- originX: values.originX,
11
- originY: values.originY,
12
- width: values.width,
13
- height: values.height,
12
+ originX: values.targetOriginX,
13
+ originY: values.targetOriginY,
14
+ width: values.targetWidth,
15
+ height: values.targetHeight,
14
16
  },
15
17
  animations: {},
16
18
  };
17
19
  };
18
20
 
19
- export const DefaultEntering: EntryExitAnimationFunction = (targetValues) => {
21
+ export const DefaultEntering: AnimationConfigFunction<EntryAnimationsValues> = (
22
+ values
23
+ ) => {
20
24
  'worklet';
21
25
  return {
22
26
  initialValues: {
23
- originX: targetValues.originX,
24
- originY: targetValues.originY,
25
- width: targetValues.width,
26
- height: targetValues.height,
27
+ originX: values.targetOriginX,
28
+ originY: values.targetOriginY,
29
+ width: values.targetWidth,
30
+ height: values.targetHeight,
27
31
  },
28
32
  animations: {},
29
33
  };
30
34
  };
31
35
 
32
- export const DefaultExiting: EntryExitAnimationFunction = (startValues) => {
36
+ export const DefaultExiting: AnimationConfigFunction<ExitAnimationsValues> = (
37
+ values
38
+ ) => {
33
39
  'worklet';
34
40
  return {
35
41
  initialValues: {
36
- originX: startValues.originX,
37
- originY: startValues.originY,
38
- width: startValues.width,
39
- height: startValues.height,
42
+ originX: values.currentOriginX,
43
+ originY: values.currentOriginY,
44
+ width: values.currentWidth,
45
+ height: values.currentHeight,
40
46
  },
41
47
  animations: {},
42
48
  };
@@ -1,17 +1,22 @@
1
1
  import {
2
2
  IEntryExitAnimationBuilder,
3
3
  EntryExitAnimationFunction,
4
+ EntryAnimationsValues,
5
+ ExitAnimationsValues,
6
+ AnimationConfigFunction,
7
+ IEntryAnimationBuilder,
8
+ IExitAnimationBuilder,
4
9
  } from '../animationBuilder/commonTypes';
5
10
  import { ComplexAnimationBuilder } from '../animationBuilder';
6
11
 
7
12
  export class FlipInXUp
8
13
  extends ComplexAnimationBuilder
9
- implements IEntryExitAnimationBuilder {
14
+ implements IEntryAnimationBuilder {
10
15
  static createInstance(): FlipInXUp {
11
16
  return new FlipInXUp();
12
17
  }
13
18
 
14
- build = (): EntryExitAnimationFunction => {
19
+ build = (): AnimationConfigFunction<EntryAnimationsValues> => {
15
20
  const delayFunction = this.getDelayFunction();
16
21
  const [animation, config] = this.getAnimationAndConfig();
17
22
  const delay = this.getDelay();
@@ -24,7 +29,7 @@ export class FlipInXUp
24
29
  transform: [
25
30
  { perspective: 500 },
26
31
  { rotateX: '90deg' },
27
- { translateY: -targetValues.height },
32
+ { translateY: -targetValues.targetHeight },
28
33
  ],
29
34
  },
30
35
  animations: {
@@ -42,12 +47,12 @@ export class FlipInXUp
42
47
 
43
48
  export class FlipInYLeft
44
49
  extends ComplexAnimationBuilder
45
- implements IEntryExitAnimationBuilder {
50
+ implements IEntryAnimationBuilder {
46
51
  static createInstance(): FlipInYLeft {
47
52
  return new FlipInYLeft();
48
53
  }
49
54
 
50
- build = (): EntryExitAnimationFunction => {
55
+ build = (): AnimationConfigFunction<EntryAnimationsValues> => {
51
56
  const delayFunction = this.getDelayFunction();
52
57
  const [animation, config] = this.getAnimationAndConfig();
53
58
  const delay = this.getDelay();
@@ -60,7 +65,7 @@ export class FlipInYLeft
60
65
  transform: [
61
66
  { perspective: 500 },
62
67
  { rotateY: '-90deg' },
63
- { translateX: -targetValues.width },
68
+ { translateX: -targetValues.targetWidth },
64
69
  ],
65
70
  },
66
71
  animations: {
@@ -78,12 +83,12 @@ export class FlipInYLeft
78
83
 
79
84
  export class FlipInXDown
80
85
  extends ComplexAnimationBuilder
81
- implements IEntryExitAnimationBuilder {
86
+ implements IEntryAnimationBuilder {
82
87
  static createInstance(): FlipInXDown {
83
88
  return new FlipInXDown();
84
89
  }
85
90
 
86
- build = (): EntryExitAnimationFunction => {
91
+ build = (): AnimationConfigFunction<EntryAnimationsValues> => {
87
92
  const delayFunction = this.getDelayFunction();
88
93
  const [animation, config] = this.getAnimationAndConfig();
89
94
  const delay = this.getDelay();
@@ -96,7 +101,7 @@ export class FlipInXDown
96
101
  transform: [
97
102
  { perspective: 500 },
98
103
  { rotateX: '-90deg' },
99
- { translateY: targetValues.height },
104
+ { translateY: targetValues.targetHeight },
100
105
  ],
101
106
  },
102
107
  animations: {
@@ -114,12 +119,12 @@ export class FlipInXDown
114
119
 
115
120
  export class FlipInYRight
116
121
  extends ComplexAnimationBuilder
117
- implements IEntryExitAnimationBuilder {
122
+ implements IEntryAnimationBuilder {
118
123
  static createInstance(): FlipInYRight {
119
124
  return new FlipInYRight();
120
125
  }
121
126
 
122
- build = (): EntryExitAnimationFunction => {
127
+ build = (): AnimationConfigFunction<EntryAnimationsValues> => {
123
128
  const delayFunction = this.getDelayFunction();
124
129
  const [animation, config] = this.getAnimationAndConfig();
125
130
  const delay = this.getDelay();
@@ -132,7 +137,7 @@ export class FlipInYRight
132
137
  transform: [
133
138
  { perspective: 500 },
134
139
  { rotateY: '90deg' },
135
- { translateX: targetValues.width },
140
+ { translateX: targetValues.targetWidth },
136
141
  ],
137
142
  },
138
143
  animations: {
@@ -212,12 +217,12 @@ export class FlipInEasyY
212
217
 
213
218
  export class FlipOutXUp
214
219
  extends ComplexAnimationBuilder
215
- implements IEntryExitAnimationBuilder {
220
+ implements IExitAnimationBuilder {
216
221
  static createInstance(): FlipOutXUp {
217
222
  return new FlipOutXUp();
218
223
  }
219
224
 
220
- build = (): EntryExitAnimationFunction => {
225
+ build = (): AnimationConfigFunction<ExitAnimationsValues> => {
221
226
  const delayFunction = this.getDelayFunction();
222
227
  const [animation, config] = this.getAnimationAndConfig();
223
228
  const delay = this.getDelay();
@@ -240,7 +245,7 @@ export class FlipOutXUp
240
245
  {
241
246
  translateY: delayFunction(
242
247
  delay,
243
- animation(-targetValues.height, config)
248
+ animation(-targetValues.currentHeight, config)
244
249
  ),
245
250
  },
246
251
  ],
@@ -253,12 +258,12 @@ export class FlipOutXUp
253
258
 
254
259
  export class FlipOutYLeft
255
260
  extends ComplexAnimationBuilder
256
- implements IEntryExitAnimationBuilder {
261
+ implements IExitAnimationBuilder {
257
262
  static createInstance(): FlipOutYLeft {
258
263
  return new FlipOutYLeft();
259
264
  }
260
265
 
261
- build = (): EntryExitAnimationFunction => {
266
+ build = (): AnimationConfigFunction<ExitAnimationsValues> => {
262
267
  const delayFunction = this.getDelayFunction();
263
268
  const [animation, config] = this.getAnimationAndConfig();
264
269
  const delay = this.getDelay();
@@ -281,7 +286,7 @@ export class FlipOutYLeft
281
286
  {
282
287
  translateX: delayFunction(
283
288
  delay,
284
- animation(-targetValues.width, config)
289
+ animation(-targetValues.currentWidth, config)
285
290
  ),
286
291
  },
287
292
  ],
@@ -294,12 +299,12 @@ export class FlipOutYLeft
294
299
 
295
300
  export class FlipOutXDown
296
301
  extends ComplexAnimationBuilder
297
- implements IEntryExitAnimationBuilder {
302
+ implements IExitAnimationBuilder {
298
303
  static createInstance(): FlipOutXDown {
299
304
  return new FlipOutXDown();
300
305
  }
301
306
 
302
- build = (): EntryExitAnimationFunction => {
307
+ build = (): AnimationConfigFunction<ExitAnimationsValues> => {
303
308
  const delayFunction = this.getDelayFunction();
304
309
  const [animation, config] = this.getAnimationAndConfig();
305
310
  const delay = this.getDelay();
@@ -322,7 +327,7 @@ export class FlipOutXDown
322
327
  {
323
328
  translateY: delayFunction(
324
329
  delay,
325
- animation(targetValues.height, config)
330
+ animation(targetValues.currentHeight, config)
326
331
  ),
327
332
  },
328
333
  ],
@@ -335,12 +340,12 @@ export class FlipOutXDown
335
340
 
336
341
  export class FlipOutYRight
337
342
  extends ComplexAnimationBuilder
338
- implements IEntryExitAnimationBuilder {
343
+ implements IExitAnimationBuilder {
339
344
  static createInstance(): FlipOutYRight {
340
345
  return new FlipOutYRight();
341
346
  }
342
347
 
343
- build = (): EntryExitAnimationFunction => {
348
+ build = (): AnimationConfigFunction<ExitAnimationsValues> => {
344
349
  const delayFunction = this.getDelayFunction();
345
350
  const [animation, config] = this.getAnimationAndConfig();
346
351
  const delay = this.getDelay();
@@ -363,7 +368,7 @@ export class FlipOutYRight
363
368
  {
364
369
  translateX: delayFunction(
365
370
  delay,
366
- animation(targetValues.width, config)
371
+ animation(targetValues.currentWidth, config)
367
372
  ),
368
373
  },
369
374
  ],