@cuemath/leap 3.1.51 → 3.1.52-akm-1

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.
Files changed (30) hide show
  1. package/dist/assets/lottie/lottie.js +4 -0
  2. package/dist/assets/lottie/lottie.js.map +1 -1
  3. package/dist/features/circle-games/game-launcher/comps/tables-card/constants.js +4 -3
  4. package/dist/features/circle-games/game-launcher/comps/tables-card/constants.js.map +1 -1
  5. package/dist/features/circle-games/game-launcher/comps/tables-card/spl-events-text/constants.js +26 -0
  6. package/dist/features/circle-games/game-launcher/comps/tables-card/spl-events-text/constants.js.map +1 -0
  7. package/dist/features/circle-games/game-launcher/comps/tables-card/spl-events-text/spl-events-text-style.js +16 -0
  8. package/dist/features/circle-games/game-launcher/comps/tables-card/spl-events-text/spl-events-text-style.js.map +1 -0
  9. package/dist/features/circle-games/game-launcher/comps/tables-card/spl-events-text/spl-events-text-types.js +5 -0
  10. package/dist/features/circle-games/game-launcher/comps/tables-card/spl-events-text/spl-events-text-types.js.map +1 -0
  11. package/dist/features/circle-games/game-launcher/comps/tables-card/spl-events-text/spl-events-text.js +22 -0
  12. package/dist/features/circle-games/game-launcher/comps/tables-card/spl-events-text/spl-events-text.js.map +1 -0
  13. package/dist/features/circle-games/game-launcher/comps/tables-card/table-segment-star/table-segment-star.js +20 -20
  14. package/dist/features/circle-games/game-launcher/comps/tables-card/table-segment-star/table-segment-star.js.map +1 -1
  15. package/dist/features/circle-games/game-launcher/comps/tables-card/tables-card-styled.js +74 -38
  16. package/dist/features/circle-games/game-launcher/comps/tables-card/tables-card-styled.js.map +1 -1
  17. package/dist/features/circle-games/game-launcher/comps/tables-card/tables-card.js +225 -199
  18. package/dist/features/circle-games/game-launcher/comps/tables-card/tables-card.js.map +1 -1
  19. package/dist/features/circle-games/hooks/use-circle-sounds/constants.js +7 -4
  20. package/dist/features/circle-games/hooks/use-circle-sounds/constants.js.map +1 -1
  21. package/dist/features/circle-games/hooks/use-circle-sounds/use-circle-sounds-enums.js +1 -1
  22. package/dist/features/circle-games/hooks/use-circle-sounds/use-circle-sounds-enums.js.map +1 -1
  23. package/dist/features/circle-games/hooks/use-circle-sounds/use-circle-sounds.js +85 -82
  24. package/dist/features/circle-games/hooks/use-circle-sounds/use-circle-sounds.js.map +1 -1
  25. package/dist/index.d.ts +8 -1
  26. package/dist/static/all-done.98b10ca4.json +1 -0
  27. package/dist/static/doing-great.5844aa66.json +1 -0
  28. package/dist/static/keep-it-up.95b07f7e.json +1 -0
  29. package/dist/static/level-1-allstar.49d665c0.json +1 -0
  30. package/package.json +1 -1
