@cuemath/leap 3.5.5 → 3.5.6-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.
- package/dist/assets/illustrations/illustrations.js +0 -1
- package/dist/assets/illustrations/illustrations.js.map +1 -1
- package/dist/assets/line-icons/icons/info3.js +7 -10
- package/dist/assets/line-icons/icons/info3.js.map +1 -1
- package/dist/assets/line-icons/icons/solution.js +5 -7
- package/dist/assets/line-icons/icons/solution.js.map +1 -1
- package/dist/assets/line-icons/icons/sticker.js +7 -11
- package/dist/assets/line-icons/icons/sticker.js.map +1 -1
- package/dist/assets/lottie/lottie.js +0 -1
- package/dist/assets/lottie/lottie.js.map +1 -1
- package/dist/features/circle-games/sign-up/comp/circular-steps/circular-steps.js.map +1 -1
- package/dist/features/circle-games/sign-up/helper.js +3 -17
- package/dist/features/circle-games/sign-up/helper.js.map +1 -1
- package/dist/features/circle-games/sign-up/sign-up-styled.js +21 -25
- package/dist/features/circle-games/sign-up/sign-up-styled.js.map +1 -1
- package/dist/features/circle-games/sign-up/sign-up-types.js.map +1 -1
- package/dist/features/circle-games/sign-up/sign-up.js +112 -143
- package/dist/features/circle-games/sign-up/sign-up.js.map +1 -1
- package/dist/features/trial-session/comps/navigation-bar/index.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-sidebar/worksheet-sidebar-styled.js +16 -16
- package/dist/features/worksheet/worksheet/worksheet-sidebar/worksheet-sidebar-styled.js.map +1 -1
- package/dist/index.d.ts +24 -32
- package/dist/index.js +276 -278
- package/dist/index.js.map +1 -1
- package/package.json +3 -2
- package/dist/features/circle-games/sign-up/comp/splash-screen/splash-screen-styled.js +0 -70
- package/dist/features/circle-games/sign-up/comp/splash-screen/splash-screen-styled.js.map +0 -1
- package/dist/features/circle-games/sign-up/comp/splash-screen/splash-screen.js +0 -60
- package/dist/features/circle-games/sign-up/comp/splash-screen/splash-screen.js.map +0 -1
- package/dist/static/circle-outercircle-bg.65f21460.svg +0 -1
- package/dist/static/splash-screen.bbf567ce.json +0 -2411
|
@@ -1,122 +1,92 @@
|
|
|
1
|
-
import { jsx as r, jsxs as
|
|
2
|
-
import { useState as
|
|
3
|
-
import { ILLUSTRATIONS as
|
|
1
|
+
import { jsx as r, jsxs as o, Fragment as O } from "react/jsx-runtime";
|
|
2
|
+
import { useState as p, useRef as Q, useCallback as X, useEffect as Z } from "react";
|
|
3
|
+
import { ILLUSTRATIONS as E } from "../../../assets/illustrations/illustrations.js";
|
|
4
4
|
import R from "../../ui/image/image.js";
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import { CircularSteps as
|
|
9
|
-
import { GradeInputBox as
|
|
10
|
-
import { Spinner as
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
onUpdateUser: B,
|
|
33
|
-
onSignupStepsComplete: X,
|
|
34
|
-
isPLAStudent: c
|
|
5
|
+
import P from "../../ui/layout/flex-view.js";
|
|
6
|
+
import ee from "../../ui/separator/separator.js";
|
|
7
|
+
import m from "../../ui/text/text.js";
|
|
8
|
+
import { CircularSteps as re } from "./comp/circular-steps/circular-steps.js";
|
|
9
|
+
import { GradeInputBox as te, SelectUserGrade as ne } from "./comp/select-user-grade/select-user-grade.js";
|
|
10
|
+
import { Spinner as oe } from "./comp/spinner/spinner.js";
|
|
11
|
+
import { ErrorMessage as T } from "./comp/username-input/constants.js";
|
|
12
|
+
import { UsernameInput as se } from "./comp/username-input/username-input.js";
|
|
13
|
+
import { GRADES as D, CONTAINER_WIDTH as le, CONTAINER_HEIGHT as ie } from "./constants.js";
|
|
14
|
+
import { useCreateUserDal as ae } from "./dal/create-user-dal/create-user-dal.js";
|
|
15
|
+
import { useUpdateUserDal as ce } from "./dal/update-user-dal/update-user-dal.js";
|
|
16
|
+
import { useUpdateUsernameDal as ue } from "./dal/update-username-dal/update-username-dal.js";
|
|
17
|
+
import { getTrialScreenUsername as pe } from "./helper.js";
|
|
18
|
+
import { BottomButtonContainer as H, SignupBtn as q, SmileyImage as me, ThemeText as de, BackgroundOverlay as he, SignUpWrapper as fe, SignUpContainer as Se } from "./sign-up-styled.js";
|
|
19
|
+
const $e = ({
|
|
20
|
+
circleOnLeapPremiumDays: I,
|
|
21
|
+
circleUsername: s,
|
|
22
|
+
countryCode: N,
|
|
23
|
+
grade: M,
|
|
24
|
+
state: F,
|
|
25
|
+
circleOnLeapPremiumEnabled: g,
|
|
26
|
+
studentId: d,
|
|
27
|
+
isSignUpProcessing: y,
|
|
28
|
+
onCreateUser: G,
|
|
29
|
+
onUpdateUser: U,
|
|
30
|
+
onSignupStepsComplete: K,
|
|
31
|
+
isPLAStudent: i
|
|
35
32
|
}) => {
|
|
36
|
-
const [
|
|
37
|
-
|
|
38
|
-
), [f,
|
|
39
|
-
|
|
40
|
-
},
|
|
41
|
-
|
|
42
|
-
},
|
|
43
|
-
|
|
44
|
-
}, { createUser:
|
|
45
|
-
O(!0), setTimeout(() => {
|
|
46
|
-
W(!0);
|
|
47
|
-
}, 500);
|
|
48
|
-
}, re = async (e) => {
|
|
33
|
+
const [Y, C] = p(0), [n, a] = p(s), [h, c] = p(""), [t, _] = p(
|
|
34
|
+
D.find((e) => e.key === M) ?? null
|
|
35
|
+
), [f, l] = p(!1), k = pe(F), S = Q(null), j = (e) => {
|
|
36
|
+
l(!1), e ? (S.current = e, a(e.username), G && G(e), u()) : c(T.SOMETHING_WENT_WRONG);
|
|
37
|
+
}, L = (e) => {
|
|
38
|
+
l(!1), e ? (S.current = e, a(e.username), U && U(e), u()) : c(T.SOMETHING_WENT_WRONG);
|
|
39
|
+
}, V = (e) => {
|
|
40
|
+
l(!1), e ? (a(e.username), S.current = e, u()) : c(T.SOMETHING_WENT_WRONG);
|
|
41
|
+
}, { createUser: w } = ae(j), { updateUser: b } = ce(L), { updateUsername: x } = ue(V), v = async (e) => {
|
|
49
42
|
_(e);
|
|
50
|
-
},
|
|
51
|
-
if (
|
|
52
|
-
if (
|
|
53
|
-
|
|
43
|
+
}, z = X(async () => {
|
|
44
|
+
if (l(!0), h === "") {
|
|
45
|
+
if (i && n) {
|
|
46
|
+
x({
|
|
54
47
|
username: n,
|
|
55
|
-
studentId:
|
|
48
|
+
studentId: d
|
|
56
49
|
});
|
|
57
50
|
return;
|
|
58
51
|
}
|
|
59
|
-
|
|
60
|
-
circleOnLeapPremiumEnabled:
|
|
52
|
+
s === "" || s === void 0 || s === null ? w({
|
|
53
|
+
circleOnLeapPremiumEnabled: g,
|
|
61
54
|
grade: (t == null ? void 0 : t.key) || "",
|
|
62
55
|
username: n,
|
|
63
|
-
countryCode:
|
|
64
|
-
studentId:
|
|
65
|
-
}) :
|
|
66
|
-
circleOnLeapPremiumEnabled:
|
|
56
|
+
countryCode: N,
|
|
57
|
+
studentId: d
|
|
58
|
+
}) : b({
|
|
59
|
+
circleOnLeapPremiumEnabled: g,
|
|
67
60
|
grade: (t == null ? void 0 : t.key) || "",
|
|
68
61
|
username: n,
|
|
69
|
-
studentId:
|
|
62
|
+
studentId: d
|
|
70
63
|
});
|
|
71
64
|
}
|
|
72
65
|
}, [
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
66
|
+
g,
|
|
67
|
+
s,
|
|
68
|
+
N,
|
|
69
|
+
w,
|
|
77
70
|
h,
|
|
78
71
|
t == null ? void 0 : t.key,
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
72
|
+
i,
|
|
73
|
+
d,
|
|
74
|
+
b,
|
|
75
|
+
x,
|
|
83
76
|
n
|
|
84
|
-
]),
|
|
85
|
-
|
|
86
|
-
},
|
|
87
|
-
f ||
|
|
88
|
-
},
|
|
77
|
+
]), u = () => {
|
|
78
|
+
C((e) => e === $.steps.length - 1 ? (K(S.current), e) : e + 1);
|
|
79
|
+
}, A = () => {
|
|
80
|
+
f || C((e) => e === 0 ? e : e - 1);
|
|
81
|
+
}, J = {
|
|
89
82
|
id: "step-0",
|
|
90
|
-
label: null,
|
|
91
|
-
custEle: null,
|
|
92
|
-
custEleInsideStep: null,
|
|
93
|
-
background: /* @__PURE__ */ r(me, { animationCompleted: ee }),
|
|
94
|
-
custEleBelowStep: /* @__PURE__ */ s(b, { paddingX: y && C ? 1 : 2.5, children: [
|
|
95
|
-
J && /* @__PURE__ */ r(xe, { $renderAs: "ab2", $color: "WHITE", $align: "center", children: Ie({ state: G, circleEnrolledUser: C, mathGymEnrolledUser: y }) }),
|
|
96
|
-
z && /* @__PURE__ */ r(
|
|
97
|
-
N,
|
|
98
|
-
{
|
|
99
|
-
label: "Let’s start",
|
|
100
|
-
renderAs: "secondary",
|
|
101
|
-
marginTop: 24,
|
|
102
|
-
width: 144,
|
|
103
|
-
isVisible: !0,
|
|
104
|
-
onClick: () => {
|
|
105
|
-
a(), O(!1), W(!1);
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
)
|
|
109
|
-
] }),
|
|
110
|
-
isProgressAnimationRequired: !1
|
|
111
|
-
}, ne = {
|
|
112
|
-
id: "step-1",
|
|
113
83
|
label: "What’s your school grade?",
|
|
114
84
|
custEle: null,
|
|
115
|
-
custEleInsideStep: /* @__PURE__ */ r(
|
|
85
|
+
custEleInsideStep: /* @__PURE__ */ r(te, { gradeInfo: t, showSpinner: f }),
|
|
116
86
|
background: /* @__PURE__ */ r(
|
|
117
87
|
R,
|
|
118
88
|
{
|
|
119
|
-
src:
|
|
89
|
+
src: E.GRADE_GRID_BACKGROUND,
|
|
120
90
|
height: "100%",
|
|
121
91
|
width: "100%",
|
|
122
92
|
withLoader: !1,
|
|
@@ -124,117 +94,116 @@ const Xe = ({
|
|
|
124
94
|
}
|
|
125
95
|
),
|
|
126
96
|
custEleBelowStep: /* @__PURE__ */ r(
|
|
127
|
-
|
|
97
|
+
ne,
|
|
128
98
|
{
|
|
129
|
-
grades:
|
|
99
|
+
grades: D,
|
|
130
100
|
selected: (t == null ? void 0 : t.key) || null,
|
|
131
|
-
onSelect: (e) =>
|
|
132
|
-
onNext:
|
|
101
|
+
onSelect: (e) => v(e),
|
|
102
|
+
onNext: u
|
|
133
103
|
}
|
|
134
104
|
),
|
|
135
|
-
onBack: T,
|
|
136
105
|
isProgressAnimationRequired: !0
|
|
137
|
-
},
|
|
138
|
-
id: "step-
|
|
139
|
-
label:
|
|
106
|
+
}, W = {
|
|
107
|
+
id: "step-1",
|
|
108
|
+
label: i ? `Create a unique username
|
|
140
109
|
for your child` : "Claim your unique alias",
|
|
141
110
|
custEle: null,
|
|
142
111
|
custEleInsideStep: /* @__PURE__ */ r(
|
|
143
|
-
|
|
112
|
+
se,
|
|
144
113
|
{
|
|
145
114
|
username: n,
|
|
146
|
-
circleUsername:
|
|
115
|
+
circleUsername: s,
|
|
147
116
|
isEdit: !1,
|
|
148
117
|
error: h,
|
|
149
|
-
setError:
|
|
118
|
+
setError: c,
|
|
150
119
|
showSpinner: f,
|
|
151
|
-
setShowSpinner:
|
|
152
|
-
setUsername:
|
|
120
|
+
setShowSpinner: l,
|
|
121
|
+
setUsername: a
|
|
153
122
|
}
|
|
154
123
|
),
|
|
155
124
|
background: /* @__PURE__ */ r(
|
|
156
125
|
R,
|
|
157
126
|
{
|
|
158
|
-
src:
|
|
127
|
+
src: E.USER_PROFILE_BACKGROUND,
|
|
159
128
|
height: "100%",
|
|
160
129
|
width: "100%",
|
|
161
130
|
withLoader: !1,
|
|
162
131
|
alt: "play"
|
|
163
132
|
}
|
|
164
133
|
),
|
|
165
|
-
custEleBelowStep: /* @__PURE__ */ r(
|
|
166
|
-
|
|
134
|
+
custEleBelowStep: /* @__PURE__ */ r(H, { children: n !== "" && /* @__PURE__ */ r(
|
|
135
|
+
q,
|
|
167
136
|
{
|
|
168
137
|
label: "Next",
|
|
169
138
|
disabled: f || h !== "",
|
|
170
139
|
renderAs: "secondary",
|
|
171
|
-
onClick: () =>
|
|
140
|
+
onClick: () => z(),
|
|
172
141
|
marginTop: 88
|
|
173
142
|
}
|
|
174
143
|
) }),
|
|
175
|
-
onBack:
|
|
144
|
+
onBack: A,
|
|
176
145
|
isProgressAnimationRequired: !0
|
|
177
|
-
},
|
|
178
|
-
id: "step-
|
|
146
|
+
}, B = {
|
|
147
|
+
id: "step-2",
|
|
179
148
|
label: null,
|
|
180
149
|
custEle: null,
|
|
181
|
-
custEleInsideStep: /* @__PURE__ */ r(
|
|
150
|
+
custEleInsideStep: /* @__PURE__ */ r(me, { src: E.SMILEY, height: "100%", width: "100%", alt: "play" }),
|
|
182
151
|
background: /* @__PURE__ */ r(
|
|
183
152
|
R,
|
|
184
153
|
{
|
|
185
|
-
src:
|
|
154
|
+
src: E.USER_CROWN_GRID_BACKGROUND,
|
|
186
155
|
height: "100%",
|
|
187
156
|
width: "100%",
|
|
188
157
|
withLoader: !1,
|
|
189
158
|
alt: "play"
|
|
190
159
|
}
|
|
191
160
|
),
|
|
192
|
-
custEleBelowStep: /* @__PURE__ */
|
|
193
|
-
|
|
194
|
-
/* @__PURE__ */ r(
|
|
195
|
-
/* @__PURE__ */ r(
|
|
196
|
-
/* @__PURE__ */
|
|
161
|
+
custEleBelowStep: /* @__PURE__ */ o(H, { children: [
|
|
162
|
+
i ? /* @__PURE__ */ o(P, { children: [
|
|
163
|
+
/* @__PURE__ */ r(m, { $renderAs: "ac4-black", $align: "center", $color: "GREEN_4", children: "Premium access unlocked!" }),
|
|
164
|
+
/* @__PURE__ */ r(ee, { height: 12 }),
|
|
165
|
+
/* @__PURE__ */ o(m, { $renderAs: "ub2", $color: "WHITE", $align: "center", children: [
|
|
197
166
|
"Your child can directly login to leap.cuemath.com using “",
|
|
198
|
-
/* @__PURE__ */ r(
|
|
167
|
+
/* @__PURE__ */ r(m, { $color: "GREEN_4", $renderAs: "ub2", $inline: !0, children: n }),
|
|
199
168
|
"” as both username and password."
|
|
200
169
|
] })
|
|
201
|
-
] }) : /* @__PURE__ */
|
|
202
|
-
/* @__PURE__ */
|
|
203
|
-
|
|
204
|
-
|
|
170
|
+
] }) : /* @__PURE__ */ o(O, { children: [
|
|
171
|
+
/* @__PURE__ */ o(m, { $renderAs: "ab1", $color: "WHITE", children: [
|
|
172
|
+
k.primaryText,
|
|
173
|
+
I && /* @__PURE__ */ o(de, { children: [
|
|
205
174
|
" ",
|
|
206
|
-
|
|
175
|
+
I,
|
|
207
176
|
" days of FREE"
|
|
208
177
|
] })
|
|
209
178
|
] }),
|
|
210
|
-
/* @__PURE__ */ r(
|
|
179
|
+
/* @__PURE__ */ r(m, { $renderAs: "ab1", $color: "WHITE", children: k.secondaryText })
|
|
211
180
|
] }),
|
|
212
|
-
|
|
213
|
-
|
|
181
|
+
y ? /* @__PURE__ */ r(oe, { marginY: 24 }) : /* @__PURE__ */ r(
|
|
182
|
+
q,
|
|
214
183
|
{
|
|
215
184
|
label: "Woohoo! Let me in!",
|
|
216
185
|
renderAs: "secondary",
|
|
217
186
|
marginTop: 24,
|
|
218
187
|
width: 250,
|
|
219
|
-
onClick: () =>
|
|
188
|
+
onClick: () => u()
|
|
220
189
|
}
|
|
221
190
|
)
|
|
222
191
|
] }),
|
|
223
|
-
onBack:
|
|
192
|
+
onBack: y ? void 0 : A,
|
|
224
193
|
isProgressAnimationRequired: !0
|
|
225
|
-
},
|
|
226
|
-
steps:
|
|
194
|
+
}, $ = {
|
|
195
|
+
steps: i ? [W, B] : [J, W, B],
|
|
227
196
|
currentStepIndex: 0,
|
|
228
|
-
dimensions: { width:
|
|
197
|
+
dimensions: { width: le, height: ie }
|
|
229
198
|
};
|
|
230
|
-
return
|
|
231
|
-
|
|
232
|
-
}, []), /* @__PURE__ */
|
|
233
|
-
/* @__PURE__ */ r(
|
|
234
|
-
/* @__PURE__ */ r(
|
|
199
|
+
return Z(() => () => {
|
|
200
|
+
l(!1), a(""), _(null), c("");
|
|
201
|
+
}, []), /* @__PURE__ */ o(O, { children: [
|
|
202
|
+
/* @__PURE__ */ r(he, {}),
|
|
203
|
+
/* @__PURE__ */ r(fe, { children: /* @__PURE__ */ r(Se, { children: /* @__PURE__ */ r(re, { ...$, currentStepIndex: Y }) }) })
|
|
235
204
|
] });
|
|
236
205
|
};
|
|
237
206
|
export {
|
|
238
|
-
|
|
207
|
+
$e as SignUp
|
|
239
208
|
};
|
|
240
209
|
//# sourceMappingURL=sign-up.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sign-up.js","sources":["../../../../src/features/circle-games/sign-up/sign-up.tsx"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from 'react';\n\nimport { ILLUSTRATIONS } from '../../../assets/illustrations/illustrations';\nimport Image from '../../ui/image/image';\nimport FlexView from '../../ui/layout/flex-view';\nimport Separator from '../../ui/separator/separator';\nimport Text from '../../ui/text/text';\nimport type { IUpdateUsernameResponse } from './api/use-update-username-api/use-update-username-api-types';\nimport { CircularSteps } from './comp/circular-steps/circular-steps';\nimport type {\n ICircularSteps,\n ICircularStepsProps,\n} from './comp/circular-steps/circular-steps-types';\nimport type { Grade } from './comp/grade-input/grade-input-types';\nimport { GradeInputBox, SelectUserGrade } from './comp/select-user-grade/select-user-grade';\nimport { Spinner } from './comp/spinner/spinner';\nimport { SplashScreen } from './comp/splash-screen/splash-screen';\nimport { ErrorMessage } from './comp/username-input/constants';\nimport { UsernameInput } from './comp/username-input/username-input';\nimport { CONTAINER_HEIGHT, CONTAINER_WIDTH, GRADES } from './constants';\nimport { useCreateUserDal } from './dal/create-user-dal/create-user-dal';\nimport type { ICreateUserResponseDal } from './dal/create-user-dal/create-user-dal-types';\nimport { useUpdateUserDal } from './dal/update-user-dal/update-user-dal';\nimport type { IUpdateUserPayloadDal } from './dal/update-user-dal/update-user-dal-types';\nimport { useUpdateUsernameDal } from './dal/update-username-dal/update-username-dal';\nimport { getSplashScreenText, getTrialScreenUsername } from './helper';\nimport * as Styled from './sign-up-styled';\nimport type { ISignUpProps } from './sign-up-types';\n\nexport const SignUp = ({\n mathGymEnrolledUser,\n circleEnrolledUser,\n circleOnLeapPremiumDays,\n circleUsername,\n countryCode,\n grade: defaultGrade,\n state,\n circleOnLeapPremiumEnabled,\n studentId,\n isSignUpProcessing,\n onCreateUser,\n onUpdateUser,\n onSignupStepsComplete,\n isPLAStudent,\n}: ISignUpProps) => {\n const [currentStepIndex, setCurrentStepIndex] = useState(0);\n const [username, setUsername] = useState(circleUsername);\n const [error, setError] = useState('');\n const [grade, setGrade] = useState<Grade | null>(\n GRADES.find(g => g.key === defaultGrade) ?? null,\n );\n const [showSpinner, setShowSpinner] = useState(false);\n const trialScreenContent = getTrialScreenUsername(state);\n\n const userCreateUpdateResponseData = useRef<\n ICreateUserResponseDal | IUpdateUserPayloadDal | IUpdateUsernameResponse | null\n >(null);\n\n const [splashBtnVisible, setSplashBtnVisible] = useState(false);\n const [splashTxtVisible, setSplashTxtVisible] = useState(false);\n\n const handleCreateUserResponse = (data: ICreateUserResponseDal | null) => {\n setShowSpinner(false);\n if (data) {\n userCreateUpdateResponseData.current = data;\n setUsername(data.username);\n if (onCreateUser) {\n onCreateUser(data);\n }\n goToNextStep();\n } else {\n setError(ErrorMessage.SOMETHING_WENT_WRONG);\n }\n };\n const handleUpdateUserResponse = (data: IUpdateUserPayloadDal | null) => {\n setShowSpinner(false);\n if (data) {\n userCreateUpdateResponseData.current = data;\n setUsername(data.username);\n if (onUpdateUser) {\n onUpdateUser(data);\n }\n goToNextStep();\n } else {\n setError(ErrorMessage.SOMETHING_WENT_WRONG);\n }\n };\n const handleUpdateUsernameResponse = (data: IUpdateUsernameResponse | null) => {\n setShowSpinner(false);\n if (data) {\n setUsername(data.username);\n userCreateUpdateResponseData.current = data;\n goToNextStep();\n } else {\n setError(ErrorMessage.SOMETHING_WENT_WRONG);\n }\n };\n\n const { createUser } = useCreateUserDal(handleCreateUserResponse);\n const { updateUser } = useUpdateUserDal(handleUpdateUserResponse);\n const { updateUsername } = useUpdateUsernameDal(handleUpdateUsernameResponse);\n // Animate the text and btns a fter the splash animation is completed in splash screen\n const onSplashScreenBgAnimationComplete = () => {\n setSplashTxtVisible(true);\n setTimeout(() => {\n setSplashBtnVisible(true);\n }, 500);\n };\n\n const handleGradeSelect = async (_grade: Grade) => {\n setGrade(_grade);\n };\n\n const handleUsernameSubmit = useCallback(async () => {\n setShowSpinner(true);\n if (error !== '') {\n return;\n }\n\n if (isPLAStudent && username) {\n //TODO: The old API should be migrated to use this for both PLA and Non PLA students\n // PLA students can use the username as both the login username and password, and also set it as the Circle username.\n updateUsername({\n username,\n studentId,\n });\n\n return;\n }\n\n if (circleUsername === '' || circleUsername === undefined || circleUsername === null) {\n createUser({\n circleOnLeapPremiumEnabled,\n grade: grade?.key || '',\n username,\n countryCode,\n studentId,\n });\n } else {\n updateUser({\n circleOnLeapPremiumEnabled,\n grade: grade?.key || '',\n username,\n studentId,\n });\n }\n }, [\n circleOnLeapPremiumEnabled,\n circleUsername,\n countryCode,\n createUser,\n error,\n grade?.key,\n isPLAStudent,\n studentId,\n updateUser,\n updateUsername,\n username,\n ]);\n\n const goToNextStep = () => {\n setCurrentStepIndex(prev => {\n if (prev === SignupProps.steps.length - 1) {\n onSignupStepsComplete(userCreateUpdateResponseData.current);\n\n return prev;\n }\n\n return prev + 1;\n });\n };\n\n const goToPrevStep = () => {\n if (showSpinner) {\n return;\n }\n setCurrentStepIndex(prev => {\n if (prev === 0) {\n return prev;\n }\n\n return prev - 1;\n });\n };\n\n const splashScreenStep: ICircularSteps = {\n id: 'step-0',\n label: null,\n custEle: null,\n custEleInsideStep: null,\n background: <SplashScreen animationCompleted={onSplashScreenBgAnimationComplete} />,\n custEleBelowStep: (\n <Styled.BottomButtonContainer paddingX={mathGymEnrolledUser && circleEnrolledUser ? 1 : 2.5}>\n {splashTxtVisible && (\n <Styled.SignupText $renderAs=\"ab2\" $color=\"WHITE\" $align=\"center\">\n {getSplashScreenText({ state, circleEnrolledUser, mathGymEnrolledUser })}\n </Styled.SignupText>\n )}\n {splashBtnVisible && (\n <Styled.SignupBtn\n label=\"Let’s start\"\n renderAs=\"secondary\"\n marginTop={24}\n width={144}\n isVisible={true}\n onClick={() => {\n goToNextStep();\n setSplashTxtVisible(false);\n setSplashBtnVisible(false);\n }}\n />\n )}\n </Styled.BottomButtonContainer>\n ),\n isProgressAnimationRequired: false,\n };\n\n const gradeStep: ICircularSteps = {\n id: 'step-1',\n label: 'What’s your school grade?',\n custEle: null,\n custEleInsideStep: <GradeInputBox gradeInfo={grade} showSpinner={showSpinner} />,\n background: (\n <Image\n src={ILLUSTRATIONS.GRADE_GRID_BACKGROUND}\n height={'100%'}\n width={'100%'}\n withLoader={false}\n alt=\"play\"\n />\n ),\n custEleBelowStep: (\n <SelectUserGrade\n grades={GRADES}\n selected={grade?.key || null}\n onSelect={_grade => handleGradeSelect(_grade)}\n onNext={goToNextStep}\n />\n ),\n onBack: goToPrevStep,\n isProgressAnimationRequired: true,\n };\n\n const usernameStep: ICircularSteps = {\n id: 'step-2',\n label: isPLAStudent ? `Create a unique username\\nfor your child` : 'Claim your unique alias',\n custEle: null,\n custEleInsideStep: (\n <UsernameInput\n username={username}\n circleUsername={circleUsername}\n isEdit={false}\n error={error}\n setError={setError}\n showSpinner={showSpinner}\n setShowSpinner={setShowSpinner}\n setUsername={setUsername}\n />\n ),\n background: (\n <Image\n src={ILLUSTRATIONS.USER_PROFILE_BACKGROUND}\n height={'100%'}\n width={'100%'}\n withLoader={false}\n alt=\"play\"\n />\n ),\n custEleBelowStep: (\n <Styled.BottomButtonContainer>\n {username !== '' && (\n <Styled.SignupBtn\n label=\"Next\"\n disabled={showSpinner || error !== ''}\n renderAs=\"secondary\"\n onClick={() => handleUsernameSubmit()}\n marginTop={88}\n />\n )}\n </Styled.BottomButtonContainer>\n ),\n onBack: goToPrevStep,\n isProgressAnimationRequired: true,\n };\n\n const trialScreenStep: ICircularSteps = {\n id: 'step-3',\n label: null,\n custEle: null,\n custEleInsideStep: (\n <Styled.SmileyImage src={ILLUSTRATIONS.SMILEY} height={'100%'} width={'100%'} alt=\"play\" />\n ),\n background: (\n <Image\n src={ILLUSTRATIONS.USER_CROWN_GRID_BACKGROUND}\n height={'100%'}\n width={'100%'}\n withLoader={false}\n alt=\"play\"\n />\n ),\n custEleBelowStep: (\n <Styled.BottomButtonContainer>\n {isPLAStudent ? (\n <FlexView>\n <Text $renderAs=\"ac4-black\" $align=\"center\" $color=\"GREEN_4\">\n Premium access unlocked!\n </Text>\n <Separator height={12} />\n <Text $renderAs=\"ub2\" $color=\"WHITE\" $align=\"center\">\n Your child can directly login to leap.cuemath.com using “\n <Text $color=\"GREEN_4\" $renderAs=\"ub2\" $inline>\n {username}\n </Text>\n ” as both username and password.\n </Text>\n </FlexView>\n ) : (\n <>\n <Text $renderAs=\"ab1\" $color=\"WHITE\">\n {trialScreenContent.primaryText}\n {circleOnLeapPremiumDays && (\n <Styled.ThemeText> {circleOnLeapPremiumDays} days of FREE</Styled.ThemeText>\n )}\n </Text>\n <Text $renderAs=\"ab1\" $color=\"WHITE\">\n {trialScreenContent.secondaryText}\n </Text>\n </>\n )}\n {isSignUpProcessing ? (\n <Spinner marginY={24} />\n ) : (\n <Styled.SignupBtn\n label=\"Woohoo! Let me in!\"\n renderAs=\"secondary\"\n marginTop={24}\n width={250}\n onClick={() => goToNextStep()}\n />\n )}\n </Styled.BottomButtonContainer>\n ),\n onBack: isSignUpProcessing ? undefined : goToPrevStep,\n isProgressAnimationRequired: true,\n };\n\n const SignupProps: ICircularStepsProps = {\n steps: isPLAStudent\n ? [splashScreenStep, usernameStep, trialScreenStep]\n : [splashScreenStep, gradeStep, usernameStep, trialScreenStep],\n currentStepIndex: 0,\n dimensions: { width: CONTAINER_WIDTH, height: CONTAINER_HEIGHT },\n };\n\n // Reset states on unmount\n useEffect(() => {\n return () => {\n setShowSpinner(false);\n setUsername('');\n setGrade(null);\n setError('');\n };\n }, []);\n\n return (\n <>\n <Styled.BackgroundOverlay />\n <Styled.SignUpWrapper>\n <Styled.SignUpContainer>\n <CircularSteps {...SignupProps} currentStepIndex={currentStepIndex} />\n </Styled.SignUpContainer>\n </Styled.SignUpWrapper>\n </>\n );\n};\n"],"names":["SignUp","mathGymEnrolledUser","circleEnrolledUser","circleOnLeapPremiumDays","circleUsername","countryCode","defaultGrade","state","circleOnLeapPremiumEnabled","studentId","isSignUpProcessing","onCreateUser","onUpdateUser","onSignupStepsComplete","isPLAStudent","currentStepIndex","setCurrentStepIndex","useState","username","setUsername","error","setError","grade","setGrade","GRADES","g","showSpinner","setShowSpinner","trialScreenContent","getTrialScreenUsername","userCreateUpdateResponseData","useRef","splashBtnVisible","setSplashBtnVisible","splashTxtVisible","setSplashTxtVisible","handleCreateUserResponse","data","goToNextStep","ErrorMessage","handleUpdateUserResponse","handleUpdateUsernameResponse","createUser","useCreateUserDal","updateUser","useUpdateUserDal","updateUsername","useUpdateUsernameDal","onSplashScreenBgAnimationComplete","handleGradeSelect","_grade","handleUsernameSubmit","useCallback","prev","SignupProps","goToPrevStep","splashScreenStep","jsx","SplashScreen","Styled.BottomButtonContainer","Styled.SignupText","Styled.SignupBtn","gradeStep","GradeInputBox","Image","ILLUSTRATIONS","SelectUserGrade","usernameStep","UsernameInput","trialScreenStep","Styled.SmileyImage","jsxs","FlexView","Text","Separator","Fragment","Styled.ThemeText","Spinner","CONTAINER_WIDTH","CONTAINER_HEIGHT","useEffect","Styled.BackgroundOverlay","Styled.SignUpWrapper","Styled.SignUpContainer","CircularSteps"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sign-up.js","sources":["../../../../src/features/circle-games/sign-up/sign-up.tsx"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from 'react';\n\nimport { ILLUSTRATIONS } from '../../../assets/illustrations/illustrations';\nimport Image from '../../ui/image/image';\nimport FlexView from '../../ui/layout/flex-view';\nimport Separator from '../../ui/separator/separator';\nimport Text from '../../ui/text/text';\nimport type { IUpdateUsernameResponse } from './api/use-update-username-api/use-update-username-api-types';\nimport { CircularSteps } from './comp/circular-steps/circular-steps';\nimport type {\n ICircularSteps,\n ICircularStepsProps,\n} from './comp/circular-steps/circular-steps-types';\nimport type { Grade } from './comp/grade-input/grade-input-types';\nimport { GradeInputBox, SelectUserGrade } from './comp/select-user-grade/select-user-grade';\nimport { Spinner } from './comp/spinner/spinner';\nimport { ErrorMessage } from './comp/username-input/constants';\nimport { UsernameInput } from './comp/username-input/username-input';\nimport { CONTAINER_HEIGHT, CONTAINER_WIDTH, GRADES } from './constants';\nimport { useCreateUserDal } from './dal/create-user-dal/create-user-dal';\nimport type { ICreateUserResponseDal } from './dal/create-user-dal/create-user-dal-types';\nimport { useUpdateUserDal } from './dal/update-user-dal/update-user-dal';\nimport type { IUpdateUserPayloadDal } from './dal/update-user-dal/update-user-dal-types';\nimport { useUpdateUsernameDal } from './dal/update-username-dal/update-username-dal';\nimport { getTrialScreenUsername } from './helper';\nimport * as Styled from './sign-up-styled';\nimport type { ISignUpProps } from './sign-up-types';\n\nexport const SignUp = ({\n circleOnLeapPremiumDays,\n circleUsername,\n countryCode,\n grade: defaultGrade,\n state,\n circleOnLeapPremiumEnabled,\n studentId,\n isSignUpProcessing,\n onCreateUser,\n onUpdateUser,\n onSignupStepsComplete,\n isPLAStudent,\n}: ISignUpProps) => {\n const [currentStepIndex, setCurrentStepIndex] = useState(0);\n const [username, setUsername] = useState(circleUsername);\n const [error, setError] = useState('');\n const [grade, setGrade] = useState<Grade | null>(\n GRADES.find(g => g.key === defaultGrade) ?? null,\n );\n const [showSpinner, setShowSpinner] = useState(false);\n const trialScreenContent = getTrialScreenUsername(state);\n\n const userCreateUpdateResponseData = useRef<\n ICreateUserResponseDal | IUpdateUserPayloadDal | IUpdateUsernameResponse | null\n >(null);\n\n const handleCreateUserResponse = (data: ICreateUserResponseDal | null) => {\n setShowSpinner(false);\n if (data) {\n userCreateUpdateResponseData.current = data;\n setUsername(data.username);\n if (onCreateUser) {\n onCreateUser(data);\n }\n goToNextStep();\n } else {\n setError(ErrorMessage.SOMETHING_WENT_WRONG);\n }\n };\n const handleUpdateUserResponse = (data: IUpdateUserPayloadDal | null) => {\n setShowSpinner(false);\n if (data) {\n userCreateUpdateResponseData.current = data;\n setUsername(data.username);\n if (onUpdateUser) {\n onUpdateUser(data);\n }\n goToNextStep();\n } else {\n setError(ErrorMessage.SOMETHING_WENT_WRONG);\n }\n };\n const handleUpdateUsernameResponse = (data: IUpdateUsernameResponse | null) => {\n setShowSpinner(false);\n if (data) {\n setUsername(data.username);\n userCreateUpdateResponseData.current = data;\n goToNextStep();\n } else {\n setError(ErrorMessage.SOMETHING_WENT_WRONG);\n }\n };\n\n const { createUser } = useCreateUserDal(handleCreateUserResponse);\n const { updateUser } = useUpdateUserDal(handleUpdateUserResponse);\n const { updateUsername } = useUpdateUsernameDal(handleUpdateUsernameResponse);\n // Animate the text and btns a fter the splash animation is completed in splash screen\n\n const handleGradeSelect = async (_grade: Grade) => {\n setGrade(_grade);\n };\n\n const handleUsernameSubmit = useCallback(async () => {\n setShowSpinner(true);\n if (error !== '') {\n return;\n }\n\n if (isPLAStudent && username) {\n //TODO: The old API should be migrated to use this for both PLA and Non PLA students\n // PLA students can use the username as both the login username and password, and also set it as the Circle username.\n updateUsername({\n username,\n studentId,\n });\n\n return;\n }\n\n if (circleUsername === '' || circleUsername === undefined || circleUsername === null) {\n createUser({\n circleOnLeapPremiumEnabled,\n grade: grade?.key || '',\n username,\n countryCode,\n studentId,\n });\n } else {\n updateUser({\n circleOnLeapPremiumEnabled,\n grade: grade?.key || '',\n username,\n studentId,\n });\n }\n }, [\n circleOnLeapPremiumEnabled,\n circleUsername,\n countryCode,\n createUser,\n error,\n grade?.key,\n isPLAStudent,\n studentId,\n updateUser,\n updateUsername,\n username,\n ]);\n\n const goToNextStep = () => {\n setCurrentStepIndex(prev => {\n if (prev === SignupProps.steps.length - 1) {\n onSignupStepsComplete(userCreateUpdateResponseData.current);\n\n return prev;\n }\n\n return prev + 1;\n });\n };\n\n const goToPrevStep = () => {\n if (showSpinner) {\n return;\n }\n setCurrentStepIndex(prev => {\n if (prev === 0) {\n return prev;\n }\n\n return prev - 1;\n });\n };\n\n const gradeStep: ICircularSteps = {\n id: 'step-0',\n label: 'What’s your school grade?',\n custEle: null,\n custEleInsideStep: <GradeInputBox gradeInfo={grade} showSpinner={showSpinner} />,\n background: (\n <Image\n src={ILLUSTRATIONS.GRADE_GRID_BACKGROUND}\n height={'100%'}\n width={'100%'}\n withLoader={false}\n alt=\"play\"\n />\n ),\n custEleBelowStep: (\n <SelectUserGrade\n grades={GRADES}\n selected={grade?.key || null}\n onSelect={_grade => handleGradeSelect(_grade)}\n onNext={goToNextStep}\n />\n ),\n isProgressAnimationRequired: true,\n };\n\n const usernameStep: ICircularSteps = {\n id: 'step-1',\n label: isPLAStudent ? `Create a unique username\\nfor your child` : 'Claim your unique alias',\n custEle: null,\n custEleInsideStep: (\n <UsernameInput\n username={username}\n circleUsername={circleUsername}\n isEdit={false}\n error={error}\n setError={setError}\n showSpinner={showSpinner}\n setShowSpinner={setShowSpinner}\n setUsername={setUsername}\n />\n ),\n background: (\n <Image\n src={ILLUSTRATIONS.USER_PROFILE_BACKGROUND}\n height={'100%'}\n width={'100%'}\n withLoader={false}\n alt=\"play\"\n />\n ),\n custEleBelowStep: (\n <Styled.BottomButtonContainer>\n {username !== '' && (\n <Styled.SignupBtn\n label=\"Next\"\n disabled={showSpinner || error !== ''}\n renderAs=\"secondary\"\n onClick={() => handleUsernameSubmit()}\n marginTop={88}\n />\n )}\n </Styled.BottomButtonContainer>\n ),\n onBack: goToPrevStep,\n isProgressAnimationRequired: true,\n };\n\n const trialScreenStep: ICircularSteps = {\n id: 'step-2',\n label: null,\n custEle: null,\n custEleInsideStep: (\n <Styled.SmileyImage src={ILLUSTRATIONS.SMILEY} height={'100%'} width={'100%'} alt=\"play\" />\n ),\n background: (\n <Image\n src={ILLUSTRATIONS.USER_CROWN_GRID_BACKGROUND}\n height={'100%'}\n width={'100%'}\n withLoader={false}\n alt=\"play\"\n />\n ),\n custEleBelowStep: (\n <Styled.BottomButtonContainer>\n {isPLAStudent ? (\n <FlexView>\n <Text $renderAs=\"ac4-black\" $align=\"center\" $color=\"GREEN_4\">\n Premium access unlocked!\n </Text>\n <Separator height={12} />\n <Text $renderAs=\"ub2\" $color=\"WHITE\" $align=\"center\">\n Your child can directly login to leap.cuemath.com using “\n <Text $color=\"GREEN_4\" $renderAs=\"ub2\" $inline>\n {username}\n </Text>\n ” as both username and password.\n </Text>\n </FlexView>\n ) : (\n <>\n <Text $renderAs=\"ab1\" $color=\"WHITE\">\n {trialScreenContent.primaryText}\n {circleOnLeapPremiumDays && (\n <Styled.ThemeText> {circleOnLeapPremiumDays} days of FREE</Styled.ThemeText>\n )}\n </Text>\n <Text $renderAs=\"ab1\" $color=\"WHITE\">\n {trialScreenContent.secondaryText}\n </Text>\n </>\n )}\n {isSignUpProcessing ? (\n <Spinner marginY={24} />\n ) : (\n <Styled.SignupBtn\n label=\"Woohoo! Let me in!\"\n renderAs=\"secondary\"\n marginTop={24}\n width={250}\n onClick={() => goToNextStep()}\n />\n )}\n </Styled.BottomButtonContainer>\n ),\n onBack: isSignUpProcessing ? undefined : goToPrevStep,\n isProgressAnimationRequired: true,\n };\n\n const SignupProps: ICircularStepsProps = {\n steps: isPLAStudent\n ? [usernameStep, trialScreenStep]\n : [gradeStep, usernameStep, trialScreenStep],\n currentStepIndex: 0,\n dimensions: { width: CONTAINER_WIDTH, height: CONTAINER_HEIGHT },\n };\n\n // Reset states on unmount\n useEffect(() => {\n return () => {\n setShowSpinner(false);\n setUsername('');\n setGrade(null);\n setError('');\n };\n }, []);\n\n return (\n <>\n <Styled.BackgroundOverlay />\n <Styled.SignUpWrapper>\n <Styled.SignUpContainer>\n <CircularSteps {...SignupProps} currentStepIndex={currentStepIndex} />\n </Styled.SignUpContainer>\n </Styled.SignUpWrapper>\n </>\n );\n};\n"],"names":["SignUp","circleOnLeapPremiumDays","circleUsername","countryCode","defaultGrade","state","circleOnLeapPremiumEnabled","studentId","isSignUpProcessing","onCreateUser","onUpdateUser","onSignupStepsComplete","isPLAStudent","currentStepIndex","setCurrentStepIndex","useState","username","setUsername","error","setError","grade","setGrade","GRADES","g","showSpinner","setShowSpinner","trialScreenContent","getTrialScreenUsername","userCreateUpdateResponseData","useRef","handleCreateUserResponse","data","goToNextStep","ErrorMessage","handleUpdateUserResponse","handleUpdateUsernameResponse","createUser","useCreateUserDal","updateUser","useUpdateUserDal","updateUsername","useUpdateUsernameDal","handleGradeSelect","_grade","handleUsernameSubmit","useCallback","prev","SignupProps","goToPrevStep","gradeStep","jsx","GradeInputBox","Image","ILLUSTRATIONS","SelectUserGrade","usernameStep","UsernameInput","Styled.BottomButtonContainer","Styled.SignupBtn","trialScreenStep","Styled.SmileyImage","jsxs","FlexView","Text","Separator","Fragment","Styled.ThemeText","Spinner","CONTAINER_WIDTH","CONTAINER_HEIGHT","useEffect","Styled.BackgroundOverlay","Styled.SignUpWrapper","Styled.SignUpContainer","CircularSteps"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/features/trial-session/comps/navigation-bar/index.tsx"],"sourcesContent":["import { useCallback, useMemo, type FC } from 'react';\n\nimport ArrowTooltip from '../../../ui/arrow-tooltip/arrow-tooltip';\nimport Button from '../../../ui/buttons/button/button';\nimport IconButton from '../../../ui/buttons/icon-button/icon-button';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Text from '../../../ui/text/text';\nimport { useTrialSessionContext } from '../../context/use-trial-session-context';\nimport { isPLASource } from '../../helper';\nimport { useTrialSessionNavigation } from '../../hooks/use-trial-session-navigation';\nimport * as Styled from './navigation-bar-styled';\n\nconst NavigationBar: FC = () => {\n const {\n slideConfig,\n buttonState,\n openEndClassModal,\n studentAbsentInClass,\n trialHomeData,\n formData,\n } = useTrialSessionContext();\n\n const { handleNavigation } = useTrialSessionNavigation();\n\n const {\n left: { isDisabled: isLeftBtnDisabled, isLoading: isLeftBtnLoading },\n right: { isDisabled: isRightBtnDisabled, isLoading: isRightBtnLoading },\n } = buttonState || {};\n\n const { prevPage, nextPage } = slideConfig || {};\n const { buttonLabel: prevButtonLabel, pageId: prevPageId } = prevPage || {};\n const { buttonLabel: nextButtonLabel, pageId: nextPageId } = nextPage || {};\n const { numberInNameError } = formData || {};\n\n const isLastPage = prevPageId && !nextPageId;\n const isPLA = isPLASource(trialHomeData?.intel_student?.source);\n\n const nextButtonDisabled = useMemo(\n () => isRightBtnDisabled || studentAbsentInClass || numberInNameError,\n [isRightBtnDisabled, studentAbsentInClass, numberInNameError],\n );\n const prevButtonDisabled = useMemo(\n () => isLeftBtnDisabled || studentAbsentInClass,\n [isLeftBtnDisabled, studentAbsentInClass],\n );\n\n const tooltipContent = useMemo(() => {\n if (numberInNameError) return 'Please enter a valid name';\n return 'Waiting for student to join...';\n }, [numberInNameError]);\n const showTooltip = useMemo(\n () => studentAbsentInClass || numberInNameError,\n [studentAbsentInClass, numberInNameError],\n );\n\n const handleNext = useCallback(() => {\n handleNavigation('next', nextPageId);\n }, [handleNavigation, nextPageId]);\n\n const handlePrev = useCallback(() => {\n handleNavigation('prev', prevPageId);\n }, [handleNavigation, prevPageId]);\n\n return (\n <Styled.Container\n $flexDirection=\"row-reverse\"\n $justifyContent=\"space-between\"\n $alignItems=\"center\"\n >\n {isLastPage && (\n <Button\n renderAs=\"tertiary\"\n size=\"small\"\n label={isPLA ? 'End the session' : 'End the class'}\n shape=\"square\"\n onClick={openEndClassModal}\n />\n )}\n {nextPageId && nextButtonLabel && (\n <FlexView $flexDirection=\"row\" $alignItems=\"center\" $justifyContent=\"center\" $flexGap={12}>\n <Text $renderAs=\"ab2\" $color=\"BLACK_T_60\">\n {nextButtonLabel}\n </Text>\n <ArrowTooltip\n widthX={8}\n zIndex={2}\n position=\"top-left\"\n renderAs=\"primary\"\n tooltipItem={tooltipContent}\n hidden={!showTooltip}\n >\n <IconButton\n Icon={Styled.ForwardArrow}\n renderAs=\"primary\"\n analyticsLabel={nextButtonLabel}\n size=\"small\"\n onClick={handleNext}\n disabled={nextButtonDisabled}\n busy={isRightBtnLoading}\n />\n </ArrowTooltip>\n </FlexView>\n )}\n {prevPageId && prevButtonLabel && (\n <FlexView $flexDirection=\"row\" $alignItems=\"center\" $justifyContent=\"center\" $flexGap={12}>\n <IconButton\n Icon={Styled.BackwardArrow}\n renderAs=\"secondary\"\n analyticsLabel={prevButtonLabel}\n size=\"small\"\n onClick={handlePrev}\n disabled={prevButtonDisabled}\n busy={isLeftBtnLoading}\n />\n <Text $renderAs=\"ab2\" $color=\"BLACK_T_60\">\n {prevButtonLabel}\n </Text>\n </FlexView>\n )}\n </Styled.Container>\n );\n};\n\nexport default NavigationBar;\n"],"names":["NavigationBar","slideConfig","buttonState","openEndClassModal","studentAbsentInClass","trialHomeData","formData","useTrialSessionContext","handleNavigation","useTrialSessionNavigation","isLeftBtnDisabled","isLeftBtnLoading","isRightBtnDisabled","isRightBtnLoading","prevPage","nextPage","prevButtonLabel","prevPageId","nextButtonLabel","nextPageId","numberInNameError","isLastPage","isPLA","isPLASource","_a","nextButtonDisabled","useMemo","prevButtonDisabled","tooltipContent","showTooltip","handleNext","useCallback","handlePrev","jsxs","Styled.Container","jsx","Button","FlexView","Text","ArrowTooltip","IconButton","Styled.ForwardArrow","Styled.BackwardArrow"],"mappings":";;;;;;;;;;;;AAYA,MAAMA,KAAoB,MAAM;;AACxB,QAAA;AAAA,IACJ,aAAAC;AAAA,IACA,aAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,sBAAAC;AAAA,IACA,eAAAC;AAAA,IACA,UAAAC;AAAA,MACEC,EAAuB,GAErB,EAAE,kBAAAC,MAAqBC,KAEvB;AAAA,IACJ,MAAM,EAAE,YAAYC,GAAmB,WAAWC,EAAiB;AAAA,IACnE,OAAO,EAAE,YAAYC,GAAoB,WAAWC,EAAkB;AAAA,EAAA,IACpEX,KAAe,CAAA,GAEb,EAAE,UAAAY,GAAU,UAAAC,MAAad,KAAe,CAAA,GACxC,EAAE,aAAae,GAAiB,QAAQC,EAAW,IAAIH,KAAY,IACnE,EAAE,aAAaI,GAAiB,QAAQC,EAAW,IAAIJ,KAAY,IACnE,EAAE,mBAAAK,EAAA,IAAsBd,KAAY,IAEpCe,IAAaJ,KAAc,CAACE,GAC5BG,IAAQC,GAAYC,IAAAnB,KAAA,gBAAAA,EAAe,kBAAf,gBAAAmB,EAA8B,MAAM,GAExDC,IAAqBC;AAAA,IACzB,MAAMd,KAAsBR,KAAwBgB;AAAA,IACpD,CAACR,GAAoBR,GAAsBgB,CAAiB;AAAA,EAAA,GAExDO,IAAqBD;AAAA,IACzB,MAAMhB,KAAqBN;AAAA,IAC3B,CAACM,GAAmBN,CAAoB;AAAA,EAAA,GAGpCwB,IAAiBF,EAAQ,MACzBN,IAA0B,
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/features/trial-session/comps/navigation-bar/index.tsx"],"sourcesContent":["import { useCallback, useMemo, type FC } from 'react';\n\nimport ArrowTooltip from '../../../ui/arrow-tooltip/arrow-tooltip';\nimport Button from '../../../ui/buttons/button/button';\nimport IconButton from '../../../ui/buttons/icon-button/icon-button';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Text from '../../../ui/text/text';\nimport { useTrialSessionContext } from '../../context/use-trial-session-context';\nimport { isPLASource } from '../../helper';\nimport { useTrialSessionNavigation } from '../../hooks/use-trial-session-navigation';\nimport * as Styled from './navigation-bar-styled';\n\nconst NavigationBar: FC = () => {\n const {\n slideConfig,\n buttonState,\n openEndClassModal,\n studentAbsentInClass,\n trialHomeData,\n formData,\n } = useTrialSessionContext();\n\n const { handleNavigation } = useTrialSessionNavigation();\n\n const {\n left: { isDisabled: isLeftBtnDisabled, isLoading: isLeftBtnLoading },\n right: { isDisabled: isRightBtnDisabled, isLoading: isRightBtnLoading },\n } = buttonState || {};\n\n const { prevPage, nextPage } = slideConfig || {};\n const { buttonLabel: prevButtonLabel, pageId: prevPageId } = prevPage || {};\n const { buttonLabel: nextButtonLabel, pageId: nextPageId } = nextPage || {};\n const { numberInNameError } = formData || {};\n\n const isLastPage = prevPageId && !nextPageId;\n const isPLA = isPLASource(trialHomeData?.intel_student?.source);\n\n const nextButtonDisabled = useMemo(\n () => isRightBtnDisabled || studentAbsentInClass || numberInNameError,\n [isRightBtnDisabled, studentAbsentInClass, numberInNameError],\n );\n const prevButtonDisabled = useMemo(\n () => isLeftBtnDisabled || studentAbsentInClass,\n [isLeftBtnDisabled, studentAbsentInClass],\n );\n\n const tooltipContent = useMemo(() => {\n if (numberInNameError) return 'Please enter a valid name';\n\n return 'Waiting for student to join...';\n }, [numberInNameError]);\n const showTooltip = useMemo(\n () => studentAbsentInClass || numberInNameError,\n [studentAbsentInClass, numberInNameError],\n );\n\n const handleNext = useCallback(() => {\n handleNavigation('next', nextPageId);\n }, [handleNavigation, nextPageId]);\n\n const handlePrev = useCallback(() => {\n handleNavigation('prev', prevPageId);\n }, [handleNavigation, prevPageId]);\n\n return (\n <Styled.Container\n $flexDirection=\"row-reverse\"\n $justifyContent=\"space-between\"\n $alignItems=\"center\"\n >\n {isLastPage && (\n <Button\n renderAs=\"tertiary\"\n size=\"small\"\n label={isPLA ? 'End the session' : 'End the class'}\n shape=\"square\"\n onClick={openEndClassModal}\n />\n )}\n {nextPageId && nextButtonLabel && (\n <FlexView $flexDirection=\"row\" $alignItems=\"center\" $justifyContent=\"center\" $flexGap={12}>\n <Text $renderAs=\"ab2\" $color=\"BLACK_T_60\">\n {nextButtonLabel}\n </Text>\n <ArrowTooltip\n widthX={8}\n zIndex={2}\n position=\"top-left\"\n renderAs=\"primary\"\n tooltipItem={tooltipContent}\n hidden={!showTooltip}\n >\n <IconButton\n Icon={Styled.ForwardArrow}\n renderAs=\"primary\"\n analyticsLabel={nextButtonLabel}\n size=\"small\"\n onClick={handleNext}\n disabled={nextButtonDisabled}\n busy={isRightBtnLoading}\n />\n </ArrowTooltip>\n </FlexView>\n )}\n {prevPageId && prevButtonLabel && (\n <FlexView $flexDirection=\"row\" $alignItems=\"center\" $justifyContent=\"center\" $flexGap={12}>\n <IconButton\n Icon={Styled.BackwardArrow}\n renderAs=\"secondary\"\n analyticsLabel={prevButtonLabel}\n size=\"small\"\n onClick={handlePrev}\n disabled={prevButtonDisabled}\n busy={isLeftBtnLoading}\n />\n <Text $renderAs=\"ab2\" $color=\"BLACK_T_60\">\n {prevButtonLabel}\n </Text>\n </FlexView>\n )}\n </Styled.Container>\n );\n};\n\nexport default NavigationBar;\n"],"names":["NavigationBar","slideConfig","buttonState","openEndClassModal","studentAbsentInClass","trialHomeData","formData","useTrialSessionContext","handleNavigation","useTrialSessionNavigation","isLeftBtnDisabled","isLeftBtnLoading","isRightBtnDisabled","isRightBtnLoading","prevPage","nextPage","prevButtonLabel","prevPageId","nextButtonLabel","nextPageId","numberInNameError","isLastPage","isPLA","isPLASource","_a","nextButtonDisabled","useMemo","prevButtonDisabled","tooltipContent","showTooltip","handleNext","useCallback","handlePrev","jsxs","Styled.Container","jsx","Button","FlexView","Text","ArrowTooltip","IconButton","Styled.ForwardArrow","Styled.BackwardArrow"],"mappings":"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"}
|
|
@@ -1,32 +1,32 @@
|
|
|
1
1
|
import r from "styled-components";
|
|
2
2
|
import c from "../../../../assets/line-icons/icons/cross.js";
|
|
3
|
-
import
|
|
3
|
+
import l from "../../../../assets/line-icons/icons/info3.js";
|
|
4
4
|
import e from "../../../ui/layout/flex-view.js";
|
|
5
|
-
import
|
|
5
|
+
import d from "../../../ui/text/text.js";
|
|
6
6
|
import { CustomElement as a } from "../worksheet-question/worksheet-question-styled.js";
|
|
7
7
|
import x from "../../../../assets/line-icons/icons/solution.js";
|
|
8
8
|
r(e)`
|
|
9
9
|
border: 2px solid #000;
|
|
10
10
|
`;
|
|
11
11
|
const y = r(e)(
|
|
12
|
-
({ $questionWidth: t, $actionbarHeight: o, theme:
|
|
12
|
+
({ $questionWidth: t, $actionbarHeight: o, theme: n }) => `
|
|
13
13
|
position: absolute;
|
|
14
14
|
bottom: ${o}px;
|
|
15
15
|
right: 80px; //52px(sidebar(width) +12px(gutter) + (16px)
|
|
16
16
|
width: calc(${t}px - 32px); // 32px is the left + right padding
|
|
17
17
|
height: 30%;
|
|
18
18
|
display: flex;
|
|
19
|
-
border: 1px solid ${
|
|
19
|
+
border: 1px solid ${n.colors.GREY_2};
|
|
20
20
|
overflow: hidden;
|
|
21
21
|
`
|
|
22
22
|
), C = r(e)`
|
|
23
23
|
cursor: pointer;
|
|
24
|
-
`, I = r(
|
|
24
|
+
`, I = r(d)`
|
|
25
25
|
text-decoration: underline;
|
|
26
26
|
white-space: nowrap;
|
|
27
27
|
writing-mode: vertical-rl;
|
|
28
28
|
text-align: right;
|
|
29
|
-
`, s = (t) => t.startsWith("calc(") ? t.replace(")", " - 0px)") : t, p = (t) => t.trim().split(/\s+(?=[+-])/).map((
|
|
29
|
+
`, s = (t) => t.startsWith("calc(") ? t.replace(")", " - 0px)") : t, p = (t) => t.trim().split(/\s+(?=[+-])/).map((i) => i.startsWith("-") ? `+${i.slice(1)}` : i.startsWith("+") ? `-${i.slice(1)}` : `-${i}`).join(" "), f = (t) => t.startsWith("calc(") && t.endsWith(")") ? (t = t.slice(5, -1), `calc(${p(t)})`) : p(t), S = r(e)(
|
|
30
30
|
({ $questionWidth: t }) => `
|
|
31
31
|
width: calc(${t}px - 32px); // 32px is the left + right padding
|
|
32
32
|
overflow-y: auto;
|
|
@@ -34,7 +34,7 @@ const y = r(e)(
|
|
|
34
34
|
display: flex;
|
|
35
35
|
`
|
|
36
36
|
), T = r(e)(({ $questionWidth: t, $height: o }) => `
|
|
37
|
-
margin-top: ${typeof o == "number" ? `${-o}px` :
|
|
37
|
+
margin-top: ${typeof o == "number" ? `${-o}px` : f(s(o))};
|
|
38
38
|
position: sticky;
|
|
39
39
|
left: calc((100% - ${t}px ) *.5 + ${t}px + 12px);
|
|
40
40
|
bottom: 16px;
|
|
@@ -64,28 +64,28 @@ const y = r(e)(
|
|
|
64
64
|
position: absolute;
|
|
65
65
|
top: 8px;
|
|
66
66
|
right: 16px;
|
|
67
|
-
`,
|
|
67
|
+
`, v = r(l)(({ theme: t, $disabled: o }) => `
|
|
68
68
|
& path {
|
|
69
|
-
|
|
69
|
+
fill: ${o ? t.colors.GREY_4 : t.colors.BLACK};
|
|
70
70
|
}
|
|
71
|
-
`),
|
|
71
|
+
`), R = r(x)(({ theme: t, $disabled: o }) => `
|
|
72
72
|
& path {
|
|
73
|
-
|
|
73
|
+
fill: ${o ? t.colors.GREY_4 : t.colors.BLACK};
|
|
74
74
|
}
|
|
75
|
-
`),
|
|
75
|
+
`), Y = r(a)``;
|
|
76
76
|
export {
|
|
77
77
|
W as CloseIcon,
|
|
78
|
-
|
|
78
|
+
Y as Guide,
|
|
79
79
|
E as GuideContainer,
|
|
80
|
-
|
|
80
|
+
v as HintIcon,
|
|
81
81
|
G as Pointer,
|
|
82
82
|
S as Section,
|
|
83
83
|
y as SectionContainer,
|
|
84
84
|
T as SideBarContainer,
|
|
85
|
-
|
|
85
|
+
R as SolIcon,
|
|
86
86
|
I as UnderlinedText,
|
|
87
87
|
C as UnderlinedTextWrapper,
|
|
88
88
|
s as getMinHeightFromString,
|
|
89
|
-
|
|
89
|
+
f as negateExpression
|
|
90
90
|
};
|
|
91
91
|
//# sourceMappingURL=worksheet-sidebar-styled.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worksheet-sidebar-styled.js","sources":["../../../../../src/features/worksheet/worksheet/worksheet-sidebar/worksheet-sidebar-styled.ts"],"sourcesContent":["import styled from 'styled-components';\n\nimport CrossIcon from '../../../../assets/line-icons/icons/cross';\nimport Info3Icon from '../../../../assets/line-icons/icons/info3';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Text from '../../../ui/text/text';\nimport { CustomElement } from '../worksheet-question/worksheet-question-styled';\nimport SolutionIcon from '../../../../assets/line-icons/icons/solution';\n\nexport const Circle = styled(FlexView)`\n border: 2px solid #000;\n`;\nexport const SectionContainer = styled(FlexView)<{\n $questionWidth: number;\n $actionbarHeight: number;\n}>(\n ({ $questionWidth, $actionbarHeight, theme }) => `\n position: absolute;\n bottom: ${$actionbarHeight}px;\n right: 80px; //52px(sidebar(width) +12px(gutter) + (16px)\n width: calc(${$questionWidth}px - 32px); // 32px is the left + right padding\n height: 30%;\n display: flex;\n border: 1px solid ${theme.colors.GREY_2};\n overflow: hidden;\n`,\n);\n\nexport const UnderlinedTextWrapper = styled(FlexView)`\n cursor: pointer;\n`;\n\nexport const UnderlinedText = styled(Text)`\n text-decoration: underline;\n white-space: nowrap;\n writing-mode: vertical-rl;\n text-align: right;\n`;\n\nexport const getMinHeightFromString = (minHeight: string) => {\n if (minHeight.startsWith('calc(')) {\n return minHeight.replace(')', ' - 0px)');\n }\n\n return minHeight;\n};\n\nconst negateString = (expression: string) => {\n const terms = expression.trim().split(/\\s+(?=[+-])/);\n const negatedTerms = terms.map(term => {\n if (term.startsWith('-')) {\n return `+${term.slice(1)}`; // change - to +\n }\n\n if (term.startsWith('+')) {\n return `-${term.slice(1)}`; // change + to -\n }\n\n return `-${term}`; // add leading '-'\n });\n\n return negatedTerms.join(' ');\n};\n\nexport const negateExpression = (expression: string) => {\n if (expression.startsWith('calc(') && expression.endsWith(')')) {\n expression = expression.slice(5, -1); // Remove 'calc(' and ')'\n const negatedTerms = negateString(expression);\n\n return `calc(${negatedTerms})`;\n }\n\n return negateString(expression);\n};\n\nexport const Section = styled(FlexView)<{\n $questionWidth: number;\n $actionbarHeight: number;\n}>(\n ({ $questionWidth }) => `\n width: calc(${$questionWidth}px - 32px); // 32px is the left + right padding\n overflow-y: auto;\n height: 100%;\n display: flex;\n`,\n);\nexport const SideBarContainer = styled(FlexView)<{\n $questionWidth: number;\n $height: number | string;\n}>(({ $questionWidth, $height }) => {\n return `\n margin-top: ${\n typeof $height === 'number'\n ? `${-$height}px`\n : negateExpression(getMinHeightFromString($height))\n };\n position: sticky;\n left: calc((100% - ${$questionWidth}px ) *.5 + ${$questionWidth}px + 12px);\n bottom: 16px;\n align-items: center;\n height: ${typeof $height === 'number' ? `${$height}px` : getMinHeightFromString($height)};\n z-index: 1;\n`;\n});\n\nexport const GuideContainer = styled(FlexView)(\n ({ theme }) => `\n width: 100%;\n border-radius: 8px;\n border: 1px solid ${theme.colors.GREY_2};\n justify-content: center;\n align-items: center;\n padding: 10px;\n`,\n);\n\nexport const Pointer = styled.div<{ topValue: number; leftValue: number }>`\n position: fixed;\n top: ${({ topValue }) => `${topValue}px`};\n left: ${({ leftValue }) => `${leftValue}px`};\n width: 15px;\n height: 15px;\n transform: rotate(45deg);\n background: white;\n border-top: 1px solid #e0e0e0;\n border-right: 1px solid #e0e0e0;\n`;\n\nexport const CloseIcon = styled(CrossIcon)`\n position: absolute;\n top: 8px;\n right: 16px;\n`;\n\nexport const HintIcon = styled(Info3Icon)<{ $disabled: boolean }>(({ theme, $disabled }) => {\n return `\n & path {\n
|
|
1
|
+
{"version":3,"file":"worksheet-sidebar-styled.js","sources":["../../../../../src/features/worksheet/worksheet/worksheet-sidebar/worksheet-sidebar-styled.ts"],"sourcesContent":["import styled from 'styled-components';\n\nimport CrossIcon from '../../../../assets/line-icons/icons/cross';\nimport Info3Icon from '../../../../assets/line-icons/icons/info3';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Text from '../../../ui/text/text';\nimport { CustomElement } from '../worksheet-question/worksheet-question-styled';\nimport SolutionIcon from '../../../../assets/line-icons/icons/solution';\n\nexport const Circle = styled(FlexView)`\n border: 2px solid #000;\n`;\nexport const SectionContainer = styled(FlexView)<{\n $questionWidth: number;\n $actionbarHeight: number;\n}>(\n ({ $questionWidth, $actionbarHeight, theme }) => `\n position: absolute;\n bottom: ${$actionbarHeight}px;\n right: 80px; //52px(sidebar(width) +12px(gutter) + (16px)\n width: calc(${$questionWidth}px - 32px); // 32px is the left + right padding\n height: 30%;\n display: flex;\n border: 1px solid ${theme.colors.GREY_2};\n overflow: hidden;\n`,\n);\n\nexport const UnderlinedTextWrapper = styled(FlexView)`\n cursor: pointer;\n`;\n\nexport const UnderlinedText = styled(Text)`\n text-decoration: underline;\n white-space: nowrap;\n writing-mode: vertical-rl;\n text-align: right;\n`;\n\nexport const getMinHeightFromString = (minHeight: string) => {\n if (minHeight.startsWith('calc(')) {\n return minHeight.replace(')', ' - 0px)');\n }\n\n return minHeight;\n};\n\nconst negateString = (expression: string) => {\n const terms = expression.trim().split(/\\s+(?=[+-])/);\n const negatedTerms = terms.map(term => {\n if (term.startsWith('-')) {\n return `+${term.slice(1)}`; // change - to +\n }\n\n if (term.startsWith('+')) {\n return `-${term.slice(1)}`; // change + to -\n }\n\n return `-${term}`; // add leading '-'\n });\n\n return negatedTerms.join(' ');\n};\n\nexport const negateExpression = (expression: string) => {\n if (expression.startsWith('calc(') && expression.endsWith(')')) {\n expression = expression.slice(5, -1); // Remove 'calc(' and ')'\n const negatedTerms = negateString(expression);\n\n return `calc(${negatedTerms})`;\n }\n\n return negateString(expression);\n};\n\nexport const Section = styled(FlexView)<{\n $questionWidth: number;\n $actionbarHeight: number;\n}>(\n ({ $questionWidth }) => `\n width: calc(${$questionWidth}px - 32px); // 32px is the left + right padding\n overflow-y: auto;\n height: 100%;\n display: flex;\n`,\n);\nexport const SideBarContainer = styled(FlexView)<{\n $questionWidth: number;\n $height: number | string;\n}>(({ $questionWidth, $height }) => {\n return `\n margin-top: ${\n typeof $height === 'number'\n ? `${-$height}px`\n : negateExpression(getMinHeightFromString($height))\n };\n position: sticky;\n left: calc((100% - ${$questionWidth}px ) *.5 + ${$questionWidth}px + 12px);\n bottom: 16px;\n align-items: center;\n height: ${typeof $height === 'number' ? `${$height}px` : getMinHeightFromString($height)};\n z-index: 1;\n`;\n});\n\nexport const GuideContainer = styled(FlexView)(\n ({ theme }) => `\n width: 100%;\n border-radius: 8px;\n border: 1px solid ${theme.colors.GREY_2};\n justify-content: center;\n align-items: center;\n padding: 10px;\n`,\n);\n\nexport const Pointer = styled.div<{ topValue: number; leftValue: number }>`\n position: fixed;\n top: ${({ topValue }) => `${topValue}px`};\n left: ${({ leftValue }) => `${leftValue}px`};\n width: 15px;\n height: 15px;\n transform: rotate(45deg);\n background: white;\n border-top: 1px solid #e0e0e0;\n border-right: 1px solid #e0e0e0;\n`;\n\nexport const CloseIcon = styled(CrossIcon)`\n position: absolute;\n top: 8px;\n right: 16px;\n`;\n\nexport const HintIcon = styled(Info3Icon)<{ $disabled: boolean }>(({ theme, $disabled }) => {\n return `\n & path {\n fill: ${$disabled ? theme.colors.GREY_4 : theme.colors.BLACK};\n }\n `;\n});\n\nexport const SolIcon = styled(SolutionIcon)<{ $disabled: boolean }>(({ theme, $disabled }) => {\n return `\n & path {\n fill: ${$disabled ? theme.colors.GREY_4 : theme.colors.BLACK};\n }\n `;\n});\n\nexport const Guide = styled(CustomElement)``;\n"],"names":["styled","FlexView","SectionContainer","$questionWidth","$actionbarHeight","theme","UnderlinedTextWrapper","UnderlinedText","Text","getMinHeightFromString","minHeight","negateString","expression","term","negateExpression","Section","SideBarContainer","$height","GuideContainer","Pointer","topValue","leftValue","CloseIcon","CrossIcon","HintIcon","Info3Icon","$disabled","SolIcon","SolutionIcon","Guide","CustomElement"],"mappings":";;;;;;;AASsBA,EAAOC,CAAQ;AAAA;AAAA;AAGxB,MAAAC,IAAmBF,EAAOC,CAAQ;AAAA,EAI7C,CAAC,EAAE,gBAAAE,GAAgB,kBAAAC,GAAkB,OAAAC,EAAY,MAAA;AAAA;AAAA,YAEvCD,CAAgB;AAAA;AAAA,gBAEZD,CAAc;AAAA;AAAA;AAAA,sBAGRE,EAAM,OAAO,MAAM;AAAA;AAAA;AAGzC,GAEaC,IAAwBN,EAAOC,CAAQ;AAAA;AAAA,GAIvCM,IAAiBP,EAAOQ,CAAI;AAAA;AAAA;AAAA;AAAA;AAAA,GAO5BC,IAAyB,CAACC,MACjCA,EAAU,WAAW,OAAO,IACvBA,EAAU,QAAQ,KAAK,SAAS,IAGlCA,GAGHC,IAAe,CAACC,MACNA,EAAW,KAAK,EAAE,MAAM,aAAa,EACxB,IAAI,CAAQC,MACjCA,EAAK,WAAW,GAAG,IACd,IAAIA,EAAK,MAAM,CAAC,CAAC,KAGtBA,EAAK,WAAW,GAAG,IACd,IAAIA,EAAK,MAAM,CAAC,CAAC,KAGnB,IAAIA,CAAI,EAChB,EAEmB,KAAK,GAAG,GAGjBC,IAAmB,CAACF,MAC3BA,EAAW,WAAW,OAAO,KAAKA,EAAW,SAAS,GAAG,KAC9CA,IAAAA,EAAW,MAAM,GAAG,EAAE,GAG5B,QAFcD,EAAaC,CAAU,CAEjB,OAGtBD,EAAaC,CAAU,GAGnBG,IAAUf,EAAOC,CAAQ;AAAA,EAIpC,CAAC,EAAE,gBAAAE,EAAA,MAAqB;AAAA,gBACVA,CAAc;AAAA;AAAA;AAAA;AAAA;AAK9B,GACaa,IAAmBhB,EAAOC,CAAQ,EAG5C,CAAC,EAAE,gBAAAE,GAAgB,SAAAc,QACb;AAAA,gBAEL,OAAOA,KAAY,WACf,GAAG,CAACA,CAAO,OACXH,EAAiBL,EAAuBQ,CAAO,CAAC,CACtD;AAAA;AAAA,uBAEqBd,CAAc,cAAcA,CAAc;AAAA;AAAA;AAAA,YAGrD,OAAOc,KAAY,WAAW,GAAGA,CAAO,OAAOR,EAAuBQ,CAAO,CAAC;AAAA;AAAA,CAGzF,GAEYC,IAAiBlB,EAAOC,CAAQ;AAAA,EAC3C,CAAC,EAAE,OAAAI,EAAA,MAAY;AAAA;AAAA;AAAA,sBAGKA,EAAM,OAAO,MAAM;AAAA;AAAA;AAAA;AAAA;AAKzC,GAEac,IAAUnB,EAAO;AAAA;AAAA,SAErB,CAAC,EAAE,UAAAoB,EAAe,MAAA,GAAGA,CAAQ,IAAI;AAAA,UAChC,CAAC,EAAE,WAAAC,EAAgB,MAAA,GAAGA,CAAS,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAShCC,IAAYtB,EAAOuB,CAAS;AAAA;AAAA;AAAA;AAAA,GAM5BC,IAAWxB,EAAOyB,CAAS,EAA0B,CAAC,EAAE,OAAApB,GAAO,WAAAqB,QACnE;AAAA;AAAA,cAEKA,IAAYrB,EAAM,OAAO,SAASA,EAAM,OAAO,KAAK;AAAA;AAAA,GAGjE,GAEYsB,IAAU3B,EAAO4B,CAAY,EAA0B,CAAC,EAAE,OAAAvB,GAAO,WAAAqB,QACrE;AAAA;AAAA,cAEKA,IAAYrB,EAAM,OAAO,SAASA,EAAM,OAAO,KAAK;AAAA;AAAA,GAGjE,GAEYwB,IAAQ7B,EAAO8B,CAAa;"}
|