react-native-laminar 1.4.4 → 1.5.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/README.md +36 -6
- package/lib/commonjs/hooks/use-inline-auto-width.js +24 -1
- package/lib/commonjs/hooks/use-inline-auto-width.js.map +1 -1
- package/lib/commonjs/hooks/use-leading-animation.js +49 -0
- package/lib/commonjs/hooks/use-leading-animation.js.map +1 -0
- package/lib/commonjs/hooks/use-morph-motion.js +3 -1
- package/lib/commonjs/hooks/use-morph-motion.js.map +1 -1
- package/lib/commonjs/index.js +35 -6
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/motion/preset-map.js +5 -0
- package/lib/commonjs/motion/preset-map.js.map +1 -1
- package/lib/commonjs/view/leading-element.js +37 -0
- package/lib/commonjs/view/leading-element.js.map +1 -0
- package/lib/commonjs/view/morph-viewport.js +26 -0
- package/lib/commonjs/view/morph-viewport.js.map +1 -1
- package/lib/commonjs/view/number-run.js +70 -22
- package/lib/commonjs/view/number-run.js.map +1 -1
- package/lib/commonjs/view/slot-shadow.js +77 -0
- package/lib/commonjs/view/slot-shadow.js.map +1 -0
- package/lib/commonjs/view/slots-run.js +111 -42
- package/lib/commonjs/view/slots-run.js.map +1 -1
- package/lib/commonjs/view/text-run.js +13 -24
- package/lib/commonjs/view/text-run.js.map +1 -1
- package/lib/commonjs/view/ticker-run.js +127 -0
- package/lib/commonjs/view/ticker-run.js.map +1 -0
- package/lib/module/hooks/use-inline-auto-width.js +24 -1
- package/lib/module/hooks/use-inline-auto-width.js.map +1 -1
- package/lib/module/hooks/use-leading-animation.js +44 -0
- package/lib/module/hooks/use-leading-animation.js.map +1 -0
- package/lib/module/hooks/use-morph-motion.js +3 -1
- package/lib/module/hooks/use-morph-motion.js.map +1 -1
- package/lib/module/index.js +35 -6
- package/lib/module/index.js.map +1 -1
- package/lib/module/motion/preset-map.js +5 -0
- package/lib/module/motion/preset-map.js.map +1 -1
- package/lib/module/view/leading-element.js +32 -0
- package/lib/module/view/leading-element.js.map +1 -0
- package/lib/module/view/morph-viewport.js +28 -2
- package/lib/module/view/morph-viewport.js.map +1 -1
- package/lib/module/view/number-run.js +70 -23
- package/lib/module/view/number-run.js.map +1 -1
- package/lib/module/view/slot-shadow.js +72 -0
- package/lib/module/view/slot-shadow.js.map +1 -0
- package/lib/module/view/slots-run.js +111 -42
- package/lib/module/view/slots-run.js.map +1 -1
- package/lib/module/view/text-run.js +14 -25
- package/lib/module/view/text-run.js.map +1 -1
- package/lib/module/view/ticker-run.js +121 -0
- package/lib/module/view/ticker-run.js.map +1 -0
- package/lib/typescript/commonjs/hooks/use-inline-auto-width.d.ts.map +1 -1
- package/lib/typescript/commonjs/hooks/use-leading-animation.d.ts +16 -0
- package/lib/typescript/commonjs/hooks/use-leading-animation.d.ts.map +1 -0
- package/lib/typescript/commonjs/hooks/use-morph-motion.d.ts +3 -2
- package/lib/typescript/commonjs/hooks/use-morph-motion.d.ts.map +1 -1
- package/lib/typescript/commonjs/index.d.ts +1 -1
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/motion/preset-map.d.ts.map +1 -1
- package/lib/typescript/commonjs/types.d.ts +14 -2
- package/lib/typescript/commonjs/types.d.ts.map +1 -1
- package/lib/typescript/commonjs/view/leading-element.d.ts +14 -0
- package/lib/typescript/commonjs/view/leading-element.d.ts.map +1 -0
- package/lib/typescript/commonjs/view/morph-viewport.d.ts +4 -1
- package/lib/typescript/commonjs/view/morph-viewport.d.ts.map +1 -1
- package/lib/typescript/commonjs/view/number-run.d.ts +6 -2
- package/lib/typescript/commonjs/view/number-run.d.ts.map +1 -1
- package/lib/typescript/commonjs/view/slot-shadow.d.ts +11 -0
- package/lib/typescript/commonjs/view/slot-shadow.d.ts.map +1 -0
- package/lib/typescript/commonjs/view/slots-run.d.ts +8 -3
- package/lib/typescript/commonjs/view/slots-run.d.ts.map +1 -1
- package/lib/typescript/commonjs/view/text-run.d.ts.map +1 -1
- package/lib/typescript/commonjs/view/ticker-run.d.ts +21 -0
- package/lib/typescript/commonjs/view/ticker-run.d.ts.map +1 -0
- package/lib/typescript/module/hooks/use-inline-auto-width.d.ts.map +1 -1
- package/lib/typescript/module/hooks/use-leading-animation.d.ts +16 -0
- package/lib/typescript/module/hooks/use-leading-animation.d.ts.map +1 -0
- package/lib/typescript/module/hooks/use-morph-motion.d.ts +3 -2
- package/lib/typescript/module/hooks/use-morph-motion.d.ts.map +1 -1
- package/lib/typescript/module/index.d.ts +1 -1
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/motion/preset-map.d.ts.map +1 -1
- package/lib/typescript/module/types.d.ts +14 -2
- package/lib/typescript/module/types.d.ts.map +1 -1
- package/lib/typescript/module/view/leading-element.d.ts +14 -0
- package/lib/typescript/module/view/leading-element.d.ts.map +1 -0
- package/lib/typescript/module/view/morph-viewport.d.ts +4 -1
- package/lib/typescript/module/view/morph-viewport.d.ts.map +1 -1
- package/lib/typescript/module/view/number-run.d.ts +6 -2
- package/lib/typescript/module/view/number-run.d.ts.map +1 -1
- package/lib/typescript/module/view/slot-shadow.d.ts +11 -0
- package/lib/typescript/module/view/slot-shadow.d.ts.map +1 -0
- package/lib/typescript/module/view/slots-run.d.ts +8 -3
- package/lib/typescript/module/view/slots-run.d.ts.map +1 -1
- package/lib/typescript/module/view/text-run.d.ts.map +1 -1
- package/lib/typescript/module/view/ticker-run.d.ts +21 -0
- package/lib/typescript/module/view/ticker-run.d.ts.map +1 -0
- package/package.json +3 -1
- package/src/hooks/use-inline-auto-width.ts +33 -1
- package/src/hooks/use-leading-animation.ts +74 -0
- package/src/hooks/use-morph-motion.ts +10 -1
- package/src/index.tsx +44 -6
- package/src/motion/preset-map.ts +5 -0
- package/src/types.ts +17 -2
- package/src/view/leading-element.tsx +45 -0
- package/src/view/morph-viewport.tsx +39 -1
- package/src/view/number-run.tsx +94 -26
- package/src/view/slot-shadow.tsx +99 -0
- package/src/view/slots-run.tsx +163 -58
- package/src/view/text-run.tsx +14 -51
- package/src/view/ticker-run.tsx +167 -0
|
@@ -6,9 +6,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.NumberRun = void 0;
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
|
+
var _reactNativeReanimated = _interopRequireDefault(require("react-native-reanimated"));
|
|
10
|
+
var _useLeadingAnimation = require("../hooks/use-leading-animation");
|
|
9
11
|
var _useNumericLanes = require("../hooks/use-numeric-lanes");
|
|
12
|
+
var _leadingElement = require("./leading-element");
|
|
10
13
|
var _numberLane = require("./number-lane");
|
|
11
14
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
15
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
16
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
13
17
|
const rowStyle = {
|
|
14
18
|
flexDirection: "row",
|
|
@@ -34,45 +38,89 @@ const NumberRun = exports.NumberRun = /*#__PURE__*/_react.default.memo(({
|
|
|
34
38
|
fontSize,
|
|
35
39
|
textStyle,
|
|
36
40
|
staggerMs,
|
|
37
|
-
className
|
|
41
|
+
className,
|
|
42
|
+
leading,
|
|
43
|
+
leadingKey,
|
|
44
|
+
leadingGap = 0,
|
|
45
|
+
ready = true
|
|
38
46
|
}) => {
|
|
47
|
+
const hasDisplayedRef = (0, _react.useRef)(false);
|
|
48
|
+
const displayedValueRef = (0, _react.useRef)(value);
|
|
49
|
+
const displayedLeadingRef = (0, _react.useRef)(leading);
|
|
50
|
+
const displayedLeadingKeyRef = (0, _react.useRef)(leadingKey);
|
|
51
|
+
const displayedLeadingGapRef = (0, _react.useRef)(leadingGap);
|
|
52
|
+
const shouldDisplayTarget = ready || !hasDisplayedRef.current;
|
|
53
|
+
const visibleValue = shouldDisplayTarget ? value : displayedValueRef.current;
|
|
54
|
+
const visibleLeading = shouldDisplayTarget ? leading : displayedLeadingRef.current;
|
|
55
|
+
const visibleLeadingKey = shouldDisplayTarget ? leadingKey : displayedLeadingKeyRef.current;
|
|
56
|
+
const visibleLeadingGap = shouldDisplayTarget ? leadingGap : displayedLeadingGapRef.current;
|
|
57
|
+
if (shouldDisplayTarget) {
|
|
58
|
+
hasDisplayedRef.current = true;
|
|
59
|
+
displayedValueRef.current = value;
|
|
60
|
+
displayedLeadingRef.current = leading;
|
|
61
|
+
displayedLeadingKeyRef.current = leadingKey;
|
|
62
|
+
displayedLeadingGapRef.current = leadingGap;
|
|
63
|
+
}
|
|
64
|
+
const {
|
|
65
|
+
elementEnterTransition,
|
|
66
|
+
elementExitTransition,
|
|
67
|
+
isLeadingChange,
|
|
68
|
+
isLeadingSwap
|
|
69
|
+
} = (0, _useLeadingAnimation.useLeadingAnimation)({
|
|
70
|
+
leading: visibleLeading,
|
|
71
|
+
leadingKey: visibleLeadingKey,
|
|
72
|
+
leadingGap: visibleLeadingGap,
|
|
73
|
+
motionRecipe
|
|
74
|
+
});
|
|
39
75
|
// the hook owns lane identity while this component owns row placement and timing
|
|
40
76
|
const {
|
|
41
77
|
units,
|
|
42
78
|
laneKeys,
|
|
43
79
|
direction,
|
|
44
80
|
leadLength
|
|
45
|
-
} = (0, _useNumericLanes.useNumericLanes)(
|
|
46
|
-
const lastValueRef = (0, _react.useRef)(
|
|
81
|
+
} = (0, _useNumericLanes.useNumericLanes)(visibleValue);
|
|
82
|
+
const lastValueRef = (0, _react.useRef)(visibleValue);
|
|
47
83
|
const hasAnimatedRef = (0, _react.useRef)(false);
|
|
48
84
|
|
|
49
85
|
// skip enter animations on first paint so the number feels settled
|
|
50
|
-
if (
|
|
86
|
+
if (visibleValue !== lastValueRef.current || isLeadingChange) {
|
|
51
87
|
hasAnimatedRef.current = true;
|
|
52
|
-
lastValueRef.current =
|
|
88
|
+
lastValueRef.current = visibleValue;
|
|
53
89
|
}
|
|
54
90
|
|
|
55
91
|
// scale travel from the font while keeping a minimum visible movement
|
|
56
92
|
const travelDistance = (0, _react.useMemo)(() => Math.max(8, Math.round((fontSize ?? 16) * 0.4)), [fontSize]);
|
|
57
93
|
const hasAnimated = hasAnimatedRef.current;
|
|
58
|
-
return /*#__PURE__*/(0, _jsxRuntime.
|
|
94
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
59
95
|
style: [rowStyle, rowAlignStyles[align]],
|
|
60
|
-
children:
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
96
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_leadingElement.LeadingElement, {
|
|
97
|
+
leading: visibleLeading,
|
|
98
|
+
leadingKey: visibleLeadingKey,
|
|
99
|
+
leadingGap: visibleLeadingGap,
|
|
100
|
+
enterTransition: hasAnimated ? motionRecipe.enterTransition : undefined,
|
|
101
|
+
elementEnterTransition: isLeadingSwap ? elementEnterTransition : undefined,
|
|
102
|
+
exitTransition: motionRecipe.exitTransition,
|
|
103
|
+
elementExitTransition: elementExitTransition
|
|
104
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.View, {
|
|
105
|
+
layout: isLeadingChange ? motionRecipe.layoutTransition : undefined,
|
|
106
|
+
style: rowStyle,
|
|
107
|
+
children: units.map((unit, index) => {
|
|
108
|
+
const inLead = index < leadLength;
|
|
109
|
+
const laneKey = inLead ? `lead:${index}` : `lane:${units.length - 1 - index}`;
|
|
110
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_numberLane.NumberLane, {
|
|
111
|
+
unit: unit,
|
|
112
|
+
tokenKey: laneKeys[index],
|
|
113
|
+
isLead: inLead,
|
|
114
|
+
hasAnimated: hasAnimated,
|
|
115
|
+
delayMs: index * staggerMs,
|
|
116
|
+
direction: direction,
|
|
117
|
+
travelDistance: travelDistance,
|
|
118
|
+
motionRecipe: motionRecipe,
|
|
119
|
+
textStyle: textStyle,
|
|
120
|
+
className: className
|
|
121
|
+
}, laneKey);
|
|
122
|
+
})
|
|
123
|
+
})]
|
|
76
124
|
});
|
|
77
125
|
});
|
|
78
126
|
NumberRun.displayName = "NumberRun";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_useNumericLanes","_numberLane","_jsxRuntime","e","t","WeakMap","r","n","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeReanimated","_interopRequireDefault","_useLeadingAnimation","_useNumericLanes","_leadingElement","_numberLane","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","rowStyle","flexDirection","alignItems","alignSelf","rowAlignStyles","left","center","right","NumberRun","exports","React","memo","value","motionRecipe","align","fontSize","textStyle","staggerMs","className","leading","leadingKey","leadingGap","ready","hasDisplayedRef","useRef","displayedValueRef","displayedLeadingRef","displayedLeadingKeyRef","displayedLeadingGapRef","shouldDisplayTarget","current","visibleValue","visibleLeading","visibleLeadingKey","visibleLeadingGap","elementEnterTransition","elementExitTransition","isLeadingChange","isLeadingSwap","useLeadingAnimation","units","laneKeys","direction","leadLength","useNumericLanes","lastValueRef","hasAnimatedRef","travelDistance","useMemo","Math","max","round","hasAnimated","jsxs","View","style","children","jsx","LeadingElement","enterTransition","undefined","exitTransition","layout","layoutTransition","map","unit","index","inLead","laneKey","length","NumberLane","tokenKey","isLead","delayMs","displayName"],"sourceRoot":"../../../src","sources":["view/number-run.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.SlotShadow = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _maskedView = _interopRequireDefault(require("@react-native-masked-view/masked-view"));
|
|
9
|
+
var _expoLinearGradient = require("expo-linear-gradient");
|
|
10
|
+
var _reactNative = require("react-native");
|
|
11
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
12
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
|
+
const DEFAULT_SHADOW_COLOR = "#ffffff";
|
|
14
|
+
// The reference digit viewport fades across roughly one third of its visible row.
|
|
15
|
+
const DEFAULT_SHADOW_SIZE_RATIO = 0.28;
|
|
16
|
+
const transparentColor = color => {
|
|
17
|
+
const value = color.trim();
|
|
18
|
+
if (value.startsWith("#")) {
|
|
19
|
+
const hex = value.slice(1);
|
|
20
|
+
const expanded = hex.length === 3 || hex.length === 4 ? hex.slice(0, 3).split("").map(channel => channel + channel).join("") : hex.slice(0, 6);
|
|
21
|
+
if (expanded.length === 6 && /^[0-9a-f]+$/i.test(expanded)) {
|
|
22
|
+
return `rgba(${Number.parseInt(expanded.slice(0, 2), 16)}, ${Number.parseInt(expanded.slice(2, 4), 16)}, ${Number.parseInt(expanded.slice(4, 6), 16)}, 0)`;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
const channels = value.match(/\d+(?:\.\d+)?%?/g);
|
|
26
|
+
if ((value.startsWith("rgb(") || value.startsWith("rgba(")) && channels) {
|
|
27
|
+
const rgb = channels.slice(0, 3).map(channel => {
|
|
28
|
+
if (channel.endsWith("%")) {
|
|
29
|
+
return Math.round(Number.parseFloat(channel) / 100 * 255);
|
|
30
|
+
}
|
|
31
|
+
return Number.parseFloat(channel);
|
|
32
|
+
});
|
|
33
|
+
if (rgb.length === 3 && rgb.every(Number.isFinite)) {
|
|
34
|
+
return `rgba(${rgb.join(", ")}, 0)`;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// Keep the fallback light so an unknown color never introduces a dark edge.
|
|
39
|
+
return "rgba(255, 255, 255, 0)";
|
|
40
|
+
};
|
|
41
|
+
// Keep the mask mounted for the lifetime of the viewport. The gradient controls
|
|
42
|
+
// content alpha at the clipping edges instead of painting over the glyphs.
|
|
43
|
+
const SlotShadow = exports.SlotShadow = /*#__PURE__*/_react.default.memo(function SlotShadow({
|
|
44
|
+
slotHeight,
|
|
45
|
+
viewportHeight,
|
|
46
|
+
color = DEFAULT_SHADOW_COLOR,
|
|
47
|
+
size,
|
|
48
|
+
children
|
|
49
|
+
}) {
|
|
50
|
+
const edgeSize = Math.min(Math.max(4, size ?? slotHeight * DEFAULT_SHADOW_SIZE_RATIO), viewportHeight / 2);
|
|
51
|
+
const fadeColor = transparentColor(color);
|
|
52
|
+
const fadeRatio = edgeSize / viewportHeight;
|
|
53
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_maskedView.default, {
|
|
54
|
+
pointerEvents: "none",
|
|
55
|
+
style: styles.container,
|
|
56
|
+
maskElement: /*#__PURE__*/(0, _jsxRuntime.jsx)(_expoLinearGradient.LinearGradient, {
|
|
57
|
+
colors: [fadeColor, color, color, fadeColor],
|
|
58
|
+
locations: [0, fadeRatio, 1 - fadeRatio, 1],
|
|
59
|
+
start: {
|
|
60
|
+
x: 0,
|
|
61
|
+
y: 0
|
|
62
|
+
},
|
|
63
|
+
end: {
|
|
64
|
+
x: 0,
|
|
65
|
+
y: 1
|
|
66
|
+
},
|
|
67
|
+
style: styles.mask
|
|
68
|
+
}),
|
|
69
|
+
children: children
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
SlotShadow.displayName = "SlotShadow";
|
|
73
|
+
const styles = _reactNative.StyleSheet.create({
|
|
74
|
+
container: _reactNative.StyleSheet.absoluteFillObject,
|
|
75
|
+
mask: _reactNative.StyleSheet.absoluteFillObject
|
|
76
|
+
});
|
|
77
|
+
//# sourceMappingURL=slot-shadow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_maskedView","_expoLinearGradient","_reactNative","_jsxRuntime","e","__esModule","default","DEFAULT_SHADOW_COLOR","DEFAULT_SHADOW_SIZE_RATIO","transparentColor","color","value","trim","startsWith","hex","slice","expanded","length","split","map","channel","join","test","Number","parseInt","channels","match","rgb","endsWith","Math","round","parseFloat","every","isFinite","SlotShadow","exports","React","memo","slotHeight","viewportHeight","size","children","edgeSize","min","max","fadeColor","fadeRatio","jsx","pointerEvents","style","styles","container","maskElement","LinearGradient","colors","locations","start","x","y","end","mask","displayName","StyleSheet","create","absoluteFillObject"],"sourceRoot":"../../../src","sources":["view/slot-shadow.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,mBAAA,GAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AAA0C,IAAAI,WAAA,GAAAJ,OAAA;AAAA,SAAAD,uBAAAM,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE1C,MAAMG,oBAAoB,GAAG,SAAS;AACtC;AACA,MAAMC,yBAAyB,GAAG,IAAI;AAEtC,MAAMC,gBAAgB,GAAIC,KAAa,IAAK;EAC1C,MAAMC,KAAK,GAAGD,KAAK,CAACE,IAAI,CAAC,CAAC;EAE1B,IAAID,KAAK,CAACE,UAAU,CAAC,GAAG,CAAC,EAAE;IACzB,MAAMC,GAAG,GAAGH,KAAK,CAACI,KAAK,CAAC,CAAC,CAAC;IAC1B,MAAMC,QAAQ,GACZF,GAAG,CAACG,MAAM,KAAK,CAAC,IAAIH,GAAG,CAACG,MAAM,KAAK,CAAC,GAChCH,GAAG,CACAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CACXG,KAAK,CAAC,EAAE,CAAC,CACTC,GAAG,CAAEC,OAAO,IAAKA,OAAO,GAAGA,OAAO,CAAC,CACnCC,IAAI,CAAC,EAAE,CAAC,GACXP,GAAG,CAACC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IAErB,IAAIC,QAAQ,CAACC,MAAM,KAAK,CAAC,IAAI,cAAc,CAACK,IAAI,CAACN,QAAQ,CAAC,EAAE;MAC1D,OAAO,QAAQO,MAAM,CAACC,QAAQ,CAACR,QAAQ,CAACD,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAKQ,MAAM,CAACC,QAAQ,CAC1ER,QAAQ,CAACD,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EACpB,EACF,CAAC,KAAKQ,MAAM,CAACC,QAAQ,CAACR,QAAQ,CAACD,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM;IACvD;EACF;EAEA,MAAMU,QAAQ,GAAGd,KAAK,CAACe,KAAK,CAAC,kBAAkB,CAAC;EAChD,IAAI,CAACf,KAAK,CAACE,UAAU,CAAC,MAAM,CAAC,IAAIF,KAAK,CAACE,UAAU,CAAC,OAAO,CAAC,KAAKY,QAAQ,EAAE;IACvE,MAAME,GAAG,GAAGF,QAAQ,CAACV,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAACI,GAAG,CAAEC,OAAO,IAAK;MAChD,IAAIA,OAAO,CAACQ,QAAQ,CAAC,GAAG,CAAC,EAAE;QACzB,OAAOC,IAAI,CAACC,KAAK,CAAEP,MAAM,CAACQ,UAAU,CAACX,OAAO,CAAC,GAAG,GAAG,GAAI,GAAG,CAAC;MAC7D;MAEA,OAAOG,MAAM,CAACQ,UAAU,CAACX,OAAO,CAAC;IACnC,CAAC,CAAC;IAEF,IAAIO,GAAG,CAACV,MAAM,KAAK,CAAC,IAAIU,GAAG,CAACK,KAAK,CAACT,MAAM,CAACU,QAAQ,CAAC,EAAE;MAClD,OAAO,QAAQN,GAAG,CAACN,IAAI,CAAC,IAAI,CAAC,MAAM;IACrC;EACF;;EAEA;EACA,OAAO,wBAAwB;AACjC,CAAC;AAUD;AACA;AACO,MAAMa,UAAU,GAAAC,OAAA,CAAAD,UAAA,gBAAGE,cAAK,CAACC,IAAI,CAAC,SAASH,UAAUA,CAAC;EACvDI,UAAU;EACVC,cAAc;EACd7B,KAAK,GAAGH,oBAAoB;EAC5BiC,IAAI;EACJC;AACe,CAAC,EAAE;EAClB,MAAMC,QAAQ,GAAGb,IAAI,CAACc,GAAG,CACvBd,IAAI,CAACe,GAAG,CAAC,CAAC,EAAEJ,IAAI,IAAIF,UAAU,GAAG9B,yBAAyB,CAAC,EAC3D+B,cAAc,GAAG,CACnB,CAAC;EACD,MAAMM,SAAS,GAAGpC,gBAAgB,CAACC,KAAK,CAAC;EACzC,MAAMoC,SAAS,GAAGJ,QAAQ,GAAGH,cAAc;EAE3C,oBACE,IAAApC,WAAA,CAAA4C,GAAA,EAAC/C,WAAA,CAAAM,OAAU;IACT0C,aAAa,EAAC,MAAM;IACpBC,KAAK,EAAEC,MAAM,CAACC,SAAU;IACxBC,WAAW,eACT,IAAAjD,WAAA,CAAA4C,GAAA,EAAC9C,mBAAA,CAAAoD,cAAc;MACbC,MAAM,EAAE,CAACT,SAAS,EAAEnC,KAAK,EAAEA,KAAK,EAAEmC,SAAS,CAAE;MAC7CU,SAAS,EAAE,CAAC,CAAC,EAAET,SAAS,EAAE,CAAC,GAAGA,SAAS,EAAE,CAAC,CAAE;MAC5CU,KAAK,EAAE;QAAEC,CAAC,EAAE,CAAC;QAAEC,CAAC,EAAE;MAAE,CAAE;MACtBC,GAAG,EAAE;QAAEF,CAAC,EAAE,CAAC;QAAEC,CAAC,EAAE;MAAE,CAAE;MACpBT,KAAK,EAAEC,MAAM,CAACU;IAAK,CACpB,CACF;IAAAnB,QAAA,EAEAA;EAAQ,CACC,CAAC;AAEjB,CAAC,CAAC;AAEFP,UAAU,CAAC2B,WAAW,GAAG,YAAY;AAErC,MAAMX,MAAM,GAAGY,uBAAU,CAACC,MAAM,CAAC;EAC/BZ,SAAS,EAAEW,uBAAU,CAACE,kBAAkB;EACxCJ,IAAI,EAAEE,uBAAU,CAACE;AACnB,CAAC,CAAC","ignoreList":[]}
|
|
@@ -7,8 +7,11 @@ exports.SlotsRun = void 0;
|
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
9
|
var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reanimated"));
|
|
10
|
+
var _useLeadingAnimation = require("../hooks/use-leading-animation");
|
|
10
11
|
var _useNumericLanes = require("../hooks/use-numeric-lanes");
|
|
11
12
|
var _displayUnits = require("../model/display-units");
|
|
13
|
+
var _leadingElement = require("./leading-element");
|
|
14
|
+
var _slotShadow = require("./slot-shadow");
|
|
12
15
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
16
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
14
17
|
const rowStyle = {
|
|
@@ -49,7 +52,7 @@ const mod = (value, divisor) => (value % divisor + divisor) % divisor;
|
|
|
49
52
|
// compare flattened style values without treating a new array as a visual change
|
|
50
53
|
const equalStyleValue = (left, right) => left === right || Array.isArray(left) && Array.isArray(right) && left.length === right.length && left.every((value, index) => value === right[index]);
|
|
51
54
|
|
|
52
|
-
// prevent every parent update from rebuilding the
|
|
55
|
+
// prevent every parent update from rebuilding the bounded reel
|
|
53
56
|
const areSlotReelPropsEqual = (previous, next) => {
|
|
54
57
|
if (previous.current !== next.current || previous.slotHeight !== next.slotHeight || previous.className !== next.className) {
|
|
55
58
|
return false;
|
|
@@ -103,7 +106,8 @@ function SlotColumn({
|
|
|
103
106
|
motionRecipe,
|
|
104
107
|
slotHeight,
|
|
105
108
|
textStyle,
|
|
106
|
-
className
|
|
109
|
+
className,
|
|
110
|
+
shadow = false
|
|
107
111
|
}) {
|
|
108
112
|
// cumulative positions let the reel move across digit wraparound without jumps
|
|
109
113
|
const spinInDistance = Math.max(digit, 1);
|
|
@@ -113,12 +117,14 @@ function SlotColumn({
|
|
|
113
117
|
const cumulativeRef = (0, _react.useRef)(digit);
|
|
114
118
|
const previousDigitRef = (0, _react.useRef)(digit);
|
|
115
119
|
const initialRef = (0, _react.useRef)(true);
|
|
120
|
+
const drivenTargetRef = (0, _react.useRef)(null);
|
|
116
121
|
const exitStateRef = (0, _react.useRef)({
|
|
117
122
|
digit,
|
|
118
123
|
direction,
|
|
119
124
|
motionRecipe,
|
|
120
125
|
target: digit
|
|
121
126
|
});
|
|
127
|
+
const shadowOptions = shadow !== null && typeof shadow === "object" ? shadow : shadow ? {} : undefined;
|
|
122
128
|
if (digit !== previousDigitRef.current) {
|
|
123
129
|
const previousDigit = previousDigitRef.current;
|
|
124
130
|
let digitDelta;
|
|
@@ -152,6 +158,7 @@ function SlotColumn({
|
|
|
152
158
|
if (initialRef.current) {
|
|
153
159
|
initialRef.current = false;
|
|
154
160
|
if (!animateIn) {
|
|
161
|
+
drivenTargetRef.current = cumulativeRef.current;
|
|
155
162
|
return;
|
|
156
163
|
}
|
|
157
164
|
}
|
|
@@ -170,22 +177,38 @@ function SlotColumn({
|
|
|
170
177
|
motionRecipe,
|
|
171
178
|
target
|
|
172
179
|
};
|
|
180
|
+
|
|
181
|
+
// A direction change can rerender every column even when this column's
|
|
182
|
+
// digit is unchanged. Keep the idle reel untouched in that case.
|
|
183
|
+
if (drivenTargetRef.current === target) {
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
drivenTargetRef.current = target;
|
|
173
187
|
current.value = motionRecipe.driveNumber(target, delayMs);
|
|
174
188
|
}, [animateIn, current, delayMs, digit, direction, motionRecipe]);
|
|
189
|
+
const reel = /*#__PURE__*/(0, _jsxRuntime.jsx)(SlotReel, {
|
|
190
|
+
current: current,
|
|
191
|
+
slotHeight: slotHeight,
|
|
192
|
+
textStyle: textStyle,
|
|
193
|
+
className: className
|
|
194
|
+
});
|
|
175
195
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
176
|
-
style: slotFrameStyle,
|
|
196
|
+
style: [slotFrameStyle, {
|
|
197
|
+
height: slotHeight
|
|
198
|
+
}],
|
|
177
199
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
178
200
|
style: [textStyle, slotProbeStyle, {
|
|
179
201
|
lineHeight: slotHeight
|
|
180
202
|
}],
|
|
181
203
|
className: className,
|
|
182
204
|
children: "0"
|
|
183
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
184
|
-
current: current,
|
|
205
|
+
}), shadowOptions ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_slotShadow.SlotShadow, {
|
|
185
206
|
slotHeight: slotHeight,
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
207
|
+
viewportHeight: slotHeight,
|
|
208
|
+
color: shadowOptions.color,
|
|
209
|
+
size: shadowOptions.size,
|
|
210
|
+
children: reel
|
|
211
|
+
}) : reel]
|
|
189
212
|
});
|
|
190
213
|
}
|
|
191
214
|
// render text prefixes beside reusable digit reels
|
|
@@ -196,15 +219,48 @@ const SlotsRun = exports.SlotsRun = /*#__PURE__*/_react.default.memo(({
|
|
|
196
219
|
fontSize,
|
|
197
220
|
textStyle,
|
|
198
221
|
staggerMs,
|
|
199
|
-
className
|
|
222
|
+
className,
|
|
223
|
+
leading,
|
|
224
|
+
leadingKey,
|
|
225
|
+
leadingGap = 0,
|
|
226
|
+
ready = true,
|
|
227
|
+
shadow = false
|
|
200
228
|
}) => {
|
|
229
|
+
const hasDisplayedRef = (0, _react.useRef)(false);
|
|
230
|
+
const displayedValueRef = (0, _react.useRef)(value);
|
|
231
|
+
const displayedLeadingRef = (0, _react.useRef)(leading);
|
|
232
|
+
const displayedLeadingKeyRef = (0, _react.useRef)(leadingKey);
|
|
233
|
+
const displayedLeadingGapRef = (0, _react.useRef)(leadingGap);
|
|
234
|
+
const shouldDisplayTarget = ready || !hasDisplayedRef.current;
|
|
235
|
+
const visibleValue = shouldDisplayTarget ? value : displayedValueRef.current;
|
|
236
|
+
const visibleLeading = shouldDisplayTarget ? leading : displayedLeadingRef.current;
|
|
237
|
+
const visibleLeadingKey = shouldDisplayTarget ? leadingKey : displayedLeadingKeyRef.current;
|
|
238
|
+
const visibleLeadingGap = shouldDisplayTarget ? leadingGap : displayedLeadingGapRef.current;
|
|
239
|
+
if (shouldDisplayTarget) {
|
|
240
|
+
hasDisplayedRef.current = true;
|
|
241
|
+
displayedValueRef.current = value;
|
|
242
|
+
displayedLeadingRef.current = leading;
|
|
243
|
+
displayedLeadingKeyRef.current = leadingKey;
|
|
244
|
+
displayedLeadingGapRef.current = leadingGap;
|
|
245
|
+
}
|
|
246
|
+
const {
|
|
247
|
+
elementEnterTransition,
|
|
248
|
+
elementExitTransition,
|
|
249
|
+
isLeadingChange,
|
|
250
|
+
isLeadingSwap
|
|
251
|
+
} = (0, _useLeadingAnimation.useLeadingAnimation)({
|
|
252
|
+
leading: visibleLeading,
|
|
253
|
+
leadingKey: visibleLeadingKey,
|
|
254
|
+
leadingGap: visibleLeadingGap,
|
|
255
|
+
motionRecipe
|
|
256
|
+
});
|
|
201
257
|
// numeric lane identity decides which columns stay mounted as values change
|
|
202
258
|
const {
|
|
203
259
|
units,
|
|
204
260
|
direction,
|
|
205
261
|
leadLength
|
|
206
|
-
} = (0, _useNumericLanes.useNumericLanes)(
|
|
207
|
-
const lastValueRef = (0, _react.useRef)(
|
|
262
|
+
} = (0, _useNumericLanes.useNumericLanes)(visibleValue);
|
|
263
|
+
const lastValueRef = (0, _react.useRef)(visibleValue);
|
|
208
264
|
const hasAnimatedRef = (0, _react.useRef)(false);
|
|
209
265
|
// derive one stable row height so every reel position shares the same baseline
|
|
210
266
|
const slotHeight = (0, _react.useMemo)(() => {
|
|
@@ -213,45 +269,58 @@ const SlotsRun = exports.SlotsRun = /*#__PURE__*/_react.default.memo(({
|
|
|
213
269
|
const resolvedFontSize = typeof flattenedStyle?.fontSize === "number" ? flattenedStyle.fontSize : fontSize;
|
|
214
270
|
return Math.max(12, Math.ceil(resolvedLineHeight ?? (resolvedFontSize ?? 16) * 1.18));
|
|
215
271
|
}, [fontSize, textStyle]);
|
|
216
|
-
if (
|
|
272
|
+
if (visibleValue !== lastValueRef.current || isLeadingChange) {
|
|
217
273
|
hasAnimatedRef.current = true;
|
|
218
|
-
lastValueRef.current =
|
|
274
|
+
lastValueRef.current = visibleValue;
|
|
219
275
|
}
|
|
220
276
|
const digitCount = units.filter(_displayUnits.isAsciiDigit).length;
|
|
221
277
|
let digitIndex = 0;
|
|
222
278
|
const hasAnimated = hasAnimatedRef.current;
|
|
223
|
-
return /*#__PURE__*/(0, _jsxRuntime.
|
|
279
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
224
280
|
style: [rowStyle, rowAlignStyles[align]],
|
|
225
|
-
children:
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
281
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_leadingElement.LeadingElement, {
|
|
282
|
+
leading: visibleLeading,
|
|
283
|
+
leadingKey: visibleLeadingKey,
|
|
284
|
+
leadingGap: visibleLeadingGap,
|
|
285
|
+
enterTransition: hasAnimated ? motionRecipe.enterTransition : undefined,
|
|
286
|
+
elementEnterTransition: isLeadingSwap ? elementEnterTransition : undefined,
|
|
287
|
+
exitTransition: motionRecipe.exitTransition,
|
|
288
|
+
elementExitTransition: elementExitTransition
|
|
289
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.View, {
|
|
290
|
+
layout: isLeadingChange ? motionRecipe.layoutTransition : undefined,
|
|
291
|
+
style: rowStyle,
|
|
292
|
+
children: units.map((unit, index) => {
|
|
293
|
+
const inLead = index < leadLength;
|
|
294
|
+
const laneKey = inLead ? `lead:${index}` : `slot:${units.length - 1 - index}`;
|
|
295
|
+
if (inLead || !(0, _displayUnits.isAsciiDigit)(unit)) {
|
|
296
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.Text, {
|
|
297
|
+
layout: hasAnimated ? motionRecipe.layoutTransition : undefined,
|
|
298
|
+
exiting: !inLead ? motionRecipe.exitTransition : undefined,
|
|
299
|
+
style: textStyle,
|
|
300
|
+
className: className,
|
|
301
|
+
children: unit
|
|
302
|
+
}, laneKey);
|
|
303
|
+
}
|
|
304
|
+
const delayMs = (digitCount - 1 - digitIndex) * staggerMs;
|
|
305
|
+
digitIndex += 1;
|
|
306
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.View, {
|
|
230
307
|
layout: hasAnimated ? motionRecipe.layoutTransition : undefined,
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
308
|
+
entering: hasAnimated ? motionRecipe.enterTransition : undefined,
|
|
309
|
+
exiting: motionRecipe.exitTransition,
|
|
310
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(SlotColumn, {
|
|
311
|
+
digit: Number(unit),
|
|
312
|
+
direction: direction,
|
|
313
|
+
delayMs: delayMs,
|
|
314
|
+
animateIn: hasAnimated,
|
|
315
|
+
motionRecipe: motionRecipe,
|
|
316
|
+
slotHeight: slotHeight,
|
|
317
|
+
textStyle: textStyle,
|
|
318
|
+
className: className,
|
|
319
|
+
shadow: shadow
|
|
320
|
+
})
|
|
235
321
|
}, laneKey);
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
digitIndex += 1;
|
|
239
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.View, {
|
|
240
|
-
layout: hasAnimated ? motionRecipe.layoutTransition : undefined,
|
|
241
|
-
entering: hasAnimated ? motionRecipe.enterTransition : undefined,
|
|
242
|
-
exiting: motionRecipe.exitTransition,
|
|
243
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(SlotColumn, {
|
|
244
|
-
digit: Number(unit),
|
|
245
|
-
direction: direction,
|
|
246
|
-
delayMs: delayMs,
|
|
247
|
-
animateIn: hasAnimated,
|
|
248
|
-
motionRecipe: motionRecipe,
|
|
249
|
-
slotHeight: slotHeight,
|
|
250
|
-
textStyle: textStyle,
|
|
251
|
-
className: className
|
|
252
|
-
})
|
|
253
|
-
}, laneKey);
|
|
254
|
-
})
|
|
322
|
+
})
|
|
323
|
+
})]
|
|
255
324
|
});
|
|
256
325
|
});
|
|
257
326
|
SlotsRun.displayName = "SlotsRun";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeReanimated","_useNumericLanes","_displayUnits","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","rowStyle","flexDirection","alignItems","alignSelf","rowAlignStyles","left","center","right","slotFrameStyle","position","overflow","slotProbeStyle","opacity","slotDigitStyle","textAlign","REEL_MIN","REEL_MAX","REEL_POSITIONS","Array","from","length","_","index","mod","value","divisor","equalStyleValue","isArray","every","areSlotReelPropsEqual","previous","next","current","slotHeight","className","previousStyle","StyleSheet","flatten","textStyle","nextStyle","previousKeys","keys","nextKeys","key","SlotReel","React","memo","animatedStyle","useAnimatedStyle","transform","translateY","jsx","View","pointerEvents","style","top","children","map","Text","numberOfLines","height","lineHeight","SlotColumn","digit","direction","delayMs","animateIn","motionRecipe","spinInDistance","Math","max","initialDirection","initialValue","useSharedValue","cumulativeRef","useRef","previousDigitRef","initialRef","exitStateRef","target","previousDigit","digitDelta","useEffect","exitState","spinOutDistance","exitDirection","driveNumber","shift","trunc","jsxs","SlotsRun","exports","align","fontSize","staggerMs","units","leadLength","useNumericLanes","lastValueRef","hasAnimatedRef","useMemo","flattenedStyle","resolvedLineHeight","undefined","resolvedFontSize","ceil","digitCount","filter","isAsciiDigit","digitIndex","hasAnimated","unit","inLead","laneKey","layout","layoutTransition","exiting","exitTransition","entering","enterTransition","Number","displayName"],"sourceRoot":"../../../src","sources":["view/slots-run.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeReanimated","_useLeadingAnimation","_useNumericLanes","_displayUnits","_leadingElement","_slotShadow","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","rowStyle","flexDirection","alignItems","alignSelf","rowAlignStyles","left","center","right","slotFrameStyle","position","overflow","slotProbeStyle","opacity","slotDigitStyle","textAlign","REEL_MIN","REEL_MAX","REEL_POSITIONS","Array","from","length","_","index","mod","value","divisor","equalStyleValue","isArray","every","areSlotReelPropsEqual","previous","next","current","slotHeight","className","previousStyle","StyleSheet","flatten","textStyle","nextStyle","previousKeys","keys","nextKeys","key","SlotReel","React","memo","animatedStyle","useAnimatedStyle","transform","translateY","jsx","View","pointerEvents","style","top","children","map","Text","numberOfLines","height","lineHeight","SlotColumn","digit","direction","delayMs","animateIn","motionRecipe","shadow","spinInDistance","Math","max","initialDirection","initialValue","useSharedValue","cumulativeRef","useRef","previousDigitRef","initialRef","drivenTargetRef","exitStateRef","target","shadowOptions","undefined","previousDigit","digitDelta","useEffect","exitState","spinOutDistance","exitDirection","driveNumber","shift","trunc","reel","jsxs","SlotShadow","viewportHeight","color","size","SlotsRun","exports","align","fontSize","staggerMs","leading","leadingKey","leadingGap","ready","hasDisplayedRef","displayedValueRef","displayedLeadingRef","displayedLeadingKeyRef","displayedLeadingGapRef","shouldDisplayTarget","visibleValue","visibleLeading","visibleLeadingKey","visibleLeadingGap","elementEnterTransition","elementExitTransition","isLeadingChange","isLeadingSwap","useLeadingAnimation","units","leadLength","useNumericLanes","lastValueRef","hasAnimatedRef","useMemo","flattenedStyle","resolvedLineHeight","resolvedFontSize","ceil","digitCount","filter","isAsciiDigit","digitIndex","hasAnimated","LeadingElement","enterTransition","exitTransition","layout","layoutTransition","unit","inLead","laneKey","exiting","entering","Number","displayName"],"sourceRoot":"../../../src","sources":["view/slots-run.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,9 +5,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.TextRun = void 0;
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
-
var _reactNativeReanimated = require("react-native-reanimated");
|
|
9
8
|
var _useTextGlyphs = require("../hooks/use-text-glyphs");
|
|
10
|
-
var
|
|
9
|
+
var _useLeadingAnimation = require("../hooks/use-leading-animation");
|
|
11
10
|
var _glyphRun = require("./glyph-run");
|
|
12
11
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
12
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
@@ -44,34 +43,24 @@ const TextRun = exports.TextRun = /*#__PURE__*/_react.default.memo(({
|
|
|
44
43
|
displayedLeadingGapRef.current = leadingGap;
|
|
45
44
|
}
|
|
46
45
|
const lastValueRef = (0, _react.useRef)(visibleValue);
|
|
47
|
-
const lastLeadingPresenceRef = (0, _react.useRef)(Boolean(visibleLeading));
|
|
48
|
-
const lastLeadingKeyRef = (0, _react.useRef)(visibleLeadingKey);
|
|
49
46
|
const hasAnimatedRef = (0, _react.useRef)(false);
|
|
50
|
-
const
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
const elementEnterTransition = (0, _react.useMemo)(() => (0, _entryExitBuilders.createLeadingEnterTransition)({
|
|
59
|
-
durationMs: motionRecipe.durationMs,
|
|
60
|
-
easing: motionRecipe.easing
|
|
61
|
-
}), [motionRecipe.durationMs, motionRecipe.easing]);
|
|
62
|
-
const elementExitTransition = (0, _react.useMemo)(() => (0, _entryExitBuilders.createLeadingExitTransition)({
|
|
63
|
-
durationMs: motionRecipe.durationMs,
|
|
64
|
-
easing: motionRecipe.easing,
|
|
47
|
+
const {
|
|
48
|
+
elementEnterTransition,
|
|
49
|
+
elementExitTransition,
|
|
50
|
+
isLeadingChange,
|
|
51
|
+
isLeadingSwap
|
|
52
|
+
} = (0, _useLeadingAnimation.useLeadingAnimation)({
|
|
53
|
+
leading: visibleLeading,
|
|
54
|
+
leadingKey: visibleLeadingKey,
|
|
65
55
|
leadingGap: visibleLeadingGap,
|
|
66
|
-
|
|
67
|
-
})
|
|
56
|
+
motionRecipe
|
|
57
|
+
});
|
|
58
|
+
const glyphs = (0, _useTextGlyphs.useTextGlyphs)(visibleValue, scopeId, visibleLeading, visibleLeadingKey);
|
|
68
59
|
|
|
69
60
|
// mark the first value as settled and later changes as eligible for motion
|
|
70
|
-
if (visibleValue !== lastValueRef.current ||
|
|
61
|
+
if (visibleValue !== lastValueRef.current || isLeadingChange) {
|
|
71
62
|
hasAnimatedRef.current = true;
|
|
72
63
|
lastValueRef.current = visibleValue;
|
|
73
|
-
lastLeadingPresenceRef.current = Boolean(visibleLeading);
|
|
74
|
-
lastLeadingKeyRef.current = visibleLeadingKey;
|
|
75
64
|
}
|
|
76
65
|
const hasAnimated = hasAnimatedRef.current;
|
|
77
66
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_glyphRun.GlyphRun, {
|