@hanzogui/animations-react-native 8.3.0 → 8.3.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.
- package/dist/cjs/createAnimations.js +634 -0
- package/dist/cjs/createAnimations.js.map +1 -0
- package/dist/cjs/index.js +6 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/polyfill.js +7 -0
- package/dist/cjs/polyfill.js.map +1 -0
- package/dist/esm/createAnimations.js +625 -0
- package/dist/esm/createAnimations.js.map +1 -0
- package/dist/esm/index.js +3 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/polyfill.js +7 -0
- package/dist/esm/polyfill.js.map +1 -0
- package/package.json +18 -18
- package/src/index.ts +2 -2
- package/types/createAnimations.d.ts +9 -8
- package/types/createAnimations.d.ts.map +1 -11
- package/types/index.d.ts +2 -3
- package/types/index.d.ts.map +1 -11
- package/types/polyfill.d.ts +0 -1
- package/types/polyfill.d.ts.map +1 -11
- package/dist/cjs/createAnimations.cjs +0 -566
- package/dist/cjs/createAnimations.native.js +0 -648
- package/dist/cjs/createAnimations.native.js.map +0 -1
- package/dist/cjs/index.cjs +0 -21
- package/dist/cjs/index.native.js +0 -24
- package/dist/cjs/index.native.js.map +0 -1
- package/dist/cjs/polyfill.cjs +0 -3
- package/dist/cjs/polyfill.native.js +0 -6
- package/dist/cjs/polyfill.native.js.map +0 -1
- package/dist/esm/createAnimations.mjs +0 -524
- package/dist/esm/createAnimations.mjs.map +0 -1
- package/dist/esm/createAnimations.native.js +0 -603
- package/dist/esm/createAnimations.native.js.map +0 -1
- package/dist/esm/index.mjs +0 -3
- package/dist/esm/index.mjs.map +0 -1
- package/dist/esm/index.native.js +0 -3
- package/dist/esm/index.native.js.map +0 -1
- package/dist/esm/polyfill.mjs +0 -4
- package/dist/esm/polyfill.mjs.map +0 -1
- package/dist/esm/polyfill.native.js +0 -4
- package/dist/esm/polyfill.native.js.map +0 -1
|
@@ -1,524 +0,0 @@
|
|
|
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 layoutStyleKey = {
|
|
29
|
-
height: true,
|
|
30
|
-
width: true,
|
|
31
|
-
minHeight: true,
|
|
32
|
-
maxHeight: true,
|
|
33
|
-
minWidth: true,
|
|
34
|
-
maxWidth: true
|
|
35
|
-
};
|
|
36
|
-
function hasAnimatedLayoutKey(style, isDark, animateOnly) {
|
|
37
|
-
for (const key in layoutStyleKey) {
|
|
38
|
-
if (animateOnly && !animateOnly.includes(key)) continue;
|
|
39
|
-
if (typeof resolveDynamicValue(style[key], isDark) === "number") return true;
|
|
40
|
-
}
|
|
41
|
-
return false;
|
|
42
|
-
}
|
|
43
|
-
function isAnimatableColor(value) {
|
|
44
|
-
if (typeof value !== "string") return false;
|
|
45
|
-
if (value === "") return false;
|
|
46
|
-
if (value.includes("var(") || value.includes("calc(")) return false;
|
|
47
|
-
return true;
|
|
48
|
-
}
|
|
49
|
-
const costlyToAnimateStyleKey = {
|
|
50
|
-
borderRadius: true,
|
|
51
|
-
borderTopLeftRadius: true,
|
|
52
|
-
borderTopRightRadius: true,
|
|
53
|
-
borderBottomLeftRadius: true,
|
|
54
|
-
borderBottomRightRadius: true,
|
|
55
|
-
borderWidth: true,
|
|
56
|
-
borderLeftWidth: true,
|
|
57
|
-
borderRightWidth: true,
|
|
58
|
-
borderTopWidth: true,
|
|
59
|
-
borderBottomWidth: true,
|
|
60
|
-
...colorStyleKey
|
|
61
|
-
};
|
|
62
|
-
const AnimatedView = Animated.View;
|
|
63
|
-
const AnimatedText = Animated.Text;
|
|
64
|
-
function useAnimatedNumber(initial) {
|
|
65
|
-
const state = React.useRef(null);
|
|
66
|
-
if (!state.current) {
|
|
67
|
-
state.current = {
|
|
68
|
-
composite: null,
|
|
69
|
-
val: new Animated.Value(initial),
|
|
70
|
-
strategy: {
|
|
71
|
-
type: "spring"
|
|
72
|
-
}
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
return {
|
|
76
|
-
getInstance() {
|
|
77
|
-
return state.current.val;
|
|
78
|
-
},
|
|
79
|
-
getValue() {
|
|
80
|
-
return state.current.val["_value"];
|
|
81
|
-
},
|
|
82
|
-
stop() {
|
|
83
|
-
state.current.composite?.stop();
|
|
84
|
-
state.current.composite = null;
|
|
85
|
-
},
|
|
86
|
-
setValue(next, {
|
|
87
|
-
type,
|
|
88
|
-
...config
|
|
89
|
-
} = {
|
|
90
|
-
type: "spring"
|
|
91
|
-
}, onFinish) {
|
|
92
|
-
const val = state.current.val;
|
|
93
|
-
const handleFinish = onFinish ? ({
|
|
94
|
-
finished
|
|
95
|
-
}) => finished ? onFinish() : null : void 0;
|
|
96
|
-
if (type === "direct") {
|
|
97
|
-
val.setValue(next);
|
|
98
|
-
} else if (type === "spring") {
|
|
99
|
-
state.current.composite?.stop();
|
|
100
|
-
const composite = Animated.spring(val, {
|
|
101
|
-
...config,
|
|
102
|
-
toValue: next,
|
|
103
|
-
useNativeDriver: isFabric
|
|
104
|
-
});
|
|
105
|
-
composite.start(handleFinish);
|
|
106
|
-
state.current.composite = composite;
|
|
107
|
-
} else {
|
|
108
|
-
state.current.composite?.stop();
|
|
109
|
-
const composite = Animated.timing(val, {
|
|
110
|
-
...config,
|
|
111
|
-
toValue: next,
|
|
112
|
-
useNativeDriver: isFabric
|
|
113
|
-
});
|
|
114
|
-
composite.start(handleFinish);
|
|
115
|
-
state.current.composite = composite;
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
};
|
|
119
|
-
}
|
|
120
|
-
const useAnimatedNumberReaction = ({
|
|
121
|
-
value
|
|
122
|
-
}, onValue) => {
|
|
123
|
-
const onChange = useEvent(current => {
|
|
124
|
-
onValue(current.value);
|
|
125
|
-
});
|
|
126
|
-
React.useEffect(() => {
|
|
127
|
-
const id = value.getInstance().addListener(onChange);
|
|
128
|
-
return () => {
|
|
129
|
-
value.getInstance().removeListener(id);
|
|
130
|
-
};
|
|
131
|
-
}, [value, onChange]);
|
|
132
|
-
};
|
|
133
|
-
const useAnimatedNumberStyle = (value, getStyle) => {
|
|
134
|
-
return getStyle(value.getInstance());
|
|
135
|
-
};
|
|
136
|
-
const useAnimatedNumbersStyle = (vals, getStyle) => {
|
|
137
|
-
return getStyle(...vals.map(v => v.getInstance()));
|
|
138
|
-
};
|
|
139
|
-
function createAnimations(animations, options) {
|
|
140
|
-
const nativeDriver = options?.useNativeDriver ?? isFabric;
|
|
141
|
-
return {
|
|
142
|
-
isReactNative: true,
|
|
143
|
-
inputStyle: "value",
|
|
144
|
-
outputStyle: "inline",
|
|
145
|
-
avoidReRenders: true,
|
|
146
|
-
animations,
|
|
147
|
-
needsCustomComponent: true,
|
|
148
|
-
View: AnimatedView,
|
|
149
|
-
Text: AnimatedText,
|
|
150
|
-
useAnimatedNumber,
|
|
151
|
-
useAnimatedNumberReaction,
|
|
152
|
-
useAnimatedNumberStyle,
|
|
153
|
-
useAnimatedNumbersStyle,
|
|
154
|
-
usePresence,
|
|
155
|
-
ResetPresence,
|
|
156
|
-
useAnimations: ({
|
|
157
|
-
props,
|
|
158
|
-
onDidAnimate,
|
|
159
|
-
style,
|
|
160
|
-
componentState,
|
|
161
|
-
presence,
|
|
162
|
-
stateRef,
|
|
163
|
-
useStyleEmitter
|
|
164
|
-
}) => {
|
|
165
|
-
const isDisabled = isWeb && componentState.unmounted === true;
|
|
166
|
-
const isExiting = presence?.[0] === false;
|
|
167
|
-
const sendExitComplete = presence?.[1];
|
|
168
|
-
const [, themeState] = useThemeWithState({});
|
|
169
|
-
const isDark = themeState?.scheme === "dark" || themeState?.name?.startsWith("dark");
|
|
170
|
-
const animateStyles = React.useRef({});
|
|
171
|
-
const animatedTranforms = React.useRef([]);
|
|
172
|
-
const animationsState = React.useRef(/* @__PURE__ */new WeakMap());
|
|
173
|
-
const pseudoActiveRef = React.useRef(false);
|
|
174
|
-
const exitCycleIdRef = React.useRef(0);
|
|
175
|
-
const exitCompletedRef = React.useRef(false);
|
|
176
|
-
const wasExitingRef = React.useRef(false);
|
|
177
|
-
const justStartedExiting = isExiting && !wasExitingRef.current;
|
|
178
|
-
const justStoppedExiting = !isExiting && wasExitingRef.current;
|
|
179
|
-
if (justStartedExiting) {
|
|
180
|
-
exitCycleIdRef.current++;
|
|
181
|
-
exitCompletedRef.current = false;
|
|
182
|
-
}
|
|
183
|
-
if (justStoppedExiting) {
|
|
184
|
-
exitCycleIdRef.current++;
|
|
185
|
-
}
|
|
186
|
-
const animateOnly = props.animateOnly || [];
|
|
187
|
-
const hasTransitionOnly = !!props.animateOnly;
|
|
188
|
-
const isEntering = !!componentState.unmounted;
|
|
189
|
-
const wasEnteringRef = React.useRef(isEntering);
|
|
190
|
-
const justFinishedEntering = wasEnteringRef.current && !isEntering;
|
|
191
|
-
React.useEffect(() => {
|
|
192
|
-
wasEnteringRef.current = isEntering;
|
|
193
|
-
});
|
|
194
|
-
const args = [JSON.stringify(style), componentState, isExiting, !!onDidAnimate, isDark, justFinishedEntering, hasTransitionOnly];
|
|
195
|
-
const res = React.useMemo(() => {
|
|
196
|
-
const runners = [];
|
|
197
|
-
const completions = [];
|
|
198
|
-
const animationState = isExiting ? "exit" : isEntering || justFinishedEntering ? "enter" : "default";
|
|
199
|
-
const nonAnimatedStyle = {};
|
|
200
|
-
const useNativeDriverForNode = nativeDriver && !hasAnimatedLayoutKey(style, isDark, hasTransitionOnly ? animateOnly : void 0);
|
|
201
|
-
const seenAnimateKeys = /* @__PURE__ */new Set();
|
|
202
|
-
let sawTransform = false;
|
|
203
|
-
let transformCount = 0;
|
|
204
|
-
for (const key in style) {
|
|
205
|
-
const rawVal = style[key];
|
|
206
|
-
const val = resolveDynamicValue(rawVal, isDark);
|
|
207
|
-
if (val === void 0) continue;
|
|
208
|
-
if (isDisabled) {
|
|
209
|
-
continue;
|
|
210
|
-
}
|
|
211
|
-
if (animatedStyleKey[key] == null && !costlyToAnimateStyleKey[key] && !layoutStyleKey[key]) {
|
|
212
|
-
nonAnimatedStyle[key] = val;
|
|
213
|
-
continue;
|
|
214
|
-
}
|
|
215
|
-
if (hasTransitionOnly && !animateOnly.includes(key)) {
|
|
216
|
-
nonAnimatedStyle[key] = val;
|
|
217
|
-
continue;
|
|
218
|
-
}
|
|
219
|
-
if (layoutStyleKey[key] && typeof val !== "number") {
|
|
220
|
-
nonAnimatedStyle[key] = val;
|
|
221
|
-
continue;
|
|
222
|
-
}
|
|
223
|
-
if (colorStyleKey[key] && !isAnimatableColor(val)) {
|
|
224
|
-
nonAnimatedStyle[key] = val;
|
|
225
|
-
continue;
|
|
226
|
-
}
|
|
227
|
-
if (key !== "transform") {
|
|
228
|
-
animateStyles.current[key] = update(key, animateStyles.current[key], val);
|
|
229
|
-
seenAnimateKeys.add(key);
|
|
230
|
-
continue;
|
|
231
|
-
}
|
|
232
|
-
if (!val) continue;
|
|
233
|
-
if (typeof val === "string") {
|
|
234
|
-
console.warn(`Warning: Gui can't animate string transforms yet!`);
|
|
235
|
-
continue;
|
|
236
|
-
}
|
|
237
|
-
sawTransform = true;
|
|
238
|
-
for (const transform of val) {
|
|
239
|
-
if (!transform) continue;
|
|
240
|
-
const index = transformCount++;
|
|
241
|
-
const tkey = Object.keys(transform)[0];
|
|
242
|
-
const currentTransform = animatedTranforms.current[index]?.[tkey];
|
|
243
|
-
animatedTranforms.current[index] = {
|
|
244
|
-
[tkey]: update(tkey, currentTransform, transform[tkey])
|
|
245
|
-
};
|
|
246
|
-
animatedTranforms.current = [...animatedTranforms.current];
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
if (!isExiting && !isDisabled && !pseudoActiveRef.current) {
|
|
250
|
-
for (const k in animateStyles.current) {
|
|
251
|
-
if (!seenAnimateKeys.has(k)) delete animateStyles.current[k];
|
|
252
|
-
}
|
|
253
|
-
if (!sawTransform) {
|
|
254
|
-
if (animatedTranforms.current.length) animatedTranforms.current = [];
|
|
255
|
-
} else if (animatedTranforms.current.length > transformCount) {
|
|
256
|
-
animatedTranforms.current = animatedTranforms.current.slice(0, transformCount);
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
const animatedTransformStyle = animatedTranforms.current.length > 0 ? {
|
|
260
|
-
transform: animatedTranforms.current.map(r => {
|
|
261
|
-
const key = Object.keys(r)[0];
|
|
262
|
-
const val = animationsState.current.get(r[key])?.interpolation || r[key];
|
|
263
|
-
return {
|
|
264
|
-
[key]: val
|
|
265
|
-
};
|
|
266
|
-
})
|
|
267
|
-
} : {};
|
|
268
|
-
const animatedStyle = {
|
|
269
|
-
...Object.fromEntries(Object.entries(animateStyles.current).map(([k, v]) => [k, animationsState.current.get(v)?.interpolation || v])),
|
|
270
|
-
...animatedTransformStyle
|
|
271
|
-
};
|
|
272
|
-
return {
|
|
273
|
-
runners,
|
|
274
|
-
completions,
|
|
275
|
-
style: [nonAnimatedStyle, animatedStyle]
|
|
276
|
-
};
|
|
277
|
-
function update(key, animated, valIn) {
|
|
278
|
-
const isColorStyleKey = colorStyleKey[key];
|
|
279
|
-
const [val, type] = isColorStyleKey ? [0, void 0] : getValue(valIn);
|
|
280
|
-
let animateToValue = val;
|
|
281
|
-
const value = animated || new Animated.Value(val);
|
|
282
|
-
const curInterpolation = animationsState.current.get(value);
|
|
283
|
-
let interpolateArgs;
|
|
284
|
-
if (type) {
|
|
285
|
-
interpolateArgs = getInterpolated(curInterpolation?.current ?? value["_value"], val, type);
|
|
286
|
-
animationsState.current.set(value, {
|
|
287
|
-
interpolation: value.interpolate(interpolateArgs),
|
|
288
|
-
current: val
|
|
289
|
-
});
|
|
290
|
-
}
|
|
291
|
-
if (isColorStyleKey) {
|
|
292
|
-
animateToValue = curInterpolation?.animateToValue ? 0 : 1;
|
|
293
|
-
interpolateArgs = getColorInterpolated(curInterpolation?.current,
|
|
294
|
-
// valIn is the next color
|
|
295
|
-
valIn, animateToValue);
|
|
296
|
-
animationsState.current.set(value, {
|
|
297
|
-
current: valIn,
|
|
298
|
-
interpolation: value.interpolate(interpolateArgs),
|
|
299
|
-
animateToValue: curInterpolation?.animateToValue ? 0 : 1
|
|
300
|
-
});
|
|
301
|
-
}
|
|
302
|
-
if (value) {
|
|
303
|
-
const animationConfig = getAnimationConfig(key, animations, props.transition, animationState);
|
|
304
|
-
let resolve;
|
|
305
|
-
const promise = new Promise(res2 => {
|
|
306
|
-
resolve = res2;
|
|
307
|
-
});
|
|
308
|
-
completions.push(promise);
|
|
309
|
-
runners.push(() => {
|
|
310
|
-
value.stopAnimation();
|
|
311
|
-
function getAnimation() {
|
|
312
|
-
return Animated[animationConfig.type || "spring"](value, {
|
|
313
|
-
toValue: animateToValue,
|
|
314
|
-
...animationConfig,
|
|
315
|
-
useNativeDriver: useNativeDriverForNode
|
|
316
|
-
});
|
|
317
|
-
}
|
|
318
|
-
const animation = animationConfig.delay ? Animated.sequence([Animated.delay(animationConfig.delay), getAnimation()]) : getAnimation();
|
|
319
|
-
animation.start(({
|
|
320
|
-
finished
|
|
321
|
-
}) => {
|
|
322
|
-
if (finished || isExiting) {
|
|
323
|
-
resolve();
|
|
324
|
-
}
|
|
325
|
-
});
|
|
326
|
-
});
|
|
327
|
-
}
|
|
328
|
-
if (process.env.NODE_ENV === "development") {
|
|
329
|
-
if (props["debug"] === "verbose") {
|
|
330
|
-
console.info(" \u{1F4A0} animate", key, `from (${value["_value"]}) to`, valIn, `(${val})`, "type", type, "interpolate", interpolateArgs);
|
|
331
|
-
}
|
|
332
|
-
}
|
|
333
|
-
return value;
|
|
334
|
-
}
|
|
335
|
-
}, args);
|
|
336
|
-
React.useEffect(() => {
|
|
337
|
-
wasExitingRef.current = isExiting;
|
|
338
|
-
});
|
|
339
|
-
useIsomorphicLayoutEffect(() => {
|
|
340
|
-
res.runners.forEach(r => r());
|
|
341
|
-
const cycleId = exitCycleIdRef.current;
|
|
342
|
-
if (res.completions.length === 0) {
|
|
343
|
-
onDidAnimate?.();
|
|
344
|
-
if (isExiting && !exitCompletedRef.current) {
|
|
345
|
-
exitCompletedRef.current = true;
|
|
346
|
-
sendExitComplete?.();
|
|
347
|
-
}
|
|
348
|
-
return;
|
|
349
|
-
}
|
|
350
|
-
let cancel = false;
|
|
351
|
-
Promise.all(res.completions).then(() => {
|
|
352
|
-
if (cancel) return;
|
|
353
|
-
if (isExiting && cycleId !== exitCycleIdRef.current) return;
|
|
354
|
-
if (isExiting && exitCompletedRef.current) return;
|
|
355
|
-
onDidAnimate?.();
|
|
356
|
-
if (isExiting) {
|
|
357
|
-
exitCompletedRef.current = true;
|
|
358
|
-
sendExitComplete?.();
|
|
359
|
-
}
|
|
360
|
-
});
|
|
361
|
-
return () => {
|
|
362
|
-
cancel = true;
|
|
363
|
-
};
|
|
364
|
-
}, args);
|
|
365
|
-
useStyleEmitter?.((nextStyle, _effectiveTransition, pseudoActive) => {
|
|
366
|
-
pseudoActiveRef.current = pseudoActive === true;
|
|
367
|
-
const runners = [];
|
|
368
|
-
const seenAnimateKeys = /* @__PURE__ */new Set();
|
|
369
|
-
let transformCount = 0;
|
|
370
|
-
let animatedShapeChanged = false;
|
|
371
|
-
const useNativeDriverForNode = nativeDriver && !hasAnimatedLayoutKey(nextStyle, isDark) && !Object.keys(animateStyles.current).some(key => layoutStyleKey[key]);
|
|
372
|
-
for (const key in nextStyle) {
|
|
373
|
-
const rawVal = nextStyle[key];
|
|
374
|
-
const val = resolveDynamicValue(rawVal, isDark);
|
|
375
|
-
if (val === void 0) continue;
|
|
376
|
-
if (key === "transform" && Array.isArray(val)) {
|
|
377
|
-
for (const transform of val) {
|
|
378
|
-
if (!transform) continue;
|
|
379
|
-
const index = transformCount++;
|
|
380
|
-
const tkey = Object.keys(transform)[0];
|
|
381
|
-
const currentTransform = animatedTranforms.current[index]?.[tkey];
|
|
382
|
-
if (!currentTransform) animatedShapeChanged = true;
|
|
383
|
-
animatedTranforms.current[index] = {
|
|
384
|
-
[tkey]: update(tkey, currentTransform, transform[tkey])
|
|
385
|
-
};
|
|
386
|
-
}
|
|
387
|
-
} else if (animatedStyleKey[key] != null || costlyToAnimateStyleKey[key] || layoutStyleKey[key]) {
|
|
388
|
-
if (layoutStyleKey[key] && typeof val !== "number") continue;
|
|
389
|
-
if (colorStyleKey[key] && !isAnimatableColor(val)) continue;
|
|
390
|
-
if (!animateStyles.current[key]) animatedShapeChanged = true;
|
|
391
|
-
animateStyles.current[key] = update(key, animateStyles.current[key], val);
|
|
392
|
-
seenAnimateKeys.add(key);
|
|
393
|
-
}
|
|
394
|
-
}
|
|
395
|
-
for (const key in animateStyles.current) {
|
|
396
|
-
if (!seenAnimateKeys.has(key)) {
|
|
397
|
-
delete animateStyles.current[key];
|
|
398
|
-
animatedShapeChanged = true;
|
|
399
|
-
}
|
|
400
|
-
}
|
|
401
|
-
if (animatedTranforms.current.length > transformCount) {
|
|
402
|
-
animatedTranforms.current = animatedTranforms.current.slice(0, transformCount);
|
|
403
|
-
animatedShapeChanged = true;
|
|
404
|
-
}
|
|
405
|
-
runners.forEach(r => r());
|
|
406
|
-
if (animatedShapeChanged && stateRef.current.nextState) {
|
|
407
|
-
stateRef.current.baseSetStateShallow?.(stateRef.current.nextState);
|
|
408
|
-
}
|
|
409
|
-
function update(key, animated, valIn) {
|
|
410
|
-
const isColor = colorStyleKey[key];
|
|
411
|
-
const [numVal, type] = isColor ? [0, void 0] : getValue(valIn);
|
|
412
|
-
let animateToValue = numVal;
|
|
413
|
-
const value = animated || new Animated.Value(numVal);
|
|
414
|
-
const curInterpolation = animationsState.current.get(value);
|
|
415
|
-
if (type) {
|
|
416
|
-
animationsState.current.set(value, {
|
|
417
|
-
interpolation: value.interpolate(getInterpolated(curInterpolation?.current ?? value["_value"], numVal, type)),
|
|
418
|
-
current: numVal
|
|
419
|
-
});
|
|
420
|
-
}
|
|
421
|
-
if (isColor) {
|
|
422
|
-
animateToValue = curInterpolation?.animateToValue ? 0 : 1;
|
|
423
|
-
animationsState.current.set(value, {
|
|
424
|
-
current: valIn,
|
|
425
|
-
interpolation: value.interpolate(getColorInterpolated(curInterpolation?.current, valIn, animateToValue)),
|
|
426
|
-
animateToValue: curInterpolation?.animateToValue ? 0 : 1
|
|
427
|
-
});
|
|
428
|
-
}
|
|
429
|
-
const animationConfig = getAnimationConfig(key, animations, props.transition, "default");
|
|
430
|
-
runners.push(() => {
|
|
431
|
-
value.stopAnimation();
|
|
432
|
-
const anim = Animated[animationConfig.type || "spring"](value, {
|
|
433
|
-
toValue: animateToValue,
|
|
434
|
-
...animationConfig,
|
|
435
|
-
useNativeDriver: useNativeDriverForNode
|
|
436
|
-
});
|
|
437
|
-
(animationConfig.delay ? Animated.sequence([Animated.delay(animationConfig.delay), anim]) : anim).start();
|
|
438
|
-
});
|
|
439
|
-
return value;
|
|
440
|
-
}
|
|
441
|
-
});
|
|
442
|
-
if (process.env.NODE_ENV === "development") {
|
|
443
|
-
if (props["debug"] === "verbose") {
|
|
444
|
-
console.info(`Animated`, {
|
|
445
|
-
response: res,
|
|
446
|
-
inputStyle: style,
|
|
447
|
-
isExiting
|
|
448
|
-
});
|
|
449
|
-
}
|
|
450
|
-
}
|
|
451
|
-
return res;
|
|
452
|
-
}
|
|
453
|
-
};
|
|
454
|
-
}
|
|
455
|
-
function getColorInterpolated(currentColor, nextColor, animateToValue) {
|
|
456
|
-
const inputRange = [0, 1];
|
|
457
|
-
const outputRange = [currentColor ? currentColor : nextColor, nextColor];
|
|
458
|
-
if (animateToValue === 0) {
|
|
459
|
-
outputRange.reverse();
|
|
460
|
-
}
|
|
461
|
-
return {
|
|
462
|
-
inputRange,
|
|
463
|
-
outputRange
|
|
464
|
-
};
|
|
465
|
-
}
|
|
466
|
-
function getInterpolated(current, next, postfix = "deg") {
|
|
467
|
-
if (next === current) {
|
|
468
|
-
current = next - 1e-9;
|
|
469
|
-
}
|
|
470
|
-
const inputRange = [current, next];
|
|
471
|
-
const outputRange = [`${current}${postfix}`, `${next}${postfix}`];
|
|
472
|
-
if (next < current) {
|
|
473
|
-
inputRange.reverse();
|
|
474
|
-
outputRange.reverse();
|
|
475
|
-
}
|
|
476
|
-
return {
|
|
477
|
-
inputRange,
|
|
478
|
-
outputRange
|
|
479
|
-
};
|
|
480
|
-
}
|
|
481
|
-
function getAnimationConfig(key, animations, transition, animationState = "default") {
|
|
482
|
-
const normalized = normalizeTransition(transition);
|
|
483
|
-
const shortKey = transformShorthands[key];
|
|
484
|
-
const propAnimation = normalized.properties[key] ?? normalized.properties[shortKey];
|
|
485
|
-
let animationType = null;
|
|
486
|
-
let extraConf = {};
|
|
487
|
-
if (typeof propAnimation === "string") {
|
|
488
|
-
animationType = propAnimation;
|
|
489
|
-
} else if (propAnimation && typeof propAnimation === "object") {
|
|
490
|
-
animationType = propAnimation.type || getEffectiveAnimation(normalized, animationState);
|
|
491
|
-
extraConf = propAnimation;
|
|
492
|
-
} else {
|
|
493
|
-
animationType = getEffectiveAnimation(normalized, animationState);
|
|
494
|
-
}
|
|
495
|
-
if (normalized.delay && !extraConf.delay) {
|
|
496
|
-
extraConf = {
|
|
497
|
-
...extraConf,
|
|
498
|
-
delay: normalized.delay
|
|
499
|
-
};
|
|
500
|
-
}
|
|
501
|
-
const found = animationType ? animations[animationType] : {};
|
|
502
|
-
return {
|
|
503
|
-
...found,
|
|
504
|
-
// Apply global spring config overrides (from transition={['bouncy', { stiffness: 1000 }]})
|
|
505
|
-
...normalized.config,
|
|
506
|
-
// Property-specific config takes highest precedence
|
|
507
|
-
...extraConf
|
|
508
|
-
};
|
|
509
|
-
}
|
|
510
|
-
const transformShorthands = {
|
|
511
|
-
x: "translateX",
|
|
512
|
-
y: "translateY",
|
|
513
|
-
translateX: "x",
|
|
514
|
-
translateY: "y"
|
|
515
|
-
};
|
|
516
|
-
function getValue(input, isColor = false) {
|
|
517
|
-
if (typeof input !== "string") {
|
|
518
|
-
return [input];
|
|
519
|
-
}
|
|
520
|
-
const [_, number, after] = input.match(/([-0-9]+)(deg|%|px)/) ?? [];
|
|
521
|
-
return [+number, after];
|
|
522
|
-
}
|
|
523
|
-
export { AnimatedText, AnimatedView, createAnimations, useAnimatedNumber, useAnimatedNumberReaction, useAnimatedNumberStyle, useAnimatedNumbersStyle };
|
|
524
|
-
//# sourceMappingURL=createAnimations.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
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","layoutStyleKey","height","width","minHeight","maxHeight","minWidth","maxWidth","hasAnimatedLayoutKey","style","animateOnly","key","includes","isAnimatableColor","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","componentState","presence","stateRef","useStyleEmitter","isDisabled","unmounted","isExiting","sendExitComplete","themeState","scheme","name","startsWith","animateStyles","animatedTranforms","animationsState","WeakMap","pseudoActiveRef","exitCycleIdRef","exitCompletedRef","wasExitingRef","justStartedExiting","justStoppedExiting","hasTransitionOnly","isEntering","wasEnteringRef","justFinishedEntering","args","JSON","stringify","res","useMemo","runners","completions","animationState","nonAnimatedStyle","useNativeDriverForNode","seenAnimateKeys","Set","sawTransform","transformCount","rawVal","update","add","console","warn","index","tkey","Object","keys","currentTransform","k","has","length","slice","animatedTransformStyle","r","get","interpolation","animatedStyle","fromEntries","entries","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","_effectiveTransition","pseudoActive","animatedShapeChanged","some","Array","isArray","nextState","baseSetStateShallow","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":[]}
|