@cuemath/leap 3.5.51-as11 → 3.5.51-as12
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/chapters-v2/utils/node-card-utils.js +55 -58
- package/dist/features/chapters-v2/utils/node-card-utils.js.map +1 -1
- package/dist/features/homework/homework-card-view.js +60 -60
- package/dist/features/homework/homework-card-view.js.map +1 -1
- package/dist/features/math-fit/math-fit-card/math-fit-card.js +60 -71
- package/dist/features/math-fit/math-fit-card/math-fit-card.js.map +1 -1
- package/dist/features/math-fit/math-fit-overview/math-fit-overview-helpers.js +29 -27
- package/dist/features/math-fit/math-fit-overview/math-fit-overview-helpers.js.map +1 -1
- package/dist/features/math-fit/math-fit-overview/math-fit-overview.js +49 -40
- package/dist/features/math-fit/math-fit-overview/math-fit-overview.js.map +1 -1
- package/dist/features/math-fit/math-fit-report/comps/score-section/score-section.js +20 -22
- package/dist/features/math-fit/math-fit-report/comps/score-section/score-section.js.map +1 -1
- package/dist/features/math-fit/math-fit-report/math-fit-report-helpers.js +5 -5
- package/dist/features/math-fit/math-fit-report/math-fit-report-helpers.js.map +1 -1
- package/dist/features/timeline/daily-timeline/api/use-daily-timeline-get.js.map +1 -1
- package/dist/features/timeline/daily-timeline/comps/accordion-item/accordion-item.js +40 -38
- package/dist/features/timeline/daily-timeline/comps/accordion-item/accordion-item.js.map +1 -1
- package/dist/features/timeline/daily-timeline/daily-timeline-types.js +4 -4
- package/dist/features/timeline/daily-timeline/daily-timeline-types.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/types/models/worksheet.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import
|
|
1
|
+
import { jsx as r, jsxs as p } from "react/jsx-runtime";
|
|
2
|
+
import N from "../../../assets/line-icons/icons/check2.js";
|
|
3
3
|
import h from "../../../assets/line-icons/icons/exclamation.js";
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import { LOTTIE as
|
|
7
|
-
import
|
|
4
|
+
import C from "../../../assets/line-icons/icons/lock2.js";
|
|
5
|
+
import D from "../../../assets/line-icons/icons/status.js";
|
|
6
|
+
import { LOTTIE as o } from "../../../assets/lottie/lottie.js";
|
|
7
|
+
import l from "../../ui/layout/flex-view.js";
|
|
8
8
|
import S from "../../ui/arrow-tooltip/arrow-tooltip.js";
|
|
9
9
|
import u from "../../ui/text/text.js";
|
|
10
|
-
import { InProgressIconWrapper as
|
|
10
|
+
import { InProgressIconWrapper as P } from "../comps/node-card/node-card-styled.js";
|
|
11
11
|
import R from "../comps/tag/tag.js";
|
|
12
|
-
const
|
|
13
|
-
if (!e ||
|
|
12
|
+
const L = 60 * 60 * 24, g = 60 * 60, $ = 60, O = ["NOT_STARTED"], M = (e, t, n) => {
|
|
13
|
+
if (!e || t && !n)
|
|
14
14
|
return { isOverdue: !1, daysText: "", differenceInDays: 0, hoursLeft: 0, minutesLeft: 0 };
|
|
15
|
-
const
|
|
16
|
-
return { isOverdue:
|
|
17
|
-
},
|
|
18
|
-
|
|
15
|
+
const a = Math.floor(Date.now() / 1e3), c = e - a, s = Math.floor(c / g), T = Math.floor(c / $), i = Math.round(c / L), A = i < 0, E = i > 0 ? `${Math.abs(i)}D` : "", d = s > 0 ? Math.abs(s) : 0, I = T > 0 ? Math.abs(T) : 0;
|
|
16
|
+
return { isOverdue: A, daysText: E, differenceInDays: i, hoursLeft: d, minutesLeft: I };
|
|
17
|
+
}, b = (e, t, n, a) => a ? e < 1 && t > 0 ? `${t}m` : `${e}h` : n, m = (e, t, n = !1) => /* @__PURE__ */ p(
|
|
18
|
+
P,
|
|
19
19
|
{
|
|
20
20
|
$flexDirection: "row",
|
|
21
21
|
$alignItems: "center",
|
|
@@ -23,37 +23,40 @@ const P = 60 * 60 * 24, L = 60 * 60, g = 60, O = ["NOT_STARTED"], $ = (e, o, n)
|
|
|
23
23
|
$borderRadius: 16,
|
|
24
24
|
$paddingRight: n ? 0 : 6,
|
|
25
25
|
$paddingLeft: e ? 6 : 0,
|
|
26
|
-
$showWarningBg:
|
|
26
|
+
$showWarningBg: t,
|
|
27
27
|
children: [
|
|
28
|
-
e && /* @__PURE__ */
|
|
29
|
-
n && /* @__PURE__ */
|
|
28
|
+
e && /* @__PURE__ */ r(u, { $renderAs: "ub3-bold", $color: "WHITE", children: e }),
|
|
29
|
+
n && /* @__PURE__ */ r(D, {})
|
|
30
30
|
]
|
|
31
31
|
}
|
|
32
|
-
),
|
|
32
|
+
), U = (e, t) => {
|
|
33
|
+
if (typeof e == "number")
|
|
34
|
+
return t ? `${e}` : `${e}%`;
|
|
35
|
+
}, Y = ({
|
|
33
36
|
state: e,
|
|
34
|
-
isStudent:
|
|
37
|
+
isStudent: t,
|
|
35
38
|
accuracy: n,
|
|
36
|
-
dueDateTs:
|
|
39
|
+
dueDateTs: a,
|
|
37
40
|
isMilestone: c,
|
|
38
|
-
isMathFitCard:
|
|
41
|
+
isMathFitCard: s
|
|
39
42
|
}) => {
|
|
40
|
-
const { isOverdue: T, daysText:
|
|
41
|
-
|
|
43
|
+
const { isOverdue: T, daysText: i, differenceInDays: A, hoursLeft: E, minutesLeft: d } = M(
|
|
44
|
+
a,
|
|
42
45
|
c,
|
|
43
|
-
|
|
44
|
-
), I = !!(
|
|
46
|
+
s
|
|
47
|
+
), I = !!(s && E <= 24 && E >= 0), f = b(E, d, i, I), _ = U(n, s);
|
|
45
48
|
if (!c && T && O.includes(e))
|
|
46
49
|
return {
|
|
47
|
-
icon: /* @__PURE__ */
|
|
50
|
+
icon: /* @__PURE__ */ r(
|
|
48
51
|
S,
|
|
49
52
|
{
|
|
50
53
|
renderAs: "primary",
|
|
51
54
|
position: "bottom",
|
|
52
55
|
tooltipItem: "Complete now",
|
|
53
56
|
zIndex: 10,
|
|
54
|
-
hidden: !
|
|
57
|
+
hidden: !t,
|
|
55
58
|
parentWidth: "fit-content",
|
|
56
|
-
children: /* @__PURE__ */
|
|
59
|
+
children: /* @__PURE__ */ r(l, { $background: "RED", $borderRadius: 16, $gapX: 0.24, $gutterX: 0.5, children: /* @__PURE__ */ r(u, { $renderAs: "ac4-black", $color: "WHITE", children: "OVERDUE" }) })
|
|
57
60
|
}
|
|
58
61
|
),
|
|
59
62
|
top: -10,
|
|
@@ -62,15 +65,15 @@ const P = 60 * 60 * 24, L = 60 * 60, g = 60, O = ["NOT_STARTED"], $ = (e, o, n)
|
|
|
62
65
|
switch (e) {
|
|
63
66
|
case "NOT_STARTED":
|
|
64
67
|
return {
|
|
65
|
-
icon: /* @__PURE__ */
|
|
68
|
+
icon: /* @__PURE__ */ r(
|
|
66
69
|
S,
|
|
67
70
|
{
|
|
68
71
|
renderAs: "primary",
|
|
69
72
|
position: "bottom",
|
|
70
|
-
tooltipItem:
|
|
73
|
+
tooltipItem: A > 1 ? `${A} days left` : "Complete it today",
|
|
71
74
|
zIndex: 10,
|
|
72
|
-
hidden: !
|
|
73
|
-
children: m(
|
|
75
|
+
hidden: !t,
|
|
76
|
+
children: m(f, I)
|
|
74
77
|
}
|
|
75
78
|
),
|
|
76
79
|
top: 0,
|
|
@@ -78,36 +81,30 @@ const P = 60 * 60 * 24, L = 60 * 60, g = 60, O = ["NOT_STARTED"], $ = (e, o, n)
|
|
|
78
81
|
};
|
|
79
82
|
case "LOCKED":
|
|
80
83
|
return {
|
|
81
|
-
icon: /* @__PURE__ */
|
|
84
|
+
icon: /* @__PURE__ */ r(C, { width: 32, height: 32 }),
|
|
82
85
|
top: -16,
|
|
83
86
|
right: -16
|
|
84
87
|
};
|
|
85
88
|
case "IN_PROGRESS":
|
|
86
89
|
return {
|
|
87
|
-
icon: m(
|
|
90
|
+
icon: m(f, I, !0)
|
|
88
91
|
};
|
|
89
92
|
case "COMPLETED":
|
|
90
93
|
return {
|
|
91
|
-
icon: /* @__PURE__ */
|
|
92
|
-
R,
|
|
93
|
-
{
|
|
94
|
-
Icon: p,
|
|
95
|
-
label: typeof n == "number" ? `${n}%` : void 0
|
|
96
|
-
}
|
|
97
|
-
),
|
|
94
|
+
icon: /* @__PURE__ */ r(R, { Icon: N, label: _ }),
|
|
98
95
|
top: -10,
|
|
99
96
|
right: -10
|
|
100
97
|
};
|
|
101
98
|
case "WAIT_FOR_REVIEW":
|
|
102
99
|
return {
|
|
103
|
-
icon: /* @__PURE__ */
|
|
100
|
+
icon: /* @__PURE__ */ r(
|
|
104
101
|
S,
|
|
105
102
|
{
|
|
106
103
|
renderAs: "primary",
|
|
107
104
|
position: "bottom",
|
|
108
|
-
tooltipItem:
|
|
105
|
+
tooltipItem: t ? "Waiting for teacher to review" : "Needs your review",
|
|
109
106
|
zIndex: 10,
|
|
110
|
-
children: /* @__PURE__ */
|
|
107
|
+
children: /* @__PURE__ */ r(R, { Icon: h })
|
|
111
108
|
}
|
|
112
109
|
),
|
|
113
110
|
top: -10,
|
|
@@ -115,7 +112,7 @@ const P = 60 * 60 * 24, L = 60 * 60, g = 60, O = ["NOT_STARTED"], $ = (e, o, n)
|
|
|
115
112
|
};
|
|
116
113
|
case "EXPIRED":
|
|
117
114
|
return {
|
|
118
|
-
icon: /* @__PURE__ */
|
|
115
|
+
icon: /* @__PURE__ */ r(l, { $background: "WHITE_5", $borderRadius: 16, $gapX: 0.24, $gutterX: 0.5, children: /* @__PURE__ */ r(u, { $renderAs: "ub3", $color: "BLACK_1", children: "EXPIRED" }) }),
|
|
119
116
|
top: -10,
|
|
120
117
|
right: -10
|
|
121
118
|
};
|
|
@@ -124,19 +121,19 @@ const P = 60 * 60 * 24, L = 60 * 60, g = 60, O = ["NOT_STARTED"], $ = (e, o, n)
|
|
|
124
121
|
icon: void 0
|
|
125
122
|
};
|
|
126
123
|
}
|
|
127
|
-
},
|
|
124
|
+
}, k = (e) => {
|
|
128
125
|
switch (e) {
|
|
129
126
|
case "LEVEL2":
|
|
130
127
|
case "LEVEL3":
|
|
131
128
|
case "HIDDEN_BASIC":
|
|
132
129
|
return {
|
|
133
|
-
lottie:
|
|
130
|
+
lottie: o.COMPETITIVE_ARENA
|
|
134
131
|
};
|
|
135
132
|
case "LEARNING":
|
|
136
133
|
case "SAT_MATH_LEARNING":
|
|
137
134
|
case "SAT_ENGLISH_LEARNING":
|
|
138
135
|
return {
|
|
139
|
-
lottie:
|
|
136
|
+
lottie: o.LEARN
|
|
140
137
|
};
|
|
141
138
|
case "RECAP":
|
|
142
139
|
case "REMEDIAL":
|
|
@@ -145,7 +142,7 @@ const P = 60 * 60 * 24, L = 60 * 60, g = 60, O = ["NOT_STARTED"], $ = (e, o, n)
|
|
|
145
142
|
case "SAT_MATH_RECAP":
|
|
146
143
|
case "SAT_ENGLISH_RECAP":
|
|
147
144
|
return {
|
|
148
|
-
lottie:
|
|
145
|
+
lottie: o.RECAP
|
|
149
146
|
};
|
|
150
147
|
case "DYNAMIC":
|
|
151
148
|
case "ASSESSMENT":
|
|
@@ -153,7 +150,7 @@ const P = 60 * 60 * 24, L = 60 * 60, g = 60, O = ["NOT_STARTED"], $ = (e, o, n)
|
|
|
153
150
|
case "DIAGNOSTIC":
|
|
154
151
|
case "TURING_ASSESSMENT":
|
|
155
152
|
return {
|
|
156
|
-
lottie:
|
|
153
|
+
lottie: o.TEST
|
|
157
154
|
};
|
|
158
155
|
case "PRACTICE":
|
|
159
156
|
case "EXTRA_PRACTICE":
|
|
@@ -163,41 +160,41 @@ const P = 60 * 60 * 24, L = 60 * 60, g = 60, O = ["NOT_STARTED"], $ = (e, o, n)
|
|
|
163
160
|
case "SAT_MATH_ASSESSMENT":
|
|
164
161
|
case "SAT_ENGLISH_ASSESSMENT":
|
|
165
162
|
return {
|
|
166
|
-
lottie:
|
|
163
|
+
lottie: o.PRACTICE
|
|
167
164
|
};
|
|
168
165
|
case "PUZZLE":
|
|
169
166
|
case "PUZZLE_EASY":
|
|
170
167
|
case "PUZZLE_MEDIUM":
|
|
171
168
|
case "PUZZLE_HARD":
|
|
172
169
|
return {
|
|
173
|
-
lottie:
|
|
170
|
+
lottie: o.PUZZLE
|
|
174
171
|
};
|
|
175
172
|
case "TURING_SUBJECTIVE":
|
|
176
173
|
return {
|
|
177
|
-
lottie:
|
|
174
|
+
lottie: o.SUBJECTIVE
|
|
178
175
|
};
|
|
179
176
|
case "TURING_BASIC":
|
|
180
177
|
case "PYTHON_BASIC":
|
|
181
178
|
case "PYTHON_VISUAL":
|
|
182
179
|
return {
|
|
183
|
-
lottie:
|
|
180
|
+
lottie: o.ACTIVITY
|
|
184
181
|
};
|
|
185
182
|
case "VIDEO":
|
|
186
183
|
return {
|
|
187
|
-
lottie:
|
|
184
|
+
lottie: o.VIDEO
|
|
188
185
|
};
|
|
189
186
|
case "PDF":
|
|
190
187
|
return {
|
|
191
|
-
lottie:
|
|
188
|
+
lottie: o.DOWNLOAD
|
|
192
189
|
};
|
|
193
190
|
default:
|
|
194
191
|
return {
|
|
195
|
-
lottie:
|
|
192
|
+
lottie: o.PROJECT
|
|
196
193
|
};
|
|
197
194
|
}
|
|
198
195
|
};
|
|
199
196
|
export {
|
|
200
|
-
|
|
201
|
-
|
|
197
|
+
k as getNodeCardBasedIcon,
|
|
198
|
+
Y as getNodeStateBasedTagInfo
|
|
202
199
|
};
|
|
203
200
|
//# sourceMappingURL=node-card-utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-card-utils.js","sources":["../../../../src/features/chapters-v2/utils/node-card-utils.tsx"],"sourcesContent":["import Check2Icon from '../../../assets/line-icons/icons/check2';\nimport ExclamationIcon from '../../../assets/line-icons/icons/exclamation';\nimport Lock2Icon from '../../../assets/line-icons/icons/lock2';\nimport StatusIcon from '../../../assets/line-icons/icons/status';\nimport { LOTTIE } from '../../../assets/lottie/lottie';\nimport FlexView from '../..//ui/layout/flex-view';\nimport ArrowTooltip from '../../ui/arrow-tooltip/arrow-tooltip';\nimport Text from '../../ui/text/text';\nimport { InProgressIconWrapper } from '../comps/node-card/node-card-styled';\nimport type { INodeCardTagsProps, INodeDataProps } from '../comps/node-card/node-card-types';\nimport Tag from '../comps/tag/tag';\n\ninterface IDueDateInfo {\n isOverdue: boolean;\n daysText: string;\n differenceInDays: number;\n hoursLeft: number;\n minutesLeft: number;\n}\n\nconst SECONDS_PER_DAY = 60 * 60 * 24;\nconst SECONDS_PER_HOUR = 60 * 60;\nconst SECONDS_PER_MINUTE = 60;\nconst OVERDUE_TAG_STATES: INodeDataProps['state'][] = ['NOT_STARTED'];\n\nconst calculateDueDateInfo = (\n dueDateTs?: number | null,\n isMilestone?: boolean,\n isMathFitCard?: boolean,\n): IDueDateInfo => {\n if (!dueDateTs || (isMilestone && !isMathFitCard)) {\n return { isOverdue: false, daysText: '', differenceInDays: 0, hoursLeft: 0, minutesLeft: 0 };\n }\n\n const currentTimestamp = Math.floor(Date.now() / 1000);\n const differenceInSeconds = dueDateTs - currentTimestamp;\n const differenceInHours = Math.floor(differenceInSeconds / SECONDS_PER_HOUR);\n const differenceInMinutes = Math.floor(differenceInSeconds / SECONDS_PER_MINUTE);\n const differenceInDays = Math.round(differenceInSeconds / SECONDS_PER_DAY);\n\n const isOverdue = differenceInDays < 0;\n\n const daysText = differenceInDays > 0 ? `${Math.abs(differenceInDays)}D` : '';\n const hoursLeft = differenceInHours > 0 ? Math.abs(differenceInHours) : 0;\n const minutesLeft = differenceInMinutes > 0 ? Math.abs(differenceInMinutes) : 0;\n\n return { isOverdue, daysText, differenceInDays, hoursLeft, minutesLeft };\n};\n\nconst getTimeDisplayText = (\n hoursLeft: number,\n minutesLeft: number,\n daysText: string,\n showWarning: boolean,\n): string => {\n if (showWarning) {\n return hoursLeft < 1 && minutesLeft > 0 ? `${minutesLeft}m` : `${hoursLeft}h`;\n }\n\n return daysText;\n};\n\nconst renderTimeDisplayIcon = (\n timeDisplayText: string,\n showWarning: boolean,\n includeStatusIcon = false,\n) => {\n return (\n <InProgressIconWrapper\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $borderRadius={16}\n $paddingRight={includeStatusIcon ? 0 : 6}\n $paddingLeft={timeDisplayText ? 6 : 0}\n $showWarningBg={showWarning}\n >\n {timeDisplayText && (\n <Text $renderAs=\"ub3-bold\" $color=\"WHITE\">\n {timeDisplayText}\n </Text>\n )}\n {includeStatusIcon && <StatusIcon />}\n </InProgressIconWrapper>\n );\n};\n\nconst getNodeStateBasedTagInfo = ({\n state: nodeState,\n isStudent,\n accuracy,\n dueDateTs,\n isMilestone,\n isMathFitCard,\n}: INodeCardTagsProps) => {\n const { isOverdue, daysText, differenceInDays, hoursLeft, minutesLeft } = calculateDueDateInfo(\n dueDateTs,\n isMilestone,\n isMathFitCard,\n );\n\n const showWarning = !!(isMathFitCard && hoursLeft <= 24 && hoursLeft >= 0);\n\n const timeDisplayText = getTimeDisplayText(hoursLeft, minutesLeft, daysText, showWarning);\n\n if (!isMilestone && isOverdue && OVERDUE_TAG_STATES.includes(nodeState)) {\n return {\n icon: (\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem=\"Complete now\"\n zIndex={10}\n hidden={!isStudent}\n parentWidth=\"fit-content\"\n >\n <FlexView $background=\"RED\" $borderRadius={16} $gapX={0.24} $gutterX={0.5}>\n <Text $renderAs=\"ac4-black\" $color=\"WHITE\">\n OVERDUE\n </Text>\n </FlexView>\n </ArrowTooltip>\n ),\n top: -10,\n right: -10,\n };\n }\n\n switch (nodeState) {\n case 'NOT_STARTED':\n return {\n icon: (\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem={\n differenceInDays > 1 ? `${differenceInDays} days left` : 'Complete it today'\n }\n zIndex={10}\n hidden={!isStudent}\n >\n {renderTimeDisplayIcon(timeDisplayText, showWarning)}\n </ArrowTooltip>\n ),\n top: 0,\n right: 0,\n };\n case 'LOCKED':\n return {\n icon: <Lock2Icon width={32} height={32} />,\n top: -16,\n right: -16,\n };\n case 'IN_PROGRESS':\n return {\n icon: renderTimeDisplayIcon(timeDisplayText, showWarning, true),\n };\n case 'COMPLETED':\n return {\n icon: (\n <Tag\n Icon={Check2Icon}\n label={typeof accuracy === 'number' ? `${accuracy}%` : undefined}\n />\n ),\n top: -10,\n right: -10,\n };\n case 'WAIT_FOR_REVIEW':\n return {\n icon: (\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem={isStudent ? 'Waiting for teacher to review' : 'Needs your review'}\n zIndex={10}\n >\n <Tag Icon={ExclamationIcon} />\n </ArrowTooltip>\n ),\n top: -10,\n right: -10,\n };\n\n case 'EXPIRED':\n return {\n icon: (\n <FlexView $background=\"WHITE_5\" $borderRadius={16} $gapX={0.24} $gutterX={0.5}>\n <Text $renderAs=\"ub3\" $color=\"BLACK_1\">\n EXPIRED\n </Text>\n </FlexView>\n ),\n top: -10,\n right: -10,\n };\n\n default:\n return {\n icon: undefined,\n };\n }\n};\n\nconst getNodeCardBasedIcon = (nodeType: INodeDataProps['node_type']) => {\n switch (nodeType) {\n case 'LEVEL2':\n case 'LEVEL3':\n case 'HIDDEN_BASIC':\n return {\n lottie: LOTTIE.COMPETITIVE_ARENA,\n };\n case 'LEARNING':\n case 'SAT_MATH_LEARNING':\n case 'SAT_ENGLISH_LEARNING':\n return {\n lottie: LOTTIE.LEARN,\n };\n case 'RECAP':\n case 'REMEDIAL':\n case 'REVISION':\n case 'PPT_BASIC':\n case 'SAT_MATH_RECAP':\n case 'SAT_ENGLISH_RECAP':\n return {\n lottie: LOTTIE.RECAP,\n };\n case 'DYNAMIC':\n case 'ASSESSMENT':\n case 'CHAPTER_ASSESSMENT':\n case 'DIAGNOSTIC':\n case 'TURING_ASSESSMENT':\n return {\n lottie: LOTTIE.TEST,\n };\n case 'PRACTICE':\n case 'EXTRA_PRACTICE':\n case 'TARGET_PRACTICE':\n case 'MASTERY':\n case 'TURING_PRACTICE':\n case 'SAT_MATH_ASSESSMENT':\n case 'SAT_ENGLISH_ASSESSMENT':\n return {\n lottie: LOTTIE.PRACTICE,\n };\n case 'PUZZLE':\n case 'PUZZLE_EASY':\n case 'PUZZLE_MEDIUM':\n case 'PUZZLE_HARD':\n return {\n lottie: LOTTIE.PUZZLE,\n };\n case 'TURING_SUBJECTIVE':\n return {\n lottie: LOTTIE.SUBJECTIVE,\n };\n case 'TURING_BASIC':\n case 'PYTHON_BASIC':\n case 'PYTHON_VISUAL':\n return {\n lottie: LOTTIE.ACTIVITY,\n };\n case 'VIDEO':\n return {\n lottie: LOTTIE.VIDEO,\n };\n case 'PDF':\n return {\n lottie: LOTTIE.DOWNLOAD,\n };\n default:\n return {\n lottie: LOTTIE.PROJECT,\n };\n }\n};\n\nexport { getNodeStateBasedTagInfo, getNodeCardBasedIcon };\n"],"names":["SECONDS_PER_DAY","SECONDS_PER_HOUR","SECONDS_PER_MINUTE","OVERDUE_TAG_STATES","calculateDueDateInfo","dueDateTs","isMilestone","isMathFitCard","currentTimestamp","differenceInSeconds","differenceInHours","differenceInMinutes","differenceInDays","isOverdue","daysText","hoursLeft","minutesLeft","getTimeDisplayText","showWarning","renderTimeDisplayIcon","timeDisplayText","includeStatusIcon","jsxs","InProgressIconWrapper","Text","StatusIcon","getNodeStateBasedTagInfo","nodeState","isStudent","accuracy","jsx","ArrowTooltip","FlexView","Lock2Icon","Tag","Check2Icon","ExclamationIcon","getNodeCardBasedIcon","nodeType","LOTTIE"],"mappings":";;;;;;;;;;;AAoBA,MAAMA,IAAkB,KAAK,KAAK,IAC5BC,IAAmB,KAAK,IACxBC,IAAqB,IACrBC,IAAgD,CAAC,aAAa,GAE9DC,IAAuB,CAC3BC,GACAC,GACAC,MACiB;AACjB,MAAI,CAACF,KAAcC,KAAe,CAACC;AAC1B,WAAA,EAAE,WAAW,IAAO,UAAU,IAAI,kBAAkB,GAAG,WAAW,GAAG,aAAa,EAAE;AAG7F,QAAMC,IAAmB,KAAK,MAAM,KAAK,IAAA,IAAQ,GAAI,GAC/CC,IAAsBJ,IAAYG,GAClCE,IAAoB,KAAK,MAAMD,IAAsBR,CAAgB,GACrEU,IAAsB,KAAK,MAAMF,IAAsBP,CAAkB,GACzEU,IAAmB,KAAK,MAAMH,IAAsBT,CAAe,GAEnEa,IAAYD,IAAmB,GAE/BE,IAAWF,IAAmB,IAAI,GAAG,KAAK,IAAIA,CAAgB,CAAC,MAAM,IACrEG,IAAYL,IAAoB,IAAI,KAAK,IAAIA,CAAiB,IAAI,GAClEM,IAAcL,IAAsB,IAAI,KAAK,IAAIA,CAAmB,IAAI;AAE9E,SAAO,EAAE,WAAAE,GAAW,UAAAC,GAAU,kBAAAF,GAAkB,WAAAG,GAAW,aAAAC,EAAY;AACzE,GAEMC,IAAqB,CACzBF,GACAC,GACAF,GACAI,MAEIA,IACKH,IAAY,KAAKC,IAAc,IAAI,GAAGA,CAAW,MAAM,GAAGD,CAAS,MAGrED,GAGHK,IAAwB,CAC5BC,GACAF,GACAG,IAAoB,OAGlB,gBAAAC;AAAA,EAACC;AAAA,EAAA;AAAA,IACC,gBAAe;AAAA,IACf,aAAY;AAAA,IACZ,iBAAgB;AAAA,IAChB,eAAe;AAAA,IACf,eAAeF,IAAoB,IAAI;AAAA,IACvC,cAAcD,IAAkB,IAAI;AAAA,IACpC,gBAAgBF;AAAA,IAEf,UAAA;AAAA,MAAAE,uBACEI,GAAK,EAAA,WAAU,YAAW,QAAO,SAC/B,UACHJ,GAAA;AAAA,MAEDC,uBAAsBI,GAAW,EAAA;AAAA,IAAA;AAAA,EAAA;AAAA,GAKlCC,IAA2B,CAAC;AAAA,EAChC,OAAOC;AAAA,EACP,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAxB;AAAA,EACA,aAAAC;AAAA,EACA,eAAAC;AACF,MAA0B;AACxB,QAAM,EAAE,WAAAM,GAAW,UAAAC,GAAU,kBAAAF,GAAkB,WAAAG,GAAW,aAAAC,MAAgBZ;AAAA,IACxEC;AAAA,IACAC;AAAA,IACAC;AAAA,EAAA,GAGIW,IAAc,CAAC,EAAEX,KAAiBQ,KAAa,MAAMA,KAAa,IAElEK,IAAkBH,EAAmBF,GAAWC,GAAaF,GAAUI,CAAW;AAExF,MAAI,CAACZ,KAAeO,KAAaV,EAAmB,SAASwB,CAAS;AAC7D,WAAA;AAAA,MACL,MACE,gBAAAG;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,aAAY;AAAA,UACZ,QAAQ;AAAA,UACR,QAAQ,CAACH;AAAA,UACT,aAAY;AAAA,UAEZ,4BAACI,GAAS,EAAA,aAAY,OAAM,eAAe,IAAI,OAAO,MAAM,UAAU,KACpE,4BAACR,GAAK,EAAA,WAAU,aAAY,QAAO,SAAQ,oBAE3C,CAAA,GACF;AAAA,QAAA;AAAA,MACF;AAAA,MAEF,KAAK;AAAA,MACL,OAAO;AAAA,IAAA;AAIX,UAAQG,GAAW;AAAA,IACjB,KAAK;AACI,aAAA;AAAA,QACL,MACE,gBAAAG;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,UAAS;AAAA,YACT,UAAS;AAAA,YACT,aACEnB,IAAmB,IAAI,GAAGA,CAAgB,eAAe;AAAA,YAE3D,QAAQ;AAAA,YACR,QAAQ,CAACgB;AAAA,YAER,UAAAT,EAAsBC,GAAiBF,CAAW;AAAA,UAAA;AAAA,QACrD;AAAA,QAEF,KAAK;AAAA,QACL,OAAO;AAAA,MAAA;AAAA,IAEX,KAAK;AACI,aAAA;AAAA,QACL,MAAO,gBAAAY,EAAAG,GAAA,EAAU,OAAO,IAAI,QAAQ,IAAI;AAAA,QACxC,KAAK;AAAA,QACL,OAAO;AAAA,MAAA;AAAA,IAEX,KAAK;AACI,aAAA;AAAA,QACL,MAAMd,EAAsBC,GAAiBF,GAAa,EAAI;AAAA,MAAA;AAAA,IAElE,KAAK;AACI,aAAA;AAAA,QACL,MACE,gBAAAY;AAAA,UAACI;AAAA,UAAA;AAAA,YACC,MAAMC;AAAA,YACN,OAAO,OAAON,KAAa,WAAW,GAAGA,CAAQ,MAAM;AAAA,UAAA;AAAA,QACzD;AAAA,QAEF,KAAK;AAAA,QACL,OAAO;AAAA,MAAA;AAAA,IAEX,KAAK;AACI,aAAA;AAAA,QACL,MACE,gBAAAC;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,UAAS;AAAA,YACT,UAAS;AAAA,YACT,aAAaH,IAAY,kCAAkC;AAAA,YAC3D,QAAQ;AAAA,YAER,UAAA,gBAAAE,EAACI,GAAI,EAAA,MAAME,EAAiB,CAAA;AAAA,UAAA;AAAA,QAC9B;AAAA,QAEF,KAAK;AAAA,QACL,OAAO;AAAA,MAAA;AAAA,IAGX,KAAK;AACI,aAAA;AAAA,QACL,MACG,gBAAAN,EAAAE,GAAA,EAAS,aAAY,WAAU,eAAe,IAAI,OAAO,MAAM,UAAU,KACxE,4BAACR,GAAK,EAAA,WAAU,OAAM,QAAO,WAAU,oBAEvC,CAAA,GACF;AAAA,QAEF,KAAK;AAAA,QACL,OAAO;AAAA,MAAA;AAAA,IAGX;AACS,aAAA;AAAA,QACL,MAAM;AAAA,MAAA;AAAA,EAEZ;AACF,GAEMa,IAAuB,CAACC,MAA0C;AACtE,UAAQA,GAAU;AAAA,IAChB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACI,aAAA;AAAA,QACL,QAAQC,EAAO;AAAA,MAAA;AAAA,IAEnB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACI,aAAA;AAAA,QACL,QAAQA,EAAO;AAAA,MAAA;AAAA,IAEnB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACI,aAAA;AAAA,QACL,QAAQA,EAAO;AAAA,MAAA;AAAA,IAEnB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACI,aAAA;AAAA,QACL,QAAQA,EAAO;AAAA,MAAA;AAAA,IAEnB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACI,aAAA;AAAA,QACL,QAAQA,EAAO;AAAA,MAAA;AAAA,IAEnB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACI,aAAA;AAAA,QACL,QAAQA,EAAO;AAAA,MAAA;AAAA,IAEnB,KAAK;AACI,aAAA;AAAA,QACL,QAAQA,EAAO;AAAA,MAAA;AAAA,IAEnB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACI,aAAA;AAAA,QACL,QAAQA,EAAO;AAAA,MAAA;AAAA,IAEnB,KAAK;AACI,aAAA;AAAA,QACL,QAAQA,EAAO;AAAA,MAAA;AAAA,IAEnB,KAAK;AACI,aAAA;AAAA,QACL,QAAQA,EAAO;AAAA,MAAA;AAAA,IAEnB;AACS,aAAA;AAAA,QACL,QAAQA,EAAO;AAAA,MAAA;AAAA,EAErB;AACF;"}
|
|
1
|
+
{"version":3,"file":"node-card-utils.js","sources":["../../../../src/features/chapters-v2/utils/node-card-utils.tsx"],"sourcesContent":["import Check2Icon from '../../../assets/line-icons/icons/check2';\nimport ExclamationIcon from '../../../assets/line-icons/icons/exclamation';\nimport Lock2Icon from '../../../assets/line-icons/icons/lock2';\nimport StatusIcon from '../../../assets/line-icons/icons/status';\nimport { LOTTIE } from '../../../assets/lottie/lottie';\nimport FlexView from '../..//ui/layout/flex-view';\nimport ArrowTooltip from '../../ui/arrow-tooltip/arrow-tooltip';\nimport Text from '../../ui/text/text';\nimport { InProgressIconWrapper } from '../comps/node-card/node-card-styled';\nimport type { INodeCardTagsProps, INodeDataProps } from '../comps/node-card/node-card-types';\nimport Tag from '../comps/tag/tag';\n\ninterface IDueDateInfo {\n isOverdue: boolean;\n daysText: string;\n differenceInDays: number;\n hoursLeft: number;\n minutesLeft: number;\n}\n\nconst SECONDS_PER_DAY = 60 * 60 * 24;\nconst SECONDS_PER_HOUR = 60 * 60;\nconst SECONDS_PER_MINUTE = 60;\nconst OVERDUE_TAG_STATES: INodeDataProps['state'][] = ['NOT_STARTED'];\n\nconst calculateDueDateInfo = (\n dueDateTs?: number | null,\n isMilestone?: boolean,\n isMathFitCard?: boolean,\n): IDueDateInfo => {\n if (!dueDateTs || (isMilestone && !isMathFitCard)) {\n return { isOverdue: false, daysText: '', differenceInDays: 0, hoursLeft: 0, minutesLeft: 0 };\n }\n\n const currentTimestamp = Math.floor(Date.now() / 1000);\n const differenceInSeconds = dueDateTs - currentTimestamp;\n const differenceInHours = Math.floor(differenceInSeconds / SECONDS_PER_HOUR);\n const differenceInMinutes = Math.floor(differenceInSeconds / SECONDS_PER_MINUTE);\n const differenceInDays = Math.round(differenceInSeconds / SECONDS_PER_DAY);\n\n const isOverdue = differenceInDays < 0;\n\n const daysText = differenceInDays > 0 ? `${Math.abs(differenceInDays)}D` : '';\n const hoursLeft = differenceInHours > 0 ? Math.abs(differenceInHours) : 0;\n const minutesLeft = differenceInMinutes > 0 ? Math.abs(differenceInMinutes) : 0;\n\n return { isOverdue, daysText, differenceInDays, hoursLeft, minutesLeft };\n};\n\nconst getTimeDisplayText = (\n hoursLeft: number,\n minutesLeft: number,\n daysText: string,\n showWarning: boolean,\n): string => {\n if (showWarning) {\n return hoursLeft < 1 && minutesLeft > 0 ? `${minutesLeft}m` : `${hoursLeft}h`;\n }\n\n return daysText;\n};\n\nconst renderTimeDisplayIcon = (\n timeDisplayText: string,\n showWarning: boolean,\n includeStatusIcon = false,\n) => {\n return (\n <InProgressIconWrapper\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $borderRadius={16}\n $paddingRight={includeStatusIcon ? 0 : 6}\n $paddingLeft={timeDisplayText ? 6 : 0}\n $showWarningBg={showWarning}\n >\n {timeDisplayText && (\n <Text $renderAs=\"ub3-bold\" $color=\"WHITE\">\n {timeDisplayText}\n </Text>\n )}\n {includeStatusIcon && <StatusIcon />}\n </InProgressIconWrapper>\n );\n};\n\nconst getAccuracyText = (accuracy?: number | null, isMathFitCard?: boolean): string | undefined => {\n if (typeof accuracy !== 'number') return undefined;\n\n return isMathFitCard ? `${accuracy}` : `${accuracy}%`;\n};\n\nconst getNodeStateBasedTagInfo = ({\n state: nodeState,\n isStudent,\n accuracy,\n dueDateTs,\n isMilestone,\n isMathFitCard,\n}: INodeCardTagsProps) => {\n const { isOverdue, daysText, differenceInDays, hoursLeft, minutesLeft } = calculateDueDateInfo(\n dueDateTs,\n isMilestone,\n isMathFitCard,\n );\n const showWarning = !!(isMathFitCard && hoursLeft <= 24 && hoursLeft >= 0);\n const timeDisplayText = getTimeDisplayText(hoursLeft, minutesLeft, daysText, showWarning);\n const accuracyText = getAccuracyText(accuracy, isMathFitCard);\n\n if (!isMilestone && isOverdue && OVERDUE_TAG_STATES.includes(nodeState)) {\n return {\n icon: (\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem=\"Complete now\"\n zIndex={10}\n hidden={!isStudent}\n parentWidth=\"fit-content\"\n >\n <FlexView $background=\"RED\" $borderRadius={16} $gapX={0.24} $gutterX={0.5}>\n <Text $renderAs=\"ac4-black\" $color=\"WHITE\">\n OVERDUE\n </Text>\n </FlexView>\n </ArrowTooltip>\n ),\n top: -10,\n right: -10,\n };\n }\n\n switch (nodeState) {\n case 'NOT_STARTED':\n return {\n icon: (\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem={\n differenceInDays > 1 ? `${differenceInDays} days left` : 'Complete it today'\n }\n zIndex={10}\n hidden={!isStudent}\n >\n {renderTimeDisplayIcon(timeDisplayText, showWarning)}\n </ArrowTooltip>\n ),\n top: 0,\n right: 0,\n };\n case 'LOCKED':\n return {\n icon: <Lock2Icon width={32} height={32} />,\n top: -16,\n right: -16,\n };\n case 'IN_PROGRESS':\n return {\n icon: renderTimeDisplayIcon(timeDisplayText, showWarning, true),\n };\n case 'COMPLETED':\n return {\n icon: <Tag Icon={Check2Icon} label={accuracyText} />,\n top: -10,\n right: -10,\n };\n case 'WAIT_FOR_REVIEW':\n return {\n icon: (\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem={isStudent ? 'Waiting for teacher to review' : 'Needs your review'}\n zIndex={10}\n >\n <Tag Icon={ExclamationIcon} />\n </ArrowTooltip>\n ),\n top: -10,\n right: -10,\n };\n\n case 'EXPIRED':\n return {\n icon: (\n <FlexView $background=\"WHITE_5\" $borderRadius={16} $gapX={0.24} $gutterX={0.5}>\n <Text $renderAs=\"ub3\" $color=\"BLACK_1\">\n EXPIRED\n </Text>\n </FlexView>\n ),\n top: -10,\n right: -10,\n };\n\n default:\n return {\n icon: undefined,\n };\n }\n};\n\nconst getNodeCardBasedIcon = (nodeType: INodeDataProps['node_type']) => {\n switch (nodeType) {\n case 'LEVEL2':\n case 'LEVEL3':\n case 'HIDDEN_BASIC':\n return {\n lottie: LOTTIE.COMPETITIVE_ARENA,\n };\n case 'LEARNING':\n case 'SAT_MATH_LEARNING':\n case 'SAT_ENGLISH_LEARNING':\n return {\n lottie: LOTTIE.LEARN,\n };\n case 'RECAP':\n case 'REMEDIAL':\n case 'REVISION':\n case 'PPT_BASIC':\n case 'SAT_MATH_RECAP':\n case 'SAT_ENGLISH_RECAP':\n return {\n lottie: LOTTIE.RECAP,\n };\n case 'DYNAMIC':\n case 'ASSESSMENT':\n case 'CHAPTER_ASSESSMENT':\n case 'DIAGNOSTIC':\n case 'TURING_ASSESSMENT':\n return {\n lottie: LOTTIE.TEST,\n };\n case 'PRACTICE':\n case 'EXTRA_PRACTICE':\n case 'TARGET_PRACTICE':\n case 'MASTERY':\n case 'TURING_PRACTICE':\n case 'SAT_MATH_ASSESSMENT':\n case 'SAT_ENGLISH_ASSESSMENT':\n return {\n lottie: LOTTIE.PRACTICE,\n };\n case 'PUZZLE':\n case 'PUZZLE_EASY':\n case 'PUZZLE_MEDIUM':\n case 'PUZZLE_HARD':\n return {\n lottie: LOTTIE.PUZZLE,\n };\n case 'TURING_SUBJECTIVE':\n return {\n lottie: LOTTIE.SUBJECTIVE,\n };\n case 'TURING_BASIC':\n case 'PYTHON_BASIC':\n case 'PYTHON_VISUAL':\n return {\n lottie: LOTTIE.ACTIVITY,\n };\n case 'VIDEO':\n return {\n lottie: LOTTIE.VIDEO,\n };\n case 'PDF':\n return {\n lottie: LOTTIE.DOWNLOAD,\n };\n default:\n return {\n lottie: LOTTIE.PROJECT,\n };\n }\n};\n\nexport { getNodeStateBasedTagInfo, getNodeCardBasedIcon };\n"],"names":["SECONDS_PER_DAY","SECONDS_PER_HOUR","SECONDS_PER_MINUTE","OVERDUE_TAG_STATES","calculateDueDateInfo","dueDateTs","isMilestone","isMathFitCard","currentTimestamp","differenceInSeconds","differenceInHours","differenceInMinutes","differenceInDays","isOverdue","daysText","hoursLeft","minutesLeft","getTimeDisplayText","showWarning","renderTimeDisplayIcon","timeDisplayText","includeStatusIcon","jsxs","InProgressIconWrapper","Text","StatusIcon","getAccuracyText","accuracy","getNodeStateBasedTagInfo","nodeState","isStudent","accuracyText","jsx","ArrowTooltip","FlexView","Lock2Icon","Tag","Check2Icon","ExclamationIcon","getNodeCardBasedIcon","nodeType","LOTTIE"],"mappings":"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"}
|
|
@@ -1,51 +1,51 @@
|
|
|
1
1
|
import { jsx as e, jsxs as s } from "react/jsx-runtime";
|
|
2
|
-
import { memo as M,
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import { getNodeTypeBasedBgImage as
|
|
6
|
-
import { getNodeCardBasedIcon as
|
|
7
|
-
import
|
|
8
|
-
import
|
|
2
|
+
import { memo as M, useMemo as U, useState as F, useRef as b, useCallback as w, useLayoutEffect as G } from "react";
|
|
3
|
+
import j from "../../assets/line-icons/icons/closed-eye.js";
|
|
4
|
+
import A from "../chapters-v2/comps/node-card/node-card-tags.js";
|
|
5
|
+
import { getNodeTypeBasedBgImage as K } from "../chapters-v2/utils/index.js";
|
|
6
|
+
import { getNodeCardBasedIcon as V } from "../chapters-v2/utils/node-card-utils.js";
|
|
7
|
+
import Y from "../math-fit/math-fit-card/math-fit-card.js";
|
|
8
|
+
import Z from "../puzzles/comps/puzzle-card.js";
|
|
9
9
|
import u from "../ui/arrow-tooltip/arrow-tooltip.js";
|
|
10
10
|
import c from "../ui/layout/flex-view.js";
|
|
11
|
-
import
|
|
12
|
-
import
|
|
13
|
-
import { HW_CARD_LIST_ENTITY_TYPE as
|
|
14
|
-
import
|
|
15
|
-
import { PuzzleCardWrapper as
|
|
16
|
-
const
|
|
17
|
-
header:
|
|
11
|
+
import q from "../ui/lottie-animation/lottie-animation.js";
|
|
12
|
+
import J from "./card-title.js";
|
|
13
|
+
import { HW_CARD_LIST_ENTITY_TYPE as Q } from "./hw-card-list/hw-card-list-types.js";
|
|
14
|
+
import k from "./node-progress.js";
|
|
15
|
+
import { PuzzleCardWrapper as ee, CardWrapper as re, IconWrapper as te, BannerImageWrapper as oe, BannerImage as ie, HeaderText as ne, SubHeaderText as de } from "./styles.js";
|
|
16
|
+
const ae = { renderer: "canvas", autoplay: !1 }, le = ({
|
|
17
|
+
header: _,
|
|
18
18
|
isInQueue: x,
|
|
19
19
|
nodeData: i,
|
|
20
20
|
studentContainerRef: h,
|
|
21
|
-
subHeader:
|
|
21
|
+
subHeader: E,
|
|
22
22
|
userType: n,
|
|
23
23
|
isMilestone: d = !1,
|
|
24
24
|
puzzleHWCardRef: y,
|
|
25
25
|
entityType: N,
|
|
26
26
|
state: r,
|
|
27
|
-
score:
|
|
27
|
+
score: D
|
|
28
28
|
}) => {
|
|
29
29
|
const {
|
|
30
30
|
node_type: t,
|
|
31
|
-
accuracy:
|
|
31
|
+
accuracy: I,
|
|
32
32
|
due_date_ts: o,
|
|
33
33
|
image_url: g,
|
|
34
|
-
image_hue:
|
|
35
|
-
card_header:
|
|
34
|
+
image_hue: a,
|
|
35
|
+
card_header: O = "",
|
|
36
36
|
unlocked_on_ts: m,
|
|
37
|
-
course_type:
|
|
38
|
-
title:
|
|
39
|
-
} = i,
|
|
40
|
-
var
|
|
41
|
-
(
|
|
42
|
-
}, []), W =
|
|
43
|
-
var
|
|
44
|
-
(
|
|
37
|
+
course_type: S,
|
|
38
|
+
title: z
|
|
39
|
+
} = i, H = t === "PUZZLE_CARD", f = N === Q.MATHFIT_TEST, $ = n === "STUDENT" && r === "LOCKED", C = r === "LOCKED" || n === "TEACHER" && r !== "COMPLETED" && r !== "EXPIRED", L = U(() => r === "LOCKED" ? f ? "Take test after class" : "Not available to student" : "Sheet is not completed yet", [r, f]), [v, R] = F(!1), p = b(null), X = K(t), T = b(null), { lottie: P } = V(t), B = w(() => {
|
|
40
|
+
var l;
|
|
41
|
+
(l = T.current) == null || l.play();
|
|
42
|
+
}, []), W = w(() => {
|
|
43
|
+
var l;
|
|
44
|
+
(l = T.current) == null || l.stop();
|
|
45
45
|
}, []);
|
|
46
|
-
return
|
|
46
|
+
return G(() => {
|
|
47
47
|
p.current && p.current.scrollHeight > p.current.clientHeight && R(!0);
|
|
48
|
-
}, []),
|
|
48
|
+
}, []), H ? /* @__PURE__ */ e(
|
|
49
49
|
u,
|
|
50
50
|
{
|
|
51
51
|
renderAs: "primary",
|
|
@@ -53,65 +53,65 @@ const de = { renderer: "canvas", autoplay: !1 }, le = ({
|
|
|
53
53
|
position: "bottom",
|
|
54
54
|
hidden: !$,
|
|
55
55
|
children: /* @__PURE__ */ e("div", { ref: y, children: /* @__PURE__ */ s(
|
|
56
|
-
|
|
56
|
+
ee,
|
|
57
57
|
{
|
|
58
58
|
ref: h,
|
|
59
59
|
$position: "relative",
|
|
60
|
-
$background: `${
|
|
60
|
+
$background: `${a}_2`,
|
|
61
61
|
$disabled: $,
|
|
62
62
|
children: [
|
|
63
63
|
/* @__PURE__ */ e(
|
|
64
|
-
|
|
64
|
+
Z,
|
|
65
65
|
{
|
|
66
|
-
imageHue:
|
|
66
|
+
imageHue: a,
|
|
67
67
|
imageUrl: g ?? "",
|
|
68
|
-
title:
|
|
68
|
+
title: z,
|
|
69
69
|
width: 126,
|
|
70
70
|
height: 159,
|
|
71
71
|
disabled: $
|
|
72
72
|
}
|
|
73
73
|
),
|
|
74
74
|
/* @__PURE__ */ e(
|
|
75
|
-
|
|
75
|
+
A,
|
|
76
76
|
{
|
|
77
77
|
nodeType: t,
|
|
78
78
|
state: r,
|
|
79
|
-
accuracy:
|
|
79
|
+
accuracy: I,
|
|
80
80
|
dueDateTs: o,
|
|
81
81
|
isStudent: n === "STUDENT",
|
|
82
82
|
isMilestone: d
|
|
83
83
|
}
|
|
84
84
|
),
|
|
85
85
|
!d && o && m && /* @__PURE__ */ e(
|
|
86
|
-
|
|
86
|
+
k,
|
|
87
87
|
{
|
|
88
88
|
dueDate: o * 1e3,
|
|
89
89
|
unlockedOn: m * 1e3,
|
|
90
|
-
progressBg: `${
|
|
90
|
+
progressBg: `${a || "ORANGE"}_5`
|
|
91
91
|
}
|
|
92
92
|
)
|
|
93
93
|
]
|
|
94
94
|
}
|
|
95
95
|
) })
|
|
96
96
|
}
|
|
97
|
-
) :
|
|
97
|
+
) : f ? /* @__PURE__ */ e(
|
|
98
98
|
u,
|
|
99
99
|
{
|
|
100
100
|
renderAs: "primary",
|
|
101
101
|
tooltipItem: L,
|
|
102
102
|
position: "bottom",
|
|
103
|
-
hidden: !
|
|
103
|
+
hidden: !C,
|
|
104
104
|
children: /* @__PURE__ */ e(
|
|
105
|
-
|
|
105
|
+
Y,
|
|
106
106
|
{
|
|
107
|
-
score:
|
|
107
|
+
score: D,
|
|
108
108
|
dueDateTs: i.due_date_ts,
|
|
109
109
|
nodeType: "DYNAMIC",
|
|
110
110
|
state: r,
|
|
111
|
-
subHeader:
|
|
111
|
+
subHeader: E,
|
|
112
112
|
unlockedOnTs: i == null ? void 0 : i.unlocked_on_ts,
|
|
113
113
|
userType: n,
|
|
114
|
-
isMathFitDisabled:
|
|
114
|
+
isMathFitDisabled: C,
|
|
115
115
|
isMilestone: d,
|
|
116
116
|
studentContainerRef: h
|
|
117
117
|
}
|
|
@@ -123,12 +123,12 @@ const de = { renderer: "canvas", autoplay: !1 }, le = ({
|
|
|
123
123
|
ref: h,
|
|
124
124
|
$widthX: 12.38,
|
|
125
125
|
$position: "relative",
|
|
126
|
-
$background: `${
|
|
126
|
+
$background: `${a || "ORANGE"}_2`,
|
|
127
127
|
onMouseEnter: B,
|
|
128
128
|
onMouseLeave: W,
|
|
129
129
|
children: [
|
|
130
130
|
/* @__PURE__ */ s(
|
|
131
|
-
|
|
131
|
+
re,
|
|
132
132
|
{
|
|
133
133
|
$flexDirection: "row",
|
|
134
134
|
$alignItems: "center",
|
|
@@ -140,7 +140,7 @@ const de = { renderer: "canvas", autoplay: !1 }, le = ({
|
|
|
140
140
|
$position: "relative",
|
|
141
141
|
children: [
|
|
142
142
|
/* @__PURE__ */ e(
|
|
143
|
-
|
|
143
|
+
te,
|
|
144
144
|
{
|
|
145
145
|
$width: 31,
|
|
146
146
|
$height: 31,
|
|
@@ -149,10 +149,10 @@ const de = { renderer: "canvas", autoplay: !1 }, le = ({
|
|
|
149
149
|
$position: "relative",
|
|
150
150
|
$alignItems: "center",
|
|
151
151
|
$justifyContent: "center",
|
|
152
|
-
children: /* @__PURE__ */ e(
|
|
152
|
+
children: /* @__PURE__ */ e(q, { src: P, ref: T, settings: ae })
|
|
153
153
|
}
|
|
154
154
|
),
|
|
155
|
-
/* @__PURE__ */ e(
|
|
155
|
+
/* @__PURE__ */ e(J, { cardHeader: O, nodeType: t, courseType: S }),
|
|
156
156
|
x && /* @__PURE__ */ e(
|
|
157
157
|
u,
|
|
158
158
|
{
|
|
@@ -160,30 +160,30 @@ const de = { renderer: "canvas", autoplay: !1 }, le = ({
|
|
|
160
160
|
tooltipItem: "Not visible to student",
|
|
161
161
|
position: "bottom",
|
|
162
162
|
zIndex: 6,
|
|
163
|
-
children: /* @__PURE__ */ e(
|
|
163
|
+
children: /* @__PURE__ */ e(j, {})
|
|
164
164
|
}
|
|
165
165
|
),
|
|
166
|
-
!!g && /* @__PURE__ */ e(
|
|
166
|
+
!!g && /* @__PURE__ */ e(oe, { children: /* @__PURE__ */ e(ie, { src: g, alt: "Chapter image" }) })
|
|
167
167
|
]
|
|
168
168
|
}
|
|
169
169
|
),
|
|
170
170
|
/* @__PURE__ */ e(
|
|
171
|
-
|
|
171
|
+
A,
|
|
172
172
|
{
|
|
173
173
|
nodeType: t,
|
|
174
174
|
state: r,
|
|
175
|
-
accuracy:
|
|
175
|
+
accuracy: I,
|
|
176
176
|
dueDateTs: o,
|
|
177
177
|
isStudent: n === "STUDENT",
|
|
178
178
|
isMilestone: d
|
|
179
179
|
}
|
|
180
180
|
),
|
|
181
181
|
!d && o && m && /* @__PURE__ */ e(
|
|
182
|
-
|
|
182
|
+
k,
|
|
183
183
|
{
|
|
184
184
|
dueDate: o * 1e3,
|
|
185
185
|
unlockedOn: m * 1e3,
|
|
186
|
-
progressBg: `${
|
|
186
|
+
progressBg: `${a || "ORANGE"}_4`
|
|
187
187
|
}
|
|
188
188
|
),
|
|
189
189
|
/* @__PURE__ */ s(c, { $gutterX: 0.75, $gapX: 1, $flexRowGapX: 0.5, $background: "WHITE", children: [
|
|
@@ -192,12 +192,12 @@ const de = { renderer: "canvas", autoplay: !1 }, le = ({
|
|
|
192
192
|
{
|
|
193
193
|
renderAs: "primary",
|
|
194
194
|
position: "bottom",
|
|
195
|
-
tooltipItem:
|
|
195
|
+
tooltipItem: _,
|
|
196
196
|
width: 300,
|
|
197
197
|
hidden: !v,
|
|
198
198
|
parentWidth: "auto",
|
|
199
199
|
zIndex: 6,
|
|
200
|
-
children: /* @__PURE__ */ e(c, { $heightX: 2.5, children: /* @__PURE__ */ e(
|
|
200
|
+
children: /* @__PURE__ */ e(c, { $heightX: 2.5, children: /* @__PURE__ */ e(ne, { ref: p, $renderAs: "ab3", children: _ }) })
|
|
201
201
|
}
|
|
202
202
|
),
|
|
203
203
|
/* @__PURE__ */ s(
|
|
@@ -208,7 +208,7 @@ const de = { renderer: "canvas", autoplay: !1 }, le = ({
|
|
|
208
208
|
$alignItems: "center",
|
|
209
209
|
$justifyContent: "space-between",
|
|
210
210
|
children: [
|
|
211
|
-
/* @__PURE__ */ e(
|
|
211
|
+
/* @__PURE__ */ e(de, { $renderAs: "ub3", $color: "BLACK_T_60", children: E }),
|
|
212
212
|
/* @__PURE__ */ e(c, { $width: 32 })
|
|
213
213
|
]
|
|
214
214
|
}
|
|
@@ -217,8 +217,8 @@ const de = { renderer: "canvas", autoplay: !1 }, le = ({
|
|
|
217
217
|
]
|
|
218
218
|
}
|
|
219
219
|
);
|
|
220
|
-
},
|
|
220
|
+
}, we = M(le);
|
|
221
221
|
export {
|
|
222
|
-
|
|
222
|
+
we as default
|
|
223
223
|
};
|
|
224
224
|
//# sourceMappingURL=homework-card-view.js.map
|