@cuemath/leap 3.5.60 → 3.5.61
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 +58 -63
- package/dist/features/homework/homework-card.js.map +1 -1
- package/dist/features/homework/hw-card-list/hw-card-list-view.js +46 -44
- package/dist/features/homework/hw-card-list/hw-card-list-view.js.map +1 -1
- package/dist/node_modules/uuid/dist/esm-browser/native.js +7 -0
- package/dist/node_modules/uuid/dist/esm-browser/native.js.map +1 -0
- package/dist/node_modules/uuid/dist/esm-browser/rng.js +3 -2
- package/dist/node_modules/uuid/dist/esm-browser/rng.js.map +1 -1
- package/dist/node_modules/uuid/dist/esm-browser/stringify.js +6 -10
- package/dist/node_modules/uuid/dist/esm-browser/stringify.js.map +1 -1
- package/dist/node_modules/uuid/dist/esm-browser/v4.js +12 -9
- package/dist/node_modules/uuid/dist/esm-browser/v4.js.map +1 -1
- package/package.json +1 -1
- package/dist/node_modules/uuid/dist/esm-browser/regex.js +0 -5
- package/dist/node_modules/uuid/dist/esm-browser/regex.js.map +0 -1
- package/dist/node_modules/uuid/dist/esm-browser/validate.js +0 -8
- package/dist/node_modules/uuid/dist/esm-browser/validate.js.map +0 -1
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import { memo as
|
|
3
|
-
import
|
|
1
|
+
import { jsxs as j, jsx as t } from "react/jsx-runtime";
|
|
2
|
+
import { memo as ue, useRef as z, useCallback as T, useMemo as fe } from "react";
|
|
3
|
+
import I from "../../assets/line-icons/icons/eye2.js";
|
|
4
4
|
import he from "../../assets/line-icons/icons/home2.js";
|
|
5
|
-
import
|
|
5
|
+
import de from "../../assets/line-icons/icons/more-vertical.js";
|
|
6
6
|
import B from "../../assets/line-icons/icons/redo.js";
|
|
7
7
|
import { ECardType as K } from "../chapters-v2/comps/node-card/node-card-types.js";
|
|
8
8
|
import Z from "../ui/arrow-tooltip/arrow-tooltip.js";
|
|
9
|
-
import
|
|
9
|
+
import me from "../ui/buttons/clickable/clickable.js";
|
|
10
10
|
import A from "../ui/hooks/use-context-menu-click-handler.js";
|
|
11
|
-
import
|
|
11
|
+
import pe from "../ui/layout/flex-view.js";
|
|
12
12
|
import Y from "./card-menu-options.js";
|
|
13
|
-
import
|
|
14
|
-
import { EHWCardListEntityType as
|
|
15
|
-
import { CardContainer as
|
|
16
|
-
import { getCardAnalyticProps as
|
|
17
|
-
const
|
|
13
|
+
import be from "./homework-card-view.js";
|
|
14
|
+
import { EHWCardListEntityType as we } from "./hw-card-list/hw-card-list-types.js";
|
|
15
|
+
import { CardContainer as Ce, MenuWrapper as Ee, CardKebabMenuWrapper as Me, BlurContainer as Te, BlurFlexView as ye, StyledMinus2Icon as _e } from "./styles.js";
|
|
16
|
+
import { getCardAnalyticProps as $e } from "./utils.js";
|
|
17
|
+
const ke = ({
|
|
18
18
|
// callbacks
|
|
19
19
|
nodeData: e,
|
|
20
|
-
onNodeAttempt:
|
|
20
|
+
onNodeAttempt: y,
|
|
21
21
|
onNodeReattempt: m,
|
|
22
22
|
onNodeReview: s,
|
|
23
23
|
onNodeUnassign: p,
|
|
24
|
-
onNodeView:
|
|
24
|
+
onNodeView: _,
|
|
25
25
|
onNodeAssignAsHomework: b,
|
|
26
26
|
onCardClick: a,
|
|
27
27
|
entityId: l,
|
|
@@ -34,25 +34,20 @@ const Re = ({
|
|
|
34
34
|
renderAs: S,
|
|
35
35
|
score: Q,
|
|
36
36
|
shouldOpenOnRight: U,
|
|
37
|
-
state:
|
|
37
|
+
state: d,
|
|
38
38
|
imageUrl: D,
|
|
39
39
|
studentId: O,
|
|
40
40
|
subHeader: N,
|
|
41
41
|
userMilestoneId: ee,
|
|
42
42
|
userType: V
|
|
43
43
|
}) => {
|
|
44
|
-
const c = S === "homework", {
|
|
45
|
-
node_type: w,
|
|
46
|
-
permissions: re,
|
|
47
|
-
user_node_id: u,
|
|
48
|
-
user_milestone_id: te
|
|
49
|
-
} = e, r = ee || te || "", F = w === "PUZZLE_CARD", n = v === Ce.MATHFIT_TEST, W = h === "LOCKED", $ = j(null), k = j(null), { menuVisible: H, onMenuClick: ie } = A($), { menuVisible: ne, onMenuClick: L } = A(k), {
|
|
44
|
+
const c = S === "homework", { node_type: w, permissions: re, user_node_id: u } = e, r = ee || "", F = w === "PUZZLE_CARD", n = v === we.MATHFIT_TEST, W = d === "LOCKED", $ = z(null), k = z(null), { menuVisible: H, onMenuClick: te } = A($), { menuVisible: ie, onMenuClick: L } = A(k), {
|
|
50
45
|
can_start: C,
|
|
51
46
|
can_resume: E,
|
|
52
47
|
can_review: f,
|
|
53
|
-
can_unassign:
|
|
48
|
+
can_unassign: ne,
|
|
54
49
|
can_reset: x,
|
|
55
|
-
can_assign_as_homework:
|
|
50
|
+
can_assign_as_homework: ce
|
|
56
51
|
} = re, o = V === "STUDENT", M = T(() => {
|
|
57
52
|
if (f) {
|
|
58
53
|
if (typeof s != "function")
|
|
@@ -62,7 +57,7 @@ const Re = ({
|
|
|
62
57
|
s(e, r);
|
|
63
58
|
return;
|
|
64
59
|
}
|
|
65
|
-
}, [f, s, u, e, r]),
|
|
60
|
+
}, [f, s, u, e, r]), oe = T(() => {
|
|
66
61
|
if (n && l) {
|
|
67
62
|
if (typeof a != "function")
|
|
68
63
|
throw new Error("onCardClick must be a function for MathFit cards");
|
|
@@ -70,9 +65,9 @@ const Re = ({
|
|
|
70
65
|
return;
|
|
71
66
|
}
|
|
72
67
|
if (C || E) {
|
|
73
|
-
if (typeof
|
|
68
|
+
if (typeof y != "function")
|
|
74
69
|
throw new Error("onNodeAttempt must be a function");
|
|
75
|
-
|
|
70
|
+
y(e, r, i);
|
|
76
71
|
return;
|
|
77
72
|
}
|
|
78
73
|
if (!c) {
|
|
@@ -90,7 +85,7 @@ const Re = ({
|
|
|
90
85
|
r,
|
|
91
86
|
e,
|
|
92
87
|
a,
|
|
93
|
-
|
|
88
|
+
y,
|
|
94
89
|
L,
|
|
95
90
|
M
|
|
96
91
|
]), R = T(() => {
|
|
@@ -108,9 +103,9 @@ const Re = ({
|
|
|
108
103
|
s(e, r, i);
|
|
109
104
|
return;
|
|
110
105
|
}
|
|
111
|
-
if (typeof
|
|
106
|
+
if (typeof _ != "function")
|
|
112
107
|
throw new Error("onNodeView must be a function");
|
|
113
|
-
|
|
108
|
+
_(e, r);
|
|
114
109
|
}, [
|
|
115
110
|
f,
|
|
116
111
|
l,
|
|
@@ -120,9 +115,9 @@ const Re = ({
|
|
|
120
115
|
e,
|
|
121
116
|
a,
|
|
122
117
|
s,
|
|
123
|
-
|
|
118
|
+
_,
|
|
124
119
|
u
|
|
125
|
-
]),
|
|
120
|
+
]), h = T(
|
|
126
121
|
(X) => {
|
|
127
122
|
switch (X) {
|
|
128
123
|
case "teacher-card-view":
|
|
@@ -155,52 +150,52 @@ const Re = ({
|
|
|
155
150
|
M,
|
|
156
151
|
R
|
|
157
152
|
]
|
|
158
|
-
),
|
|
153
|
+
), se = [
|
|
159
154
|
{
|
|
160
155
|
id: "teacher-card-view",
|
|
161
156
|
label: f ? "Review" : "View",
|
|
162
|
-
icon:
|
|
157
|
+
icon: I,
|
|
163
158
|
disabled: !1,
|
|
164
|
-
onClick:
|
|
159
|
+
onClick: h
|
|
165
160
|
},
|
|
166
161
|
{
|
|
167
162
|
id: "teacher-card-unassign",
|
|
168
163
|
label: "Unassign",
|
|
169
|
-
icon:
|
|
170
|
-
disabled: c ? w === "MASTERY" : !
|
|
171
|
-
onClick:
|
|
164
|
+
icon: _e,
|
|
165
|
+
disabled: c ? w === "MASTERY" : !ne,
|
|
166
|
+
onClick: h
|
|
172
167
|
},
|
|
173
168
|
{
|
|
174
169
|
id: "teacher-card-redo",
|
|
175
170
|
label: "Redo",
|
|
176
171
|
icon: B,
|
|
177
172
|
disabled: !x,
|
|
178
|
-
onClick:
|
|
173
|
+
onClick: h
|
|
179
174
|
},
|
|
180
175
|
{
|
|
181
176
|
id: "teacher-card-assign-as-hw",
|
|
182
177
|
label: "Assign as HW",
|
|
183
178
|
icon: he,
|
|
184
|
-
disabled: !
|
|
185
|
-
onClick:
|
|
179
|
+
disabled: !ce,
|
|
180
|
+
onClick: h
|
|
186
181
|
}
|
|
187
|
-
],
|
|
182
|
+
], ae = [
|
|
188
183
|
{
|
|
189
184
|
id: "student-card-view",
|
|
190
185
|
label: "Review",
|
|
191
|
-
icon:
|
|
186
|
+
icon: I,
|
|
192
187
|
disabled: !f,
|
|
193
|
-
onClick:
|
|
188
|
+
onClick: h
|
|
194
189
|
},
|
|
195
190
|
{
|
|
196
191
|
id: "student-card-reattempt",
|
|
197
192
|
label: "Reattempt",
|
|
198
193
|
icon: B,
|
|
199
194
|
disabled: !x,
|
|
200
|
-
onClick:
|
|
195
|
+
onClick: h
|
|
201
196
|
}
|
|
202
|
-
], P =
|
|
203
|
-
() =>
|
|
197
|
+
], P = fe(
|
|
198
|
+
() => $e({
|
|
204
199
|
canResume: E,
|
|
205
200
|
canStart: C,
|
|
206
201
|
homeworkId: i,
|
|
@@ -222,18 +217,18 @@ const Re = ({
|
|
|
222
217
|
O,
|
|
223
218
|
u
|
|
224
219
|
]
|
|
225
|
-
),
|
|
226
|
-
return /* @__PURE__ */
|
|
220
|
+
), le = o && F && W || !o && n && d !== "COMPLETED" && d !== "EXPIRED" || n && W;
|
|
221
|
+
return /* @__PURE__ */ j(Ce, { $position: "relative", $width: "fit-content", children: [
|
|
227
222
|
/* @__PURE__ */ t(
|
|
228
|
-
|
|
223
|
+
me,
|
|
229
224
|
{
|
|
230
|
-
onClick: o ?
|
|
225
|
+
onClick: o ? oe : R,
|
|
231
226
|
label: "homework-card",
|
|
232
227
|
analyticsLabel: P.analyticsLabel,
|
|
233
228
|
analyticsProps: P.analyticsProps,
|
|
234
|
-
disabled:
|
|
229
|
+
disabled: le,
|
|
235
230
|
children: /* @__PURE__ */ t(
|
|
236
|
-
|
|
231
|
+
be,
|
|
237
232
|
{
|
|
238
233
|
entityType: v,
|
|
239
234
|
header: q,
|
|
@@ -244,7 +239,7 @@ const Re = ({
|
|
|
244
239
|
mathFitCardRef: J,
|
|
245
240
|
score: Q,
|
|
246
241
|
imageUrl: D,
|
|
247
|
-
state:
|
|
242
|
+
state: d,
|
|
248
243
|
studentContainerRef: k,
|
|
249
244
|
subHeader: N,
|
|
250
245
|
userType: V
|
|
@@ -256,13 +251,13 @@ const Re = ({
|
|
|
256
251
|
Y,
|
|
257
252
|
{
|
|
258
253
|
$width: 200,
|
|
259
|
-
options:
|
|
254
|
+
options: ae,
|
|
260
255
|
triggerRef: k,
|
|
261
|
-
visible:
|
|
256
|
+
visible: ie,
|
|
262
257
|
shouldOpenOnRight: !1
|
|
263
258
|
}
|
|
264
259
|
),
|
|
265
|
-
!o && !F && !n && /* @__PURE__ */
|
|
260
|
+
!o && !F && !n && /* @__PURE__ */ j(Ee, { $position: "absolute", $width: "fit-content", $borderRadiusX: 2, children: [
|
|
266
261
|
/* @__PURE__ */ t(
|
|
267
262
|
Z,
|
|
268
263
|
{
|
|
@@ -271,15 +266,15 @@ const Re = ({
|
|
|
271
266
|
position: "bottom",
|
|
272
267
|
zIndex: 6,
|
|
273
268
|
parentWidth: "100%",
|
|
274
|
-
hidden: H ||
|
|
269
|
+
hidden: H || d !== "WAIT_FOR_REVIEW" && c,
|
|
275
270
|
children: /* @__PURE__ */ t(
|
|
276
|
-
|
|
271
|
+
Me,
|
|
277
272
|
{
|
|
278
273
|
$alignItems: "center",
|
|
279
274
|
$justifyContent: "center",
|
|
280
275
|
ref: $,
|
|
281
|
-
onClick:
|
|
282
|
-
children: /* @__PURE__ */ t(
|
|
276
|
+
onClick: te,
|
|
277
|
+
children: /* @__PURE__ */ t(de, { width: 16, height: 16 })
|
|
283
278
|
}
|
|
284
279
|
)
|
|
285
280
|
}
|
|
@@ -287,7 +282,7 @@ const Re = ({
|
|
|
287
282
|
/* @__PURE__ */ t(
|
|
288
283
|
Y,
|
|
289
284
|
{
|
|
290
|
-
options:
|
|
285
|
+
options: se,
|
|
291
286
|
triggerRef: $,
|
|
292
287
|
visible: H,
|
|
293
288
|
shouldOpenOnRight: U,
|
|
@@ -295,10 +290,10 @@ const Re = ({
|
|
|
295
290
|
}
|
|
296
291
|
)
|
|
297
292
|
] }),
|
|
298
|
-
g && /* @__PURE__ */ t(
|
|
293
|
+
g && /* @__PURE__ */ t(Te, { $background: "WHITE_5", children: /* @__PURE__ */ t(ye, { $heightX: 1, $widthX: 6, children: /* @__PURE__ */ t(Z, { renderAs: "primary", tooltipItem: "Not visible to student", position: "bottom", children: /* @__PURE__ */ t(pe, { $heightX: 1, $widthX: 6 }) }) }) })
|
|
299
294
|
] });
|
|
300
|
-
},
|
|
295
|
+
}, Be = ue(ke);
|
|
301
296
|
export {
|
|
302
|
-
|
|
297
|
+
Be as default
|
|
303
298
|
};
|
|
304
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 {\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 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}\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 puzzleHWCardRef,\n mathFitCardRef,\n renderAs,\n score,\n shouldOpenOnRight,\n state,\n imageUrl,\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 === 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 = [\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 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 {!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","onCardClick","entityId","entityType","header","homeworkId","isInQueue","puzzleHWCardRef","mathFitCardRef","renderAs","score","shouldOpenOnRight","state","imageUrl","studentId","subHeader","userMilestoneId","userType","isHomeWork","nodeType","permissions","userNodeId","nodeDataMilestoneId","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","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 {\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 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}\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 puzzleHWCardRef,\n mathFitCardRef,\n renderAs,\n score,\n shouldOpenOnRight,\n state,\n imageUrl,\n studentId,\n subHeader,\n userMilestoneId,\n userType,\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 = [\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 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 {!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","onCardClick","entityId","entityType","header","homeworkId","isInQueue","puzzleHWCardRef","mathFitCardRef","renderAs","score","shouldOpenOnRight","state","imageUrl","studentId","subHeader","userMilestoneId","userType","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","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,18 +1,18 @@
|
|
|
1
1
|
import { jsxs as a, jsx as o } from "react/jsx-runtime";
|
|
2
|
-
import { memo as
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import { NODE_TYPE as
|
|
2
|
+
import { memo as V, useMemo as L, useCallback as Y } from "react";
|
|
3
|
+
import N from "../../../assets/line-icons/icons/chevron-left.js";
|
|
4
|
+
import P from "../../../assets/line-icons/icons/chevron-right.js";
|
|
5
|
+
import { NODE_TYPE as z } from "../../sheets/constants/sheet.js";
|
|
6
6
|
import c from "../../ui/layout/flex-view.js";
|
|
7
7
|
import m from "../../ui/text/text.js";
|
|
8
|
-
import
|
|
9
|
-
import { QueueWrapper as
|
|
10
|
-
import { getWaitForReviewSheetsCount as
|
|
11
|
-
import { useScrollButtons as
|
|
12
|
-
const
|
|
8
|
+
import J from "../homework-card.js";
|
|
9
|
+
import { QueueWrapper as Q, QueueText as U, ContentWrapper as Z, ScrollButton as v, ScrollContainer as D } from "./hw-card-list-styled.js";
|
|
10
|
+
import { getWaitForReviewSheetsCount as ee } from "./hw-card-list-utils.js";
|
|
11
|
+
import { useScrollButtons as oe } from "./hooks/use-scroll-buttons.js";
|
|
12
|
+
const te = ({
|
|
13
13
|
userType: h,
|
|
14
14
|
studentId: $,
|
|
15
|
-
isHwProcessing:
|
|
15
|
+
isHwProcessing: y,
|
|
16
16
|
hwDetails: r,
|
|
17
17
|
onTestStart: p,
|
|
18
18
|
onNodeAttempt: f,
|
|
@@ -26,7 +26,7 @@ const oe = ({
|
|
|
26
26
|
mathFitCardRef: b
|
|
27
27
|
}) => {
|
|
28
28
|
const t = L(() => {
|
|
29
|
-
const s = (r == null ? void 0 : r.assigned_homeworks) || [], i = (r == null ? void 0 : r.queued_homeworks) || [], e = s.length + i.length, n =
|
|
29
|
+
const s = (r == null ? void 0 : r.assigned_homeworks) || [], i = (r == null ? void 0 : r.queued_homeworks) || [], e = s.length + i.length, n = ee(r);
|
|
30
30
|
return {
|
|
31
31
|
assignedHomeworks: s,
|
|
32
32
|
queuedHomeworks: i,
|
|
@@ -34,27 +34,28 @@ const oe = ({
|
|
|
34
34
|
waitForReviewCount: n
|
|
35
35
|
};
|
|
36
36
|
}, [r]), {
|
|
37
|
-
scrollRef:
|
|
38
|
-
showLeftButton:
|
|
39
|
-
showRightButton:
|
|
37
|
+
scrollRef: A,
|
|
38
|
+
showLeftButton: I,
|
|
39
|
+
showRightButton: B,
|
|
40
40
|
handleMouseEnter: R,
|
|
41
|
-
handleMouseLeave:
|
|
42
|
-
handleScrollLeft:
|
|
43
|
-
handleScrollRight:
|
|
44
|
-
} =
|
|
41
|
+
handleMouseLeave: M,
|
|
42
|
+
handleScrollLeft: T,
|
|
43
|
+
handleScrollRight: q
|
|
44
|
+
} = oe({
|
|
45
45
|
totalCount: t.totalCount
|
|
46
|
-
}), u =
|
|
46
|
+
}), u = Y(
|
|
47
47
|
(s, i, e = !1) => {
|
|
48
48
|
const {
|
|
49
49
|
entity_id: n,
|
|
50
|
-
sheets:
|
|
50
|
+
sheets: K,
|
|
51
51
|
subtext: S,
|
|
52
52
|
entity_type: j,
|
|
53
53
|
image_url: F,
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
54
|
+
user_milestone_id: G,
|
|
55
|
+
state: W,
|
|
56
|
+
score: X,
|
|
57
|
+
id: O
|
|
58
|
+
} = s, l = K[0], d = (l == null ? void 0 : l.node_type) === z.DYNAMIC;
|
|
58
59
|
return /* @__PURE__ */ a(
|
|
59
60
|
c,
|
|
60
61
|
{
|
|
@@ -62,17 +63,17 @@ const oe = ({
|
|
|
62
63
|
$flexGapX: 1,
|
|
63
64
|
children: [
|
|
64
65
|
e && i === 0 && /* @__PURE__ */ o(
|
|
65
|
-
|
|
66
|
+
Q,
|
|
66
67
|
{
|
|
67
68
|
$background: "BLACK_4",
|
|
68
69
|
$justifyContent: "center",
|
|
69
70
|
$gutter: 4,
|
|
70
71
|
$gap: 8,
|
|
71
|
-
children: /* @__PURE__ */ o(
|
|
72
|
+
children: /* @__PURE__ */ o(U, { $renderAs: "ac3", $color: "WHITE", children: "In Queue" })
|
|
72
73
|
}
|
|
73
74
|
),
|
|
74
75
|
l && /* @__PURE__ */ o(
|
|
75
|
-
|
|
76
|
+
J,
|
|
76
77
|
{
|
|
77
78
|
isInQueue: e,
|
|
78
79
|
userType: h,
|
|
@@ -91,10 +92,11 @@ const oe = ({
|
|
|
91
92
|
onCardClick: x,
|
|
92
93
|
entityType: j,
|
|
93
94
|
entityId: n,
|
|
94
|
-
state:
|
|
95
|
-
score:
|
|
95
|
+
state: W,
|
|
96
|
+
score: X,
|
|
96
97
|
imageUrl: F,
|
|
97
|
-
homeworkId:
|
|
98
|
+
homeworkId: O,
|
|
99
|
+
userMilestoneId: G ?? void 0
|
|
98
100
|
}
|
|
99
101
|
)
|
|
100
102
|
]
|
|
@@ -116,7 +118,7 @@ const oe = ({
|
|
|
116
118
|
b,
|
|
117
119
|
x
|
|
118
120
|
]
|
|
119
|
-
),
|
|
121
|
+
), E = L(() => {
|
|
120
122
|
if (t.totalCount === 0) return [];
|
|
121
123
|
const s = t.assignedHomeworks.map(
|
|
122
124
|
(e, n) => u(e, n, !1)
|
|
@@ -133,7 +135,7 @@ const oe = ({
|
|
|
133
135
|
return t.totalCount === 0 ? /* @__PURE__ */ a(c, { $flexRowGapX: 1, children: [
|
|
134
136
|
/* @__PURE__ */ o(m, { $renderAs: "ac4-black", $color: "BLACK_T_60", children: "Homework (0)" }),
|
|
135
137
|
/* @__PURE__ */ o(m, { $renderAs: "ab2", $color: "BLACK_T_60", children: "No Homework assigned yet" })
|
|
136
|
-
] }) : /* @__PURE__ */ a(
|
|
138
|
+
] }) : /* @__PURE__ */ a(Z, { $flexRowGapX: 1, $disablePointerEvents: y, children: [
|
|
137
139
|
/* @__PURE__ */ a(m, { $renderAs: "ac4-black", $color: "BLACK_T_60", children: [
|
|
138
140
|
"Homework (",
|
|
139
141
|
t.waitForReviewCount,
|
|
@@ -146,26 +148,26 @@ const oe = ({
|
|
|
146
148
|
{
|
|
147
149
|
$position: "relative",
|
|
148
150
|
onMouseEnter: R,
|
|
149
|
-
onMouseLeave:
|
|
151
|
+
onMouseLeave: M,
|
|
150
152
|
children: [
|
|
151
153
|
/* @__PURE__ */ o(
|
|
152
|
-
|
|
154
|
+
v,
|
|
153
155
|
{
|
|
154
156
|
$position: "absolute",
|
|
155
157
|
$background: "BLACK_T_60",
|
|
156
158
|
$justifyContent: "center",
|
|
157
159
|
$alignItems: "center",
|
|
158
160
|
$height: "100%",
|
|
159
|
-
onClick:
|
|
160
|
-
$visible:
|
|
161
|
+
onClick: T,
|
|
162
|
+
$visible: I,
|
|
161
163
|
left: "0px",
|
|
162
164
|
right: "auto",
|
|
163
|
-
children: /* @__PURE__ */ o(
|
|
165
|
+
children: /* @__PURE__ */ o(N, { width: 24, height: 24 })
|
|
164
166
|
}
|
|
165
167
|
),
|
|
166
|
-
/* @__PURE__ */ o(
|
|
168
|
+
/* @__PURE__ */ o(D, { ref: A, children: /* @__PURE__ */ o(c, { $flexDirection: "row", $flexGapX: 1, children: E }) }),
|
|
167
169
|
/* @__PURE__ */ o(
|
|
168
|
-
|
|
170
|
+
v,
|
|
169
171
|
{
|
|
170
172
|
$position: "absolute",
|
|
171
173
|
$width: "60px",
|
|
@@ -173,19 +175,19 @@ const oe = ({
|
|
|
173
175
|
$background: "BLACK_T_60",
|
|
174
176
|
$justifyContent: "center",
|
|
175
177
|
$alignItems: "center",
|
|
176
|
-
onClick:
|
|
177
|
-
$visible:
|
|
178
|
+
onClick: q,
|
|
179
|
+
$visible: B,
|
|
178
180
|
left: "auto",
|
|
179
181
|
right: "0px",
|
|
180
|
-
children: /* @__PURE__ */ o(
|
|
182
|
+
children: /* @__PURE__ */ o(P, { width: 24, height: 24 })
|
|
181
183
|
}
|
|
182
184
|
)
|
|
183
185
|
]
|
|
184
186
|
}
|
|
185
187
|
)
|
|
186
188
|
] });
|
|
187
|
-
},
|
|
189
|
+
}, $e = V(te);
|
|
188
190
|
export {
|
|
189
|
-
|
|
191
|
+
$e as default
|
|
190
192
|
};
|
|
191
193
|
//# sourceMappingURL=hw-card-list-view.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hw-card-list-view.js","sources":["../../../../src/features/homework/hw-card-list/hw-card-list-view.tsx"],"sourcesContent":["import { memo, useCallback, useMemo, type FC } from 'react';\n\nimport ChevronLeftIcon from '../../../assets/line-icons/icons/chevron-left';\nimport ChevronRightIcon from '../../../assets/line-icons/icons/chevron-right';\nimport { NODE_TYPE } from '../../sheets/constants/sheet';\nimport FlexView from '../../ui/layout/flex-view';\nimport Text from '../../ui/text/text';\nimport HomeworkCard from '../homework-card';\nimport type { IHomeworkItem } from './api/get-homeworks';\nimport * as Styled from './hw-card-list-styled';\nimport type { IHwCardListView } from './hw-card-list-types';\nimport { getWaitForReviewSheetsCount } from './hw-card-list-utils';\nimport { useScrollButtons } from './hooks/use-scroll-buttons';\n\nconst HwCardListView: FC<IHwCardListView> = ({\n userType,\n studentId,\n isHwProcessing,\n hwDetails,\n onTestStart,\n onNodeAttempt,\n onTestPreview,\n onNodeView,\n onTestReview,\n onNodeReview,\n onNodeUnassign,\n onCardClick,\n puzzleHWCardRef,\n mathFitCardRef,\n}) => {\n const homeworkData = useMemo(() => {\n const assignedHomeworks = hwDetails?.assigned_homeworks || [];\n const queuedHomeworks = hwDetails?.queued_homeworks || [];\n const totalCount = assignedHomeworks.length + queuedHomeworks.length;\n const waitForReviewCount = getWaitForReviewSheetsCount(hwDetails);\n\n return {\n assignedHomeworks,\n queuedHomeworks,\n totalCount,\n waitForReviewCount,\n };\n }, [hwDetails]);\n\n const {\n scrollRef,\n showLeftButton,\n showRightButton,\n handleMouseEnter,\n handleMouseLeave,\n handleScrollLeft,\n handleScrollRight,\n } = useScrollButtons({\n totalCount: homeworkData.totalCount,\n });\n\n const renderHomeworkCard = useCallback(\n (item: IHomeworkItem, idx: number, isQueued = false) => {\n const {\n entity_id: entityId,\n sheets,\n subtext,\n entity_type: entitYType,\n image_url: imageUrl,\n state,\n score,\n id,\n } = item;\n const sheet = sheets[0];\n const isDynamicSheet = sheet?.node_type === NODE_TYPE.DYNAMIC;\n\n return (\n <FlexView\n key={`${entityId}_${idx}_${isQueued ? 'queued' : 'assigned'}`}\n $flexDirection=\"row\"\n $flexGapX={1}\n >\n {isQueued && idx === 0 && (\n <Styled.QueueWrapper\n $background=\"BLACK_4\"\n $justifyContent=\"center\"\n $gutter={4}\n $gap={8}\n >\n <Styled.QueueText $renderAs=\"ac3\" $color=\"WHITE\">\n In Queue\n </Styled.QueueText>\n </Styled.QueueWrapper>\n )}\n\n {sheet && (\n <HomeworkCard\n isInQueue={isQueued}\n userType={userType}\n header={sheet.title}\n subHeader={subtext || ''}\n nodeData={sheet}\n renderAs=\"homework\"\n studentId={studentId}\n onNodeAttempt={isDynamicSheet ? onTestStart : onNodeAttempt}\n shouldOpenOnRight={true}\n onNodeView={isDynamicSheet ? onTestPreview : onNodeView}\n onNodeReview={isDynamicSheet ? onTestReview : onNodeReview}\n onNodeUnassign={onNodeUnassign}\n puzzleHWCardRef={isQueued ? undefined : puzzleHWCardRef}\n mathFitCardRef={isQueued ? undefined : mathFitCardRef}\n onCardClick={onCardClick}\n entityType={entitYType}\n entityId={entityId}\n state={state}\n score={score}\n imageUrl={imageUrl}\n homeworkId={id}\n />\n )}\n </FlexView>\n );\n },\n [\n userType,\n studentId,\n onTestStart,\n onNodeAttempt,\n onTestPreview,\n onNodeView,\n onTestReview,\n onNodeReview,\n onNodeUnassign,\n puzzleHWCardRef,\n mathFitCardRef,\n onCardClick,\n ],\n );\n\n const homeworkCards = useMemo(() => {\n if (homeworkData.totalCount === 0) return [];\n\n const assignedCards = homeworkData.assignedHomeworks.map((sheet, idx) =>\n renderHomeworkCard(sheet, idx, false),\n );\n\n const queuedCards = homeworkData.queuedHomeworks.map((sheet, idx) =>\n renderHomeworkCard(sheet, idx, true),\n );\n\n return [...assignedCards, ...queuedCards];\n }, [\n homeworkData.assignedHomeworks,\n homeworkData.queuedHomeworks,\n renderHomeworkCard,\n homeworkData.totalCount,\n ]);\n\n if (homeworkData.totalCount === 0) {\n return (\n <FlexView $flexRowGapX={1}>\n <Text $renderAs=\"ac4-black\" $color=\"BLACK_T_60\">\n Homework (0)\n </Text>\n <Text $renderAs=\"ab2\" $color=\"BLACK_T_60\">\n No Homework assigned yet\n </Text>\n </FlexView>\n );\n }\n\n return (\n <Styled.ContentWrapper $flexRowGapX={1} $disablePointerEvents={isHwProcessing}>\n <Text $renderAs=\"ac4-black\" $color=\"BLACK_T_60\">\n Homework ({homeworkData.waitForReviewCount}/{homeworkData.totalCount})\n </Text>\n <FlexView\n $position=\"relative\"\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n <Styled.ScrollButton\n $position=\"absolute\"\n $background=\"BLACK_T_60\"\n $justifyContent=\"center\"\n $alignItems=\"center\"\n $height=\"100%\"\n onClick={handleScrollLeft}\n $visible={showLeftButton}\n left=\"0px\"\n right=\"auto\"\n >\n <ChevronLeftIcon width={24} height={24} />\n </Styled.ScrollButton>\n\n <Styled.ScrollContainer ref={scrollRef}>\n <FlexView $flexDirection=\"row\" $flexGapX={1}>\n {homeworkCards}\n </FlexView>\n </Styled.ScrollContainer>\n\n <Styled.ScrollButton\n $position=\"absolute\"\n $width=\"60px\"\n $height=\"100%\"\n $background=\"BLACK_T_60\"\n $justifyContent=\"center\"\n $alignItems=\"center\"\n onClick={handleScrollRight}\n $visible={showRightButton}\n left=\"auto\"\n right=\"0px\"\n >\n <ChevronRightIcon width={24} height={24} />\n </Styled.ScrollButton>\n </FlexView>\n </Styled.ContentWrapper>\n );\n};\n\nexport default memo(HwCardListView);\n"],"names":["HwCardListView","userType","studentId","isHwProcessing","hwDetails","onTestStart","onNodeAttempt","onTestPreview","onNodeView","onTestReview","onNodeReview","onNodeUnassign","onCardClick","puzzleHWCardRef","mathFitCardRef","homeworkData","useMemo","assignedHomeworks","queuedHomeworks","totalCount","waitForReviewCount","getWaitForReviewSheetsCount","scrollRef","showLeftButton","showRightButton","handleMouseEnter","handleMouseLeave","handleScrollLeft","handleScrollRight","useScrollButtons","renderHomeworkCard","useCallback","item","idx","isQueued","entityId","sheets","subtext","entitYType","imageUrl","state","score","id","sheet","isDynamicSheet","NODE_TYPE","jsxs","FlexView","jsx","Styled.QueueWrapper","Styled.QueueText","HomeworkCard","homeworkCards","assignedCards","queuedCards","Text","Styled.ContentWrapper","Styled.ScrollButton","ChevronLeftIcon","Styled.ScrollContainer","ChevronRightIcon","HwCardListView$1","memo"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hw-card-list-view.js","sources":["../../../../src/features/homework/hw-card-list/hw-card-list-view.tsx"],"sourcesContent":["import { memo, useCallback, useMemo, type FC } from 'react';\n\nimport ChevronLeftIcon from '../../../assets/line-icons/icons/chevron-left';\nimport ChevronRightIcon from '../../../assets/line-icons/icons/chevron-right';\nimport { NODE_TYPE } from '../../sheets/constants/sheet';\nimport FlexView from '../../ui/layout/flex-view';\nimport Text from '../../ui/text/text';\nimport HomeworkCard from '../homework-card';\nimport type { IHomeworkItem } from './api/get-homeworks';\nimport * as Styled from './hw-card-list-styled';\nimport type { IHwCardListView } from './hw-card-list-types';\nimport { getWaitForReviewSheetsCount } from './hw-card-list-utils';\nimport { useScrollButtons } from './hooks/use-scroll-buttons';\n\nconst HwCardListView: FC<IHwCardListView> = ({\n userType,\n studentId,\n isHwProcessing,\n hwDetails,\n onTestStart,\n onNodeAttempt,\n onTestPreview,\n onNodeView,\n onTestReview,\n onNodeReview,\n onNodeUnassign,\n onCardClick,\n puzzleHWCardRef,\n mathFitCardRef,\n}) => {\n const homeworkData = useMemo(() => {\n const assignedHomeworks = hwDetails?.assigned_homeworks || [];\n const queuedHomeworks = hwDetails?.queued_homeworks || [];\n const totalCount = assignedHomeworks.length + queuedHomeworks.length;\n const waitForReviewCount = getWaitForReviewSheetsCount(hwDetails);\n\n return {\n assignedHomeworks,\n queuedHomeworks,\n totalCount,\n waitForReviewCount,\n };\n }, [hwDetails]);\n\n const {\n scrollRef,\n showLeftButton,\n showRightButton,\n handleMouseEnter,\n handleMouseLeave,\n handleScrollLeft,\n handleScrollRight,\n } = useScrollButtons({\n totalCount: homeworkData.totalCount,\n });\n\n const renderHomeworkCard = useCallback(\n (item: IHomeworkItem, idx: number, isQueued = false) => {\n const {\n entity_id: entityId,\n sheets,\n subtext,\n entity_type: entitYType,\n image_url: imageUrl,\n user_milestone_id: userMilestoneId,\n state,\n score,\n id,\n } = item;\n const sheet = sheets[0];\n const isDynamicSheet = sheet?.node_type === NODE_TYPE.DYNAMIC;\n\n return (\n <FlexView\n key={`${entityId}_${idx}_${isQueued ? 'queued' : 'assigned'}`}\n $flexDirection=\"row\"\n $flexGapX={1}\n >\n {isQueued && idx === 0 && (\n <Styled.QueueWrapper\n $background=\"BLACK_4\"\n $justifyContent=\"center\"\n $gutter={4}\n $gap={8}\n >\n <Styled.QueueText $renderAs=\"ac3\" $color=\"WHITE\">\n In Queue\n </Styled.QueueText>\n </Styled.QueueWrapper>\n )}\n\n {sheet && (\n <HomeworkCard\n isInQueue={isQueued}\n userType={userType}\n header={sheet.title}\n subHeader={subtext || ''}\n nodeData={sheet}\n renderAs=\"homework\"\n studentId={studentId}\n onNodeAttempt={isDynamicSheet ? onTestStart : onNodeAttempt}\n shouldOpenOnRight={true}\n onNodeView={isDynamicSheet ? onTestPreview : onNodeView}\n onNodeReview={isDynamicSheet ? onTestReview : onNodeReview}\n onNodeUnassign={onNodeUnassign}\n puzzleHWCardRef={isQueued ? undefined : puzzleHWCardRef}\n mathFitCardRef={isQueued ? undefined : mathFitCardRef}\n onCardClick={onCardClick}\n entityType={entitYType}\n entityId={entityId}\n state={state}\n score={score}\n imageUrl={imageUrl}\n homeworkId={id}\n userMilestoneId={userMilestoneId ?? undefined}\n />\n )}\n </FlexView>\n );\n },\n [\n userType,\n studentId,\n onTestStart,\n onNodeAttempt,\n onTestPreview,\n onNodeView,\n onTestReview,\n onNodeReview,\n onNodeUnassign,\n puzzleHWCardRef,\n mathFitCardRef,\n onCardClick,\n ],\n );\n\n const homeworkCards = useMemo(() => {\n if (homeworkData.totalCount === 0) return [];\n\n const assignedCards = homeworkData.assignedHomeworks.map((sheet, idx) =>\n renderHomeworkCard(sheet, idx, false),\n );\n\n const queuedCards = homeworkData.queuedHomeworks.map((sheet, idx) =>\n renderHomeworkCard(sheet, idx, true),\n );\n\n return [...assignedCards, ...queuedCards];\n }, [\n homeworkData.assignedHomeworks,\n homeworkData.queuedHomeworks,\n renderHomeworkCard,\n homeworkData.totalCount,\n ]);\n\n if (homeworkData.totalCount === 0) {\n return (\n <FlexView $flexRowGapX={1}>\n <Text $renderAs=\"ac4-black\" $color=\"BLACK_T_60\">\n Homework (0)\n </Text>\n <Text $renderAs=\"ab2\" $color=\"BLACK_T_60\">\n No Homework assigned yet\n </Text>\n </FlexView>\n );\n }\n\n return (\n <Styled.ContentWrapper $flexRowGapX={1} $disablePointerEvents={isHwProcessing}>\n <Text $renderAs=\"ac4-black\" $color=\"BLACK_T_60\">\n Homework ({homeworkData.waitForReviewCount}/{homeworkData.totalCount})\n </Text>\n <FlexView\n $position=\"relative\"\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n <Styled.ScrollButton\n $position=\"absolute\"\n $background=\"BLACK_T_60\"\n $justifyContent=\"center\"\n $alignItems=\"center\"\n $height=\"100%\"\n onClick={handleScrollLeft}\n $visible={showLeftButton}\n left=\"0px\"\n right=\"auto\"\n >\n <ChevronLeftIcon width={24} height={24} />\n </Styled.ScrollButton>\n\n <Styled.ScrollContainer ref={scrollRef}>\n <FlexView $flexDirection=\"row\" $flexGapX={1}>\n {homeworkCards}\n </FlexView>\n </Styled.ScrollContainer>\n\n <Styled.ScrollButton\n $position=\"absolute\"\n $width=\"60px\"\n $height=\"100%\"\n $background=\"BLACK_T_60\"\n $justifyContent=\"center\"\n $alignItems=\"center\"\n onClick={handleScrollRight}\n $visible={showRightButton}\n left=\"auto\"\n right=\"0px\"\n >\n <ChevronRightIcon width={24} height={24} />\n </Styled.ScrollButton>\n </FlexView>\n </Styled.ContentWrapper>\n );\n};\n\nexport default memo(HwCardListView);\n"],"names":["HwCardListView","userType","studentId","isHwProcessing","hwDetails","onTestStart","onNodeAttempt","onTestPreview","onNodeView","onTestReview","onNodeReview","onNodeUnassign","onCardClick","puzzleHWCardRef","mathFitCardRef","homeworkData","useMemo","assignedHomeworks","queuedHomeworks","totalCount","waitForReviewCount","getWaitForReviewSheetsCount","scrollRef","showLeftButton","showRightButton","handleMouseEnter","handleMouseLeave","handleScrollLeft","handleScrollRight","useScrollButtons","renderHomeworkCard","useCallback","item","idx","isQueued","entityId","sheets","subtext","entitYType","imageUrl","userMilestoneId","state","score","id","sheet","isDynamicSheet","NODE_TYPE","jsxs","FlexView","jsx","Styled.QueueWrapper","Styled.QueueText","HomeworkCard","homeworkCards","assignedCards","queuedCards","Text","Styled.ContentWrapper","Styled.ScrollButton","ChevronLeftIcon","Styled.ScrollContainer","ChevronRightIcon","HwCardListView$1","memo"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native.js","sources":["../../../../../node_modules/uuid/dist/esm-browser/native.js"],"sourcesContent":["const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};"],"names":["randomUUID","native"],"mappings":"AAAA,MAAMA,IAAa,OAAO,SAAW,OAAe,OAAO,cAAc,OAAO,WAAW,KAAK,MAAM,GACvFC,IAAA;AAAA,EACb,YAAAD;AACF;","x_google_ignoreList":[0]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
let t;
|
|
2
|
+
const e = new Uint8Array(16);
|
|
2
3
|
function o() {
|
|
3
|
-
if (!t && (t = typeof crypto < "u" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)
|
|
4
|
+
if (!t && (t = typeof crypto < "u" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto), !t))
|
|
4
5
|
throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");
|
|
5
6
|
return t(e);
|
|
6
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rng.js","sources":["../../../../../node_modules/uuid/dist/esm-browser/rng.js"],"sourcesContent":["// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\
|
|
1
|
+
{"version":3,"file":"rng.js","sources":["../../../../../node_modules/uuid/dist/esm-browser/rng.js"],"sourcesContent":["// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}"],"names":["getRandomValues","rnds8","rng"],"mappings":"AAGA,IAAIA;AACJ,MAAMC,IAAQ,IAAI,WAAW,EAAE;AAChB,SAASC,IAAM;AAE5B,MAAI,CAACF,MAEHA,IAAkB,OAAO,SAAW,OAAe,OAAO,mBAAmB,OAAO,gBAAgB,KAAK,MAAM,GAE3G,CAACA;AACH,UAAM,IAAI,MAAM,0GAA0G;AAI9H,SAAOA,EAAgBC,CAAK;AAC9B;","x_google_ignoreList":[0]}
|
|
@@ -1,14 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
var i = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0, o = (t[e[i + 0]] + t[e[i + 1]] + t[e[i + 2]] + t[e[i + 3]] + "-" + t[e[i + 4]] + t[e[i + 5]] + "-" + t[e[i + 6]] + t[e[i + 7]] + "-" + t[e[i + 8]] + t[e[i + 9]] + "-" + t[e[i + 10]] + t[e[i + 11]] + t[e[i + 12]] + t[e[i + 13]] + t[e[i + 14]] + t[e[i + 15]]).toLowerCase();
|
|
7
|
-
if (!s(o))
|
|
8
|
-
throw TypeError("Stringified UUID is invalid");
|
|
9
|
-
return o;
|
|
1
|
+
const i = [];
|
|
2
|
+
for (let n = 0; n < 256; ++n)
|
|
3
|
+
i.push((n + 256).toString(16).slice(1));
|
|
4
|
+
function c(n, u = 0) {
|
|
5
|
+
return (i[n[u + 0]] + i[n[u + 1]] + i[n[u + 2]] + i[n[u + 3]] + "-" + i[n[u + 4]] + i[n[u + 5]] + "-" + i[n[u + 6]] + i[n[u + 7]] + "-" + i[n[u + 8]] + i[n[u + 9]] + "-" + i[n[u + 10]] + i[n[u + 11]] + i[n[u + 12]] + i[n[u + 13]] + i[n[u + 14]] + i[n[u + 15]]).toLowerCase();
|
|
10
6
|
}
|
|
11
7
|
export {
|
|
12
|
-
|
|
8
|
+
c as unsafeStringify
|
|
13
9
|
};
|
|
14
10
|
//# sourceMappingURL=stringify.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stringify.js","sources":["../../../../../node_modules/uuid/dist/esm-browser/stringify.js"],"sourcesContent":["import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\
|
|
1
|
+
{"version":3,"file":"stringify.js","sources":["../../../../../node_modules/uuid/dist/esm-browser/stringify.js"],"sourcesContent":["import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;"],"names":["byteToHex","i","unsafeStringify","arr","offset"],"mappings":"AAMA,MAAMA,IAAY,CAAA;AAElB,SAASC,IAAI,GAAGA,IAAI,KAAK,EAAEA;AACzB,EAAAD,EAAU,MAAMC,IAAI,KAAO,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC;AAG3C,SAASC,EAAgBC,GAAKC,IAAS,GAAG;AAG/C,UAAQJ,EAAUG,EAAIC,IAAS,CAAC,CAAC,IAAIJ,EAAUG,EAAIC,IAAS,CAAC,CAAC,IAAIJ,EAAUG,EAAIC,IAAS,CAAC,CAAC,IAAIJ,EAAUG,EAAIC,IAAS,CAAC,CAAC,IAAI,MAAMJ,EAAUG,EAAIC,IAAS,CAAC,CAAC,IAAIJ,EAAUG,EAAIC,IAAS,CAAC,CAAC,IAAI,MAAMJ,EAAUG,EAAIC,IAAS,CAAC,CAAC,IAAIJ,EAAUG,EAAIC,IAAS,CAAC,CAAC,IAAI,MAAMJ,EAAUG,EAAIC,IAAS,CAAC,CAAC,IAAIJ,EAAUG,EAAIC,IAAS,CAAC,CAAC,IAAI,MAAMJ,EAAUG,EAAIC,IAAS,EAAE,CAAC,IAAIJ,EAAUG,EAAIC,IAAS,EAAE,CAAC,IAAIJ,EAAUG,EAAIC,IAAS,EAAE,CAAC,IAAIJ,EAAUG,EAAIC,IAAS,EAAE,CAAC,IAAIJ,EAAUG,EAAIC,IAAS,EAAE,CAAC,IAAIJ,EAAUG,EAAIC,IAAS,EAAE,CAAC,GAAG;AACvf;","x_google_ignoreList":[0]}
|
|
@@ -1,17 +1,20 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
|
|
1
|
+
import e from "./native.js";
|
|
2
|
+
import i from "./rng.js";
|
|
3
|
+
import { unsafeStringify as d } from "./stringify.js";
|
|
4
|
+
function g(n, m, t) {
|
|
5
|
+
if (e.randomUUID && !m && !n)
|
|
6
|
+
return e.randomUUID();
|
|
4
7
|
n = n || {};
|
|
5
|
-
|
|
8
|
+
const r = n.random || (n.rng || i)();
|
|
6
9
|
if (r[6] = r[6] & 15 | 64, r[8] = r[8] & 63 | 128, m) {
|
|
7
|
-
|
|
8
|
-
for (
|
|
9
|
-
m[
|
|
10
|
+
t = t || 0;
|
|
11
|
+
for (let a = 0; a < 16; ++a)
|
|
12
|
+
m[t + a] = r[a];
|
|
10
13
|
return m;
|
|
11
14
|
}
|
|
12
|
-
return
|
|
15
|
+
return d(r);
|
|
13
16
|
}
|
|
14
17
|
export {
|
|
15
|
-
|
|
18
|
+
g as default
|
|
16
19
|
};
|
|
17
20
|
//# sourceMappingURL=v4.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"v4.js","sources":["../../../../../node_modules/uuid/dist/esm-browser/v4.js"],"sourcesContent":["import rng from './rng.js';\nimport
|
|
1
|
+
{"version":3,"file":"v4.js","sources":["../../../../../node_modules/uuid/dist/esm-browser/v4.js"],"sourcesContent":["import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;"],"names":["v4","options","buf","offset","native","rnds","rng","i","unsafeStringify"],"mappings":";;;AAIA,SAASA,EAAGC,GAASC,GAAKC,GAAQ;AAChC,MAAIC,EAAO,cAAc,CAACF,KAAO,CAACD;AAChC,WAAOG,EAAO;AAGhB,EAAAH,IAAUA,KAAW;AACrB,QAAMI,IAAOJ,EAAQ,WAAWA,EAAQ,OAAOK;AAK/C,MAHAD,EAAK,CAAC,IAAIA,EAAK,CAAC,IAAI,KAAO,IAC3BA,EAAK,CAAC,IAAIA,EAAK,CAAC,IAAI,KAAO,KAEvBH,GAAK;AACP,IAAAC,IAASA,KAAU;AAEnB,aAASI,IAAI,GAAGA,IAAI,IAAI,EAAEA;AACxB,MAAAL,EAAIC,IAASI,CAAC,IAAIF,EAAKE,CAAC;AAG1B,WAAOL;AAAA,EACR;AAED,SAAOM,EAAgBH,CAAI;AAC7B;","x_google_ignoreList":[0]}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"regex.js","sources":["../../../../../node_modules/uuid/dist/esm-browser/regex.js"],"sourcesContent":["export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;"],"names":["REGEX"],"mappings":"AAAA,MAAAA,IAAe;","x_google_ignoreList":[0]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sources":["../../../../../node_modules/uuid/dist/esm-browser/validate.js"],"sourcesContent":["import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;"],"names":["validate","uuid","REGEX"],"mappings":";AAEA,SAASA,EAASC,GAAM;AACtB,SAAO,OAAOA,KAAS,YAAYC,EAAM,KAAKD,CAAI;AACpD;","x_google_ignoreList":[0]}
|