@hanzogui/animations-react-native 2.0.0-rc.41-hanzoai.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/dist/cjs/createAnimations.cjs +493 -0
- package/dist/cjs/createAnimations.native.js +572 -0
- package/dist/cjs/createAnimations.native.js.map +1 -0
- package/dist/cjs/index.cjs +21 -0
- package/dist/cjs/index.native.js +24 -0
- package/dist/cjs/index.native.js.map +1 -0
- package/dist/cjs/polyfill.cjs +3 -0
- package/dist/cjs/polyfill.native.js +6 -0
- package/dist/cjs/polyfill.native.js.map +1 -0
- package/dist/esm/createAnimations.mjs +451 -0
- package/dist/esm/createAnimations.mjs.map +1 -0
- package/dist/esm/createAnimations.native.js +527 -0
- package/dist/esm/createAnimations.native.js.map +1 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/index.mjs +2 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/esm/index.native.js +2 -0
- package/dist/esm/index.native.js.map +1 -0
- package/dist/esm/polyfill.mjs +4 -0
- package/dist/esm/polyfill.mjs.map +1 -0
- package/dist/esm/polyfill.native.js +4 -0
- package/dist/esm/polyfill.native.js.map +1 -0
- package/package.json +56 -0
- package/src/createAnimations.tsx +690 -0
- package/src/index.ts +3 -0
- package/src/polyfill.ts +5 -0
- package/types/createAnimations.d.ts +24 -0
- package/types/createAnimations.d.ts.map +11 -0
- package/types/index.d.ts +4 -0
- package/types/index.d.ts.map +11 -0
- package/types/polyfill.d.ts +2 -0
- package/types/polyfill.d.ts.map +11 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["requestAnimationFrame","globalThis","setImmediate","setTimeout"],"sources":["../../src/polyfill.ts"],"sourcesContent":[null],"mappings":"AACA,YAAW;;AACT,WAAAA,qBAAW,KAAuB,WACzB;EACXC,UAAA,mCAAAC,YAAA,mBAAAC,UAAA,GAAAD,YAAA","ignoreList":[]}
|
|
@@ -0,0 +1,451 @@
|
|
|
1
|
+
import { getEffectiveAnimation, normalizeTransition } from "@hanzogui/animation-helpers";
|
|
2
|
+
import { isWeb, useIsomorphicLayoutEffect } from "@hanzogui/constants";
|
|
3
|
+
import { ResetPresence, usePresence } from "@hanzogui/use-presence";
|
|
4
|
+
import { useEvent, useThemeWithState } from "@hanzogui/web";
|
|
5
|
+
import React from "react";
|
|
6
|
+
import { Animated } from "react-native-web";
|
|
7
|
+
const isFabric = !isWeb && typeof global !== "undefined" && !!global.__nativeFabricUIManager;
|
|
8
|
+
const resolveDynamicValue = (value, isDark) => {
|
|
9
|
+
if (value && typeof value === "object" && "dynamic" in value) {
|
|
10
|
+
const dynamicValue = isDark ? value.dynamic.dark : value.dynamic.light;
|
|
11
|
+
return dynamicValue;
|
|
12
|
+
}
|
|
13
|
+
return value;
|
|
14
|
+
};
|
|
15
|
+
const animatedStyleKey = {
|
|
16
|
+
transform: true,
|
|
17
|
+
opacity: true
|
|
18
|
+
};
|
|
19
|
+
const colorStyleKey = {
|
|
20
|
+
backgroundColor: true,
|
|
21
|
+
color: true,
|
|
22
|
+
borderColor: true,
|
|
23
|
+
borderLeftColor: true,
|
|
24
|
+
borderRightColor: true,
|
|
25
|
+
borderTopColor: true,
|
|
26
|
+
borderBottomColor: true
|
|
27
|
+
};
|
|
28
|
+
const costlyToAnimateStyleKey = {
|
|
29
|
+
borderRadius: true,
|
|
30
|
+
borderTopLeftRadius: true,
|
|
31
|
+
borderTopRightRadius: true,
|
|
32
|
+
borderBottomLeftRadius: true,
|
|
33
|
+
borderBottomRightRadius: true,
|
|
34
|
+
borderWidth: true,
|
|
35
|
+
borderLeftWidth: true,
|
|
36
|
+
borderRightWidth: true,
|
|
37
|
+
borderTopWidth: true,
|
|
38
|
+
borderBottomWidth: true,
|
|
39
|
+
...colorStyleKey
|
|
40
|
+
};
|
|
41
|
+
const AnimatedView = Animated.View;
|
|
42
|
+
const AnimatedText = Animated.Text;
|
|
43
|
+
function useAnimatedNumber(initial) {
|
|
44
|
+
const state = React.useRef(null);
|
|
45
|
+
if (!state.current) {
|
|
46
|
+
state.current = {
|
|
47
|
+
composite: null,
|
|
48
|
+
val: new Animated.Value(initial),
|
|
49
|
+
strategy: {
|
|
50
|
+
type: "spring"
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
return {
|
|
55
|
+
getInstance() {
|
|
56
|
+
return state.current.val;
|
|
57
|
+
},
|
|
58
|
+
getValue() {
|
|
59
|
+
return state.current.val["_value"];
|
|
60
|
+
},
|
|
61
|
+
stop() {
|
|
62
|
+
state.current.composite?.stop();
|
|
63
|
+
state.current.composite = null;
|
|
64
|
+
},
|
|
65
|
+
setValue(next, {
|
|
66
|
+
type,
|
|
67
|
+
...config
|
|
68
|
+
} = {
|
|
69
|
+
type: "spring"
|
|
70
|
+
}, onFinish) {
|
|
71
|
+
const val = state.current.val;
|
|
72
|
+
const handleFinish = onFinish ? ({
|
|
73
|
+
finished
|
|
74
|
+
}) => finished ? onFinish() : null : void 0;
|
|
75
|
+
if (type === "direct") {
|
|
76
|
+
val.setValue(next);
|
|
77
|
+
} else if (type === "spring") {
|
|
78
|
+
state.current.composite?.stop();
|
|
79
|
+
const composite = Animated.spring(val, {
|
|
80
|
+
...config,
|
|
81
|
+
toValue: next,
|
|
82
|
+
useNativeDriver: isFabric
|
|
83
|
+
});
|
|
84
|
+
composite.start(handleFinish);
|
|
85
|
+
state.current.composite = composite;
|
|
86
|
+
} else {
|
|
87
|
+
state.current.composite?.stop();
|
|
88
|
+
const composite = Animated.timing(val, {
|
|
89
|
+
...config,
|
|
90
|
+
toValue: next,
|
|
91
|
+
useNativeDriver: isFabric
|
|
92
|
+
});
|
|
93
|
+
composite.start(handleFinish);
|
|
94
|
+
state.current.composite = composite;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
const useAnimatedNumberReaction = ({
|
|
100
|
+
value
|
|
101
|
+
}, onValue) => {
|
|
102
|
+
const onChange = useEvent(current => {
|
|
103
|
+
onValue(current.value);
|
|
104
|
+
});
|
|
105
|
+
React.useEffect(() => {
|
|
106
|
+
const id = value.getInstance().addListener(onChange);
|
|
107
|
+
return () => {
|
|
108
|
+
value.getInstance().removeListener(id);
|
|
109
|
+
};
|
|
110
|
+
}, [value, onChange]);
|
|
111
|
+
};
|
|
112
|
+
const useAnimatedNumberStyle = (value, getStyle) => {
|
|
113
|
+
return getStyle(value.getInstance());
|
|
114
|
+
};
|
|
115
|
+
const useAnimatedNumbersStyle = (vals, getStyle) => {
|
|
116
|
+
return getStyle(...vals.map(v => v.getInstance()));
|
|
117
|
+
};
|
|
118
|
+
function createAnimations(animations, options) {
|
|
119
|
+
const nativeDriver = options?.useNativeDriver ?? isFabric;
|
|
120
|
+
return {
|
|
121
|
+
isReactNative: true,
|
|
122
|
+
inputStyle: "value",
|
|
123
|
+
outputStyle: "inline",
|
|
124
|
+
avoidReRenders: true,
|
|
125
|
+
animations,
|
|
126
|
+
needsCustomComponent: true,
|
|
127
|
+
View: AnimatedView,
|
|
128
|
+
Text: AnimatedText,
|
|
129
|
+
useAnimatedNumber,
|
|
130
|
+
useAnimatedNumberReaction,
|
|
131
|
+
useAnimatedNumberStyle,
|
|
132
|
+
useAnimatedNumbersStyle,
|
|
133
|
+
usePresence,
|
|
134
|
+
ResetPresence,
|
|
135
|
+
useAnimations: ({
|
|
136
|
+
props,
|
|
137
|
+
onDidAnimate,
|
|
138
|
+
style,
|
|
139
|
+
componentState,
|
|
140
|
+
presence,
|
|
141
|
+
useStyleEmitter
|
|
142
|
+
}) => {
|
|
143
|
+
const isDisabled = isWeb && componentState.unmounted === true;
|
|
144
|
+
const isExiting = presence?.[0] === false;
|
|
145
|
+
const sendExitComplete = presence?.[1];
|
|
146
|
+
const [, themeState] = useThemeWithState({});
|
|
147
|
+
const isDark = themeState?.scheme === "dark" || themeState?.name?.startsWith("dark");
|
|
148
|
+
const animateStyles = React.useRef({});
|
|
149
|
+
const animatedTranforms = React.useRef([]);
|
|
150
|
+
const animationsState = React.useRef(/* @__PURE__ */new WeakMap());
|
|
151
|
+
const exitCycleIdRef = React.useRef(0);
|
|
152
|
+
const exitCompletedRef = React.useRef(false);
|
|
153
|
+
const wasExitingRef = React.useRef(false);
|
|
154
|
+
const justStartedExiting = isExiting && !wasExitingRef.current;
|
|
155
|
+
const justStoppedExiting = !isExiting && wasExitingRef.current;
|
|
156
|
+
if (justStartedExiting) {
|
|
157
|
+
exitCycleIdRef.current++;
|
|
158
|
+
exitCompletedRef.current = false;
|
|
159
|
+
}
|
|
160
|
+
if (justStoppedExiting) {
|
|
161
|
+
exitCycleIdRef.current++;
|
|
162
|
+
}
|
|
163
|
+
const animateOnly = props.animateOnly || [];
|
|
164
|
+
const hasTransitionOnly = !!props.animateOnly;
|
|
165
|
+
const isEntering = !!componentState.unmounted;
|
|
166
|
+
const wasEnteringRef = React.useRef(isEntering);
|
|
167
|
+
const justFinishedEntering = wasEnteringRef.current && !isEntering;
|
|
168
|
+
React.useEffect(() => {
|
|
169
|
+
wasEnteringRef.current = isEntering;
|
|
170
|
+
});
|
|
171
|
+
const args = [JSON.stringify(style), componentState, isExiting, !!onDidAnimate, isDark, justFinishedEntering, hasTransitionOnly];
|
|
172
|
+
const res = React.useMemo(() => {
|
|
173
|
+
const runners = [];
|
|
174
|
+
const completions = [];
|
|
175
|
+
const animationState = isExiting ? "exit" : isEntering || justFinishedEntering ? "enter" : "default";
|
|
176
|
+
const nonAnimatedStyle = {};
|
|
177
|
+
for (const key in style) {
|
|
178
|
+
const rawVal = style[key];
|
|
179
|
+
const val = resolveDynamicValue(rawVal, isDark);
|
|
180
|
+
if (val === void 0) continue;
|
|
181
|
+
if (isDisabled) {
|
|
182
|
+
continue;
|
|
183
|
+
}
|
|
184
|
+
if (animatedStyleKey[key] == null && !costlyToAnimateStyleKey[key]) {
|
|
185
|
+
nonAnimatedStyle[key] = val;
|
|
186
|
+
continue;
|
|
187
|
+
}
|
|
188
|
+
if (hasTransitionOnly && !animateOnly.includes(key)) {
|
|
189
|
+
nonAnimatedStyle[key] = val;
|
|
190
|
+
continue;
|
|
191
|
+
}
|
|
192
|
+
if (key !== "transform") {
|
|
193
|
+
animateStyles.current[key] = update(key, animateStyles.current[key], val);
|
|
194
|
+
continue;
|
|
195
|
+
}
|
|
196
|
+
if (!val) continue;
|
|
197
|
+
if (typeof val === "string") {
|
|
198
|
+
console.warn(`Warning: Hanzogui can't animate string transforms yet!`);
|
|
199
|
+
continue;
|
|
200
|
+
}
|
|
201
|
+
for (const [index, transform] of val.entries()) {
|
|
202
|
+
if (!transform) continue;
|
|
203
|
+
const tkey = Object.keys(transform)[0];
|
|
204
|
+
const currentTransform = animatedTranforms.current[index]?.[tkey];
|
|
205
|
+
animatedTranforms.current[index] = {
|
|
206
|
+
[tkey]: update(tkey, currentTransform, transform[tkey])
|
|
207
|
+
};
|
|
208
|
+
animatedTranforms.current = [...animatedTranforms.current];
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
const animatedTransformStyle = animatedTranforms.current.length > 0 ? {
|
|
212
|
+
transform: animatedTranforms.current.map(r => {
|
|
213
|
+
const key = Object.keys(r)[0];
|
|
214
|
+
const val = animationsState.current.get(r[key])?.interpolation || r[key];
|
|
215
|
+
return {
|
|
216
|
+
[key]: val
|
|
217
|
+
};
|
|
218
|
+
})
|
|
219
|
+
} : {};
|
|
220
|
+
const animatedStyle = {
|
|
221
|
+
...Object.fromEntries(Object.entries(animateStyles.current).map(([k, v]) => [k, animationsState.current.get(v)?.interpolation || v])),
|
|
222
|
+
...animatedTransformStyle
|
|
223
|
+
};
|
|
224
|
+
return {
|
|
225
|
+
runners,
|
|
226
|
+
completions,
|
|
227
|
+
style: [nonAnimatedStyle, animatedStyle]
|
|
228
|
+
};
|
|
229
|
+
function update(key, animated, valIn) {
|
|
230
|
+
const isColorStyleKey = colorStyleKey[key];
|
|
231
|
+
const [val, type] = isColorStyleKey ? [0, void 0] : getValue(valIn);
|
|
232
|
+
let animateToValue = val;
|
|
233
|
+
const value = animated || new Animated.Value(val);
|
|
234
|
+
const curInterpolation = animationsState.current.get(value);
|
|
235
|
+
let interpolateArgs;
|
|
236
|
+
if (type) {
|
|
237
|
+
interpolateArgs = getInterpolated(curInterpolation?.current ?? value["_value"], val, type);
|
|
238
|
+
animationsState.current.set(value, {
|
|
239
|
+
interpolation: value.interpolate(interpolateArgs),
|
|
240
|
+
current: val
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
if (isColorStyleKey) {
|
|
244
|
+
animateToValue = curInterpolation?.animateToValue ? 0 : 1;
|
|
245
|
+
interpolateArgs = getColorInterpolated(curInterpolation?.current,
|
|
246
|
+
// valIn is the next color
|
|
247
|
+
valIn, animateToValue);
|
|
248
|
+
animationsState.current.set(value, {
|
|
249
|
+
current: valIn,
|
|
250
|
+
interpolation: value.interpolate(interpolateArgs),
|
|
251
|
+
animateToValue: curInterpolation?.animateToValue ? 0 : 1
|
|
252
|
+
});
|
|
253
|
+
}
|
|
254
|
+
if (value) {
|
|
255
|
+
const animationConfig = getAnimationConfig(key, animations, props.transition, animationState);
|
|
256
|
+
let resolve;
|
|
257
|
+
const promise = new Promise(res2 => {
|
|
258
|
+
resolve = res2;
|
|
259
|
+
});
|
|
260
|
+
completions.push(promise);
|
|
261
|
+
runners.push(() => {
|
|
262
|
+
value.stopAnimation();
|
|
263
|
+
function getAnimation() {
|
|
264
|
+
return Animated[animationConfig.type || "spring"](value, {
|
|
265
|
+
toValue: animateToValue,
|
|
266
|
+
useNativeDriver: nativeDriver,
|
|
267
|
+
...animationConfig
|
|
268
|
+
});
|
|
269
|
+
}
|
|
270
|
+
const animation = animationConfig.delay ? Animated.sequence([Animated.delay(animationConfig.delay), getAnimation()]) : getAnimation();
|
|
271
|
+
animation.start(({
|
|
272
|
+
finished
|
|
273
|
+
}) => {
|
|
274
|
+
if (finished || isExiting) {
|
|
275
|
+
resolve();
|
|
276
|
+
}
|
|
277
|
+
});
|
|
278
|
+
});
|
|
279
|
+
}
|
|
280
|
+
if (process.env.NODE_ENV === "development") {
|
|
281
|
+
if (props["debug"] === "verbose") {
|
|
282
|
+
console.info(" \u{1F4A0} animate", key, `from (${value["_value"]}) to`, valIn, `(${val})`, "type", type, "interpolate", interpolateArgs);
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
return value;
|
|
286
|
+
}
|
|
287
|
+
}, args);
|
|
288
|
+
React.useEffect(() => {
|
|
289
|
+
wasExitingRef.current = isExiting;
|
|
290
|
+
});
|
|
291
|
+
useIsomorphicLayoutEffect(() => {
|
|
292
|
+
res.runners.forEach(r => r());
|
|
293
|
+
const cycleId = exitCycleIdRef.current;
|
|
294
|
+
if (res.completions.length === 0) {
|
|
295
|
+
onDidAnimate?.();
|
|
296
|
+
if (isExiting && !exitCompletedRef.current) {
|
|
297
|
+
exitCompletedRef.current = true;
|
|
298
|
+
sendExitComplete?.();
|
|
299
|
+
}
|
|
300
|
+
return;
|
|
301
|
+
}
|
|
302
|
+
let cancel = false;
|
|
303
|
+
Promise.all(res.completions).then(() => {
|
|
304
|
+
if (cancel) return;
|
|
305
|
+
if (isExiting && cycleId !== exitCycleIdRef.current) return;
|
|
306
|
+
if (isExiting && exitCompletedRef.current) return;
|
|
307
|
+
onDidAnimate?.();
|
|
308
|
+
if (isExiting) {
|
|
309
|
+
exitCompletedRef.current = true;
|
|
310
|
+
sendExitComplete?.();
|
|
311
|
+
}
|
|
312
|
+
});
|
|
313
|
+
return () => {
|
|
314
|
+
cancel = true;
|
|
315
|
+
};
|
|
316
|
+
}, args);
|
|
317
|
+
useStyleEmitter?.(nextStyle => {
|
|
318
|
+
for (const key in nextStyle) {
|
|
319
|
+
const rawVal = nextStyle[key];
|
|
320
|
+
const val = resolveDynamicValue(rawVal, isDark);
|
|
321
|
+
if (val === void 0) continue;
|
|
322
|
+
if (key === "transform" && Array.isArray(val)) {
|
|
323
|
+
for (const [index, transform] of val.entries()) {
|
|
324
|
+
if (!transform) continue;
|
|
325
|
+
const tkey = Object.keys(transform)[0];
|
|
326
|
+
const currentTransform = animatedTranforms.current[index]?.[tkey];
|
|
327
|
+
animatedTranforms.current[index] = {
|
|
328
|
+
[tkey]: update(tkey, currentTransform, transform[tkey])
|
|
329
|
+
};
|
|
330
|
+
}
|
|
331
|
+
} else if (animatedStyleKey[key] != null || costlyToAnimateStyleKey[key]) {
|
|
332
|
+
animateStyles.current[key] = update(key, animateStyles.current[key], val);
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
res.runners.forEach(r => r());
|
|
336
|
+
function update(key, animated, valIn) {
|
|
337
|
+
const isColor = colorStyleKey[key];
|
|
338
|
+
const [numVal, type] = isColor ? [0, void 0] : getValue(valIn);
|
|
339
|
+
let animateToValue = numVal;
|
|
340
|
+
const value = animated || new Animated.Value(numVal);
|
|
341
|
+
const curInterpolation = animationsState.current.get(value);
|
|
342
|
+
if (type) {
|
|
343
|
+
animationsState.current.set(value, {
|
|
344
|
+
interpolation: value.interpolate(getInterpolated(curInterpolation?.current ?? value["_value"], numVal, type)),
|
|
345
|
+
current: numVal
|
|
346
|
+
});
|
|
347
|
+
}
|
|
348
|
+
if (isColor) {
|
|
349
|
+
animateToValue = curInterpolation?.animateToValue ? 0 : 1;
|
|
350
|
+
animationsState.current.set(value, {
|
|
351
|
+
current: valIn,
|
|
352
|
+
interpolation: value.interpolate(getColorInterpolated(curInterpolation?.current, valIn, animateToValue)),
|
|
353
|
+
animateToValue: curInterpolation?.animateToValue ? 0 : 1
|
|
354
|
+
});
|
|
355
|
+
}
|
|
356
|
+
const animationConfig = getAnimationConfig(key, animations, props.transition, "default");
|
|
357
|
+
res.runners.push(() => {
|
|
358
|
+
value.stopAnimation();
|
|
359
|
+
const anim = Animated[animationConfig.type || "spring"](value, {
|
|
360
|
+
toValue: animateToValue,
|
|
361
|
+
useNativeDriver: nativeDriver,
|
|
362
|
+
...animationConfig
|
|
363
|
+
});
|
|
364
|
+
(animationConfig.delay ? Animated.sequence([Animated.delay(animationConfig.delay), anim]) : anim).start();
|
|
365
|
+
});
|
|
366
|
+
return value;
|
|
367
|
+
}
|
|
368
|
+
});
|
|
369
|
+
if (process.env.NODE_ENV === "development") {
|
|
370
|
+
if (props["debug"] === "verbose") {
|
|
371
|
+
console.info(`Animated`, {
|
|
372
|
+
response: res,
|
|
373
|
+
inputStyle: style,
|
|
374
|
+
isExiting
|
|
375
|
+
});
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
return res;
|
|
379
|
+
}
|
|
380
|
+
};
|
|
381
|
+
}
|
|
382
|
+
function getColorInterpolated(currentColor, nextColor, animateToValue) {
|
|
383
|
+
const inputRange = [0, 1];
|
|
384
|
+
const outputRange = [currentColor ? currentColor : nextColor, nextColor];
|
|
385
|
+
if (animateToValue === 0) {
|
|
386
|
+
outputRange.reverse();
|
|
387
|
+
}
|
|
388
|
+
return {
|
|
389
|
+
inputRange,
|
|
390
|
+
outputRange
|
|
391
|
+
};
|
|
392
|
+
}
|
|
393
|
+
function getInterpolated(current, next, postfix = "deg") {
|
|
394
|
+
if (next === current) {
|
|
395
|
+
current = next - 1e-9;
|
|
396
|
+
}
|
|
397
|
+
const inputRange = [current, next];
|
|
398
|
+
const outputRange = [`${current}${postfix}`, `${next}${postfix}`];
|
|
399
|
+
if (next < current) {
|
|
400
|
+
inputRange.reverse();
|
|
401
|
+
outputRange.reverse();
|
|
402
|
+
}
|
|
403
|
+
return {
|
|
404
|
+
inputRange,
|
|
405
|
+
outputRange
|
|
406
|
+
};
|
|
407
|
+
}
|
|
408
|
+
function getAnimationConfig(key, animations, transition, animationState = "default") {
|
|
409
|
+
const normalized = normalizeTransition(transition);
|
|
410
|
+
const shortKey = transformShorthands[key];
|
|
411
|
+
const propAnimation = normalized.properties[key] ?? normalized.properties[shortKey];
|
|
412
|
+
let animationType = null;
|
|
413
|
+
let extraConf = {};
|
|
414
|
+
if (typeof propAnimation === "string") {
|
|
415
|
+
animationType = propAnimation;
|
|
416
|
+
} else if (propAnimation && typeof propAnimation === "object") {
|
|
417
|
+
animationType = propAnimation.type || getEffectiveAnimation(normalized, animationState);
|
|
418
|
+
extraConf = propAnimation;
|
|
419
|
+
} else {
|
|
420
|
+
animationType = getEffectiveAnimation(normalized, animationState);
|
|
421
|
+
}
|
|
422
|
+
if (normalized.delay && !extraConf.delay) {
|
|
423
|
+
extraConf = {
|
|
424
|
+
...extraConf,
|
|
425
|
+
delay: normalized.delay
|
|
426
|
+
};
|
|
427
|
+
}
|
|
428
|
+
const found = animationType ? animations[animationType] : {};
|
|
429
|
+
return {
|
|
430
|
+
...found,
|
|
431
|
+
// Apply global spring config overrides (from transition={['bouncy', { stiffness: 1000 }]})
|
|
432
|
+
...normalized.config,
|
|
433
|
+
// Property-specific config takes highest precedence
|
|
434
|
+
...extraConf
|
|
435
|
+
};
|
|
436
|
+
}
|
|
437
|
+
const transformShorthands = {
|
|
438
|
+
x: "translateX",
|
|
439
|
+
y: "translateY",
|
|
440
|
+
translateX: "x",
|
|
441
|
+
translateY: "y"
|
|
442
|
+
};
|
|
443
|
+
function getValue(input, isColor = false) {
|
|
444
|
+
if (typeof input !== "string") {
|
|
445
|
+
return [input];
|
|
446
|
+
}
|
|
447
|
+
const [_, number, after] = input.match(/([-0-9]+)(deg|%|px)/) ?? [];
|
|
448
|
+
return [+number, after];
|
|
449
|
+
}
|
|
450
|
+
export { AnimatedText, AnimatedView, createAnimations, useAnimatedNumber, useAnimatedNumberReaction, useAnimatedNumberStyle, useAnimatedNumbersStyle };
|
|
451
|
+
//# sourceMappingURL=createAnimations.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getEffectiveAnimation","normalizeTransition","isWeb","useIsomorphicLayoutEffect","ResetPresence","usePresence","useEvent","useThemeWithState","React","Animated","isFabric","global","__nativeFabricUIManager","resolveDynamicValue","value","isDark","dynamicValue","dynamic","dark","light","animatedStyleKey","transform","opacity","colorStyleKey","backgroundColor","color","borderColor","borderLeftColor","borderRightColor","borderTopColor","borderBottomColor","costlyToAnimateStyleKey","borderRadius","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","borderWidth","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth","AnimatedView","View","AnimatedText","Text","useAnimatedNumber","initial","state","useRef","current","composite","val","Value","strategy","type","getInstance","getValue","stop","setValue","next","config","onFinish","handleFinish","finished","spring","toValue","useNativeDriver","start","timing","useAnimatedNumberReaction","onValue","onChange","useEffect","id","addListener","removeListener","useAnimatedNumberStyle","getStyle","useAnimatedNumbersStyle","vals","map","v","createAnimations","animations","options","nativeDriver","isReactNative","inputStyle","outputStyle","avoidReRenders","needsCustomComponent","useAnimations","props","onDidAnimate","style","componentState","presence","useStyleEmitter","isDisabled","unmounted","isExiting","sendExitComplete","themeState","scheme","name","startsWith","animateStyles","animatedTranforms","animationsState","WeakMap","exitCycleIdRef","exitCompletedRef","wasExitingRef","justStartedExiting","justStoppedExiting","animateOnly","hasTransitionOnly","isEntering","wasEnteringRef","justFinishedEntering","args","JSON","stringify","res","useMemo","runners","completions","animationState","nonAnimatedStyle","key","rawVal","includes","update","console","warn","index","entries","tkey","Object","keys","currentTransform","animatedTransformStyle","length","r","get","interpolation","animatedStyle","fromEntries","k","animated","valIn","isColorStyleKey","animateToValue","curInterpolation","interpolateArgs","getInterpolated","set","interpolate","getColorInterpolated","animationConfig","getAnimationConfig","transition","resolve","promise","Promise","res2","push","stopAnimation","getAnimation","animation","delay","sequence","process","env","NODE_ENV","info","forEach","cycleId","cancel","all","then","nextStyle","Array","isArray","isColor","numVal","anim","response","currentColor","nextColor","inputRange","outputRange","reverse","postfix","normalized","shortKey","transformShorthands","propAnimation","properties","animationType","extraConf","found","x","y","translateX","translateY","input","_","number","after","match"],"sources":["../../src/createAnimations.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|