@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.
Files changed (22) hide show
  1. package/dist/features/chapters-v2/utils/node-card-utils.js +55 -58
  2. package/dist/features/chapters-v2/utils/node-card-utils.js.map +1 -1
  3. package/dist/features/homework/homework-card-view.js +60 -60
  4. package/dist/features/homework/homework-card-view.js.map +1 -1
  5. package/dist/features/math-fit/math-fit-card/math-fit-card.js +60 -71
  6. package/dist/features/math-fit/math-fit-card/math-fit-card.js.map +1 -1
  7. package/dist/features/math-fit/math-fit-overview/math-fit-overview-helpers.js +29 -27
  8. package/dist/features/math-fit/math-fit-overview/math-fit-overview-helpers.js.map +1 -1
  9. package/dist/features/math-fit/math-fit-overview/math-fit-overview.js +49 -40
  10. package/dist/features/math-fit/math-fit-overview/math-fit-overview.js.map +1 -1
  11. package/dist/features/math-fit/math-fit-report/comps/score-section/score-section.js +20 -22
  12. package/dist/features/math-fit/math-fit-report/comps/score-section/score-section.js.map +1 -1
  13. package/dist/features/math-fit/math-fit-report/math-fit-report-helpers.js +5 -5
  14. package/dist/features/math-fit/math-fit-report/math-fit-report-helpers.js.map +1 -1
  15. package/dist/features/timeline/daily-timeline/api/use-daily-timeline-get.js.map +1 -1
  16. package/dist/features/timeline/daily-timeline/comps/accordion-item/accordion-item.js +40 -38
  17. package/dist/features/timeline/daily-timeline/comps/accordion-item/accordion-item.js.map +1 -1
  18. package/dist/features/timeline/daily-timeline/daily-timeline-types.js +4 -4
  19. package/dist/features/timeline/daily-timeline/daily-timeline-types.js.map +1 -1
  20. package/dist/index.d.ts +3 -1
  21. package/dist/types/models/worksheet.js.map +1 -1
  22. package/package.json +1 -1
@@ -1,21 +1,21 @@
1
- import { jsx as t, jsxs as _ } from "react/jsx-runtime";
2
- import p from "../../../assets/line-icons/icons/check2.js";
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 N from "../../../assets/line-icons/icons/lock2.js";
5
- import C from "../../../assets/line-icons/icons/status.js";
6
- import { LOTTIE as r } from "../../../assets/lottie/lottie.js";
7
- import f from "../../ui/layout/flex-view.js";
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 D } from "../comps/node-card/node-card-styled.js";
10
+ import { InProgressIconWrapper as P } from "../comps/node-card/node-card-styled.js";
11
11
  import R from "../comps/tag/tag.js";
12
- const P = 60 * 60 * 24, L = 60 * 60, g = 60, O = ["NOT_STARTED"], $ = (e, o, n) => {
13
- if (!e || o && !n)
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 i = Math.floor(Date.now() / 1e3), c = e - i, a = Math.floor(c / L), T = Math.floor(c / g), s = Math.round(c / P), d = s < 0, E = s > 0 ? `${Math.abs(s)}D` : "", A = a > 0 ? Math.abs(a) : 0, I = T > 0 ? Math.abs(T) : 0;
16
- return { isOverdue: d, daysText: E, differenceInDays: s, hoursLeft: A, minutesLeft: I };
17
- }, M = (e, o, n, i) => i ? e < 1 && o > 0 ? `${o}m` : `${e}h` : n, m = (e, o, n = !1) => /* @__PURE__ */ _(
18
- D,
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: o,
26
+ $showWarningBg: t,
27
27
  children: [
28
- e && /* @__PURE__ */ t(u, { $renderAs: "ub3-bold", $color: "WHITE", children: e }),
29
- n && /* @__PURE__ */ t(C, {})
28
+ e && /* @__PURE__ */ r(u, { $renderAs: "ub3-bold", $color: "WHITE", children: e }),
29
+ n && /* @__PURE__ */ r(D, {})
30
30
  ]
31
31
  }
