@cuemath/leap 3.5.58 → 3.5.59-link0
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 +24 -24
- package/dist/features/chapters-v2/utils/node-card-utils.js.map +1 -1
- package/dist/features/cue-canvas/bottombar/homework-controls.js.map +1 -1
- package/dist/features/cue-canvas/sidebar/sidebar.js +4 -4
- package/dist/features/cue-canvas/sidebar/sidebar.js.map +1 -1
- package/dist/features/cue-canvas/toolbar/toolbar.js +21 -17
- package/dist/features/cue-canvas/toolbar/toolbar.js.map +1 -1
- package/dist/features/cue-canvas/toolbar/whiteboard-toolbar.js +23 -13
- package/dist/features/cue-canvas/toolbar/whiteboard-toolbar.js.map +1 -1
- package/dist/features/journey/tracking-id/tracking-id-student.js +1 -1
- package/dist/features/journey/tracking-id/tracking-id-student.js.map +1 -1
- package/dist/features/math-fit/math-fit-report/comps/score-section/score-section.js +43 -43
- package/dist/features/math-fit/math-fit-report/comps/score-section/score-section.js.map +1 -1
- package/dist/features/milestone/create/api/milestone-config.js.map +1 -1
- package/dist/features/parent-dashboard/modals/trial-report/trial-report.js +1 -1
- package/dist/features/parent-dashboard/modals/trial-report/trial-report.js.map +1 -1
- package/dist/features/sheets/constants/sheet.js +1 -0
- package/dist/features/sheets/constants/sheet.js.map +1 -1
- package/dist/features/sheets/utils/is-v3-worksheet.js +3 -2
- package/dist/features/sheets/utils/is-v3-worksheet.js.map +1 -1
- package/dist/features/timeline/monthly-timeline/monthly-report/monthly-report-types.js +1 -1
- package/dist/features/timeline/monthly-timeline/monthly-report/monthly-report-types.js.map +1 -1
- package/dist/features/trial-session/api/trial-home.js +10 -16
- package/dist/features/trial-session/api/trial-home.js.map +1 -1
- package/dist/features/trial-session/api/trial-session-report.js +16 -0
- package/dist/features/trial-session/api/trial-session-report.js.map +1 -0
- package/dist/features/trial-session/api/trial-topics.js +9 -0
- package/dist/features/trial-session/api/trial-topics.js.map +1 -0
- package/dist/features/trial-session/comps/background-grid/background-grid-utils.js +62 -50
- package/dist/features/trial-session/comps/background-grid/background-grid-utils.js.map +1 -1
- package/dist/features/trial-session/comps/class-preference/class-preference-styled.js +5 -14
- package/dist/features/trial-session/comps/class-preference/class-preference-styled.js.map +1 -1
- package/dist/features/trial-session/comps/class-preference/class-preference.js +55 -53
- package/dist/features/trial-session/comps/class-preference/class-preference.js.map +1 -1
- package/dist/features/trial-session/comps/communication-slide/communication-slide-constants.js +3 -2
- package/dist/features/trial-session/comps/communication-slide/communication-slide-constants.js.map +1 -1
- package/dist/features/trial-session/comps/confirmation-modal/hooks/use-confirmation-modal.js +27 -27
- package/dist/features/trial-session/comps/confirmation-modal/hooks/use-confirmation-modal.js.map +1 -1
- package/dist/features/trial-session/comps/learning-session/learning-session-styled.js +19 -18
- package/dist/features/trial-session/comps/learning-session/learning-session-styled.js.map +1 -1
- package/dist/features/trial-session/comps/learning-session/learning-session.js +34 -43
- package/dist/features/trial-session/comps/learning-session/learning-session.js.map +1 -1
- package/dist/features/trial-session/comps/navigation-bar/index.js +56 -58
- package/dist/features/trial-session/comps/navigation-bar/index.js.map +1 -1
- package/dist/features/trial-session/comps/offering-information/offering-information-constants.js +29 -6
- package/dist/features/trial-session/comps/offering-information/offering-information-constants.js.map +1 -1
- package/dist/features/trial-session/comps/offering-information/offering-information.js +74 -64
- package/dist/features/trial-session/comps/offering-information/offering-information.js.map +1 -1
- package/dist/features/trial-session/comps/school-goals/school-goals-styled.js +10 -9
- package/dist/features/trial-session/comps/school-goals/school-goals-styled.js.map +1 -1
- package/dist/features/trial-session/comps/school-goals/school-goals-view.js +40 -39
- package/dist/features/trial-session/comps/school-goals/school-goals-view.js.map +1 -1
- package/dist/features/trial-session/comps/school-goals/school-goals.js +39 -37
- package/dist/features/trial-session/comps/school-goals/school-goals.js.map +1 -1
- package/dist/features/trial-session/comps/session-insights/session-insights-styled.js +12 -20
- package/dist/features/trial-session/comps/session-insights/session-insights-styled.js.map +1 -1
- package/dist/features/trial-session/comps/session-insights/session-insights.js +64 -63
- package/dist/features/trial-session/comps/session-insights/session-insights.js.map +1 -1
- package/dist/features/trial-session/comps/session-overview/session-overview-styled.js +13 -12
- package/dist/features/trial-session/comps/session-overview/session-overview-styled.js.map +1 -1
- package/dist/features/trial-session/comps/session-overview/session-overview.js +6 -6
- package/dist/features/trial-session/comps/session-overview/session-overview.js.map +1 -1
- package/dist/features/trial-session/comps/session-progress-summary/session-progress-summary-styled.js +61 -0
- package/dist/features/trial-session/comps/session-progress-summary/session-progress-summary-styled.js.map +1 -0
- package/dist/features/trial-session/comps/session-progress-summary/session-progress-summary-types.js +5 -0
- package/dist/features/trial-session/comps/session-progress-summary/session-progress-summary-types.js.map +1 -0
- package/dist/features/trial-session/comps/session-progress-summary/session-progress-summary-view.js +135 -0
- package/dist/features/trial-session/comps/session-progress-summary/session-progress-summary-view.js.map +1 -0
- package/dist/features/trial-session/comps/session-progress-summary/session-progress-summary.js +53 -0
- package/dist/features/trial-session/comps/session-progress-summary/session-progress-summary.js.map +1 -0
- package/dist/features/trial-session/comps/session-report/report-404/report-404.js +15 -16
- package/dist/features/trial-session/comps/session-report/report-404/report-404.js.map +1 -1
- package/dist/features/trial-session/comps/session-report/session-report.js +35 -33
- package/dist/features/trial-session/comps/session-report/session-report.js.map +1 -1
- package/dist/features/trial-session/comps/student-enrichment/student-enrichment-styled.js +9 -16
- package/dist/features/trial-session/comps/student-enrichment/student-enrichment-styled.js.map +1 -1
- package/dist/features/trial-session/comps/student-enrichment/student-enrichment.js +39 -37
- package/dist/features/trial-session/comps/student-enrichment/student-enrichment.js.map +1 -1
- package/dist/features/trial-session/comps/student-feedback/student-feedback-styled.js +10 -9
- package/dist/features/trial-session/comps/student-feedback/student-feedback-styled.js.map +1 -1
- package/dist/features/trial-session/comps/student-info/student-info-constants.js +35 -0
- package/dist/features/trial-session/comps/student-info/student-info-constants.js.map +1 -0
- package/dist/features/trial-session/comps/student-info/student-info-helpers.js +12 -0
- package/dist/features/trial-session/comps/student-info/student-info-helpers.js.map +1 -0
- package/dist/features/trial-session/comps/student-info/student-info-styled.js +26 -11
- package/dist/features/trial-session/comps/student-info/student-info-styled.js.map +1 -1
- package/dist/features/trial-session/comps/student-info/student-info.js +113 -78
- package/dist/features/trial-session/comps/student-info/student-info.js.map +1 -1
- package/dist/features/trial-session/comps/student-personalization/student-personalization-styled.js +3 -12
- package/dist/features/trial-session/comps/student-personalization/student-personalization-styled.js.map +1 -1
- package/dist/features/trial-session/comps/student-personalization/student-personalization.js +34 -33
- package/dist/features/trial-session/comps/student-personalization/student-personalization.js.map +1 -1
- package/dist/features/trial-session/comps/student-profile/student-profile.js +45 -44
- package/dist/features/trial-session/comps/student-profile/student-profile.js.map +1 -1
- package/dist/features/trial-session/comps/teacher-intro/teacher-intro.js +9 -8
- package/dist/features/trial-session/comps/teacher-intro/teacher-intro.js.map +1 -1
- package/dist/features/trial-session/comps/test-prep/test-prep-styled.js +11 -19
- package/dist/features/trial-session/comps/test-prep/test-prep-styled.js.map +1 -1
- package/dist/features/trial-session/comps/test-prep/test-prep.js +31 -29
- package/dist/features/trial-session/comps/test-prep/test-prep.js.map +1 -1
- package/dist/features/trial-session/comps/topic-selection/topic-selection-styled.js +42 -0
- package/dist/features/trial-session/comps/topic-selection/topic-selection-styled.js.map +1 -0
- package/dist/features/trial-session/comps/topic-selection/topic-selection.js +84 -0
- package/dist/features/trial-session/comps/topic-selection/topic-selection.js.map +1 -0
- package/dist/features/trial-session/comps/whiteboard/whiteboard-styled.js +21 -0
- package/dist/features/trial-session/comps/whiteboard/whiteboard-styled.js.map +1 -0
- package/dist/features/trial-session/comps/whiteboard/whiteboard.js +99 -0
- package/dist/features/trial-session/comps/whiteboard/whiteboard.js.map +1 -0
- package/dist/features/trial-session/comps/worksheet/worksheet.js +35 -33
- package/dist/features/trial-session/comps/worksheet/worksheet.js.map +1 -1
- package/dist/features/trial-session/context/trial-session-context.js +2 -0
- package/dist/features/trial-session/context/trial-session-context.js.map +1 -1
- package/dist/features/trial-session/helper.js +70 -64
- package/dist/features/trial-session/helper.js.map +1 -1
- package/dist/features/trial-session/hooks/use-trial-session-navigation.js +184 -151
- package/dist/features/trial-session/hooks/use-trial-session-navigation.js.map +1 -1
- package/dist/features/trial-session/right-panel/right-panel-styled.js +8 -8
- package/dist/features/trial-session/right-panel/right-panel-styled.js.map +1 -1
- package/dist/features/trial-session/right-panel/slide-components-map.js +42 -36
- package/dist/features/trial-session/right-panel/slide-components-map.js.map +1 -1
- package/dist/features/trial-session/trial-session-constants.js +22 -18
- package/dist/features/trial-session/trial-session-constants.js.map +1 -1
- package/dist/features/trial-session/trial-session-types.js.map +1 -1
- package/dist/features/trial-session/trial-session-view.js +82 -77
- package/dist/features/trial-session/trial-session-view.js.map +1 -1
- package/dist/features/trial-session/trial-session.js +38 -38
- package/dist/features/trial-session/trial-session.js.map +1 -1
- package/dist/features/ui/inputs/checkbox-input/checkbox-input.js +21 -21
- package/dist/features/ui/inputs/checkbox-input/checkbox-input.js.map +1 -1
- package/dist/features/ui/inputs/checkbox-input-list/checkbox-input-list.js +12 -12
- package/dist/features/ui/inputs/checkbox-input-list/checkbox-input-list.js.map +1 -1
- package/dist/features/ui/theme/clrs.js +1 -0
- package/dist/features/ui/theme/clrs.js.map +1 -1
- package/dist/features/worksheet/worksheet/mocks/activity.js +6 -0
- package/dist/features/worksheet/worksheet/mocks/activity.js.map +1 -0
- package/dist/features/worksheet/worksheet/mocks/signed-requests.js +5 -0
- package/dist/features/worksheet/worksheet/mocks/signed-requests.js.map +1 -0
- package/dist/features/worksheet/worksheet/stories/use-canvas-sync-broker-story.js +57 -0
- package/dist/features/worksheet/worksheet/stories/use-canvas-sync-broker-story.js.map +1 -0
- package/dist/features/worksheet/worksheet/stories/worksheet-story-container.js +263 -0
- package/dist/features/worksheet/worksheet/stories/worksheet-story-container.js.map +1 -0
- package/dist/features/worksheet/worksheet/stories/worksheet-student.js +177 -0
- package/dist/features/worksheet/worksheet/stories/worksheet-student.js.map +1 -0
- package/dist/features/worksheet/worksheet/stories/worksheet-teacher.js +267 -0
- package/dist/features/worksheet/worksheet/stories/worksheet-teacher.js.map +1 -0
- package/dist/features/worksheet/worksheet/worksheet-behavior-helper.js +2 -6
- package/dist/features/worksheet/worksheet/worksheet-behavior-helper.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-helpers.js +38 -37
- package/dist/features/worksheet/worksheet/worksheet-helpers.js.map +1 -1
- package/dist/features/worksheet/worksheet-preview/hooks/use-worksheet-layout.js +35 -28
- package/dist/features/worksheet/worksheet-preview/hooks/use-worksheet-layout.js.map +1 -1
- package/dist/index.d.ts +12 -5
- package/dist/index.js +1 -1
- package/dist/node_modules/query-string/base.js +1 -1
- package/dist/node_modules/query-string/node_modules/decode-uri-component/index.js.map +1 -0
- package/dist/node_modules/uuid/dist/esm-browser/regex.js +5 -0
- package/dist/node_modules/uuid/dist/esm-browser/regex.js.map +1 -0
- package/dist/node_modules/uuid/dist/esm-browser/rng.js +2 -3
- package/dist/node_modules/uuid/dist/esm-browser/rng.js.map +1 -1
- package/dist/node_modules/uuid/dist/esm-browser/stringify.js +10 -6
- package/dist/node_modules/uuid/dist/esm-browser/stringify.js.map +1 -1
- package/dist/node_modules/uuid/dist/esm-browser/v4.js +9 -12
- package/dist/node_modules/uuid/dist/esm-browser/v4.js.map +1 -1
- package/dist/node_modules/uuid/dist/esm-browser/validate.js +8 -0
- package/dist/node_modules/uuid/dist/esm-browser/validate.js.map +1 -0
- package/dist/types/models/worksheet.js +1 -1
- package/dist/types/models/worksheet.js.map +1 -1
- package/package.json +1 -1
- package/dist/node_modules/decode-uri-component/index.js.map +0 -1
- package/dist/node_modules/uuid/dist/esm-browser/native.js +0 -7
- package/dist/node_modules/uuid/dist/esm-browser/native.js.map +0 -1
- /package/dist/node_modules/{decode-uri-component → query-string/node_modules/decode-uri-component}/index.js +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { jsx as
|
|
1
|
+
import { jsx as r, jsxs as p } from "react/jsx-runtime";
|
|
2
2
|
import N from "../../../assets/line-icons/icons/check2.js";
|
|
3
3
|
import C from "../../../assets/line-icons/icons/exclamation.js";
|
|
4
4
|
import h from "../../../assets/line-icons/icons/lock2.js";
|
|
@@ -9,12 +9,12 @@ import u from "../../ui/arrow-tooltip/arrow-tooltip.js";
|
|
|
9
9
|
import S from "../../ui/text/text.js";
|
|
10
10
|
import { InProgressIconWrapper as L } from "../comps/node-card/node-card-styled.js";
|
|
11
11
|
import R from "../comps/tag/tag.js";
|
|
12
|
-
const P = 60 * 60 * 24, g = 60 * 60, $ = 60, O = ["NOT_STARTED"], M = (e,
|
|
13
|
-
if (!e ||
|
|
12
|
+
const P = 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
15
|
const a = Math.floor(Date.now() / 1e3), c = e - a, s = Math.floor(c / g), T = Math.floor(c / $), i = Math.round(c / P), 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
16
|
return { isOverdue: A, daysText: E, differenceInDays: i, hoursLeft: d, minutesLeft: I };
|
|
17
|
-
}, b = (e,
|
|
17
|
+
}, b = (e, t, n, a) => a ? e < 1 && t > 0 ? `${t}m` : `${e}h` : n, _ = (e, t, n = !1) => /* @__PURE__ */ p(
|
|
18
18
|
L,
|
|
19
19
|
{
|
|
20
20
|
$flexDirection: "row",
|
|
@@ -23,18 +23,18 @@ const P = 60 * 60 * 24, g = 60 * 60, $ = 60, O = ["NOT_STARTED"], M = (e, r, n)
|
|
|
23
23
|
$borderRadius: 16,
|
|
24
24
|
$paddingRight: n ? 0 : 6,
|
|
25
25
|
$paddingLeft: e ? 6 : 0,
|
|
26
|
-
$background:
|
|
26
|
+
$background: t ? "RED" : "BLACK_1",
|
|
27
27
|
children: [
|
|
28
|
-
e && /* @__PURE__ */
|
|
29
|
-
n && /* @__PURE__ */
|
|
28
|
+
e && /* @__PURE__ */ r(S, { $renderAs: "ub3-bold", $color: "WHITE", children: e }),
|
|
29
|
+
n && /* @__PURE__ */ r(D, {})
|
|
30
30
|
]
|
|
31
31
|
}
|
|
32
|
-
), U = (e,
|
|
32
|
+
), U = (e, t) => {
|
|
33
33
|
if (typeof e == "number")
|
|
34
|
-
return
|
|
34
|
+
return t ? `${e}` : `${e}%`;
|
|
35
35
|
}, Y = ({
|
|
36
36
|
state: e,
|
|
37
|
-
isStudent:
|
|
37
|
+
isStudent: t,
|
|
38
38
|
accuracy: n,
|
|
39
39
|
dueDateTs: a,
|
|
40
40
|
isMilestone: c,
|
|
@@ -44,19 +44,19 @@ const P = 60 * 60 * 24, g = 60 * 60, $ = 60, O = ["NOT_STARTED"], M = (e, r, n)
|
|
|
44
44
|
a,
|
|
45
45
|
c,
|
|
46
46
|
s
|
|
47
|
-
), I = !!(s && E <= 24 && E >= 0), f = b(E, d, i, I),
|
|
47
|
+
), I = !!(s && E <= 24 && E >= 0), f = b(E, d, i, I), m = U(n, s);
|
|
48
48
|
if (!c && T && O.includes(e))
|
|
49
49
|
return {
|
|
50
|
-
icon: /* @__PURE__ */
|
|
50
|
+
icon: /* @__PURE__ */ r(
|
|
51
51
|
u,
|
|
52
52
|
{
|
|
53
53
|
renderAs: "primary",
|
|
54
54
|
position: "bottom",
|
|
55
55
|
tooltipItem: "Complete now",
|
|
56
56
|
zIndex: 10,
|
|
57
|
-
hidden: !
|
|
57
|
+
hidden: !t,
|
|
58
58
|
parentWidth: "fit-content",
|
|
59
|
-
children: /* @__PURE__ */
|
|
59
|
+
children: /* @__PURE__ */ r(l, { $background: "RED", $borderRadius: 16, $gapX: 0.24, $gutterX: 0.5, children: /* @__PURE__ */ r(S, { $renderAs: "ac4-black", $color: "WHITE", children: "OVERDUE" }) })
|
|
60
60
|
}
|
|
61
61
|
),
|
|
62
62
|
top: -10,
|
|
@@ -65,15 +65,15 @@ const P = 60 * 60 * 24, g = 60 * 60, $ = 60, O = ["NOT_STARTED"], M = (e, r, n)
|
|
|
65
65
|
switch (e) {
|
|
66
66
|
case "NOT_STARTED":
|
|
67
67
|
return {
|
|
68
|
-
icon: /* @__PURE__ */
|
|
68
|
+
icon: /* @__PURE__ */ r(
|
|
69
69
|
u,
|
|
70
70
|
{
|
|
71
71
|
renderAs: "primary",
|
|
72
72
|
position: "bottom",
|
|
73
73
|
tooltipItem: A > 1 ? `${A} days left` : "Complete it today",
|
|
74
74
|
zIndex: 10,
|
|
75
|
-
hidden: !
|
|
76
|
-
children:
|
|
75
|
+
hidden: !t,
|
|
76
|
+
children: _(f, I)
|
|
77
77
|
}
|
|
78
78
|
),
|
|
79
79
|
top: 0,
|
|
@@ -81,30 +81,30 @@ const P = 60 * 60 * 24, g = 60 * 60, $ = 60, O = ["NOT_STARTED"], M = (e, r, n)
|
|
|
81
81
|
};
|
|
82
82
|
case "LOCKED":
|
|
83
83
|
return {
|
|
84
|
-
icon: /* @__PURE__ */
|
|
84
|
+
icon: /* @__PURE__ */ r(h, { width: 32, height: 32 }),
|
|
85
85
|
top: -16,
|
|
86
86
|
right: -16
|
|
87
87
|
};
|
|
88
88
|
case "IN_PROGRESS":
|
|
89
89
|
return {
|
|
90
|
-
icon:
|
|
90
|
+
icon: _(f, I, !0)
|
|
91
91
|
};
|
|
92
92
|
case "COMPLETED":
|
|
93
93
|
return {
|
|
94
|
-
icon: /* @__PURE__ */
|
|
94
|
+
icon: /* @__PURE__ */ r(R, { Icon: N, label: m }),
|
|
95
95
|
top: -10,
|
|
96
96
|
right: -10
|
|
97
97
|
};
|
|
98
98
|
case "WAIT_FOR_REVIEW":
|
|
99
99
|
return {
|
|
100
|
-
icon: /* @__PURE__ */
|
|
100
|
+
icon: /* @__PURE__ */ r(
|
|
101
101
|
u,
|
|
102
102
|
{
|
|
103
103
|
renderAs: "primary",
|
|
104
104
|
position: "bottom",
|
|
105
|
-
tooltipItem:
|
|
105
|
+
tooltipItem: t ? "Waiting for teacher to review" : "Needs your review",
|
|
106
106
|
zIndex: 10,
|
|
107
|
-
children: /* @__PURE__ */
|
|
107
|
+
children: /* @__PURE__ */ r(R, { Icon: C })
|
|
108
108
|
}
|
|
109
109
|
),
|
|
110
110
|
top: -10,
|
|
@@ -112,7 +112,7 @@ const P = 60 * 60 * 24, g = 60 * 60, $ = 60, O = ["NOT_STARTED"], M = (e, r, n)
|
|
|
112
112
|
};
|
|
113
113
|
case "EXPIRED":
|
|
114
114
|
return {
|
|
115
|
-
icon: /* @__PURE__ */
|
|
115
|
+
icon: /* @__PURE__ */ r(l, { $background: "WHITE_5", $borderRadius: 16, $gapX: 0.24, $gutterX: 0.5, children: /* @__PURE__ */ r(S, { $renderAs: "ub3", $color: "BLACK_1", children: "EXPIRED" }) }),
|
|
116
116
|
top: -10,
|
|
117
117
|
right: -10
|
|
118
118
|
};
|
|
@@ -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}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 $background={showWarning ? 'RED' : 'BLACK_1'}\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":";;;;;;;;;;;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,IAAI,GAAGC,CAAW,MAAM,GAAGD,CAAS,MAGlDD,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,aAAaF,IAAc,QAAQ;AAAA,IAElC,UAAA;AAAA,MAAAE,uBACEI,GAAK,EAAA,WAAU,YAAW,QAAO,SAC/B,UACHJ,GAAA;AAAA,MAEDC,uBAAsBI,GAAW,EAAA;AAAA,IAAA;AAAA,EAAA;AAAA,GAKlCC,IAAkB,CAACC,GAA0BpB,MAAgD;AAC7F,MAAA,OAAOoB,KAAa;AAExB,WAAOpB,IAAgB,GAAGoB,CAAQ,KAAK,GAAGA,CAAQ;AACpD,GAEMC,IAA2B,CAAC;AAAA,EAChC,OAAOC;AAAA,EACP,WAAAC;AAAA,EACA,UAAAH;AAAA,EACA,WAAAtB;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,GAEIW,IAAc,CAAC,EAAEX,KAAiBQ,KAAa,MAAMA,KAAa,IAClEK,IAAkBH,EAAmBF,GAAWC,GAAaF,GAAUI,CAAW,GAClFa,IAAeL,EAAgBC,GAAUpB,CAAa;AAE5D,MAAI,CAACD,KAAeO,KAAaV,EAAmB,SAAS0B,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,4BAACV,GAAK,EAAA,WAAU,aAAY,QAAO,SAAQ,oBAE3C,CAAA,GACF;AAAA,QAAA;AAAA,MACF;AAAA,MAEF,KAAK;AAAA,MACL,OAAO;AAAA,IAAA;AAIX,UAAQK,GAAW;AAAA,IACjB,KAAK;AACI,aAAA;AAAA,QACL,MACE,gBAAAG;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,UAAS;AAAA,YACT,UAAS;AAAA,YACT,aACErB,IAAmB,IAAI,GAAGA,CAAgB,eAAe;AAAA,YAE3D,QAAQ;AAAA,YACR,QAAQ,CAACkB;AAAA,YAER,UAAAX,EAAsBC,GAAiBF,CAAW;AAAA,UAAA;AAAA,QACrD;AAAA,QAEF,KAAK;AAAA,QACL,OAAO;AAAA,MAAA;AAAA,IAEX,KAAK;AACI,aAAA;AAAA,QACL,MAAO,gBAAAc,EAAAG,GAAA,EAAU,OAAO,IAAI,QAAQ,IAAI;AAAA,QACxC,KAAK;AAAA,QACL,OAAO;AAAA,MAAA;AAAA,IAEX,KAAK;AACI,aAAA;AAAA,QACL,MAAMhB,EAAsBC,GAAiBF,GAAa,EAAI;AAAA,MAAA;AAAA,IAElE,KAAK;AACI,aAAA;AAAA,QACL,MAAO,gBAAAc,EAAAI,GAAA,EAAI,MAAMC,GAAY,OAAON,GAAc;AAAA,QAClD,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,4BAACV,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,GAEMe,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 $background={showWarning ? 'RED' : 'BLACK_1'}\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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"homework-controls.js","sources":["../../../../src/features/cue-canvas/bottombar/homework-controls.tsx"],"sourcesContent":["import { memo, useCallback, useState, type FC } from 'react';\n\nimport CheckIcon from '../../../assets/line-icons/icons/check';\nimport ShareIcon from '../../../assets/line-icons/icons/share';\nimport Button from '../../ui/buttons/button/button';\nimport FlexView from '../../ui/layout/flex-view';\nimport Separator from '../../ui/separator/separator';\nimport Text from '../../ui/text/text';\nimport { dataURIToBlob } from '../cue-canvas-helpers';\nimport { useCueCanvasActions } from '../hooks/use-cue-canvas-actions';\nimport type { IHomeWorkControllerProps } from './bottombar-types';\n\nconst HomeworkController: FC<IHomeWorkControllerProps> = props => {\n const { width, onSendImageToChat, onMarkAsResolved } = props;\n const { homeworkId, activeInstance, setHomeworkId } = useCueCanvasActions();\n const [isBusy, setIsBusy] = useState(false);\n\n const onSuccess = useCallback(() => {\n activeInstance?.clearCanvas();\n setHomeworkId(undefined);\n setIsBusy(false);\n }, [activeInstance, setHomeworkId]);\n\n const getBoardSnapshot = useCallback(async () => {\n if (!activeInstance) return;\n\n const snapshot = await activeInstance?.getCanvasAsImage();\n\n if (!snapshot) {\n return;\n }\n\n const blobdata = dataURIToBlob(snapshot);\n\n return [blobdata];\n }, [activeInstance]);\n\n const handleSendImageToChat = useCallback(async () => {\n const snapshot = await getBoardSnapshot();\n\n if (!homeworkId || !onSendImageToChat || !snapshot) return;\n\n onSendImageToChat?.(homeworkId, snapshot, onSuccess);\n }, [getBoardSnapshot, homeworkId, onSendImageToChat, onSuccess]);\n\n const handleMarkAsResolved = useCallback(() => {\n if (!homeworkId) return;\n setIsBusy(true);\n onMarkAsResolved?.(homeworkId, onSuccess);\n }, [homeworkId, onMarkAsResolved, onSuccess]);\n\n if (!homeworkId) return null;\n\n if (isBusy) {\n return (\n <FlexView\n $gapX={1}\n $gutterX={0.5}\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $width={width}\n $background=\"YELLOW_1\"\n >\n <Text $renderAs=\"body3\" $color=\"BLACK\">\n Resolving....\n </Text>\n </FlexView>\n );\n }\n\n return (\n <FlexView\n $flexDirection=\"row\"\n $gapX={1}\n $gutterX={0.5}\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $width={width}\n $background=\"YELLOW_1\"\n >\n <Button\n label=\"Mark as reolved\"\n onClick={handleMarkAsResolved}\n renderAs={'primary'}\n Icon={CheckIcon}\n busy={isBusy}\n />\n <Separator width={16} />\n <Button\n label=\"Send CueBoard image to chat\"\n onClick={handleSendImageToChat}\n renderAs={'primary'}\n Icon={ShareIcon}\n />\n </FlexView>\n );\n};\n\nexport default memo(HomeworkController);\n"],"names":["HomeworkController","props","width","onSendImageToChat","onMarkAsResolved","homeworkId","activeInstance","setHomeworkId","useCueCanvasActions","isBusy","setIsBusy","useState","onSuccess","useCallback","getBoardSnapshot","snapshot","dataURIToBlob","handleSendImageToChat","handleMarkAsResolved","jsx","FlexView","Text","jsxs","Button","CheckIcon","Separator","ShareIcon","
|
|
1
|
+
{"version":3,"file":"homework-controls.js","sources":["../../../../src/features/cue-canvas/bottombar/homework-controls.tsx"],"sourcesContent":["import { memo, useCallback, useState, type FC } from 'react';\n\nimport CheckIcon from '../../../assets/line-icons/icons/check';\nimport ShareIcon from '../../../assets/line-icons/icons/share';\nimport Button from '../../ui/buttons/button/button';\nimport FlexView from '../../ui/layout/flex-view';\nimport Separator from '../../ui/separator/separator';\nimport Text from '../../ui/text/text';\nimport { dataURIToBlob } from '../cue-canvas-helpers';\nimport { useCueCanvasActions } from '../hooks/use-cue-canvas-actions';\nimport type { IHomeWorkControllerProps } from './bottombar-types';\n\nconst HomeworkController: FC<IHomeWorkControllerProps> = props => {\n const { width, onSendImageToChat, onMarkAsResolved } = props;\n const { homeworkId, activeInstance, setHomeworkId } = useCueCanvasActions();\n const [isBusy, setIsBusy] = useState(false);\n\n const onSuccess = useCallback(() => {\n activeInstance?.clearCanvas();\n setHomeworkId(undefined);\n setIsBusy(false);\n }, [activeInstance, setHomeworkId]);\n\n const getBoardSnapshot = useCallback(async () => {\n if (!activeInstance) return;\n\n const snapshot = await activeInstance?.getCanvasAsImage();\n\n if (!snapshot) {\n return;\n }\n\n const blobdata = dataURIToBlob(snapshot);\n\n return [blobdata];\n }, [activeInstance]);\n\n const handleSendImageToChat = useCallback(async () => {\n const snapshot = await getBoardSnapshot();\n\n if (!homeworkId || !onSendImageToChat || !snapshot) return;\n\n onSendImageToChat?.(homeworkId, snapshot, onSuccess);\n }, [getBoardSnapshot, homeworkId, onSendImageToChat, onSuccess]);\n\n const handleMarkAsResolved = useCallback(() => {\n if (!homeworkId) return;\n setIsBusy(true);\n onMarkAsResolved?.(homeworkId, onSuccess);\n }, [homeworkId, onMarkAsResolved, onSuccess]);\n\n if (!homeworkId) return null;\n\n if (isBusy) {\n return (\n <FlexView\n $gapX={1}\n $gutterX={0.5}\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $width={width}\n $background=\"YELLOW_1\"\n >\n <Text $renderAs=\"body3\" $color=\"BLACK\">\n Resolving....\n </Text>\n </FlexView>\n );\n }\n\n return (\n <FlexView\n $flexDirection=\"row\"\n $gapX={1}\n $gutterX={0.5}\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $width={width}\n $background=\"YELLOW_1\"\n >\n <Button\n label=\"Mark as reolved\"\n onClick={handleMarkAsResolved}\n renderAs={'primary'}\n Icon={CheckIcon}\n busy={isBusy}\n />\n <Separator width={16} />\n <Button\n label=\"Send CueBoard image to chat\"\n onClick={handleSendImageToChat}\n renderAs={'primary'}\n Icon={ShareIcon}\n />\n </FlexView>\n );\n};\n\nexport default memo(HomeworkController);\n"],"names":["HomeworkController","props","width","onSendImageToChat","onMarkAsResolved","homeworkId","activeInstance","setHomeworkId","useCueCanvasActions","isBusy","setIsBusy","useState","onSuccess","useCallback","getBoardSnapshot","snapshot","dataURIToBlob","handleSendImageToChat","handleMarkAsResolved","jsx","FlexView","Text","jsxs","Button","CheckIcon","Separator","ShareIcon","HomeworkControls","memo"],"mappings":";;;;;;;;;;AAYA,MAAMA,IAAmD,CAASC,MAAA;AAChE,QAAM,EAAE,OAAAC,GAAO,mBAAAC,GAAmB,kBAAAC,EAAA,IAAqBH,GACjD,EAAE,YAAAI,GAAY,gBAAAC,GAAgB,eAAAC,MAAkBC,EAAoB,GACpE,CAACC,GAAQC,CAAS,IAAIC,EAAS,EAAK,GAEpCC,IAAYC,EAAY,MAAM;AAClC,IAAAP,KAAA,QAAAA,EAAgB,eAChBC,EAAc,MAAS,GACvBG,EAAU,EAAK;AAAA,EAAA,GACd,CAACJ,GAAgBC,CAAa,CAAC,GAE5BO,IAAmBD,EAAY,YAAY;AAC/C,QAAI,CAACP,EAAgB;AAEf,UAAAS,IAAW,OAAMT,KAAA,gBAAAA,EAAgB;AAEvC,WAAKS,IAME,CAFUC,EAAcD,CAAQ,CAEvB,IALd;AAAA,EAKc,GACf,CAACT,CAAc,CAAC,GAEbW,IAAwBJ,EAAY,YAAY;AAC9C,UAAAE,IAAW,MAAMD;AAEvB,IAAI,CAACT,KAAc,CAACF,KAAqB,CAACY,KAEtBZ,KAAA,QAAAA,EAAAE,GAAYU,GAAUH;AAAA,KACzC,CAACE,GAAkBT,GAAYF,GAAmBS,CAAS,CAAC,GAEzDM,IAAuBL,EAAY,MAAM;AAC7C,IAAKR,MACLK,EAAU,EAAI,GACdN,KAAA,QAAAA,EAAmBC,GAAYO;AAAA,EAC9B,GAAA,CAACP,GAAYD,GAAkBQ,CAAS,CAAC;AAExC,SAACP,IAEDI,IAEA,gBAAAU;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,OAAO;AAAA,MACP,UAAU;AAAA,MACV,aAAY;AAAA,MACZ,iBAAgB;AAAA,MAChB,QAAQlB;AAAA,MACR,aAAY;AAAA,MAEZ,4BAACmB,GAAK,EAAA,WAAU,SAAQ,QAAO,SAAQ,UAEvC,iBAAA;AAAA,IAAA;AAAA,EAAA,IAMJ,gBAAAC;AAAA,IAACF;AAAA,IAAA;AAAA,MACC,gBAAe;AAAA,MACf,OAAO;AAAA,MACP,UAAU;AAAA,MACV,aAAY;AAAA,MACZ,iBAAgB;AAAA,MAChB,QAAQlB;AAAA,MACR,aAAY;AAAA,MAEZ,UAAA;AAAA,QAAA,gBAAAiB;AAAA,UAACI;AAAA,UAAA;AAAA,YACC,OAAM;AAAA,YACN,SAASL;AAAA,YACT,UAAU;AAAA,YACV,MAAMM;AAAA,YACN,MAAMf;AAAA,UAAA;AAAA,QACR;AAAA,QACA,gBAAAU,EAACM,GAAU,EAAA,OAAO,GAAI,CAAA;AAAA,QACtB,gBAAAN;AAAA,UAACI;AAAA,UAAA;AAAA,YACC,OAAM;AAAA,YACN,SAASN;AAAA,YACT,UAAU;AAAA,YACV,MAAMS;AAAA,UAAA;AAAA,QACR;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,IA1CoB;AA6C1B,GAEeC,IAAAC,EAAK5B,CAAkB;"}
|
|
@@ -3,15 +3,15 @@ import { memo as p, useState as d, useMemo as f } from "react";
|
|
|
3
3
|
import c from "../../ui/layout/flex-view.js";
|
|
4
4
|
import o from "../../ui/separator/separator.js";
|
|
5
5
|
import l from "./homework/homework.js";
|
|
6
|
-
import
|
|
7
|
-
import { SideBarContainer as
|
|
6
|
+
import u from "./puzzles/puzzles.js";
|
|
7
|
+
import { SideBarContainer as s } from "./sidebar-styled.js";
|
|
8
8
|
import x from "./tiles/tile.js";
|
|
9
9
|
const S = ({ grade: m, hwRequests: t }) => {
|
|
10
10
|
const [r, i] = d(), a = f(() => r === "tile" ? "300px" : r === "homework" ? "248px" : r === "puzzle" ? "650px" : "auto", [r]);
|
|
11
|
-
return /* @__PURE__ */ e(
|
|
11
|
+
return /* @__PURE__ */ e(s, { $activeSidebar: r, $width: a, children: /* @__PURE__ */ n(c, { $flexDirection: "row", children: [
|
|
12
12
|
/* @__PURE__ */ e(x, { activeSidebar: r, setActiveSidebar: i }),
|
|
13
13
|
/* @__PURE__ */ e(o, { width: 8 }),
|
|
14
|
-
/* @__PURE__ */ e(
|
|
14
|
+
/* @__PURE__ */ e(u, { grade: m, activeSidebar: r, setActiveSidebar: i }),
|
|
15
15
|
/* @__PURE__ */ e(o, { width: 8 }),
|
|
16
16
|
t && t.length > 0 && /* @__PURE__ */ e(
|
|
17
17
|
l,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sidebar.js","sources":["../../../../src/features/cue-canvas/sidebar/sidebar.tsx"],"sourcesContent":["import { memo, useMemo, useState, type FC } from 'react';\n\nimport FlexView from '../../ui/layout/flex-view';\nimport Separator from '../../ui/separator/separator';\nimport Homework from './homework/homework';\nimport type { IHomeWorkHelpRequestModelWithStudentName } from './homework/homework-types';\nimport Puzzles from './puzzles/puzzles';\nimport type { TActiveSidebar } from './puzzles/puzzles-type';\nimport { SideBarContainer } from './sidebar-styled';\nimport TileBar from './tiles/tile';\n\ninterface ISidebar {\n grade?: string;\n hwRequests?: IHomeWorkHelpRequestModelWithStudentName[];\n}\n\nconst Sidebar: FC<ISidebar> = ({ grade, hwRequests }) => {\n const [activeSidebar, setActiveSidebar] = useState<TActiveSidebar | undefined>();\n\n const width = useMemo(() => {\n if (activeSidebar === 'tile') {\n return '300px';\n }\n\n if (activeSidebar === 'homework') {\n return '248px';\n }\n\n if (activeSidebar === 'puzzle') {\n return '650px';\n }\n\n return 'auto';\n }, [activeSidebar]);\n\n return (\n <SideBarContainer $activeSidebar={activeSidebar} $width={width}>\n <FlexView $flexDirection=\"row\">\n <TileBar activeSidebar={activeSidebar} setActiveSidebar={setActiveSidebar} />\n <Separator width={8} />\n <Puzzles grade={grade} activeSidebar={activeSidebar} setActiveSidebar={setActiveSidebar} />\n <Separator width={8} />\n\n {hwRequests && hwRequests.length > 0 && (\n <Homework\n activeSidebar={activeSidebar}\n setActiveSidebar={setActiveSidebar}\n hwRequests={hwRequests}\n />\n )}\n </FlexView>\n </SideBarContainer>\n );\n};\n\nexport default memo(Sidebar);\n"],"names":["Sidebar","grade","hwRequests","activeSidebar","setActiveSidebar","useState","width","useMemo","jsx","SideBarContainer","jsxs","FlexView","TileBar","Separator","Puzzles","Homework","
|
|
1
|
+
{"version":3,"file":"sidebar.js","sources":["../../../../src/features/cue-canvas/sidebar/sidebar.tsx"],"sourcesContent":["import { memo, useMemo, useState, type FC } from 'react';\n\nimport FlexView from '../../ui/layout/flex-view';\nimport Separator from '../../ui/separator/separator';\nimport Homework from './homework/homework';\nimport type { IHomeWorkHelpRequestModelWithStudentName } from './homework/homework-types';\nimport Puzzles from './puzzles/puzzles';\nimport type { TActiveSidebar } from './puzzles/puzzles-type';\nimport { SideBarContainer } from './sidebar-styled';\nimport TileBar from './tiles/tile';\n\ninterface ISidebar {\n grade?: string;\n hwRequests?: IHomeWorkHelpRequestModelWithStudentName[];\n}\n\nconst Sidebar: FC<ISidebar> = ({ grade, hwRequests }) => {\n const [activeSidebar, setActiveSidebar] = useState<TActiveSidebar | undefined>();\n\n const width = useMemo(() => {\n if (activeSidebar === 'tile') {\n return '300px';\n }\n\n if (activeSidebar === 'homework') {\n return '248px';\n }\n\n if (activeSidebar === 'puzzle') {\n return '650px';\n }\n\n return 'auto';\n }, [activeSidebar]);\n\n return (\n <SideBarContainer $activeSidebar={activeSidebar} $width={width}>\n <FlexView $flexDirection=\"row\">\n <TileBar activeSidebar={activeSidebar} setActiveSidebar={setActiveSidebar} />\n <Separator width={8} />\n <Puzzles grade={grade} activeSidebar={activeSidebar} setActiveSidebar={setActiveSidebar} />\n <Separator width={8} />\n\n {hwRequests && hwRequests.length > 0 && (\n <Homework\n activeSidebar={activeSidebar}\n setActiveSidebar={setActiveSidebar}\n hwRequests={hwRequests}\n />\n )}\n </FlexView>\n </SideBarContainer>\n );\n};\n\nexport default memo(Sidebar);\n"],"names":["Sidebar","grade","hwRequests","activeSidebar","setActiveSidebar","useState","width","useMemo","jsx","SideBarContainer","jsxs","FlexView","TileBar","Separator","Puzzles","Homework","Sidebar$1","memo"],"mappings":";;;;;;;;AAgBA,MAAMA,IAAwB,CAAC,EAAE,OAAAC,GAAO,YAAAC,QAAiB;AACvD,QAAM,CAACC,GAAeC,CAAgB,IAAIC,EAAqC,GAEzEC,IAAQC,EAAQ,MAChBJ,MAAkB,SACb,UAGLA,MAAkB,aACb,UAGLA,MAAkB,WACb,UAGF,QACN,CAACA,CAAa,CAAC;AAGhB,SAAA,gBAAAK,EAACC,KAAiB,gBAAgBN,GAAe,QAAQG,GACvD,UAAA,gBAAAI,EAACC,GAAS,EAAA,gBAAe,OACvB,UAAA;AAAA,IAAC,gBAAAH,EAAAI,GAAA,EAAQ,eAAAT,GAA8B,kBAAAC,EAAoC,CAAA;AAAA,IAC3E,gBAAAI,EAACK,GAAU,EAAA,OAAO,EAAG,CAAA;AAAA,IACpB,gBAAAL,EAAAM,GAAA,EAAQ,OAAAb,GAAc,eAAAE,GAA8B,kBAAAC,EAAoC,CAAA;AAAA,IACzF,gBAAAI,EAACK,GAAU,EAAA,OAAO,EAAG,CAAA;AAAA,IAEpBX,KAAcA,EAAW,SAAS,KACjC,gBAAAM;AAAA,MAACO;AAAA,MAAA;AAAA,QACC,eAAAZ;AAAA,QACA,kBAAAC;AAAA,QACA,YAAAF;AAAA,MAAA;AAAA,IACF;AAAA,EAAA,EAEJ,CAAA,EACF,CAAA;AAEJ,GAEec,IAAAC,EAAKjB,CAAO;"}
|
|
@@ -1,21 +1,25 @@
|
|
|
1
|
-
import { jsx as r, jsxs as
|
|
2
|
-
import { memo as
|
|
3
|
-
import
|
|
4
|
-
import { getUserTools as
|
|
5
|
-
import { useCueCanvasActions as
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
1
|
+
import { jsx as r, jsxs as c } from "react/jsx-runtime";
|
|
2
|
+
import { memo as l, useEffect as f } from "react";
|
|
3
|
+
import u from "../../ui/layout/flex-view.js";
|
|
4
|
+
import { getUserTools as p } from "../cue-canvas-helpers.js";
|
|
5
|
+
import { useCueCanvasActions as C } from "../hooks/use-cue-canvas-actions.js";
|
|
6
|
+
import b from "./color-picker-menu.js";
|
|
7
|
+
import v from "./tool.js";
|
|
8
|
+
import x from "./whiteboard-toolbar.js";
|
|
9
|
+
const T = l(function({
|
|
10
|
+
userType: t,
|
|
11
|
+
renderAs: e,
|
|
12
|
+
withGutter: a = !0
|
|
13
|
+
}) {
|
|
14
|
+
const i = p(t, e), { activeInstance: o, activeTool: m, activeColor: s } = C();
|
|
15
|
+
return f(() => {
|
|
16
|
+
o && (o.setColor(s), o.setTool(m));
|
|
17
|
+
}, [o]), e === "whiteboard" ? /* @__PURE__ */ r(x, { tools: i, userType: t, withGutter: a }) : /* @__PURE__ */ c(u, { $flexDirection: "row", $alignItems: "center", $justifyContent: "center", $flexGapX: 0.25, children: [
|
|
18
|
+
i.map((n) => /* @__PURE__ */ r(v, { tool: n, shouldAnimate: !0 }, n)),
|
|
19
|
+
/* @__PURE__ */ r(b, { userType: t, renderAs: "canvas" })
|
|
16
20
|
] });
|
|
17
|
-
}),
|
|
21
|
+
}), D = T;
|
|
18
22
|
export {
|
|
19
|
-
|
|
23
|
+
D as default
|
|
20
24
|
};
|
|
21
25
|
//# sourceMappingURL=toolbar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolbar.js","sources":["../../../../src/features/cue-canvas/toolbar/toolbar.tsx"],"sourcesContent":["import { memo, useEffect, type FC } from 'react';\n\nimport FlexView from '../../ui/layout/flex-view';\nimport { getUserTools } from '../cue-canvas-helpers';\nimport { useCueCanvasActions } from '../hooks/use-cue-canvas-actions';\nimport type { IToolbarProps } from '../types/toolbar';\nimport ColorPickerMenu from './color-picker-menu';\nimport Tool from './tool';\nimport WhiteboardToolbar from './whiteboard-toolbar';\n\nconst Toolbar: FC<IToolbarProps> = memo(function Toolbar({
|
|
1
|
+
{"version":3,"file":"toolbar.js","sources":["../../../../src/features/cue-canvas/toolbar/toolbar.tsx"],"sourcesContent":["import { memo, useEffect, type FC } from 'react';\n\nimport FlexView from '../../ui/layout/flex-view';\nimport { getUserTools } from '../cue-canvas-helpers';\nimport { useCueCanvasActions } from '../hooks/use-cue-canvas-actions';\nimport type { IToolbarProps } from '../types/toolbar';\nimport ColorPickerMenu from './color-picker-menu';\nimport Tool from './tool';\nimport WhiteboardToolbar from './whiteboard-toolbar';\n\nconst Toolbar: FC<IToolbarProps> = memo(function Toolbar({\n userType,\n renderAs,\n withGutter = true,\n}) {\n const tools = getUserTools(userType, renderAs);\n const { activeInstance: cueCanvas, activeTool, activeColor } = useCueCanvasActions();\n\n // This effect ensures that the selected tool and color are applied to the cueCanvas instance\n // whenever it changes. For example, if a user selects a tool and color, then navigates to a\n // different question (causing a new cueCanvas instance), the same tool and color will be set\n // on the new instance.\n // Disabling the exhaustive-deps rule here because we want to run this effect only\n // when the cueCanvas instance is set, not on every tool & color change.\n useEffect(() => {\n if (cueCanvas) {\n cueCanvas.setColor(activeColor);\n\n cueCanvas.setTool(activeTool);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [cueCanvas]);\n\n if (renderAs === 'whiteboard') {\n return <WhiteboardToolbar tools={tools} userType={userType} withGutter={withGutter} />;\n }\n\n return (\n <FlexView $flexDirection=\"row\" $alignItems=\"center\" $justifyContent=\"center\" $flexGapX={0.25}>\n {tools.map(tool => (\n <Tool tool={tool} key={tool} shouldAnimate />\n ))}\n <ColorPickerMenu userType={userType} renderAs=\"canvas\" />\n </FlexView>\n );\n});\n\nexport default Toolbar;\n"],"names":["Toolbar","memo","userType","renderAs","withGutter","tools","getUserTools","cueCanvas","activeTool","activeColor","useCueCanvasActions","useEffect","jsx","WhiteboardToolbar","jsxs","FlexView","Tool","tool","ColorPickerMenu","Toolbar$1"],"mappings":";;;;;;;;AAUA,MAAMA,IAA6BC,EAAK,SAAiB;AAAA,EACvD,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,YAAAC,IAAa;AACf,GAAG;AACK,QAAAC,IAAQC,EAAaJ,GAAUC,CAAQ,GACvC,EAAE,gBAAgBI,GAAW,YAAAC,GAAY,aAAAC,EAAA,IAAgBC;AAiB/D,SATAC,EAAU,MAAM;AACd,IAAIJ,MACFA,EAAU,SAASE,CAAW,GAE9BF,EAAU,QAAQC,CAAU;AAAA,EAC9B,GAEC,CAACD,CAAS,CAAC,GAEVJ,MAAa,eACP,gBAAAS,EAAAC,GAAA,EAAkB,OAAAR,GAAc,UAAAH,GAAoB,YAAAE,EAAwB,CAAA,IAIpF,gBAAAU,EAACC,KAAS,gBAAe,OAAM,aAAY,UAAS,iBAAgB,UAAS,WAAW,MACrF,UAAA;AAAA,IAAMV,EAAA,IAAI,OACR,gBAAAO,EAAAI,GAAA,EAAK,MAAAC,GAAuB,eAAa,GAAA,GAAnBA,CAAoB,CAC5C;AAAA,IACA,gBAAAL,EAAAM,GAAA,EAAgB,UAAAhB,GAAoB,UAAS,SAAS,CAAA;AAAA,EACzD,EAAA,CAAA;AAEJ,CAAC,GAEDiB,IAAenB;"}
|
|
@@ -1,20 +1,30 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import { memo as
|
|
3
|
-
import
|
|
4
|
-
import
|
|
1
|
+
import { jsxs as a, jsx as r } from "react/jsx-runtime";
|
|
2
|
+
import { memo as l } from "react";
|
|
3
|
+
import c from "../../ui/layout/flex-view.js";
|
|
4
|
+
import p from "./color-picker-menu.js";
|
|
5
5
|
import i from "./tool.js";
|
|
6
|
-
const
|
|
6
|
+
const T = l(function({
|
|
7
7
|
tools: e,
|
|
8
|
-
userType: t
|
|
8
|
+
userType: t,
|
|
9
|
+
withGutter: m
|
|
9
10
|
}) {
|
|
10
|
-
const
|
|
11
|
-
return /* @__PURE__ */
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
11
|
+
const n = e.slice(0, 4), s = e.slice(4);
|
|
12
|
+
return /* @__PURE__ */ a(
|
|
13
|
+
c,
|
|
14
|
+
{
|
|
15
|
+
$flexDirection: "row",
|
|
16
|
+
$alignItems: "center",
|
|
17
|
+
$position: "relative",
|
|
18
|
+
$flexGapX: m ? 0.25 : 0,
|
|
19
|
+
children: [
|
|
20
|
+
n.map((o) => /* @__PURE__ */ r(i, { tool: o, shouldAnimate: !0 }, o)),
|
|
21
|
+
/* @__PURE__ */ r(p, { userType: t, renderAs: "whiteboard" }),
|
|
22
|
+
s.map((o) => /* @__PURE__ */ r(i, { tool: o }, o))
|
|
23
|
+
]
|
|
24
|
+
}
|
|
25
|
+
);
|
|
16
26
|
});
|
|
17
27
|
export {
|
|
18
|
-
|
|
28
|
+
T as default
|
|
19
29
|
};
|
|
20
30
|
//# sourceMappingURL=whiteboard-toolbar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"whiteboard-toolbar.js","sources":["../../../../src/features/cue-canvas/toolbar/whiteboard-toolbar.tsx"],"sourcesContent":["import { memo, type FC } from 'react';\n\nimport FlexView from '../../ui/layout/flex-view';\nimport type { IWhiteboardToolbar } from '../types/toolbar';\nimport ColorPickerMenu from './color-picker-menu';\nimport Tool from './tool';\n\nconst WhiteboardToolbar: FC<IWhiteboardToolbar> = memo(function WhiteboardToolbar({\n tools,\n userType,\n}) {\n const writingTools = tools.slice(0, 4);\n const otherTools = tools.slice(4);\n\n return (\n <FlexView
|
|
1
|
+
{"version":3,"file":"whiteboard-toolbar.js","sources":["../../../../src/features/cue-canvas/toolbar/whiteboard-toolbar.tsx"],"sourcesContent":["import { memo, type FC } from 'react';\n\nimport FlexView from '../../ui/layout/flex-view';\nimport type { IWhiteboardToolbar } from '../types/toolbar';\nimport ColorPickerMenu from './color-picker-menu';\nimport Tool from './tool';\n\nconst WhiteboardToolbar: FC<IWhiteboardToolbar> = memo(function WhiteboardToolbar({\n tools,\n userType,\n withGutter,\n}) {\n const writingTools = tools.slice(0, 4);\n const otherTools = tools.slice(4);\n\n return (\n <FlexView\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $position=\"relative\"\n $flexGapX={withGutter ? 0.25 : 0}\n >\n {writingTools.map(tool => (\n <Tool tool={tool} key={tool} shouldAnimate={true} />\n ))}\n <ColorPickerMenu userType={userType} renderAs=\"whiteboard\" />\n {otherTools.map(tool => (\n <Tool tool={tool} key={tool} />\n ))}\n </FlexView>\n );\n});\n\nexport default WhiteboardToolbar;\n"],"names":["WhiteboardToolbar","memo","tools","userType","withGutter","writingTools","otherTools","jsxs","FlexView","jsx","Tool","tool","ColorPickerMenu"],"mappings":";;;;;AAOM,MAAAA,IAA4CC,EAAK,SAA2B;AAAA,EAChF,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,YAAAC;AACF,GAAG;AACD,QAAMC,IAAeH,EAAM,MAAM,GAAG,CAAC,GAC/BI,IAAaJ,EAAM,MAAM,CAAC;AAG9B,SAAA,gBAAAK;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,gBAAe;AAAA,MACf,aAAY;AAAA,MACZ,WAAU;AAAA,MACV,WAAWJ,IAAa,OAAO;AAAA,MAE9B,UAAA;AAAA,QAAaC,EAAA,IAAI,OACf,gBAAAI,EAAAC,GAAA,EAAK,MAAAC,GAAuB,eAAe,GAAA,GAArBA,CAA2B,CACnD;AAAA,QACA,gBAAAF,EAAAG,GAAA,EAAgB,UAAAT,GAAoB,UAAS,aAAa,CAAA;AAAA,QAC1DG,EAAW,IAAI,CAAAK,wBACbD,GAAK,EAAA,MAAAC,KAAiBA,CAAM,CAC9B;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGP,CAAC;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var O = /* @__PURE__ */ ((I) => (I.INFO_ABOUT_GAME_ACTIVITIES = "INFO_ABOUT_GAME_ACTIVITIES", I.
|
|
1
|
+
var O = /* @__PURE__ */ ((I) => (I.INFO_ABOUT_GAME_ACTIVITIES = "INFO_ABOUT_GAME_ACTIVITIES", I.CIRCLE_ONBOARDING_COMPLETED = "CIRCLE_ONBOARDING_COMPLETED", I))(O || {});
|
|
2
2
|
export {
|
|
3
3
|
O as TRACKING_ID_STUDENT
|
|
4
4
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracking-id-student.js","sources":["../../../../src/features/journey/tracking-id/tracking-id-student.ts"],"sourcesContent":["export enum TRACKING_ID_STUDENT {\n // circle\n INFO_ABOUT_GAME_ACTIVITIES = 'INFO_ABOUT_GAME_ACTIVITIES',\n
|
|
1
|
+
{"version":3,"file":"tracking-id-student.js","sources":["../../../../src/features/journey/tracking-id/tracking-id-student.ts"],"sourcesContent":["export enum TRACKING_ID_STUDENT {\n // circle\n INFO_ABOUT_GAME_ACTIVITIES = 'INFO_ABOUT_GAME_ACTIVITIES',\n CIRCLE_ONBOARDING_COMPLETED = 'CIRCLE_ONBOARDING_COMPLETED',\n}\n"],"names":["TRACKING_ID_STUDENT"],"mappings":"AAAY,IAAAA,sBAAAA,OAEVA,EAAA,6BAA6B,8BAC7BA,EAAA,8BAA8B,+BAHpBA,IAAAA,KAAA,CAAA,CAAA;"}
|
|
@@ -1,52 +1,52 @@
|
|
|
1
1
|
import { jsxs as t, jsx as e } from "react/jsx-runtime";
|
|
2
|
-
import { memo as
|
|
3
|
-
import { useTheme as
|
|
4
|
-
import
|
|
2
|
+
import { memo as x, useCallback as _, Fragment as A } from "react";
|
|
3
|
+
import { useTheme as S } from "styled-components";
|
|
4
|
+
import w from "../../../../ui/buttons/button/button.js";
|
|
5
5
|
import r from "../../../../ui/layout/flex-view.js";
|
|
6
|
-
import
|
|
7
|
-
import
|
|
6
|
+
import n from "../../../../ui/text/text.js";
|
|
7
|
+
import B from "../score-badge/score-badge.js";
|
|
8
8
|
import { Divider as E } from "./score-section-styled.js";
|
|
9
|
-
import
|
|
10
|
-
import { getQuestionStatusBgColor as
|
|
11
|
-
import { EQuestionState as
|
|
9
|
+
import p from "../../../../ui/separator/separator.js";
|
|
10
|
+
import { getQuestionStatusBgColor as T } from "../../math-fit-report-helpers.js";
|
|
11
|
+
import { EQuestionState as X } from "../../../math-fit-overview/math-fit-overview-types.js";
|
|
12
12
|
import { IS_APP_RUNNING_IN_RN as L } from "../../../../../constants/app-config.js";
|
|
13
13
|
import { EDeviceType as N } from "../../../../ui/theme/constants.js";
|
|
14
|
-
const
|
|
15
|
-
section:
|
|
16
|
-
sheet:
|
|
17
|
-
onReviewSection:
|
|
14
|
+
const W = x(function({
|
|
15
|
+
section: c,
|
|
16
|
+
sheet: s,
|
|
17
|
+
onReviewSection: l
|
|
18
18
|
}) {
|
|
19
19
|
const {
|
|
20
|
-
title:
|
|
21
|
-
score:
|
|
22
|
-
scoreChange:
|
|
23
|
-
sessionId:
|
|
20
|
+
title: h,
|
|
21
|
+
score: d,
|
|
22
|
+
scoreChange: g,
|
|
23
|
+
sessionId: $,
|
|
24
24
|
isIncomplete: o = !1,
|
|
25
|
-
sectionNumber:
|
|
26
|
-
topics:
|
|
27
|
-
} =
|
|
28
|
-
!o &&
|
|
29
|
-
}, [o,
|
|
25
|
+
sectionNumber: u,
|
|
26
|
+
topics: f
|
|
27
|
+
} = c, { device: b } = S(), m = b <= N.MOBILE, I = _(() => {
|
|
28
|
+
!o && c.sheet && l && l(s, $);
|
|
29
|
+
}, [o, l, c.sheet, s, $]);
|
|
30
30
|
return /* @__PURE__ */ t(r, { children: [
|
|
31
31
|
/* @__PURE__ */ t(r, { $flexDirection: "row", $alignItems: "center", children: [
|
|
32
|
-
/* @__PURE__ */ t(
|
|
33
|
-
|
|
32
|
+
/* @__PURE__ */ t(n, { $renderAs: "ab2-bold", $color: "BLACK_1", children: [
|
|
33
|
+
h,
|
|
34
34
|
":"
|
|
35
35
|
] }),
|
|
36
|
-
/* @__PURE__ */ e(
|
|
37
|
-
o ? /* @__PURE__ */ e(r, { $gutter: 3, $gap: 2.5, $background: "BLACK_5", children: /* @__PURE__ */ e(
|
|
36
|
+
/* @__PURE__ */ e(p, { width: 4 }),
|
|
37
|
+
o ? /* @__PURE__ */ e(r, { $gutter: 3, $gap: 2.5, $background: "BLACK_5", children: /* @__PURE__ */ e(n, { $renderAs: "ab4-bold", $color: "WHITE", children: "INCOMPLETE" }) }) : d && /* @__PURE__ */ e(B, { score: d, maxScore: 10, scoreChange: g })
|
|
38
38
|
] }),
|
|
39
|
-
/* @__PURE__ */ e(r, { $flexRowGapX: 0.5, $gapX: 0.75, children:
|
|
39
|
+
/* @__PURE__ */ e(r, { $flexRowGapX: 0.5, $gapX: 0.75, children: f.map((a, C) => /* @__PURE__ */ t(A, { children: [
|
|
40
40
|
/* @__PURE__ */ t(
|
|
41
41
|
r,
|
|
42
42
|
{
|
|
43
|
-
$flexDirection:
|
|
43
|
+
$flexDirection: m ? "column" : "row",
|
|
44
44
|
$justifyContent: "space-between",
|
|
45
|
-
$alignItems:
|
|
46
|
-
$flexRowGapX:
|
|
45
|
+
$alignItems: m ? "" : "center",
|
|
46
|
+
$flexRowGapX: m ? 0.5 : 0,
|
|
47
47
|
children: [
|
|
48
|
-
/* @__PURE__ */ e(
|
|
49
|
-
/* @__PURE__ */ e(r, { $flexGapX: 0.5, $flexDirection: "row", children:
|
|
48
|
+
/* @__PURE__ */ e(n, { $renderAs: "ub2", $color: o ? "BLACK_T_38" : "BLACK_1", children: a.name }),
|
|
49
|
+
/* @__PURE__ */ e(r, { $flexGapX: 0.5, $flexDirection: "row", children: a.miniGoal.items.map((i) => /* @__PURE__ */ e(
|
|
50
50
|
r,
|
|
51
51
|
{
|
|
52
52
|
$widthX: 1.25,
|
|
@@ -54,32 +54,32 @@ const z = _(function({
|
|
|
54
54
|
$alignItems: "center",
|
|
55
55
|
$justifyContent: "center",
|
|
56
56
|
$borderRadiusX: 2,
|
|
57
|
-
$background:
|
|
57
|
+
$background: T(i.state),
|
|
58
58
|
children: /* @__PURE__ */ e(
|
|
59
|
-
|
|
59
|
+
n,
|
|
60
60
|
{
|
|
61
61
|
$renderAs: "ub3",
|
|
62
|
-
$color:
|
|
63
|
-
children:
|
|
62
|
+
$color: i.state === X.SKIPPED ? "BLACK_T_38" : "WHITE",
|
|
63
|
+
children: i.order
|
|
64
64
|
}
|
|
65
65
|
)
|
|
66
66
|
},
|
|
67
|
-
|
|
67
|
+
i.item_reference
|
|
68
68
|
)) })
|
|
69
69
|
]
|
|
70
70
|
}
|
|
71
71
|
),
|
|
72
|
-
|
|
73
|
-
] },
|
|
72
|
+
C !== f.length - 1 && /* @__PURE__ */ e(E, {})
|
|
73
|
+
] }, a.name)) }),
|
|
74
74
|
!L && /* @__PURE__ */ t(r, { $alignItems: "center", children: [
|
|
75
|
-
/* @__PURE__ */ e(
|
|
75
|
+
/* @__PURE__ */ e(p, { heightX: 0.75 }),
|
|
76
76
|
/* @__PURE__ */ e(
|
|
77
|
-
|
|
77
|
+
w,
|
|
78
78
|
{
|
|
79
|
-
label: `Review Section ${
|
|
79
|
+
label: `Review Section ${u}`,
|
|
80
80
|
renderAs: o ? "secondary" : "primary",
|
|
81
81
|
size: "small",
|
|
82
|
-
onClick:
|
|
82
|
+
onClick: I,
|
|
83
83
|
disabled: o
|
|
84
84
|
}
|
|
85
85
|
)
|
|
@@ -87,6 +87,6 @@ const z = _(function({
|
|
|
87
87
|
] });
|
|
88
88
|
});
|
|
89
89
|
export {
|
|
90
|
-
|
|
90
|
+
W as default
|
|
91
91
|
};
|
|
92
92
|
//# sourceMappingURL=score-section.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"score-section.js","sources":["../../../../../../src/features/math-fit/math-fit-report/comps/score-section/score-section.tsx"],"sourcesContent":["import { Fragment, memo, useCallback, type FC } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport Button from '../../../../ui/buttons/button/button';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport Text from '../../../../ui/text/text';\nimport ScoreBadge from '../score-badge/score-badge';\nimport type { IScoreSectionProps } from './score-section-types';\nimport * as Styled from './score-section-styled';\nimport Separator from '../../../../ui/separator/separator';\nimport { getQuestionStatusBgColor } from '../../math-fit-report-helpers';\nimport { EQuestionState } from '../../../math-fit-overview/math-fit-overview-types';\nimport { IS_APP_RUNNING_IN_RN } from '../../../../../constants/app-config';\nimport { EDeviceType } from '../../../../ui/theme/constants';\n\nconst ScoreSection: FC<IScoreSectionProps> = memo(function ScoreSection({\n section,\n sheet,\n onReviewSection,\n}) {\n const {\n title,\n score,\n scoreChange,\n sessionId,\n isIncomplete = false,\n sectionNumber,\n topics,\n } = section;\n
|
|
1
|
+
{"version":3,"file":"score-section.js","sources":["../../../../../../src/features/math-fit/math-fit-report/comps/score-section/score-section.tsx"],"sourcesContent":["import { Fragment, memo, useCallback, type FC } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport Button from '../../../../ui/buttons/button/button';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport Text from '../../../../ui/text/text';\nimport ScoreBadge from '../score-badge/score-badge';\nimport type { IScoreSectionProps } from './score-section-types';\nimport * as Styled from './score-section-styled';\nimport Separator from '../../../../ui/separator/separator';\nimport { getQuestionStatusBgColor } from '../../math-fit-report-helpers';\nimport { EQuestionState } from '../../../math-fit-overview/math-fit-overview-types';\nimport { IS_APP_RUNNING_IN_RN } from '../../../../../constants/app-config';\nimport { EDeviceType } from '../../../../ui/theme/constants';\n\nconst ScoreSection: FC<IScoreSectionProps> = memo(function ScoreSection({\n section,\n sheet,\n onReviewSection,\n}) {\n const {\n title,\n score,\n scoreChange,\n sessionId,\n isIncomplete = false,\n sectionNumber,\n topics,\n } = section;\n const { device } = useTheme();\n const isMobile = device <= EDeviceType.MOBILE;\n const onClickReview = useCallback(() => {\n if (!isIncomplete && section.sheet && onReviewSection) {\n onReviewSection(sheet, sessionId);\n }\n }, [isIncomplete, onReviewSection, section.sheet, sheet, sessionId]);\n\n return (\n <FlexView>\n <FlexView $flexDirection=\"row\" $alignItems=\"center\">\n <Text $renderAs=\"ab2-bold\" $color=\"BLACK_1\">\n {title}:\n </Text>\n <Separator width={4} />\n {isIncomplete ? (\n <FlexView $gutter={3} $gap={2.5} $background=\"BLACK_5\">\n <Text $renderAs=\"ab4-bold\" $color=\"WHITE\">\n INCOMPLETE\n </Text>\n </FlexView>\n ) : (\n score && <ScoreBadge score={score} maxScore={10} scoreChange={scoreChange} />\n )}\n </FlexView>\n <FlexView $flexRowGapX={0.5} $gapX={0.75}>\n {topics.map((topic, index) => (\n <Fragment key={topic.name}>\n <FlexView\n $flexDirection={isMobile ? 'column' : 'row'}\n $justifyContent=\"space-between\"\n $alignItems={isMobile ? '' : 'center'}\n $flexRowGapX={isMobile ? 0.5 : 0}\n >\n <Text $renderAs=\"ub2\" $color={isIncomplete ? 'BLACK_T_38' : 'BLACK_1'}>\n {topic.name}\n </Text>\n <FlexView $flexGapX={0.5} $flexDirection=\"row\">\n {topic.miniGoal.items.map(question => (\n <FlexView\n key={question.item_reference}\n $widthX={1.25}\n $heightX={1.25}\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $borderRadiusX={2}\n $background={getQuestionStatusBgColor(question.state)}\n >\n <Text\n $renderAs=\"ub3\"\n $color={question.state === EQuestionState.SKIPPED ? 'BLACK_T_38' : 'WHITE'}\n >\n {question.order}\n </Text>\n </FlexView>\n ))}\n </FlexView>\n </FlexView>\n {index !== topics.length - 1 && <Styled.Divider />}\n </Fragment>\n ))}\n </FlexView>\n {!IS_APP_RUNNING_IN_RN && (\n <FlexView $alignItems=\"center\">\n <Separator heightX={0.75} />\n <Button\n label={`Review Section ${sectionNumber}`}\n renderAs={isIncomplete ? 'secondary' : 'primary'}\n size=\"small\"\n onClick={onClickReview}\n disabled={isIncomplete}\n />\n </FlexView>\n )}\n </FlexView>\n );\n});\n\nexport default ScoreSection;\n"],"names":["ScoreSection","memo","section","sheet","onReviewSection","title","score","scoreChange","sessionId","isIncomplete","sectionNumber","topics","device","useTheme","isMobile","EDeviceType","onClickReview","useCallback","FlexView","jsxs","Text","jsx","Separator","ScoreBadge","topic","index","Fragment","question","getQuestionStatusBgColor","EQuestionState","Styled.Divider","IS_APP_RUNNING_IN_RN","Button"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"milestone-config.js","sources":["../../../../../src/features/milestone/create/api/milestone-config.ts"],"sourcesContent":["import { createGetAPI } from '@cuemath/rest-api';\n\nimport { BASE_URL_V3 } from '../../../../constants/api';\nimport { stringify } from '../../../../helpers/query-string';\nimport type { IMilestoneConfig } from '../milestone-create-types';\n\nconst { useGet: useGetMileStoneConfig } = createGetAPI<\n IMilestoneConfig,\n { demo_type?:
|
|
1
|
+
{"version":3,"file":"milestone-config.js","sources":["../../../../../src/features/milestone/create/api/milestone-config.ts"],"sourcesContent":["import { createGetAPI } from '@cuemath/rest-api';\n\nimport { BASE_URL_V3 } from '../../../../constants/api';\nimport { stringify } from '../../../../helpers/query-string';\nimport type { IMilestoneConfig } from '../milestone-create-types';\n\nconst { useGet: useGetMileStoneConfig } = createGetAPI<\n IMilestoneConfig,\n { demo_type?: string } | undefined\n>({\n getURL: (_, query) => `${BASE_URL_V3}/milestone/config/${query ? `?${stringify(query)}` : ''}`,\n});\n\nexport { useGetMileStoneConfig };\n"],"names":["useGetMileStoneConfig","createGetAPI","_","query","BASE_URL_V3","stringify"],"mappings":";;;AAMA,MAAM,EAAE,QAAQA,EAAsB,IAAIC,EAGxC;AAAA,EACA,QAAQ,CAACC,GAAGC,MAAU,GAAGC,CAAW,qBAAqBD,IAAQ,IAAIE,EAAUF,CAAK,CAAC,KAAK,EAAE;AAC9F,CAAC;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as e } from "react/jsx-runtime";
|
|
2
2
|
import { memo as p, useCallback as f, useEffect as d } from "react";
|
|
3
|
-
import { useGetSessionReports as u } from "../../../trial-session/api/trial-
|
|
3
|
+
import { useGetSessionReports as u } from "../../../trial-session/api/trial-session-report.js";
|
|
4
4
|
import l from "../../../trial-session/comps/session-report/report-information/report-information.js";
|
|
5
5
|
import c from "../../../ui/error/error.js";
|
|
6
6
|
import h from "../../../ui/loader/app-loader/app-loader.js";
|