@hanzogui/animations-reanimated 2.0.0
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 +507 -0
- package/dist/cjs/createAnimations.native.js +623 -0
- package/dist/cjs/createAnimations.native.js.map +1 -0
- package/dist/cjs/index.cjs +18 -0
- package/dist/cjs/index.native.js +21 -0
- package/dist/cjs/index.native.js.map +1 -0
- package/dist/esm/createAnimations.mjs +473 -0
- package/dist/esm/createAnimations.mjs.map +1 -0
- package/dist/esm/createAnimations.native.js +586 -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/package.json +52 -0
- package/src/createAnimations.tsx +935 -0
- package/src/index.ts +1 -0
- package/types/createAnimations.d.ts +40 -0
- package/types/createAnimations.d.ts.map +11 -0
- package/types/index.d.ts +3 -0
- package/types/index.d.ts.map +11 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __copyProps = (to, from, except, desc) => {
|
|
6
|
+
if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
|
|
7
|
+
get: () => from[key],
|
|
8
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
9
|
+
});
|
|
10
|
+
return to;
|
|
11
|
+
},
|
|
12
|
+
__reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
13
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
14
|
+
value: !0
|
|
15
|
+
}), mod);
|
|
16
|
+
var index_exports = {};
|
|
17
|
+
module.exports = __toCommonJS(index_exports);
|
|
18
|
+
__reExport(index_exports, require("./createAnimations.cjs"), module.exports);
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __copyProps = (to, from, except, desc) => {
|
|
8
|
+
if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
|
|
9
|
+
get: () => from[key],
|
|
10
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
11
|
+
});
|
|
12
|
+
return to;
|
|
13
|
+
},
|
|
14
|
+
__reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
15
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
16
|
+
value: !0
|
|
17
|
+
}), mod);
|
|
18
|
+
var index_exports = {};
|
|
19
|
+
module.exports = __toCommonJS(index_exports);
|
|
20
|
+
__reExport(index_exports, require("./createAnimations.native.js"), module.exports);
|
|
21
|
+
//# sourceMappingURL=index.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","index_exports","module","exports"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,aAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAP,YAAc,CAAAK,aAAA","ignoreList":[]}
|
|
@@ -0,0 +1,473 @@
|
|
|
1
|
+
import { normalizeTransition, getEffectiveAnimation } from "@hanzogui/animation-helpers";
|
|
2
|
+
import { getSplitStyles, hooks, isWeb, Text, useComposedRefs, useEvent, useIsomorphicLayoutEffect, useThemeWithState, View } from "@hanzogui/core";
|
|
3
|
+
import { ResetPresence, usePresence } from "@hanzogui/use-presence";
|
|
4
|
+
import React, { forwardRef, useMemo, useRef } from "react";
|
|
5
|
+
import Animated_, { cancelAnimation, runOnJS, useAnimatedReaction, useAnimatedStyle, useDerivedValue, useSharedValue, withDelay, withSpring, withTiming } from "react-native-reanimated";
|
|
6
|
+
import { jsx } from "react/jsx-runtime";
|
|
7
|
+
const getDefaultExport = module => {
|
|
8
|
+
const mod = module;
|
|
9
|
+
return (mod.__esModule || mod[Symbol.toStringTag] === "Module") && mod.default || mod;
|
|
10
|
+
},
|
|
11
|
+
Animated = getDefaultExport(Animated_),
|
|
12
|
+
resolveDynamicValue = (value, isDark) => {
|
|
13
|
+
if (value !== null && typeof value == "object" && "dynamic" in value && typeof value.dynamic == "object") {
|
|
14
|
+
const dynamic = value.dynamic;
|
|
15
|
+
return isDark ? dynamic.dark : dynamic.light;
|
|
16
|
+
}
|
|
17
|
+
return value;
|
|
18
|
+
},
|
|
19
|
+
applyAnimation = (targetValue, config, callback) => {
|
|
20
|
+
"worklet";
|
|
21
|
+
|
|
22
|
+
const delay = config.delay;
|
|
23
|
+
let animatedValue;
|
|
24
|
+
return config.type === "timing" ? animatedValue = withTiming(targetValue, config, callback) : animatedValue = withSpring(targetValue, config, callback), delay && delay > 0 && (animatedValue = withDelay(delay, animatedValue)), animatedValue;
|
|
25
|
+
},
|
|
26
|
+
ANIMATABLE_PROPERTIES = {
|
|
27
|
+
// Transform
|
|
28
|
+
transform: !0,
|
|
29
|
+
// Opacity
|
|
30
|
+
opacity: !0,
|
|
31
|
+
// Dimensions
|
|
32
|
+
height: !0,
|
|
33
|
+
width: !0,
|
|
34
|
+
minWidth: !0,
|
|
35
|
+
minHeight: !0,
|
|
36
|
+
maxWidth: !0,
|
|
37
|
+
maxHeight: !0,
|
|
38
|
+
// Background
|
|
39
|
+
backgroundColor: !0,
|
|
40
|
+
// Border colors
|
|
41
|
+
borderColor: !0,
|
|
42
|
+
borderLeftColor: !0,
|
|
43
|
+
borderRightColor: !0,
|
|
44
|
+
borderTopColor: !0,
|
|
45
|
+
borderBottomColor: !0,
|
|
46
|
+
// Border radius
|
|
47
|
+
borderRadius: !0,
|
|
48
|
+
borderTopLeftRadius: !0,
|
|
49
|
+
borderTopRightRadius: !0,
|
|
50
|
+
borderBottomLeftRadius: !0,
|
|
51
|
+
borderBottomRightRadius: !0,
|
|
52
|
+
// Border width
|
|
53
|
+
borderWidth: !0,
|
|
54
|
+
borderLeftWidth: !0,
|
|
55
|
+
borderRightWidth: !0,
|
|
56
|
+
borderTopWidth: !0,
|
|
57
|
+
borderBottomWidth: !0,
|
|
58
|
+
// Text
|
|
59
|
+
color: !0,
|
|
60
|
+
fontSize: !0,
|
|
61
|
+
fontWeight: !0,
|
|
62
|
+
lineHeight: !0,
|
|
63
|
+
letterSpacing: !0,
|
|
64
|
+
// Position
|
|
65
|
+
left: !0,
|
|
66
|
+
right: !0,
|
|
67
|
+
top: !0,
|
|
68
|
+
bottom: !0,
|
|
69
|
+
// Margin
|
|
70
|
+
margin: !0,
|
|
71
|
+
marginTop: !0,
|
|
72
|
+
marginBottom: !0,
|
|
73
|
+
marginLeft: !0,
|
|
74
|
+
marginRight: !0,
|
|
75
|
+
marginHorizontal: !0,
|
|
76
|
+
marginVertical: !0,
|
|
77
|
+
// Padding
|
|
78
|
+
padding: !0,
|
|
79
|
+
paddingTop: !0,
|
|
80
|
+
paddingBottom: !0,
|
|
81
|
+
paddingLeft: !0,
|
|
82
|
+
paddingRight: !0,
|
|
83
|
+
paddingHorizontal: !0,
|
|
84
|
+
paddingVertical: !0,
|
|
85
|
+
// Flex/Gap
|
|
86
|
+
gap: !0,
|
|
87
|
+
rowGap: !0,
|
|
88
|
+
columnGap: !0,
|
|
89
|
+
flex: !0,
|
|
90
|
+
flexGrow: !0,
|
|
91
|
+
flexShrink: !0
|
|
92
|
+
},
|
|
93
|
+
canAnimateProperty = (key, value, animateOnly) => !(!ANIMATABLE_PROPERTIES[key] || value === "auto" || typeof value == "string" && value.startsWith("calc") || animateOnly && !animateOnly.includes(key));
|
|
94
|
+
function createWebAnimatedComponent(defaultTag) {
|
|
95
|
+
const isText = defaultTag === "span",
|
|
96
|
+
Component = Animated.createAnimatedComponent(forwardRef((propsIn, ref) => {
|
|
97
|
+
const {
|
|
98
|
+
forwardedRef,
|
|
99
|
+
render = defaultTag,
|
|
100
|
+
...rest
|
|
101
|
+
} = propsIn,
|
|
102
|
+
hostRef = useRef(null),
|
|
103
|
+
composedRefs = useComposedRefs(forwardedRef, ref, hostRef),
|
|
104
|
+
stateRef = useRef({
|
|
105
|
+
get host() {
|
|
106
|
+
return hostRef.current;
|
|
107
|
+
}
|
|
108
|
+
}),
|
|
109
|
+
[, themeState] = useThemeWithState({}),
|
|
110
|
+
viewProps = getSplitStyles(rest, isText ? Text.staticConfig : View.staticConfig, themeState?.theme ?? {}, themeState?.name ?? "", {
|
|
111
|
+
unmounted: !1
|
|
112
|
+
}, {
|
|
113
|
+
isAnimated: !1,
|
|
114
|
+
noClass: !0
|
|
115
|
+
})?.viewProps ?? {},
|
|
116
|
+
Element = render,
|
|
117
|
+
transformedProps = hooks.usePropsTransform?.(render, viewProps, stateRef, !1);
|
|
118
|
+
return /* @__PURE__ */jsx(Element, {
|
|
119
|
+
...transformedProps,
|
|
120
|
+
ref: composedRefs
|
|
121
|
+
});
|
|
122
|
+
}));
|
|
123
|
+
return Component.acceptRenderProp = !0, Component;
|
|
124
|
+
}
|
|
125
|
+
const AnimatedView = createWebAnimatedComponent("div"),
|
|
126
|
+
AnimatedText = createWebAnimatedComponent("span");
|
|
127
|
+
function buildTransitionConfig(transition, animations, animationState, styleKeys) {
|
|
128
|
+
const normalized = normalizeTransition(transition),
|
|
129
|
+
effectiveKey = getEffectiveAnimation(normalized, animationState);
|
|
130
|
+
let base = effectiveKey ? animations[effectiveKey] ?? {
|
|
131
|
+
type: "spring"
|
|
132
|
+
} : {
|
|
133
|
+
type: "spring"
|
|
134
|
+
};
|
|
135
|
+
normalized.delay && (base = {
|
|
136
|
+
...base,
|
|
137
|
+
delay: normalized.delay
|
|
138
|
+
}), normalized.config && (base = {
|
|
139
|
+
...base,
|
|
140
|
+
...normalized.config
|
|
141
|
+
}, base.type !== "timing" && normalized.config.duration !== void 0 && normalized.config.damping === void 0 && normalized.config.stiffness === void 0 && normalized.config.mass === void 0 && (base = {
|
|
142
|
+
...base,
|
|
143
|
+
type: "timing"
|
|
144
|
+
}));
|
|
145
|
+
const propertyConfigs = {};
|
|
146
|
+
for (const key of styleKeys) {
|
|
147
|
+
const propAnimation = normalized.properties[key];
|
|
148
|
+
if (typeof propAnimation == "string") propertyConfigs[key] = animations[propAnimation] ?? base;else if (propAnimation && typeof propAnimation == "object") {
|
|
149
|
+
const configType = propAnimation.type,
|
|
150
|
+
baseForProp = configType ? animations[configType] ?? base : base;
|
|
151
|
+
propertyConfigs[key] = {
|
|
152
|
+
...baseForProp,
|
|
153
|
+
...propAnimation
|
|
154
|
+
};
|
|
155
|
+
} else propertyConfigs[key] = base;
|
|
156
|
+
}
|
|
157
|
+
return {
|
|
158
|
+
baseConfig: base,
|
|
159
|
+
propertyConfigs
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
function getStyleKeys(style) {
|
|
163
|
+
const keys = new Set(Object.keys(style));
|
|
164
|
+
if (style.transform && Array.isArray(style.transform)) for (const t of style.transform) t && typeof t == "object" && keys.add(Object.keys(t)[0]);
|
|
165
|
+
return keys;
|
|
166
|
+
}
|
|
167
|
+
function createAnimations(animationsConfig) {
|
|
168
|
+
const animations = {};
|
|
169
|
+
for (const key in animationsConfig) animations[key] = {
|
|
170
|
+
type: "spring",
|
|
171
|
+
...animationsConfig[key]
|
|
172
|
+
};
|
|
173
|
+
return {
|
|
174
|
+
needsCustomComponent: !0,
|
|
175
|
+
View: isWeb ? AnimatedView : Animated.View,
|
|
176
|
+
Text: isWeb ? AnimatedText : Animated.Text,
|
|
177
|
+
isReactNative: !0,
|
|
178
|
+
inputStyle: "value",
|
|
179
|
+
outputStyle: "inline",
|
|
180
|
+
avoidReRenders: !0,
|
|
181
|
+
animations,
|
|
182
|
+
usePresence,
|
|
183
|
+
ResetPresence,
|
|
184
|
+
// =========================================================================
|
|
185
|
+
// useAnimatedNumber - For imperative animated values
|
|
186
|
+
// =========================================================================
|
|
187
|
+
useAnimatedNumber(initial) {
|
|
188
|
+
const sharedValue = useSharedValue(initial);
|
|
189
|
+
return useMemo(() => ({
|
|
190
|
+
getInstance() {
|
|
191
|
+
"worklet";
|
|
192
|
+
|
|
193
|
+
return sharedValue;
|
|
194
|
+
},
|
|
195
|
+
getValue() {
|
|
196
|
+
"worklet";
|
|
197
|
+
|
|
198
|
+
return sharedValue.value;
|
|
199
|
+
},
|
|
200
|
+
setValue(next, config = {
|
|
201
|
+
type: "spring"
|
|
202
|
+
}, onFinish) {
|
|
203
|
+
"worklet";
|
|
204
|
+
|
|
205
|
+
const handleFinish = onFinish ? () => {
|
|
206
|
+
"worklet";
|
|
207
|
+
|
|
208
|
+
runOnJS(onFinish)();
|
|
209
|
+
} : void 0;
|
|
210
|
+
config.type === "direct" ? (sharedValue.value = next, onFinish?.()) : config.type === "spring" ? sharedValue.value = withSpring(next, config, handleFinish) : sharedValue.value = withTiming(next, config, handleFinish);
|
|
211
|
+
},
|
|
212
|
+
stop() {
|
|
213
|
+
"worklet";
|
|
214
|
+
|
|
215
|
+
cancelAnimation(sharedValue);
|
|
216
|
+
}
|
|
217
|
+
}), [sharedValue]);
|
|
218
|
+
},
|
|
219
|
+
// =========================================================================
|
|
220
|
+
// useAnimatedNumberReaction - React to animated value changes
|
|
221
|
+
// =========================================================================
|
|
222
|
+
useAnimatedNumberReaction({
|
|
223
|
+
value
|
|
224
|
+
}, onValue) {
|
|
225
|
+
const instance = value.getInstance();
|
|
226
|
+
return useAnimatedReaction(() => instance.value, (next, prev) => {
|
|
227
|
+
prev !== next && runOnJS(onValue)(next);
|
|
228
|
+
}, [onValue, instance]);
|
|
229
|
+
},
|
|
230
|
+
// =========================================================================
|
|
231
|
+
// useAnimatedNumberStyle - Create animated styles from values
|
|
232
|
+
// =========================================================================
|
|
233
|
+
useAnimatedNumberStyle(val, getStyle) {
|
|
234
|
+
const instance = val.getInstance(),
|
|
235
|
+
derivedValue = useDerivedValue(() => instance.value, [instance, getStyle]);
|
|
236
|
+
return useAnimatedStyle(() => getStyle(derivedValue.value), [val, getStyle, derivedValue, instance]);
|
|
237
|
+
},
|
|
238
|
+
// =========================================================================
|
|
239
|
+
// useAnimations - Main animation hook for components
|
|
240
|
+
// =========================================================================
|
|
241
|
+
useAnimations(animationProps) {
|
|
242
|
+
const {
|
|
243
|
+
props,
|
|
244
|
+
presence,
|
|
245
|
+
style,
|
|
246
|
+
componentState,
|
|
247
|
+
useStyleEmitter,
|
|
248
|
+
themeName,
|
|
249
|
+
stateRef,
|
|
250
|
+
styleState
|
|
251
|
+
} = animationProps,
|
|
252
|
+
isHydrating = componentState.unmounted === !0,
|
|
253
|
+
isMounting = componentState.unmounted === "should-enter",
|
|
254
|
+
isEntering = !!componentState.unmounted,
|
|
255
|
+
isExiting = presence?.[0] === !1,
|
|
256
|
+
wasEnteringRef = useRef(isEntering),
|
|
257
|
+
justFinishedEntering = wasEnteringRef.current && !isEntering;
|
|
258
|
+
React.useEffect(() => {
|
|
259
|
+
wasEnteringRef.current = isEntering;
|
|
260
|
+
});
|
|
261
|
+
const effectiveTransition = styleState?.effectiveTransition ?? props.transition,
|
|
262
|
+
normalized = normalizeTransition(effectiveTransition),
|
|
263
|
+
animationState = isExiting ? "exit" : isMounting || justFinishedEntering ? "enter" : "default",
|
|
264
|
+
animationKey = getEffectiveAnimation(normalized, animationState),
|
|
265
|
+
disableAnimation = isHydrating || !animationKey,
|
|
266
|
+
isDark = themeName?.startsWith("dark") || !1,
|
|
267
|
+
sendExitComplete = presence?.[1],
|
|
268
|
+
exitCycleIdRef = useRef(0),
|
|
269
|
+
pendingExitKeysRef = useRef(/* @__PURE__ */new Set()),
|
|
270
|
+
exitCompletedRef = useRef(!1),
|
|
271
|
+
wasExitingRef = useRef(!1),
|
|
272
|
+
justStartedExiting = isExiting && !wasExitingRef.current,
|
|
273
|
+
justStoppedExiting = !isExiting && wasExitingRef.current,
|
|
274
|
+
markExitKeyDone = useEvent((key, cycleId, finished) => {
|
|
275
|
+
cycleId === exitCycleIdRef.current && (exitCompletedRef.current || (pendingExitKeysRef.current.delete(key), pendingExitKeysRef.current.size === 0 && (exitCompletedRef.current = !0, sendExitComplete?.())));
|
|
276
|
+
}),
|
|
277
|
+
isExitingRef = useSharedValue(isExiting),
|
|
278
|
+
exitCycleIdShared = useSharedValue(exitCycleIdRef.current);
|
|
279
|
+
justStartedExiting && (exitCycleIdRef.current++, exitCompletedRef.current = !1, pendingExitKeysRef.current.clear()), justStoppedExiting && (exitCycleIdRef.current++, pendingExitKeysRef.current.clear()), useIsomorphicLayoutEffect(() => {
|
|
280
|
+
isExitingRef.value = isExiting, exitCycleIdShared.value = exitCycleIdRef.current;
|
|
281
|
+
}, [isExiting, exitCycleIdRef.current]), React.useEffect(() => {
|
|
282
|
+
wasExitingRef.current = isExiting;
|
|
283
|
+
});
|
|
284
|
+
const animatedTargetsRef = useSharedValue(null),
|
|
285
|
+
staticTargetsRef = useSharedValue(null),
|
|
286
|
+
transformTargetsRef = useSharedValue(null),
|
|
287
|
+
{
|
|
288
|
+
animatedStyles,
|
|
289
|
+
staticStyles
|
|
290
|
+
} = useMemo(() => {
|
|
291
|
+
const animated = {},
|
|
292
|
+
staticStyles2 = {},
|
|
293
|
+
animateOnly = props.animateOnly;
|
|
294
|
+
for (const key in style) {
|
|
295
|
+
const rawValue = style[key],
|
|
296
|
+
value = resolveDynamicValue(rawValue, isDark);
|
|
297
|
+
if (value !== void 0) {
|
|
298
|
+
if (disableAnimation) {
|
|
299
|
+
staticStyles2[key] = value;
|
|
300
|
+
continue;
|
|
301
|
+
}
|
|
302
|
+
canAnimateProperty(key, value, animateOnly) ? animated[key] = value : staticStyles2[key] = value;
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
if (isMounting) for (const key in animated) staticStyles2[key] = animated[key];
|
|
306
|
+
return {
|
|
307
|
+
animatedStyles: animated,
|
|
308
|
+
staticStyles: staticStyles2
|
|
309
|
+
};
|
|
310
|
+
}, [disableAnimation, style, isDark, isMounting, props.animateOnly]),
|
|
311
|
+
{
|
|
312
|
+
baseConfig,
|
|
313
|
+
propertyConfigs
|
|
314
|
+
} = useMemo(() => isHydrating ? {
|
|
315
|
+
baseConfig: {
|
|
316
|
+
type: "timing",
|
|
317
|
+
duration: 0
|
|
318
|
+
},
|
|
319
|
+
propertyConfigs: {}
|
|
320
|
+
} : buildTransitionConfig(props.transition, animations, animationState, getStyleKeys(animatedStyles)), [isHydrating, props.transition, animatedStyles, animationState]),
|
|
321
|
+
configRef = useSharedValue({
|
|
322
|
+
baseConfig,
|
|
323
|
+
propertyConfigs,
|
|
324
|
+
disableAnimation,
|
|
325
|
+
isHydrating
|
|
326
|
+
});
|
|
327
|
+
useIsomorphicLayoutEffect(() => {
|
|
328
|
+
configRef.set({
|
|
329
|
+
baseConfig,
|
|
330
|
+
propertyConfigs,
|
|
331
|
+
disableAnimation,
|
|
332
|
+
isHydrating
|
|
333
|
+
});
|
|
334
|
+
}, [baseConfig, propertyConfigs, disableAnimation, isHydrating]), useStyleEmitter?.((nextStyle, effectiveTransition2) => {
|
|
335
|
+
const animateOnly = props.animateOnly,
|
|
336
|
+
animated = {},
|
|
337
|
+
statics = {},
|
|
338
|
+
transforms = [],
|
|
339
|
+
transitionToUse = effectiveTransition2 ?? props.transition,
|
|
340
|
+
{
|
|
341
|
+
baseConfig: newBase,
|
|
342
|
+
propertyConfigs: newPropertyConfigs
|
|
343
|
+
} = buildTransitionConfig(transitionToUse, animations, animationState, getStyleKeys(nextStyle));
|
|
344
|
+
configRef.set({
|
|
345
|
+
baseConfig: newBase,
|
|
346
|
+
propertyConfigs: newPropertyConfigs,
|
|
347
|
+
disableAnimation: configRef.get().disableAnimation,
|
|
348
|
+
isHydrating: configRef.get().isHydrating
|
|
349
|
+
});
|
|
350
|
+
for (const key in nextStyle) {
|
|
351
|
+
const rawValue = nextStyle[key],
|
|
352
|
+
value = resolveDynamicValue(rawValue, isDark);
|
|
353
|
+
if (value != null) {
|
|
354
|
+
if (configRef.get().disableAnimation) {
|
|
355
|
+
statics[key] = value;
|
|
356
|
+
continue;
|
|
357
|
+
}
|
|
358
|
+
if (key === "transform" && Array.isArray(value)) {
|
|
359
|
+
for (const t of value) if (t && typeof t == "object") {
|
|
360
|
+
const tKey = Object.keys(t)[0],
|
|
361
|
+
tVal = t[tKey];
|
|
362
|
+
(typeof tVal == "number" || typeof tVal == "string") && transforms.push(t);
|
|
363
|
+
}
|
|
364
|
+
continue;
|
|
365
|
+
}
|
|
366
|
+
canAnimateProperty(key, value, animateOnly) ? animated[key] = value : statics[key] = value;
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
animatedTargetsRef.set(animated), staticTargetsRef.set(statics), transformTargetsRef.set(transforms), process.env.NODE_ENV === "development" && props.debug && props.debug !== "profile" && console.info("[animations-reanimated] useStyleEmitter update", {
|
|
370
|
+
animated,
|
|
371
|
+
statics,
|
|
372
|
+
transforms
|
|
373
|
+
});
|
|
374
|
+
});
|
|
375
|
+
const exitKeysRegistered = useRef(!1);
|
|
376
|
+
if (justStartedExiting && sendExitComplete) {
|
|
377
|
+
const exitKeys = [],
|
|
378
|
+
animateOnly = props.animateOnly;
|
|
379
|
+
for (const key in animatedStyles) key !== "transform" && canAnimateProperty(key, animatedStyles[key], animateOnly) && exitKeys.push(key);
|
|
380
|
+
const transforms = animatedStyles.transform;
|
|
381
|
+
if (transforms && Array.isArray(transforms)) for (const t of transforms) {
|
|
382
|
+
if (!t) continue;
|
|
383
|
+
const tKey = Object.keys(t)[0];
|
|
384
|
+
if (tKey) {
|
|
385
|
+
if (animateOnly && !animateOnly.includes(tKey)) continue;
|
|
386
|
+
exitKeys.push(`transform:${tKey}`);
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
pendingExitKeysRef.current = new Set(exitKeys), exitKeysRegistered.current = exitKeys.length > 0;
|
|
390
|
+
}
|
|
391
|
+
React.useEffect(() => {
|
|
392
|
+
!justStartedExiting || !sendExitComplete || !exitKeysRegistered.current && pendingExitKeysRef.current.size === 0 && (exitCompletedRef.current || (exitCompletedRef.current = !0, sendExitComplete()));
|
|
393
|
+
}, [justStartedExiting, sendExitComplete]);
|
|
394
|
+
const animatedStyle = useAnimatedStyle(() => {
|
|
395
|
+
"worklet";
|
|
396
|
+
|
|
397
|
+
if (disableAnimation || isHydrating) return {};
|
|
398
|
+
const result = {},
|
|
399
|
+
config = configRef.get(),
|
|
400
|
+
emitterAnimated = animatedTargetsRef.value,
|
|
401
|
+
emitterStatic = staticTargetsRef.value,
|
|
402
|
+
emitterTransforms = transformTargetsRef.value,
|
|
403
|
+
hasEmitterUpdates = emitterAnimated !== null,
|
|
404
|
+
animatedValues = hasEmitterUpdates ? emitterAnimated : animatedStyles,
|
|
405
|
+
staticValues = hasEmitterUpdates ? emitterStatic : {},
|
|
406
|
+
currentlyExiting = isExitingRef.value,
|
|
407
|
+
currentCycleId = exitCycleIdShared.value;
|
|
408
|
+
for (const key in staticValues) result[key] = staticValues[key];
|
|
409
|
+
for (const key in animatedValues) {
|
|
410
|
+
if (key === "transform") continue;
|
|
411
|
+
const targetValue = animatedValues[key],
|
|
412
|
+
propConfig = config.propertyConfigs[key] ?? config.baseConfig;
|
|
413
|
+
let callback;
|
|
414
|
+
if (currentlyExiting) {
|
|
415
|
+
const capturedKey = key,
|
|
416
|
+
capturedCycleId = currentCycleId;
|
|
417
|
+
callback = finished => {
|
|
418
|
+
"worklet";
|
|
419
|
+
|
|
420
|
+
runOnJS(markExitKeyDone)(capturedKey, capturedCycleId, finished ?? !1);
|
|
421
|
+
};
|
|
422
|
+
}
|
|
423
|
+
result[key] = applyAnimation(targetValue, propConfig, callback);
|
|
424
|
+
}
|
|
425
|
+
const transforms = hasEmitterUpdates ? emitterTransforms : animatedStyles.transform;
|
|
426
|
+
if (transforms && Array.isArray(transforms)) {
|
|
427
|
+
const validTransforms = [];
|
|
428
|
+
for (const t of transforms) {
|
|
429
|
+
if (!t) continue;
|
|
430
|
+
const keys = Object.keys(t);
|
|
431
|
+
if (keys.length === 0) continue;
|
|
432
|
+
const value = t[keys[0]];
|
|
433
|
+
if (typeof value == "number" || typeof value == "string") {
|
|
434
|
+
const transformKey = Object.keys(t)[0],
|
|
435
|
+
targetValue = t[transformKey],
|
|
436
|
+
propConfig = config.propertyConfigs[transformKey] ?? config.baseConfig;
|
|
437
|
+
let callback;
|
|
438
|
+
if (currentlyExiting) {
|
|
439
|
+
const capturedKey = `transform:${transformKey}`,
|
|
440
|
+
capturedCycleId = currentCycleId;
|
|
441
|
+
callback = finished => {
|
|
442
|
+
"worklet";
|
|
443
|
+
|
|
444
|
+
runOnJS(markExitKeyDone)(capturedKey, capturedCycleId, finished ?? !1);
|
|
445
|
+
};
|
|
446
|
+
}
|
|
447
|
+
validTransforms.push({
|
|
448
|
+
[transformKey]: applyAnimation(targetValue, propConfig, callback)
|
|
449
|
+
});
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
validTransforms.length > 0 && (result.transform = validTransforms);
|
|
453
|
+
}
|
|
454
|
+
return result;
|
|
455
|
+
}, [animatedStyles, baseConfig, propertyConfigs, disableAnimation, isHydrating,
|
|
456
|
+
// Pass SharedValues so the mapper watches them on web (see useAnimatedStyle.ts line 470-472)
|
|
457
|
+
animatedTargetsRef, staticTargetsRef, transformTargetsRef, isExitingRef, exitCycleIdShared, markExitKeyDone]);
|
|
458
|
+
return process.env.NODE_ENV === "development" && props.debug && props.debug !== "profile" && console.info("[animations-reanimated] useAnimations", {
|
|
459
|
+
animationKey,
|
|
460
|
+
componentState,
|
|
461
|
+
isExiting,
|
|
462
|
+
animatedStyles,
|
|
463
|
+
staticStyles,
|
|
464
|
+
baseConfig,
|
|
465
|
+
propertyConfigs
|
|
466
|
+
}), {
|
|
467
|
+
style: [staticStyles, animatedStyle]
|
|
468
|
+
};
|
|
469
|
+
}
|
|
470
|
+
};
|
|
471
|
+
}
|
|
472
|
+
export { createAnimations };
|
|
473
|
+
//# sourceMappingURL=createAnimations.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["normalizeTransition","getEffectiveAnimation","getSplitStyles","hooks","isWeb","Text","useComposedRefs","useEvent","useIsomorphicLayoutEffect","useThemeWithState","View","ResetPresence","usePresence","React","forwardRef","useMemo","useRef","Animated_","cancelAnimation","runOnJS","useAnimatedReaction","useAnimatedStyle","useDerivedValue","useSharedValue","withDelay","withSpring","withTiming","jsx","getDefaultExport","module","mod","__esModule","Symbol","toStringTag","default","Animated","resolveDynamicValue","value","isDark","dynamic","dark","light","applyAnimation","targetValue","config","callback","delay","animatedValue","type","ANIMATABLE_PROPERTIES","transform","opacity","height","width","minWidth","minHeight","maxWidth","maxHeight","backgroundColor","borderColor","borderLeftColor","borderRightColor","borderTopColor","borderBottomColor","borderRadius","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","borderWidth","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth","color","fontSize","fontWeight","lineHeight","letterSpacing","left","right","top","bottom","margin","marginTop","marginBottom","marginLeft","marginRight","marginHorizontal","marginVertical","padding","paddingTop","paddingBottom","paddingLeft","paddingRight","paddingHorizontal","paddingVertical","gap","rowGap","columnGap","flex","flexGrow","flexShrink","canAnimateProperty","key","animateOnly","startsWith","includes","createWebAnimatedComponent","defaultTag","isText","Component","createAnimatedComponent","propsIn","ref","forwardedRef","render","rest","hostRef","composedRefs","stateRef","host","current","themeState","viewProps","staticConfig","theme","name","unmounted","isAnimated","noClass","Element","transformedProps","usePropsTransform","acceptRenderProp","AnimatedView","AnimatedText","buildTransitionConfig","transition","animations","animationState","styleKeys","normalized","effectiveKey","base","duration","damping","stiffness","mass","propertyConfigs","propAnimation","properties","configType","baseForProp","baseConfig","getStyleKeys","style","keys","Set","Object","Array","isArray","t","add","createAnimations","animationsConfig","needsCustomComponent","isReactNative","inputStyle","outputStyle","avoidReRenders","useAnimatedNumber","initial","sharedValue","getInstance","getValue","setValue","next","onFinish","handleFinish","stop","useAnimatedNumberReaction","onValue","instance","prev","useAnimatedNumberStyle","val","getStyle","derivedValue","useAnimations","animationProps","props","presence","componentState","useStyleEmitter","themeName","styleState","isHydrating","isMounting","isEntering","isExiting","wasEnteringRef","justFinishedEntering","useEffect","effectiveTransition","animationKey","disableAnimation","sendExitComplete","exitCycleIdRef","pendingExitKeysRef","exitCompletedRef","wasExitingRef","justStartedExiting","justStoppedExiting","markExitKeyDone","cycleId","finished","delete","size","isExitingRef","exitCycleIdShared","clear","animatedTargetsRef","staticTargetsRef","transformTargetsRef","animatedStyles","staticStyles","animated","staticStyles2","rawValue","configRef","set","nextStyle","effectiveTransition2","statics","transforms","transitionToUse","newBase","newPropertyConfigs","get","tKey","tVal","push","process","env","NODE_ENV","debug","console","info","exitKeysRegistered","exitKeys","length","animatedStyle","result","emitterAnimated","emitterStatic","emitterTransforms","hasEmitterUpdates","animatedValues","staticValues","currentlyExiting","currentCycleId","propConfig","capturedKey","capturedCycleId","validTransforms","transformKey"],"sources":["../../src/createAnimations.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,mBAAA,EAAqBC,qBAAA,QAA6B;AAC3D,SACEC,cAAA,EACAC,KAAA,EACAC,KAAA,EAEAC,IAAA,EACAC,eAAA,EACAC,QAAA,EACAC,yBAAA,EACAC,iBAAA,EACAC,IAAA,QAGK;AACP,SAASC,aAAA,EAAeC,WAAA,QAAmB;AAC3C,OAAOC,KAAA,IAASC,UAAA,EAAYC,OAAA,EAASC,MAAA,QAAc;AAEnD,OAAOC,SAAA,IACLC,eAAA,EACAC,OAAA,EACAC,mBAAA,EACAC,gBAAA,EACAC,eAAA,EACAC,cAAA,EACAC,SAAA,EACAC,UAAA,EACAC,UAAA,QAGK;AAsOM,SAAAC,GAAA;AA5Nb,MAAMC,gBAAA,GAAwBC,MAAA,IAAkC;IAC9D,MAAMC,GAAA,GAAMD,MAAA;IACZ,QAAIC,GAAA,CAAIC,UAAA,IAAcD,GAAA,CAAIE,MAAA,CAAOC,WAAW,MAAM,aACzCH,GAAA,CAAII,OAAA,IAAWJ,GAAA;EAG1B;EAEMK,QAAA,GAAWP,gBAAA,CAAiBX,SAAS;EAiCrCmB,mBAAA,GAAsBA,CAACC,KAAA,EAAgBC,MAAA,KAA6B;IACxE,IACED,KAAA,KAAU,QACV,OAAOA,KAAA,IAAU,YACjB,aAAaA,KAAA,IACb,OAAQA,KAAA,CAAcE,OAAA,IAAY,UAClC;MACA,MAAMA,OAAA,GAAWF,KAAA,CAAcE,OAAA;MAC/B,OAAOD,MAAA,GAASC,OAAA,CAAQC,IAAA,GAAOD,OAAA,CAAQE,KAAA;IACzC;IACA,OAAOJ,KAAA;EACT;EAQMK,cAAA,GAAiBA,CACrBC,WAAA,EACAC,MAAA,EACAC,QAAA,KACoB;IACpB;;IACA,MAAMC,KAAA,GAAQF,MAAA,CAAOE,KAAA;IAErB,IAAIC,aAAA;IACJ,OAAIH,MAAA,CAAOI,IAAA,KAAS,WAClBD,aAAA,GAAgBrB,UAAA,CACdiB,WAAA,EACAC,MAAA,EACAC,QACF,IAEAE,aAAA,GAAgBtB,UAAA,CACdkB,WAAA,EACAC,MAAA,EACAC,QACF,GAGEC,KAAA,IAASA,KAAA,GAAQ,MACnBC,aAAA,GAAgBvB,SAAA,CAAUsB,KAAA,EAAOC,aAAa,IAGzCA,aAAA;EACT;EAMME,qBAAA,GAAiD;IAAA;IAErDC,SAAA,EAAW;IAAA;IAEXC,OAAA,EAAS;IAAA;IAETC,MAAA,EAAQ;IACRC,KAAA,EAAO;IACPC,QAAA,EAAU;IACVC,SAAA,EAAW;IACXC,QAAA,EAAU;IACVC,SAAA,EAAW;IAAA;IAEXC,eAAA,EAAiB;IAAA;IAEjBC,WAAA,EAAa;IACbC,eAAA,EAAiB;IACjBC,gBAAA,EAAkB;IAClBC,cAAA,EAAgB;IAChBC,iBAAA,EAAmB;IAAA;IAEnBC,YAAA,EAAc;IACdC,mBAAA,EAAqB;IACrBC,oBAAA,EAAsB;IACtBC,sBAAA,EAAwB;IACxBC,uBAAA,EAAyB;IAAA;IAEzBC,WAAA,EAAa;IACbC,eAAA,EAAiB;IACjBC,gBAAA,EAAkB;IAClBC,cAAA,EAAgB;IAChBC,iBAAA,EAAmB;IAAA;IAEnBC,KAAA,EAAO;IACPC,QAAA,EAAU;IACVC,UAAA,EAAY;IACZC,UAAA,EAAY;IACZC,aAAA,EAAe;IAAA;IAEfC,IAAA,EAAM;IACNC,KAAA,EAAO;IACPC,GAAA,EAAK;IACLC,MAAA,EAAQ;IAAA;IAERC,MAAA,EAAQ;IACRC,SAAA,EAAW;IACXC,YAAA,EAAc;IACdC,UAAA,EAAY;IACZC,WAAA,EAAa;IACbC,gBAAA,EAAkB;IAClBC,cAAA,EAAgB;IAAA;IAEhBC,OAAA,EAAS;IACTC,UAAA,EAAY;IACZC,aAAA,EAAe;IACfC,WAAA,EAAa;IACbC,YAAA,EAAc;IACdC,iBAAA,EAAmB;IACnBC,eAAA,EAAiB;IAAA;IAEjBC,GAAA,EAAK;IACLC,MAAA,EAAQ;IACRC,SAAA,EAAW;IACXC,IAAA,EAAM;IACNC,QAAA,EAAU;IACVC,UAAA,EAAY;EACd;EAKMC,kBAAA,GAAqBA,CACzBC,GAAA,EACAnE,KAAA,EACAoE,WAAA,KAEI,GAACxD,qBAAA,CAAsBuD,GAAG,KAC1BnE,KAAA,KAAU,UACV,OAAOA,KAAA,IAAU,YAAYA,KAAA,CAAMqE,UAAA,CAAW,MAAM,KACpDD,WAAA,IAAe,CAACA,WAAA,CAAYE,QAAA,CAASH,GAAG;AAY9C,SAASI,2BAA2BC,UAAA,EAA4B;EAC9D,MAAMC,MAAA,GAASD,UAAA,KAAe;IAExBE,SAAA,GAAY5E,QAAA,CAAS6E,uBAAA,CACzBlG,UAAA,CAAW,CAACmG,OAAA,EAAcC,GAAA,KAAQ;MAChC,MAAM;UAAEC,YAAA;UAAcC,MAAA,GAASP,UAAA;UAAY,GAAGQ;QAAK,IAAIJ,OAAA;QACjDK,OAAA,GAAUtG,MAAA,CAAoB,IAAI;QAClCuG,YAAA,GAAejH,eAAA,CAAgB6G,YAAA,EAAcD,GAAA,EAAKI,OAAO;QAEzDE,QAAA,GAAWxG,MAAA,CAAqC;UACpD,IAAIyG,KAAA,EAAO;YACT,OAAOH,OAAA,CAAQI,OAAA;UACjB;QACF,CAAC;QAEK,GAAGC,UAAU,IAAIlH,iBAAA,CAAkB,CAAC,CAAC;QAWrCmH,SAAA,GATS1H,cAAA,CACbmH,IAAA,EACAP,MAAA,GAASzG,IAAA,CAAKwH,YAAA,GAAenH,IAAA,CAAKmH,YAAA,EAClCF,UAAA,EAAYG,KAAA,IAAS,CAAC,GACtBH,UAAA,EAAYI,IAAA,IAAQ,IACpB;UAAEC,SAAA,EAAW;QAAM,GACnB;UAAEC,UAAA,EAAY;UAAOC,OAAA,EAAS;QAAK,CACrC,GAE0BN,SAAA,IAAa,CAAC;QAClCO,OAAA,GAAUf,MAAA;QACVgB,gBAAA,GAAmBjI,KAAA,CAAMkI,iBAAA,GAC7BjB,MAAA,EACAQ,SAAA,EACAJ,QAAA,EACA,EACF;MAEA,OAAO,eAAA7F,GAAA,CAACwG,OAAA;QAAS,GAAGC,gBAAA;QAAkBlB,GAAA,EAAKK;MAAA,CAAc;IAC3D,CAAC,CACH;EACC,OAACR,SAAA,CAAkBuB,gBAAA,GAAmB,IAChCvB,SAAA;AACT;AAEA,MAAMwB,YAAA,GAAe3B,0BAAA,CAA2B,KAAK;EAC/C4B,YAAA,GAAe5B,0BAAA,CAA2B,MAAM;AAetD,SAAS6B,sBACPC,UAAA,EACAC,UAAA,EACAC,cAAA,EACAC,SAAA,EACwB;EACxB,MAAMC,UAAA,GAAa9I,mBAAA,CAAoB0I,UAAU;IAC3CK,YAAA,GAAe9I,qBAAA,CAAsB6I,UAAA,EAAYF,cAAc;EAErE,IAAII,IAAA,GAAOD,YAAA,GACNJ,UAAA,CAAWI,YAAuC,KAClD;IAAE/F,IAAA,EAAM;EAAS,IACjB;IAAEA,IAAA,EAAM;EAAS;EAElB8F,UAAA,CAAWhG,KAAA,KACbkG,IAAA,GAAO;IAAE,GAAGA,IAAA;IAAMlG,KAAA,EAAOgG,UAAA,CAAWhG;EAAM,IAGxCgG,UAAA,CAAWlG,MAAA,KACboG,IAAA,GAAO;IAAE,GAAGA,IAAA;IAAM,GAAGF,UAAA,CAAWlG;EAAO,GAGrCoG,IAAA,CAAKhG,IAAA,KAAS,YACd8F,UAAA,CAAWlG,MAAA,CAAOqG,QAAA,KAAa,UAC/BH,UAAA,CAAWlG,MAAA,CAAOsG,OAAA,KAAY,UAC9BJ,UAAA,CAAWlG,MAAA,CAAOuG,SAAA,KAAc,UAChCL,UAAA,CAAWlG,MAAA,CAAOwG,IAAA,KAAS,WAE3BJ,IAAA,GAAO;IAAE,GAAGA,IAAA;IAAMhG,IAAA,EAAM;EAAS;EAKrC,MAAMqG,eAAA,GAAoD,CAAC;EAE3D,WAAW7C,GAAA,IAAOqC,SAAA,EAAW;IAC3B,MAAMS,aAAA,GAAgBR,UAAA,CAAWS,UAAA,CAAW/C,GAAG;IAC/C,IAAI,OAAO8C,aAAA,IAAkB,UAC3BD,eAAA,CAAgB7C,GAAG,IAAImC,UAAA,CAAWW,aAAwC,KAAKN,IAAA,UACtEM,aAAA,IAAiB,OAAOA,aAAA,IAAkB,UAAU;MAC7D,MAAME,UAAA,GAAcF,aAAA,CAAsBtG,IAAA;QACpCyG,WAAA,GAAcD,UAAA,GACfb,UAAA,CAAWa,UAAqC,KAAKR,IAAA,GACtDA,IAAA;MACJK,eAAA,CAAgB7C,GAAG,IAAI;QACrB,GAAGiD,WAAA;QACH,GAAGH;MACL;IACF,OACED,eAAA,CAAgB7C,GAAG,IAAIwC,IAAA;EAE3B;EAEA,OAAO;IAAEU,UAAA,EAAYV,IAAA;IAAMK;EAAgB;AAC7C;AAKA,SAASM,aAAaC,KAAA,EAA6C;EACjE,MAAMC,IAAA,GAAO,IAAIC,GAAA,CAAIC,MAAA,CAAOF,IAAA,CAAKD,KAAK,CAAC;EACvC,IAAIA,KAAA,CAAM1G,SAAA,IAAa8G,KAAA,CAAMC,OAAA,CAAQL,KAAA,CAAM1G,SAAS,GAClD,WAAWgH,CAAA,IAAKN,KAAA,CAAM1G,SAAA,EAChBgH,CAAA,IAAK,OAAOA,CAAA,IAAM,YACpBL,IAAA,CAAKM,GAAA,CAAIJ,MAAA,CAAOF,IAAA,CAAKK,CAAC,EAAE,CAAC,CAAC;EAIhC,OAAOL,IAAA;AACT;AA0BO,SAASO,iBACdC,gBAAA,EACoB;EAGpB,MAAM1B,UAAA,GAAa,CAAC;EACpB,WAAWnC,GAAA,IAAO6D,gBAAA,EAChB1B,UAAA,CAAWnC,GAAG,IAAI;IAChBxD,IAAA,EAAM;IACN,GAAGqH,gBAAA,CAAiB7D,GAAG;EACzB;EAGF,OAAO;IACL8D,oBAAA,EAAsB;IACtB5J,IAAA,EAAMN,KAAA,GAAQmI,YAAA,GAAepG,QAAA,CAASzB,IAAA;IACtCL,IAAA,EAAMD,KAAA,GAAQoI,YAAA,GAAerG,QAAA,CAAS9B,IAAA;IACtCkK,aAAA,EAAe;IACfC,UAAA,EAAY;IACZC,WAAA,EAAa;IACbC,cAAA,EAAgB;IAChB/B,UAAA;IACA/H,WAAA;IACAD,aAAA;IAAA;IAAA;IAAA;IAKAgK,kBAAkBC,OAAA,EAA4D;MAC5E,MAAMC,WAAA,GAActJ,cAAA,CAAeqJ,OAAO;MAE1C,OAAO7J,OAAA,CACL,OAAO;QACL+J,YAAA,EAAc;UACZ;;UACA,OAAOD,WAAA;QACT;QAEAE,SAAA,EAAW;UACT;;UACA,OAAOF,WAAA,CAAYxI,KAAA;QACrB;QAEA2I,SAASC,IAAA,EAAMrI,MAAA,GAAS;UAAEI,IAAA,EAAM;QAAS,GAAGkI,QAAA,EAAU;UACpD;;UACA,MAAMC,YAAA,GAAeD,QAAA,GACjB,MAAM;YACJ;;YACA/J,OAAA,CAAQ+J,QAAQ,EAAE;UACpB,IACA;UAEAtI,MAAA,CAAOI,IAAA,KAAS,YAClB6H,WAAA,CAAYxI,KAAA,GAAQ4I,IAAA,EACpBC,QAAA,GAAW,KACFtI,MAAA,CAAOI,IAAA,KAAS,WACzB6H,WAAA,CAAYxI,KAAA,GAAQZ,UAAA,CAClBwJ,IAAA,EACArI,MAAA,EACAuI,YACF,IAEAN,WAAA,CAAYxI,KAAA,GAAQX,UAAA,CAClBuJ,IAAA,EACArI,MAAA,EACAuI,YACF;QAEJ;QAEAC,KAAA,EAAO;UACL;;UACAlK,eAAA,CAAgB2J,WAAW;QAC7B;MACF,IACA,CAACA,WAAW,CACd;IACF;IAAA;IAAA;IAAA;IAKAQ,0BAA0B;MAAEhJ;IAAM,GAAGiJ,OAAA,EAAS;MAC5C,MAAMC,QAAA,GAAWlJ,KAAA,CAAMyI,WAAA,CAAY;MAEnC,OAAO1J,mBAAA,CACL,MAAMmK,QAAA,CAASlJ,KAAA,EACf,CAAC4I,IAAA,EAAMO,IAAA,KAAS;QACVA,IAAA,KAASP,IAAA,IACX9J,OAAA,CAAQmK,OAAO,EAAEL,IAAI;MAEzB,GACA,CAACK,OAAA,EAASC,QAAQ,CACpB;IACF;IAAA;IAAA;IAAA;IAKAE,uBAAuBC,GAAA,EAAKC,QAAA,EAAU;MACpC,MAAMJ,QAAA,GAAWG,GAAA,CAAIZ,WAAA,CAAY;QAE3Bc,YAAA,GAAetK,eAAA,CAAgB,MAAMiK,QAAA,CAASlJ,KAAA,EAAO,CAACkJ,QAAA,EAAUI,QAAQ,CAAC;MAE/E,OAAOtK,gBAAA,CACL,MAAMsK,QAAA,CAASC,YAAA,CAAavJ,KAAK,GACjC,CAACqJ,GAAA,EAAKC,QAAA,EAAUC,YAAA,EAAcL,QAAQ,CACxC;IACF;IAAA;IAAA;IAAA;IAKAM,cAAcC,cAAA,EAAgB;MAC5B,MAAM;UACJC,KAAA;UACAC,QAAA;UACApC,KAAA;UACAqC,cAAA;UACAC,eAAA;UACAC,SAAA;UACA3E,QAAA;UACA4E;QACF,IAAIN,cAAA;QAGEO,WAAA,GAAcJ,cAAA,CAAejE,SAAA,KAAc;QAC3CsE,UAAA,GAAaL,cAAA,CAAejE,SAAA,KAAc;QAC1CuE,UAAA,GAAa,CAAC,CAACN,cAAA,CAAejE,SAAA;QAG9BwE,SAAA,GAAYR,QAAA,GAAW,CAAC,MAAM;QAG9BS,cAAA,GAAiBzL,MAAA,CAAOuL,UAAU;QAClCG,oBAAA,GAAuBD,cAAA,CAAe/E,OAAA,IAAW,CAAC6E,UAAA;MACxD1L,KAAA,CAAM8L,SAAA,CAAU,MAAM;QACpBF,cAAA,CAAe/E,OAAA,GAAU6E,UAAA;MAC3B,CAAC;MAGD,MAAMK,mBAAA,GAAsBR,UAAA,EAAYQ,mBAAA,IAAuBb,KAAA,CAAMrD,UAAA;QAC/DI,UAAA,GAAa9I,mBAAA,CAAoB4M,mBAAmB;QAEpDhE,cAAA,GAA+C4D,SAAA,GACjD,SACAF,UAAA,IAAcI,oBAAA,GACZ,UACA;QACAG,YAAA,GAAe5M,qBAAA,CAAsB6I,UAAA,EAAYF,cAAc;QAE/DkE,gBAAA,GAAmBT,WAAA,IAAe,CAACQ,YAAA;QAGnCvK,MAAA,GAAS6J,SAAA,EAAWzF,UAAA,CAAW,MAAM,KAAK;QAG1CqG,gBAAA,GAAmBf,QAAA,GAAW,CAAC;QAK/BgB,cAAA,GAAiBhM,MAAA,CAAO,CAAC;QACzBiM,kBAAA,GAAqBjM,MAAA,CAAoB,mBAAI8I,GAAA,CAAI,CAAC;QAClDoD,gBAAA,GAAmBlM,MAAA,CAAO,EAAK;QAC/BmM,aAAA,GAAgBnM,MAAA,CAAO,EAAK;QAG5BoM,kBAAA,GAAqBZ,SAAA,IAAa,CAACW,aAAA,CAAczF,OAAA;QACjD2F,kBAAA,GAAqB,CAACb,SAAA,IAAaW,aAAA,CAAczF,OAAA;QAGjD4F,eAAA,GAAkB/M,QAAA,CACtB,CAACiG,GAAA,EAAa+G,OAAA,EAAiBC,QAAA,KAAsB;UAE/CD,OAAA,KAAYP,cAAA,CAAetF,OAAA,KAE3BwF,gBAAA,CAAiBxF,OAAA,KAIrBuF,kBAAA,CAAmBvF,OAAA,CAAQ+F,MAAA,CAAOjH,GAAG,GAGjCyG,kBAAA,CAAmBvF,OAAA,CAAQgG,IAAA,KAAS,MACtCR,gBAAA,CAAiBxF,OAAA,GAAU,IAC3BqF,gBAAA,GAAmB;QAEvB,CACF;QAGMY,YAAA,GAAepM,cAAA,CAAeiL,SAAS;QACvCoB,iBAAA,GAAoBrM,cAAA,CAAeyL,cAAA,CAAetF,OAAO;MAG3D0F,kBAAA,KACFJ,cAAA,CAAetF,OAAA,IACfwF,gBAAA,CAAiBxF,OAAA,GAAU,IAC3BuF,kBAAA,CAAmBvF,OAAA,CAAQmG,KAAA,CAAM,IAG/BR,kBAAA,KACFL,cAAA,CAAetF,OAAA,IACfuF,kBAAA,CAAmBvF,OAAA,CAAQmG,KAAA,CAAM,IAInCrN,yBAAA,CAA0B,MAAM;QAC9BmN,YAAA,CAAatL,KAAA,GAAQmK,SAAA,EACrBoB,iBAAA,CAAkBvL,KAAA,GAAQ2K,cAAA,CAAetF,OAAA;MAC3C,GAAG,CAAC8E,SAAA,EAAWQ,cAAA,CAAetF,OAAO,CAAC,GAGtC7G,KAAA,CAAM8L,SAAA,CAAU,MAAM;QACpBQ,aAAA,CAAczF,OAAA,GAAU8E,SAAA;MAC1B,CAAC;MAKD,MAAMsB,kBAAA,GAAqBvM,cAAA,CAA+C,IAAI;QACxEwM,gBAAA,GAAmBxM,cAAA,CAA+C,IAAI;QACtEyM,mBAAA,GAAsBzM,cAAA,CAC1B,IACF;QAGM;UAAE0M,cAAA;UAAgBC;QAAa,IAAInN,OAAA,CAAQ,MAAM;UACrD,MAAMoN,QAAA,GAAoC,CAAC;YACrCC,aAAA,GAAwC,CAAC;YACzC3H,WAAA,GAAcsF,KAAA,CAAMtF,WAAA;UAE1B,WAAWD,GAAA,IAAOoD,KAAA,EAAO;YACvB,MAAMyE,QAAA,GAAYzE,KAAA,CAAkCpD,GAAG;cACjDnE,KAAA,GAAQD,mBAAA,CAAoBiM,QAAA,EAAU/L,MAAM;YAElD,IAAID,KAAA,KAAU,QAEd;cAAA,IAAIyK,gBAAA,EAAkB;gBACpBsB,aAAA,CAAa5H,GAAG,IAAInE,KAAA;gBACpB;cACF;cAEIkE,kBAAA,CAAmBC,GAAA,EAAKnE,KAAA,EAAOoE,WAAW,IAC5C0H,QAAA,CAAS3H,GAAG,IAAInE,KAAA,GAEhB+L,aAAA,CAAa5H,GAAG,IAAInE,KAAA;YAAA;UAExB;UAGA,IAAIiK,UAAA,EACF,WAAW9F,GAAA,IAAO2H,QAAA,EAChBC,aAAA,CAAa5H,GAAG,IAAI2H,QAAA,CAAS3H,GAAG;UAIpC,OAAO;YAAEyH,cAAA,EAAgBE,QAAA;YAAUD,YAAA,EAAAE;UAAa;QAClD,GAAG,CAACtB,gBAAA,EAAkBlD,KAAA,EAAOtH,MAAA,EAAQgK,UAAA,EAAYP,KAAA,CAAMtF,WAAW,CAAC;QAG7D;UAAEiD,UAAA;UAAYL;QAAgB,IAAItI,OAAA,CAAQ,MAC1CsL,WAAA,GACK;UACL3C,UAAA,EAAY;YAAE1G,IAAA,EAAM;YAAmBiG,QAAA,EAAU;UAAE;UACnDI,eAAA,EAAiB,CAAC;QACpB,IAGKZ,qBAAA,CACLsD,KAAA,CAAMrD,UAAA,EACNC,UAAA,EACAC,cAAA,EACAe,YAAA,CAAasE,cAAc,CAC7B,GACC,CAAC5B,WAAA,EAAaN,KAAA,CAAMrD,UAAA,EAAYuF,cAAA,EAAgBrF,cAAc,CAAC;QAI5D0F,SAAA,GAAY/M,cAAA,CAAe;UAC/BmI,UAAA;UACAL,eAAA;UACAyD,gBAAA;UACAT;QACF,CAAC;MAED7L,yBAAA,CAA0B,MAAM;QAC9B8N,SAAA,CAAUC,GAAA,CAAI;UAAE7E,UAAA;UAAYL,eAAA;UAAiByD,gBAAA;UAAkBT;QAAY,CAAC;MAC9E,GAAG,CAAC3C,UAAA,EAAYL,eAAA,EAAiByD,gBAAA,EAAkBT,WAAW,CAAC,GAM/DH,eAAA,GAAkB,CAACsC,SAAA,EAAoCC,oBAAA,KAAwB;QAC7E,MAAMhI,WAAA,GAAcsF,KAAA,CAAMtF,WAAA;UACpB0H,QAAA,GAAoC,CAAC;UACrCO,OAAA,GAAmC,CAAC;UACpCC,UAAA,GAA6C,EAAC;UAI9CC,eAAA,GAAkBH,oBAAA,IAAuB1C,KAAA,CAAMrD,UAAA;UAC/C;YAAEgB,UAAA,EAAYmF,OAAA;YAASxF,eAAA,EAAiByF;UAAmB,IAC/DrG,qBAAA,CACEmG,eAAA,EACAjG,UAAA,EACAC,cAAA,EACAe,YAAA,CAAa6E,SAAS,CACxB;QAGFF,SAAA,CAAUC,GAAA,CAAI;UACZ7E,UAAA,EAAYmF,OAAA;UACZxF,eAAA,EAAiByF,kBAAA;UACjBhC,gBAAA,EAAkBwB,SAAA,CAAUS,GAAA,CAAI,EAAEjC,gBAAA;UAClCT,WAAA,EAAaiC,SAAA,CAAUS,GAAA,CAAI,EAAE1C;QAC/B,CAAC;QAED,WAAW7F,GAAA,IAAOgI,SAAA,EAAW;UAC3B,MAAMH,QAAA,GAAWG,SAAA,CAAUhI,GAAG;YACxBnE,KAAA,GAAQD,mBAAA,CAAoBiM,QAAA,EAAU/L,MAAM;UAElD,IAAID,KAAA,IAAS,MAEb;YAAA,IAAIiM,SAAA,CAAUS,GAAA,CAAI,EAAEjC,gBAAA,EAAkB;cACpC4B,OAAA,CAAQlI,GAAG,IAAInE,KAAA;cACf;YACF;YAEA,IAAImE,GAAA,KAAQ,eAAewD,KAAA,CAAMC,OAAA,CAAQ5H,KAAK,GAAG;cAC/C,WAAW6H,CAAA,IAAK7H,KAAA,EACd,IAAI6H,CAAA,IAAK,OAAOA,CAAA,IAAM,UAAU;gBAC9B,MAAM8E,IAAA,GAAOjF,MAAA,CAAOF,IAAA,CAAKK,CAAC,EAAE,CAAC;kBACvB+E,IAAA,GAAO/E,CAAA,CAAE8E,IAAI;gBACnB,CAAI,OAAOC,IAAA,IAAS,YAAY,OAAOA,IAAA,IAAS,aAC9CN,UAAA,CAAWO,IAAA,CAAKhF,CAAC;cAErB;cAEF;YACF;YAEI3D,kBAAA,CAAmBC,GAAA,EAAKnE,KAAA,EAAOoE,WAAW,IAC5C0H,QAAA,CAAS3H,GAAG,IAAInE,KAAA,GAEhBqM,OAAA,CAAQlI,GAAG,IAAInE,KAAA;UAAA;QAEnB;QAGAyL,kBAAA,CAAmBS,GAAA,CAAIJ,QAAQ,GAC/BJ,gBAAA,CAAiBQ,GAAA,CAAIG,OAAO,GAC5BV,mBAAA,CAAoBO,GAAA,CAAII,UAAU,GAGhCQ,OAAA,CAAQC,GAAA,CAAIC,QAAA,KAAa,iBACzBtD,KAAA,CAAMuD,KAAA,IACNvD,KAAA,CAAMuD,KAAA,KAAU,aAEhBC,OAAA,CAAQC,IAAA,CAAK,kDAAkD;UAC7DrB,QAAA;UACAO,OAAA;UACAC;QACF,CAAC;MAEL,CAAC;MAID,MAAMc,kBAAA,GAAqBzO,MAAA,CAAO,EAAK;MACvC,IAAIoM,kBAAA,IAAsBL,gBAAA,EAAkB;QAC1C,MAAM2C,QAAA,GAAqB,EAAC;UACtBjJ,WAAA,GAAcsF,KAAA,CAAMtF,WAAA;QAG1B,WAAWD,GAAA,IAAOyH,cAAA,EACZzH,GAAA,KAAQ,eACRD,kBAAA,CAAmBC,GAAA,EAAKyH,cAAA,CAAezH,GAAG,GAAGC,WAAW,KAC1DiJ,QAAA,CAASR,IAAA,CAAK1I,GAAG;QAKrB,MAAMmI,UAAA,GAAaV,cAAA,CAAe/K,SAAA;QAClC,IAAIyL,UAAA,IAAc3E,KAAA,CAAMC,OAAA,CAAQ0E,UAAU,GACxC,WAAWzE,CAAA,IAAKyE,UAAA,EAAY;UAC1B,IAAI,CAACzE,CAAA,EAAG;UACR,MAAM8E,IAAA,GAAOjF,MAAA,CAAOF,IAAA,CAAKK,CAAC,EAAE,CAAC;UAC7B,IAAI8E,IAAA,EAAM;YAER,IAAIvI,WAAA,IAAe,CAACA,WAAA,CAAYE,QAAA,CAASqI,IAAI,GAC3C;YAEFU,QAAA,CAASR,IAAA,CAAK,aAAaF,IAAI,EAAE;UACnC;QACF;QAIF/B,kBAAA,CAAmBvF,OAAA,GAAU,IAAIoC,GAAA,CAAI4F,QAAQ,GAC7CD,kBAAA,CAAmB/H,OAAA,GAAUgI,QAAA,CAASC,MAAA,GAAS;MACjD;MAGA9O,KAAA,CAAM8L,SAAA,CAAU,MAAM;QAChB,CAACS,kBAAA,IAAsB,CAACL,gBAAA,IAGxB,CAAC0C,kBAAA,CAAmB/H,OAAA,IAAWuF,kBAAA,CAAmBvF,OAAA,CAAQgG,IAAA,KAAS,MAChER,gBAAA,CAAiBxF,OAAA,KACpBwF,gBAAA,CAAiBxF,OAAA,GAAU,IAC3BqF,gBAAA,CAAiB;MAGvB,GAAG,CAACK,kBAAA,EAAoBL,gBAAgB,CAAC;MAGzC,MAAM6C,aAAA,GAAgBvO,gBAAA,CAAiB,MAAM;QAC3C;;QAEA,IAAIyL,gBAAA,IAAoBT,WAAA,EACtB,OAAO,CAAC;QAGV,MAAMwD,MAAA,GAA8B,CAAC;UAC/BjN,MAAA,GAAS0L,SAAA,CAAUS,GAAA,CAAI;UAGvBe,eAAA,GAAkBhC,kBAAA,CAAmBzL,KAAA;UACrC0N,aAAA,GAAgBhC,gBAAA,CAAiB1L,KAAA;UACjC2N,iBAAA,GAAoBhC,mBAAA,CAAoB3L,KAAA;UACxC4N,iBAAA,GAAoBH,eAAA,KAAoB;UAGxCI,cAAA,GAAiBD,iBAAA,GAAoBH,eAAA,GAAmB7B,cAAA;UACxDkC,YAAA,GAAeF,iBAAA,GAAoBF,aAAA,GAAiB,CAAC;UAGrDK,gBAAA,GAAmBzC,YAAA,CAAatL,KAAA;UAChCgO,cAAA,GAAiBzC,iBAAA,CAAkBvL,KAAA;QAGzC,WAAWmE,GAAA,IAAO2J,YAAA,EAChBN,MAAA,CAAOrJ,GAAG,IAAI2J,YAAA,CAAa3J,GAAG;QAIhC,WAAWA,GAAA,IAAO0J,cAAA,EAAgB;UAChC,IAAI1J,GAAA,KAAQ,aAAa;UAEzB,MAAM7D,WAAA,GAAcuN,cAAA,CAAe1J,GAAG;YAChC8J,UAAA,GAAa1N,MAAA,CAAOyG,eAAA,CAAgB7C,GAAG,KAAK5D,MAAA,CAAO8G,UAAA;UAGzD,IAAI7G,QAAA;UACJ,IAAIuN,gBAAA,EAAkB;YACpB,MAAMG,WAAA,GAAc/J,GAAA;cACdgK,eAAA,GAAkBH,cAAA;YACxBxN,QAAA,GAAY2K,QAAA,IAAa;cACvB;;cACArM,OAAA,CAAQmM,eAAe,EAAEiD,WAAA,EAAaC,eAAA,EAAiBhD,QAAA,IAAY,EAAK;YAC1E;UACF;UAEAqC,MAAA,CAAOrJ,GAAG,IAAI9D,cAAA,CAAeC,WAAA,EAAuB2N,UAAA,EAAYzN,QAAQ;QAC1E;QAGA,MAAM8L,UAAA,GAAasB,iBAAA,GACfD,iBAAA,GACA/B,cAAA,CAAe/K,SAAA;QAGnB,IAAIyL,UAAA,IAAc3E,KAAA,CAAMC,OAAA,CAAQ0E,UAAU,GAAG;UAC3C,MAAM8B,eAAA,GAA6C,EAAC;UAEpD,WAAWvG,CAAA,IAAKyE,UAAA,EAAY;YAC1B,IAAI,CAACzE,CAAA,EAAG;YACR,MAAML,IAAA,GAAOE,MAAA,CAAOF,IAAA,CAAKK,CAAC;YAC1B,IAAIL,IAAA,CAAK8F,MAAA,KAAW,GAAG;YACvB,MAAMtN,KAAA,GAAQ6H,CAAA,CAAEL,IAAA,CAAK,CAAC,CAAC;YACvB,IAAI,OAAOxH,KAAA,IAAU,YAAY,OAAOA,KAAA,IAAU,UAAU;cAC1D,MAAMqO,YAAA,GAAe3G,MAAA,CAAOF,IAAA,CAAKK,CAAC,EAAE,CAAC;gBAC/BvH,WAAA,GAAcuH,CAAA,CAAEwG,YAAY;gBAC5BJ,UAAA,GAAa1N,MAAA,CAAOyG,eAAA,CAAgBqH,YAAY,KAAK9N,MAAA,CAAO8G,UAAA;cAGlE,IAAI7G,QAAA;cACJ,IAAIuN,gBAAA,EAAkB;gBACpB,MAAMG,WAAA,GAAc,aAAaG,YAAY;kBACvCF,eAAA,GAAkBH,cAAA;gBACxBxN,QAAA,GAAY2K,QAAA,IAAa;kBACvB;;kBACArM,OAAA,CAAQmM,eAAe,EACrBiD,WAAA,EACAC,eAAA,EACAhD,QAAA,IAAY,EACd;gBACF;cACF;cAEAiD,eAAA,CAAgBvB,IAAA,CAAK;gBACnB,CAACwB,YAAY,GAAGhO,cAAA,CACdC,WAAA,EACA2N,UAAA,EACAzN,QACF;cACF,CAAC;YACH;UACF;UAEI4N,eAAA,CAAgBd,MAAA,GAAS,MAC3BE,MAAA,CAAO3M,SAAA,GAAYuN,eAAA;QAEvB;QAEA,OAAOZ,MAAA;MACT,GAAG,CACD5B,cAAA,EACAvE,UAAA,EACAL,eAAA,EACAyD,gBAAA,EACAT,WAAA;MAAA;MAEAyB,kBAAA,EACAC,gBAAA,EACAC,mBAAA,EACAL,YAAA,EACAC,iBAAA,EACAN,eAAA,CACD;MAGD,OACE6B,OAAA,CAAQC,GAAA,CAAIC,QAAA,KAAa,iBACzBtD,KAAA,CAAMuD,KAAA,IACNvD,KAAA,CAAMuD,KAAA,KAAU,aAEhBC,OAAA,CAAQC,IAAA,CAAK,yCAAyC;QACpD3C,YAAA;QACAZ,cAAA;QACAO,SAAA;QACAyB,cAAA;QACAC,YAAA;QACAxE,UAAA;QACAL;MACF,CAAC,GAGI;QACLO,KAAA,EAAO,CAACsE,YAAA,EAAc0B,aAAa;MACrC;IACF;EACF;AACF","ignoreList":[]}
|