@hanzogui/animations-css 8.3.1 → 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 +631 -0
- package/dist/cjs/createAnimations.js.map +1 -0
- package/dist/cjs/index.js +5 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/package.json +1 -0
- package/dist/esm/createAnimations.js +627 -0
- package/dist/esm/createAnimations.js.map +1 -0
- package/dist/esm/index.js +2 -2
- package/dist/esm/index.js.map +1 -1
- package/package.json +25 -20
- package/src/index.ts +1 -1
- package/types/createAnimations.d.ts +1 -2
- package/types/createAnimations.d.ts.map +1 -11
- package/types/index.d.ts +1 -2
- package/types/index.d.ts.map +1 -11
- package/dist/cjs/createAnimations.cjs +0 -440
- package/dist/cjs/createAnimations.native.js +0 -538
- package/dist/cjs/createAnimations.native.js.map +0 -1
- package/dist/cjs/index.cjs +0 -20
- package/dist/cjs/index.native.js +0 -23
- package/dist/cjs/index.native.js.map +0 -1
- package/dist/esm/createAnimations.mjs +0 -404
- package/dist/esm/createAnimations.mjs.map +0 -1
- package/dist/esm/createAnimations.native.js +0 -499
- package/dist/esm/createAnimations.native.js.map +0 -1
- package/dist/esm/index.mjs +0 -2
- package/dist/esm/index.mjs.map +0 -1
- package/dist/esm/index.native.js +0 -2
- package/dist/esm/index.native.js.map +0 -1
package/dist/cjs/index.native.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
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") {
|
|
9
|
-
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
10
|
-
get: () => from[key],
|
|
11
|
-
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
12
|
-
});
|
|
13
|
-
}
|
|
14
|
-
return to;
|
|
15
|
-
};
|
|
16
|
-
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
17
|
-
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
18
|
-
value: true
|
|
19
|
-
}), mod);
|
|
20
|
-
var index_exports = {};
|
|
21
|
-
module.exports = __toCommonJS(index_exports);
|
|
22
|
-
__reExport(index_exports, require("./createAnimations.native.js"), module.exports);
|
|
23
|
-
//# sourceMappingURL=index.native.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__copyProps","to","from","except","desc","key","call","get","enumerable","__reExport","target","mod","secondTarget","__toCommonJS","value","index_exports","module","exports","require"],"sources":["index.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar index_exports = {};\nmodule.exports = __toCommonJS(index_exports);\n__reExport(index_exports, require(\"./createAnimations\"), module.exports);\n//# sourceMappingURL=index.js.map\n"],"mappings":"AAAA,YAAY;;AACZ,IAAIA,SAAS,GAAGC,MAAM,CAACC,cAAc;AACrC,IAAIC,gBAAgB,GAAGF,MAAM,CAACG,wBAAwB;AACtD,IAAIC,iBAAiB,GAAGJ,MAAM,CAACK,mBAAmB;AAClD,IAAIC,YAAY,GAAGN,MAAM,CAACO,SAAS,CAACC,cAAc;AAClD,IAAIC,WAAW,GAAGA,CAACC,EAAE,EAAEC,IAAI,EAAEC,MAAM,EAAEC,IAAI,KAAK;EAC5C,IAAIF,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ,IAAI,OAAOA,IAAI,KAAK,UAAU,EAAE;IAClE,KAAK,IAAIG,GAAG,IAAIV,iBAAiB,CAACO,IAAI,CAAC,EACrC,IAAI,CAACL,YAAY,CAACS,IAAI,CAACL,EAAE,EAAEI,GAAG,CAAC,IAAIA,GAAG,KAAKF,MAAM,EAC/Cb,SAAS,CAACW,EAAE,EAAEI,GAAG,EAAE;MAAEE,GAAG,EAAEA,CAAA,KAAML,IAAI,CAACG,GAAG,CAAC;MAAEG,UAAU,EAAE,EAAEJ,IAAI,GAAGX,gBAAgB,CAACS,IAAI,EAAEG,GAAG,CAAC,CAAC,IAAID,IAAI,CAACI;IAAW,CAAC,CAAC;EACxH;EACA,OAAOP,EAAE;AACX,CAAC;AACD,IAAIQ,UAAU,GAAGA,CAACC,MAAM,EAAEC,GAAG,EAAEC,YAAY,MAAMZ,WAAW,CAACU,MAAM,EAAEC,GAAG,EAAE,SAAS,CAAC,EAAEC,YAAY,IAAIZ,WAAW,CAACY,YAAY,EAAED,GAAG,EAAE,SAAS,CAAC,CAAC;AAChJ,IAAIE,YAAY,GAAIF,GAAG,IAAKX,WAAW,CAACV,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE;EAAEwB,KAAK,EAAE;AAAK,CAAC,CAAC,EAAEH,GAAG,CAAC;AAC1F,IAAII,aAAa,GAAG,CAAC,CAAC;AACtBC,MAAM,CAACC,OAAO,GAAGJ,YAAY,CAACE,aAAa,CAAC;AAC5CN,UAAU,CAACM,aAAa,EAAEG,OAAO,CAAC,8BAAoB,CAAC,EAAEF,MAAM,CAACC,OAAO,CAAC","ignoreList":[]}
|
|
@@ -1,404 +0,0 @@
|
|
|
1
|
-
import { normalizeTransition, getAnimatedProperties, hasAnimation as hasNormalizedAnimation, getEffectiveAnimation, getAnimationConfigsForKeys } from "@hanzogui/animation-helpers";
|
|
2
|
-
import { useIsomorphicLayoutEffect } from "@hanzogui/constants";
|
|
3
|
-
import { ResetPresence, usePresence } from "@hanzogui/use-presence";
|
|
4
|
-
import { transformsToString } from "@hanzogui/web";
|
|
5
|
-
import React from "react";
|
|
6
|
-
const EXTRACT_MS_REGEX = /(\d+(?:\.\d+)?)\s*ms/;
|
|
7
|
-
const EXTRACT_S_REGEX = /(\d+(?:\.\d+)?)\s*s/;
|
|
8
|
-
function extractDuration(animation) {
|
|
9
|
-
const msMatch = animation.match(EXTRACT_MS_REGEX);
|
|
10
|
-
if (msMatch) {
|
|
11
|
-
return Number.parseInt(msMatch[1], 10);
|
|
12
|
-
}
|
|
13
|
-
const sMatch = animation.match(EXTRACT_S_REGEX);
|
|
14
|
-
if (sMatch) {
|
|
15
|
-
return Math.round(Number.parseFloat(sMatch[1]) * 1e3);
|
|
16
|
-
}
|
|
17
|
-
return 300;
|
|
18
|
-
}
|
|
19
|
-
const MS_DURATION_REGEX = /(\d+(?:\.\d+)?)\s*ms/;
|
|
20
|
-
const S_DURATION_REGEX = /(\d+(?:\.\d+)?)\s*s(?!tiffness)/;
|
|
21
|
-
function applyDurationOverride(animation, durationMs) {
|
|
22
|
-
const msReplaced = animation.replace(MS_DURATION_REGEX, `${durationMs}ms`);
|
|
23
|
-
if (msReplaced !== animation) {
|
|
24
|
-
return msReplaced;
|
|
25
|
-
}
|
|
26
|
-
const sReplaced = animation.replace(S_DURATION_REGEX, `${durationMs}ms`);
|
|
27
|
-
if (sReplaced !== animation) {
|
|
28
|
-
return sReplaced;
|
|
29
|
-
}
|
|
30
|
-
return `${durationMs}ms ${animation}`;
|
|
31
|
-
}
|
|
32
|
-
const TRANSFORM_KEYS = ["x", "y", "scale", "scaleX", "scaleY", "rotate", "rotateX", "rotateY", "rotateZ", "skewX", "skewY"];
|
|
33
|
-
function buildTransformString(style) {
|
|
34
|
-
if (!style) return "";
|
|
35
|
-
const parts = [];
|
|
36
|
-
if (style.x !== void 0 || style.y !== void 0) {
|
|
37
|
-
const x = style.x ?? 0;
|
|
38
|
-
const y = style.y ?? 0;
|
|
39
|
-
parts.push(`translate(${x}px, ${y}px)`);
|
|
40
|
-
}
|
|
41
|
-
if (style.scale !== void 0) {
|
|
42
|
-
parts.push(`scale(${style.scale})`);
|
|
43
|
-
}
|
|
44
|
-
if (style.scaleX !== void 0) {
|
|
45
|
-
parts.push(`scaleX(${style.scaleX})`);
|
|
46
|
-
}
|
|
47
|
-
if (style.scaleY !== void 0) {
|
|
48
|
-
parts.push(`scaleY(${style.scaleY})`);
|
|
49
|
-
}
|
|
50
|
-
if (style.rotate !== void 0) {
|
|
51
|
-
const val = style.rotate;
|
|
52
|
-
const unit = typeof val === "string" && val.includes("deg") ? "" : "deg";
|
|
53
|
-
parts.push(`rotate(${val}${unit})`);
|
|
54
|
-
}
|
|
55
|
-
if (style.rotateX !== void 0) {
|
|
56
|
-
parts.push(`rotateX(${style.rotateX}deg)`);
|
|
57
|
-
}
|
|
58
|
-
if (style.rotateY !== void 0) {
|
|
59
|
-
parts.push(`rotateY(${style.rotateY}deg)`);
|
|
60
|
-
}
|
|
61
|
-
if (style.rotateZ !== void 0) {
|
|
62
|
-
parts.push(`rotateZ(${style.rotateZ}deg)`);
|
|
63
|
-
}
|
|
64
|
-
if (style.skewX !== void 0) {
|
|
65
|
-
parts.push(`skewX(${style.skewX}deg)`);
|
|
66
|
-
}
|
|
67
|
-
if (style.skewY !== void 0) {
|
|
68
|
-
parts.push(`skewY(${style.skewY}deg)`);
|
|
69
|
-
}
|
|
70
|
-
return parts.join(" ");
|
|
71
|
-
}
|
|
72
|
-
function applyStylesToNode(node, style) {
|
|
73
|
-
if (!style) return;
|
|
74
|
-
const transformStr = buildTransformString(style);
|
|
75
|
-
if (transformStr) {
|
|
76
|
-
node.style.transform = transformStr;
|
|
77
|
-
}
|
|
78
|
-
for (const [key, value] of Object.entries(style)) {
|
|
79
|
-
if (TRANSFORM_KEYS.includes(key)) continue;
|
|
80
|
-
if (value === void 0) continue;
|
|
81
|
-
if (key === "opacity") {
|
|
82
|
-
node.style.opacity = String(value);
|
|
83
|
-
} else if (key === "backgroundColor") {
|
|
84
|
-
node.style.backgroundColor = String(value);
|
|
85
|
-
} else if (key === "color") {
|
|
86
|
-
node.style.color = String(value);
|
|
87
|
-
} else {
|
|
88
|
-
node.style[key] = typeof value === "number" ? `${value}px` : String(value);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
function createAnimations(animations) {
|
|
93
|
-
const reactionListeners = /* @__PURE__ */new WeakMap();
|
|
94
|
-
return {
|
|
95
|
-
animations,
|
|
96
|
-
usePresence,
|
|
97
|
-
ResetPresence,
|
|
98
|
-
inputStyle: "css",
|
|
99
|
-
outputStyle: "css",
|
|
100
|
-
useAnimatedNumber(initial) {
|
|
101
|
-
const [val, setVal] = React.useState(initial);
|
|
102
|
-
const finishTimerRef = React.useRef(null);
|
|
103
|
-
return {
|
|
104
|
-
getInstance() {
|
|
105
|
-
return setVal;
|
|
106
|
-
},
|
|
107
|
-
getValue() {
|
|
108
|
-
return val;
|
|
109
|
-
},
|
|
110
|
-
setValue(next, config, onFinish) {
|
|
111
|
-
setVal(next);
|
|
112
|
-
if (finishTimerRef.current) {
|
|
113
|
-
clearTimeout(finishTimerRef.current);
|
|
114
|
-
finishTimerRef.current = null;
|
|
115
|
-
}
|
|
116
|
-
if (onFinish) {
|
|
117
|
-
if (!config || config.type === "direct" || config.type === "timing" && config.duration === 0) {
|
|
118
|
-
onFinish();
|
|
119
|
-
} else {
|
|
120
|
-
const duration = config.type === "timing" ? config.duration : 300;
|
|
121
|
-
finishTimerRef.current = setTimeout(onFinish, duration);
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
const listeners = reactionListeners.get(setVal);
|
|
125
|
-
if (listeners) {
|
|
126
|
-
listeners.forEach(listener => listener(next));
|
|
127
|
-
}
|
|
128
|
-
},
|
|
129
|
-
stop() {
|
|
130
|
-
if (finishTimerRef.current) {
|
|
131
|
-
clearTimeout(finishTimerRef.current);
|
|
132
|
-
finishTimerRef.current = null;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
};
|
|
136
|
-
},
|
|
137
|
-
useAnimatedNumberReaction({
|
|
138
|
-
value
|
|
139
|
-
}, onValue) {
|
|
140
|
-
React.useEffect(() => {
|
|
141
|
-
const instance = value.getInstance();
|
|
142
|
-
let queue = reactionListeners.get(instance);
|
|
143
|
-
if (!queue) {
|
|
144
|
-
const next = /* @__PURE__ */new Set();
|
|
145
|
-
reactionListeners.set(instance, next);
|
|
146
|
-
queue = next;
|
|
147
|
-
}
|
|
148
|
-
queue.add(onValue);
|
|
149
|
-
return () => {
|
|
150
|
-
queue?.delete(onValue);
|
|
151
|
-
};
|
|
152
|
-
}, []);
|
|
153
|
-
},
|
|
154
|
-
useAnimatedNumberStyle(val, getStyle) {
|
|
155
|
-
return getStyle(val.getValue());
|
|
156
|
-
},
|
|
157
|
-
useAnimatedNumbersStyle(vals, getStyle) {
|
|
158
|
-
return getStyle(...vals.map(v => v.getValue()));
|
|
159
|
-
},
|
|
160
|
-
// @ts-ignore - styleState is added by createComponent
|
|
161
|
-
useAnimations: ({
|
|
162
|
-
props,
|
|
163
|
-
presence,
|
|
164
|
-
style,
|
|
165
|
-
componentState,
|
|
166
|
-
stateRef,
|
|
167
|
-
styleState
|
|
168
|
-
}) => {
|
|
169
|
-
const isHydrating = componentState.unmounted === true;
|
|
170
|
-
const isEntering = !!componentState.unmounted;
|
|
171
|
-
const isExiting = presence?.[0] === false;
|
|
172
|
-
const sendExitComplete = presence?.[1];
|
|
173
|
-
const wasEnteringRef = React.useRef(isEntering);
|
|
174
|
-
const justFinishedEntering = wasEnteringRef.current && !isEntering;
|
|
175
|
-
React.useEffect(() => {
|
|
176
|
-
wasEnteringRef.current = isEntering;
|
|
177
|
-
});
|
|
178
|
-
const exitCycleIdRef = React.useRef(0);
|
|
179
|
-
const exitCompletedRef = React.useRef(false);
|
|
180
|
-
const wasExitingRef = React.useRef(false);
|
|
181
|
-
const exitInterruptedRef = React.useRef(false);
|
|
182
|
-
const sendExitCompleteRef = React.useRef(sendExitComplete);
|
|
183
|
-
const lastNonExitingStyleRef = React.useRef({});
|
|
184
|
-
sendExitCompleteRef.current = sendExitComplete;
|
|
185
|
-
const justStartedExiting = isExiting && !wasExitingRef.current;
|
|
186
|
-
const justStoppedExiting = !isExiting && wasExitingRef.current;
|
|
187
|
-
if (justStartedExiting) {
|
|
188
|
-
exitCycleIdRef.current++;
|
|
189
|
-
exitCompletedRef.current = false;
|
|
190
|
-
}
|
|
191
|
-
if (justStoppedExiting) {
|
|
192
|
-
exitCycleIdRef.current++;
|
|
193
|
-
exitInterruptedRef.current = true;
|
|
194
|
-
}
|
|
195
|
-
React.useEffect(() => {
|
|
196
|
-
wasExitingRef.current = isExiting;
|
|
197
|
-
});
|
|
198
|
-
useIsomorphicLayoutEffect(() => {
|
|
199
|
-
const host = stateRef.current.host;
|
|
200
|
-
if (isExiting || !host) return;
|
|
201
|
-
const computedStyle = getComputedStyle(host);
|
|
202
|
-
lastNonExitingStyleRef.current = {
|
|
203
|
-
opacity: computedStyle.opacity
|
|
204
|
-
};
|
|
205
|
-
});
|
|
206
|
-
const effectiveTransition = styleState?.effectiveTransition ?? props.transition;
|
|
207
|
-
const normalized = normalizeTransition(effectiveTransition);
|
|
208
|
-
const animationState = isExiting ? "exit" : isEntering || justFinishedEntering ? "enter" : "default";
|
|
209
|
-
const effectiveAnimationKey = getEffectiveAnimation(normalized, animationState);
|
|
210
|
-
const defaultAnimation = effectiveAnimationKey ? animations[effectiveAnimationKey] : null;
|
|
211
|
-
const animatedProperties = getAnimatedProperties(normalized);
|
|
212
|
-
const hasDefault = normalized.default !== null || normalized.enter !== null || normalized.exit !== null;
|
|
213
|
-
const hasPerPropertyConfigs = animatedProperties.length > 0;
|
|
214
|
-
let keys;
|
|
215
|
-
if (props.animateOnly) {
|
|
216
|
-
keys = props.animateOnly;
|
|
217
|
-
} else if (hasPerPropertyConfigs && !hasDefault) {
|
|
218
|
-
keys = animatedProperties;
|
|
219
|
-
} else if (hasPerPropertyConfigs && hasDefault) {
|
|
220
|
-
keys = ["all", ...animatedProperties];
|
|
221
|
-
} else {
|
|
222
|
-
keys = ["all"];
|
|
223
|
-
}
|
|
224
|
-
useIsomorphicLayoutEffect(() => {
|
|
225
|
-
const host = stateRef.current.host;
|
|
226
|
-
if (!sendExitComplete || !isExiting || !host) return;
|
|
227
|
-
const node = host;
|
|
228
|
-
const cycleId = exitCycleIdRef.current;
|
|
229
|
-
const completeExit = () => {
|
|
230
|
-
if (cycleId !== exitCycleIdRef.current) return;
|
|
231
|
-
if (exitCompletedRef.current) return;
|
|
232
|
-
exitCompletedRef.current = true;
|
|
233
|
-
sendExitCompleteRef.current?.();
|
|
234
|
-
};
|
|
235
|
-
if (keys.length === 0) {
|
|
236
|
-
completeExit();
|
|
237
|
-
return;
|
|
238
|
-
}
|
|
239
|
-
let rafId;
|
|
240
|
-
const wasInterrupted = exitInterruptedRef.current;
|
|
241
|
-
let ignoreCancelEvents = wasInterrupted;
|
|
242
|
-
const enterStyle = props.enterStyle;
|
|
243
|
-
const exitStyle = props.exitStyle;
|
|
244
|
-
const delayStr2 = normalized.delay ? ` ${normalized.delay}ms` : "";
|
|
245
|
-
const durationOverride2 = normalized.config?.duration;
|
|
246
|
-
const exitTransitionString = keys.map(key => {
|
|
247
|
-
const propAnimation = normalized.properties[key];
|
|
248
|
-
let animationValue = null;
|
|
249
|
-
if (typeof propAnimation === "string") {
|
|
250
|
-
animationValue = animations[propAnimation];
|
|
251
|
-
} else if (propAnimation && typeof propAnimation === "object" && propAnimation.type) {
|
|
252
|
-
animationValue = animations[propAnimation.type];
|
|
253
|
-
} else if (defaultAnimation) {
|
|
254
|
-
animationValue = defaultAnimation;
|
|
255
|
-
}
|
|
256
|
-
if (animationValue && durationOverride2) {
|
|
257
|
-
animationValue = applyDurationOverride(animationValue, durationOverride2);
|
|
258
|
-
}
|
|
259
|
-
return animationValue ? `${key} ${animationValue}${delayStr2}` : null;
|
|
260
|
-
}).filter(Boolean).join(", ");
|
|
261
|
-
const getResetValue = key => {
|
|
262
|
-
if (key === "opacity") {
|
|
263
|
-
return style?.opacity ?? props.opacity ?? lastNonExitingStyleRef.current.opacity ?? 1;
|
|
264
|
-
}
|
|
265
|
-
if (TRANSFORM_KEYS.includes(key)) {
|
|
266
|
-
return key === "scale" || key === "scaleX" || key === "scaleY" ? 1 : 0;
|
|
267
|
-
}
|
|
268
|
-
return enterStyle?.[key];
|
|
269
|
-
};
|
|
270
|
-
if (wasInterrupted) {
|
|
271
|
-
exitInterruptedRef.current = false;
|
|
272
|
-
node.style.transition = "none";
|
|
273
|
-
if (exitStyle) {
|
|
274
|
-
const resetStyle = {};
|
|
275
|
-
for (const key of Object.keys(exitStyle)) {
|
|
276
|
-
const resetValue = getResetValue(key);
|
|
277
|
-
if (resetValue !== void 0) {
|
|
278
|
-
resetStyle[key] = resetValue;
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
applyStylesToNode(node, resetStyle);
|
|
282
|
-
} else {
|
|
283
|
-
node.style.opacity = "1";
|
|
284
|
-
node.style.transform = "none";
|
|
285
|
-
}
|
|
286
|
-
void node.offsetHeight;
|
|
287
|
-
} else if (exitStyle) {
|
|
288
|
-
ignoreCancelEvents = true;
|
|
289
|
-
node.style.transition = "none";
|
|
290
|
-
const resetStyle = {};
|
|
291
|
-
for (const key of Object.keys(exitStyle)) {
|
|
292
|
-
const resetValue = getResetValue(key);
|
|
293
|
-
if (resetValue !== void 0) {
|
|
294
|
-
resetStyle[key] = resetValue;
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
applyStylesToNode(node, resetStyle);
|
|
298
|
-
void node.offsetHeight;
|
|
299
|
-
rafId = requestAnimationFrame(() => {
|
|
300
|
-
if (cycleId !== exitCycleIdRef.current) return;
|
|
301
|
-
node.style.transition = exitTransitionString;
|
|
302
|
-
void node.offsetHeight;
|
|
303
|
-
applyStylesToNode(node, exitStyle);
|
|
304
|
-
ignoreCancelEvents = false;
|
|
305
|
-
});
|
|
306
|
-
}
|
|
307
|
-
let maxDuration = defaultAnimation ? extractDuration(defaultAnimation) : 200;
|
|
308
|
-
const animationConfigs = getAnimationConfigsForKeys(normalized, animations, keys, defaultAnimation);
|
|
309
|
-
for (const animationValue of animationConfigs.values()) {
|
|
310
|
-
if (animationValue) {
|
|
311
|
-
const duration = extractDuration(animationValue);
|
|
312
|
-
if (duration > maxDuration) {
|
|
313
|
-
maxDuration = duration;
|
|
314
|
-
}
|
|
315
|
-
}
|
|
316
|
-
}
|
|
317
|
-
const delay = normalized.delay ?? 0;
|
|
318
|
-
const fallbackTimeout = maxDuration + delay;
|
|
319
|
-
const timeoutId = setTimeout(() => {
|
|
320
|
-
completeExit();
|
|
321
|
-
}, fallbackTimeout);
|
|
322
|
-
const transitioningProps = new Set(keys);
|
|
323
|
-
let completedCount = 0;
|
|
324
|
-
const onFinishAnimation = event => {
|
|
325
|
-
if (event.target !== node) return;
|
|
326
|
-
const eventProp = event.propertyName;
|
|
327
|
-
if (transitioningProps.has(eventProp) || eventProp === "all") {
|
|
328
|
-
completedCount++;
|
|
329
|
-
if (completedCount >= transitioningProps.size) {
|
|
330
|
-
clearTimeout(timeoutId);
|
|
331
|
-
completeExit();
|
|
332
|
-
}
|
|
333
|
-
}
|
|
334
|
-
};
|
|
335
|
-
const onCancelAnimation = () => {
|
|
336
|
-
if (ignoreCancelEvents) return;
|
|
337
|
-
clearTimeout(timeoutId);
|
|
338
|
-
completeExit();
|
|
339
|
-
};
|
|
340
|
-
node.addEventListener("transitionend", onFinishAnimation);
|
|
341
|
-
node.addEventListener("transitioncancel", onCancelAnimation);
|
|
342
|
-
if (wasInterrupted) {
|
|
343
|
-
rafId = requestAnimationFrame(() => {
|
|
344
|
-
if (cycleId !== exitCycleIdRef.current) return;
|
|
345
|
-
node.style.transition = exitTransitionString;
|
|
346
|
-
void node.offsetHeight;
|
|
347
|
-
applyStylesToNode(node, exitStyle);
|
|
348
|
-
ignoreCancelEvents = false;
|
|
349
|
-
});
|
|
350
|
-
}
|
|
351
|
-
return () => {
|
|
352
|
-
clearTimeout(timeoutId);
|
|
353
|
-
if (rafId !== void 0) cancelAnimationFrame(rafId);
|
|
354
|
-
node.removeEventListener("transitionend", onFinishAnimation);
|
|
355
|
-
node.removeEventListener("transitioncancel", onCancelAnimation);
|
|
356
|
-
node.style.transition = "";
|
|
357
|
-
};
|
|
358
|
-
}, [isExiting]);
|
|
359
|
-
if (isHydrating) {
|
|
360
|
-
return null;
|
|
361
|
-
}
|
|
362
|
-
if (!hasNormalizedAnimation(normalized)) {
|
|
363
|
-
return null;
|
|
364
|
-
}
|
|
365
|
-
if (Array.isArray(style.transform)) {
|
|
366
|
-
style.transform = transformsToString(style.transform);
|
|
367
|
-
}
|
|
368
|
-
const delayStr = normalized.delay ? ` ${normalized.delay}ms` : "";
|
|
369
|
-
const durationOverride = normalized.config?.duration;
|
|
370
|
-
style.transition = keys.map(key => {
|
|
371
|
-
const propAnimation = normalized.properties[key];
|
|
372
|
-
let animationValue = null;
|
|
373
|
-
if (typeof propAnimation === "string") {
|
|
374
|
-
animationValue = animations[propAnimation];
|
|
375
|
-
} else if (propAnimation && typeof propAnimation === "object" && propAnimation.type) {
|
|
376
|
-
animationValue = animations[propAnimation.type];
|
|
377
|
-
} else if (defaultAnimation) {
|
|
378
|
-
animationValue = defaultAnimation;
|
|
379
|
-
}
|
|
380
|
-
if (animationValue && durationOverride) {
|
|
381
|
-
animationValue = applyDurationOverride(animationValue, durationOverride);
|
|
382
|
-
}
|
|
383
|
-
return animationValue ? `${key} ${animationValue}${delayStr}` : null;
|
|
384
|
-
}).filter(Boolean).join(", ");
|
|
385
|
-
if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
|
|
386
|
-
console.info("CSS animation", {
|
|
387
|
-
props,
|
|
388
|
-
animations,
|
|
389
|
-
normalized,
|
|
390
|
-
defaultAnimation,
|
|
391
|
-
style,
|
|
392
|
-
isEntering,
|
|
393
|
-
isExiting
|
|
394
|
-
});
|
|
395
|
-
}
|
|
396
|
-
return {
|
|
397
|
-
style,
|
|
398
|
-
className: isEntering ? "t_unmounted" : ""
|
|
399
|
-
};
|
|
400
|
-
}
|
|
401
|
-
};
|
|
402
|
-
}
|
|
403
|
-
export { createAnimations };
|
|
404
|
-
//# sourceMappingURL=createAnimations.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["normalizeTransition","getAnimatedProperties","hasAnimation","hasNormalizedAnimation","getEffectiveAnimation","getAnimationConfigsForKeys","useIsomorphicLayoutEffect","ResetPresence","usePresence","transformsToString","React","EXTRACT_MS_REGEX","EXTRACT_S_REGEX","extractDuration","animation","msMatch","match","Number","parseInt","sMatch","Math","round","parseFloat","MS_DURATION_REGEX","S_DURATION_REGEX","applyDurationOverride","durationMs","msReplaced","replace","sReplaced","TRANSFORM_KEYS","buildTransformString","style","parts","x","y","push","scale","scaleX","scaleY","rotate","val","unit","includes","rotateX","rotateY","rotateZ","skewX","skewY","join","applyStylesToNode","node","transformStr","transform","key","value","Object","entries","opacity","String","backgroundColor","color","createAnimations","animations","reactionListeners","WeakMap","inputStyle","outputStyle","useAnimatedNumber","initial","setVal","useState","finishTimerRef","useRef","getInstance","getValue","setValue","next","config","onFinish","current","clearTimeout","type","duration","setTimeout","listeners","get","forEach","listener","stop","useAnimatedNumberReaction","onValue","useEffect","instance","queue","Set","set","add","delete","useAnimatedNumberStyle","getStyle","useAnimatedNumbersStyle","vals","map","v","useAnimations","props","presence","componentState","stateRef","styleState","isHydrating","unmounted","isEntering","isExiting","sendExitComplete","wasEnteringRef","justFinishedEntering","exitCycleIdRef","exitCompletedRef","wasExitingRef","exitInterruptedRef","sendExitCompleteRef","lastNonExitingStyleRef","justStartedExiting","justStoppedExiting","host","computedStyle","getComputedStyle","effectiveTransition","transition","normalized","animationState","effectiveAnimationKey","defaultAnimation","animatedProperties","hasDefault","default","enter","exit","hasPerPropertyConfigs","length","keys","animateOnly","cycleId","completeExit","rafId","wasInterrupted","ignoreCancelEvents","enterStyle","exitStyle","delayStr","delay","durationOverride","exitTransitionString","propAnimation","properties","animationValue","durationOverride2","delayStr2","filter","Boolean","getResetValue","resetStyle","resetValue","offsetHeight","requestAnimationFrame","maxDuration","animationConfigs","values","fallbackTimeout","timeoutId","transitioningProps","completedCount","onFinishAnimation","event","target","eventProp","propertyName","has","size","onCancelAnimation","addEventListener","cancelAnimationFrame","removeEventListener","Array","isArray","process","env","NODE_ENV","console","info","className"],"sources":["../../src/createAnimations.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|