@cuemath/leap 3.5.71-j5 → 3.5.71-jj01
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/features/homework/homework-card.js +159 -162
- package/dist/features/homework/homework-card.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs-styled.js +16 -19
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs-styled.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs.js +52 -54
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget.js +41 -42
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget.js.map +1 -1
- package/dist/features/milestone/milestone-resources/resources-assign/added-resource-and-filters.js +82 -68
- package/dist/features/milestone/milestone-resources/resources-assign/added-resource-and-filters.js.map +1 -1
- package/dist/features/milestone/milestone-resources/resources-assign/comps/filter-item/filter-item.js +26 -23
- package/dist/features/milestone/milestone-resources/resources-assign/comps/filter-item/filter-item.js.map +1 -1
- package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/resource-item.js +38 -32
- package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/resource-item.js.map +1 -1
- package/dist/features/milestone/milestone-resources/resources-assign/hooks/use-resource-assign-store.js +7 -0
- package/dist/features/milestone/milestone-resources/resources-assign/hooks/use-resource-assign-store.js.map +1 -0
- package/dist/features/milestone/milestone-resources/resources-assign/hooks/use-resource-assign-sync.js +33 -36
- package/dist/features/milestone/milestone-resources/resources-assign/hooks/use-resource-assign-sync.js.map +1 -1
- package/dist/features/milestone/milestone-resources/resources-assign/resource-items/resource-items.js +34 -28
- package/dist/features/milestone/milestone-resources/resources-assign/resource-items/resource-items.js.map +1 -1
- package/dist/features/milestone/milestone-resources/resources-assign/resources-assign.js +196 -162
- package/dist/features/milestone/milestone-resources/resources-assign/resources-assign.js.map +1 -1
- package/dist/features/milestone/milestone-resources/resources-assign/store/resource-assign-store.js +78 -125
- package/dist/features/milestone/milestone-resources/resources-assign/store/resource-assign-store.js.map +1 -1
- package/dist/features/milestone/milestone-tests/tests-creation/hooks/use-tests-creation-store.js +7 -0
- package/dist/features/milestone/milestone-tests/tests-creation/hooks/use-tests-creation-store.js.map +1 -0
- package/dist/features/milestone/milestone-tests/tests-creation/hooks/use-tests-creation-sync.js +16 -19
- package/dist/features/milestone/milestone-tests/tests-creation/hooks/use-tests-creation-sync.js.map +1 -1
- package/dist/features/milestone/milestone-tests/tests-creation/store/tests-creation-store.js +33 -50
- package/dist/features/milestone/milestone-tests/tests-creation/store/tests-creation-store.js.map +1 -1
- package/dist/features/milestone/milestone-tests/tests-creation/test-stages/chapter-selection/chapter-selection.js +31 -28
- package/dist/features/milestone/milestone-tests/tests-creation/test-stages/chapter-selection/chapter-selection.js.map +1 -1
- package/dist/features/milestone/milestone-tests/tests-creation/test-stages/difficulty-and-duration-selection/difficulty-and-duration-selection.js +40 -37
- package/dist/features/milestone/milestone-tests/tests-creation/test-stages/difficulty-and-duration-selection/difficulty-and-duration-selection.js.map +1 -1
- package/dist/features/milestone/milestone-tests/tests-creation/tests-creation-types.js.map +1 -1
- package/dist/features/milestone/milestone-tests/tests-creation/tests-creation.js +77 -59
- package/dist/features/milestone/milestone-tests/tests-creation/tests-creation.js.map +1 -1
- package/dist/features/trial-session/comps/learning-plan/index.js +238 -185
- package/dist/features/trial-session/comps/learning-plan/index.js.map +1 -1
- package/dist/features/trial-session/trial-session-types.js.map +1 -1
- package/dist/features/worksheet/worksheet-preview/dynamic-worksheet-preview/dynamic-worksheet-preview.js +27 -27
- package/dist/features/worksheet/worksheet-preview/dynamic-worksheet-preview/dynamic-worksheet-preview.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/package.json +1 -1
|
@@ -1,100 +1,100 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import { memo as
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import { ECardType as
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import
|
|
11
|
-
import
|
|
12
|
-
import
|
|
13
|
-
import
|
|
14
|
-
import { EHWCardListEntityType as
|
|
15
|
-
import { CardContainer as
|
|
16
|
-
import { getCardAnalyticProps as
|
|
17
|
-
const
|
|
1
|
+
import { jsxs as Y, jsx as t } from "react/jsx-runtime";
|
|
2
|
+
import { memo as pe, useRef as q, useCallback as $, useMemo as v } from "react";
|
|
3
|
+
import A from "../../assets/line-icons/icons/eye2.js";
|
|
4
|
+
import be from "../../assets/line-icons/icons/home2.js";
|
|
5
|
+
import we from "../../assets/line-icons/icons/more-vertical.js";
|
|
6
|
+
import G from "../../assets/line-icons/icons/redo.js";
|
|
7
|
+
import { ECardType as J } from "../chapters-v2/comps/node-card/node-card-types.js";
|
|
8
|
+
import U from "../ui/arrow-tooltip/arrow-tooltip.js";
|
|
9
|
+
import Ce from "../ui/buttons/clickable/clickable.js";
|
|
10
|
+
import Q from "../ui/hooks/use-context-menu-click-handler.js";
|
|
11
|
+
import Me from "../ui/layout/flex-view.js";
|
|
12
|
+
import D from "./card-menu-options.js";
|
|
13
|
+
import Ee from "./homework-card-view.js";
|
|
14
|
+
import { EHWCardListEntityType as ke } from "./hw-card-list/hw-card-list-types.js";
|
|
15
|
+
import { CardContainer as Te, MenuWrapper as _e, CardKebabMenuWrapper as $e, BlurContainer as ve, BlurFlexView as Fe, StyledMinus2Icon as Re } from "./styles.js";
|
|
16
|
+
import { getCardAnalyticProps as Se } from "./utils.js";
|
|
17
|
+
const Le = ({
|
|
18
18
|
// callbacks
|
|
19
|
-
nodeData:
|
|
20
|
-
onNodeAttempt:
|
|
19
|
+
nodeData: e,
|
|
20
|
+
onNodeAttempt: F,
|
|
21
21
|
onNodeReattempt: b,
|
|
22
22
|
onNodeReview: u,
|
|
23
23
|
onNodeUnassign: w,
|
|
24
|
-
onNodeView:
|
|
24
|
+
onNodeView: R,
|
|
25
25
|
onNodeAssignAsHomework: C,
|
|
26
26
|
onCardClick: f,
|
|
27
27
|
entityId: n,
|
|
28
|
-
entityType:
|
|
29
|
-
header:
|
|
28
|
+
entityType: M,
|
|
29
|
+
header: N,
|
|
30
30
|
homeworkId: c,
|
|
31
|
-
isInQueue:
|
|
32
|
-
mathFitCardRef:
|
|
33
|
-
renderAs:
|
|
34
|
-
score:
|
|
35
|
-
shouldOpenOnRight:
|
|
31
|
+
isInQueue: V,
|
|
32
|
+
mathFitCardRef: ee,
|
|
33
|
+
renderAs: P,
|
|
34
|
+
score: re,
|
|
35
|
+
shouldOpenOnRight: te,
|
|
36
36
|
state: h,
|
|
37
|
-
totalQuestions:
|
|
38
|
-
imageUrl:
|
|
39
|
-
studentId:
|
|
40
|
-
subHeader:
|
|
41
|
-
userMilestoneId:
|
|
42
|
-
userType:
|
|
43
|
-
puzzleHWCardRef:
|
|
44
|
-
disableMenuActions:
|
|
37
|
+
totalQuestions: W,
|
|
38
|
+
imageUrl: ie,
|
|
39
|
+
studentId: H,
|
|
40
|
+
subHeader: ne,
|
|
41
|
+
userMilestoneId: ce,
|
|
42
|
+
userType: x,
|
|
43
|
+
puzzleHWCardRef: oe,
|
|
44
|
+
disableMenuActions: z
|
|
45
45
|
}) => {
|
|
46
|
-
const o =
|
|
47
|
-
can_start:
|
|
48
|
-
can_resume:
|
|
46
|
+
const o = P === "homework", { node_type: p, permissions: se, user_node_id: d } = e, r = ce || "", S = p === "PUZZLE_CARD", i = M === ke.MATHFIT_TEST, L = h === "LOCKED", g = q(null), y = q(null), { menuVisible: X, onMenuClick: ae } = Q(g), { menuVisible: le, onMenuClick: j } = Q(y), {
|
|
47
|
+
can_start: E,
|
|
48
|
+
can_resume: k,
|
|
49
49
|
can_review: s,
|
|
50
|
-
can_unassign:
|
|
51
|
-
can_reset:
|
|
52
|
-
can_assign_as_homework:
|
|
53
|
-
} =
|
|
50
|
+
can_unassign: I,
|
|
51
|
+
can_reset: T,
|
|
52
|
+
can_assign_as_homework: B
|
|
53
|
+
} = se, a = x === "STUDENT", _ = $(() => {
|
|
54
54
|
if (s) {
|
|
55
55
|
if (typeof u != "function")
|
|
56
56
|
throw new Error("onReview must be a function");
|
|
57
57
|
if (!d)
|
|
58
58
|
throw new Error("user node id must be present to review the sheet");
|
|
59
|
-
u(
|
|
59
|
+
u(e, r);
|
|
60
60
|
return;
|
|
61
61
|
}
|
|
62
|
-
}, [s, u, d,
|
|
63
|
-
if (
|
|
62
|
+
}, [s, u, d, e, r]), ue = $(() => {
|
|
63
|
+
if (i && n) {
|
|
64
64
|
if (typeof f != "function")
|
|
65
65
|
throw new Error("onCardClick must be a function for MathFit cards");
|
|
66
|
-
f({ entityId: n, type:
|
|
66
|
+
f({ entityId: n, type: J.MATHFIT });
|
|
67
67
|
return;
|
|
68
68
|
}
|
|
69
|
-
if (
|
|
70
|
-
if (typeof
|
|
69
|
+
if (E || k) {
|
|
70
|
+
if (typeof F != "function")
|
|
71
71
|
throw new Error("onNodeAttempt must be a function");
|
|
72
|
-
|
|
72
|
+
F(e, r, c);
|
|
73
73
|
return;
|
|
74
74
|
}
|
|
75
75
|
if (!o) {
|
|
76
|
-
|
|
76
|
+
j();
|
|
77
77
|
return;
|
|
78
78
|
}
|
|
79
|
-
|
|
79
|
+
_();
|
|
80
80
|
}, [
|
|
81
|
-
|
|
82
|
-
|
|
81
|
+
k,
|
|
82
|
+
E,
|
|
83
83
|
n,
|
|
84
84
|
c,
|
|
85
85
|
o,
|
|
86
|
-
|
|
87
|
-
e,
|
|
86
|
+
i,
|
|
88
87
|
r,
|
|
88
|
+
e,
|
|
89
89
|
f,
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
]),
|
|
94
|
-
if (
|
|
90
|
+
F,
|
|
91
|
+
j,
|
|
92
|
+
_
|
|
93
|
+
]), O = $(() => {
|
|
94
|
+
if (i && n) {
|
|
95
95
|
if (typeof f != "function")
|
|
96
96
|
throw new Error("onCardClick must be a function for MathFit cards");
|
|
97
|
-
f({ entityId: n, type:
|
|
97
|
+
f({ entityId: n, type: J.MATHFIT });
|
|
98
98
|
return;
|
|
99
99
|
}
|
|
100
100
|
if (s) {
|
|
@@ -102,224 +102,221 @@ const yr = ({
|
|
|
102
102
|
throw new Error("onNodeReview must be a function");
|
|
103
103
|
if (!d)
|
|
104
104
|
throw new Error("user node id must be present to review the sheet");
|
|
105
|
-
u(
|
|
105
|
+
u(e, r, c);
|
|
106
106
|
return;
|
|
107
107
|
}
|
|
108
|
-
if (typeof
|
|
108
|
+
if (typeof R != "function")
|
|
109
109
|
throw new Error("onNodeView must be a function");
|
|
110
|
-
|
|
110
|
+
R(e, r);
|
|
111
111
|
}, [
|
|
112
112
|
s,
|
|
113
113
|
n,
|
|
114
114
|
c,
|
|
115
|
-
|
|
116
|
-
e,
|
|
115
|
+
i,
|
|
117
116
|
r,
|
|
117
|
+
e,
|
|
118
118
|
f,
|
|
119
119
|
u,
|
|
120
|
-
|
|
120
|
+
R,
|
|
121
121
|
d
|
|
122
|
-
]), l =
|
|
123
|
-
(
|
|
124
|
-
switch (
|
|
122
|
+
]), l = $(
|
|
123
|
+
(m) => {
|
|
124
|
+
switch (m) {
|
|
125
125
|
case "teacher-card-view":
|
|
126
|
-
|
|
126
|
+
O();
|
|
127
127
|
return;
|
|
128
128
|
case "student-card-view":
|
|
129
|
-
|
|
129
|
+
_();
|
|
130
130
|
return;
|
|
131
131
|
case "teacher-card-unassign":
|
|
132
|
-
w == null || w(
|
|
132
|
+
w == null || w(e, r, c);
|
|
133
133
|
return;
|
|
134
134
|
case "student-card-reattempt":
|
|
135
135
|
case "teacher-card-redo":
|
|
136
|
-
b == null || b(
|
|
136
|
+
b == null || b(e, r);
|
|
137
137
|
return;
|
|
138
138
|
case "teacher-card-assign-as-hw":
|
|
139
|
-
C == null || C(
|
|
139
|
+
C == null || C(e, r);
|
|
140
140
|
return;
|
|
141
141
|
default:
|
|
142
|
-
throw new Error(`No callback function for ${
|
|
142
|
+
throw new Error(`No callback function for ${m}`);
|
|
143
143
|
}
|
|
144
144
|
},
|
|
145
145
|
[
|
|
146
146
|
c,
|
|
147
|
-
e,
|
|
148
147
|
r,
|
|
148
|
+
e,
|
|
149
149
|
C,
|
|
150
150
|
b,
|
|
151
151
|
w,
|
|
152
|
-
|
|
153
|
-
|
|
152
|
+
_,
|
|
153
|
+
O
|
|
154
154
|
]
|
|
155
|
-
),
|
|
156
|
-
const
|
|
155
|
+
), fe = v(() => {
|
|
156
|
+
const m = [
|
|
157
157
|
{
|
|
158
158
|
id: "teacher-card-view",
|
|
159
159
|
label: s ? "Review" : "View",
|
|
160
|
-
icon:
|
|
160
|
+
icon: A,
|
|
161
161
|
disabled: !1,
|
|
162
162
|
onClick: l
|
|
163
163
|
},
|
|
164
164
|
{
|
|
165
165
|
id: "teacher-card-unassign",
|
|
166
166
|
label: "Unassign",
|
|
167
|
-
icon:
|
|
168
|
-
disabled: o ?
|
|
167
|
+
icon: Re,
|
|
168
|
+
disabled: o ? p === "MASTERY" : !I,
|
|
169
169
|
onClick: l
|
|
170
170
|
},
|
|
171
171
|
{
|
|
172
172
|
id: "teacher-card-redo",
|
|
173
173
|
label: "Redo",
|
|
174
|
-
icon:
|
|
175
|
-
disabled: !
|
|
174
|
+
icon: G,
|
|
175
|
+
disabled: !T,
|
|
176
176
|
onClick: l
|
|
177
177
|
},
|
|
178
178
|
{
|
|
179
179
|
id: "teacher-card-assign-as-hw",
|
|
180
180
|
label: "Assign as HW",
|
|
181
|
-
icon:
|
|
182
|
-
disabled: !
|
|
181
|
+
icon: be,
|
|
182
|
+
disabled: !B,
|
|
183
183
|
onClick: l
|
|
184
184
|
}
|
|
185
185
|
];
|
|
186
|
-
return
|
|
186
|
+
return z ? m.filter((Z) => Z.id === "teacher-card-view") : m;
|
|
187
187
|
}, [
|
|
188
188
|
s,
|
|
189
|
+
I,
|
|
190
|
+
T,
|
|
189
191
|
B,
|
|
190
|
-
_,
|
|
191
|
-
K,
|
|
192
192
|
o,
|
|
193
|
-
|
|
194
|
-
|
|
193
|
+
p,
|
|
194
|
+
z,
|
|
195
195
|
l
|
|
196
|
-
]),
|
|
196
|
+
]), he = v(
|
|
197
197
|
() => [
|
|
198
198
|
{
|
|
199
199
|
id: "student-card-view",
|
|
200
200
|
label: "Review",
|
|
201
|
-
icon:
|
|
201
|
+
icon: A,
|
|
202
202
|
disabled: !s,
|
|
203
203
|
onClick: l
|
|
204
204
|
},
|
|
205
205
|
{
|
|
206
206
|
id: "student-card-reattempt",
|
|
207
207
|
label: "Reattempt",
|
|
208
|
-
icon:
|
|
209
|
-
disabled: !
|
|
208
|
+
icon: G,
|
|
209
|
+
disabled: !T,
|
|
210
210
|
onClick: l
|
|
211
211
|
}
|
|
212
212
|
],
|
|
213
|
-
[s,
|
|
214
|
-
),
|
|
215
|
-
() =>
|
|
216
|
-
canResume:
|
|
217
|
-
canStart:
|
|
213
|
+
[s, T, l]
|
|
214
|
+
), K = v(
|
|
215
|
+
() => Se({
|
|
216
|
+
canResume: k,
|
|
217
|
+
canStart: E,
|
|
218
218
|
entityId: n,
|
|
219
|
-
entityType:
|
|
219
|
+
entityType: M,
|
|
220
220
|
homeworkId: c,
|
|
221
221
|
isHomeWork: o,
|
|
222
222
|
isStudent: a,
|
|
223
|
-
milestoneId:
|
|
224
|
-
nodeType:
|
|
225
|
-
studentId:
|
|
226
|
-
totalQuestions:
|
|
223
|
+
milestoneId: r,
|
|
224
|
+
nodeType: p,
|
|
225
|
+
studentId: H,
|
|
226
|
+
totalQuestions: W,
|
|
227
227
|
userNodeId: d
|
|
228
228
|
}),
|
|
229
229
|
[
|
|
230
|
-
|
|
231
|
-
M,
|
|
232
|
-
n,
|
|
230
|
+
k,
|
|
233
231
|
E,
|
|
232
|
+
n,
|
|
233
|
+
M,
|
|
234
234
|
c,
|
|
235
235
|
o,
|
|
236
236
|
a,
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
237
|
+
r,
|
|
238
|
+
p,
|
|
239
|
+
H,
|
|
240
|
+
W,
|
|
241
241
|
d
|
|
242
242
|
]
|
|
243
|
-
),
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
return /* @__PURE__ */ I(_r, { $position: "relative", $width: "fit-content", children: [
|
|
248
|
-
/* @__PURE__ */ i(
|
|
249
|
-
Cr,
|
|
243
|
+
), de = !a && !S && !i, me = v(() => a && S && L || !a && i && h !== "COMPLETED" && h !== "EXPIRED" || i && L, [a, S, L, i, h]);
|
|
244
|
+
return /* @__PURE__ */ Y(Te, { $position: "relative", $width: "fit-content", children: [
|
|
245
|
+
/* @__PURE__ */ t(
|
|
246
|
+
Ce,
|
|
250
247
|
{
|
|
251
|
-
onClick: a ?
|
|
248
|
+
onClick: a ? ue : O,
|
|
252
249
|
label: "homework-card",
|
|
253
|
-
analyticsLabel:
|
|
254
|
-
analyticsProps:
|
|
255
|
-
disabled:
|
|
256
|
-
children: /* @__PURE__ */
|
|
257
|
-
|
|
250
|
+
analyticsLabel: K.analyticsLabel,
|
|
251
|
+
analyticsProps: K.analyticsProps,
|
|
252
|
+
disabled: me,
|
|
253
|
+
children: /* @__PURE__ */ t(
|
|
254
|
+
Ee,
|
|
258
255
|
{
|
|
259
|
-
entityType:
|
|
260
|
-
header:
|
|
261
|
-
isInQueue:
|
|
262
|
-
isMilestone:
|
|
263
|
-
nodeData:
|
|
264
|
-
puzzleHWCardRef:
|
|
265
|
-
mathFitCardRef:
|
|
266
|
-
score:
|
|
267
|
-
imageUrl:
|
|
256
|
+
entityType: M,
|
|
257
|
+
header: N,
|
|
258
|
+
isInQueue: V,
|
|
259
|
+
isMilestone: P === "milestone",
|
|
260
|
+
nodeData: e,
|
|
261
|
+
puzzleHWCardRef: oe,
|
|
262
|
+
mathFitCardRef: ee,
|
|
263
|
+
score: re,
|
|
264
|
+
imageUrl: ie,
|
|
268
265
|
state: h,
|
|
269
|
-
studentContainerRef:
|
|
270
|
-
subHeader:
|
|
271
|
-
userType:
|
|
266
|
+
studentContainerRef: y,
|
|
267
|
+
subHeader: ne,
|
|
268
|
+
userType: x
|
|
272
269
|
}
|
|
273
270
|
)
|
|
274
271
|
}
|
|
275
272
|
),
|
|
276
|
-
a && !o && !
|
|
277
|
-
|
|
273
|
+
a && !o && !i && /* @__PURE__ */ t(
|
|
274
|
+
D,
|
|
278
275
|
{
|
|
279
276
|
$width: 200,
|
|
280
|
-
options:
|
|
281
|
-
triggerRef:
|
|
282
|
-
visible:
|
|
277
|
+
options: he,
|
|
278
|
+
triggerRef: y,
|
|
279
|
+
visible: le,
|
|
283
280
|
shouldOpenOnRight: !1
|
|
284
281
|
}
|
|
285
282
|
),
|
|
286
|
-
|
|
287
|
-
/* @__PURE__ */
|
|
288
|
-
|
|
283
|
+
de && /* @__PURE__ */ Y(_e, { $position: "absolute", $width: "fit-content", $borderRadiusX: 2, children: [
|
|
284
|
+
/* @__PURE__ */ t(
|
|
285
|
+
U,
|
|
289
286
|
{
|
|
290
287
|
renderAs: "primary",
|
|
291
288
|
tooltipItem: "Review",
|
|
292
289
|
position: "bottom",
|
|
293
290
|
zIndex: 6,
|
|
294
291
|
parentWidth: "100%",
|
|
295
|
-
hidden:
|
|
296
|
-
children: /* @__PURE__ */
|
|
297
|
-
|
|
292
|
+
hidden: X || h !== "WAIT_FOR_REVIEW" && o,
|
|
293
|
+
children: /* @__PURE__ */ t(
|
|
294
|
+
$e,
|
|
298
295
|
{
|
|
299
296
|
$alignItems: "center",
|
|
300
297
|
$justifyContent: "center",
|
|
301
|
-
ref:
|
|
302
|
-
onClick:
|
|
303
|
-
children: /* @__PURE__ */
|
|
298
|
+
ref: g,
|
|
299
|
+
onClick: ae,
|
|
300
|
+
children: /* @__PURE__ */ t(we, { width: 16, height: 16 })
|
|
304
301
|
}
|
|
305
302
|
)
|
|
306
303
|
}
|
|
307
304
|
),
|
|
308
|
-
/* @__PURE__ */
|
|
309
|
-
|
|
305
|
+
/* @__PURE__ */ t(
|
|
306
|
+
D,
|
|
310
307
|
{
|
|
311
|
-
options:
|
|
312
|
-
triggerRef:
|
|
313
|
-
visible:
|
|
314
|
-
shouldOpenOnRight:
|
|
308
|
+
options: fe,
|
|
309
|
+
triggerRef: g,
|
|
310
|
+
visible: X,
|
|
311
|
+
shouldOpenOnRight: te,
|
|
315
312
|
$width: 144
|
|
316
313
|
}
|
|
317
314
|
)
|
|
318
315
|
] }),
|
|
319
|
-
|
|
316
|
+
V && /* @__PURE__ */ t(ve, { $background: "WHITE_5", children: /* @__PURE__ */ t(Fe, { $heightX: 1, $widthX: 6, children: /* @__PURE__ */ t(U, { renderAs: "primary", tooltipItem: "Not visible to student", position: "bottom", children: /* @__PURE__ */ t(Me, { $heightX: 1, $widthX: 6 }) }) }) })
|
|
320
317
|
] });
|
|
321
|
-
},
|
|
318
|
+
}, Ae = pe(Le);
|
|
322
319
|
export {
|
|
323
|
-
|
|
320
|
+
Ae as default
|
|
324
321
|
};
|
|
325
322
|
//# sourceMappingURL=homework-card.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"homework-card.js","sources":["../../../src/features/homework/homework-card.tsx"],"sourcesContent":["import { memo, useCallback, useMemo, useRef, type FC } from 'react';\n\nimport Eye2Icon from '../../assets/line-icons/icons/eye2';\nimport Home2Icon from '../../assets/line-icons/icons/home2';\nimport MoreVerticalIcon from '../../assets/line-icons/icons/more-vertical';\nimport RedoIcon from '../../assets/line-icons/icons/redo';\nimport {\n ECardType,\n type INodeCardCallbacks,\n type INodeDataProps,\n type TSheetStates,\n} from '../chapters-v2/comps/node-card/node-card-types';\nimport ArrowTooltip from '../ui/arrow-tooltip/arrow-tooltip';\nimport Clickable from '../ui/buttons/clickable/clickable';\nimport useContextMenuClickHandler from '../ui/hooks/use-context-menu-click-handler';\nimport FlexView from '../ui/layout/flex-view';\nimport type { TUserTypes } from '../ui/types';\nimport CardMenuOptions from './card-menu-options';\nimport HomeworkView from './homework-card-view';\nimport { EHWCardListEntityType } from './hw-card-list/hw-card-list-types';\nimport * as Styled from './styles';\nimport { getCardAnalyticProps } from './utils';\n\ninterface IHomeworkCardProps extends INodeCardCallbacks {\n entityId?: string;\n entityType?: EHWCardListEntityType;\n header: string;\n homeworkId?: string;\n isInQueue?: boolean;\n nodeData: INodeDataProps;\n puzzleHWCardRef?: React.RefObject<HTMLDivElement>;\n mathFitCardRef?: React.RefObject<HTMLDivElement>;\n disableMenuActions?: boolean;\n renderAs: 'homework' | 'milestone';\n score: number | null;\n shouldOpenOnRight: boolean;\n state: TSheetStates;\n imageUrl?: string;\n studentId: string;\n subHeader: string;\n userMilestoneId?: string;\n userType: TUserTypes;\n totalQuestions: number;\n}\n\nconst HomeworkCard: FC<IHomeworkCardProps> = ({\n // callbacks\n nodeData,\n onNodeAttempt,\n onNodeReattempt,\n onNodeReview,\n onNodeUnassign,\n onNodeView,\n onNodeAssignAsHomework,\n onCardClick,\n\n entityId,\n entityType,\n header,\n homeworkId,\n isInQueue,\n mathFitCardRef,\n renderAs,\n score,\n shouldOpenOnRight,\n state,\n totalQuestions,\n imageUrl,\n studentId,\n subHeader,\n userMilestoneId,\n userType,\n puzzleHWCardRef,\n disableMenuActions,\n}) => {\n const isHomeWork = renderAs === 'homework';\n const { node_type: nodeType, permissions, user_node_id: userNodeId } = nodeData;\n\n const milestoneId = userMilestoneId || '';\n const isPuzzleCard = nodeType === 'PUZZLE_CARD';\n const isMathFitCard = entityType === EHWCardListEntityType.MATHFIT_TEST;\n const isSheetLocked = state === 'LOCKED';\n\n const teacherContainerRef = useRef<HTMLDivElement>(null) as React.RefObject<HTMLDivElement>;\n const studentContainerRef = useRef<HTMLDivElement>(null) as React.RefObject<HTMLDivElement>;\n const { menuVisible: teacherMenuVisible, onMenuClick: onTeacherMenuClick } =\n useContextMenuClickHandler(teacherContainerRef);\n const { menuVisible: studentMenuVisible, onMenuClick: onStudentMenuClick } =\n useContextMenuClickHandler(studentContainerRef);\n\n const {\n can_start: canStart,\n can_resume: canResume,\n can_review: canReview,\n can_unassign: canUnassign,\n can_reset: canReset,\n can_assign_as_homework: canAssignAsHw,\n } = permissions;\n const isStudent = userType === 'STUDENT';\n\n const onStudentViewSheet = useCallback(() => {\n if (canReview) {\n if (typeof onNodeReview !== 'function') {\n throw new Error('onReview must be a function');\n }\n\n if (!userNodeId) {\n throw new Error('user node id must be present to review the sheet');\n }\n onNodeReview(nodeData, milestoneId);\n\n return;\n }\n }, [canReview, onNodeReview, userNodeId, nodeData, milestoneId]);\n\n const onStudentCardClick = useCallback(() => {\n // Handle MathFit card clicks\n if (isMathFitCard && entityId) {\n if (typeof onCardClick !== 'function') {\n throw new Error('onCardClick must be a function for MathFit cards');\n }\n\n onCardClick({ entityId, type: ECardType.MATHFIT });\n\n return;\n }\n\n if (canStart || canResume) {\n if (typeof onNodeAttempt !== 'function') {\n throw new Error('onNodeAttempt must be a function');\n }\n\n onNodeAttempt(nodeData, milestoneId, homeworkId);\n\n return;\n }\n\n if (!isHomeWork) {\n onStudentMenuClick();\n\n return;\n }\n onStudentViewSheet();\n }, [\n canResume,\n canStart,\n entityId,\n homeworkId,\n isHomeWork,\n isMathFitCard,\n milestoneId,\n nodeData,\n onCardClick,\n onNodeAttempt,\n onStudentMenuClick,\n onStudentViewSheet,\n ]);\n\n const onTeacherCardClick = useCallback(() => {\n // Handle MathFit card clicks\n if (isMathFitCard && entityId) {\n if (typeof onCardClick !== 'function') {\n throw new Error('onCardClick must be a function for MathFit cards');\n }\n\n onCardClick({ entityId, type: ECardType.MATHFIT });\n\n return;\n }\n\n if (canReview) {\n if (typeof onNodeReview !== 'function') {\n throw new Error('onNodeReview must be a function');\n }\n\n if (!userNodeId) {\n throw new Error('user node id must be present to review the sheet');\n }\n onNodeReview(nodeData, milestoneId, homeworkId);\n\n return;\n }\n\n if (typeof onNodeView !== 'function') {\n throw new Error('onNodeView must be a function');\n }\n\n onNodeView(nodeData, milestoneId);\n }, [\n canReview,\n entityId,\n homeworkId,\n isMathFitCard,\n milestoneId,\n nodeData,\n onCardClick,\n onNodeReview,\n onNodeView,\n userNodeId,\n ]);\n\n const handleOnMenuOptionClick = useCallback(\n (optionId: string) => {\n switch (optionId) {\n case 'teacher-card-view':\n onTeacherCardClick();\n\n return;\n case 'student-card-view':\n onStudentViewSheet();\n\n return;\n case 'teacher-card-unassign':\n onNodeUnassign?.(nodeData, milestoneId, homeworkId);\n\n return;\n case 'student-card-reattempt':\n case 'teacher-card-redo':\n onNodeReattempt?.(nodeData, milestoneId);\n\n return;\n\n case 'teacher-card-assign-as-hw':\n onNodeAssignAsHomework?.(nodeData, milestoneId);\n\n return;\n\n default:\n throw new Error(`No callback function for ${optionId}`);\n }\n },\n [\n homeworkId,\n milestoneId,\n nodeData,\n onNodeAssignAsHomework,\n onNodeReattempt,\n onNodeUnassign,\n onStudentViewSheet,\n onTeacherCardClick,\n ],\n );\n\n const teacherOptions = useMemo(() => {\n const options = [\n {\n id: 'teacher-card-view',\n label: canReview ? 'Review' : 'View',\n icon: Eye2Icon,\n disabled: false,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'teacher-card-unassign',\n label: 'Unassign',\n icon: Styled.StyledMinus2Icon,\n disabled: isHomeWork ? nodeType === 'MASTERY' : !canUnassign,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'teacher-card-redo',\n label: 'Redo',\n icon: RedoIcon,\n disabled: !canReset,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'teacher-card-assign-as-hw',\n label: 'Assign as HW',\n icon: Home2Icon,\n disabled: !canAssignAsHw,\n onClick: handleOnMenuOptionClick,\n },\n ];\n\n return disableMenuActions\n ? options.filter(option => option.id === 'teacher-card-view')\n : options;\n }, [\n canReview,\n canUnassign,\n canReset,\n canAssignAsHw,\n isHomeWork,\n nodeType,\n disableMenuActions,\n handleOnMenuOptionClick,\n ]);\n\n const studentOptions = useMemo(\n () => [\n {\n id: 'student-card-view',\n label: 'Review',\n icon: Eye2Icon,\n disabled: !canReview,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'student-card-reattempt',\n label: 'Reattempt',\n icon: RedoIcon,\n disabled: !canReset,\n onClick: handleOnMenuOptionClick,\n },\n ],\n [canReview, canReset, handleOnMenuOptionClick],\n );\n\n const analyticsLabel = useMemo(\n () =>\n getCardAnalyticProps({\n canResume,\n canStart,\n entityId,\n entityType,\n homeworkId,\n isHomeWork,\n isStudent,\n milestoneId,\n nodeType,\n studentId,\n totalQuestions,\n userNodeId,\n }),\n [\n canResume,\n canStart,\n entityId,\n entityType,\n homeworkId,\n isHomeWork,\n isStudent,\n milestoneId,\n nodeType,\n studentId,\n totalQuestions,\n userNodeId,\n ],\n );\n\n const showMoreMenu = !isStudent && !isPuzzleCard && !isMathFitCard;\n\n const isClickableDisabled = useMemo(\n () =>\n (isStudent && isPuzzleCard && isSheetLocked) ||\n (!isStudent && isMathFitCard && state !== 'COMPLETED' && state !== 'EXPIRED') ||\n (isMathFitCard && isSheetLocked),\n [isStudent, isPuzzleCard, isSheetLocked, isMathFitCard, state],\n );\n\n return (\n <Styled.CardContainer $position=\"relative\" $width=\"fit-content\">\n <Clickable\n onClick={isStudent ? onStudentCardClick : onTeacherCardClick}\n label=\"homework-card\"\n analyticsLabel={analyticsLabel.analyticsLabel}\n analyticsProps={analyticsLabel.analyticsProps}\n disabled={isClickableDisabled}\n >\n <HomeworkView\n entityType={entityType}\n header={header}\n isInQueue={isInQueue}\n isMilestone={renderAs === 'milestone'}\n nodeData={nodeData}\n puzzleHWCardRef={puzzleHWCardRef}\n mathFitCardRef={mathFitCardRef}\n score={score}\n imageUrl={imageUrl}\n state={state}\n studentContainerRef={studentContainerRef}\n subHeader={subHeader}\n userType={userType}\n />\n </Clickable>\n {isStudent && !isHomeWork && !isMathFitCard && (\n <CardMenuOptions\n $width={200}\n options={studentOptions}\n triggerRef={studentContainerRef}\n visible={studentMenuVisible}\n shouldOpenOnRight={false}\n />\n )}\n {showMoreMenu && (\n <Styled.MenuWrapper $position=\"absolute\" $width=\"fit-content\" $borderRadiusX={2}>\n <ArrowTooltip\n renderAs=\"primary\"\n tooltipItem=\"Review\"\n position=\"bottom\"\n zIndex={6}\n parentWidth=\"100%\"\n hidden={teacherMenuVisible || (state !== 'WAIT_FOR_REVIEW' && isHomeWork)}\n >\n <Styled.CardKebabMenuWrapper\n $alignItems=\"center\"\n $justifyContent=\"center\"\n ref={teacherContainerRef}\n onClick={onTeacherMenuClick}\n >\n <MoreVerticalIcon width={16} height={16} />\n </Styled.CardKebabMenuWrapper>\n </ArrowTooltip>\n <CardMenuOptions\n options={teacherOptions}\n triggerRef={teacherContainerRef}\n visible={teacherMenuVisible}\n shouldOpenOnRight={shouldOpenOnRight}\n $width={144}\n />\n </Styled.MenuWrapper>\n )}\n {isInQueue && (\n <Styled.BlurContainer $background=\"WHITE_5\">\n <Styled.BlurFlexView $heightX={1} $widthX={6}>\n <ArrowTooltip renderAs=\"primary\" tooltipItem=\"Not visible to student\" position=\"bottom\">\n <FlexView $heightX={1} $widthX={6} />\n </ArrowTooltip>\n </Styled.BlurFlexView>\n </Styled.BlurContainer>\n )}\n </Styled.CardContainer>\n );\n};\n\nexport default memo(HomeworkCard);\n"],"names":["HomeworkCard","nodeData","onNodeAttempt","onNodeReattempt","onNodeReview","onNodeUnassign","onNodeView","onNodeAssignAsHomework","onCardClick","entityId","entityType","header","homeworkId","isInQueue","mathFitCardRef","renderAs","score","shouldOpenOnRight","state","totalQuestions","imageUrl","studentId","subHeader","userMilestoneId","userType","puzzleHWCardRef","disableMenuActions","isHomeWork","nodeType","permissions","userNodeId","milestoneId","isPuzzleCard","isMathFitCard","EHWCardListEntityType","isSheetLocked","teacherContainerRef","useRef","studentContainerRef","teacherMenuVisible","onTeacherMenuClick","useContextMenuClickHandler","studentMenuVisible","onStudentMenuClick","canStart","canResume","canReview","canUnassign","canReset","canAssignAsHw","isStudent","onStudentViewSheet","useCallback","onStudentCardClick","ECardType","onTeacherCardClick","handleOnMenuOptionClick","optionId","teacherOptions","useMemo","options","Eye2Icon","Styled.StyledMinus2Icon","RedoIcon","Home2Icon","option","studentOptions","analyticsLabel","getCardAnalyticProps","showMoreMenu","isClickableDisabled","Styled.CardContainer","jsx","Clickable","HomeworkView","CardMenuOptions","jsxs","Styled.MenuWrapper","ArrowTooltip","Styled.CardKebabMenuWrapper","MoreVerticalIcon","Styled.BlurContainer","Styled.BlurFlexView","FlexView","HomeworkCard$1","memo"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"homework-card.js","sources":["../../../src/features/homework/homework-card.tsx"],"sourcesContent":["import { memo, useCallback, useMemo, useRef, type FC } from 'react';\n\nimport Eye2Icon from '../../assets/line-icons/icons/eye2';\nimport Home2Icon from '../../assets/line-icons/icons/home2';\nimport MoreVerticalIcon from '../../assets/line-icons/icons/more-vertical';\nimport RedoIcon from '../../assets/line-icons/icons/redo';\nimport {\n ECardType,\n type INodeCardCallbacks,\n type INodeDataProps,\n type TSheetStates,\n} from '../chapters-v2/comps/node-card/node-card-types';\nimport ArrowTooltip from '../ui/arrow-tooltip/arrow-tooltip';\nimport Clickable from '../ui/buttons/clickable/clickable';\nimport useContextMenuClickHandler from '../ui/hooks/use-context-menu-click-handler';\nimport FlexView from '../ui/layout/flex-view';\nimport type { TUserTypes } from '../ui/types';\nimport CardMenuOptions from './card-menu-options';\nimport HomeworkView from './homework-card-view';\nimport { EHWCardListEntityType } from './hw-card-list/hw-card-list-types';\nimport * as Styled from './styles';\nimport { getCardAnalyticProps } from './utils';\n\ninterface IHomeworkCardProps extends INodeCardCallbacks {\n entityId?: string;\n entityType?: EHWCardListEntityType;\n header: string;\n homeworkId?: string;\n isInQueue?: boolean;\n nodeData: INodeDataProps;\n puzzleHWCardRef?: React.RefObject<HTMLDivElement>;\n mathFitCardRef?: React.RefObject<HTMLDivElement>;\n disableMenuActions?: boolean;\n renderAs: 'homework' | 'milestone';\n score: number | null;\n shouldOpenOnRight: boolean;\n state: TSheetStates;\n imageUrl?: string;\n studentId: string;\n subHeader: string;\n userMilestoneId?: string;\n userType: TUserTypes;\n totalQuestions: number;\n}\n\nconst HomeworkCard: FC<IHomeworkCardProps> = ({\n // callbacks\n nodeData,\n onNodeAttempt,\n onNodeReattempt,\n onNodeReview,\n onNodeUnassign,\n onNodeView,\n onNodeAssignAsHomework,\n onCardClick,\n\n entityId,\n entityType,\n header,\n homeworkId,\n isInQueue,\n mathFitCardRef,\n renderAs,\n score,\n shouldOpenOnRight,\n state,\n totalQuestions,\n imageUrl,\n studentId,\n subHeader,\n userMilestoneId,\n userType,\n puzzleHWCardRef,\n disableMenuActions,\n}) => {\n const isHomeWork = renderAs === 'homework';\n const { node_type: nodeType, permissions, user_node_id: userNodeId } = nodeData;\n\n const milestoneId = userMilestoneId || '';\n const isPuzzleCard = nodeType === 'PUZZLE_CARD';\n const isMathFitCard = entityType === EHWCardListEntityType.MATHFIT_TEST;\n const isSheetLocked = state === 'LOCKED';\n\n const teacherContainerRef = useRef<HTMLDivElement>(null) as React.RefObject<HTMLDivElement>;\n const studentContainerRef = useRef<HTMLDivElement>(null) as React.RefObject<HTMLDivElement>;\n const { menuVisible: teacherMenuVisible, onMenuClick: onTeacherMenuClick } =\n useContextMenuClickHandler(teacherContainerRef);\n const { menuVisible: studentMenuVisible, onMenuClick: onStudentMenuClick } =\n useContextMenuClickHandler(studentContainerRef);\n\n const {\n can_start: canStart,\n can_resume: canResume,\n can_review: canReview,\n can_unassign: canUnassign,\n can_reset: canReset,\n can_assign_as_homework: canAssignAsHw,\n } = permissions;\n const isStudent = userType === 'STUDENT';\n\n const onStudentViewSheet = useCallback(() => {\n if (canReview) {\n if (typeof onNodeReview !== 'function') {\n throw new Error('onReview must be a function');\n }\n\n if (!userNodeId) {\n throw new Error('user node id must be present to review the sheet');\n }\n onNodeReview(nodeData, milestoneId);\n\n return;\n }\n }, [canReview, onNodeReview, userNodeId, nodeData, milestoneId]);\n\n const onStudentCardClick = useCallback(() => {\n // Handle MathFit card clicks\n if (isMathFitCard && entityId) {\n if (typeof onCardClick !== 'function') {\n throw new Error('onCardClick must be a function for MathFit cards');\n }\n\n onCardClick({ entityId, type: ECardType.MATHFIT });\n\n return;\n }\n\n if (canStart || canResume) {\n if (typeof onNodeAttempt !== 'function') {\n throw new Error('onNodeAttempt must be a function');\n }\n\n onNodeAttempt(nodeData, milestoneId, homeworkId);\n\n return;\n }\n\n if (!isHomeWork) {\n onStudentMenuClick();\n\n return;\n }\n onStudentViewSheet();\n }, [\n canResume,\n canStart,\n entityId,\n homeworkId,\n isHomeWork,\n isMathFitCard,\n milestoneId,\n nodeData,\n onCardClick,\n onNodeAttempt,\n onStudentMenuClick,\n onStudentViewSheet,\n ]);\n\n const onTeacherCardClick = useCallback(() => {\n // Handle MathFit card clicks\n if (isMathFitCard && entityId) {\n if (typeof onCardClick !== 'function') {\n throw new Error('onCardClick must be a function for MathFit cards');\n }\n\n onCardClick({ entityId, type: ECardType.MATHFIT });\n\n return;\n }\n\n if (canReview) {\n if (typeof onNodeReview !== 'function') {\n throw new Error('onNodeReview must be a function');\n }\n\n if (!userNodeId) {\n throw new Error('user node id must be present to review the sheet');\n }\n onNodeReview(nodeData, milestoneId, homeworkId);\n\n return;\n }\n\n if (typeof onNodeView !== 'function') {\n throw new Error('onNodeView must be a function');\n }\n\n onNodeView(nodeData, milestoneId);\n }, [\n canReview,\n entityId,\n homeworkId,\n isMathFitCard,\n milestoneId,\n nodeData,\n onCardClick,\n onNodeReview,\n onNodeView,\n userNodeId,\n ]);\n\n const handleOnMenuOptionClick = useCallback(\n (optionId: string) => {\n switch (optionId) {\n case 'teacher-card-view':\n onTeacherCardClick();\n\n return;\n case 'student-card-view':\n onStudentViewSheet();\n\n return;\n case 'teacher-card-unassign':\n onNodeUnassign?.(nodeData, milestoneId, homeworkId);\n\n return;\n case 'student-card-reattempt':\n case 'teacher-card-redo':\n onNodeReattempt?.(nodeData, milestoneId);\n\n return;\n\n case 'teacher-card-assign-as-hw':\n onNodeAssignAsHomework?.(nodeData, milestoneId);\n\n return;\n\n default:\n throw new Error(`No callback function for ${optionId}`);\n }\n },\n [\n homeworkId,\n milestoneId,\n nodeData,\n onNodeAssignAsHomework,\n onNodeReattempt,\n onNodeUnassign,\n onStudentViewSheet,\n onTeacherCardClick,\n ],\n );\n\n const teacherOptions = useMemo(() => {\n const options = [\n {\n id: 'teacher-card-view',\n label: canReview ? 'Review' : 'View',\n icon: Eye2Icon,\n disabled: false,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'teacher-card-unassign',\n label: 'Unassign',\n icon: Styled.StyledMinus2Icon,\n disabled: isHomeWork ? nodeType === 'MASTERY' : !canUnassign,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'teacher-card-redo',\n label: 'Redo',\n icon: RedoIcon,\n disabled: !canReset,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'teacher-card-assign-as-hw',\n label: 'Assign as HW',\n icon: Home2Icon,\n disabled: !canAssignAsHw,\n onClick: handleOnMenuOptionClick,\n },\n ];\n\n return disableMenuActions\n ? options.filter(option => option.id === 'teacher-card-view')\n : options;\n }, [\n canReview,\n canUnassign,\n canReset,\n canAssignAsHw,\n isHomeWork,\n nodeType,\n disableMenuActions,\n handleOnMenuOptionClick,\n ]);\n\n const studentOptions = useMemo(\n () => [\n {\n id: 'student-card-view',\n label: 'Review',\n icon: Eye2Icon,\n disabled: !canReview,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'student-card-reattempt',\n label: 'Reattempt',\n icon: RedoIcon,\n disabled: !canReset,\n onClick: handleOnMenuOptionClick,\n },\n ],\n [canReview, canReset, handleOnMenuOptionClick],\n );\n\n const analyticsLabel = useMemo(\n () =>\n getCardAnalyticProps({\n canResume,\n canStart,\n entityId,\n entityType,\n homeworkId,\n isHomeWork,\n isStudent,\n milestoneId,\n nodeType,\n studentId,\n totalQuestions,\n userNodeId,\n }),\n [\n canResume,\n canStart,\n entityId,\n entityType,\n homeworkId,\n isHomeWork,\n isStudent,\n milestoneId,\n nodeType,\n studentId,\n totalQuestions,\n userNodeId,\n ],\n );\n\n const showMoreMenu = !isStudent && !isPuzzleCard && !isMathFitCard;\n\n const isClickableDisabled = useMemo(() => {\n const isStudentPuzzleLocked = isStudent && isPuzzleCard && isSheetLocked;\n const isTeacherMathFitIncomplete =\n !isStudent && isMathFitCard && state !== 'COMPLETED' && state !== 'EXPIRED';\n const isMathFitLocked = isMathFitCard && isSheetLocked;\n\n return isStudentPuzzleLocked || isTeacherMathFitIncomplete || isMathFitLocked;\n }, [isStudent, isPuzzleCard, isSheetLocked, isMathFitCard, state]);\n\n return (\n <Styled.CardContainer $position=\"relative\" $width=\"fit-content\">\n <Clickable\n onClick={isStudent ? onStudentCardClick : onTeacherCardClick}\n label=\"homework-card\"\n analyticsLabel={analyticsLabel.analyticsLabel}\n analyticsProps={analyticsLabel.analyticsProps}\n disabled={isClickableDisabled}\n >\n <HomeworkView\n entityType={entityType}\n header={header}\n isInQueue={isInQueue}\n isMilestone={renderAs === 'milestone'}\n nodeData={nodeData}\n puzzleHWCardRef={puzzleHWCardRef}\n mathFitCardRef={mathFitCardRef}\n score={score}\n imageUrl={imageUrl}\n state={state}\n studentContainerRef={studentContainerRef}\n subHeader={subHeader}\n userType={userType}\n />\n </Clickable>\n {isStudent && !isHomeWork && !isMathFitCard && (\n <CardMenuOptions\n $width={200}\n options={studentOptions}\n triggerRef={studentContainerRef}\n visible={studentMenuVisible}\n shouldOpenOnRight={false}\n />\n )}\n {showMoreMenu && (\n <Styled.MenuWrapper $position=\"absolute\" $width=\"fit-content\" $borderRadiusX={2}>\n <ArrowTooltip\n renderAs=\"primary\"\n tooltipItem=\"Review\"\n position=\"bottom\"\n zIndex={6}\n parentWidth=\"100%\"\n hidden={teacherMenuVisible || (state !== 'WAIT_FOR_REVIEW' && isHomeWork)}\n >\n <Styled.CardKebabMenuWrapper\n $alignItems=\"center\"\n $justifyContent=\"center\"\n ref={teacherContainerRef}\n onClick={onTeacherMenuClick}\n >\n <MoreVerticalIcon width={16} height={16} />\n </Styled.CardKebabMenuWrapper>\n </ArrowTooltip>\n <CardMenuOptions\n options={teacherOptions}\n triggerRef={teacherContainerRef}\n visible={teacherMenuVisible}\n shouldOpenOnRight={shouldOpenOnRight}\n $width={144}\n />\n </Styled.MenuWrapper>\n )}\n {isInQueue && (\n <Styled.BlurContainer $background=\"WHITE_5\">\n <Styled.BlurFlexView $heightX={1} $widthX={6}>\n <ArrowTooltip renderAs=\"primary\" tooltipItem=\"Not visible to student\" position=\"bottom\">\n <FlexView $heightX={1} $widthX={6} />\n </ArrowTooltip>\n </Styled.BlurFlexView>\n </Styled.BlurContainer>\n )}\n </Styled.CardContainer>\n );\n};\n\nexport default memo(HomeworkCard);\n"],"names":["HomeworkCard","nodeData","onNodeAttempt","onNodeReattempt","onNodeReview","onNodeUnassign","onNodeView","onNodeAssignAsHomework","onCardClick","entityId","entityType","header","homeworkId","isInQueue","mathFitCardRef","renderAs","score","shouldOpenOnRight","state","totalQuestions","imageUrl","studentId","subHeader","userMilestoneId","userType","puzzleHWCardRef","disableMenuActions","isHomeWork","nodeType","permissions","userNodeId","milestoneId","isPuzzleCard","isMathFitCard","EHWCardListEntityType","isSheetLocked","teacherContainerRef","useRef","studentContainerRef","teacherMenuVisible","onTeacherMenuClick","useContextMenuClickHandler","studentMenuVisible","onStudentMenuClick","canStart","canResume","canReview","canUnassign","canReset","canAssignAsHw","isStudent","onStudentViewSheet","useCallback","onStudentCardClick","ECardType","onTeacherCardClick","handleOnMenuOptionClick","optionId","teacherOptions","useMemo","options","Eye2Icon","Styled.StyledMinus2Icon","RedoIcon","Home2Icon","option","studentOptions","analyticsLabel","getCardAnalyticProps","showMoreMenu","isClickableDisabled","Styled.CardContainer","jsx","Clickable","HomeworkView","CardMenuOptions","jsxs","Styled.MenuWrapper","ArrowTooltip","Styled.CardKebabMenuWrapper","MoreVerticalIcon","Styled.BlurContainer","Styled.BlurFlexView","FlexView","HomeworkCard$1","memo"],"mappings":";;;;;;;;;;;;;;;;AA6CA,MAAMA,KAAuC,CAAC;AAAA;AAAA,EAE5C,UAAAC;AAAA,EACA,eAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,cAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,YAAAC;AAAA,EACA,wBAAAC;AAAA,EACA,aAAAC;AAAA,EAEA,UAAAC;AAAA,EACA,YAAAC;AAAA,EACA,QAAAC;AAAA,EACA,YAAAC;AAAA,EACA,WAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,UAAAC;AAAA,EACA,OAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,OAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,WAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,UAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,oBAAAC;AACF,MAAM;AACJ,QAAMC,IAAaZ,MAAa,YAC1B,EAAE,WAAWa,GAAU,aAAAC,IAAa,cAAcC,EAAe,IAAA7B,GAEjE8B,IAAcR,MAAmB,IACjCS,IAAeJ,MAAa,eAC5BK,IAAgBvB,MAAewB,GAAsB,cACrDC,IAAgBjB,MAAU,UAE1BkB,IAAsBC,EAAuB,IAAI,GACjDC,IAAsBD,EAAuB,IAAI,GACjD,EAAE,aAAaE,GAAoB,aAAaC,OACpDC,EAA2BL,CAAmB,GAC1C,EAAE,aAAaM,IAAoB,aAAaC,MACpDF,EAA2BH,CAAmB,GAE1C;AAAA,IACJ,WAAWM;AAAA,IACX,YAAYC;AAAA,IACZ,YAAYC;AAAA,IACZ,cAAcC;AAAA,IACd,WAAWC;AAAA,IACX,wBAAwBC;AAAA,EACtB,IAAApB,IACEqB,IAAY1B,MAAa,WAEzB2B,IAAqBC,EAAY,MAAM;AAC3C,QAAIN,GAAW;AACT,UAAA,OAAO1C,KAAiB;AACpB,cAAA,IAAI,MAAM,6BAA6B;AAG/C,UAAI,CAAC0B;AACG,cAAA,IAAI,MAAM,kDAAkD;AAEpE,MAAA1B,EAAaH,GAAU8B,CAAW;AAElC;AAAA,IACF;AAAA,EAAA,GACC,CAACe,GAAW1C,GAAc0B,GAAY7B,GAAU8B,CAAW,CAAC,GAEzDsB,KAAqBD,EAAY,MAAM;AAE3C,QAAInB,KAAiBxB,GAAU;AACzB,UAAA,OAAOD,KAAgB;AACnB,cAAA,IAAI,MAAM,kDAAkD;AAGpE,MAAAA,EAAY,EAAE,UAAAC,GAAU,MAAM6C,EAAU,QAAS,CAAA;AAEjD;AAAA,IACF;AAEA,QAAIV,KAAYC,GAAW;AACrB,UAAA,OAAO3C,KAAkB;AACrB,cAAA,IAAI,MAAM,kCAAkC;AAGtC,MAAAA,EAAAD,GAAU8B,GAAanB,CAAU;AAE/C;AAAA,IACF;AAEA,QAAI,CAACe,GAAY;AACI,MAAAgB;AAEnB;AAAA,IACF;AACmB,IAAAQ;EAAA,GAClB;AAAA,IACDN;AAAA,IACAD;AAAA,IACAnC;AAAA,IACAG;AAAA,IACAe;AAAA,IACAM;AAAA,IACAF;AAAA,IACA9B;AAAA,IACAO;AAAA,IACAN;AAAA,IACAyC;AAAA,IACAQ;AAAA,EAAA,CACD,GAEKI,IAAqBH,EAAY,MAAM;AAE3C,QAAInB,KAAiBxB,GAAU;AACzB,UAAA,OAAOD,KAAgB;AACnB,cAAA,IAAI,MAAM,kDAAkD;AAGpE,MAAAA,EAAY,EAAE,UAAAC,GAAU,MAAM6C,EAAU,QAAS,CAAA;AAEjD;AAAA,IACF;AAEA,QAAIR,GAAW;AACT,UAAA,OAAO1C,KAAiB;AACpB,cAAA,IAAI,MAAM,iCAAiC;AAGnD,UAAI,CAAC0B;AACG,cAAA,IAAI,MAAM,kDAAkD;AAEvD,MAAA1B,EAAAH,GAAU8B,GAAanB,CAAU;AAE9C;AAAA,IACF;AAEI,QAAA,OAAON,KAAe;AAClB,YAAA,IAAI,MAAM,+BAA+B;AAGjD,IAAAA,EAAWL,GAAU8B,CAAW;AAAA,EAAA,GAC/B;AAAA,IACDe;AAAA,IACArC;AAAA,IACAG;AAAA,IACAqB;AAAA,IACAF;AAAA,IACA9B;AAAA,IACAO;AAAA,IACAJ;AAAA,IACAE;AAAA,IACAwB;AAAA,EAAA,CACD,GAEK0B,IAA0BJ;AAAA,IAC9B,CAACK,MAAqB;AACpB,cAAQA,GAAU;AAAA,QAChB,KAAK;AACgB,UAAAF;AAEnB;AAAA,QACF,KAAK;AACgB,UAAAJ;AAEnB;AAAA,QACF,KAAK;AACc,UAAA9C,KAAA,QAAAA,EAAAJ,GAAU8B,GAAanB;AAExC;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AACH,UAAAT,KAAA,QAAAA,EAAkBF,GAAU8B;AAE5B;AAAA,QAEF,KAAK;AACH,UAAAxB,KAAA,QAAAA,EAAyBN,GAAU8B;AAEnC;AAAA,QAEF;AACE,gBAAM,IAAI,MAAM,4BAA4B0B,CAAQ,EAAE;AAAA,MAC1D;AAAA,IACF;AAAA,IACA;AAAA,MACE7C;AAAA,MACAmB;AAAA,MACA9B;AAAA,MACAM;AAAA,MACAJ;AAAA,MACAE;AAAA,MACA8C;AAAA,MACAI;AAAA,IACF;AAAA,EAAA,GAGIG,KAAiBC,EAAQ,MAAM;AACnC,UAAMC,IAAU;AAAA,MACd;AAAA,QACE,IAAI;AAAA,QACJ,OAAOd,IAAY,WAAW;AAAA,QAC9B,MAAMe;AAAA,QACN,UAAU;AAAA,QACV,SAASL;AAAA,MACX;AAAA,MACA;AAAA,QACE,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,MAAMM;AAAAA,QACN,UAAUnC,IAAaC,MAAa,YAAY,CAACmB;AAAA,QACjD,SAASS;AAAA,MACX;AAAA,MACA;AAAA,QACE,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,MAAMO;AAAA,QACN,UAAU,CAACf;AAAA,QACX,SAASQ;AAAA,MACX;AAAA,MACA;AAAA,QACE,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,MAAMQ;AAAA,QACN,UAAU,CAACf;AAAA,QACX,SAASO;AAAA,MACX;AAAA,IAAA;AAGF,WAAO9B,IACHkC,EAAQ,OAAO,OAAUK,EAAO,OAAO,mBAAmB,IAC1DL;AAAA,EAAA,GACH;AAAA,IACDd;AAAA,IACAC;AAAA,IACAC;AAAA,IACAC;AAAA,IACAtB;AAAA,IACAC;AAAA,IACAF;AAAA,IACA8B;AAAA,EAAA,CACD,GAEKU,KAAiBP;AAAA,IACrB,MAAM;AAAA,MACJ;AAAA,QACE,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,MAAME;AAAA,QACN,UAAU,CAACf;AAAA,QACX,SAASU;AAAA,MACX;AAAA,MACA;AAAA,QACE,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,MAAMO;AAAA,QACN,UAAU,CAACf;AAAA,QACX,SAASQ;AAAA,MACX;AAAA,IACF;AAAA,IACA,CAACV,GAAWE,GAAUQ,CAAuB;AAAA,EAAA,GAGzCW,IAAiBR;AAAA,IACrB,MACES,GAAqB;AAAA,MACnB,WAAAvB;AAAA,MACA,UAAAD;AAAA,MACA,UAAAnC;AAAA,MACA,YAAAC;AAAA,MACA,YAAAE;AAAA,MACA,YAAAe;AAAA,MACA,WAAAuB;AAAA,MACA,aAAAnB;AAAA,MACA,UAAAH;AAAA,MACA,WAAAP;AAAA,MACA,gBAAAF;AAAA,MACA,YAAAW;AAAA,IAAA,CACD;AAAA,IACH;AAAA,MACEe;AAAA,MACAD;AAAA,MACAnC;AAAA,MACAC;AAAA,MACAE;AAAA,MACAe;AAAA,MACAuB;AAAA,MACAnB;AAAA,MACAH;AAAA,MACAP;AAAA,MACAF;AAAA,MACAW;AAAA,IACF;AAAA,EAAA,GAGIuC,KAAe,CAACnB,KAAa,CAAClB,KAAgB,CAACC,GAE/CqC,KAAsBX,EAAQ,MACJT,KAAalB,KAAgBG,KAEzD,CAACe,KAAajB,KAAiBf,MAAU,eAAeA,MAAU,aAC5Ce,KAAiBE,GAGxC,CAACe,GAAWlB,GAAcG,GAAeF,GAAef,CAAK,CAAC;AAEjE,2BACGqD,IAAA,EAAqB,WAAU,YAAW,QAAO,eAChD,UAAA;AAAA,IAAA,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,SAASvB,IAAYG,KAAqBE;AAAA,QAC1C,OAAM;AAAA,QACN,gBAAgBY,EAAe;AAAA,QAC/B,gBAAgBA,EAAe;AAAA,QAC/B,UAAUG;AAAA,QAEV,UAAA,gBAAAE;AAAA,UAACE;AAAAA,UAAA;AAAA,YACC,YAAAhE;AAAA,YACA,QAAAC;AAAA,YACA,WAAAE;AAAA,YACA,aAAaE,MAAa;AAAA,YAC1B,UAAAd;AAAA,YACA,iBAAAwB;AAAA,YACA,gBAAAX;AAAA,YACA,OAAAE;AAAA,YACA,UAAAI;AAAA,YACA,OAAAF;AAAA,YACA,qBAAAoB;AAAA,YACA,WAAAhB;AAAA,YACA,UAAAE;AAAA,UAAA;AAAA,QACF;AAAA,MAAA;AAAA,IACF;AAAA,IACC0B,KAAa,CAACvB,KAAc,CAACM,KAC5B,gBAAAuC;AAAA,MAACG;AAAA,MAAA;AAAA,QACC,QAAQ;AAAA,QACR,SAAST;AAAA,QACT,YAAY5B;AAAA,QACZ,SAASI;AAAA,QACT,mBAAmB;AAAA,MAAA;AAAA,IACrB;AAAA,IAED2B,MACE,gBAAAO,EAAAC,IAAA,EAAmB,WAAU,YAAW,QAAO,eAAc,gBAAgB,GAC5E,UAAA;AAAA,MAAA,gBAAAL;AAAA,QAACM;AAAA,QAAA;AAAA,UACC,UAAS;AAAA,UACT,aAAY;AAAA,UACZ,UAAS;AAAA,UACT,QAAQ;AAAA,UACR,aAAY;AAAA,UACZ,QAAQvC,KAAuBrB,MAAU,qBAAqBS;AAAA,UAE9D,UAAA,gBAAA6C;AAAA,YAACO;AAAAA,YAAA;AAAA,cACC,aAAY;AAAA,cACZ,iBAAgB;AAAA,cAChB,KAAK3C;AAAA,cACL,SAASI;AAAA,cAET,UAAC,gBAAAgC,EAAAQ,IAAA,EAAiB,OAAO,IAAI,QAAQ,IAAI;AAAA,YAAA;AAAA,UAC3C;AAAA,QAAA;AAAA,MACF;AAAA,MACA,gBAAAR;AAAA,QAACG;AAAA,QAAA;AAAA,UACC,SAASjB;AAAA,UACT,YAAYtB;AAAA,UACZ,SAASG;AAAA,UACT,mBAAAtB;AAAA,UACA,QAAQ;AAAA,QAAA;AAAA,MACV;AAAA,IAAA,GACF;AAAA,IAEDJ,KACC,gBAAA2D,EAACS,IAAA,EAAqB,aAAY,WAChC,UAAA,gBAAAT,EAACU,IAAA,EAAoB,UAAU,GAAG,SAAS,GACzC,UAAC,gBAAAV,EAAAM,GAAA,EAAa,UAAS,WAAU,aAAY,0BAAyB,UAAS,UAC7E,UAAA,gBAAAN,EAACW,IAAS,EAAA,UAAU,GAAG,SAAS,EAAG,CAAA,EACrC,CAAA,EACF,CAAA,GACF;AAAA,EAEJ,EAAA,CAAA;AAEJ,GAEeC,KAAAC,GAAKrF,EAAY;"}
|
|
@@ -2,48 +2,45 @@ import n from "styled-components";
|
|
|
2
2
|
import a from "../../../../../ui/layout/flex-view.js";
|
|
3
3
|
import d from "../../../../../ui/text/text.js";
|
|
4
4
|
import { MILESTONE_WIDGET_MIN_HEIGHT as p } from "../../../../constants.js";
|
|
5
|
-
const x = n(a)(({ theme:
|
|
6
|
-
padding-bottom: ${
|
|
7
|
-
`),
|
|
8
|
-
const { colors: t } =
|
|
5
|
+
const x = n(a)(({ theme: r }) => `
|
|
6
|
+
padding-bottom: ${r.layout.gutter * 1.5}px;
|
|
7
|
+
`), m = n.div(({ theme: r, $backgroundColor: e, $frames: o }) => {
|
|
8
|
+
const { colors: t } = r;
|
|
9
9
|
return `
|
|
10
10
|
display: grid;
|
|
11
11
|
background: ${t[e || "WHITE_3"]};
|
|
12
|
-
grid-template-columns: repeat(${
|
|
12
|
+
grid-template-columns: repeat(${o}, 1fr);
|
|
13
13
|
`;
|
|
14
|
-
}),
|
|
15
|
-
const { layout:
|
|
14
|
+
}), T = n(d)(({ theme: r, $selected: e }) => {
|
|
15
|
+
const { layout: o, colors: t } = r, { BLACK_T_15: i, BLACK_T_87: s } = t;
|
|
16
16
|
return `
|
|
17
17
|
cursor: pointer;
|
|
18
|
-
padding: ${
|
|
18
|
+
padding: ${o.gutter * 0.5}px 0;
|
|
19
19
|
border-bottom: 1px solid ${e ? s : i};
|
|
20
20
|
`;
|
|
21
|
-
}),
|
|
22
|
-
const { WHITE_5:
|
|
21
|
+
}), $ = n(a)(({ theme: r, $flexibleHeight: e }) => {
|
|
22
|
+
const { WHITE_5: o } = r.colors, { gutter: t } = r.layout;
|
|
23
23
|
return `
|
|
24
24
|
position: relative;
|
|
25
|
-
height: ${p}px;
|
|
26
25
|
${e ? `
|
|
27
26
|
height: 100%;
|
|
28
27
|
min-height: ${p}px;
|
|
29
28
|
` : `
|
|
30
29
|
height: ${p}px;
|
|
31
|
-
overflow-y: auto;
|
|
32
|
-
overflow-x: hidden;
|
|
33
30
|
`}
|
|
34
31
|
overflow-y: auto;
|
|
35
32
|
overflow-x: hidden;
|
|
36
33
|
|
|
37
|
-
background: ${
|
|
38
|
-
background-image: linear-gradient(${
|
|
39
|
-
linear-gradient(90deg, ${
|
|
34
|
+
background: ${r.colors.WHITE_2};
|
|
35
|
+
background-image: linear-gradient(${o} 0.5px, transparent 0.5px),
|
|
36
|
+
linear-gradient(90deg, ${o} 0.5px, transparent 0.5px);
|
|
40
37
|
background-size: ${t * 2.81}px ${t * 2.81}px;
|
|
41
38
|
`;
|
|
42
39
|
});
|
|
43
40
|
export {
|
|
44
41
|
x as NoPlanCardWrapper,
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
42
|
+
$ as TabComponentWrapper,
|
|
43
|
+
T as TabsText,
|
|
44
|
+
m as TabsWrapper
|
|
48
45
|
};
|
|
49
46
|
//# sourceMappingURL=milestone-tabs-styled.js.map
|