@cuemath/leap 3.2.25-mb → 3.2.26
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/assets/lottie/lottie.js +1 -1
- package/dist/assets/lottie/lottie.js.map +1 -1
- package/dist/features/analytics-events/whitelist-events.js +17 -15
- package/dist/features/analytics-events/whitelist-events.js.map +1 -1
- package/dist/features/auth/comps/animated-avatar-message/animated-avatar-message-constants.js +2 -1
- package/dist/features/auth/comps/animated-avatar-message/animated-avatar-message-constants.js.map +1 -1
- package/dist/features/auth/comps/animated-avatar-message/animated-avatar-message-styled.js +8 -8
- package/dist/features/auth/comps/animated-avatar-message/animated-avatar-message-styled.js.map +1 -1
- package/dist/features/auth/comps/animated-avatar-message/animated-avatar-message.js +82 -60
- package/dist/features/auth/comps/animated-avatar-message/animated-avatar-message.js.map +1 -1
- package/dist/features/auth/comps/pill-button/pill-button.js +41 -38
- package/dist/features/auth/comps/pill-button/pill-button.js.map +1 -1
- package/dist/features/auth/comps/resend-otp/resend-otp.js +18 -14
- package/dist/features/auth/comps/resend-otp/resend-otp.js.map +1 -1
- package/dist/features/auth/comps/selectable-info-card/selectable-info-card.js +32 -26
- package/dist/features/auth/comps/selectable-info-card/selectable-info-card.js.map +1 -1
- package/dist/features/auth/pla-signup/pla-analytics-events.js +23 -0
- package/dist/features/auth/pla-signup/pla-analytics-events.js.map +1 -0
- package/dist/features/auth/pla-signup/signup-options/signup-options.js +42 -35
- package/dist/features/auth/pla-signup/signup-options/signup-options.js.map +1 -1
- package/dist/features/milestone/create/comps/chapters-selection-step/chapter-selection-step-v2/chapters-list.js +68 -53
- package/dist/features/milestone/create/comps/chapters-selection-step/chapter-selection-step-v2/chapters-list.js.map +1 -1
- package/dist/features/notification/notification.js +129 -0
- package/dist/features/notification/notification.js.map +1 -0
- package/dist/features/ui/carousal/carousal-styles.js +45 -0
- package/dist/features/ui/carousal/carousal-styles.js.map +1 -0
- package/dist/features/ui/carousal/carousal.js +76 -0
- package/dist/features/ui/carousal/carousal.js.map +1 -0
- package/dist/features/ui/dot-lottie-animations/dot-lottie-animation.js +75 -88
- package/dist/features/ui/dot-lottie-animations/dot-lottie-animation.js.map +1 -1
- package/dist/features/ui/inputs/base-select-input/base-select-input.js +77 -67
- package/dist/features/ui/inputs/base-select-input/base-select-input.js.map +1 -1
- package/dist/features/ui/lottie-animation/lottie-animation.js +43 -45
- package/dist/features/ui/lottie-animation/lottie-animation.js.map +1 -1
- package/dist/features/ui/modals/modal-styled.js +8 -39
- package/dist/features/ui/modals/modal-styled.js.map +1 -1
- package/dist/features/ui/modals/modal.js +31 -31
- package/dist/features/ui/modals/modal.js.map +1 -1
- package/dist/features/{stickers/sticker-selector/sticker-selector-styles.js → ui/sticker-grid/sticker-grid-styles.js} +31 -21
- package/dist/features/ui/sticker-grid/sticker-grid-styles.js.map +1 -0
- package/dist/features/ui/sticker-grid/sticker-grid.js +24 -0
- package/dist/features/ui/sticker-grid/sticker-grid.js.map +1 -0
- package/dist/features/ui/sticker-grid/sticker.js +57 -0
- package/dist/features/ui/sticker-grid/sticker.js.map +1 -0
- package/dist/features/ui/stickers/constants.js +6 -0
- package/dist/features/ui/stickers/constants.js.map +1 -0
- package/dist/features/{stickers/stickers-effects/effects.js → ui/stickers/stickers-effects.js} +6 -6
- package/dist/features/ui/stickers/stickers-effects.js.map +1 -0
- package/dist/features/{stickers/stickers-effects/stickers-effects-styled.js → ui/stickers/stickers-styled.js} +2 -2
- package/dist/features/ui/stickers/stickers-styled.js.map +1 -0
- package/dist/features/ui/stickers/stickers-utils.js +91 -0
- package/dist/features/ui/stickers/stickers-utils.js.map +1 -0
- package/dist/features/ui/stickers/stickers.js +40 -0
- package/dist/features/ui/stickers/stickers.js.map +1 -0
- package/dist/features/ui/theme/layout.js +3 -3
- package/dist/features/ui/theme/layout.js.map +1 -1
- package/dist/index.d.ts +114 -81
- package/dist/index.js +452 -448
- package/dist/index.js.map +1 -1
- package/dist/node_modules/uuid/dist/esm-browser/native.js +7 -0
- package/dist/node_modules/uuid/dist/esm-browser/native.js.map +1 -0
- package/dist/node_modules/uuid/dist/esm-browser/rng.js +3 -2
- package/dist/node_modules/uuid/dist/esm-browser/rng.js.map +1 -1
- package/dist/node_modules/uuid/dist/esm-browser/stringify.js +6 -10
- package/dist/node_modules/uuid/dist/esm-browser/stringify.js.map +1 -1
- package/dist/node_modules/uuid/dist/esm-browser/v4.js +12 -9
- package/dist/node_modules/uuid/dist/esm-browser/v4.js.map +1 -1
- package/dist/static/animated-avatar.c3a0fa98.json +1 -0
- package/package.json +1 -1
- package/dist/features/stickers/sticker-data.js +0 -234
- package/dist/features/stickers/sticker-data.js.map +0 -1
- package/dist/features/stickers/sticker-selector/sticker-selector-styles.js.map +0 -1
- package/dist/features/stickers/sticker-selector/sticker-selector.js +0 -27
- package/dist/features/stickers/sticker-selector/sticker-selector.js.map +0 -1
- package/dist/features/stickers/sticker-selector/sticker.js +0 -57
- package/dist/features/stickers/sticker-selector/sticker.js.map +0 -1
- package/dist/features/stickers/stickers-effects/effects.js.map +0 -1
- package/dist/features/stickers/stickers-effects/stickers-cache.js +0 -19
- package/dist/features/stickers/stickers-effects/stickers-cache.js.map +0 -1
- package/dist/features/stickers/stickers-effects/stickers-effects-helper.js +0 -86
- package/dist/features/stickers/stickers-effects/stickers-effects-helper.js.map +0 -1
- package/dist/features/stickers/stickers-effects/stickers-effects-styled.js.map +0 -1
- package/dist/features/stickers/stickers-effects/stickers-effects.js +0 -54
- package/dist/features/stickers/stickers-effects/stickers-effects.js.map +0 -1
- package/dist/node_modules/uuid/dist/esm-browser/regex.js +0 -5
- package/dist/node_modules/uuid/dist/esm-browser/regex.js.map +0 -1
- package/dist/node_modules/uuid/dist/esm-browser/validate.js +0 -8
- package/dist/node_modules/uuid/dist/esm-browser/validate.js.map +0 -1
- package/dist/static/animated-avatar.1ad58b1d.json +0 -1
- package/dist/static/animated-avatar.69b07505.json +0 -1
- package/dist/static/animated-avatar.9c560b46.json +0 -1
- package/dist/static/cuemath-app-qr-code.4beefe48.svg +0 -1
- package/dist/static/cuemath-app-qr-code.ba6cc09b.svg +0 -1
- package/dist/static/cuemath-app-qr-code.d0912fc7.png +0 -0
- package/dist/static/otp.2d08f874.json +0 -1
- package/dist/static/phone-number.84f55562.json +0 -1
- package/dist/static/target-achieved-text.053bd142.json +0 -2830
- package/dist/static/user-type-selector-grid-bg.3c9c8ad6.svg +0 -1
- package/dist/static/user-type-selector-grid-bg.3ce8142d.svg +0 -1
|
@@ -1,234 +0,0 @@
|
|
|
1
|
-
const t = [
|
|
2
|
-
{
|
|
3
|
-
id: "star-struck",
|
|
4
|
-
emoji: "🤩",
|
|
5
|
-
name: "Star-Struck",
|
|
6
|
-
lottieUrl: "https://fonts.gstatic.com/s/e/notoemoji/latest/1f929/lottie.json"
|
|
7
|
-
},
|
|
8
|
-
{
|
|
9
|
-
id: "heart-eyes",
|
|
10
|
-
emoji: "😍",
|
|
11
|
-
name: "Heart Eyes",
|
|
12
|
-
lottieUrl: "https://fonts.gstatic.com/s/e/notoemoji/latest/1f60d/lottie.json"
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
id: "holding-back-tears",
|
|
16
|
-
emoji: "🥹",
|
|
17
|
-
name: "Holding Back Tears",
|
|
18
|
-
lottieUrl: "https://fonts.gstatic.com/s/e/notoemoji/latest/1f979/lottie.json"
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
id: "sunglasses",
|
|
22
|
-
emoji: "😎",
|
|
23
|
-
name: "Sunglasses",
|
|
24
|
-
lottieUrl: "https://fonts.gstatic.com/s/e/notoemoji/latest/1f60e/lottie.json"
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
id: "exploding-head",
|
|
28
|
-
emoji: "🤯",
|
|
29
|
-
name: "Exploding Head",
|
|
30
|
-
lottieUrl: "https://fonts.gstatic.com/s/e/notoemoji/latest/1f92f/lottie.json"
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
id: "thinking",
|
|
34
|
-
emoji: "🤔",
|
|
35
|
-
name: "Thinking",
|
|
36
|
-
lottieUrl: "https://fonts.gstatic.com/s/e/notoemoji/latest/1f914/lottie.json"
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
id: "party",
|
|
40
|
-
emoji: "🥳",
|
|
41
|
-
name: "Party",
|
|
42
|
-
lottieUrl: "https://fonts.gstatic.com/s/e/notoemoji/latest/1f973/lottie.json"
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
id: "confetti-ball",
|
|
46
|
-
emoji: "🎊",
|
|
47
|
-
name: "Confetti Ball",
|
|
48
|
-
lottieUrl: "https://fonts.gstatic.com/s/e/notoemoji/latest/1f38a/lottie.json"
|
|
49
|
-
},
|
|
50
|
-
{
|
|
51
|
-
id: "celebration",
|
|
52
|
-
emoji: "🎉",
|
|
53
|
-
name: "Celebration",
|
|
54
|
-
lottieUrl: "https://fonts.gstatic.com/s/e/notoemoji/latest/1f389/lottie.json"
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
id: "balloon",
|
|
58
|
-
emoji: "🎈",
|
|
59
|
-
name: "Balloon",
|
|
60
|
-
lottieUrl: "https://fonts.gstatic.com/s/e/notoemoji/latest/1f388/lottie.json"
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
id: "cake",
|
|
64
|
-
emoji: "🎂",
|
|
65
|
-
name: "Cake",
|
|
66
|
-
lottieUrl: "https://fonts.gstatic.com/s/e/notoemoji/latest/1f382/lottie.json"
|
|
67
|
-
},
|
|
68
|
-
{
|
|
69
|
-
id: "clapping",
|
|
70
|
-
emoji: "👏",
|
|
71
|
-
name: "Clapping",
|
|
72
|
-
lottieUrl: "https://fonts.gstatic.com/s/e/notoemoji/latest/1f44f/lottie.json"
|
|
73
|
-
},
|
|
74
|
-
{
|
|
75
|
-
id: "thumbs-up",
|
|
76
|
-
emoji: "👍",
|
|
77
|
-
name: "Thumbs Up",
|
|
78
|
-
lottieUrl: "https://fonts.gstatic.com/s/e/notoemoji/latest/1f44d/lottie.json"
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
id: "peace",
|
|
82
|
-
emoji: "✌️",
|
|
83
|
-
name: "Peace",
|
|
84
|
-
lottieUrl: "https://fonts.gstatic.com/s/e/notoemoji/latest/270c_fe0f/lottie.json"
|
|
85
|
-
},
|
|
86
|
-
{
|
|
87
|
-
id: "ok-hand",
|
|
88
|
-
emoji: "👌",
|
|
89
|
-
name: "OK Hand",
|
|
90
|
-
lottieUrl: "https://fonts.gstatic.com/s/e/notoemoji/latest/1f44c/lottie.json"
|
|
91
|
-
},
|
|
92
|
-
{
|
|
93
|
-
id: "muscle",
|
|
94
|
-
emoji: "💪",
|
|
95
|
-
name: "Muscle",
|
|
96
|
-
lottieUrl: "https://fonts.gstatic.com/s/e/notoemoji/latest/1f4aa/lottie.json"
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
id: "rock-on",
|
|
100
|
-
emoji: "🤟",
|
|
101
|
-
name: "Rock On",
|
|
102
|
-
lottieUrl: "https://fonts.gstatic.com/s/e/notoemoji/latest/1f91f/lottie.json"
|
|
103
|
-
},
|
|
104
|
-
{
|
|
105
|
-
id: "heart",
|
|
106
|
-
emoji: "❤️",
|
|
107
|
-
name: "Heart",
|
|
108
|
-
lottieUrl: "https://fonts.gstatic.com/s/e/notoemoji/latest/2764_fe0f/lottie.json"
|
|
109
|
-
},
|
|
110
|
-
{
|
|
111
|
-
id: "trophy",
|
|
112
|
-
emoji: "🏆",
|
|
113
|
-
name: "Trophy",
|
|
114
|
-
lottieUrl: "https://fonts.gstatic.com/s/e/notoemoji/latest/1f3c6/lottie.json"
|
|
115
|
-
},
|
|
116
|
-
{
|
|
117
|
-
id: "hundred",
|
|
118
|
-
emoji: "💯",
|
|
119
|
-
name: "Hundred",
|
|
120
|
-
lottieUrl: "https://fonts.gstatic.com/s/e/notoemoji/latest/1f4af/lottie.json"
|
|
121
|
-
},
|
|
122
|
-
{
|
|
123
|
-
id: "gold-medal",
|
|
124
|
-
emoji: "🥇",
|
|
125
|
-
name: "Gold Medal",
|
|
126
|
-
lottieUrl: "https://fonts.gstatic.com/s/e/notoemoji/latest/1f947/lottie.json"
|
|
127
|
-
},
|
|
128
|
-
{
|
|
129
|
-
id: "silver-medal",
|
|
130
|
-
emoji: "🥈",
|
|
131
|
-
name: "Silver Medal",
|
|
132
|
-
lottieUrl: "https://fonts.gstatic.com/s/e/notoemoji/latest/1f948/lottie.json"
|
|
133
|
-
},
|
|
134
|
-
{
|
|
135
|
-
id: "bronze-medal",
|
|
136
|
-
emoji: "🥉",
|
|
137
|
-
name: "Bronze Medal",
|
|
138
|
-
lottieUrl: "https://fonts.gstatic.com/s/e/notoemoji/latest/1f949/lottie.json"
|
|
139
|
-
},
|
|
140
|
-
{
|
|
141
|
-
id: "target",
|
|
142
|
-
emoji: "🎯",
|
|
143
|
-
name: "Target",
|
|
144
|
-
lottieUrl: "https://fonts.gstatic.com/s/e/notoemoji/latest/1f3af/lottie.json"
|
|
145
|
-
},
|
|
146
|
-
{
|
|
147
|
-
id: "glowing-star",
|
|
148
|
-
emoji: "🌟",
|
|
149
|
-
name: "Glowing Star",
|
|
150
|
-
lottieUrl: "https://fonts.gstatic.com/s/e/notoemoji/latest/1f31f/lottie.json"
|
|
151
|
-
},
|
|
152
|
-
{
|
|
153
|
-
id: "lightning",
|
|
154
|
-
emoji: "⚡️",
|
|
155
|
-
name: "Lightning",
|
|
156
|
-
lottieUrl: "https://fonts.gstatic.com/s/e/notoemoji/latest/26a1/lottie.json"
|
|
157
|
-
},
|
|
158
|
-
{
|
|
159
|
-
id: "rocket",
|
|
160
|
-
emoji: "🚀",
|
|
161
|
-
name: "Rocket",
|
|
162
|
-
lottieUrl: "https://fonts.gstatic.com/s/e/notoemoji/latest/1f680/lottie.json"
|
|
163
|
-
},
|
|
164
|
-
{
|
|
165
|
-
id: "explosion",
|
|
166
|
-
emoji: "💥",
|
|
167
|
-
name: "Explosion",
|
|
168
|
-
lottieUrl: "https://fonts.gstatic.com/s/e/notoemoji/latest/1f4a5/lottie.json"
|
|
169
|
-
},
|
|
170
|
-
{
|
|
171
|
-
id: "graduation",
|
|
172
|
-
emoji: "🎓",
|
|
173
|
-
name: "Graduation",
|
|
174
|
-
lottieUrl: "https://fonts.gstatic.com/s/e/notoemoji/latest/1f393/lottie.json"
|
|
175
|
-
},
|
|
176
|
-
{
|
|
177
|
-
id: "clock",
|
|
178
|
-
emoji: "⏰",
|
|
179
|
-
name: "Clock",
|
|
180
|
-
lottieUrl: "https://fonts.gstatic.com/s/e/notoemoji/latest/23f0/lottie.json"
|
|
181
|
-
},
|
|
182
|
-
{
|
|
183
|
-
id: "bulb",
|
|
184
|
-
emoji: "💡",
|
|
185
|
-
name: "Bulb",
|
|
186
|
-
lottieUrl: "https://fonts.gstatic.com/s/e/notoemoji/latest/1f4a1/lottie.json"
|
|
187
|
-
},
|
|
188
|
-
{
|
|
189
|
-
id: "rainbow",
|
|
190
|
-
emoji: "🌈",
|
|
191
|
-
name: "Rainbow",
|
|
192
|
-
lottieUrl: "https://fonts.gstatic.com/s/e/notoemoji/latest/1f308/lottie.json"
|
|
193
|
-
},
|
|
194
|
-
{
|
|
195
|
-
id: "clown",
|
|
196
|
-
emoji: "🤡",
|
|
197
|
-
name: "Clown",
|
|
198
|
-
lottieUrl: "https://fonts.gstatic.com/s/e/notoemoji/latest/1f921/lottie.json"
|
|
199
|
-
},
|
|
200
|
-
{
|
|
201
|
-
id: "dancer",
|
|
202
|
-
emoji: "💃",
|
|
203
|
-
name: "Dancer",
|
|
204
|
-
lottieUrl: "https://fonts.gstatic.com/s/e/notoemoji/latest/1f483/lottie.json"
|
|
205
|
-
},
|
|
206
|
-
{
|
|
207
|
-
id: "flowers",
|
|
208
|
-
emoji: "💐",
|
|
209
|
-
name: "Flowers",
|
|
210
|
-
lottieUrl: "https://fonts.gstatic.com/s/e/notoemoji/latest/1f490/lottie.json"
|
|
211
|
-
},
|
|
212
|
-
{
|
|
213
|
-
id: "unicorn",
|
|
214
|
-
emoji: "🦄",
|
|
215
|
-
name: "Unicorn",
|
|
216
|
-
lottieUrl: "https://fonts.gstatic.com/s/e/notoemoji/latest/1f984/lottie.json"
|
|
217
|
-
},
|
|
218
|
-
{
|
|
219
|
-
id: "drum",
|
|
220
|
-
emoji: "🥁",
|
|
221
|
-
name: "Drum",
|
|
222
|
-
lottieUrl: "https://fonts.gstatic.com/s/e/notoemoji/latest/1f941/lottie.json"
|
|
223
|
-
},
|
|
224
|
-
{
|
|
225
|
-
id: "diamond",
|
|
226
|
-
emoji: "💎",
|
|
227
|
-
name: "Diamond",
|
|
228
|
-
lottieUrl: "https://fonts.gstatic.com/s/e/notoemoji/latest/1f48e/lottie.json"
|
|
229
|
-
}
|
|
230
|
-
];
|
|
231
|
-
export {
|
|
232
|
-
t as stickerData
|
|
233
|
-
};
|
|
234
|
-
//# sourceMappingURL=sticker-data.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sticker-data.js","sources":["../../../src/features/stickers/sticker-data.ts"],"sourcesContent":["import type { IStickerData } from './sticker-selector/sticker-selector-types';\n\nexport const stickerData: IStickerData[] = [\n {\n id: 'star-struck',\n emoji: '🤩',\n name: 'Star-Struck',\n lottieUrl: 'https://fonts.gstatic.com/s/e/notoemoji/latest/1f929/lottie.json',\n },\n {\n id: 'heart-eyes',\n emoji: '😍',\n name: 'Heart Eyes',\n lottieUrl: 'https://fonts.gstatic.com/s/e/notoemoji/latest/1f60d/lottie.json',\n },\n {\n id: 'holding-back-tears',\n emoji: '🥹',\n name: 'Holding Back Tears',\n lottieUrl: 'https://fonts.gstatic.com/s/e/notoemoji/latest/1f979/lottie.json',\n },\n {\n id: 'sunglasses',\n emoji: '😎',\n name: 'Sunglasses',\n lottieUrl: 'https://fonts.gstatic.com/s/e/notoemoji/latest/1f60e/lottie.json',\n },\n {\n id: 'exploding-head',\n emoji: '🤯',\n name: 'Exploding Head',\n lottieUrl: 'https://fonts.gstatic.com/s/e/notoemoji/latest/1f92f/lottie.json',\n },\n {\n id: 'thinking',\n emoji: '🤔',\n name: 'Thinking',\n lottieUrl: 'https://fonts.gstatic.com/s/e/notoemoji/latest/1f914/lottie.json',\n },\n {\n id: 'party',\n emoji: '🥳',\n name: 'Party',\n lottieUrl: 'https://fonts.gstatic.com/s/e/notoemoji/latest/1f973/lottie.json',\n },\n {\n id: 'confetti-ball',\n emoji: '🎊',\n name: 'Confetti Ball',\n lottieUrl: 'https://fonts.gstatic.com/s/e/notoemoji/latest/1f38a/lottie.json',\n },\n {\n id: 'celebration',\n emoji: '🎉',\n name: 'Celebration',\n lottieUrl: 'https://fonts.gstatic.com/s/e/notoemoji/latest/1f389/lottie.json',\n },\n {\n id: 'balloon',\n emoji: '🎈',\n name: 'Balloon',\n lottieUrl: 'https://fonts.gstatic.com/s/e/notoemoji/latest/1f388/lottie.json',\n },\n {\n id: 'cake',\n emoji: '🎂',\n name: 'Cake',\n lottieUrl: 'https://fonts.gstatic.com/s/e/notoemoji/latest/1f382/lottie.json',\n },\n {\n id: 'clapping',\n emoji: '👏',\n name: 'Clapping',\n lottieUrl: 'https://fonts.gstatic.com/s/e/notoemoji/latest/1f44f/lottie.json',\n },\n {\n id: 'thumbs-up',\n emoji: '👍',\n name: 'Thumbs Up',\n lottieUrl: 'https://fonts.gstatic.com/s/e/notoemoji/latest/1f44d/lottie.json',\n },\n {\n id: 'peace',\n emoji: '✌️',\n name: 'Peace',\n lottieUrl: 'https://fonts.gstatic.com/s/e/notoemoji/latest/270c_fe0f/lottie.json',\n },\n {\n id: 'ok-hand',\n emoji: '👌',\n name: 'OK Hand',\n lottieUrl: 'https://fonts.gstatic.com/s/e/notoemoji/latest/1f44c/lottie.json',\n },\n {\n id: 'muscle',\n emoji: '💪',\n name: 'Muscle',\n lottieUrl: 'https://fonts.gstatic.com/s/e/notoemoji/latest/1f4aa/lottie.json',\n },\n {\n id: 'rock-on',\n emoji: '🤟',\n name: 'Rock On',\n lottieUrl: 'https://fonts.gstatic.com/s/e/notoemoji/latest/1f91f/lottie.json',\n },\n {\n id: 'heart',\n emoji: '❤️',\n name: 'Heart',\n lottieUrl: 'https://fonts.gstatic.com/s/e/notoemoji/latest/2764_fe0f/lottie.json',\n },\n {\n id: 'trophy',\n emoji: '🏆',\n name: 'Trophy',\n lottieUrl: 'https://fonts.gstatic.com/s/e/notoemoji/latest/1f3c6/lottie.json',\n },\n {\n id: 'hundred',\n emoji: '💯',\n name: 'Hundred',\n lottieUrl: 'https://fonts.gstatic.com/s/e/notoemoji/latest/1f4af/lottie.json',\n },\n {\n id: 'gold-medal',\n emoji: '🥇',\n name: 'Gold Medal',\n lottieUrl: 'https://fonts.gstatic.com/s/e/notoemoji/latest/1f947/lottie.json',\n },\n {\n id: 'silver-medal',\n emoji: '🥈',\n name: 'Silver Medal',\n lottieUrl: 'https://fonts.gstatic.com/s/e/notoemoji/latest/1f948/lottie.json',\n },\n {\n id: 'bronze-medal',\n emoji: '🥉',\n name: 'Bronze Medal',\n lottieUrl: 'https://fonts.gstatic.com/s/e/notoemoji/latest/1f949/lottie.json',\n },\n {\n id: 'target',\n emoji: '🎯',\n name: 'Target',\n lottieUrl: 'https://fonts.gstatic.com/s/e/notoemoji/latest/1f3af/lottie.json',\n },\n {\n id: 'glowing-star',\n emoji: '🌟',\n name: 'Glowing Star',\n lottieUrl: 'https://fonts.gstatic.com/s/e/notoemoji/latest/1f31f/lottie.json',\n },\n {\n id: 'lightning',\n emoji: '⚡️',\n name: 'Lightning',\n lottieUrl: 'https://fonts.gstatic.com/s/e/notoemoji/latest/26a1/lottie.json',\n },\n {\n id: 'rocket',\n emoji: '🚀',\n name: 'Rocket',\n lottieUrl: 'https://fonts.gstatic.com/s/e/notoemoji/latest/1f680/lottie.json',\n },\n {\n id: 'explosion',\n emoji: '💥',\n name: 'Explosion',\n lottieUrl: 'https://fonts.gstatic.com/s/e/notoemoji/latest/1f4a5/lottie.json',\n },\n {\n id: 'graduation',\n emoji: '🎓',\n name: 'Graduation',\n lottieUrl: 'https://fonts.gstatic.com/s/e/notoemoji/latest/1f393/lottie.json',\n },\n {\n id: 'clock',\n emoji: '⏰',\n name: 'Clock',\n lottieUrl: 'https://fonts.gstatic.com/s/e/notoemoji/latest/23f0/lottie.json',\n },\n {\n id: 'bulb',\n emoji: '💡',\n name: 'Bulb',\n lottieUrl: 'https://fonts.gstatic.com/s/e/notoemoji/latest/1f4a1/lottie.json',\n },\n {\n id: 'rainbow',\n emoji: '🌈',\n name: 'Rainbow',\n lottieUrl: 'https://fonts.gstatic.com/s/e/notoemoji/latest/1f308/lottie.json',\n },\n {\n id: 'clown',\n emoji: '🤡',\n name: 'Clown',\n lottieUrl: 'https://fonts.gstatic.com/s/e/notoemoji/latest/1f921/lottie.json',\n },\n {\n id: 'dancer',\n emoji: '💃',\n name: 'Dancer',\n lottieUrl: 'https://fonts.gstatic.com/s/e/notoemoji/latest/1f483/lottie.json',\n },\n {\n id: 'flowers',\n emoji: '💐',\n name: 'Flowers',\n lottieUrl: 'https://fonts.gstatic.com/s/e/notoemoji/latest/1f490/lottie.json',\n },\n {\n id: 'unicorn',\n emoji: '🦄',\n name: 'Unicorn',\n lottieUrl: 'https://fonts.gstatic.com/s/e/notoemoji/latest/1f984/lottie.json',\n },\n {\n id: 'drum',\n emoji: '🥁',\n name: 'Drum',\n lottieUrl: 'https://fonts.gstatic.com/s/e/notoemoji/latest/1f941/lottie.json',\n },\n {\n id: 'diamond',\n emoji: '💎',\n name: 'Diamond',\n lottieUrl: 'https://fonts.gstatic.com/s/e/notoemoji/latest/1f48e/lottie.json',\n },\n];\n"],"names":["stickerData"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sticker-selector-styles.js","sources":["../../../../src/features/stickers/sticker-selector/sticker-selector-styles.ts"],"sourcesContent":["import styled from 'styled-components';\n\nexport const StickerContainer = styled.div<{\n $size: number | string;\n $disabled?: boolean;\n}>`\n position: relative;\n width: ${({ $size }) => (typeof $size === 'number' ? `${$size}px` : $size)};\n height: ${({ $size }) => (typeof $size === 'number' ? `${$size}px` : $size)};\n cursor: ${({ $disabled }) => ($disabled ? 'none' : 'pointer')};\n border-radius: 8px;\n overflow: hidden;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n background-color: transparent;\n opacity: ${({ $disabled }) => ($disabled ? 0.5 : 1)};\n\n &:hover {\n transform: ${({ $disabled }) => ($disabled ? 'none' : 'scale(1.1)')};\n background-color: rgba(255, 255, 255, 0.1);\n }\n\n &:active {\n transform: ${({ $disabled }) => ($disabled ? 'none' : 'scale(0.95)')};\n }\n`;\n\nexport const StaticEmoji = styled.div<{ $size: number | string; $visible: boolean }>`\n font-size: ${({ $size }) => {\n if (typeof $size === 'number') {\n return `${$size * 0.7}px`;\n }\n\n return '70%';\n }};\n line-height: 1;\n display: ${({ $visible }) => ($visible ? 'flex' : 'none')};\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n transition: opacity 0.2s ease;\n`;\n\nexport const LottieContainer = styled.div<{\n $size: number | string;\n $visible?: boolean;\n}>`\n position: absolute;\n top: 50%;\n left: 50%;\n width: ${({ $size }) => (typeof $size === 'number' ? `${$size * 0.7}px` : $size)};\n height: ${({ $size }) => (typeof $size === 'number' ? `${$size * 0.7}px` : $size)};\n transform: translate(-50%, -50%);\n pointer-events: none;\n\n display: ${({ $visible }) => ($visible ? 'flex' : 'none')};\n transition: opacity 0.2s ease;\n\n ${StickerContainer}:hover & {\n opacity: 1;\n }\n`;\n\nexport const StickerGrid = styled.div<{\n $columns: number;\n $gap: number;\n}>`\n display: grid;\n grid-template-columns: repeat(${({ $columns }) => $columns}, 1fr);\n gap: ${({ $gap }) => $gap}px;\n padding: 16px;\n background-color: #2a2a2a;\n border-radius: 12px;\n max-height: 400px;\n overflow-y: auto;\n scrollbar-gutter: stable;\n\n scrollbar-width: none;\n -ms-overflow-style: none;\n &::-webkit-scrollbar {\n display: none;\n }\n`;\n\nexport const StickerGridContainer = styled.div<{\n $width: string;\n $height: string;\n}>`\n width: 100%;\n max-width: ${({ $width }) => $width};\n max-height: ${({ $height }) => $height};\n`;\n"],"names":["StickerContainer","styled","$size","$disabled","StaticEmoji","$visible","LottieContainer","StickerGrid","$columns","$gap","StickerGridContainer","$width","$height"],"mappings":";AAEO,MAAMA,IAAmBC,EAAO;AAAA;AAAA,WAK5B,CAAC,EAAE,OAAAC,EAAa,MAAA,OAAOA,KAAU,WAAW,GAAGA,CAAK,OAAOA,CAAM;AAAA,YAChE,CAAC,EAAE,OAAAA,EAAa,MAAA,OAAOA,KAAU,WAAW,GAAGA,CAAK,OAAOA,CAAM;AAAA,YACjE,CAAC,EAAE,WAAAC,EAAA,MAAiBA,IAAY,SAAS,SAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAQlD,CAAC,EAAE,WAAAA,EAAA,MAAiBA,IAAY,MAAM,CAAE;AAAA;AAAA;AAAA,iBAGpC,CAAC,EAAE,WAAAA,EAAA,MAAiBA,IAAY,SAAS,YAAa;AAAA;AAAA;AAAA;AAAA;AAAA,iBAKtD,CAAC,EAAE,WAAAA,EAAA,MAAiBA,IAAY,SAAS,aAAc;AAAA;AAAA,GAI3DC,IAAcH,EAAO;AAAA,eACnB,CAAC,EAAE,OAAAC,QACV,OAAOA,KAAU,WACZ,GAAGA,IAAQ,GAAG,OAGhB,KACR;AAAA;AAAA,aAEU,CAAC,EAAE,UAAAG,EAAA,MAAgBA,IAAW,SAAS,MAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAQ9CC,IAAkBL,EAAO;AAAA;AAAA;AAAA;AAAA,WAO3B,CAAC,EAAE,OAAAC,QAAa,OAAOA,KAAU,WAAW,GAAGA,IAAQ,GAAG,OAAOA,CAAM;AAAA,YACtE,CAAC,EAAE,OAAAA,QAAa,OAAOA,KAAU,WAAW,GAAGA,IAAQ,GAAG,OAAOA,CAAM;AAAA;AAAA;AAAA;AAAA,aAItE,CAAC,EAAE,UAAAG,EAAA,MAAgBA,IAAW,SAAS,MAAO;AAAA;AAAA;AAAA,IAGvDL,CAAgB;AAAA;AAAA;AAAA,GAKPO,IAAcN,EAAO;AAAA;AAAA,kCAKA,CAAC,EAAE,UAAAO,EAAS,MAAMA,CAAQ;AAAA,SACnD,CAAC,EAAE,MAAAC,EAAK,MAAMA,CAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAedC,IAAuBT,EAAO;AAAA;AAAA,eAK5B,CAAC,EAAE,QAAAU,EAAO,MAAMA,CAAM;AAAA,gBACrB,CAAC,EAAE,SAAAC,EAAQ,MAAMA,CAAO;AAAA;"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { jsx as t } from "react/jsx-runtime";
|
|
2
|
-
import { memo as d } from "react";
|
|
3
|
-
import { stickerData as l } from "../sticker-data.js";
|
|
4
|
-
import f from "./sticker.js";
|
|
5
|
-
import { StickerGridContainer as h, StickerGrid as n } from "./sticker-selector-styles.js";
|
|
6
|
-
const s = ({
|
|
7
|
-
stickers: e = l,
|
|
8
|
-
columns: m = 4,
|
|
9
|
-
gap: i = 8,
|
|
10
|
-
stickerSize: p = 72,
|
|
11
|
-
onStickerClick: o,
|
|
12
|
-
disabled: a
|
|
13
|
-
}) => /* @__PURE__ */ t(h, { $width: "350px", $height: "400px", children: /* @__PURE__ */ t(n, { $columns: m, $gap: i, children: e.map((r) => /* @__PURE__ */ t(
|
|
14
|
-
f,
|
|
15
|
-
{
|
|
16
|
-
emoji: r.emoji,
|
|
17
|
-
lottieUrl: r.lottieUrl,
|
|
18
|
-
size: p,
|
|
19
|
-
onClick: () => o == null ? void 0 : o(r),
|
|
20
|
-
disabled: a
|
|
21
|
-
},
|
|
22
|
-
r.id
|
|
23
|
-
)) }) }), g = d(s);
|
|
24
|
-
export {
|
|
25
|
-
g as default
|
|
26
|
-
};
|
|
27
|
-
//# sourceMappingURL=sticker-selector.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sticker-selector.js","sources":["../../../../src/features/stickers/sticker-selector/sticker-selector.tsx"],"sourcesContent":["import type { IStickerSelectorProps } from './sticker-selector-types';\n\nimport React, { memo } from 'react';\n\nimport { stickerData } from '../sticker-data';\nimport Sticker from './sticker';\nimport * as S from './sticker-selector-styles';\n\nconst StickerSelector: React.FC<IStickerSelectorProps> = ({\n stickers = stickerData,\n columns = 4,\n gap = 8,\n stickerSize = 72,\n onStickerClick,\n disabled,\n}) => {\n return (\n <S.StickerGridContainer $width=\"350px\" $height=\"400px\">\n <S.StickerGrid $columns={columns} $gap={gap}>\n {stickers.map(sticker => (\n <Sticker\n key={sticker.id}\n emoji={sticker.emoji}\n lottieUrl={sticker.lottieUrl}\n size={stickerSize}\n onClick={() => onStickerClick?.(sticker)}\n disabled={disabled}\n />\n ))}\n </S.StickerGrid>\n </S.StickerGridContainer>\n );\n};\n\nexport default memo(StickerSelector);\n"],"names":["StickerSelector","stickers","stickerData","columns","gap","stickerSize","onStickerClick","disabled","S.StickerGridContainer","jsx","S.StickerGrid","sticker","Sticker","stickerSelector","memo"],"mappings":";;;;;AAQA,MAAMA,IAAmD,CAAC;AAAA,EACxD,UAAAC,IAAWC;AAAA,EACX,SAAAC,IAAU;AAAA,EACV,KAAAC,IAAM;AAAA,EACN,aAAAC,IAAc;AAAA,EACd,gBAAAC;AAAA,EACA,UAAAC;AACF,wBAEKC,GAAA,EAAuB,QAAO,SAAQ,SAAQ,SAC7C,UAAA,gBAAAC,EAACC,GAAA,EAAc,UAAUP,GAAS,MAAMC,GACrC,UAAAH,EAAS,IAAI,CACZU,MAAA,gBAAAF;AAAA,EAACG;AAAA,EAAA;AAAA,IAEC,OAAOD,EAAQ;AAAA,IACf,WAAWA,EAAQ;AAAA,IACnB,MAAMN;AAAA,IACN,SAAS,MAAMC,KAAA,gBAAAA,EAAiBK;AAAA,IAChC,UAAAJ;AAAA,EAAA;AAAA,EALKI,EAAQ;AAAA,CAOhB,GACH,EACF,CAAA,GAIWE,IAAAC,EAAKd,CAAe;"}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { jsxs as S, jsx as i } from "react/jsx-runtime";
|
|
2
|
-
import { memo as $, useState as f, useRef as L, useCallback as n, useEffect as g } from "react";
|
|
3
|
-
import k from "../../ui/lottie-animation/lottie-animation.js";
|
|
4
|
-
import { StickerContainer as E, StaticEmoji as R, LottieContainer as j } from "./sticker-selector-styles.js";
|
|
5
|
-
const x = ({
|
|
6
|
-
emoji: l,
|
|
7
|
-
lottieUrl: c,
|
|
8
|
-
size: o = 48,
|
|
9
|
-
onClick: s,
|
|
10
|
-
disabled: e = !1
|
|
11
|
-
}) => {
|
|
12
|
-
const [a, m] = f(!1), [t, u] = f(!1), r = L(null), p = n(() => {
|
|
13
|
-
r.current && (r.current.goToAndStop(0, !0), m(!0), t && r.current.play());
|
|
14
|
-
}, [t]);
|
|
15
|
-
g(() => {
|
|
16
|
-
!r.current || !a || (t ? r.current.play() : r.current.goToAndStop(0, !0));
|
|
17
|
-
}, [t, a]);
|
|
18
|
-
const d = n(() => {
|
|
19
|
-
e || u(!0);
|
|
20
|
-
}, [e]), h = n(() => {
|
|
21
|
-
e || u(!1);
|
|
22
|
-
}, [e]), v = n(() => {
|
|
23
|
-
!e && s && s();
|
|
24
|
-
}, [e, s]);
|
|
25
|
-
return /* @__PURE__ */ S(
|
|
26
|
-
E,
|
|
27
|
-
{
|
|
28
|
-
$size: o,
|
|
29
|
-
$disabled: e,
|
|
30
|
-
onPointerEnter: d,
|
|
31
|
-
onPointerLeave: h,
|
|
32
|
-
onClick: v,
|
|
33
|
-
children: [
|
|
34
|
-
!t && /* @__PURE__ */ i(R, { $size: o, $visible: !t, children: l }),
|
|
35
|
-
/* @__PURE__ */ i(j, { $size: o, $visible: t, children: c && /* @__PURE__ */ i(
|
|
36
|
-
k,
|
|
37
|
-
{
|
|
38
|
-
ref: r,
|
|
39
|
-
src: c,
|
|
40
|
-
width: "100%",
|
|
41
|
-
height: "100%",
|
|
42
|
-
settings: {
|
|
43
|
-
loop: !0,
|
|
44
|
-
autoplay: !1,
|
|
45
|
-
renderer: "canvas"
|
|
46
|
-
},
|
|
47
|
-
onRender: p
|
|
48
|
-
}
|
|
49
|
-
) })
|
|
50
|
-
]
|
|
51
|
-
}
|
|
52
|
-
);
|
|
53
|
-
}, I = $(x);
|
|
54
|
-
export {
|
|
55
|
-
I as default
|
|
56
|
-
};
|
|
57
|
-
//# sourceMappingURL=sticker.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sticker.js","sources":["../../../../src/features/stickers/sticker-selector/sticker.tsx"],"sourcesContent":["import type { ILottieAnimationRef } from '../../ui/lottie-animation/types';\nimport type { IStickerProps } from './sticker-selector-types';\n\nimport React, { memo, useCallback, useEffect, useRef, useState } from 'react';\n\nimport LottieAnimation from '../../ui/lottie-animation/lottie-animation';\nimport * as S from './sticker-selector-styles';\n\nconst Sticker: React.FC<IStickerProps> = ({\n emoji,\n lottieUrl,\n size = 48,\n onClick,\n disabled = false,\n}) => {\n const [isLoaded, setIsLoaded] = useState(false);\n const [isHovered, setIsHovered] = useState(false);\n const lottieRef = useRef<ILottieAnimationRef>(null);\n\n const handleRender = useCallback(() => {\n if (!lottieRef.current) return;\n\n lottieRef.current.goToAndStop(0, true);\n setIsLoaded(true);\n\n if (isHovered) lottieRef.current.play();\n }, [isHovered]);\n\n useEffect(() => {\n if (!lottieRef.current || !isLoaded) return;\n\n if (isHovered) {\n lottieRef.current.play();\n } else {\n lottieRef.current.goToAndStop(0, true);\n }\n }, [isHovered, isLoaded]);\n\n const handleMouseEnter = useCallback(() => {\n if (!disabled) setIsHovered(true);\n }, [disabled]);\n\n const handleMouseLeave = useCallback(() => {\n if (!disabled) setIsHovered(false);\n }, [disabled]);\n\n const handleClick = useCallback(() => {\n if (!disabled && onClick) onClick();\n }, [disabled, onClick]);\n\n return (\n <S.StickerContainer\n $size={size}\n $disabled={disabled}\n onPointerEnter={handleMouseEnter}\n onPointerLeave={handleMouseLeave}\n onClick={handleClick}\n >\n {!isHovered && (\n <S.StaticEmoji $size={size} $visible={!isHovered}>\n {emoji}\n </S.StaticEmoji>\n )}\n\n <S.LottieContainer $size={size} $visible={isHovered}>\n {lottieUrl && (\n <LottieAnimation\n ref={lottieRef}\n src={lottieUrl}\n width=\"100%\"\n height=\"100%\"\n settings={{\n loop: true,\n autoplay: false,\n renderer: 'canvas',\n }}\n onRender={handleRender}\n />\n )}\n </S.LottieContainer>\n </S.StickerContainer>\n );\n};\n\nexport default memo(Sticker);\n"],"names":["Sticker","emoji","lottieUrl","size","onClick","disabled","isLoaded","setIsLoaded","useState","isHovered","setIsHovered","lottieRef","useRef","handleRender","useCallback","useEffect","handleMouseEnter","handleMouseLeave","handleClick","jsxs","S.StickerContainer","jsx","S.StaticEmoji","S.LottieContainer","LottieAnimation","Sticker$1","memo"],"mappings":";;;;AAQA,MAAMA,IAAmC,CAAC;AAAA,EACxC,OAAAC;AAAA,EACA,WAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,SAAAC;AAAA,EACA,UAAAC,IAAW;AACb,MAAM;AACJ,QAAM,CAACC,GAAUC,CAAW,IAAIC,EAAS,EAAK,GACxC,CAACC,GAAWC,CAAY,IAAIF,EAAS,EAAK,GAC1CG,IAAYC,EAA4B,IAAI,GAE5CC,IAAeC,EAAY,MAAM;AACjC,IAACH,EAAU,YAELA,EAAA,QAAQ,YAAY,GAAG,EAAI,GACrCJ,EAAY,EAAI,GAEZE,KAAqBE,EAAA,QAAQ,KAAK;AAAA,EAAA,GACrC,CAACF,CAAS,CAAC;AAEd,EAAAM,EAAU,MAAM;AACd,IAAI,CAACJ,EAAU,WAAW,CAACL,MAEvBG,IACFE,EAAU,QAAQ,SAERA,EAAA,QAAQ,YAAY,GAAG,EAAI;AAAA,EACvC,GACC,CAACF,GAAWH,CAAQ,CAAC;AAElB,QAAAU,IAAmBF,EAAY,MAAM;AACrC,IAACT,KAAUK,EAAa,EAAI;AAAA,EAAA,GAC/B,CAACL,CAAQ,CAAC,GAEPY,IAAmBH,EAAY,MAAM;AACrC,IAACT,KAAUK,EAAa,EAAK;AAAA,EAAA,GAChC,CAACL,CAAQ,CAAC,GAEPa,IAAcJ,EAAY,MAAM;AAChC,IAAA,CAACT,KAAYD,KAAiBA;EAAA,GACjC,CAACC,GAAUD,CAAO,CAAC;AAGpB,SAAA,gBAAAe;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,OAAOjB;AAAA,MACP,WAAWE;AAAA,MACX,gBAAgBW;AAAA,MAChB,gBAAgBC;AAAA,MAChB,SAASC;AAAA,MAER,UAAA;AAAA,QAAC,CAAAT,KACC,gBAAAY,EAAAC,GAAA,EAAc,OAAOnB,GAAM,UAAU,CAACM,GACpC,UACHR,EAAA,CAAA;AAAA,QAGF,gBAAAoB,EAACE,GAAA,EAAkB,OAAOpB,GAAM,UAAUM,GACvC,UACCP,KAAA,gBAAAmB;AAAA,UAACG;AAAA,UAAA;AAAA,YACC,KAAKb;AAAA,YACL,KAAKT;AAAA,YACL,OAAM;AAAA,YACN,QAAO;AAAA,YACP,UAAU;AAAA,cACR,MAAM;AAAA,cACN,UAAU;AAAA,cACV,UAAU;AAAA,YACZ;AAAA,YACA,UAAUW;AAAA,UAAA;AAAA,QAAA,GAGhB;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN,GAEeY,IAAAC,EAAK1B,CAAO;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"effects.js","sources":["../../../../src/features/stickers/stickers-effects/effects.ts"],"sourcesContent":["import type { IStickersProps } from './stickers-effects-types';\n\nimport { keyframes, css } from 'styled-components';\n\nimport { randomizeDuration } from './stickers-effects-helper';\n\nconst floatUp = keyframes`\n 0% {\n transform: translateY(0vh);\n opacity: 1;\n }\n 100% {\n transform: translateY(-100vh);\n opacity: 0;\n }\n`;\n\nconst fallDown = keyframes`\n 0% {\n transform: translateY(0vh);\n opacity: 1;\n }\n 100% {\n transform: translateY(100vh);\n opacity: 0;\n }\n`;\n\nconst burstFromEdges = keyframes`\n 0% {\n transform: translateX(var(--from-x)) translateY(var(--from-y)) scale(1);\n opacity: 1;\n }\n 100% {\n transform: translateX(0vw) translateY(0vh) scale(1.25);\n opacity: 0;\n }\n`;\n\nconst popExpand = keyframes`\n 0% {\n transform: translateX(0) translateY(0vh);\n opacity: 1;\n }\n 35% {\n transform: translateX(0) translateY(-50vh) scale(1.25);\n opacity: 1;\n }\n 60% {\n transform: translateX(var(--from-x)) translateY(var(--from-y)) scale(1.25);\n opacity: 0.75;\n }\n 100% {\n transform: translateX(var(--from-x)) translateY(-110vh) scale(1.25);\n opacity: 0;\n }\n`;\n\nexport const effectAnimations: Record<\n IStickersProps['effect'],\n (duration: number) => ReturnType<typeof css>\n> = {\n 'float-up': (duration: number) => css`\n animation: ${floatUp} ${randomizeDuration(duration)}ms ease-out forwards;\n `,\n 'fall-down': (duration: number) => css`\n animation: ${fallDown} ${randomizeDuration(duration)}ms ease-out forwards;\n `,\n 'burst-from-edges': (duration: number) => css`\n animation: ${burstFromEdges} ${randomizeDuration(duration)}ms linear forwards;\n `,\n 'pop-expand': (duration: number) => css`\n animation: ${popExpand} ${duration}ms cubic-bezier(0.5, 0.1, 0.7, 1) forwards;\n `,\n};\n"],"names":["floatUp","keyframes","fallDown","burstFromEdges","popExpand","effectAnimations","duration","css","randomizeDuration"],"mappings":";;AAMA,MAAMA,IAAUC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAWVC,IAAWD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAWXE,IAAiBF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAWjBG,IAAYH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAmBLI,IAGT;AAAA,EACF,YAAY,CAACC,MAAqBC;AAAA,iBACnBP,CAAO,IAAIQ,EAAkBF,CAAQ,CAAC;AAAA;AAAA,EAErD,aAAa,CAACA,MAAqBC;AAAA,iBACpBL,CAAQ,IAAIM,EAAkBF,CAAQ,CAAC;AAAA;AAAA,EAEtD,oBAAoB,CAACA,MAAqBC;AAAA,iBAC3BJ,CAAc,IAAIK,EAAkBF,CAAQ,CAAC;AAAA;AAAA,EAE5D,cAAc,CAACA,MAAqBC;AAAA,iBACrBH,CAAS,IAAIE,CAAQ;AAAA;AAEtC;"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
const o = /* @__PURE__ */ new Map(), n = /* @__PURE__ */ new Map();
|
|
2
|
-
async function r(t) {
|
|
3
|
-
if (o.has(t))
|
|
4
|
-
return o.get(t);
|
|
5
|
-
if (n.has(t))
|
|
6
|
-
return n.get(t);
|
|
7
|
-
const i = fetch(t).then(async (e) => {
|
|
8
|
-
if (!e.ok) return null;
|
|
9
|
-
const a = t.endsWith(".lottie") ? await e.arrayBuffer() : await e.json();
|
|
10
|
-
return o.set(t, a), a;
|
|
11
|
-
}).catch((e) => (console.error("Lottie preload error:", e), null)).finally(() => {
|
|
12
|
-
n.delete(t);
|
|
13
|
-
});
|
|
14
|
-
return n.set(t, i), i;
|
|
15
|
-
}
|
|
16
|
-
export {
|
|
17
|
-
r as preloadLottieFile
|
|
18
|
-
};
|
|
19
|
-
//# sourceMappingURL=stickers-cache.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stickers-cache.js","sources":["../../../../src/features/stickers/stickers-effects/stickers-cache.ts"],"sourcesContent":["import type { Data } from '@lottiefiles/dotlottie-web';\n\nconst lottieCache = new Map<string, Data>();\nconst lottiePromises = new Map<string, Promise<Data | null>>();\n\nexport async function preloadLottieFile(url: string): Promise<Data | null> {\n if (lottieCache.has(url)) {\n return lottieCache.get(url)!;\n }\n\n if (lottiePromises.has(url)) {\n return lottiePromises.get(url)!;\n }\n\n const fetchPromise = fetch(url)\n .then(async res => {\n if (!res.ok) return null;\n\n const isLottieFile = url.endsWith('.lottie');\n const data = isLottieFile ? await res.arrayBuffer() : await res.json();\n\n lottieCache.set(url, data);\n\n return data;\n })\n .catch(err => {\n // eslint-disable-next-line no-console\n console.error('Lottie preload error:', err);\n\n return null;\n })\n .finally(() => {\n lottiePromises.delete(url);\n });\n\n lottiePromises.set(url, fetchPromise);\n\n return fetchPromise;\n}\n"],"names":["lottieCache","lottiePromises","preloadLottieFile","url","fetchPromise","res","data","err"],"mappings":"AAEA,MAAMA,wBAAkB,OAClBC,wBAAqB;AAE3B,eAAsBC,EAAkBC,GAAmC;AACrE,MAAAH,EAAY,IAAIG,CAAG;AACd,WAAAH,EAAY,IAAIG,CAAG;AAGxB,MAAAF,EAAe,IAAIE,CAAG;AACjB,WAAAF,EAAe,IAAIE,CAAG;AAG/B,QAAMC,IAAe,MAAMD,CAAG,EAC3B,KAAK,OAAME,MAAO;AACb,QAAA,CAACA,EAAI,GAAW,QAAA;AAGd,UAAAC,IADeH,EAAI,SAAS,SAAS,IACf,MAAME,EAAI,gBAAgB,MAAMA,EAAI;AAEpD,WAAAL,EAAA,IAAIG,GAAKG,CAAI,GAElBA;AAAA,EAAA,CACR,EACA,MAAM,CAAOC,OAEJ,QAAA,MAAM,yBAAyBA,CAAG,GAEnC,KACR,EACA,QAAQ,MAAM;AACb,IAAAN,EAAe,OAAOE,CAAG;AAAA,EAAA,CAC1B;AAEY,SAAAF,EAAA,IAAIE,GAAKC,CAAY,GAE7BA;AACT;"}
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
import { stickerData as b } from "../sticker-data.js";
|
|
2
|
-
const w = (o, e) => {
|
|
3
|
-
const t = Math.ceil(e / 4), a = Math.floor(o / t), h = o % t, p = ["top", "right", "bottom", "left"][a] ?? "left", r = (h + 0.5) / t * 100, m = (Math.random() - 0.5) * 25, s = Math.min(Math.max(r + m, 0), 100), c = 45 + Math.random() * 10, i = 45 + Math.random() * 10;
|
|
4
|
-
let d = 0, n = 0;
|
|
5
|
-
switch (p) {
|
|
6
|
-
case "top":
|
|
7
|
-
d = s - c, n = -i + m;
|
|
8
|
-
break;
|
|
9
|
-
case "right":
|
|
10
|
-
d = 100 - c + m, n = s - i;
|
|
11
|
-
break;
|
|
12
|
-
case "bottom":
|
|
13
|
-
d = s - c, n = 100 - i + m;
|
|
14
|
-
break;
|
|
15
|
-
case "left":
|
|
16
|
-
d = -c + m, n = s - i;
|
|
17
|
-
break;
|
|
18
|
-
}
|
|
19
|
-
return {
|
|
20
|
-
fromX: `${d}vw`,
|
|
21
|
-
fromY: `${n}vh`,
|
|
22
|
-
x: c,
|
|
23
|
-
y: i
|
|
24
|
-
};
|
|
25
|
-
}, v = (o, e = 10) => {
|
|
26
|
-
const t = [];
|
|
27
|
-
let a = 0;
|
|
28
|
-
const h = o;
|
|
29
|
-
for (; t.length < o && a < h; ) {
|
|
30
|
-
const l = Math.floor(Math.random() * (100 - 2 * e) + e);
|
|
31
|
-
t.every((p) => Math.abs(p - l) >= e) && t.push(l), a++;
|
|
32
|
-
}
|
|
33
|
-
for (; t.length < o; )
|
|
34
|
-
t.push(Math.floor(Math.random() * (100 - 2 * e) + e));
|
|
35
|
-
return t;
|
|
36
|
-
};
|
|
37
|
-
function P({
|
|
38
|
-
count: o,
|
|
39
|
-
effect: e,
|
|
40
|
-
stickers: t,
|
|
41
|
-
minSize: a,
|
|
42
|
-
maxSize: h
|
|
43
|
-
}) {
|
|
44
|
-
const l = 100 / o * 2, p = () => Math.random() * (h - a) + a, r = [], m = ["float-up", "fall-down"].includes(e) ? v(o, l) : [];
|
|
45
|
-
for (let s = 0; s < o; s++) {
|
|
46
|
-
const c = t[s % t.length] ?? "", { emoji: i = "", lottieUrl: d } = b.find(({ id: f }) => f === c) || {}, n = p(), u = m[s], M = { id: c, sticker: i, lottie: d, size: n };
|
|
47
|
-
switch (e) {
|
|
48
|
-
case "float-up":
|
|
49
|
-
r.push({ ...M, x: u, y: 110 + (Math.random() - 0.5) * n });
|
|
50
|
-
break;
|
|
51
|
-
case "fall-down":
|
|
52
|
-
r.push({ ...M, x: u, y: -10 + (Math.random() - 0.5) * n });
|
|
53
|
-
break;
|
|
54
|
-
case "burst-from-edges": {
|
|
55
|
-
const { x: f, y: x, fromX: g, fromY: k } = w(s, o);
|
|
56
|
-
r.push({ ...M, x: f, y: x, fromX: g, fromY: k, size: n });
|
|
57
|
-
break;
|
|
58
|
-
}
|
|
59
|
-
case "pop-expand":
|
|
60
|
-
r.push({
|
|
61
|
-
...M,
|
|
62
|
-
x: 50,
|
|
63
|
-
y: 100,
|
|
64
|
-
fromX: `${(Math.random() - 0.5) * 27.5}vw`,
|
|
65
|
-
fromY: `${-50 - Math.random() * 27.5}vh`
|
|
66
|
-
});
|
|
67
|
-
break;
|
|
68
|
-
default:
|
|
69
|
-
r.push({
|
|
70
|
-
...M,
|
|
71
|
-
x: Math.random() * 100,
|
|
72
|
-
y: Math.random() * 100
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
return r;
|
|
77
|
-
}
|
|
78
|
-
const X = (o, e = 0.2) => {
|
|
79
|
-
const t = o * e, a = o - t, h = o + t;
|
|
80
|
-
return Math.floor(Math.random() * (h - a + 1)) + a;
|
|
81
|
-
};
|
|
82
|
-
export {
|
|
83
|
-
P as generateStickerData,
|
|
84
|
-
X as randomizeDuration
|
|
85
|
-
};
|
|
86
|
-
//# sourceMappingURL=stickers-effects-helper.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stickers-effects-helper.js","sources":["../../../../src/features/stickers/stickers-effects/stickers-effects-helper.ts"],"sourcesContent":["import type { TStickerData, IStickersProps } from './stickers-effects-types';\n\nimport { stickerData } from '../sticker-data';\n\nconst getBurstPosition = (\n index: number,\n total: number,\n): {\n fromX: string;\n fromY: string;\n x: number;\n y: number;\n} => {\n const countPerSide = Math.ceil(total / 4);\n const sideIndex = Math.floor(index / countPerSide);\n const pos = index % countPerSide;\n\n const sides = ['top', 'right', 'bottom', 'left'] as const;\n const side = sides[sideIndex] ?? 'left';\n\n const basePercent = ((pos + 0.5) / countPerSide) * 100;\n const jitter = (Math.random() - 0.5) * 25;\n const edgePercent = Math.min(Math.max(basePercent + jitter, 0), 100);\n\n const centerX = 45 + Math.random() * 10;\n const centerY = 45 + Math.random() * 10;\n\n let fromX = 0;\n let fromY = 0;\n\n switch (side) {\n case 'top':\n fromX = edgePercent - centerX;\n fromY = -centerY + jitter;\n break;\n case 'right':\n fromX = 100 - centerX + jitter;\n fromY = edgePercent - centerY;\n break;\n case 'bottom':\n fromX = edgePercent - centerX;\n fromY = 100 - centerY + jitter;\n break;\n case 'left':\n fromX = -centerX + jitter;\n fromY = edgePercent - centerY;\n break;\n }\n\n return {\n fromX: `${fromX}vw`,\n fromY: `${fromY}vh`,\n x: centerX,\n y: centerY,\n };\n};\n\nconst getRandomNonOverlappingPositions = (count: number, buffer = 10): number[] => {\n const used: number[] = [];\n let attempts = 0;\n const maxAttempts = count;\n\n while (used.length < count && attempts < maxAttempts) {\n const value = Math.floor(Math.random() * (100 - 2 * buffer) + buffer);\n\n if (used.every(v => Math.abs(v - value) >= buffer)) {\n used.push(value);\n }\n attempts++;\n }\n\n while (used.length < count) {\n used.push(Math.floor(Math.random() * (100 - 2 * buffer) + buffer));\n }\n\n return used;\n};\n\nexport function generateStickerData({\n count,\n effect,\n stickers,\n minSize,\n maxSize,\n}: {\n count: number;\n effect: IStickersProps['effect'];\n stickers: string[];\n minSize: number;\n maxSize: number;\n}): TStickerData[] {\n const buffer = (100 / count) * 2;\n const getSize = () => Math.random() * (maxSize - minSize) + minSize;\n const result: TStickerData[] = [];\n const xPositions = ['float-up', 'fall-down'].includes(effect)\n ? getRandomNonOverlappingPositions(count, buffer)\n : [];\n\n for (let i = 0; i < count; i++) {\n const stickerId = stickers[i % stickers.length] ?? '';\n const { emoji: sticker = '', lottieUrl: lottie } =\n stickerData.find(({ id }) => id === stickerId) || {};\n\n const size = getSize();\n const x = xPositions[i]!;\n const common = { id: stickerId, sticker, lottie, size };\n\n switch (effect) {\n case 'float-up':\n result.push({ ...common, x, y: 110 + (Math.random() - 0.5) * size });\n break;\n\n case 'fall-down':\n result.push({ ...common, x, y: -10 + (Math.random() - 0.5) * size });\n break;\n\n case 'burst-from-edges': {\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const { x, y, fromX, fromY } = getBurstPosition(i, count);\n\n result.push({ ...common, x, y, fromX, fromY, size });\n break;\n }\n\n case 'pop-expand':\n result.push({\n ...common,\n x: 50,\n y: 100,\n fromX: `${(Math.random() - 0.5) * 27.5}vw`,\n fromY: `${-50 - Math.random() * 27.5}vh`,\n });\n break;\n\n default:\n result.push({\n ...common,\n x: Math.random() * 100,\n y: Math.random() * 100,\n });\n }\n }\n\n return result;\n}\n\nexport const randomizeDuration = (base: number, variancePercent = 0.2): number => {\n const delta = base * variancePercent;\n const min = base - delta;\n const max = base + delta;\n\n return Math.floor(Math.random() * (max - min + 1)) + min;\n};\n"],"names":["getBurstPosition","index","total","countPerSide","sideIndex","pos","side","basePercent","jitter","edgePercent","centerX","centerY","fromX","fromY","getRandomNonOverlappingPositions","count","buffer","used","attempts","maxAttempts","value","v","generateStickerData","effect","stickers","minSize","maxSize","getSize","result","xPositions","i","stickerId","sticker","lottie","stickerData","id","size","x","common","y","randomizeDuration","base","variancePercent","delta","min","max"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stickers-effects-styled.js","sources":["../../../../src/features/stickers/stickers-effects/stickers-effects-styled.ts"],"sourcesContent":["import type { IStickersProps } from './stickers-effects-types';\n\nimport styled, { css } from 'styled-components';\n\nimport { effectAnimations } from './effects';\n\nexport const Container = styled.div`\n position: relative;\n width: 100vw;\n height: 100vh;\n background: transparent;\n pointer-events: none;\n`;\n\nexport const Sticker = styled.div<{\n effect: IStickersProps['effect'];\n duration: number;\n fromX?: string;\n fromY?: string;\n x: number;\n y: number;\n size: number;\n}>`\n position: absolute;\n z-index: 10;\n\n left: ${({ x }) => `${x}%`};\n top: ${({ y }) => `${y}%`};\n width: ${({ size }) => `${size}px`};\n height: ${({ size }) => `${size}px`};\n font-size: ${({ size }) => `${size}px`};\n\n ${({ effect, duration, fromX, fromY }) =>\n fromX && fromY\n ? css`\n ${effectAnimations[effect](duration)}\n --from-x: ${fromX};\n --from-y: ${fromY};\n `\n : effectAnimations[effect](duration)}\n`;\n"],"names":["Container","styled","Sticker","x","y","size","effect","duration","fromX","fromY","css","effectAnimations"],"mappings":";;AAMO,MAAMA,IAAYC,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAQnBC,IAAUD,EAAO;AAAA;AAAA;AAAA;AAAA,UAYpB,CAAC,EAAE,GAAAE,EAAQ,MAAA,GAAGA,CAAC,GAAG;AAAA,SACnB,CAAC,EAAE,GAAAC,EAAQ,MAAA,GAAGA,CAAC,GAAG;AAAA,WAChB,CAAC,EAAE,MAAAC,EAAW,MAAA,GAAGA,CAAI,IAAI;AAAA,YACxB,CAAC,EAAE,MAAAA,EAAW,MAAA,GAAGA,CAAI,IAAI;AAAA,eACtB,CAAC,EAAE,MAAAA,EAAW,MAAA,GAAGA,CAAI,IAAI;AAAA;AAAA,IAEpC,CAAC,EAAE,QAAAC,GAAQ,UAAAC,GAAU,OAAAC,GAAO,OAAAC,QAC5BD,KAASC,IACLC;AAAA,YACIC,EAAiBL,CAAM,EAAEC,CAAQ,CAAC;AAAA,sBACxBC,CAAK;AAAA,sBACLC,CAAK;AAAA,YAEnBE,EAAiBL,CAAM,EAAEC,CAAQ,CAAC;AAAA;"}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { jsx as s, Fragment as E } from "react/jsx-runtime";
|
|
2
|
-
import { memo as u, useState as f, useEffect as d } from "react";
|
|
3
|
-
import F from "../../ui/dot-lottie-animations/dot-lottie-animation.js";
|
|
4
|
-
import { preloadLottieFile as g } from "./stickers-cache.js";
|
|
5
|
-
import { generateStickerData as z } from "./stickers-effects-helper.js";
|
|
6
|
-
import { Container as L, Sticker as T } from "./stickers-effects-styled.js";
|
|
7
|
-
const $ = u(({ url: t, sticker: o, size: a }) => {
|
|
8
|
-
const [i, m] = f(), [n, e] = f(!1);
|
|
9
|
-
return d(() => {
|
|
10
|
-
let r = !0;
|
|
11
|
-
if (t)
|
|
12
|
-
return g(t).then((c) => {
|
|
13
|
-
r && (c ? m(c) : e(!0));
|
|
14
|
-
}).catch(() => {
|
|
15
|
-
r && e(!0);
|
|
16
|
-
}), () => {
|
|
17
|
-
r = !1;
|
|
18
|
-
};
|
|
19
|
-
}, [t]), !t || n || !i ? /* @__PURE__ */ s(E, { children: o }) : /* @__PURE__ */ s(F, { data: i, width: a, height: a, onError: () => e(!0) });
|
|
20
|
-
}), b = ({ stickers: t, effect: o, count: a, duration: i }) => {
|
|
21
|
-
const [m, n] = f([]);
|
|
22
|
-
return d(() => {
|
|
23
|
-
const e = z({
|
|
24
|
-
count: a,
|
|
25
|
-
effect: o,
|
|
26
|
-
stickers: t,
|
|
27
|
-
minSize: 32,
|
|
28
|
-
maxSize: 48
|
|
29
|
-
});
|
|
30
|
-
n(e);
|
|
31
|
-
const r = setTimeout(() => n([]), i);
|
|
32
|
-
return () => clearTimeout(r);
|
|
33
|
-
}, [t, o, a, i]), /* @__PURE__ */ s(L, { children: m.map((e, r) => {
|
|
34
|
-
const { id: c, sticker: h, lottie: k, x: p, y: S, size: l, fromX: D, fromY: x } = e;
|
|
35
|
-
return /* @__PURE__ */ s(
|
|
36
|
-
T,
|
|
37
|
-
{
|
|
38
|
-
effect: o,
|
|
39
|
-
duration: i,
|
|
40
|
-
fromX: D,
|
|
41
|
-
fromY: x,
|
|
42
|
-
x: p,
|
|
43
|
-
y: S,
|
|
44
|
-
size: l,
|
|
45
|
-
children: /* @__PURE__ */ s($, { url: k, sticker: h, size: l })
|
|
46
|
-
},
|
|
47
|
-
`${c}-${r}`
|
|
48
|
-
);
|
|
49
|
-
}) });
|
|
50
|
-
}, W = u(b);
|
|
51
|
-
export {
|
|
52
|
-
W as default
|
|
53
|
-
};
|
|
54
|
-
//# sourceMappingURL=stickers-effects.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stickers-effects.js","sources":["../../../../src/features/stickers/stickers-effects/stickers-effects.tsx"],"sourcesContent":["import type { TStickerData, IStickersProps } from './stickers-effects-types';\nimport type { Data } from '@lottiefiles/dotlottie-web';\n\nimport React, { memo, useEffect, useState } from 'react';\n\nimport DotLottieAnimation from '../../ui/dot-lottie-animations/dot-lottie-animation';\nimport { preloadLottieFile } from './stickers-cache';\nimport { generateStickerData } from './stickers-effects-helper';\nimport * as S from './stickers-effects-styled';\n\nconst StickerWithFallback: React.FC<{\n url?: string;\n sticker: string;\n size: number;\n}> = memo(({ url, sticker, size }) => {\n const [data, setData] = useState<Data>();\n const [failed, setFailed] = useState(false);\n\n useEffect(() => {\n let isMounted = true;\n\n if (!url) return;\n\n preloadLottieFile(url)\n .then(result => {\n if (isMounted) {\n if (result) {\n setData(result);\n } else {\n setFailed(true);\n }\n }\n })\n .catch(() => {\n if (isMounted) setFailed(true);\n });\n\n return () => {\n isMounted = false;\n };\n }, [url]);\n\n if (!url || failed || !data) {\n return <>{sticker}</>;\n }\n\n return (\n <DotLottieAnimation data={data} width={size} height={size} onError={() => setFailed(true)} />\n );\n});\n\nconst StickersEffects: React.FC<IStickersProps> = ({ stickers, effect, count, duration }) => {\n const [stickersData, setStickersData] = useState<ReturnType<typeof generateStickerData>>([]);\n\n useEffect(() => {\n const stickerData = generateStickerData({\n count,\n effect,\n stickers,\n minSize: 32,\n maxSize: 48,\n });\n\n setStickersData(stickerData);\n\n const timeout = setTimeout(() => setStickersData([]), duration);\n\n return () => clearTimeout(timeout);\n }, [stickers, effect, count, duration]);\n\n return (\n <S.Container>\n {stickersData.map((data: TStickerData, i) => {\n const { id, sticker, lottie, x, y, size, fromX, fromY } = data;\n\n return (\n <S.Sticker\n key={`${id}-${i}`}\n effect={effect}\n duration={duration}\n fromX={fromX}\n fromY={fromY}\n x={x}\n y={y}\n size={size}\n >\n <StickerWithFallback url={lottie} sticker={sticker} size={size} />\n </S.Sticker>\n );\n })}\n </S.Container>\n );\n};\n\nexport default memo(StickersEffects);\n"],"names":["StickerWithFallback","memo","url","sticker","size","data","setData","useState","failed","setFailed","useEffect","isMounted","preloadLottieFile","result","jsx","DotLottieAnimation","StickersEffects","stickers","effect","count","duration","stickersData","setStickersData","stickerData","generateStickerData","timeout","S.Container","i","id","lottie","x","y","fromX","fromY","S.Sticker","stickersEffects"],"mappings":";;;;;;AAUA,MAAMA,IAIDC,EAAK,CAAC,EAAE,KAAAC,GAAK,SAAAC,GAAS,MAAAC,QAAW;AACpC,QAAM,CAACC,GAAMC,CAAO,IAAIC,EAAe,GACjC,CAACC,GAAQC,CAAS,IAAIF,EAAS,EAAK;AA0B1C,SAxBAG,EAAU,MAAM;AACd,QAAIC,IAAY;AAEhB,QAAKT;AAEa,aAAAU,EAAAV,CAAG,EAClB,KAAK,CAAUW,MAAA;AACd,QAAIF,MACEE,IACFP,EAAQO,CAAM,IAEdJ,EAAU,EAAI;AAAA,MAElB,CACD,EACA,MAAM,MAAM;AACP,QAAAE,OAAqB,EAAI;AAAA,MAAA,CAC9B,GAEI,MAAM;AACC,QAAAA,IAAA;AAAA,MAAA;AAAA,EACd,GACC,CAACT,CAAG,CAAC,GAEJ,CAACA,KAAOM,KAAU,CAACH,2BACX,UAAQF,EAAA,CAAA,IAIlB,gBAAAW,EAACC,GAAmB,EAAA,MAAAV,GAAY,OAAOD,GAAM,QAAQA,GAAM,SAAS,MAAMK,EAAU,EAAI,EAAG,CAAA;AAE/F,CAAC,GAEKO,IAA4C,CAAC,EAAE,UAAAC,GAAU,QAAAC,GAAQ,OAAAC,GAAO,UAAAC,QAAe;AAC3F,QAAM,CAACC,GAAcC,CAAe,IAAIf,EAAiD,CAAE,CAAA;AAE3F,SAAAG,EAAU,MAAM;AACd,UAAMa,IAAcC,EAAoB;AAAA,MACtC,OAAAL;AAAA,MACA,QAAAD;AAAA,MACA,UAAAD;AAAA,MACA,SAAS;AAAA,MACT,SAAS;AAAA,IAAA,CACV;AAED,IAAAK,EAAgBC,CAAW;AAE3B,UAAME,IAAU,WAAW,MAAMH,EAAgB,CAAE,CAAA,GAAGF,CAAQ;AAEvD,WAAA,MAAM,aAAaK,CAAO;AAAA,KAChC,CAACR,GAAUC,GAAQC,GAAOC,CAAQ,CAAC,GAGpC,gBAAAN,EAACY,GAAA,EACE,YAAa,IAAI,CAACrB,GAAoBsB,MAAM;AACrC,UAAA,EAAE,IAAAC,GAAI,SAAAzB,GAAS,QAAA0B,GAAQ,GAAAC,GAAG,GAAAC,GAAG,MAAA3B,GAAM,OAAA4B,GAAO,OAAAC,EAAU,IAAA5B;AAGxD,WAAA,gBAAAS;AAAA,MAACoB;AAAAA,MAAA;AAAA,QAEC,QAAAhB;AAAA,QACA,UAAAE;AAAA,QACA,OAAAY;AAAA,QACA,OAAAC;AAAA,QACA,GAAAH;AAAA,QACA,GAAAC;AAAA,QACA,MAAA3B;AAAA,QAEA,UAAC,gBAAAU,EAAAd,GAAA,EAAoB,KAAK6B,GAAQ,SAAA1B,GAAkB,MAAAC,GAAY;AAAA,MAAA;AAAA,MAT3D,GAAGwB,CAAE,IAAID,CAAC;AAAA,IAAA;AAAA,EAYpB,CAAA,EACH,CAAA;AAEJ,GAEeQ,IAAAlC,EAAKe,CAAe;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"regex.js","sources":["../../../../../node_modules/uuid/dist/esm-browser/regex.js"],"sourcesContent":["export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;"],"names":["REGEX"],"mappings":"AAAA,MAAAA,IAAe;","x_google_ignoreList":[0]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sources":["../../../../../node_modules/uuid/dist/esm-browser/validate.js"],"sourcesContent":["import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;"],"names":["validate","uuid","REGEX"],"mappings":";AAEA,SAASA,EAASC,GAAM;AACtB,SAAO,OAAOA,KAAS,YAAYC,EAAM,KAAKD,CAAI;AACpD;","x_google_ignoreList":[0]}
|