@cuemath/leap 2.8.38 → 2.8.40-hg1
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/line-icons/icons/sheet.js +54 -0
- package/dist/assets/line-icons/icons/sheet.js.map +1 -0
- package/dist/assets/lottie/lottie.js +6 -0
- package/dist/assets/lottie/lottie.js.map +1 -1
- package/dist/features/analytics-events/whitelist-events.js +15 -13
- package/dist/features/analytics-events/whitelist-events.js.map +1 -1
- package/dist/features/circle-games/game-launcher/comps/tables-card/table-mode/table-mode-styled.js +3 -3
- package/dist/features/circle-games/game-launcher/comps/tables-card/table-mode/table-mode-styled.js.map +1 -1
- package/dist/features/circle-games/game-launcher/comps/tables-card/table-mode/table-mode.js +29 -35
- package/dist/features/circle-games/game-launcher/comps/tables-card/table-mode/table-mode.js.map +1 -1
- package/dist/features/circle-games/game-launcher/comps/tables-card/table-mode-star/table-mode-star-styled.js +25 -0
- package/dist/features/circle-games/game-launcher/comps/tables-card/table-mode-star/table-mode-star-styled.js.map +1 -0
- package/dist/features/circle-games/game-launcher/comps/tables-card/table-mode-star/table-mode-star.js +57 -0
- package/dist/features/circle-games/game-launcher/comps/tables-card/table-mode-star/table-mode-star.js.map +1 -0
- package/dist/features/circle-games/game-launcher/comps/tables-card/table-segment-star/table-segment-star-styled.js +27 -0
- package/dist/features/circle-games/game-launcher/comps/tables-card/table-segment-star/table-segment-star-styled.js.map +1 -0
- package/dist/features/circle-games/game-launcher/comps/tables-card/table-segment-star/table-segment-star.js +37 -0
- package/dist/features/circle-games/game-launcher/comps/tables-card/table-segment-star/table-segment-star.js.map +1 -0
- package/dist/features/circle-games/game-launcher/comps/tables-card/tables-card-styled.js +35 -42
- package/dist/features/circle-games/game-launcher/comps/tables-card/tables-card-styled.js.map +1 -1
- package/dist/features/circle-games/game-launcher/comps/tables-card/tables-card.js +223 -212
- package/dist/features/circle-games/game-launcher/comps/tables-card/tables-card.js.map +1 -1
- package/dist/features/circle-games/game-launcher/game-launcher-analytics-events.js +8 -7
- package/dist/features/circle-games/game-launcher/game-launcher-analytics-events.js.map +1 -1
- package/dist/features/circle-games/game-launcher/game-launcher.js +25 -24
- package/dist/features/circle-games/game-launcher/game-launcher.js.map +1 -1
- package/dist/features/circle-games/games/web-view/web-view-types.js.map +1 -1
- package/dist/features/circle-games/hooks/use-circle-sounds/constants.js +8 -3
- package/dist/features/circle-games/hooks/use-circle-sounds/constants.js.map +1 -1
- package/dist/features/circle-games/hooks/use-circle-sounds/use-circle-sounds-enums.js +2 -2
- package/dist/features/circle-games/hooks/use-circle-sounds/use-circle-sounds-enums.js.map +1 -1
- package/dist/features/circle-games/hooks/use-circle-sounds/use-circle-sounds.js +22 -17
- package/dist/features/circle-games/hooks/use-circle-sounds/use-circle-sounds.js.map +1 -1
- package/dist/features/communication/pub-sub/constants.js +2 -1
- package/dist/features/communication/pub-sub/constants.js.map +1 -1
- package/dist/features/milestone/create/milestone-create-styled.js +11 -9
- package/dist/features/milestone/create/milestone-create-styled.js.map +1 -1
- package/dist/features/milestone/edit/comps/milestone-edit-loader/milestone-edit-loader-styled.js +6 -8
- package/dist/features/milestone/edit/comps/milestone-edit-loader/milestone-edit-loader-styled.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list-container.js +130 -117
- package/dist/features/milestone/milestone-list-container/milestone-list-container.js.map +1 -1
- package/dist/features/milestone/milestone-resources/resources-assign/added-resource-and-filters.js +205 -0
- package/dist/features/milestone/milestone-resources/resources-assign/added-resource-and-filters.js.map +1 -0
- package/dist/features/milestone/milestone-resources/resources-assign/api/get-resource.js +11 -0
- package/dist/features/milestone/milestone-resources/resources-assign/api/get-resource.js.map +1 -0
- package/dist/features/milestone/milestone-resources/resources-assign/api/goal-resource-assign.js +9 -0
- package/dist/features/milestone/milestone-resources/resources-assign/api/goal-resource-assign.js.map +1 -0
- package/dist/features/milestone/milestone-resources/resources-assign/api/lpar-resource-assign.js +9 -0
- package/dist/features/milestone/milestone-resources/resources-assign/api/lpar-resource-assign.js.map +1 -0
- package/dist/features/milestone/milestone-resources/resources-assign/comps/filter-item/filter-item-styled.js +19 -0
- package/dist/features/milestone/milestone-resources/resources-assign/comps/filter-item/filter-item-styled.js.map +1 -0
- package/dist/features/milestone/milestone-resources/resources-assign/comps/filter-item/filter-item.js +47 -0
- package/dist/features/milestone/milestone-resources/resources-assign/comps/filter-item/filter-item.js.map +1 -0
- package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/resource-item-styled.js +22 -0
- package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/resource-item-styled.js.map +1 -0
- package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/resource-item.js +60 -0
- package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/resource-item.js.map +1 -0
- package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/utils.js +6 -0
- package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/utils.js.map +1 -0
- package/dist/features/milestone/milestone-resources/resources-assign/constant.js +6 -0
- package/dist/features/milestone/milestone-resources/resources-assign/constant.js.map +1 -0
- package/dist/features/milestone/milestone-resources/resources-assign/resource-assign-analytics-events.js +19 -0
- package/dist/features/milestone/milestone-resources/resources-assign/resource-assign-analytics-events.js.map +1 -0
- package/dist/features/milestone/milestone-resources/resources-assign/resource-items/no-resource-screen.js +32 -0
- package/dist/features/milestone/milestone-resources/resources-assign/resource-items/no-resource-screen.js.map +1 -0
- package/dist/features/milestone/milestone-resources/resources-assign/resource-items/resource-items-styled.js +19 -0
- package/dist/features/milestone/milestone-resources/resources-assign/resource-items/resource-items-styled.js.map +1 -0
- package/dist/features/milestone/milestone-resources/resources-assign/resource-items/resource-items.js +85 -0
- package/dist/features/milestone/milestone-resources/resources-assign/resource-items/resource-items.js.map +1 -0
- package/dist/features/milestone/milestone-resources/resources-assign/resources-assign-styled.js +65 -0
- package/dist/features/milestone/milestone-resources/resources-assign/resources-assign-styled.js.map +1 -0
- package/dist/features/milestone/milestone-resources/resources-assign/resources-assign.js +233 -0
- package/dist/features/milestone/milestone-resources/resources-assign/resources-assign.js.map +1 -0
- package/dist/features/milestone/milestone-resources/resources-assign/utils.js +12 -0
- package/dist/features/milestone/milestone-resources/resources-assign/utils.js.map +1 -0
- package/dist/features/post-game-stats/digital-meter/comp/animated-arc/animated-arc-styled.js +17 -0
- package/dist/features/post-game-stats/digital-meter/comp/animated-arc/animated-arc-styled.js.map +1 -0
- package/dist/features/post-game-stats/digital-meter/comp/animated-arc/animated-arc.js +47 -0
- package/dist/features/post-game-stats/digital-meter/comp/animated-arc/animated-arc.js.map +1 -0
- package/dist/features/post-game-stats/digital-meter/comp/animated-arc/constants.js +6 -0
- package/dist/features/post-game-stats/digital-meter/comp/animated-arc/constants.js.map +1 -0
- package/dist/features/post-game-stats/digital-meter/constants.js +16 -0
- package/dist/features/post-game-stats/digital-meter/constants.js.map +1 -0
- package/dist/features/post-game-stats/digital-meter/digital-meter-styled.js +87 -0
- package/dist/features/post-game-stats/digital-meter/digital-meter-styled.js.map +1 -0
- package/dist/features/post-game-stats/digital-meter/digital-meter.js +191 -0
- package/dist/features/post-game-stats/digital-meter/digital-meter.js.map +1 -0
- package/dist/features/post-game-stats/digital-meter/helper.js +33 -0
- package/dist/features/post-game-stats/digital-meter/helper.js.map +1 -0
- package/dist/features/post-game-stats/enums/post-game-stats-enum.js +1 -1
- package/dist/features/post-game-stats/enums/post-game-stats-enum.js.map +1 -1
- package/dist/features/post-game-stats/number-count-animation/number-count-animation.js +27 -0
- package/dist/features/post-game-stats/number-count-animation/number-count-animation.js.map +1 -0
- package/dist/features/post-game-stats/points/points.js +15 -10
- package/dist/features/post-game-stats/points/points.js.map +1 -1
- package/dist/features/post-game-stats/post-game-stats.js +83 -61
- package/dist/features/post-game-stats/post-game-stats.js.map +1 -1
- package/dist/features/ui/grade-selector/grade-tab.js +15 -15
- package/dist/features/ui/grade-selector/grade-tab.js.map +1 -1
- package/dist/features/ui/inputs/searchable-input/searchable-input-styled.js +28 -0
- package/dist/features/ui/inputs/searchable-input/searchable-input-styled.js.map +1 -0
- package/dist/features/ui/inputs/searchable-input/searchable-input.js +101 -0
- package/dist/features/ui/inputs/searchable-input/searchable-input.js.map +1 -0
- package/dist/features/ui/tab/tab-styled.js +7 -8
- package/dist/features/ui/tab/tab-styled.js.map +1 -1
- package/dist/features/ui/tab/tab.js +36 -31
- package/dist/features/ui/tab/tab.js.map +1 -1
- package/dist/features/ui/theme/tab.js +3 -3
- package/dist/features/ui/theme/tab.js.map +1 -1
- package/dist/index.d.ts +94 -5
- package/dist/index.js +349 -343
- package/dist/index.js.map +1 -1
- package/dist/static/point2.7cec6e24.json +1 -0
- package/dist/static/point3.f96fe7aa.json +1 -0
- package/dist/static/point4.fe04fb83.json +1 -0
- package/dist/static/table-mode-star.b8a1d762.json +1 -0
- package/dist/static/table-segment-star.78e851d6.json +1 -0
- package/dist/static/target-achieved-text.053bd142.json +2830 -0
- package/dist/static/target-achieved-text.10db8475.json +1 -0
- package/package.json +1 -1
- package/dist/features/circle-games/game-launcher/comps/tables-card/table-star/table-star-styled.js +0 -11
- package/dist/features/circle-games/game-launcher/comps/tables-card/table-star/table-star-styled.js.map +0 -1
- package/dist/features/circle-games/game-launcher/comps/tables-card/table-star/table-star.js +0 -16
- package/dist/features/circle-games/game-launcher/comps/tables-card/table-star/table-star.js.map +0 -1
@@ -0,0 +1,191 @@
|
|
1
|
+
import { jsxs as o, jsx as r, Fragment as g } from "react/jsx-runtime";
|
2
|
+
import { memo as W, useState as U, useCallback as w, useEffect as B } from "react";
|
3
|
+
import { LOTTIE as Y } from "../../../assets/lottie/lottie.js";
|
4
|
+
import { GAME_LAUNCHER_SIZE as i, GAME_LAUNCHER_SIZE_LARGE as c } from "../../circle-games/game-launcher/comps/card-container/constants.js";
|
5
|
+
import { useCircleSounds as P } from "../../circle-games/hooks/use-circle-sounds/use-circle-sounds.js";
|
6
|
+
import { CircleSoundKey as E } from "../../circle-games/hooks/use-circle-sounds/use-circle-sounds-enums.js";
|
7
|
+
import I from "../../ui/layout/flex-view.js";
|
8
|
+
import j from "../../ui/lottie-animation/lottie-animation.js";
|
9
|
+
import R from "../../ui/separator/separator.js";
|
10
|
+
import N from "../../ui/text/text.js";
|
11
|
+
import { NumberCountAnimation as K } from "../number-count-animation/number-count-animation.js";
|
12
|
+
import { AnimatedArc as p } from "./comp/animated-arc/animated-arc.js";
|
13
|
+
import { TARGET_ACHIEVED_DELAY as S, TOTAL_ARC_AVAILABLE as d, BORDER_OFFSET as C, PROGRESS_FILL_DURATION as f, PROGRESS_FILL_DELAY as L, TOTAL_ANIMATION_DURATION as Z } from "./constants.js";
|
14
|
+
import { DigitalMeter as X, ContentContainer as q, NumberCountContainer as z, RainboxColorText as b, LineMarking as G, MarkingContainer as u, MarkingText as D, BottomAbsoluteView as M, HelperTextPrimary as J, HelperTextSecondary as Q } from "./digital-meter-styled.js";
|
15
|
+
const Tr = W(
|
16
|
+
({
|
17
|
+
show: $,
|
18
|
+
value: h,
|
19
|
+
maxValue: n,
|
20
|
+
targetValue: l = 0,
|
21
|
+
displayText: H,
|
22
|
+
progressType: s,
|
23
|
+
helperTextPrimary: O,
|
24
|
+
helperTextSecondary: F,
|
25
|
+
onComplete: k,
|
26
|
+
actAsTimer: m
|
27
|
+
}) => {
|
28
|
+
const [a, y] = U(!1), { play: _ } = P(), T = w(
|
29
|
+
(t) => l ? m ? t <= l : t >= l : !1,
|
30
|
+
[l, m]
|
31
|
+
);
|
32
|
+
return B(() => {
|
33
|
+
let t, e;
|
34
|
+
const A = T(h);
|
35
|
+
return $ && (_(m ? E.TIME_INTRO : E.ACCURACY_INTRO), _(E.METER_FILL), A && (t = setTimeout(() => {
|
36
|
+
_(m ? E.TIME_TARGET : E.ACCURACY_TARGET), y(!0);
|
37
|
+
}, S * 1e3)), e = setTimeout(() => {
|
38
|
+
k();
|
39
|
+
}, (A ? Z : S) * 1e3)), () => {
|
40
|
+
t && clearTimeout(t), e && clearTimeout(e);
|
41
|
+
};
|
42
|
+
}, [$, h, k, T, m, _]), $ ? /* @__PURE__ */ o(X, { $isTargetAchieved: a, children: [
|
43
|
+
/* @__PURE__ */ r(
|
44
|
+
p,
|
45
|
+
{
|
46
|
+
targetAngle: d,
|
47
|
+
strokeWidth: i === c ? 16 : 12,
|
48
|
+
color: "BLACK_5",
|
49
|
+
radius: (i - C) / 2,
|
50
|
+
duration: 0
|
51
|
+
}
|
52
|
+
),
|
53
|
+
/* @__PURE__ */ r(q, { children: /* @__PURE__ */ o(I, { $flexDirection: "column", $alignItems: "center", children: [
|
54
|
+
/* @__PURE__ */ o(I, { $flexDirection: "row", $alignItems: "flex-end", children: [
|
55
|
+
/* @__PURE__ */ r(z, { children: /* @__PURE__ */ r(
|
56
|
+
b,
|
57
|
+
{
|
58
|
+
$renderAs: i === c ? "ah1" : "ah2",
|
59
|
+
$color: "GREEN_4",
|
60
|
+
$isTargetAchieved: a,
|
61
|
+
children: /* @__PURE__ */ r(
|
62
|
+
K,
|
63
|
+
{
|
64
|
+
initialValue: 0,
|
65
|
+
targetValue: Math.floor(h),
|
66
|
+
durationInSec: f,
|
67
|
+
delayInSec: L
|
68
|
+
}
|
69
|
+
)
|
70
|
+
}
|
71
|
+
) }),
|
72
|
+
s === "stepper" && /* @__PURE__ */ o(
|
73
|
+
N,
|
74
|
+
{
|
75
|
+
$renderAs: i === c ? "ah4" : "ab1",
|
76
|
+
$color: "WHITE",
|
77
|
+
children: [
|
78
|
+
"/",
|
79
|
+
n
|
80
|
+
]
|
81
|
+
}
|
82
|
+
)
|
83
|
+
] }),
|
84
|
+
/* @__PURE__ */ r(R, { height: 8 }),
|
85
|
+
/* @__PURE__ */ r(
|
86
|
+
N,
|
87
|
+
{
|
88
|
+
$renderAs: i === c ? "ac3-black" : "ac4-black",
|
89
|
+
$color: "WHITE_T_60",
|
90
|
+
children: H
|
91
|
+
}
|
92
|
+
)
|
93
|
+
] }) }),
|
94
|
+
s === "stepper" && Array.from({ length: h }, (t, e) => {
|
95
|
+
const A = d / n;
|
96
|
+
return /* @__PURE__ */ r(
|
97
|
+
p,
|
98
|
+
{
|
99
|
+
startAngle: A * e,
|
100
|
+
targetAngle: A,
|
101
|
+
strokeWidth: i === c ? 16 : 12,
|
102
|
+
color: "GREEN_4",
|
103
|
+
radius: (i - C) / 2,
|
104
|
+
mode: "fade",
|
105
|
+
duration: f / n,
|
106
|
+
delay: L + f / n * e,
|
107
|
+
playRainbowColors: a
|
108
|
+
},
|
109
|
+
e
|
110
|
+
);
|
111
|
+
}),
|
112
|
+
s === "stepper" && Array.from({ length: n + 1 }, (t, e) => {
|
113
|
+
const A = d / n;
|
114
|
+
return /* @__PURE__ */ o(g, { children: [
|
115
|
+
/* @__PURE__ */ r(G, { $angle: A * e }, e + "linemarking"),
|
116
|
+
/* @__PURE__ */ r(u, { $angle: A * e, children: /* @__PURE__ */ r(D, { $angle: A * e, children: /* @__PURE__ */ r(
|
117
|
+
b,
|
118
|
+
{
|
119
|
+
$renderAs: i === c ? "ac3-black" : "ac4-black",
|
120
|
+
$isTargetAchieved: T(e) && a,
|
121
|
+
$color: l && T(e) ? "GREEN_4" : "WHITE_T_60",
|
122
|
+
children: e
|
123
|
+
}
|
124
|
+
) }) }, e)
|
125
|
+
] });
|
126
|
+
}),
|
127
|
+
s === "linear" && /* @__PURE__ */ o(g, { children: [
|
128
|
+
/* @__PURE__ */ r(
|
129
|
+
p,
|
130
|
+
{
|
131
|
+
targetAngle: h * d / n,
|
132
|
+
strokeWidth: i === c ? 16 : 12,
|
133
|
+
color: "GREEN_4",
|
134
|
+
radius: (i - C) / 2,
|
135
|
+
duration: f,
|
136
|
+
delay: L,
|
137
|
+
playRainbowColors: a
|
138
|
+
}
|
139
|
+
),
|
140
|
+
/* @__PURE__ */ o(g, { children: [
|
141
|
+
l && /* @__PURE__ */ r(G, { $angle: l * d / n }),
|
142
|
+
Array.from(/* @__PURE__ */ new Set([0, l, n])).map((t, e) => /* @__PURE__ */ r(
|
143
|
+
u,
|
144
|
+
{
|
145
|
+
$angle: t * d / n,
|
146
|
+
children: /* @__PURE__ */ r(D, { $angle: t * d / n, children: /* @__PURE__ */ r(
|
147
|
+
b,
|
148
|
+
{
|
149
|
+
$renderAs: i === c ? "ac3-black" : "ac4-black",
|
150
|
+
$color: l && T(t) ? "GREEN_4" : "WHITE_T_60",
|
151
|
+
$isTargetAchieved: h >= t && a && T(t),
|
152
|
+
children: t
|
153
|
+
}
|
154
|
+
) })
|
155
|
+
},
|
156
|
+
e
|
157
|
+
))
|
158
|
+
] })
|
159
|
+
] }),
|
160
|
+
a && /* @__PURE__ */ r(M, { top: i, children: /* @__PURE__ */ r(j, { src: Y.TARGET_ACHIEVED_TEXT }) }),
|
161
|
+
!a && /* @__PURE__ */ o(M, { top: i, children: [
|
162
|
+
/* @__PURE__ */ r(R, { height: 25 }),
|
163
|
+
/* @__PURE__ */ o(I, { $flexDirection: "column", $alignItems: "center", children: [
|
164
|
+
/* @__PURE__ */ o(
|
165
|
+
J,
|
166
|
+
{
|
167
|
+
$renderAs: i === c ? "ac3-black" : "ac4-black",
|
168
|
+
$color: "WHITE_T_60",
|
169
|
+
children: [
|
170
|
+
O,
|
171
|
+
/* @__PURE__ */ r(R, { height: i * 0.03 })
|
172
|
+
]
|
173
|
+
}
|
174
|
+
),
|
175
|
+
/* @__PURE__ */ r(
|
176
|
+
Q,
|
177
|
+
{
|
178
|
+
$renderAs: i === c ? "ah4" : "ab1",
|
179
|
+
$color: "WHITE",
|
180
|
+
children: F
|
181
|
+
}
|
182
|
+
)
|
183
|
+
] })
|
184
|
+
] })
|
185
|
+
] }) : null;
|
186
|
+
}
|
187
|
+
);
|
188
|
+
export {
|
189
|
+
Tr as DigitalMeter
|
190
|
+
};
|
191
|
+
//# sourceMappingURL=digital-meter.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"digital-meter.js","sources":["../../../../src/features/post-game-stats/digital-meter/digital-meter.tsx"],"sourcesContent":["import type { IDigitalMeterProps } from './digital-meter-types';\nimport type { FC } from 'react';\n\nimport { memo, useCallback, useEffect, useState } from 'react';\n\nimport { LOTTIE } from '../../../assets/lottie/lottie';\nimport {\n GAME_LAUNCHER_SIZE,\n GAME_LAUNCHER_SIZE_LARGE,\n} from '../../circle-games/game-launcher/comps/card-container/constants';\nimport { useCircleSounds } from '../../circle-games/hooks/use-circle-sounds/use-circle-sounds';\nimport { CircleSoundKey } from '../../circle-games/hooks/use-circle-sounds/use-circle-sounds-enums';\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 { NumberCountAnimation } from '../number-count-animation/number-count-animation';\nimport { AnimatedArc } from './comp/animated-arc/animated-arc';\nimport {\n BORDER_OFFSET,\n PROGRESS_FILL_DELAY,\n PROGRESS_FILL_DURATION,\n TARGET_ACHIEVED_DELAY,\n TOTAL_ANIMATION_DURATION,\n TOTAL_ARC_AVAILABLE,\n} from './constants';\nimport * as Styled from './digital-meter-styled';\n\nexport const DigitalMeter: FC<IDigitalMeterProps> = memo(\n ({\n show,\n value,\n maxValue,\n targetValue = 0,\n displayText,\n progressType,\n helperTextPrimary,\n helperTextSecondary,\n onComplete,\n actAsTimer,\n }) => {\n const [isTargetAchieved, setIsTargetAchieved] = useState(false);\n const { play } = useCircleSounds();\n\n const isTargetValueAchieved = useCallback(\n (valueToCompare: number) => {\n if (targetValue) {\n if (actAsTimer) {\n return valueToCompare <= targetValue;\n }\n\n return valueToCompare >= targetValue;\n }\n\n return false;\n },\n [targetValue, actAsTimer],\n );\n\n useEffect(() => {\n let timer: ReturnType<typeof setTimeout>;\n let timerForAnimationComplete: ReturnType<typeof setTimeout>;\n const isTargetAchievedFlag = isTargetValueAchieved(value);\n\n if (show) {\n play(actAsTimer ? CircleSoundKey.TIME_INTRO : CircleSoundKey.ACCURACY_INTRO);\n play(CircleSoundKey.METER_FILL);\n if (isTargetAchievedFlag) {\n timer = setTimeout(() => {\n play(actAsTimer ? CircleSoundKey.TIME_TARGET : CircleSoundKey.ACCURACY_TARGET);\n setIsTargetAchieved(true);\n }, TARGET_ACHIEVED_DELAY * 1000);\n }\n\n const timeToFinishAnimation = isTargetAchievedFlag\n ? TOTAL_ANIMATION_DURATION\n : TARGET_ACHIEVED_DELAY;\n\n timerForAnimationComplete = setTimeout(() => {\n onComplete();\n }, timeToFinishAnimation * 1000);\n }\n\n return () => {\n timer && clearTimeout(timer);\n timerForAnimationComplete && clearTimeout(timerForAnimationComplete);\n };\n }, [show, value, onComplete, isTargetValueAchieved, actAsTimer, play]);\n\n if (show) {\n return (\n <Styled.DigitalMeter $isTargetAchieved={isTargetAchieved}>\n {/* complete arc area to be filled */}\n <AnimatedArc\n targetAngle={TOTAL_ARC_AVAILABLE}\n strokeWidth={GAME_LAUNCHER_SIZE === GAME_LAUNCHER_SIZE_LARGE ? 16 : 12}\n color=\"BLACK_5\"\n radius={(GAME_LAUNCHER_SIZE - BORDER_OFFSET) / 2}\n duration={0}\n />\n\n {/* center area for the content */}\n <Styled.ContentContainer>\n <FlexView $flexDirection=\"column\" $alignItems=\"center\">\n <FlexView $flexDirection=\"row\" $alignItems=\"flex-end\">\n <Styled.NumberCountContainer>\n <Styled.RainboxColorText\n $renderAs={GAME_LAUNCHER_SIZE === GAME_LAUNCHER_SIZE_LARGE ? 'ah1' : 'ah2'}\n $color=\"GREEN_4\"\n $isTargetAchieved={isTargetAchieved}\n >\n <NumberCountAnimation\n initialValue={0}\n targetValue={Math.floor(value)}\n durationInSec={PROGRESS_FILL_DURATION}\n delayInSec={PROGRESS_FILL_DELAY}\n />\n </Styled.RainboxColorText>\n </Styled.NumberCountContainer>\n {progressType === 'stepper' && (\n <Text\n $renderAs={GAME_LAUNCHER_SIZE === GAME_LAUNCHER_SIZE_LARGE ? 'ah4' : 'ab1'}\n $color=\"WHITE\"\n >\n /{maxValue}\n </Text>\n )}\n </FlexView>\n <Separator height={8} />\n <Text\n $renderAs={\n GAME_LAUNCHER_SIZE === GAME_LAUNCHER_SIZE_LARGE ? 'ac3-black' : 'ac4-black'\n }\n $color=\"WHITE_T_60\"\n >\n {displayText}\n </Text>\n </FlexView>\n </Styled.ContentContainer>\n\n {/* stepper animation */}\n {progressType === 'stepper' &&\n Array.from({ length: value }, (_, index) => {\n const arcLength = TOTAL_ARC_AVAILABLE / maxValue;\n\n return (\n <AnimatedArc\n key={index}\n startAngle={arcLength * index}\n targetAngle={arcLength}\n strokeWidth={GAME_LAUNCHER_SIZE === GAME_LAUNCHER_SIZE_LARGE ? 16 : 12}\n color=\"GREEN_4\"\n radius={(GAME_LAUNCHER_SIZE - BORDER_OFFSET) / 2}\n mode=\"fade\"\n duration={PROGRESS_FILL_DURATION / maxValue}\n delay={PROGRESS_FILL_DELAY + (PROGRESS_FILL_DURATION / maxValue) * index}\n playRainbowColors={isTargetAchieved}\n />\n );\n })}\n\n {/* numbers with markings */}\n {progressType === 'stepper' &&\n Array.from({ length: maxValue + 1 }, (_, index) => {\n const arcLength = TOTAL_ARC_AVAILABLE / maxValue;\n\n return (\n <>\n <Styled.LineMarking key={index + 'linemarking'} $angle={arcLength * index} />\n <Styled.MarkingContainer key={index} $angle={arcLength * index}>\n <Styled.MarkingText $angle={arcLength * index}>\n <Styled.RainboxColorText\n $renderAs={\n GAME_LAUNCHER_SIZE === GAME_LAUNCHER_SIZE_LARGE\n ? 'ac3-black'\n : 'ac4-black'\n }\n $isTargetAchieved={isTargetValueAchieved(index) && isTargetAchieved}\n $color={\n targetValue && isTargetValueAchieved(index) ? 'GREEN_4' : 'WHITE_T_60'\n }\n >\n {index}\n </Styled.RainboxColorText>\n </Styled.MarkingText>\n </Styled.MarkingContainer>\n </>\n );\n })}\n\n {/* progress of linear */}\n {progressType === 'linear' && (\n <>\n <AnimatedArc\n targetAngle={(value * TOTAL_ARC_AVAILABLE) / maxValue}\n strokeWidth={GAME_LAUNCHER_SIZE === GAME_LAUNCHER_SIZE_LARGE ? 16 : 12}\n color=\"GREEN_4\"\n radius={(GAME_LAUNCHER_SIZE - BORDER_OFFSET) / 2}\n duration={PROGRESS_FILL_DURATION}\n delay={PROGRESS_FILL_DELAY}\n playRainbowColors={isTargetAchieved}\n />\n <>\n {/* target line marking */}\n {targetValue && (\n <Styled.LineMarking $angle={(targetValue * TOTAL_ARC_AVAILABLE) / maxValue} />\n )}\n\n {/* all markings */}\n {Array.from(new Set([0, targetValue, maxValue])).map((val, index) => (\n <Styled.MarkingContainer\n key={index}\n $angle={(val * TOTAL_ARC_AVAILABLE) / maxValue}\n >\n <Styled.MarkingText $angle={(val * TOTAL_ARC_AVAILABLE) / maxValue}>\n <Styled.RainboxColorText\n $renderAs={\n GAME_LAUNCHER_SIZE === GAME_LAUNCHER_SIZE_LARGE\n ? 'ac3-black'\n : 'ac4-black'\n }\n $color={\n targetValue && isTargetValueAchieved(val) ? 'GREEN_4' : 'WHITE_T_60'\n }\n $isTargetAchieved={\n value >= val && isTargetAchieved && isTargetValueAchieved(val)\n }\n >\n {val}\n </Styled.RainboxColorText>\n </Styled.MarkingText>\n </Styled.MarkingContainer>\n ))}\n </>\n </>\n )}\n\n {/* helper text below the animation */}\n {isTargetAchieved && (\n <Styled.BottomAbsoluteView top={GAME_LAUNCHER_SIZE}>\n <LottieAnimation src={LOTTIE.TARGET_ACHIEVED_TEXT} />\n </Styled.BottomAbsoluteView>\n )}\n {!isTargetAchieved && (\n <Styled.BottomAbsoluteView top={GAME_LAUNCHER_SIZE}>\n <Separator height={25} />\n <FlexView $flexDirection=\"column\" $alignItems=\"center\">\n <Styled.HelperTextPrimary\n $renderAs={\n GAME_LAUNCHER_SIZE === GAME_LAUNCHER_SIZE_LARGE ? 'ac3-black' : 'ac4-black'\n }\n $color=\"WHITE_T_60\"\n >\n {helperTextPrimary}\n <Separator height={GAME_LAUNCHER_SIZE * 0.03} />\n </Styled.HelperTextPrimary>\n <Styled.HelperTextSecondary\n $renderAs={GAME_LAUNCHER_SIZE === GAME_LAUNCHER_SIZE_LARGE ? 'ah4' : 'ab1'}\n $color=\"WHITE\"\n >\n {helperTextSecondary}\n </Styled.HelperTextSecondary>\n </FlexView>\n </Styled.BottomAbsoluteView>\n )}\n </Styled.DigitalMeter>\n );\n }\n\n return null;\n },\n);\n"],"names":["DigitalMeter","memo","show","value","maxValue","targetValue","displayText","progressType","helperTextPrimary","helperTextSecondary","onComplete","actAsTimer","isTargetAchieved","setIsTargetAchieved","useState","play","useCircleSounds","isTargetValueAchieved","useCallback","valueToCompare","useEffect","timer","timerForAnimationComplete","isTargetAchievedFlag","CircleSoundKey","TARGET_ACHIEVED_DELAY","TOTAL_ANIMATION_DURATION","jsxs","Styled.DigitalMeter","jsx","AnimatedArc","TOTAL_ARC_AVAILABLE","GAME_LAUNCHER_SIZE","GAME_LAUNCHER_SIZE_LARGE","BORDER_OFFSET","Styled.ContentContainer","FlexView","Styled.NumberCountContainer","Styled.RainboxColorText","NumberCountAnimation","PROGRESS_FILL_DURATION","PROGRESS_FILL_DELAY","Text","Separator","_","index","arcLength","Fragment","Styled.LineMarking","Styled.MarkingContainer","Styled.MarkingText","val","Styled.BottomAbsoluteView","LottieAnimation","LOTTIE","Styled.HelperTextPrimary","Styled.HelperTextSecondary"],"mappings":"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"}
|
@@ -0,0 +1,33 @@
|
|
1
|
+
import { keyframes as C } from "styled-components";
|
2
|
+
const a = (r, F, o, n) => {
|
3
|
+
const t = (n - 90) * (Math.PI / 180);
|
4
|
+
return {
|
5
|
+
x: r + o * Math.cos(t),
|
6
|
+
y: F + o * Math.sin(t)
|
7
|
+
};
|
8
|
+
}, $ = (r, F, o, n, t) => {
|
9
|
+
const e = n + t, s = a(r, F, o, n), c = a(r, F, o, e), l = t > 180 ? 1 : 0;
|
10
|
+
return `M ${s.x} ${s.y} A ${o} ${o} 0 ${l} 1 ${c.x} ${c.y}`;
|
11
|
+
}, k = C`
|
12
|
+
0% {
|
13
|
+
stroke: #FFB700;
|
14
|
+
color: #FFB700;
|
15
|
+
}
|
16
|
+
33% {
|
17
|
+
stroke: #FF884C;
|
18
|
+
color: #FF884C;
|
19
|
+
}
|
20
|
+
66% {
|
21
|
+
stroke: #FF80F4;
|
22
|
+
color: #FF80F4;
|
23
|
+
}
|
24
|
+
100% {
|
25
|
+
stroke: #33CCFF;
|
26
|
+
color: #33CCFF;
|
27
|
+
}
|
28
|
+
`;
|
29
|
+
export {
|
30
|
+
$ as describeArc,
|
31
|
+
k as rainbowColorAnimation
|
32
|
+
};
|
33
|
+
//# sourceMappingURL=helper.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"helper.js","sources":["../../../../src/features/post-game-stats/digital-meter/helper.ts"],"sourcesContent":["import { keyframes } from 'styled-components';\n\nconst polarToCartesian = (cx: number, cy: number, r: number, angleDeg: number) => {\n const angleRad = (angleDeg - 90) * (Math.PI / 180);\n\n return {\n x: cx + r * Math.cos(angleRad),\n y: cy + r * Math.sin(angleRad),\n };\n};\n\nexport const describeArc = (\n cx: number,\n cy: number,\n r: number,\n startAngle: number,\n sweepAngle: number,\n) => {\n const endAngle = startAngle + sweepAngle;\n const start = polarToCartesian(cx, cy, r, startAngle);\n const end = polarToCartesian(cx, cy, r, endAngle);\n const largeArcFlag = sweepAngle > 180 ? 1 : 0;\n\n return `M ${start.x} ${start.y} A ${r} ${r} 0 ${largeArcFlag} 1 ${end.x} ${end.y}`;\n};\n\nexport const rainbowColorAnimation = keyframes`\n 0% {\n stroke: #FFB700;\n color: #FFB700;\n }\n 33% {\n stroke: #FF884C;\n color: #FF884C;\n }\n 66% {\n stroke: #FF80F4;\n color: #FF80F4;\n }\n 100% {\n stroke: #33CCFF;\n color: #33CCFF;\n }\n`;\n"],"names":["polarToCartesian","cx","cy","r","angleDeg","angleRad","describeArc","startAngle","sweepAngle","endAngle","start","end","largeArcFlag","rainbowColorAnimation","keyframes"],"mappings":";AAEA,MAAMA,IAAmB,CAACC,GAAYC,GAAYC,GAAWC,MAAqB;AAChF,QAAMC,KAAYD,IAAW,OAAO,KAAK,KAAK;AAEvC,SAAA;AAAA,IACL,GAAGH,IAAKE,IAAI,KAAK,IAAIE,CAAQ;AAAA,IAC7B,GAAGH,IAAKC,IAAI,KAAK,IAAIE,CAAQ;AAAA,EAAA;AAEjC,GAEaC,IAAc,CACzBL,GACAC,GACAC,GACAI,GACAC,MACG;AACH,QAAMC,IAAWF,IAAaC,GACxBE,IAAQV,EAAiBC,GAAIC,GAAIC,GAAGI,CAAU,GAC9CI,IAAMX,EAAiBC,GAAIC,GAAIC,GAAGM,CAAQ,GAC1CG,IAAeJ,IAAa,MAAM,IAAI;AAE5C,SAAO,KAAKE,EAAM,CAAC,IAAIA,EAAM,CAAC,MAAMP,CAAC,IAAIA,CAAC,MAAMS,CAAY,MAAMD,EAAI,CAAC,IAAIA,EAAI,CAAC;AAClF,GAEaE,IAAwBC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
var c = /* @__PURE__ */ ((r) => (r.STREAK = "streak", r.ACCURACY = "accuracy", r.CLOCK = "clock", r.POINT = "point", r))(c || {});
|
1
|
+
var c = /* @__PURE__ */ ((r) => (r.STREAK = "streak", r.ACCURACY = "accuracy", r.CLOCK = "clock", r.POINT = "point", r.DIGITAL_METER = "digital-meter", r))(c || {});
|
2
2
|
export {
|
3
3
|
c as EPostGameStat
|
4
4
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"post-game-stats-enum.js","sources":["../../../../src/features/post-game-stats/enums/post-game-stats-enum.ts"],"sourcesContent":["export enum EPostGameStat {\n STREAK = 'streak',\n ACCURACY = 'accuracy',\n CLOCK = 'clock',\n POINT = 'point',\n}\n"],"names":["EPostGameStat"],"mappings":"AAAY,IAAAA,sBAAAA,OACVA,EAAA,SAAS,UACTA,EAAA,WAAW,YACXA,EAAA,QAAQ,SACRA,EAAA,QAAQ,
|
1
|
+
{"version":3,"file":"post-game-stats-enum.js","sources":["../../../../src/features/post-game-stats/enums/post-game-stats-enum.ts"],"sourcesContent":["export enum EPostGameStat {\n STREAK = 'streak',\n ACCURACY = 'accuracy',\n CLOCK = 'clock',\n POINT = 'point',\n DIGITAL_METER = 'digital-meter',\n}\n"],"names":["EPostGameStat"],"mappings":"AAAY,IAAAA,sBAAAA,OACVA,EAAA,SAAS,UACTA,EAAA,WAAW,YACXA,EAAA,QAAQ,SACRA,EAAA,QAAQ,SACRA,EAAA,gBAAgB,iBALNA,IAAAA,KAAA,CAAA,CAAA;"}
|
@@ -0,0 +1,27 @@
|
|
1
|
+
import { jsx as F } from "react/jsx-runtime";
|
2
|
+
import { useState as d, useEffect as h } from "react";
|
3
|
+
const q = ({
|
4
|
+
initialValue: t,
|
5
|
+
targetValue: o,
|
6
|
+
durationInSec: n = 0,
|
7
|
+
delayInSec: m = 0
|
8
|
+
}) => {
|
9
|
+
const [i, u] = d(t);
|
10
|
+
return h(() => {
|
11
|
+
let e, r;
|
12
|
+
const s = (a) => {
|
13
|
+
e || (e = a);
|
14
|
+
const p = a - e, c = Math.min(p / (n * 1e3), 1), A = Math.floor(t + (o - t) * c);
|
15
|
+
u(A), c < 1 && (r = requestAnimationFrame(s));
|
16
|
+
}, f = setTimeout(() => {
|
17
|
+
r = requestAnimationFrame(s);
|
18
|
+
}, m * 1e3);
|
19
|
+
return () => {
|
20
|
+
clearTimeout(f), cancelAnimationFrame(r);
|
21
|
+
};
|
22
|
+
}, [t, o, n, m]), /* @__PURE__ */ F("div", { children: i });
|
23
|
+
};
|
24
|
+
export {
|
25
|
+
q as NumberCountAnimation
|
26
|
+
};
|
27
|
+
//# sourceMappingURL=number-count-animation.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"number-count-animation.js","sources":["../../../../src/features/post-game-stats/number-count-animation/number-count-animation.tsx"],"sourcesContent":["import type { INumberCountAnimationProps } from './number-count-animation-types';\nimport type { FC } from 'react';\n\nimport { useEffect, useState } from 'react';\n\nexport const NumberCountAnimation: FC<INumberCountAnimationProps> = ({\n initialValue,\n targetValue,\n durationInSec = 0,\n delayInSec = 0,\n}) => {\n const [currentValue, setCurrentValue] = useState(initialValue);\n\n useEffect(() => {\n let startTimestamp: number;\n let animationFrameId: number;\n\n const animate = (timestamp: number) => {\n if (!startTimestamp) {\n startTimestamp = timestamp;\n }\n\n const elapsed = timestamp - startTimestamp;\n const progress = Math.min(elapsed / (durationInSec * 1000), 1);\n const value = Math.floor(initialValue + (targetValue - initialValue) * progress);\n\n setCurrentValue(value);\n\n if (progress < 1) {\n animationFrameId = requestAnimationFrame(animate);\n }\n };\n\n const timeoutId = setTimeout(() => {\n animationFrameId = requestAnimationFrame(animate);\n }, delayInSec * 1000);\n\n return () => {\n clearTimeout(timeoutId);\n cancelAnimationFrame(animationFrameId);\n };\n }, [initialValue, targetValue, durationInSec, delayInSec]);\n\n return <div>{currentValue}</div>;\n};\n"],"names":["NumberCountAnimation","initialValue","targetValue","durationInSec","delayInSec","currentValue","setCurrentValue","useState","useEffect","startTimestamp","animationFrameId","animate","timestamp","elapsed","progress","value","timeoutId","jsx"],"mappings":";;AAKO,MAAMA,IAAuD,CAAC;AAAA,EACnE,cAAAC;AAAA,EACA,aAAAC;AAAA,EACA,eAAAC,IAAgB;AAAA,EAChB,YAAAC,IAAa;AACf,MAAM;AACJ,QAAM,CAACC,GAAcC,CAAe,IAAIC,EAASN,CAAY;AAE7D,SAAAO,EAAU,MAAM;AACV,QAAAC,GACAC;AAEE,UAAAC,IAAU,CAACC,MAAsB;AACrC,MAAKH,MACcA,IAAAG;AAGnB,YAAMC,IAAUD,IAAYH,GACtBK,IAAW,KAAK,IAAID,KAAWV,IAAgB,MAAO,CAAC,GACvDY,IAAQ,KAAK,MAAMd,KAAgBC,IAAcD,KAAgBa,CAAQ;AAE/E,MAAAR,EAAgBS,CAAK,GAEjBD,IAAW,MACbJ,IAAmB,sBAAsBC,CAAO;AAAA,IAClD,GAGIK,IAAY,WAAW,MAAM;AACjC,MAAAN,IAAmB,sBAAsBC,CAAO;AAAA,IAAA,GAC/CP,IAAa,GAAI;AAEpB,WAAO,MAAM;AACX,mBAAaY,CAAS,GACtB,qBAAqBN,CAAgB;AAAA,IAAA;AAAA,KAEtC,CAACT,GAAcC,GAAaC,GAAeC,CAAU,CAAC,GAElD,gBAAAa,EAAC,SAAK,UAAaZ,EAAA,CAAA;AAC5B;"}
|
@@ -1,13 +1,16 @@
|
|
1
1
|
import { jsx as N } from "react/jsx-runtime";
|
2
2
|
import { memo as P, useEffect as T } from "react";
|
3
3
|
import { LOTTIE as o } from "../../../assets/lottie/lottie.js";
|
4
|
-
import { GAME_LAUNCHER_SIZE as
|
5
|
-
import { GAME_LAUNCHER_ASSET_PADDING as
|
4
|
+
import { GAME_LAUNCHER_SIZE as O } from "../../circle-games/game-launcher/comps/card-container/constants.js";
|
5
|
+
import { GAME_LAUNCHER_ASSET_PADDING as a, GAME_LAUNCHER_PROGRESS_RING_STROKE_WIDTH as c } from "../../circle-games/game-launcher/comps/segmented-game-card/constants.js";
|
6
6
|
import { useCircleSounds as f } from "../../circle-games/hooks/use-circle-sounds/use-circle-sounds.js";
|
7
7
|
import { CircleSoundKey as E } from "../../circle-games/hooks/use-circle-sounds/use-circle-sounds-enums.js";
|
8
8
|
import A from "../../ui/lottie-animation/lottie-animation.js";
|
9
9
|
const _ = {
|
10
10
|
point1: o.POINT1,
|
11
|
+
point2: o.POINT2,
|
12
|
+
point3: o.POINT3,
|
13
|
+
point4: o.POINT4,
|
11
14
|
point5: o.POINT5,
|
12
15
|
point10: o.POINT10,
|
13
16
|
point15: o.POINT15,
|
@@ -20,22 +23,24 @@ const _ = {
|
|
20
23
|
point50: o.POINT50,
|
21
24
|
point60: o.POINT60,
|
22
25
|
point100: o.POINT100
|
23
|
-
},
|
26
|
+
}, e = O + a - c, l = {
|
24
27
|
loop: !1,
|
25
28
|
autoplay: !0,
|
26
29
|
renderer: "canvas"
|
27
|
-
},
|
28
|
-
const { point: m = 0, onReveal: n, onComplete: i, show:
|
30
|
+
}, G = P((p) => {
|
31
|
+
const { point: m = 0, onReveal: n, onComplete: i, show: r } = p, { play: s } = f(), t = _[`point${m}`], I = {
|
29
32
|
name: "complete",
|
30
33
|
callback: i
|
31
34
|
};
|
32
35
|
return T(() => {
|
33
|
-
|
34
|
-
|
36
|
+
if (!t)
|
37
|
+
throw i(), new Error(`Animation path not found for ${t}`);
|
38
|
+
r && t && (n == null || n());
|
39
|
+
}, [t, i, n, r]), r && t ? /* @__PURE__ */ N(
|
35
40
|
A,
|
36
41
|
{
|
37
|
-
width:
|
38
|
-
height:
|
42
|
+
width: e,
|
43
|
+
height: e,
|
39
44
|
src: t,
|
40
45
|
settings: l,
|
41
46
|
eventListener: I,
|
@@ -44,6 +49,6 @@ const _ = {
|
|
44
49
|
) : null;
|
45
50
|
});
|
46
51
|
export {
|
47
|
-
|
52
|
+
G as Points
|
48
53
|
};
|
49
54
|
//# sourceMappingURL=points.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"points.js","sources":["../../../../src/features/post-game-stats/points/points.tsx"],"sourcesContent":["import type { IPointsProps } from './points-types';\nimport type { AnimationEventName } from 'lottie-web';\nimport type { FC } from 'react';\n\nimport { memo, useEffect } from 'react';\n\nimport { LOTTIE } from '../../../assets/lottie/lottie';\nimport { GAME_LAUNCHER_SIZE } from '../../circle-games/game-launcher/comps/card-container/constants';\nimport {\n GAME_LAUNCHER_ASSET_PADDING,\n GAME_LAUNCHER_PROGRESS_RING_STROKE_WIDTH,\n} from '../../circle-games/game-launcher/comps/segmented-game-card/constants';\nimport { useCircleSounds } from '../../circle-games/hooks/use-circle-sounds/use-circle-sounds';\nimport { CircleSoundKey } from '../../circle-games/hooks/use-circle-sounds/use-circle-sounds-enums';\nimport LottieAnimation from '../../ui/lottie-animation/lottie-animation';\n\nconst POINTS_MAP: Record<string, string> = {\n point1: LOTTIE.POINT1,\n point5: LOTTIE.POINT5,\n point10: LOTTIE.POINT10,\n point15: LOTTIE.POINT15,\n point20: LOTTIE.POINT20,\n point25: LOTTIE.POINT25,\n point30: LOTTIE.POINT30,\n point35: LOTTIE.POINT35,\n point40: LOTTIE.POINT40,\n point45: LOTTIE.POINT45,\n point50: LOTTIE.POINT50,\n point60: LOTTIE.POINT60,\n point100: LOTTIE.POINT100,\n};\nconst animationDimension =\n GAME_LAUNCHER_SIZE + GAME_LAUNCHER_ASSET_PADDING - GAME_LAUNCHER_PROGRESS_RING_STROKE_WIDTH;\nconst animationSettings = {\n loop: false,\n autoplay: true,\n renderer: 'canvas',\n};\n\nexport const Points: FC<IPointsProps> = memo(props => {\n const { point = 0, onReveal, onComplete, show } = props;\n\n const { play } = useCircleSounds();\n\n const animationPath = POINTS_MAP[`point${point}`];\n const animationEventListener = {\n name: 'complete' as AnimationEventName,\n callback: onComplete,\n };\n\n useEffect(() => {\n if (!animationPath) onComplete();\n\n if (show && animationPath) onReveal?.();\n }, [animationPath, onComplete, onReveal, show]);\n\n if (show && animationPath) {\n return (\n <LottieAnimation\n width={animationDimension}\n height={animationDimension}\n src={animationPath}\n settings={animationSettings}\n eventListener={animationEventListener}\n onRender={() => play(CircleSoundKey.POINTS_AWARDED)}\n />\n );\n }\n\n return null;\n});\n"],"names":["POINTS_MAP","LOTTIE","animationDimension","GAME_LAUNCHER_SIZE","GAME_LAUNCHER_ASSET_PADDING","GAME_LAUNCHER_PROGRESS_RING_STROKE_WIDTH","animationSettings","Points","memo","props","point","onReveal","onComplete","show","play","useCircleSounds","animationPath","animationEventListener","useEffect","jsx","LottieAnimation","CircleSoundKey"],"mappings":";;;;;;;;AAgBA,MAAMA,IAAqC;AAAA,EACzC,QAAQC,EAAO;AAAA,EACf,QAAQA,EAAO;AAAA,EACf,SAASA,EAAO;AAAA,EAChB,SAASA,EAAO;AAAA,EAChB,SAASA,EAAO;AAAA,EAChB,SAASA,EAAO;AAAA,EAChB,SAASA,EAAO;AAAA,EAChB,SAASA,EAAO;AAAA,EAChB,SAASA,EAAO;AAAA,EAChB,SAASA,EAAO;AAAA,EAChB,SAASA,EAAO;AAAA,EAChB,SAASA,EAAO;AAAA,EAChB,UAAUA,EAAO;AACnB,GACMC,IACJC,IAAqBC,IAA8BC,GAC/CC,IAAoB;AAAA,EACxB,MAAM;AAAA,EACN,UAAU;AAAA,EACV,UAAU;AACZ,GAEaC,IAA2BC,EAAK,CAASC,MAAA;AACpD,QAAM,EAAE,OAAAC,IAAQ,GAAG,UAAAC,GAAU,YAAAC,GAAY,MAAAC,EAAS,IAAAJ,GAE5C,EAAE,MAAAK,MAASC,KAEXC,IAAgBhB,EAAW,QAAQU,CAAK,EAAE,GAC1CO,IAAyB;AAAA,IAC7B,MAAM;AAAA,IACN,UAAUL;AAAA,EAAA;
|
1
|
+
{"version":3,"file":"points.js","sources":["../../../../src/features/post-game-stats/points/points.tsx"],"sourcesContent":["import type { IPointsProps } from './points-types';\nimport type { AnimationEventName } from 'lottie-web';\nimport type { FC } from 'react';\n\nimport { memo, useEffect } from 'react';\n\nimport { LOTTIE } from '../../../assets/lottie/lottie';\nimport { GAME_LAUNCHER_SIZE } from '../../circle-games/game-launcher/comps/card-container/constants';\nimport {\n GAME_LAUNCHER_ASSET_PADDING,\n GAME_LAUNCHER_PROGRESS_RING_STROKE_WIDTH,\n} from '../../circle-games/game-launcher/comps/segmented-game-card/constants';\nimport { useCircleSounds } from '../../circle-games/hooks/use-circle-sounds/use-circle-sounds';\nimport { CircleSoundKey } from '../../circle-games/hooks/use-circle-sounds/use-circle-sounds-enums';\nimport LottieAnimation from '../../ui/lottie-animation/lottie-animation';\n\nconst POINTS_MAP: Record<string, string> = {\n point1: LOTTIE.POINT1,\n point2: LOTTIE.POINT2,\n point3: LOTTIE.POINT3,\n point4: LOTTIE.POINT4,\n point5: LOTTIE.POINT5,\n point10: LOTTIE.POINT10,\n point15: LOTTIE.POINT15,\n point20: LOTTIE.POINT20,\n point25: LOTTIE.POINT25,\n point30: LOTTIE.POINT30,\n point35: LOTTIE.POINT35,\n point40: LOTTIE.POINT40,\n point45: LOTTIE.POINT45,\n point50: LOTTIE.POINT50,\n point60: LOTTIE.POINT60,\n point100: LOTTIE.POINT100,\n};\nconst animationDimension =\n GAME_LAUNCHER_SIZE + GAME_LAUNCHER_ASSET_PADDING - GAME_LAUNCHER_PROGRESS_RING_STROKE_WIDTH;\nconst animationSettings = {\n loop: false,\n autoplay: true,\n renderer: 'canvas',\n};\n\nexport const Points: FC<IPointsProps> = memo(props => {\n const { point = 0, onReveal, onComplete, show } = props;\n\n const { play } = useCircleSounds();\n\n const animationPath = POINTS_MAP[`point${point}`];\n const animationEventListener = {\n name: 'complete' as AnimationEventName,\n callback: onComplete,\n };\n\n useEffect(() => {\n if (!animationPath) {\n onComplete();\n throw new Error(`Animation path not found for ${animationPath}`);\n }\n\n if (show && animationPath) onReveal?.();\n }, [animationPath, onComplete, onReveal, show]);\n\n if (show && animationPath) {\n return (\n <LottieAnimation\n width={animationDimension}\n height={animationDimension}\n src={animationPath}\n settings={animationSettings}\n eventListener={animationEventListener}\n onRender={() => play(CircleSoundKey.POINTS_AWARDED)}\n />\n );\n }\n\n return null;\n});\n"],"names":["POINTS_MAP","LOTTIE","animationDimension","GAME_LAUNCHER_SIZE","GAME_LAUNCHER_ASSET_PADDING","GAME_LAUNCHER_PROGRESS_RING_STROKE_WIDTH","animationSettings","Points","memo","props","point","onReveal","onComplete","show","play","useCircleSounds","animationPath","animationEventListener","useEffect","jsx","LottieAnimation","CircleSoundKey"],"mappings":";;;;;;;;AAgBA,MAAMA,IAAqC;AAAA,EACzC,QAAQC,EAAO;AAAA,EACf,QAAQA,EAAO;AAAA,EACf,QAAQA,EAAO;AAAA,EACf,QAAQA,EAAO;AAAA,EACf,QAAQA,EAAO;AAAA,EACf,SAASA,EAAO;AAAA,EAChB,SAASA,EAAO;AAAA,EAChB,SAASA,EAAO;AAAA,EAChB,SAASA,EAAO;AAAA,EAChB,SAASA,EAAO;AAAA,EAChB,SAASA,EAAO;AAAA,EAChB,SAASA,EAAO;AAAA,EAChB,SAASA,EAAO;AAAA,EAChB,SAASA,EAAO;AAAA,EAChB,SAASA,EAAO;AAAA,EAChB,UAAUA,EAAO;AACnB,GACMC,IACJC,IAAqBC,IAA8BC,GAC/CC,IAAoB;AAAA,EACxB,MAAM;AAAA,EACN,UAAU;AAAA,EACV,UAAU;AACZ,GAEaC,IAA2BC,EAAK,CAASC,MAAA;AACpD,QAAM,EAAE,OAAAC,IAAQ,GAAG,UAAAC,GAAU,YAAAC,GAAY,MAAAC,EAAS,IAAAJ,GAE5C,EAAE,MAAAK,MAASC,KAEXC,IAAgBhB,EAAW,QAAQU,CAAK,EAAE,GAC1CO,IAAyB;AAAA,IAC7B,MAAM;AAAA,IACN,UAAUL;AAAA,EAAA;AAYZ,SATAM,EAAU,MAAM;AACd,QAAI,CAACF;AACQ,YAAAJ,KACL,IAAI,MAAM,gCAAgCI,CAAa,EAAE;AAG7D,IAAAH,KAAQG,MAA0BL,KAAA,QAAAA;AAAA,KACrC,CAACK,GAAeJ,GAAYD,GAAUE,CAAI,CAAC,GAE1CA,KAAQG,IAER,gBAAAG;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,OAAOlB;AAAA,MACP,QAAQA;AAAA,MACR,KAAKc;AAAA,MACL,UAAUV;AAAA,MACV,eAAeW;AAAA,MACf,UAAU,MAAMH,EAAKO,EAAe,cAAc;AAAA,IAAA;AAAA,EAAA,IAKjD;AACT,CAAC;"}
|
@@ -1,70 +1,92 @@
|
|
1
|
-
import {
|
2
|
-
import { memo as
|
3
|
-
import { Accuracy as
|
4
|
-
import { Clock as
|
1
|
+
import { jsx as n, jsxs as y } from "react/jsx-runtime";
|
2
|
+
import { memo as c, forwardRef as v, useState as d, useMemo as i, useCallback as a, useImperativeHandle as g } from "react";
|
3
|
+
import { Accuracy as C } from "./accuracy/accuracy.js";
|
4
|
+
import { Clock as A } from "./clock/clock.js";
|
5
|
+
import { DigitalMeter as I } from "./digital-meter/digital-meter.js";
|
5
6
|
import { EPostGameStat as p } from "./enums/post-game-stats-enum.js";
|
6
|
-
import { Points as
|
7
|
-
import { StatsWrapper as
|
8
|
-
import { Streak as
|
9
|
-
const
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
l == null || l();
|
7
|
+
import { Points as P } from "./points/points.js";
|
8
|
+
import { StatsWrapper as R, BlackBg as S } from "./post-game-stats-styled.js";
|
9
|
+
import { Streak as k } from "./streak/streak.js";
|
10
|
+
const K = c(
|
11
|
+
v(({ stats: o, show: s, onComplete: m }, f) => {
|
12
|
+
const [t, h] = d(0), e = i(() => o[t], [t, o]), u = a(() => {
|
13
|
+
var r;
|
14
|
+
if ((r = e == null ? void 0 : e.onComplete) == null || r.call(e), t === o.length - 1) {
|
15
|
+
m == null || m();
|
16
16
|
return;
|
17
17
|
}
|
18
|
-
|
19
|
-
}, [
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
18
|
+
h((T) => T + 1);
|
19
|
+
}, [t, m, o.length, e]), l = a(() => {
|
20
|
+
e != null && e.stopAtEnd || u();
|
21
|
+
}, [e, u]);
|
22
|
+
g(f, () => ({
|
23
|
+
moveToNextAndPlay: u
|
24
|
+
}));
|
25
|
+
const x = i(() => {
|
26
|
+
if (e) {
|
27
|
+
const r = `${e.type}-${t}`;
|
28
|
+
return e.type === p.POINT ? /* @__PURE__ */ n(
|
29
|
+
P,
|
30
|
+
{
|
31
|
+
point: e.value,
|
32
|
+
show: e.type === p.POINT,
|
33
|
+
onComplete: l,
|
34
|
+
onReveal: e.onReveal
|
35
|
+
},
|
36
|
+
r
|
37
|
+
) : e.type === p.DIGITAL_METER ? /* @__PURE__ */ n(
|
38
|
+
I,
|
39
|
+
{
|
40
|
+
value: e.value,
|
41
|
+
maxValue: e.maxValue ?? 1,
|
42
|
+
targetValue: e.targetValue,
|
43
|
+
displayText: e.displayText ?? "",
|
44
|
+
progressType: e.progressType ?? "linear",
|
45
|
+
helperTextPrimary: e.helperTextPrimary ?? "",
|
46
|
+
helperTextSecondary: e.helperTextSecondary ?? "",
|
47
|
+
show: !0,
|
48
|
+
onComplete: l
|
49
|
+
},
|
50
|
+
r
|
51
|
+
) : e.type === p.STREAK ? /* @__PURE__ */ n(
|
52
|
+
k,
|
53
|
+
{
|
54
|
+
currStreak: e.value,
|
55
|
+
show: !0,
|
56
|
+
onComplete: l,
|
57
|
+
helperText: e.helperText,
|
58
|
+
onReveal: e.onReveal
|
59
|
+
},
|
60
|
+
r
|
61
|
+
) : e.type === p.ACCURACY ? /* @__PURE__ */ n(
|
62
|
+
C,
|
63
|
+
{
|
64
|
+
accuracy: e.value,
|
65
|
+
show: !0,
|
66
|
+
onComplete: l,
|
67
|
+
helperText: e.helperText
|
68
|
+
},
|
69
|
+
r
|
70
|
+
) : e.type === p.CLOCK ? /* @__PURE__ */ n(
|
71
|
+
A,
|
72
|
+
{
|
73
|
+
timeInMs: e.value,
|
74
|
+
show: !0,
|
75
|
+
onComplete: l,
|
76
|
+
helperText: e.helperText
|
77
|
+
},
|
78
|
+
r
|
79
|
+
) : null;
|
80
|
+
}
|
81
|
+
return null;
|
82
|
+
}, [e, l, t]);
|
83
|
+
return !s || o.length === 0 || t >= o.length ? null : /* @__PURE__ */ y(R, { children: [
|
84
|
+
/* @__PURE__ */ n(S, {}),
|
85
|
+
x
|
64
86
|
] });
|
65
87
|
})
|
66
88
|
);
|
67
89
|
export {
|
68
|
-
|
90
|
+
K as PostGameStats
|
69
91
|
};
|
70
92
|
//# sourceMappingURL=post-game-stats.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"post-game-stats.js","sources":["../../../src/features/post-game-stats/post-game-stats.tsx"],"sourcesContent":["import type { IPostGameStatsProps, IPostGameStatsRef } from './post-game-stats-types';\n\nimport { useState, memo, useCallback, forwardRef, useImperativeHandle } from 'react';\n\nimport { Accuracy } from './accuracy/accuracy';\nimport { Clock } from './clock/clock';\nimport { EPostGameStat } from './enums/post-game-stats-enum';\nimport { Points } from './points/points';\nimport * as Styled from './post-game-stats-styled';\nimport { Streak } from './streak/streak';\n\nexport const PostGameStats = memo(\n forwardRef<IPostGameStatsRef, IPostGameStatsProps>(({ stats, show, onComplete }, ref) => {\n const [currStatIndex, setCurrentStatIndex] = useState(0);\n\n const moveToNextAndPlay = useCallback(() => {\n
|
1
|
+
{"version":3,"file":"post-game-stats.js","sources":["../../../src/features/post-game-stats/post-game-stats.tsx"],"sourcesContent":["import type { IPostGameStatsProps, IPostGameStatsRef } from './post-game-stats-types';\n\nimport { useState, memo, useCallback, forwardRef, useImperativeHandle, useMemo } from 'react';\n\nimport { Accuracy } from './accuracy/accuracy';\nimport { Clock } from './clock/clock';\nimport { DigitalMeter } from './digital-meter/digital-meter';\nimport { EPostGameStat } from './enums/post-game-stats-enum';\nimport { Points } from './points/points';\nimport * as Styled from './post-game-stats-styled';\nimport { Streak } from './streak/streak';\n\nexport const PostGameStats = memo(\n forwardRef<IPostGameStatsRef, IPostGameStatsProps>(({ stats, show, onComplete }, ref) => {\n const [currStatIndex, setCurrentStatIndex] = useState(0);\n const currStatData = useMemo(() => stats[currStatIndex], [currStatIndex, stats]);\n\n const moveToNextAndPlay = useCallback(() => {\n currStatData?.onComplete?.();\n\n if (currStatIndex === stats.length - 1) {\n onComplete?.();\n\n return;\n }\n setCurrentStatIndex(prev => prev + 1);\n }, [currStatIndex, onComplete, stats.length, currStatData]);\n\n const onStatAnimationComplete = useCallback(() => {\n if (currStatData?.stopAtEnd) {\n return;\n }\n moveToNextAndPlay(); // Autoplay since stopAtEnd is false\n }, [currStatData, moveToNextAndPlay]);\n\n useImperativeHandle(ref, () => ({\n moveToNextAndPlay,\n }));\n\n const currentStat = useMemo(() => {\n if (currStatData) {\n const key = `${currStatData.type}-${currStatIndex}`;\n\n if (currStatData.type === EPostGameStat.POINT) {\n return (\n <Points\n key={key}\n point={currStatData.value}\n show={currStatData.type === EPostGameStat.POINT}\n onComplete={onStatAnimationComplete}\n onReveal={currStatData.onReveal}\n />\n );\n }\n\n if (currStatData.type === EPostGameStat.DIGITAL_METER) {\n return (\n <DigitalMeter\n key={key}\n value={currStatData.value}\n maxValue={currStatData.maxValue ?? 1}\n targetValue={currStatData.targetValue}\n displayText={currStatData.displayText ?? ''}\n progressType={currStatData.progressType ?? 'linear'}\n helperTextPrimary={currStatData.helperTextPrimary ?? ''}\n helperTextSecondary={currStatData.helperTextSecondary ?? ''}\n show={true}\n onComplete={onStatAnimationComplete}\n />\n );\n }\n\n if (currStatData.type === EPostGameStat.STREAK) {\n return (\n <Streak\n key={key}\n currStreak={currStatData.value}\n show={true}\n onComplete={onStatAnimationComplete}\n helperText={currStatData.helperText}\n onReveal={currStatData.onReveal}\n />\n );\n }\n\n if (currStatData.type === EPostGameStat.ACCURACY) {\n return (\n <Accuracy\n key={key}\n accuracy={currStatData.value}\n show={true}\n onComplete={onStatAnimationComplete}\n helperText={currStatData.helperText}\n />\n );\n }\n\n if (currStatData.type === EPostGameStat.CLOCK) {\n return (\n <Clock\n key={key}\n timeInMs={currStatData.value}\n show={true}\n onComplete={onStatAnimationComplete}\n helperText={currStatData.helperText}\n />\n );\n }\n\n return null;\n }\n\n return null;\n }, [currStatData, onStatAnimationComplete, currStatIndex]);\n\n if (!show || stats.length === 0 || currStatIndex >= stats.length) {\n return null;\n }\n\n return (\n <Styled.StatsWrapper>\n <Styled.BlackBg />\n\n {currentStat}\n </Styled.StatsWrapper>\n );\n }),\n);\n"],"names":["PostGameStats","memo","forwardRef","stats","show","onComplete","ref","currStatIndex","setCurrentStatIndex","useState","currStatData","useMemo","moveToNextAndPlay","useCallback","_a","prev","onStatAnimationComplete","useImperativeHandle","currentStat","key","EPostGameStat","jsx","Points","DigitalMeter","Streak","Accuracy","Clock","jsxs","Styled.StatsWrapper","Styled.BlackBg"],"mappings":";;;;;;;;;AAYO,MAAMA,IAAgBC;AAAA,EAC3BC,EAAmD,CAAC,EAAE,OAAAC,GAAO,MAAAC,GAAM,YAAAC,EAAA,GAAcC,MAAQ;AACvF,UAAM,CAACC,GAAeC,CAAmB,IAAIC,EAAS,CAAC,GACjDC,IAAeC,EAAQ,MAAMR,EAAMI,CAAa,GAAG,CAACA,GAAeJ,CAAK,CAAC,GAEzES,IAAoBC,EAAY,MAAM;;AAGtC,WAFJC,IAAAJ,KAAA,gBAAAA,EAAc,eAAd,QAAAI,EAAA,KAAAJ,IAEIH,MAAkBJ,EAAM,SAAS,GAAG;AACzB,QAAAE,KAAA,QAAAA;AAEb;AAAA,MACF;AACoB,MAAAG,EAAA,CAAAO,MAAQA,IAAO,CAAC;AAAA,IAAA,GACnC,CAACR,GAAeF,GAAYF,EAAM,QAAQO,CAAY,CAAC,GAEpDM,IAA0BH,EAAY,MAAM;AAChD,MAAIH,KAAA,QAAAA,EAAc,aAGAE;IAAA,GACjB,CAACF,GAAcE,CAAiB,CAAC;AAEpC,IAAAK,EAAoBX,GAAK,OAAO;AAAA,MAC9B,mBAAAM;AAAA,IACA,EAAA;AAEI,UAAAM,IAAcP,EAAQ,MAAM;AAChC,UAAID,GAAc;AAChB,cAAMS,IAAM,GAAGT,EAAa,IAAI,IAAIH,CAAa;AAE7C,eAAAG,EAAa,SAASU,EAAc,QAEpC,gBAAAC;AAAA,UAACC;AAAA,UAAA;AAAA,YAEC,OAAOZ,EAAa;AAAA,YACpB,MAAMA,EAAa,SAASU,EAAc;AAAA,YAC1C,YAAYJ;AAAA,YACZ,UAAUN,EAAa;AAAA,UAAA;AAAA,UAJlBS;AAAA,QAAA,IASPT,EAAa,SAASU,EAAc,gBAEpC,gBAAAC;AAAA,UAACE;AAAA,UAAA;AAAA,YAEC,OAAOb,EAAa;AAAA,YACpB,UAAUA,EAAa,YAAY;AAAA,YACnC,aAAaA,EAAa;AAAA,YAC1B,aAAaA,EAAa,eAAe;AAAA,YACzC,cAAcA,EAAa,gBAAgB;AAAA,YAC3C,mBAAmBA,EAAa,qBAAqB;AAAA,YACrD,qBAAqBA,EAAa,uBAAuB;AAAA,YACzD,MAAM;AAAA,YACN,YAAYM;AAAA,UAAA;AAAA,UATPG;AAAA,QAAA,IAcPT,EAAa,SAASU,EAAc,SAEpC,gBAAAC;AAAA,UAACG;AAAA,UAAA;AAAA,YAEC,YAAYd,EAAa;AAAA,YACzB,MAAM;AAAA,YACN,YAAYM;AAAA,YACZ,YAAYN,EAAa;AAAA,YACzB,UAAUA,EAAa;AAAA,UAAA;AAAA,UALlBS;AAAA,QAAA,IAUPT,EAAa,SAASU,EAAc,WAEpC,gBAAAC;AAAA,UAACI;AAAA,UAAA;AAAA,YAEC,UAAUf,EAAa;AAAA,YACvB,MAAM;AAAA,YACN,YAAYM;AAAA,YACZ,YAAYN,EAAa;AAAA,UAAA;AAAA,UAJpBS;AAAA,QAAA,IASPT,EAAa,SAASU,EAAc,QAEpC,gBAAAC;AAAA,UAACK;AAAA,UAAA;AAAA,YAEC,UAAUhB,EAAa;AAAA,YACvB,MAAM;AAAA,YACN,YAAYM;AAAA,YACZ,YAAYN,EAAa;AAAA,UAAA;AAAA,UAJpBS;AAAA,QAAA,IASJ;AAAA,MACT;AAEO,aAAA;AAAA,IACN,GAAA,CAACT,GAAcM,GAAyBT,CAAa,CAAC;AAEzD,WAAI,CAACH,KAAQD,EAAM,WAAW,KAAKI,KAAiBJ,EAAM,SACjD,OAIP,gBAAAwB,EAACC,GAAA,EACC,UAAA;AAAA,MAAC,gBAAAP,EAAAQ,GAAA,EAAe;AAAA,MAEfX;AAAA,IACH,EAAA,CAAA;AAAA,EAAA,CAEH;AACH;"}
|