32
- ), v = ({
32
+ ), U = (e, t) => {
33
+ if (typeof e == "number")
34
+ return t ? `${e}` : `${e}%`;
35
+ }, Y = ({
33
36
  state: e,
34
- isStudent: o,
37
+ isStudent: t,
35
38
  accuracy: n,
36
- dueDateTs: i,
39
+ dueDateTs: a,
37
40
  isMilestone: c,
38
- isMathFitCard: a
41
+ isMathFitCard: s
39
42
  }) => {
40
- const { isOverdue: T, daysText: s, differenceInDays: d, hoursLeft: E, minutesLeft: A } = $(
41
- i,
43
+ const { isOverdue: T, daysText: i, differenceInDays: A, hoursLeft: E, minutesLeft: d } = M(
44
+ a,
42
45
  c,
43
- a
44
- ), I = !!(a && E <= 24 && E >= 0), l = M(E, A, s, 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__ */ t(
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: !o,
57
+ hidden: !t,
55
58
  parentWidth: "fit-content",
56
- children: /* @__PURE__ */ t(f, { $background: "RED", $borderRadius: 16, $gapX: 0.24, $gutterX: 0.5, children: /* @__PURE__ */ t(u, { $renderAs: "ac4-black", $color: "WHITE", children: "OVERDUE" }) })
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__ */ t(
68
+ icon: /* @__PURE__ */ r(
66
69
  S,
67
70
  {
68
71
  renderAs: "primary",
69
72
  position: "bottom",
70
- tooltipItem: d > 1 ? `${d} days left` : "Complete it today",
73
+ tooltipItem: A > 1 ? `${A} days left` : "Complete it today",
71
74
  zIndex: 10,
72
- hidden: !o,
73
- children: m(l, I)
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__ */ t(N, { width: 32, height: 32 }),
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(l, I, !0)
90
+ icon: m(f, I, !0)
88
91
  };
89
92
  case "COMPLETED":
90
93
  return {
91
- icon: /* @__PURE__ */ t(
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__ */ t(
100
+ icon: /* @__PURE__ */ r(
104
101
  S,
105
102
  {
106
103
  renderAs: "primary",
107
104
  position: "bottom",
108
- tooltipItem: o ? "Waiting for teacher to review" : "Needs your review",
105
+ tooltipItem: t ? "Waiting for teacher to review" : "Needs your review",
109
106
  zIndex: 10,
110
- children: /* @__PURE__ */ t(R, { Icon: h })
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__ */ t(f, { $background: "WHITE_5", $borderRadius: 16, $gapX: 0.24, $gutterX: 0.5, children: /* @__PURE__ */ t(u, { $renderAs: "ub3", $color: "BLACK_1", children: "EXPIRED" }) }),
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
- }, X = (e) => {
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: r.COMPETITIVE_ARENA
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: r.LEARN
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: r.RECAP
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: r.TEST
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: r.PRACTICE
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: r.PUZZLE
170
+ lottie: o.PUZZLE
174
171
  };
175
172
  case "TURING_SUBJECTIVE":
176
173
  return {
177
- lottie: r.SUBJECTIVE
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: r.ACTIVITY
180
+ lottie: o.ACTIVITY
184
181
  };
185
182
  case "VIDEO":
186
183
  return {
187
- lottie: r.VIDEO
184
+ lottie: o.VIDEO
188
185
  };
189
186
  case "PDF":
190
187
  return {
191
- lottie: r.DOWNLOAD
188
+ lottie: o.DOWNLOAD
192
189
  };
193
190
  default:
194
191
  return {
195
- lottie: r.PROJECT
192
+ lottie: o.PROJECT
196
193
  };
197
194
  }
198
195
  };
199
196
  export {
200
- X as getNodeCardBasedIcon,
201
- v as getNodeStateBasedTagInfo
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":"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"}
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, useState as U, useRef as C, useCallback as b, useLayoutEffect as F } from "react";
3
- import G from "../../assets/line-icons/icons/closed-eye.js";
4
- import w from "../chapters-v2/comps/node-card/node-card-tags.js";
5
- import { getNodeTypeBasedBgImage as j } from "../chapters-v2/utils/index.js";
6
- import { getNodeCardBasedIcon as K } from "../chapters-v2/utils/node-card-utils.js";
7
- import V from "../math-fit/math-fit-card/math-fit-card.js";
8
- import Y from "../puzzles/comps/puzzle-card.js";
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 Z from "../ui/lottie-animation/lottie-animation.js";
12
- import q from "./card-title.js";
13
- import { HW_CARD_LIST_ENTITY_TYPE as J } from "./hw-card-list/hw-card-list-types.js";
14
- import A from "./node-progress.js";
15
- import { PuzzleCardWrapper as Q, CardWrapper as ee, IconWrapper as re, BannerImageWrapper as te, BannerImage as oe, HeaderText as ie, SubHeaderText as ne } from "./styles.js";
16
- const de = { renderer: "canvas", autoplay: !1 }, le = ({
17
- header: T,
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: k
27
+ score: D
28
28
  }) => {
29
29
  const {
30
30
  node_type: t,
31
- accuracy: E,
31
+ accuracy: I,
32
32
  due_date_ts: o,
33
33
  image_url: g,
34
- image_hue: l,
35
- card_header: D = "",
34
+ image_hue: a,
35
+ card_header: O = "",
36
36
  unlocked_on_ts: m,
37
- course_type: O,
38
- title: S
39
- } = i, z = t === "PUZZLE_CARD", H = N === J.MATHFIT_TEST, $ = n === "STUDENT" && r === "LOCKED", I = r === "LOCKED" || n === "TEACHER" && r !== "COMPLETED" && r !== "EXPIRED", L = r === "LOCKED" ? "Not available to student" : "Sheet is not completed yet", [v, R] = U(!1), p = C(null), X = j(t), f = C(null), { lottie: P } = K(t), B = b(() => {
40
- var a;
41
- (a = f.current) == null || a.play();
42
- }, []), W = b(() => {
43
- var a;
44
- (a = f.current) == null || a.stop();
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 F(() => {
46
+ return G(() => {
47
47
  p.current && p.current.scrollHeight > p.current.clientHeight && R(!0);
48
- }, []), z ? /* @__PURE__ */ e(
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
- Q,
56
+ ee,
57
57
  {
58
58
  ref: h,
59
59
  $position: "relative",
60
- $background: `${l}_2`,
60
+ $background: `${a}_2`,
61
61
  $disabled: $,
62
62
  children: [
63
63
  /* @__PURE__ */ e(
64
- Y,
64
+ Z,
65
65
  {
66
- imageHue: l,
66
+ imageHue: a,
67
67
  imageUrl: g ?? "",
68
- title: S,
68
+ title: z,
69
69
  width: 126,
70
70
  height: 159,
71
71
  disabled: $
72
72
  }
73
73
  ),
74
74
  /* @__PURE__ */ e(
75
- w,
75
+ A,
76
76
  {
77
77
  nodeType: t,
78
78
  state: r,
79
- accuracy: E,
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
- A,
86
+ k,
87
87
  {
88
88
  dueDate: o * 1e3,
89
89
  unlockedOn: m * 1e3,
90
- progressBg: `${l || "ORANGE"}_5`
90
+ progressBg: `${a || "ORANGE"}_5`
91
91
  }
92
92
  )
93
93
  ]
94
94
  }
95
95
  ) })
96
96
  }
97
- ) : H ? /* @__PURE__ */ e(
97
+ ) : f ? /* @__PURE__ */ e(
98
98
  u,
99
99
  {
100
100
  renderAs: "primary",
101
101
  tooltipItem: L,
102
102
  position: "bottom",
103
- hidden: !I,
103
+ hidden: !C,
104
104
  children: /* @__PURE__ */ e(
105
- V,
105
+ Y,
106
106
  {
107
- score: k,
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: I,
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: `${l || "ORANGE"}_2`,
126
+ $background: `${a || "ORANGE"}_2`,
127
127
  onMouseEnter: B,
128
128
  onMouseLeave: W,
129
129
  children: [
130
130
  /* @__PURE__ */ s(
131
- ee,
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
- re,
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(Z, { src: P, ref: f, settings: de })
152
+ children: /* @__PURE__ */ e(q, { src: P, ref: T, settings: ae })
153
153
  }
154
154
  ),
155
- /* @__PURE__ */ e(q, { cardHeader: D, nodeType: t, courseType: O }),
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(G, {})
163
+ children: /* @__PURE__ */ e(j, {})
164
164
  }
165
165
  ),
166
- !!g && /* @__PURE__ */ e(te, { children: /* @__PURE__ */ e(oe, { src: g, alt: "Chapter image" }) })
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
- w,
171
+ A,
172
172
  {
173
173
  nodeType: t,
174
174
  state: r,
175
- accuracy: E,
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
- A,
182
+ k,
183
183
  {
184
184
  dueDate: o * 1e3,
185
185
  unlockedOn: m * 1e3,
186
- progressBg: `${l || "ORANGE"}_4`
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: T,
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(ie, { ref: p, $renderAs: "ab3", children: T }) })
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(ne, { $renderAs: "ub3", $color: "BLACK_T_60", children: _ }),
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
- }, be = M(le);
220
+ }, we = M(le);
221
221
  export {
222
- be as default
222
+ we as default
223
223
  };
224
224
  //# sourceMappingURL=homework-card-view.js.map