@@ -1,90 +1,91 @@
1
- import { jsx as t, jsxs as m } from "react/jsx-runtime";
2
- import he, { forwardRef as Ae, useState as o, useRef as b, useCallback as i, useMemo as z, useImperativeHandle as be, useEffect as K, memo as Ee } from "react";
3
- import ge from "../../../../../assets/line-icons/icons/back2.js";
4
- import { LOTTIE as fe } from "../../../../../assets/lottie/lottie.js";
5
- import { useUIContext as Ce } from "../../../../ui/context/context.js";
6
- import ve from "../../../../ui/layout/flex-view.js";
7
- import Le from "../../../../ui/lottie-animation/lottie-animation.js";
8
- import Ne from "../../../../ui/separator/separator.js";
9
- import Se from "../../../../ui/text/text.js";
10
- import { useCircleSounds as pe } from "../../../hooks/use-circle-sounds/use-circle-sounds.js";
11
- import { GAME_LAUNCHER_ANALYTICS_EVENTS as Ie } from "../../game-launcher-analytics-events.js";
12
- import { CardContainer as _e } from "../card-container/card-container.js";
13
- import { GAME_LAUNCHER_SIZE as C, GAME_LAUNCHER_SIZE_LARGE as Te } from "../card-container/constants.js";
14
- import { TABLE_REVEAL_ANIMATION as v, TABLE_MODE_LABEL_COLOR as Re, INFINITE_MODE_TEXT as He } from "./constants.js";
15
- import $e from "./infinite-button/infinite-mode-launcher-button.js";
16
- import we from "./table-mode/table-mode.js";
17
- import ye from "./table-segment-star/table-segment-star.js";
18
- import { CardWrapper as We, TableSegmentsWrapper as De, TableSegmentCardShadowContainer as ke, TableSegment as Pe, TableNumber as xe, TableModeContainer as Ve, TableModeWrapper as Be, AnimatedView as qe, ModeOverlay as Ue, AbsoluteView as X, IconWrapper as je } from "./tables-card-styled.js";
19
- const Me = {
1
+ import { jsxs as a, Fragment as W, jsx as t } from "react/jsx-runtime";
2
+ import Ne, { forwardRef as Ce, useState as s, useRef as g, useCallback as n, useMemo as x, useImperativeHandle as _e, useEffect as D, memo as Ie } from "react";
3
+ import Te from "../../../../../assets/line-icons/icons/back2.js";
4
+ import { LOTTIE as te } from "../../../../../assets/lottie/lottie.js";
5
+ import { useUIContext as Re } from "../../../../ui/context/context.js";
6
+ import He from "../../../../ui/layout/flex-view.js";
7
+ import re from "../../../../ui/lottie-animation/lottie-animation.js";
8
+ import $e from "../../../../ui/separator/separator.js";
9
+ import we from "../../../../ui/text/text.js";
10
+ import { useCircleSounds as ye } from "../../../hooks/use-circle-sounds/use-circle-sounds.js";
11
+ import { GAME_LAUNCHER_ANALYTICS_EVENTS as We } from "../../game-launcher-analytics-events.js";
12
+ import { CardContainer as xe } from "../card-container/card-container.js";
13
+ import { GAME_LAUNCHER_SIZE as p, GAME_LAUNCHER_SIZE_LARGE as De } from "../card-container/constants.js";
14
+ import { TABLE_REVEAL_ANIMATION as N, TABLE_MODE_LABEL_COLOR as Ve, NORMAL_TABLE_MODES as V, INFINITE_MODE_TEXT as ke } from "./constants.js";
15
+ import Pe from "./infinite-button/infinite-mode-launcher-button.js";
16
+ import { SplEventsText as Be } from "./spl-events-text/spl-events-text.js";
17
+ import Me from "./table-mode/table-mode.js";
18
+ import Ue from "./table-segment-star/table-segment-star.js";
19
+ import { CardWrapper as je, TableSegmentsWrapper as qe, TableSegmentCardShadowContainer as Ze, TableSegment as ze, TableNumber as Fe, AllStarAbsoluteView as Ke, TableModeContainer as Xe, TableModeWrapper as Ye, AnimatedView as Je, ModeOverlay as Qe, AbsoluteView as ie, IconWrapper as Ge } from "./tables-card-styled.js";
20
+ const ne = {
20
21
  loop: !1,
21
22
  renderer: "svg"
22
- }, Ze = Ae(
23
+ }, Oe = Ce(
23
24
  ({
24
- data: s,
25
- label: $,
26
- onPress: E,
27
- openModesOfTable: r,
28
- defaultTable: g,
29
- onGoBackFromTableLevel: f,
30
- onPressTableSegment: L
31
- }, Y) => {
32
- var M;
33
- const { onEvent: w } = Ce(), { playButtonSound: a } = pe(), [u, N] = o(!0), [d, h] = o(
34
- (r == null ? void 0 : r.tableNumber) ?? null
35
- ), [S, y] = o(null), [W, D] = o(!1), [F, A] = o("WHITE_T_60"), [c, p] = o({
36
- stars: ((M = s.tableList.find((e) => e.tableNumber === (r == null ? void 0 : r.tableNumber))) == null ? void 0 : M.stars) ?? [],
37
- tableNumber: (r == null ? void 0 : r.tableNumber) ?? 0
38
- }), k = b(null), [J, Q] = o(!0), [I, P] = o(!1), [x, G] = o("WHITE_T_60"), V = b(null), B = b(null), [_, O] = o((r == null ? void 0 : r.rewardStar) ?? []), T = b(null), R = b(
25
+ data: o,
26
+ label: k,
27
+ onPress: v,
28
+ openModesOfTable: i,
29
+ defaultTable: f,
30
+ onGoBackFromTableLevel: S,
31
+ onPressTableSegment: C
32
+ }, le) => {
33
+ var G;
34
+ const { onEvent: P } = Re(), { playButtonSound: m } = ye(), [d, _] = s(!0), [h, b] = s(
35
+ (i == null ? void 0 : i.tableNumber) ?? null
36
+ ), [I, B] = s(null), [M, U] = s(!1), [se, A] = s("WHITE_T_60"), [l, T] = s({
37
+ stars: ((G = o.tableList.find((e) => e.tableNumber === (i == null ? void 0 : i.tableNumber))) == null ? void 0 : G.stars) ?? [],
38
+ tableNumber: (i == null ? void 0 : i.tableNumber) ?? 0
39
+ }), j = g(null), [oe, ce] = s(!0), [R, q] = s(!1), [Z, ae] = s("WHITE_T_60"), z = g(null), F = g(null), [u, me] = s((i == null ? void 0 : i.rewardStar) ?? []), [H, K] = s(!1), $ = g(null), w = g(
39
40
  void 0
40
- ), q = i(
41
+ ), X = n(
41
42
  (e) => {
42
- if (L) {
43
- L(e);
43
+ if (C) {
44
+ C(e);
44
45
  return;
45
46
  }
46
- a(), N(!0), h(e.tableNumber), p({ ...e }), O([]), w(Ie.TABLE_SELECTED, {
47
+ m(), _(!0), b(e.tableNumber), T({ ...e }), me([]), P(We.TABLE_SELECTED, {
47
48
  meta: {
48
49
  table_of: e.tableNumber
49
50
  }
50
51
  });
51
52
  },
52
- [L, a, w]
53
- ), ee = i(
53
+ [C, m, P]
54
+ ), ue = n(
54
55
  (e) => {
55
- A(I ? x : "WHITE_T_60"), h(e.tableNumber);
56
+ A(R ? Z : "WHITE_T_60"), b(e.tableNumber);
56
57
  },
57
- [x, I]
58
- ), te = i(() => {
59
- D(!0);
60
- }, []), U = i(() => {
61
- A("WHITE_T_60"), !c.tableNumber && h(null), D(!1);
62
- }, [c.tableNumber]), j = i(() => {
63
- var n;
64
- f == null || f(), a(), N(!1), h(null);
65
- const e = (v.DISAPPEAR[1] - v.DISAPPEAR[0]) / 30;
66
- (n = T.current) == null || n.playSegments(v.DISAPPEAR, !0), R.current = setTimeout(() => {
67
- p({ stars: [], tableNumber: 0 });
58
+ [Z, R]
59
+ ), de = n(() => {
60
+ U(!0);
61
+ }, []), Y = n(() => {
62
+ A("WHITE_T_60"), !l.tableNumber && b(null), U(!1);
63
+ }, [l.tableNumber]), J = n(() => {
64
+ var r;
65
+ S == null || S(), m(), _(!1), b(null);
66
+ const e = (N.DISAPPEAR[1] - N.DISAPPEAR[0]) / 30;
67
+ (r = $.current) == null || r.playSegments(N.DISAPPEAR, !0), w.current = setTimeout(() => {
68
+ T({ stars: [], tableNumber: 0 });
68
69
  }, e * 1e3);
69
- }, [f, a]), re = i(() => {
70
+ }, [S, m]), he = n(() => {
70
71
  var e;
71
- (e = T.current) == null || e.playSegments(v.REVEAL, !0);
72
- }, []), ie = i((e) => {
73
- const n = {
72
+ (e = $.current) == null || e.playSegments(N.REVEAL, !0);
73
+ }, []), be = n((e) => {
74
+ const r = {
74
75
  sequence: 1,
75
76
  random: 2,
76
77
  advance: 3
77
78
  };
78
- A(Re[e] ?? "WHITE_T_60"), y(n[e] ?? 0);
79
- }, []), ne = i(() => {
80
- y(null), A("WHITE_T_60");
81
- }, []), l = z(() => c, [c]), oe = z(() => [
79
+ A(Ve[e] ?? "WHITE_T_60"), B(r[e] ?? 0);
80
+ }, []), Ae = n(() => {
81
+ B(null), A("WHITE_T_60");
82
+ }, []), c = x(() => l, [l]), Ee = x(() => [
82
83
  {
83
84
  top: 20,
84
85
  left: 10.5,
85
86
  type: "sequence",
86
- tableNumber: l.tableNumber,
87
- isStarAchieved: l.stars.includes("sequence"),
87
+ tableNumber: c.tableNumber,
88
+ isStarAchieved: c.stars.includes("sequence"),
88
89
  semicirclePosiiionTop: "-19%",
89
90
  semicirclePosiiionLeft: "-43%",
90
91
  semicircleHoverColor: "#B259004D"
@@ -93,8 +94,8 @@ const Me = {
93
94
  top: 20,
94
95
  left: 65.5,
95
96
  type: "random",
96
- tableNumber: l.tableNumber,
97
- isStarAchieved: l.stars.includes("random"),
97
+ tableNumber: c.tableNumber,
98
+ isStarAchieved: c.stars.includes("random"),
98
99
  semicirclePosiiionTop: "-19%",
99
100
  semicirclePosiiionLeft: "65%",
100
101
  semicircleHoverColor: "#0055CC4D"
@@ -103,157 +104,182 @@ const Me = {
103
104
  top: 66,
104
105
  left: 38,
105
106
  type: "advance",
106
- tableNumber: l.tableNumber,
107
- isStarAchieved: l.stars.includes("advance"),
107
+ tableNumber: c.tableNumber,
108
+ isStarAchieved: c.stars.includes("advance"),
108
109
  semicirclePosiiionTop: "74%",
109
110
  semicirclePosiiionLeft: "11%",
110
111
  semicircleHoverColor: "#A9099C4D"
111
112
  }
112
- ], [l.tableNumber, l.stars]), le = i(() => {
113
- E({
113
+ ], [c.tableNumber, c.stars]), { completedModes: Q, isSpecialEventsActive: L } = x(() => {
114
+ const e = V.filter(
115
+ (E) => o.tableList.every((O) => O.stars.includes(E))
116
+ ), r = u.length > 0 && e.length > 0 && u.every(
117
+ (E) => e.includes(E)
118
+ );
119
+ return {
120
+ completedModes: e,
121
+ isSpecialEventsActive: r
122
+ };
123
+ }, [o.tableList, u]), ge = n(() => {
124
+ v({
114
125
  mode: "infinite",
115
- infiniteModeHighScore: s.infiniteModeHighScore
126
+ infiniteModeHighScore: o.infiniteModeHighScore
116
127
  });
117
- }, [E, s.infiniteModeHighScore]), se = i(
118
- (e, n) => {
119
- E({
128
+ }, [v, o.infiniteModeHighScore]), ve = n(
129
+ (e, r) => {
130
+ v({
120
131
  mode: e,
121
- tableNumber: c.tableNumber,
122
- isStarRewarded: n
132
+ tableNumber: l.tableNumber,
133
+ isStarRewarded: r
123
134
  });
124
135
  },
125
- [E, c.tableNumber]
126
- ), ce = i(() => S ? `${d}× LEVEL${S}` : W ? He : d ? `${d}× Table` : $, [S, d, W, $]), ae = i((e) => {
127
- A(e), G(e), P(!0);
128
- }, []), me = i(() => P(!1), []), ue = i((e) => Q(e), []);
129
- return be(Y, () => ({
130
- labelRef: V,
131
- segmentedCardWrapperRef: B,
132
- infiniteButtonRef: k,
133
- startLabelAnimation: ae,
134
- stopLabelAnimation: me,
135
- setLabelVisiblity: ue,
136
- handleTableSegmentClick: q,
137
- goBackFromTableLevel: j
138
- })), K(() => () => {
139
- R.current && clearTimeout(R.current);
140
- }, []), K(() => {
141
- g && (a(), N(!0), h(g.tableNumber), p({ ...g }));
142
- }, [g, a]), /* @__PURE__ */ t(
143
- _e,
144
- {
145
- labelRef: V,
146
- ref: B,
147
- strokeColor: "WHITE",
148
- label: ce(),
149
- labelColor: F,
150
- isAnimated: I,
151
- showLabel: J,
152
- children: /* @__PURE__ */ m(We, { children: [
153
- /* @__PURE__ */ m(De, { children: [
154
- /* @__PURE__ */ t(
155
- $e,
156
- {
157
- onClick: le,
158
- buttonRef: k,
159
- onMouseLeave: U,
160
- onMouseOver: te
161
- }
162
- ),
163
- /* @__PURE__ */ t(ke, {}),
164
- s.tableList.map((e, n) => {
165
- const de = 360 / s.tableList.length, Z = -(90 + 360 / (2 * s.tableList.length)) + de * (n + 1);
166
- return /* @__PURE__ */ t(
136
+ [v, l.tableNumber]
137
+ ), fe = n(() => I ? `${h}× LEVEL${I}` : M ? ke : h ? `${h}× Table` : k, [I, h, M, k]), Se = n((e) => {
138
+ A(e), ae(e), q(!0);
139
+ }, []), Le = n(() => q(!1), []), pe = n((e) => ce(e), []);
140
+ return _e(le, () => ({
141
+ labelRef: z,
142
+ segmentedCardWrapperRef: F,
143
+ infiniteButtonRef: j,
144
+ startLabelAnimation: Se,
145
+ stopLabelAnimation: Le,
146
+ setLabelVisiblity: pe,
147
+ handleTableSegmentClick: X,
148
+ goBackFromTableLevel: J
149
+ })), D(() => () => {
150
+ w.current && clearTimeout(w.current);
151
+ }, []), D(() => {
152
+ f && (m(), _(!0), b(f.tableNumber), T({ ...f }));
153
+ }, [f, m]), D(() => {
154
+ l.tableNumber === 0 && L && !H && K(!0), l.tableNumber > 0 && K(!1);
155
+ }, [l.tableNumber, L, H]), /* @__PURE__ */ a(W, { children: [
156
+ /* @__PURE__ */ t(
157
+ xe,
158
+ {
159
+ labelRef: z,
160
+ ref: F,
161
+ strokeColor: "WHITE",
162
+ label: fe(),
163
+ labelColor: se,
164
+ isAnimated: R,
165
+ showLabel: oe,
166
+ children: /* @__PURE__ */ a(je, { children: [
167
+ /* @__PURE__ */ a(qe, { children: [
168
+ /* @__PURE__ */ t(
167
169
  Pe,
168
170
  {
169
- $angle: Z,
170
- $totalSegments: s.tableList.length,
171
- $zIndex: n + 1,
172
- onClick: () => q(e),
173
- onMouseOver: () => ee(e),
174
- onMouseLeave: U,
175
- children: /* @__PURE__ */ m(ve, { $flexDirection: "row", $justifyContent: "center", $alignItems: "center", children: [
176
- ["sequence", "random", "advance"].map((H) => /* @__PURE__ */ t(
177
- ye,
178
- {
179
- isStarAchieved: e.stars.includes(H),
180
- rewardStar: !u && (r == null ? void 0 : r.tableNumber) === e.tableNumber ? _.includes(H) : void 0
181
- },
182
- H
183
- )),
184
- /* @__PURE__ */ t(Ne, { width: C * 0.055 }),
185
- /* @__PURE__ */ t(xe, { $angle: -Z, children: /* @__PURE__ */ t(
186
- Se,
187
- {
188
- $renderAs: C === Te ? "ac3-black" : "ac4-black",
189
- $color: d === e.tableNumber ? "BLACK_1" : "WHITE",
190
- children: e.tableNumber
191
- }
192
- ) })
193
- ] })
194
- },
195
- n
196
- );
197
- })
198
- ] }),
199
- c.tableNumber > 0 && /* @__PURE__ */ t(Ve, { children: /* @__PURE__ */ m(Be, { children: [
200
- /* @__PURE__ */ m(qe, { animation: u ? "fade-in" : "fade-out", children: [
201
- oe.map((e, n) => /* @__PURE__ */ m(he.Fragment, { children: [
202
- /* @__PURE__ */ t(
203
- Ue,
171
+ onClick: ge,
172
+ buttonRef: j,
173
+ onMouseLeave: Y,
174
+ onMouseOver: de
175
+ }
176
+ ),
177
+ /* @__PURE__ */ t(Ze, {}),
178
+ o.tableList.map((e, r) => {
179
+ const E = 360 / o.tableList.length, ee = -(90 + 360 / (2 * o.tableList.length)) + E * (r + 1);
180
+ return /* @__PURE__ */ t(W, { children: /* @__PURE__ */ t(
181
+ ze,
204
182
  {
205
- $top: e.semicirclePosiiionTop,
206
- $left: e.semicirclePosiiionLeft,
207
- $hoverColor: e.semicircleHoverColor,
208
- onClick: () => u ? se(e.type, e.isStarAchieved) : void 0,
209
- onMouseOver: () => u ? ie(e.type) : void 0,
210
- onMouseLeave: u ? ne : void 0
211
- }
212
- ),
213
- /* @__PURE__ */ t(
214
- X,
183
+ $angle: ee,
184
+ $totalSegments: o.tableList.length,
185
+ $zIndex: r + 1,
186
+ onClick: () => X(e),
187
+ onMouseOver: () => ue(e),
188
+ onMouseLeave: Y,
189
+ children: /* @__PURE__ */ a(He, { $flexDirection: "row", $justifyContent: "center", $alignItems: "center", children: [
190
+ V.map((y) => /* @__PURE__ */ t(
191
+ Ue,
192
+ {
193
+ isStarAchieved: e.stars.includes(y),
194
+ rewardStar: !d && !L && (i == null ? void 0 : i.tableNumber) === e.tableNumber ? u.includes(y) : void 0
195
+ },
196
+ y
197
+ )),
198
+ /* @__PURE__ */ t($e, { width: p * 0.055 }),
199
+ /* @__PURE__ */ t(Fe, { $angle: -ee, children: /* @__PURE__ */ t(
200
+ we,
201
+ {
202
+ $renderAs: p === De ? "ac3-black" : "ac4-black",
203
+ $color: h === e.tableNumber ? "BLACK_1" : "WHITE",
204
+ children: e.tableNumber
205
+ }
206
+ ) })
207
+ ] })
208
+ },
209
+ r
210
+ ) });
211
+ }),
212
+ "(",
213
+ l.tableNumber === 0 && L && /* @__PURE__ */ t(W, { children: V.map((e, r) => Q.includes(e) ? /* @__PURE__ */ t(Ke, { level: r + 1, children: /* @__PURE__ */ t(
214
+ re,
215
+ {
216
+ src: te.LEVEL_1_ALLSTAR,
217
+ settings: ne,
218
+ animateOnIntersect: !0
219
+ }
220
+ ) }, e) : null) }),
221
+ ")"
222
+ ] }),
223
+ l.tableNumber > 0 && /* @__PURE__ */ t(Xe, { children: /* @__PURE__ */ a(Ye, { children: [
224
+ /* @__PURE__ */ a(Je, { animation: d ? "fade-in" : "fade-out", children: [
225
+ Ee.map((e, r) => /* @__PURE__ */ a(Ne.Fragment, { children: [
226
+ /* @__PURE__ */ t(
227
+ Qe,
228
+ {
229
+ $top: e.semicirclePosiiionTop,
230
+ $left: e.semicirclePosiiionLeft,
231
+ $hoverColor: e.semicircleHoverColor,
232
+ onClick: () => d ? ve(e.type, e.isStarAchieved) : void 0,
233
+ onMouseOver: () => d ? be(e.type) : void 0,
234
+ onMouseLeave: d ? Ae : void 0
235
+ }
236
+ ),
237
+ /* @__PURE__ */ t(
238
+ ie,
239
+ {
240
+ $top: e.top,
241
+ $left: e.left,
242
+ $isPointerEventsNone: !0,
243
+ children: /* @__PURE__ */ t(
244
+ Me,
245
+ {
246
+ tableNumber: e.tableNumber,
247
+ isStarAchieved: e.isStarAchieved || u.includes(e.type),
248
+ type: e.type,
249
+ rewardStar: u.includes(e.type)
250
+ }
251
+ )
252
+ }
253
+ )
254
+ ] }, r)),
255
+ /* @__PURE__ */ t(ie, { $top: 50, $left: 50, $alignCenter: !0, children: /* @__PURE__ */ t(Ge, { children: /* @__PURE__ */ t(
256
+ Te,
215
257
  {
216
- $top: e.top,
217
- $left: e.left,
218
- $isPointerEventsNone: !0,
219
- children: /* @__PURE__ */ t(
220
- we,
221
- {
222
- tableNumber: e.tableNumber,
223
- isStarAchieved: e.isStarAchieved || _.includes(e.type),
224
- type: e.type,
225
- rewardStar: _.includes(e.type)
226
- }
227
- )
258
+ onClick: J,
259
+ height: p * 0.1,
260
+ width: p * 0.1
228
261
  }
229
- )
230
- ] }, n)),
231
- /* @__PURE__ */ t(X, { $top: 50, $left: 50, $alignCenter: !0, children: /* @__PURE__ */ t(je, { children: /* @__PURE__ */ t(
232
- ge,
262
+ ) }) })
263
+ ] }),
264
+ /* @__PURE__ */ t(
265
+ re,
233
266
  {
234
- onClick: j,
235
- height: C * 0.1,
236
- width: C * 0.1
267
+ src: te.TABLE_MODE_REVEAL,
268
+ ref: $,
269
+ settings: ne,
270
+ onRender: he,
271
+ animateOnIntersect: !0
237
272
  }
238
- ) }) })
239
- ] }),
240
- /* @__PURE__ */ t(
241
- Le,
242
- {
243
- src: fe.TABLE_MODE_REVEAL,
244
- ref: T,
245
- settings: Me,
246
- onRender: re,
247
- animateOnIntersect: !0
248
- }
249
- )
250
- ] }) })
251
- ] })
252
- }
253
- );
273
+ )
274
+ ] }) })
275
+ ] })
276
+ }
277
+ ),
278
+ H && /* @__PURE__ */ t(Be, { completedModes: Q })
279
+ ] });
254
280
  }
255
- ), mt = Ee(Ze);
281
+ ), ft = Ie(Oe);
256
282
  export {
257
- mt as TablesCard
283
+ ft as TablesCard
258
284
  };
259
285
  //# sourceMappingURL=tables-card.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tables-card.js","sources":["../../../../../../src/features/circle-games/game-launcher/comps/tables-card/tables-card.tsx"],"sourcesContent":["import type { ILottieAnimationRef } from '../../../../ui/lottie-animation/types';\nimport type { TColorNames } from '../../../../ui/types';\nimport type {\n ITableInfo,\n TTableMode,\n} from '../../dal/use-get-circle-home-details-dal/use-get-circle-home-dal-types';\nimport type { ITableCardRef, ITablesCardProps } from './tables-card-types';\n\nimport React, {\n forwardRef,\n memo,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport Back2Icon from '../../../../../assets/line-icons/icons/back2';\nimport { LOTTIE } from '../../../../../assets/lottie/lottie';\nimport { useUIContext } from '../../../../ui/context/context';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport LottieAnimation from '../../../../ui/lottie-animation/lottie-animation';\nimport Separator from '../../../../ui/separator/separator';\nimport Text from '../../../../ui/text/text';\nimport { useCircleSounds } from '../../../hooks/use-circle-sounds/use-circle-sounds';\nimport { GAME_LAUNCHER_ANALYTICS_EVENTS } from '../../game-launcher-analytics-events';\nimport { CardContainer } from '../card-container/card-container';\nimport { GAME_LAUNCHER_SIZE, GAME_LAUNCHER_SIZE_LARGE } from '../card-container/constants';\nimport { INFINITE_MODE_TEXT, TABLE_MODE_LABEL_COLOR, TABLE_REVEAL_ANIMATION } from './constants';\nimport InfiniteButtonCard from './infinite-button/infinite-mode-launcher-button';\nimport TableMode from './table-mode/table-mode';\nimport TableSegmentStar from './table-segment-star/table-segment-star';\nimport * as Styled from './tables-card-styled';\n\nconst modeRevealAnimationSettings = {\n loop: false,\n renderer: 'svg',\n};\n\nconst TablesCardComponent = forwardRef<ITableCardRef, ITablesCardProps>(\n (\n {\n data,\n label,\n onPress,\n openModesOfTable,\n defaultTable,\n onGoBackFromTableLevel,\n onPressTableSegment,\n },\n ref,\n ) => {\n const { onEvent: trackEvent } = useUIContext();\n const { playButtonSound } = useCircleSounds();\n const [fadeIn, setFadeIn] = useState(true);\n const [highlightedTable, setHighlightedTable] = useState<number | null>(\n openModesOfTable?.tableNumber ?? null,\n );\n const [highlightedLevel, setHighlightedLevel] = useState<number | null>(null);\n const [highlightedInfiniteModeText, setHighlightedInfiniteModeText] = useState<boolean>(false);\n const [labelColor, setLabelColor] = useState<TColorNames>('WHITE_T_60');\n const [revealTableModes, setRevealTableModes] = useState<ITableInfo>({\n stars:\n data.tableList.find(table => table.tableNumber === openModesOfTable?.tableNumber)?.stars ??\n [],\n tableNumber: openModesOfTable?.tableNumber ?? 0,\n });\n const infiniteButtonRef = useRef<HTMLDivElement>(null) as React.RefObject<HTMLDivElement>;\n const [showLabel, setShowLabel] = useState(true);\n const [isLabelAnimated, setIsLabelAnimated] = useState(false);\n const [animatedColor, setAniimatedColor] = useState<TColorNames>('WHITE_T_60');\n\n const labelRef = useRef<HTMLDivElement>(null) as React.RefObject<HTMLDivElement>;\n const cardRef = useRef<HTMLDivElement>(null) as React.RefObject<HTMLDivElement>;\n\n const [rewardStar, setRewardStar] = useState(openModesOfTable?.rewardStar ?? []);\n const revealAnimationRef = useRef<ILottieAnimationRef | null>(null);\n const disappearAnimationTimer = useRef<ReturnType<typeof setTimeout>>(\n undefined,\n ) as React.RefObject<ReturnType<typeof setTimeout> | undefined>;\n\n const handleTableSegmentClick = useCallback(\n (table: ITableInfo) => {\n if (onPressTableSegment) {\n onPressTableSegment(table);\n\n return;\n }\n playButtonSound();\n setFadeIn(true);\n setHighlightedTable(table.tableNumber);\n setRevealTableModes({ ...table });\n setRewardStar([]);\n trackEvent(GAME_LAUNCHER_ANALYTICS_EVENTS.TABLE_SELECTED, {\n meta: {\n table_of: table.tableNumber,\n },\n });\n },\n [onPressTableSegment, playButtonSound, trackEvent],\n );\n\n const handleTableSegmentMouseOver = useCallback(\n (table: ITableInfo) => {\n setLabelColor(isLabelAnimated ? animatedColor : 'WHITE_T_60');\n setHighlightedTable(table.tableNumber);\n },\n [animatedColor, isLabelAnimated],\n );\n\n const handleInfiniteModeSegmentMouseOver = useCallback(() => {\n setHighlightedInfiniteModeText(true);\n }, []);\n\n const handleTableSegmentMouseLeave = useCallback(() => {\n setLabelColor('WHITE_T_60');\n !revealTableModes.tableNumber && setHighlightedTable(null);\n setHighlightedInfiniteModeText(false);\n }, [revealTableModes.tableNumber]);\n\n const goBack = useCallback(() => {\n onGoBackFromTableLevel?.();\n playButtonSound();\n setFadeIn(false);\n setHighlightedTable(null);\n const time = (TABLE_REVEAL_ANIMATION.DISAPPEAR[1] - TABLE_REVEAL_ANIMATION.DISAPPEAR[0]) / 30;\n\n revealAnimationRef.current?.playSegments(TABLE_REVEAL_ANIMATION.DISAPPEAR, true);\n disappearAnimationTimer.current = setTimeout(() => {\n setRevealTableModes({ stars: [], tableNumber: 0 });\n }, time * 1000);\n }, [onGoBackFromTableLevel, playButtonSound]);\n\n const showTableModes = useCallback(() => {\n revealAnimationRef.current?.playSegments(TABLE_REVEAL_ANIMATION.REVEAL, true);\n }, []);\n\n const handleModeMouseOver = useCallback((type: TTableMode) => {\n const level: Partial<Record<TTableMode, number>> = {\n sequence: 1,\n random: 2,\n advance: 3,\n };\n\n setLabelColor(TABLE_MODE_LABEL_COLOR[type] ?? 'WHITE_T_60');\n setHighlightedLevel(level[type] ?? 0);\n }, []);\n\n const handleModeMouseLeave = useCallback(() => {\n setHighlightedLevel(null);\n setLabelColor('WHITE_T_60');\n }, []);\n\n const revealTableModesMemo = useMemo(() => revealTableModes, [revealTableModes]);\n\n const tableModes = useMemo(() => {\n return [\n {\n top: 20,\n left: 10.5,\n type: 'sequence' as TTableMode,\n tableNumber: revealTableModesMemo.tableNumber,\n isStarAchieved: revealTableModesMemo.stars.includes('sequence'),\n semicirclePosiiionTop: '-19%',\n semicirclePosiiionLeft: '-43%',\n semicircleHoverColor: '#B259004D',\n },\n {\n top: 20,\n left: 65.5,\n type: 'random' as TTableMode,\n tableNumber: revealTableModesMemo.tableNumber,\n isStarAchieved: revealTableModesMemo.stars.includes('random'),\n semicirclePosiiionTop: '-19%',\n semicirclePosiiionLeft: '65%',\n semicircleHoverColor: '#0055CC4D',\n },\n {\n top: 66,\n left: 38,\n type: 'advance' as TTableMode,\n tableNumber: revealTableModesMemo.tableNumber,\n isStarAchieved: revealTableModesMemo.stars.includes('advance'),\n semicirclePosiiionTop: '74%',\n semicirclePosiiionLeft: '11%',\n semicircleHoverColor: '#A9099C4D',\n },\n ];\n }, [revealTableModesMemo.tableNumber, revealTableModesMemo.stars]);\n\n // Disabled infinite mode\n const handleInfiniteModeClick = useCallback(() => {\n onPress({\n mode: 'infinite',\n infiniteModeHighScore: data.infiniteModeHighScore,\n });\n }, [onPress, data.infiniteModeHighScore]);\n\n const handleNormalModeClick = useCallback(\n (mode: TTableMode, isStarRewarded: boolean) => {\n onPress({\n mode,\n tableNumber: revealTableModes.tableNumber,\n isStarRewarded,\n });\n },\n [onPress, revealTableModes.tableNumber],\n );\n\n const getHighlightedText = useCallback(() => {\n if (highlightedLevel) {\n return `${highlightedTable}× LEVEL${highlightedLevel}`;\n }\n\n if (highlightedInfiniteModeText) {\n return INFINITE_MODE_TEXT;\n }\n\n return highlightedTable ? `${highlightedTable}× Table` : label;\n }, [highlightedLevel, highlightedTable, highlightedInfiniteModeText, label]);\n\n const startLabelAnimation = useCallback((color: TColorNames) => {\n setLabelColor(color);\n setAniimatedColor(color);\n setIsLabelAnimated(true);\n }, []);\n\n const stopLabelAnimation = useCallback(() => setIsLabelAnimated(false), []);\n const setLabelVisiblity = useCallback((visible: boolean) => setShowLabel(visible), []);\n\n useImperativeHandle(ref, () => ({\n labelRef: labelRef,\n segmentedCardWrapperRef: cardRef,\n infiniteButtonRef: infiniteButtonRef,\n startLabelAnimation,\n stopLabelAnimation,\n setLabelVisiblity,\n handleTableSegmentClick,\n goBackFromTableLevel: goBack,\n }));\n\n useEffect(() => {\n return () => {\n disappearAnimationTimer.current && clearTimeout(disappearAnimationTimer.current);\n };\n }, []);\n\n // Used in trial journey, to open table levels by default if given in props\n useEffect(() => {\n if (defaultTable) {\n playButtonSound();\n setFadeIn(true);\n setHighlightedTable(defaultTable.tableNumber);\n setRevealTableModes({ ...defaultTable });\n }\n }, [defaultTable, playButtonSound]);\n\n return (\n <CardContainer\n labelRef={labelRef}\n ref={cardRef}\n strokeColor=\"WHITE\"\n label={getHighlightedText()}\n labelColor={labelColor}\n isAnimated={isLabelAnimated}\n showLabel={showLabel}\n >\n <Styled.CardWrapper>\n {/* table selection */}\n <Styled.TableSegmentsWrapper>\n {/* infinite button */}\n <InfiniteButtonCard\n onClick={handleInfiniteModeClick}\n buttonRef={infiniteButtonRef}\n onMouseLeave={handleTableSegmentMouseLeave}\n onMouseOver={handleInfiniteModeSegmentMouseOver}\n />\n {/* card shadow */}\n <Styled.TableSegmentCardShadowContainer />\n\n {/* table segments */}\n {data.tableList.map((table, index) => {\n const segmentAngle = 360 / data.tableList.length;\n const startAngle = -(90 + 360 / (2 * data.tableList.length));\n const currentAngle = startAngle + segmentAngle * (index + 1);\n\n return (\n <Styled.TableSegment\n key={index}\n $angle={currentAngle}\n $totalSegments={data.tableList.length}\n $zIndex={index + 1}\n onClick={() => handleTableSegmentClick(table)}\n onMouseOver={() => handleTableSegmentMouseOver(table)}\n onMouseLeave={handleTableSegmentMouseLeave}\n >\n <FlexView $flexDirection=\"row\" $justifyContent=\"center\" $alignItems=\"center\">\n {['sequence', 'random', 'advance'].map(star => (\n <TableSegmentStar\n key={star}\n isStarAchieved={table.stars.includes(star as TTableMode)}\n rewardStar={\n !fadeIn && openModesOfTable?.tableNumber === table.tableNumber\n ? rewardStar.includes(star as TTableMode)\n : undefined\n }\n />\n ))}\n <Separator width={GAME_LAUNCHER_SIZE * 0.055} />\n\n <Styled.TableNumber $angle={-currentAngle}>\n <Text\n $renderAs={\n GAME_LAUNCHER_SIZE === GAME_LAUNCHER_SIZE_LARGE\n ? 'ac3-black'\n : 'ac4-black'\n }\n $color={highlightedTable === table.tableNumber ? 'BLACK_1' : 'WHITE'}\n >\n {table.tableNumber}\n </Text>\n </Styled.TableNumber>\n </FlexView>\n </Styled.TableSegment>\n );\n })}\n </Styled.TableSegmentsWrapper>\n\n {/* table modes */}\n {revealTableModes.tableNumber > 0 && (\n <Styled.TableModeContainer>\n <Styled.TableModeWrapper>\n {/* tables modes with back button */}\n <Styled.AnimatedView animation={fadeIn ? 'fade-in' : 'fade-out'}>\n {tableModes.map((tableMode, index) => (\n <React.Fragment key={index}>\n <Styled.ModeOverlay\n $top={tableMode.semicirclePosiiionTop}\n $left={tableMode.semicirclePosiiionLeft}\n $hoverColor={tableMode.semicircleHoverColor}\n onClick={() =>\n fadeIn\n ? handleNormalModeClick(tableMode.type, tableMode.isStarAchieved)\n : undefined\n }\n onMouseOver={() =>\n fadeIn ? handleModeMouseOver(tableMode.type as TTableMode) : undefined\n }\n onMouseLeave={fadeIn ? handleModeMouseLeave : undefined}\n />\n <Styled.AbsoluteView\n $top={tableMode.top}\n $left={tableMode.left}\n $isPointerEventsNone={true}\n >\n <TableMode\n tableNumber={tableMode.tableNumber}\n isStarAchieved={\n tableMode.isStarAchieved || rewardStar.includes(tableMode.type)\n }\n type={tableMode.type as TTableMode}\n rewardStar={rewardStar.includes(tableMode.type as TTableMode)}\n />\n </Styled.AbsoluteView>\n </React.Fragment>\n ))}\n {/* back button */}\n <Styled.AbsoluteView $top={50} $left={50} $alignCenter={true}>\n <Styled.IconWrapper>\n <Back2Icon\n onClick={goBack}\n height={GAME_LAUNCHER_SIZE * 0.1}\n width={GAME_LAUNCHER_SIZE * 0.1}\n />\n </Styled.IconWrapper>\n </Styled.AbsoluteView>\n </Styled.AnimatedView>\n\n {/* overlay lottie for modes */}\n <LottieAnimation\n src={LOTTIE.TABLE_MODE_REVEAL}\n ref={revealAnimationRef}\n settings={modeRevealAnimationSettings}\n onRender={showTableModes}\n animateOnIntersect\n />\n </Styled.TableModeWrapper>\n </Styled.TableModeContainer>\n )}\n </Styled.CardWrapper>\n </CardContainer>\n );\n },\n);\n\nexport const TablesCard = memo(TablesCardComponent);\n"],"names":["modeRevealAnimationSettings","TablesCardComponent","forwardRef","data","label","onPress","openModesOfTable","defaultTable","onGoBackFromTableLevel","onPressTableSegment","ref","trackEvent","useUIContext","playButtonSound","useCircleSounds","fadeIn","setFadeIn","useState","highlightedTable","setHighlightedTable","highlightedLevel","setHighlightedLevel","highlightedInfiniteModeText","setHighlightedInfiniteModeText","labelColor","setLabelColor","revealTableModes","setRevealTableModes","_a","table","infiniteButtonRef","useRef","showLabel","setShowLabel","isLabelAnimated","setIsLabelAnimated","animatedColor","setAniimatedColor","labelRef","cardRef","rewardStar","setRewardStar","revealAnimationRef","disappearAnimationTimer","handleTableSegmentClick","useCallback","GAME_LAUNCHER_ANALYTICS_EVENTS","handleTableSegmentMouseOver","handleInfiniteModeSegmentMouseOver","handleTableSegmentMouseLeave","goBack","time","TABLE_REVEAL_ANIMATION","showTableModes","handleModeMouseOver","type","level","TABLE_MODE_LABEL_COLOR","handleModeMouseLeave","revealTableModesMemo","useMemo","tableModes","handleInfiniteModeClick","handleNormalModeClick","mode","isStarRewarded","getHighlightedText","INFINITE_MODE_TEXT","startLabelAnimation","color","stopLabelAnimation","setLabelVisiblity","visible","useImperativeHandle","useEffect","jsx","CardContainer","jsxs","Styled.CardWrapper","Styled.TableSegmentsWrapper","InfiniteButtonCard","Styled.TableSegmentCardShadowContainer","index","segmentAngle","currentAngle","Styled.TableSegment","FlexView","star","TableSegmentStar","Separator","GAME_LAUNCHER_SIZE","Styled.TableNumber","Text","GAME_LAUNCHER_SIZE_LARGE","Styled.TableModeContainer","Styled.TableModeWrapper","Styled.AnimatedView","tableMode","React","Styled.ModeOverlay","Styled.AbsoluteView","TableMode","Styled.IconWrapper","Back2Icon","LottieAnimation","LOTTIE","TablesCard","memo"],"mappings":"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"}
1
+ {"version":3,"file":"tables-card.js","sources":["../../../../../../src/features/circle-games/game-launcher/comps/tables-card/tables-card.tsx"],"sourcesContent":["import type { ILottieAnimationRef } from '../../../../ui/lottie-animation/types';\nimport type { TColorNames } from '../../../../ui/types';\nimport type {\n ITableInfo,\n TTableMode,\n} from '../../dal/use-get-circle-home-details-dal/use-get-circle-home-dal-types';\nimport type { ITableCardRef, ITablesCardProps } from './tables-card-types';\n\nimport React, {\n forwardRef,\n memo,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport Back2Icon from '../../../../../assets/line-icons/icons/back2';\nimport { LOTTIE } from '../../../../../assets/lottie/lottie';\nimport { useUIContext } from '../../../../ui/context/context';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport LottieAnimation from '../../../../ui/lottie-animation/lottie-animation';\nimport Separator from '../../../../ui/separator/separator';\nimport Text from '../../../../ui/text/text';\nimport { useCircleSounds } from '../../../hooks/use-circle-sounds/use-circle-sounds';\nimport { GAME_LAUNCHER_ANALYTICS_EVENTS } from '../../game-launcher-analytics-events';\nimport { CardContainer } from '../card-container/card-container';\nimport { GAME_LAUNCHER_SIZE, GAME_LAUNCHER_SIZE_LARGE } from '../card-container/constants';\nimport {\n INFINITE_MODE_TEXT,\n NORMAL_TABLE_MODES,\n TABLE_MODE_LABEL_COLOR,\n TABLE_REVEAL_ANIMATION,\n} from './constants';\nimport InfiniteButtonCard from './infinite-button/infinite-mode-launcher-button';\nimport { SplEventsText } from './spl-events-text/spl-events-text';\nimport TableMode from './table-mode/table-mode';\nimport TableSegmentStar from './table-segment-star/table-segment-star';\nimport * as Styled from './tables-card-styled';\n\nconst modeRevealAnimationSettings = {\n loop: false,\n renderer: 'svg',\n};\n\nconst TablesCardComponent = forwardRef<ITableCardRef, ITablesCardProps>(\n (\n {\n data,\n label,\n onPress,\n openModesOfTable,\n defaultTable,\n onGoBackFromTableLevel,\n onPressTableSegment,\n },\n ref,\n ) => {\n const { onEvent: trackEvent } = useUIContext();\n const { playButtonSound } = useCircleSounds();\n const [fadeIn, setFadeIn] = useState(true);\n const [highlightedTable, setHighlightedTable] = useState<number | null>(\n openModesOfTable?.tableNumber ?? null,\n );\n const [highlightedLevel, setHighlightedLevel] = useState<number | null>(null);\n const [highlightedInfiniteModeText, setHighlightedInfiniteModeText] = useState<boolean>(false);\n const [labelColor, setLabelColor] = useState<TColorNames>('WHITE_T_60');\n const [revealTableModes, setRevealTableModes] = useState<ITableInfo>({\n stars:\n data.tableList.find(table => table.tableNumber === openModesOfTable?.tableNumber)?.stars ??\n [],\n tableNumber: openModesOfTable?.tableNumber ?? 0,\n });\n const infiniteButtonRef = useRef<HTMLDivElement>(null) as React.RefObject<HTMLDivElement>;\n const [showLabel, setShowLabel] = useState(true);\n const [isLabelAnimated, setIsLabelAnimated] = useState(false);\n const [animatedColor, setAniimatedColor] = useState<TColorNames>('WHITE_T_60');\n\n const labelRef = useRef<HTMLDivElement>(null) as React.RefObject<HTMLDivElement>;\n const cardRef = useRef<HTMLDivElement>(null) as React.RefObject<HTMLDivElement>;\n\n const [rewardStar, setRewardStar] = useState(openModesOfTable?.rewardStar ?? []);\n const [showSplEventsText, setShowSplEventsText] = useState(false);\n const revealAnimationRef = useRef<ILottieAnimationRef | null>(null);\n const disappearAnimationTimer = useRef<ReturnType<typeof setTimeout>>(\n undefined,\n ) as React.RefObject<ReturnType<typeof setTimeout> | undefined>;\n\n const handleTableSegmentClick = useCallback(\n (table: ITableInfo) => {\n if (onPressTableSegment) {\n onPressTableSegment(table);\n\n return;\n }\n playButtonSound();\n setFadeIn(true);\n setHighlightedTable(table.tableNumber);\n setRevealTableModes({ ...table });\n setRewardStar([]);\n trackEvent(GAME_LAUNCHER_ANALYTICS_EVENTS.TABLE_SELECTED, {\n meta: {\n table_of: table.tableNumber,\n },\n });\n },\n [onPressTableSegment, playButtonSound, trackEvent],\n );\n\n const handleTableSegmentMouseOver = useCallback(\n (table: ITableInfo) => {\n setLabelColor(isLabelAnimated ? animatedColor : 'WHITE_T_60');\n setHighlightedTable(table.tableNumber);\n },\n [animatedColor, isLabelAnimated],\n );\n\n const handleInfiniteModeSegmentMouseOver = useCallback(() => {\n setHighlightedInfiniteModeText(true);\n }, []);\n\n const handleTableSegmentMouseLeave = useCallback(() => {\n setLabelColor('WHITE_T_60');\n !revealTableModes.tableNumber && setHighlightedTable(null);\n setHighlightedInfiniteModeText(false);\n }, [revealTableModes.tableNumber]);\n\n const goBack = useCallback(() => {\n onGoBackFromTableLevel?.();\n playButtonSound();\n setFadeIn(false);\n setHighlightedTable(null);\n const time = (TABLE_REVEAL_ANIMATION.DISAPPEAR[1] - TABLE_REVEAL_ANIMATION.DISAPPEAR[0]) / 30;\n\n revealAnimationRef.current?.playSegments(TABLE_REVEAL_ANIMATION.DISAPPEAR, true);\n disappearAnimationTimer.current = setTimeout(() => {\n setRevealTableModes({ stars: [], tableNumber: 0 });\n }, time * 1000);\n }, [onGoBackFromTableLevel, playButtonSound]);\n\n const showTableModes = useCallback(() => {\n revealAnimationRef.current?.playSegments(TABLE_REVEAL_ANIMATION.REVEAL, true);\n }, []);\n\n const handleModeMouseOver = useCallback((type: TTableMode) => {\n const level: Partial<Record<TTableMode, number>> = {\n sequence: 1,\n random: 2,\n advance: 3,\n };\n\n setLabelColor(TABLE_MODE_LABEL_COLOR[type] ?? 'WHITE_T_60');\n setHighlightedLevel(level[type] ?? 0);\n }, []);\n\n const handleModeMouseLeave = useCallback(() => {\n setHighlightedLevel(null);\n setLabelColor('WHITE_T_60');\n }, []);\n\n const revealTableModesMemo = useMemo(() => revealTableModes, [revealTableModes]);\n\n const tableModes = useMemo(() => {\n return [\n {\n top: 20,\n left: 10.5,\n type: 'sequence' as TTableMode,\n tableNumber: revealTableModesMemo.tableNumber,\n isStarAchieved: revealTableModesMemo.stars.includes('sequence'),\n semicirclePosiiionTop: '-19%',\n semicirclePosiiionLeft: '-43%',\n semicircleHoverColor: '#B259004D',\n },\n {\n top: 20,\n left: 65.5,\n type: 'random' as TTableMode,\n tableNumber: revealTableModesMemo.tableNumber,\n isStarAchieved: revealTableModesMemo.stars.includes('random'),\n semicirclePosiiionTop: '-19%',\n semicirclePosiiionLeft: '65%',\n semicircleHoverColor: '#0055CC4D',\n },\n {\n top: 66,\n left: 38,\n type: 'advance' as TTableMode,\n tableNumber: revealTableModesMemo.tableNumber,\n isStarAchieved: revealTableModesMemo.stars.includes('advance'),\n semicirclePosiiionTop: '74%',\n semicirclePosiiionLeft: '11%',\n semicircleHoverColor: '#A9099C4D',\n },\n ];\n }, [revealTableModesMemo.tableNumber, revealTableModesMemo.stars]);\n\n // Calculate completed normal modes and special events status\n const { completedModes, isSpecialEventsActive } = useMemo<{\n completedModes: TTableMode[];\n isSpecialEventsActive: boolean;\n }>(() => {\n const calculatedcompletedModes = NORMAL_TABLE_MODES.filter(star =>\n data.tableList.every(table => table.stars.includes(star)),\n );\n\n const isAllRewardStarsInCompletedModes =\n rewardStar.length > 0 &&\n calculatedcompletedModes.length > 0 &&\n rewardStar.every(star =>\n calculatedcompletedModes.includes(star as Exclude<TTableMode, 'infinite'>),\n );\n\n return {\n completedModes: calculatedcompletedModes,\n isSpecialEventsActive: isAllRewardStarsInCompletedModes,\n };\n }, [data.tableList, rewardStar]);\n\n const handleInfiniteModeClick = useCallback(() => {\n onPress({\n mode: 'infinite',\n infiniteModeHighScore: data.infiniteModeHighScore,\n });\n }, [onPress, data.infiniteModeHighScore]);\n\n const handleNormalModeClick = useCallback(\n (mode: TTableMode, isStarRewarded: boolean) => {\n onPress({\n mode,\n tableNumber: revealTableModes.tableNumber,\n isStarRewarded,\n });\n },\n [onPress, revealTableModes.tableNumber],\n );\n\n const getHighlightedText = useCallback(() => {\n if (highlightedLevel) {\n return `${highlightedTable}× LEVEL${highlightedLevel}`;\n }\n\n if (highlightedInfiniteModeText) {\n return INFINITE_MODE_TEXT;\n }\n\n return highlightedTable ? `${highlightedTable}× Table` : label;\n }, [highlightedLevel, highlightedTable, highlightedInfiniteModeText, label]);\n\n const startLabelAnimation = useCallback((color: TColorNames) => {\n setLabelColor(color);\n setAniimatedColor(color);\n setIsLabelAnimated(true);\n }, []);\n\n const stopLabelAnimation = useCallback(() => setIsLabelAnimated(false), []);\n const setLabelVisiblity = useCallback((visible: boolean) => setShowLabel(visible), []);\n\n useImperativeHandle(ref, () => ({\n labelRef: labelRef,\n segmentedCardWrapperRef: cardRef,\n infiniteButtonRef: infiniteButtonRef,\n startLabelAnimation,\n stopLabelAnimation,\n setLabelVisiblity,\n handleTableSegmentClick,\n goBackFromTableLevel: goBack,\n }));\n\n useEffect(() => {\n return () => {\n disappearAnimationTimer.current && clearTimeout(disappearAnimationTimer.current);\n };\n }, []);\n\n // Used in trial journey, to open table levels by default if given in props\n useEffect(() => {\n if (defaultTable) {\n playButtonSound();\n setFadeIn(true);\n setHighlightedTable(defaultTable.tableNumber);\n setRevealTableModes({ ...defaultTable });\n }\n }, [defaultTable, playButtonSound]);\n\n useEffect(() => {\n if (revealTableModes.tableNumber === 0 && isSpecialEventsActive && !showSplEventsText) {\n setShowSplEventsText(true);\n }\n\n if (revealTableModes.tableNumber > 0) {\n setShowSplEventsText(false);\n }\n }, [revealTableModes.tableNumber, isSpecialEventsActive, showSplEventsText]);\n\n return (\n <>\n <CardContainer\n labelRef={labelRef}\n ref={cardRef}\n strokeColor=\"WHITE\"\n label={getHighlightedText()}\n labelColor={labelColor}\n isAnimated={isLabelAnimated}\n showLabel={showLabel}\n >\n <Styled.CardWrapper>\n {/* table selection */}\n <Styled.TableSegmentsWrapper>\n {/* infinite button */}\n <InfiniteButtonCard\n onClick={handleInfiniteModeClick}\n buttonRef={infiniteButtonRef}\n onMouseLeave={handleTableSegmentMouseLeave}\n onMouseOver={handleInfiniteModeSegmentMouseOver}\n />\n {/* card shadow */}\n <Styled.TableSegmentCardShadowContainer />\n {/* table segments */}\n {data.tableList.map((table, index) => {\n const segmentAngle = 360 / data.tableList.length;\n const startAngle = -(90 + 360 / (2 * data.tableList.length));\n const currentAngle = startAngle + segmentAngle * (index + 1);\n\n return (\n <>\n <Styled.TableSegment\n key={index}\n $angle={currentAngle}\n $totalSegments={data.tableList.length}\n $zIndex={index + 1}\n onClick={() => handleTableSegmentClick(table)}\n onMouseOver={() => handleTableSegmentMouseOver(table)}\n onMouseLeave={handleTableSegmentMouseLeave}\n >\n <FlexView $flexDirection=\"row\" $justifyContent=\"center\" $alignItems=\"center\">\n {NORMAL_TABLE_MODES.map(star => (\n <TableSegmentStar\n key={star}\n isStarAchieved={table.stars.includes(star as TTableMode)}\n rewardStar={\n !fadeIn &&\n !isSpecialEventsActive &&\n openModesOfTable?.tableNumber === table.tableNumber\n ? rewardStar.includes(star as TTableMode)\n : undefined\n }\n />\n ))}\n\n <Separator width={GAME_LAUNCHER_SIZE * 0.055} />\n\n <Styled.TableNumber $angle={-currentAngle}>\n <Text\n $renderAs={\n GAME_LAUNCHER_SIZE === GAME_LAUNCHER_SIZE_LARGE\n ? 'ac3-black'\n : 'ac4-black'\n }\n $color={highlightedTable === table.tableNumber ? 'BLACK_1' : 'WHITE'}\n >\n {table.tableNumber}\n </Text>\n </Styled.TableNumber>\n </FlexView>\n </Styled.TableSegment>\n </>\n );\n })}\n (\n {revealTableModes.tableNumber === 0 && isSpecialEventsActive && (\n <>\n {NORMAL_TABLE_MODES.map((starType, index) => {\n if (!completedModes.includes(starType)) return null;\n\n return (\n <Styled.AllStarAbsoluteView key={starType} level={index + 1}>\n <LottieAnimation\n src={LOTTIE.LEVEL_1_ALLSTAR}\n settings={modeRevealAnimationSettings}\n animateOnIntersect\n />\n </Styled.AllStarAbsoluteView>\n );\n })}\n </>\n )}\n )\n </Styled.TableSegmentsWrapper>\n {/* table modes */}\n {revealTableModes.tableNumber > 0 && (\n <Styled.TableModeContainer>\n <Styled.TableModeWrapper>\n {/* tables modes with back button */}\n <Styled.AnimatedView animation={fadeIn ? 'fade-in' : 'fade-out'}>\n {tableModes.map((tableMode, index) => (\n <React.Fragment key={index}>\n <Styled.ModeOverlay\n $top={tableMode.semicirclePosiiionTop}\n $left={tableMode.semicirclePosiiionLeft}\n $hoverColor={tableMode.semicircleHoverColor}\n onClick={() =>\n fadeIn\n ? handleNormalModeClick(tableMode.type, tableMode.isStarAchieved)\n : undefined\n }\n onMouseOver={() =>\n fadeIn ? handleModeMouseOver(tableMode.type as TTableMode) : undefined\n }\n onMouseLeave={fadeIn ? handleModeMouseLeave : undefined}\n />\n <Styled.AbsoluteView\n $top={tableMode.top}\n $left={tableMode.left}\n $isPointerEventsNone={true}\n >\n <TableMode\n tableNumber={tableMode.tableNumber}\n isStarAchieved={\n tableMode.isStarAchieved || rewardStar.includes(tableMode.type)\n }\n type={tableMode.type as TTableMode}\n rewardStar={rewardStar.includes(tableMode.type as TTableMode)}\n />\n </Styled.AbsoluteView>\n </React.Fragment>\n ))}\n {/* back button */}\n <Styled.AbsoluteView $top={50} $left={50} $alignCenter={true}>\n <Styled.IconWrapper>\n <Back2Icon\n onClick={goBack}\n height={GAME_LAUNCHER_SIZE * 0.1}\n width={GAME_LAUNCHER_SIZE * 0.1}\n />\n </Styled.IconWrapper>\n </Styled.AbsoluteView>\n </Styled.AnimatedView>\n\n {/* overlay lottie for modes */}\n <LottieAnimation\n src={LOTTIE.TABLE_MODE_REVEAL}\n ref={revealAnimationRef}\n settings={modeRevealAnimationSettings}\n onRender={showTableModes}\n animateOnIntersect\n />\n </Styled.TableModeWrapper>\n </Styled.TableModeContainer>\n )}\n </Styled.CardWrapper>\n </CardContainer>\n {showSplEventsText && <SplEventsText completedModes={completedModes} />}\n </>\n );\n },\n);\n\nexport const TablesCard = memo(TablesCardComponent);\n"],"names":["modeRevealAnimationSettings","TablesCardComponent","forwardRef","data","label","onPress","openModesOfTable","defaultTable","onGoBackFromTableLevel","onPressTableSegment","ref","trackEvent","useUIContext","playButtonSound","useCircleSounds","fadeIn","setFadeIn","useState","highlightedTable","setHighlightedTable","highlightedLevel","setHighlightedLevel","highlightedInfiniteModeText","setHighlightedInfiniteModeText","labelColor","setLabelColor","revealTableModes","setRevealTableModes","_a","table","infiniteButtonRef","useRef","showLabel","setShowLabel","isLabelAnimated","setIsLabelAnimated","animatedColor","setAniimatedColor","labelRef","cardRef","rewardStar","setRewardStar","showSplEventsText","setShowSplEventsText","revealAnimationRef","disappearAnimationTimer","handleTableSegmentClick","useCallback","GAME_LAUNCHER_ANALYTICS_EVENTS","handleTableSegmentMouseOver","handleInfiniteModeSegmentMouseOver","handleTableSegmentMouseLeave","goBack","time","TABLE_REVEAL_ANIMATION","showTableModes","handleModeMouseOver","type","level","TABLE_MODE_LABEL_COLOR","handleModeMouseLeave","revealTableModesMemo","useMemo","tableModes","completedModes","isSpecialEventsActive","calculatedcompletedModes","NORMAL_TABLE_MODES","star","isAllRewardStarsInCompletedModes","handleInfiniteModeClick","handleNormalModeClick","mode","isStarRewarded","getHighlightedText","INFINITE_MODE_TEXT","startLabelAnimation","color","stopLabelAnimation","setLabelVisiblity","visible","useImperativeHandle","useEffect","jsxs","Fragment","jsx","CardContainer","Styled.CardWrapper","Styled.TableSegmentsWrapper","InfiniteButtonCard","Styled.TableSegmentCardShadowContainer","index","segmentAngle","currentAngle","Styled.TableSegment","FlexView","TableSegmentStar","Separator","GAME_LAUNCHER_SIZE","Styled.TableNumber","Text","GAME_LAUNCHER_SIZE_LARGE","starType","Styled.AllStarAbsoluteView","LottieAnimation","LOTTIE","Styled.TableModeContainer","Styled.TableModeWrapper","Styled.AnimatedView","tableMode","React","Styled.ModeOverlay","Styled.AbsoluteView","TableMode","Styled.IconWrapper","Back2Icon","SplEventsText","TablesCard","memo"],"mappings":"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"}