@cuemath/leap 3.5.50 → 3.5.51-as10
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 +4 -0
- package/dist/assets/illustrations/illustrations.js.map +1 -1
- package/dist/features/chapters-v2/comps/node-card/node-card-styled.js +27 -31
- package/dist/features/chapters-v2/comps/node-card/node-card-styled.js.map +1 -1
- package/dist/features/chapters-v2/comps/node-card/node-card-tags.js +21 -13
- package/dist/features/chapters-v2/comps/node-card/node-card-tags.js.map +1 -1
- package/dist/features/chapters-v2/constants/node-constants.js +1 -1
- package/dist/features/chapters-v2/constants/node-constants.js.map +1 -1
- package/dist/features/chapters-v2/utils/node-card-utils.js +86 -79
- package/dist/features/chapters-v2/utils/node-card-utils.js.map +1 -1
- package/dist/features/homework/homework-card-view.js +125 -98
- package/dist/features/homework/homework-card-view.js.map +1 -1
- package/dist/features/homework/homework-card.js +196 -161
- package/dist/features/homework/homework-card.js.map +1 -1
- package/dist/features/homework/hw-card-list/api/get-homeworks.js +1 -1
- package/dist/features/homework/hw-card-list/api/get-homeworks.js.map +1 -1
- package/dist/features/homework/hw-card-list/hw-card-list-types.js +5 -0
- package/dist/features/homework/hw-card-list/hw-card-list-types.js.map +1 -0
- package/dist/features/homework/hw-card-list/hw-card-list-view.js +96 -86
- package/dist/features/homework/hw-card-list/hw-card-list-view.js.map +1 -1
- package/dist/features/homework/hw-card-list/hw-card-list.js +45 -43
- package/dist/features/homework/hw-card-list/hw-card-list.js.map +1 -1
- package/dist/features/homework/styles.js +0 -1
- package/dist/features/homework/styles.js.map +1 -1
- package/dist/features/homework/utils.js +18 -15
- package/dist/features/homework/utils.js.map +1 -1
- package/dist/features/journey/hooks/use-home-page-journey/home-page-homeworks-mock.js +325 -201
- package/dist/features/journey/hooks/use-home-page-journey/home-page-homeworks-mock.js.map +1 -1
- package/dist/features/journey/hooks/use-home-page-journey/use-home-page-journey.js +59 -56
- package/dist/features/journey/hooks/use-home-page-journey/use-home-page-journey.js.map +1 -1
- package/dist/features/journey/hooks/use-puzzles-journey/use-puzzle-assigned.js +17 -15
- package/dist/features/journey/hooks/use-puzzles-journey/use-puzzle-assigned.js.map +1 -1
- package/dist/features/math-fit/api/get-mathfit-assessment.js +10 -0
- package/dist/features/math-fit/api/get-mathfit-assessment.js.map +1 -0
- package/dist/features/math-fit/math-fit/math-fit.js +37 -0
- package/dist/features/math-fit/math-fit/math-fit.js.map +1 -0
- package/dist/features/math-fit/math-fit-card/math-fit-card-styled.js +22 -0
- package/dist/features/math-fit/math-fit-card/math-fit-card-styled.js.map +1 -0
- package/dist/features/math-fit/math-fit-card/math-fit-card.js +80 -0
- package/dist/features/math-fit/math-fit-card/math-fit-card.js.map +1 -0
- package/dist/features/math-fit/math-fit-overview/comps/section-card/section-card-styled.js +24 -0
- package/dist/features/math-fit/math-fit-overview/comps/section-card/section-card-styled.js.map +1 -0
- package/dist/features/math-fit/math-fit-overview/comps/section-card/section-card-types.js +5 -0
- package/dist/features/math-fit/math-fit-overview/comps/section-card/section-card-types.js.map +1 -0
- package/dist/features/math-fit/math-fit-overview/comps/section-card/section-card.js +99 -0
- package/dist/features/math-fit/math-fit-overview/comps/section-card/section-card.js.map +1 -0
- package/dist/features/math-fit/math-fit-overview/comps/stat-item/stat-item-styled.js +9 -0
- package/dist/features/math-fit/math-fit-overview/comps/stat-item/stat-item-styled.js.map +1 -0
- package/dist/features/math-fit/math-fit-overview/comps/stat-item/stat-item.js +26 -0
- package/dist/features/math-fit/math-fit-overview/comps/stat-item/stat-item.js.map +1 -0
- package/dist/features/math-fit/math-fit-overview/math-fit-overview-helpers.js +63 -0
- package/dist/features/math-fit/math-fit-overview/math-fit-overview-helpers.js.map +1 -0
- package/dist/features/math-fit/math-fit-overview/math-fit-overview-styled.js +9 -0
- package/dist/features/math-fit/math-fit-overview/math-fit-overview-styled.js.map +1 -0
- package/dist/features/math-fit/math-fit-overview/math-fit-overview-types.js +7 -0
- package/dist/features/math-fit/math-fit-overview/math-fit-overview-types.js.map +1 -0
- package/dist/features/math-fit/math-fit-overview/math-fit-overview.js +71 -0
- package/dist/features/math-fit/math-fit-overview/math-fit-overview.js.map +1 -0
- package/dist/features/math-fit/math-fit-report/comps/report-header/report-header-styled.js +38 -0
- package/dist/features/math-fit/math-fit-report/comps/report-header/report-header-styled.js.map +1 -0
- package/dist/features/math-fit/math-fit-report/comps/report-header/report-header.js +58 -0
- package/dist/features/math-fit/math-fit-report/comps/report-header/report-header.js.map +1 -0
- package/dist/features/math-fit/math-fit-report/comps/score-badge/score-badge-styled.js +28 -0
- package/dist/features/math-fit/math-fit-report/comps/score-badge/score-badge-styled.js.map +1 -0
- package/dist/features/math-fit/math-fit-report/comps/score-badge/score-badge.js +30 -0
- package/dist/features/math-fit/math-fit-report/comps/score-badge/score-badge.js.map +1 -0
- package/dist/features/math-fit/math-fit-report/comps/score-section/score-section-styled.js +9 -0
- package/dist/features/math-fit/math-fit-report/comps/score-section/score-section-styled.js.map +1 -0
- package/dist/features/math-fit/math-fit-report/comps/score-section/score-section.js +82 -0
- package/dist/features/math-fit/math-fit-report/comps/score-section/score-section.js.map +1 -0
- package/dist/features/math-fit/math-fit-report/math-fit-report-helpers.js +42 -0
- package/dist/features/math-fit/math-fit-report/math-fit-report-helpers.js.map +1 -0
- package/dist/features/math-fit/math-fit-report/math-fit-report.js +68 -0
- package/dist/features/math-fit/math-fit-report/math-fit-report.js.map +1 -0
- package/dist/features/milestone/milestone-list-container/api/get-tests-list.js +1 -1
- package/dist/features/milestone/milestone-list-container/api/get-tests-list.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js +38 -36
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs.js +57 -55
- 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 +59 -57
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list-container.js +54 -52
- package/dist/features/milestone/milestone-list-container/milestone-list-container.js.map +1 -1
- package/dist/features/milestone/milestone-tests/test-list-v2/test-list-container.js +39 -37
- package/dist/features/milestone/milestone-tests/test-list-v2/test-list-container.js.map +1 -1
- package/dist/features/milestone/milestone-tests/test-list-v2/test-list-view.js +48 -56
- package/dist/features/milestone/milestone-tests/test-list-v2/test-list-view.js.map +1 -1
- package/dist/features/sheet-v2/resource-list/resource-list.js +27 -23
- package/dist/features/sheet-v2/resource-list/resource-list.js.map +1 -1
- package/dist/index.d.ts +132 -7
- package/dist/index.js +131 -121
- package/dist/index.js.map +1 -1
- package/dist/static/clock-green.020570d3.svg +1 -0
- package/dist/static/math-fit-bg.4bfa3244.svg +1 -0
- package/dist/static/math-fit-card-bg.20c826bb.svg +1 -0
- package/dist/static/question-mark-blue.b6a7f37d.svg +1 -0
- package/package.json +1 -1
|
@@ -1,264 +1,299 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import { memo as
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import
|
|
11
|
-
import
|
|
12
|
-
import
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
|
|
1
|
+
import { jsxs as F, jsx as i } from "react/jsx-runtime";
|
|
2
|
+
import { memo as ae, useRef as j, useCallback as M, useMemo as le } from "react";
|
|
3
|
+
import z from "../../assets/line-icons/icons/eye2.js";
|
|
4
|
+
import ue from "../../assets/line-icons/icons/home2.js";
|
|
5
|
+
import fe from "../../assets/line-icons/icons/more-vertical.js";
|
|
6
|
+
import Y from "../../assets/line-icons/icons/redo.js";
|
|
7
|
+
import B from "../ui/arrow-tooltip/arrow-tooltip.js";
|
|
8
|
+
import de from "../ui/buttons/clickable/clickable.js";
|
|
9
|
+
import K from "../ui/hooks/use-context-menu-click-handler.js";
|
|
10
|
+
import he from "../ui/layout/flex-view.js";
|
|
11
|
+
import Z from "./card-menu-options.js";
|
|
12
|
+
import me from "./homework-card-view.js";
|
|
13
|
+
import { HW_CARD_LIST_ENTITY_TYPE as pe } from "./hw-card-list/hw-card-list-types.js";
|
|
14
|
+
import { CardContainer as be, MenuWrapper as Ce, CardKebabMenuWrapper as we, BlurContainer as Ee, BlurFlexView as _e, StyledMinus2Icon as Me } from "./styles.js";
|
|
15
|
+
import { getCardAnalyticProps as Te } from "./utils.js";
|
|
16
|
+
const $e = ({
|
|
16
17
|
// callbacks
|
|
17
18
|
nodeData: e,
|
|
18
|
-
onNodeAttempt:
|
|
19
|
-
onNodeReattempt:
|
|
20
|
-
onNodeReview:
|
|
21
|
-
onNodeUnassign:
|
|
22
|
-
onNodeView:
|
|
23
|
-
onNodeAssignAsHomework:
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
19
|
+
onNodeAttempt: T,
|
|
20
|
+
onNodeReattempt: h,
|
|
21
|
+
onNodeReview: s,
|
|
22
|
+
onNodeUnassign: m,
|
|
23
|
+
onNodeView: $,
|
|
24
|
+
onNodeAssignAsHomework: p,
|
|
25
|
+
onMathFitClick: a,
|
|
26
|
+
entityId: b,
|
|
27
|
+
entityType: v,
|
|
28
|
+
header: q,
|
|
29
|
+
homeworkId: t,
|
|
30
|
+
isInQueue: S,
|
|
31
|
+
puzzleHWCardRef: A,
|
|
32
|
+
renderAs: g,
|
|
33
|
+
score: G,
|
|
34
|
+
shouldOpenOnRight: J,
|
|
35
|
+
state: d,
|
|
36
|
+
studentId: O,
|
|
37
|
+
subHeader: Q,
|
|
38
|
+
userMilestoneId: U,
|
|
39
|
+
userType: V
|
|
33
40
|
}) => {
|
|
34
|
-
const
|
|
35
|
-
node_type:
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
if (s) {
|
|
50
|
-
if (typeof n != "function")
|
|
41
|
+
const c = g === "homework", {
|
|
42
|
+
node_type: C,
|
|
43
|
+
permissions: D,
|
|
44
|
+
user_node_id: l,
|
|
45
|
+
user_milestone_id: N
|
|
46
|
+
} = e, r = U || N || "", W = C === "PUZZLE_CARD", n = v === pe.MATHFIT_TEST, L = d === "LOCKED", k = j(null), R = j(null), { menuVisible: P, onMenuClick: ee } = K(k), { menuVisible: re, onMenuClick: x } = K(R), {
|
|
47
|
+
can_start: w,
|
|
48
|
+
can_resume: E,
|
|
49
|
+
can_review: u,
|
|
50
|
+
can_unassign: ie,
|
|
51
|
+
can_reset: H,
|
|
52
|
+
can_assign_as_homework: te
|
|
53
|
+
} = D, o = V === "STUDENT", _ = M(() => {
|
|
54
|
+
if (u) {
|
|
55
|
+
if (typeof s != "function")
|
|
51
56
|
throw new Error("onReview must be a function");
|
|
52
|
-
if (!
|
|
57
|
+
if (!l)
|
|
53
58
|
throw new Error("user node id must be present to review the sheet");
|
|
54
|
-
|
|
59
|
+
s(e, r);
|
|
55
60
|
return;
|
|
56
61
|
}
|
|
57
|
-
}, [
|
|
58
|
-
if (
|
|
59
|
-
if (typeof
|
|
62
|
+
}, [u, s, l, e, r]), ne = M(() => {
|
|
63
|
+
if (n) {
|
|
64
|
+
if (typeof a != "function")
|
|
65
|
+
throw new Error("onMathFitClick must be a function for MathFit cards");
|
|
66
|
+
a(b);
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
if (w || E) {
|
|
70
|
+
if (typeof T != "function")
|
|
60
71
|
throw new Error("onNodeAttempt must be a function");
|
|
61
|
-
|
|
72
|
+
T(e, r, t);
|
|
62
73
|
return;
|
|
63
74
|
}
|
|
64
|
-
if (!
|
|
65
|
-
|
|
75
|
+
if (!c) {
|
|
76
|
+
x();
|
|
66
77
|
return;
|
|
67
78
|
}
|
|
68
|
-
|
|
79
|
+
_();
|
|
69
80
|
}, [
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
i,
|
|
81
|
+
E,
|
|
82
|
+
w,
|
|
73
83
|
b,
|
|
74
|
-
|
|
75
|
-
|
|
84
|
+
t,
|
|
85
|
+
c,
|
|
86
|
+
n,
|
|
76
87
|
r,
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
88
|
+
e,
|
|
89
|
+
a,
|
|
90
|
+
T,
|
|
91
|
+
x,
|
|
92
|
+
_
|
|
93
|
+
]), y = M(() => {
|
|
94
|
+
if (n && e) {
|
|
95
|
+
if (typeof a != "function")
|
|
96
|
+
throw new Error("onMathFitClick must be a function for MathFit cards");
|
|
97
|
+
a(b);
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
if (u) {
|
|
101
|
+
if (typeof s != "function")
|
|
82
102
|
throw new Error("onNodeReview must be a function");
|
|
83
|
-
if (!
|
|
103
|
+
if (!l)
|
|
84
104
|
throw new Error("user node id must be present to review the sheet");
|
|
85
|
-
|
|
105
|
+
s(e, r, t);
|
|
86
106
|
return;
|
|
87
107
|
}
|
|
88
|
-
if (typeof
|
|
108
|
+
if (typeof $ != "function")
|
|
89
109
|
throw new Error("onNodeView must be a function");
|
|
90
|
-
|
|
91
|
-
}, [
|
|
92
|
-
|
|
93
|
-
|
|
110
|
+
$(e, r);
|
|
111
|
+
}, [
|
|
112
|
+
u,
|
|
113
|
+
b,
|
|
114
|
+
t,
|
|
115
|
+
n,
|
|
116
|
+
r,
|
|
117
|
+
e,
|
|
118
|
+
a,
|
|
119
|
+
s,
|
|
120
|
+
$,
|
|
121
|
+
l
|
|
122
|
+
]), f = M(
|
|
123
|
+
(X) => {
|
|
124
|
+
switch (X) {
|
|
94
125
|
case "teacher-card-view":
|
|
95
126
|
y();
|
|
96
127
|
return;
|
|
97
128
|
case "student-card-view":
|
|
98
|
-
|
|
129
|
+
_();
|
|
99
130
|
return;
|
|
100
131
|
case "teacher-card-unassign":
|
|
101
|
-
|
|
132
|
+
m == null || m(e, r, t);
|
|
102
133
|
return;
|
|
103
134
|
case "student-card-reattempt":
|
|
104
135
|
case "teacher-card-redo":
|
|
105
|
-
|
|
136
|
+
h == null || h(e, r);
|
|
106
137
|
return;
|
|
107
138
|
case "teacher-card-assign-as-hw":
|
|
108
|
-
|
|
139
|
+
p == null || p(e, r);
|
|
109
140
|
return;
|
|
110
141
|
default:
|
|
111
|
-
throw new Error(`No callback function for ${
|
|
142
|
+
throw new Error(`No callback function for ${X}`);
|
|
112
143
|
}
|
|
113
144
|
},
|
|
114
145
|
[
|
|
146
|
+
t,
|
|
147
|
+
r,
|
|
115
148
|
e,
|
|
149
|
+
p,
|
|
116
150
|
h,
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
y,
|
|
121
|
-
r
|
|
151
|
+
m,
|
|
152
|
+
_,
|
|
153
|
+
y
|
|
122
154
|
]
|
|
123
|
-
),
|
|
155
|
+
), ce = [
|
|
124
156
|
{
|
|
125
157
|
id: "teacher-card-view",
|
|
126
|
-
label:
|
|
127
|
-
icon:
|
|
158
|
+
label: u ? "Review" : "View",
|
|
159
|
+
icon: z,
|
|
128
160
|
disabled: !1,
|
|
129
|
-
onClick:
|
|
161
|
+
onClick: f
|
|
130
162
|
},
|
|
131
163
|
{
|
|
132
164
|
id: "teacher-card-unassign",
|
|
133
165
|
label: "Unassign",
|
|
134
|
-
icon:
|
|
135
|
-
disabled:
|
|
136
|
-
onClick:
|
|
166
|
+
icon: Me,
|
|
167
|
+
disabled: c ? C === "MASTERY" : !ie,
|
|
168
|
+
onClick: f
|
|
137
169
|
},
|
|
138
170
|
{
|
|
139
171
|
id: "teacher-card-redo",
|
|
140
172
|
label: "Redo",
|
|
141
|
-
icon:
|
|
142
|
-
disabled: !
|
|
143
|
-
onClick:
|
|
173
|
+
icon: Y,
|
|
174
|
+
disabled: !H,
|
|
175
|
+
onClick: f
|
|
144
176
|
},
|
|
145
177
|
{
|
|
146
178
|
id: "teacher-card-assign-as-hw",
|
|
147
179
|
label: "Assign as HW",
|
|
148
|
-
icon:
|
|
149
|
-
disabled: !
|
|
150
|
-
onClick:
|
|
180
|
+
icon: ue,
|
|
181
|
+
disabled: !te,
|
|
182
|
+
onClick: f
|
|
151
183
|
}
|
|
152
|
-
],
|
|
184
|
+
], oe = [
|
|
153
185
|
{
|
|
154
186
|
id: "student-card-view",
|
|
155
187
|
label: "Review",
|
|
156
|
-
icon:
|
|
157
|
-
disabled: !
|
|
158
|
-
onClick:
|
|
188
|
+
icon: z,
|
|
189
|
+
disabled: !u,
|
|
190
|
+
onClick: f
|
|
159
191
|
},
|
|
160
192
|
{
|
|
161
193
|
id: "student-card-reattempt",
|
|
162
194
|
label: "Reattempt",
|
|
163
|
-
icon:
|
|
164
|
-
disabled: !
|
|
165
|
-
onClick:
|
|
195
|
+
icon: Y,
|
|
196
|
+
disabled: !H,
|
|
197
|
+
onClick: f
|
|
166
198
|
}
|
|
167
|
-
],
|
|
168
|
-
() =>
|
|
169
|
-
canResume:
|
|
170
|
-
canStart:
|
|
171
|
-
homeworkId:
|
|
172
|
-
isHomeWork:
|
|
173
|
-
isStudent:
|
|
199
|
+
], I = le(
|
|
200
|
+
() => Te({
|
|
201
|
+
canResume: E,
|
|
202
|
+
canStart: w,
|
|
203
|
+
homeworkId: t,
|
|
204
|
+
isHomeWork: c,
|
|
205
|
+
isStudent: o,
|
|
174
206
|
milestoneId: r,
|
|
175
|
-
nodeType:
|
|
176
|
-
studentId:
|
|
177
|
-
userNodeId:
|
|
207
|
+
nodeType: C,
|
|
208
|
+
studentId: O,
|
|
209
|
+
userNodeId: l
|
|
178
210
|
}),
|
|
179
211
|
[
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
m,
|
|
184
|
-
f,
|
|
185
|
-
p,
|
|
186
|
-
o,
|
|
212
|
+
E,
|
|
213
|
+
w,
|
|
214
|
+
t,
|
|
187
215
|
c,
|
|
188
|
-
|
|
216
|
+
o,
|
|
217
|
+
r,
|
|
218
|
+
C,
|
|
219
|
+
O,
|
|
220
|
+
l
|
|
189
221
|
]
|
|
190
|
-
),
|
|
191
|
-
return /* @__PURE__ */
|
|
192
|
-
/* @__PURE__ */
|
|
193
|
-
|
|
222
|
+
), se = o && W && L || !o && n && d !== "COMPLETED" && d !== "EXPIRED" || n && L;
|
|
223
|
+
return /* @__PURE__ */ F(be, { $position: "relative", $width: "fit-content", children: [
|
|
224
|
+
/* @__PURE__ */ i(
|
|
225
|
+
de,
|
|
194
226
|
{
|
|
195
|
-
onClick:
|
|
227
|
+
onClick: o ? ne : y,
|
|
196
228
|
label: "homework-card",
|
|
197
|
-
analyticsLabel:
|
|
198
|
-
analyticsProps:
|
|
199
|
-
disabled:
|
|
200
|
-
children: /* @__PURE__ */
|
|
201
|
-
|
|
229
|
+
analyticsLabel: I.analyticsLabel,
|
|
230
|
+
analyticsProps: I.analyticsProps,
|
|
231
|
+
disabled: se,
|
|
232
|
+
children: /* @__PURE__ */ i(
|
|
233
|
+
me,
|
|
202
234
|
{
|
|
203
|
-
|
|
204
|
-
|
|
235
|
+
entityType: v,
|
|
236
|
+
header: q,
|
|
237
|
+
isInQueue: S,
|
|
238
|
+
isMilestone: g === "milestone",
|
|
205
239
|
nodeData: e,
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
240
|
+
puzzleHWCardRef: A,
|
|
241
|
+
score: G,
|
|
242
|
+
state: d,
|
|
243
|
+
studentContainerRef: R,
|
|
244
|
+
subHeader: Q,
|
|
245
|
+
userType: V
|
|
211
246
|
}
|
|
212
247
|
)
|
|
213
248
|
}
|
|
214
249
|
),
|
|
215
|
-
|
|
216
|
-
|
|
250
|
+
o && !c && !n && /* @__PURE__ */ i(
|
|
251
|
+
Z,
|
|
217
252
|
{
|
|
218
253
|
$width: 200,
|
|
219
|
-
options:
|
|
220
|
-
triggerRef:
|
|
221
|
-
visible:
|
|
254
|
+
options: oe,
|
|
255
|
+
triggerRef: R,
|
|
256
|
+
visible: re,
|
|
222
257
|
shouldOpenOnRight: !1
|
|
223
258
|
}
|
|
224
259
|
),
|
|
225
|
-
!
|
|
226
|
-
/* @__PURE__ */
|
|
227
|
-
|
|
260
|
+
!o && !W && !n && /* @__PURE__ */ F(Ce, { $position: "absolute", $width: "fit-content", $borderRadiusX: 2, children: [
|
|
261
|
+
/* @__PURE__ */ i(
|
|
262
|
+
B,
|
|
228
263
|
{
|
|
229
264
|
renderAs: "primary",
|
|
230
265
|
tooltipItem: "Review",
|
|
231
266
|
position: "bottom",
|
|
232
267
|
zIndex: 6,
|
|
233
268
|
parentWidth: "100%",
|
|
234
|
-
hidden:
|
|
235
|
-
children: /* @__PURE__ */
|
|
236
|
-
|
|
269
|
+
hidden: P || d !== "WAIT_FOR_REVIEW" && c,
|
|
270
|
+
children: /* @__PURE__ */ i(
|
|
271
|
+
we,
|
|
237
272
|
{
|
|
238
273
|
$alignItems: "center",
|
|
239
274
|
$justifyContent: "center",
|
|
240
|
-
ref:
|
|
241
|
-
onClick:
|
|
242
|
-
children: /* @__PURE__ */
|
|
275
|
+
ref: k,
|
|
276
|
+
onClick: ee,
|
|
277
|
+
children: /* @__PURE__ */ i(fe, { width: 16, height: 16 })
|
|
243
278
|
}
|
|
244
279
|
)
|
|
245
280
|
}
|
|
246
281
|
),
|
|
247
|
-
/* @__PURE__ */
|
|
248
|
-
|
|
282
|
+
/* @__PURE__ */ i(
|
|
283
|
+
Z,
|
|
249
284
|
{
|
|
250
|
-
options:
|
|
251
|
-
triggerRef:
|
|
252
|
-
visible:
|
|
253
|
-
shouldOpenOnRight:
|
|
285
|
+
options: ce,
|
|
286
|
+
triggerRef: k,
|
|
287
|
+
visible: P,
|
|
288
|
+
shouldOpenOnRight: J,
|
|
254
289
|
$width: 144
|
|
255
290
|
}
|
|
256
291
|
)
|
|
257
292
|
] }),
|
|
258
|
-
|
|
293
|
+
S && /* @__PURE__ */ i(Ee, { $background: "WHITE_5", children: /* @__PURE__ */ i(_e, { $heightX: 1, $widthX: 6, children: /* @__PURE__ */ i(B, { renderAs: "primary", tooltipItem: "Not visible to student", position: "bottom", children: /* @__PURE__ */ i(he, { $heightX: 1, $widthX: 6 }) }) }) })
|
|
259
294
|
] });
|
|
260
|
-
},
|
|
295
|
+
}, Fe = ae($e);
|
|
261
296
|
export {
|
|
262
|
-
|
|
297
|
+
Fe as default
|
|
263
298
|
};
|
|
264
299
|
//# 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 type {\n INodeCardCallbacks,\n INodeDataProps,\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 * as Styled from './styles';\nimport { getCardAnalyticProps } from './utils';\n\ninterface IHomeworkCardProps extends INodeCardCallbacks {\n header: string;\n nodeData: INodeDataProps;\n subHeader: string;\n userType: TUserTypes;\n studentId: string;\n userMilestoneId?: string;\n renderAs: 'homework' | 'milestone';\n shouldOpenOnRight: boolean;\n isInQueue?: boolean;\n puzzleHWCardRef?: React.RefObject<HTMLDivElement>;\n}\n\nconst HomeworkCard: FC<IHomeworkCardProps> = ({\n // callbacks\n nodeData,\n onNodeAttempt,\n onNodeReattempt,\n onNodeReview,\n onNodeUnassign,\n onNodeView,\n onNodeAssignAsHomework,\n\n header,\n isInQueue,\n renderAs,\n shouldOpenOnRight,\n studentId,\n subHeader,\n userMilestoneId,\n userType,\n puzzleHWCardRef,\n}) => {\n const isHomeWork = renderAs === 'homework';\n const {\n node_type: nodeType,\n state,\n permissions,\n user_node_id: userNodeId,\n user_milestone_id: nodeDataMilestoneId,\n homework_id: homeworkId,\n } = nodeData;\n\n const milestoneId = userMilestoneId || nodeDataMilestoneId || '';\n const isPuzzleCard = nodeType === 'PUZZLE_CARD';\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 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 canStart,\n canResume,\n isHomeWork,\n onStudentViewSheet,\n onNodeAttempt,\n nodeData,\n milestoneId,\n homeworkId,\n onStudentMenuClick,\n ]);\n\n const onTeacherCardClick = useCallback(() => {\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 }, [canReview, onNodeView, nodeData, milestoneId, onNodeReview, userNodeId, homeworkId]);\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);\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 nodeData,\n onNodeAssignAsHomework,\n onNodeReattempt,\n onNodeUnassign,\n onStudentViewSheet,\n onTeacherCardClick,\n milestoneId,\n ],\n );\n\n const teacherOptions = [\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 const studentOptions = [\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\n const analyticsLabel = useMemo(\n () =>\n getCardAnalyticProps({\n canResume,\n canStart,\n homeworkId,\n isHomeWork,\n isStudent,\n milestoneId,\n nodeType,\n studentId,\n userNodeId,\n }),\n [\n isStudent,\n isHomeWork,\n studentId,\n nodeType,\n canStart,\n canResume,\n homeworkId,\n userNodeId,\n milestoneId,\n ],\n );\n\n const isClickableDisabled = isStudent && isPuzzleCard && isSheetLocked;\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 header={header}\n isInQueue={isInQueue}\n nodeData={nodeData}\n studentContainerRef={studentContainerRef}\n subHeader={subHeader}\n userType={userType}\n isMilestone={renderAs === 'milestone'}\n puzzleHWCardRef={puzzleHWCardRef}\n />\n </Clickable>\n {isStudent && !isHomeWork && (\n <CardMenuOptions\n $width={200}\n options={studentOptions}\n triggerRef={studentContainerRef}\n visible={studentMenuVisible}\n shouldOpenOnRight={false}\n />\n )}\n {!isStudent && !isPuzzleCard && (\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","header","isInQueue","renderAs","shouldOpenOnRight","studentId","subHeader","userMilestoneId","userType","puzzleHWCardRef","isHomeWork","nodeType","state","permissions","userNodeId","nodeDataMilestoneId","homeworkId","milestoneId","isPuzzleCard","isSheetLocked","teacherContainerRef","useRef","studentContainerRef","teacherMenuVisible","onTeacherMenuClick","useContextMenuClickHandler","studentMenuVisible","onStudentMenuClick","canStart","canResume","canReview","canUnassign","canReset","canAssignAsHw","isStudent","onStudentViewSheet","useCallback","onStudentCardClick","onTeacherCardClick","handleOnMenuOptionClick","optionId","teacherOptions","Eye2Icon","Styled.StyledMinus2Icon","RedoIcon","Home2Icon","studentOptions","analyticsLabel","useMemo","getCardAnalyticProps","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 type {\n INodeCardCallbacks,\n INodeDataProps,\n 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 { HW_CARD_LIST_ENTITY_TYPE } 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?: HW_CARD_LIST_ENTITY_TYPE;\n header: string;\n homeworkId?: string;\n isInQueue?: boolean;\n nodeData: INodeDataProps;\n puzzleHWCardRef?: React.RefObject<HTMLDivElement>;\n renderAs: 'homework' | 'milestone';\n score: number | null;\n shouldOpenOnRight: boolean;\n state: TSheetStates;\n studentId: string;\n subHeader: string;\n userMilestoneId?: string;\n userType: TUserTypes;\n}\n\nconst HomeworkCard: FC<IHomeworkCardProps> = ({\n // callbacks\n nodeData,\n onNodeAttempt,\n onNodeReattempt,\n onNodeReview,\n onNodeUnassign,\n onNodeView,\n onNodeAssignAsHomework,\n onMathFitClick,\n\n entityId,\n entityType,\n header,\n homeworkId,\n isInQueue,\n puzzleHWCardRef,\n renderAs,\n score,\n shouldOpenOnRight,\n state,\n studentId,\n subHeader,\n userMilestoneId,\n userType,\n}) => {\n const isHomeWork = renderAs === 'homework';\n const {\n node_type: nodeType,\n permissions,\n user_node_id: userNodeId,\n user_milestone_id: nodeDataMilestoneId,\n } = nodeData;\n\n const milestoneId = userMilestoneId || nodeDataMilestoneId || '';\n const isPuzzleCard = nodeType === 'PUZZLE_CARD';\n const isMathFitCard = entityType === HW_CARD_LIST_ENTITY_TYPE.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) {\n if (typeof onMathFitClick !== 'function') {\n throw new Error('onMathFitClick must be a function for MathFit cards');\n }\n\n onMathFitClick(entityId);\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 onMathFitClick,\n onNodeAttempt,\n onStudentMenuClick,\n onStudentViewSheet,\n ]);\n\n const onTeacherCardClick = useCallback(() => {\n // Handle MathFit card clicks\n if (isMathFitCard && nodeData) {\n if (typeof onMathFitClick !== 'function') {\n throw new Error('onMathFitClick must be a function for MathFit cards');\n }\n\n onMathFitClick(entityId);\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 onMathFitClick,\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 = [\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 const studentOptions = [\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\n const analyticsLabel = useMemo(\n () =>\n getCardAnalyticProps({\n canResume,\n canStart,\n homeworkId,\n isHomeWork,\n isStudent,\n milestoneId,\n nodeType,\n studentId,\n userNodeId,\n }),\n [\n canResume,\n canStart,\n homeworkId,\n isHomeWork,\n isStudent,\n milestoneId,\n nodeType,\n studentId,\n userNodeId,\n ],\n );\n\n const isClickableDisabled =\n (isStudent && isPuzzleCard && isSheetLocked) ||\n (!isStudent && isMathFitCard && state !== 'COMPLETED' && state !== 'EXPIRED') ||\n (isMathFitCard && isSheetLocked);\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 score={score}\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 {!isStudent && !isPuzzleCard && !isMathFitCard && (\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","onMathFitClick","entityId","entityType","header","homeworkId","isInQueue","puzzleHWCardRef","renderAs","score","shouldOpenOnRight","state","studentId","subHeader","userMilestoneId","userType","isHomeWork","nodeType","permissions","userNodeId","nodeDataMilestoneId","milestoneId","isPuzzleCard","isMathFitCard","HW_CARD_LIST_ENTITY_TYPE","isSheetLocked","teacherContainerRef","useRef","studentContainerRef","teacherMenuVisible","onTeacherMenuClick","useContextMenuClickHandler","studentMenuVisible","onStudentMenuClick","canStart","canResume","canReview","canUnassign","canReset","canAssignAsHw","isStudent","onStudentViewSheet","useCallback","onStudentCardClick","onTeacherCardClick","handleOnMenuOptionClick","optionId","teacherOptions","Eye2Icon","Styled.StyledMinus2Icon","RedoIcon","Home2Icon","studentOptions","analyticsLabel","useMemo","getCardAnalyticProps","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,5 +1,5 @@
|
|
|
1
1
|
import { createGetAPI as r } from "@cuemath/rest-api";
|
|
2
|
-
import {
|
|
2
|
+
import { BASE_URL_V3_2 as t } from "../../../../constants/api.js";
|
|
3
3
|
const { useGet: i, invalidate: u } = r({
|
|
4
4
|
getURL: (e, s, { stream: o }) => `${t}/users/${e}/course-streams/${o}/homework`
|
|
5
5
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-homeworks.js","sources":["../../../../../src/features/homework/hw-card-list/api/get-homeworks.ts"],"sourcesContent":["import { createGetAPI } from '@cuemath/rest-api';\n\nimport {
|
|
1
|
+
{"version":3,"file":"get-homeworks.js","sources":["../../../../../src/features/homework/hw-card-list/api/get-homeworks.ts"],"sourcesContent":["import { createGetAPI } from '@cuemath/rest-api';\n\nimport { BASE_URL_V3_2 } from '../../../../constants/api';\nimport type {\n INodeDataProps,\n TSheetStates,\n} from '../../../chapters-v2/comps/node-card/node-card-types';\nimport type { THueNames } from '../../../ui/types';\nimport { type HW_CARD_LIST_ENTITY_TYPE } from '../hw-card-list-types';\n\nexport interface IHomeworkItem {\n entity_type: HW_CARD_LIST_ENTITY_TYPE;\n id: string;\n entity_id: string;\n homework_id: string;\n card_header: string;\n subtext: string;\n image_hue: THueNames;\n state: TSheetStates;\n homework_created_on_ts?: number;\n due_date_ts: number | null;\n user_milestone_id?: string | null;\n position: number;\n score: number | null;\n sheets: INodeDataProps[];\n user_node_id?: string;\n}\n\nexport interface IHomeworkDetails {\n assigned_homeworks: IHomeworkItem[];\n queued_homeworks: IHomeworkItem[];\n}\n\nconst { useGet: useGetHomeworks, invalidate: invalidateHomeworks } = createGetAPI<\n IHomeworkDetails,\n void,\n { stream: string }\n>({\n getURL: (studentId: string, _, { stream }) =>\n `${BASE_URL_V3_2}/users/${studentId}/course-streams/${stream}/homework`,\n});\n\nexport { useGetHomeworks, invalidateHomeworks };\n"],"names":["useGetHomeworks","invalidateHomeworks","createGetAPI","studentId","_","stream","BASE_URL_V3_2"],"mappings":";;AAiCA,MAAM,EAAE,QAAQA,GAAiB,YAAYC,EAAA,IAAwBC,EAInE;AAAA,EACA,QAAQ,CAACC,GAAmBC,GAAG,EAAE,QAAAC,EAAA,MAC/B,GAAGC,CAAa,UAAUH,CAAS,mBAAmBE,CAAM;AAChE,CAAC;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hw-card-list-types.js","sources":["../../../../src/features/homework/hw-card-list/hw-card-list-types.tsx"],"sourcesContent":["import type {\n INodeCardCallbacks,\n INodeDataProps,\n} from '../../chapters-v2/comps/node-card/node-card-types';\nimport type { IHomepageStartJourneyProps } from '../../journey/hooks/use-home-page-journey/homepage-journey-types';\nimport type { TUserTypes } from '../../ui/types';\nimport type { IHomeworkDetails } from './api/get-homeworks';\n\nexport enum HW_CARD_LIST_ENTITY_TYPE {\n MATHFIT_TEST = 'MATHFIT_TEST',\n USER_NODE = 'USER_NODE',\n}\n\nexport interface IHWCardListProps extends INodeCardCallbacks {\n userType: TUserTypes;\n studentId: string;\n stream: string;\n onTestPreview?: (sheetData: INodeDataProps, milestoneId?: string) => void;\n onTestStart?: (sheetData: INodeDataProps, homeworkId?: string) => void;\n onTestReview?: (sheetData: INodeDataProps, milestoneId?: string) => void;\n homeworkRef?: React.RefObject<HTMLDivElement>;\n startHomePageJourney?: ({ studentId, stream, userType }: IHomepageStartJourneyProps) => void;\n canStartJourney?: boolean;\n canStartPuzzleAssignedJourney?: boolean;\n}\n\nexport interface IHwCardListView extends INodeCardCallbacks {\n userType: TUserTypes;\n studentId: string;\n isHwProcessing: boolean;\n hwDetails?: IHomeworkDetails;\n onTestPreview?: (sheetData: INodeDataProps, milestoneId?: string) => void;\n onTestStart?: (sheetData: INodeDataProps, homeworkId?: string) => void;\n onTestReview?: (sheetData: INodeDataProps, milestoneId?: string) => void;\n puzzleHWCardRef?: React.RefObject<HTMLDivElement>;\n}\n\nexport interface IUseScrollButtonsProps {\n totalCount: number;\n}\n\nexport interface IUseScrollButtonsReturn {\n scrollRef: React.RefObject<HTMLDivElement | null>;\n showLeftButton: boolean;\n showRightButton: boolean;\n handleMouseEnter: () => void;\n handleMouseLeave: () => void;\n handleScrollLeft: () => void;\n handleScrollRight: () => void;\n}\n"],"names":["HW_CARD_LIST_ENTITY_TYPE"],"mappings":"AAQY,IAAAA,sBAAAA,OACVA,EAAA,eAAe,gBACfA,EAAA,YAAY,aAFFA,IAAAA,KAAA,CAAA,CAAA;"}
|