@cuemath/leap 3.5.66-link0 → 3.5.67-as1

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 (170) hide show
  1. package/dist/features/analytics-events/platform-events-student.js +1 -1
  2. package/dist/features/analytics-events/platform-events-student.js.map +1 -1
  3. package/dist/features/chapters-v2/comps/node-card/node-card-types.js.map +1 -1
  4. package/dist/features/chapters-v2/constants/node-constants.js +5 -4
  5. package/dist/features/chapters-v2/constants/node-constants.js.map +1 -1
  6. package/dist/features/cue-canvas/bottombar/homework-controls.js.map +1 -1
  7. package/dist/features/cue-canvas/sidebar/sidebar.js +4 -4
  8. package/dist/features/cue-canvas/sidebar/sidebar.js.map +1 -1
  9. package/dist/features/cue-canvas/toolbar/toolbar.js +17 -21
  10. package/dist/features/cue-canvas/toolbar/toolbar.js.map +1 -1
  11. package/dist/features/cue-canvas/toolbar/whiteboard-toolbar.js +13 -23
  12. package/dist/features/cue-canvas/toolbar/whiteboard-toolbar.js.map +1 -1
  13. package/dist/features/homework/homework-card-view.js +30 -29
  14. package/dist/features/homework/homework-card-view.js.map +1 -1
  15. package/dist/features/homework/homework-card.js +168 -161
  16. package/dist/features/homework/homework-card.js.map +1 -1
  17. package/dist/features/homework/hw-card-list/hw-card-list-view.js +75 -74
  18. package/dist/features/homework/hw-card-list/hw-card-list-view.js.map +1 -1
  19. package/dist/features/homework/utils.js +65 -41
  20. package/dist/features/homework/utils.js.map +1 -1
  21. package/dist/features/journey/hooks/use-home-page-journey/home-page-homeworks-mock.js +10 -5
  22. package/dist/features/journey/hooks/use-home-page-journey/home-page-homeworks-mock.js.map +1 -1
  23. package/dist/features/journey/hooks/use-home-page-journey/use-home-page-journey.js +2 -1
  24. package/dist/features/journey/hooks/use-home-page-journey/use-home-page-journey.js.map +1 -1
  25. package/dist/features/math-fit/math-fit-overview/math-fit-overview-helpers.js +35 -26
  26. package/dist/features/math-fit/math-fit-overview/math-fit-overview-helpers.js.map +1 -1
  27. package/dist/features/math-fit/math-fit-overview/math-fit-overview.js +70 -49
  28. package/dist/features/math-fit/math-fit-overview/math-fit-overview.js.map +1 -1
  29. package/dist/features/math-fit/math-fit-report/math-fit-report.js +37 -27
  30. package/dist/features/math-fit/math-fit-report/math-fit-report.js.map +1 -1
  31. package/dist/features/math-fit/mathfit-events.js +7 -0
  32. package/dist/features/math-fit/mathfit-events.js.map +1 -0
  33. package/dist/features/milestone/create/api/milestone-config.js.map +1 -1
  34. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-view.js +40 -36
  35. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-view.js.map +1 -1
  36. package/dist/features/parent-dashboard/modals/trial-report/trial-report.js +1 -1
  37. package/dist/features/parent-dashboard/modals/trial-report/trial-report.js.map +1 -1
  38. package/dist/features/sheet-v2/resource-list/resource-list.js +39 -35
  39. package/dist/features/sheet-v2/resource-list/resource-list.js.map +1 -1
  40. package/dist/features/trial-session/api/trial-home.js +16 -10
  41. package/dist/features/trial-session/api/trial-home.js.map +1 -1
  42. package/dist/features/trial-session/comps/background-grid/background-grid-utils.js +50 -62
  43. package/dist/features/trial-session/comps/background-grid/background-grid-utils.js.map +1 -1
  44. package/dist/features/trial-session/comps/class-preference/class-preference-styled.js +14 -5
  45. package/dist/features/trial-session/comps/class-preference/class-preference-styled.js.map +1 -1
  46. package/dist/features/trial-session/comps/class-preference/class-preference.js +53 -55
  47. package/dist/features/trial-session/comps/class-preference/class-preference.js.map +1 -1
  48. package/dist/features/trial-session/comps/communication-slide/communication-slide-constants.js +2 -3
  49. package/dist/features/trial-session/comps/communication-slide/communication-slide-constants.js.map +1 -1
  50. package/dist/features/trial-session/comps/confirmation-modal/hooks/use-confirmation-modal.js +27 -27
  51. package/dist/features/trial-session/comps/confirmation-modal/hooks/use-confirmation-modal.js.map +1 -1
  52. package/dist/features/trial-session/comps/learning-session/learning-session-styled.js +18 -19
  53. package/dist/features/trial-session/comps/learning-session/learning-session-styled.js.map +1 -1
  54. package/dist/features/trial-session/comps/learning-session/learning-session.js +43 -34
  55. package/dist/features/trial-session/comps/learning-session/learning-session.js.map +1 -1
  56. package/dist/features/trial-session/comps/navigation-bar/index.js +58 -56
  57. package/dist/features/trial-session/comps/navigation-bar/index.js.map +1 -1
  58. package/dist/features/trial-session/comps/offering-information/offering-information-constants.js +6 -29
  59. package/dist/features/trial-session/comps/offering-information/offering-information-constants.js.map +1 -1
  60. package/dist/features/trial-session/comps/offering-information/offering-information.js +64 -74
  61. package/dist/features/trial-session/comps/offering-information/offering-information.js.map +1 -1
  62. package/dist/features/trial-session/comps/school-goals/school-goals-styled.js +9 -10
  63. package/dist/features/trial-session/comps/school-goals/school-goals-styled.js.map +1 -1
  64. package/dist/features/trial-session/comps/school-goals/school-goals-view.js +39 -40
  65. package/dist/features/trial-session/comps/school-goals/school-goals-view.js.map +1 -1
  66. package/dist/features/trial-session/comps/school-goals/school-goals.js +37 -39
  67. package/dist/features/trial-session/comps/school-goals/school-goals.js.map +1 -1
  68. package/dist/features/trial-session/comps/session-insights/session-insights-styled.js +20 -12
  69. package/dist/features/trial-session/comps/session-insights/session-insights-styled.js.map +1 -1
  70. package/dist/features/trial-session/comps/session-insights/session-insights.js +63 -64
  71. package/dist/features/trial-session/comps/session-insights/session-insights.js.map +1 -1
  72. package/dist/features/trial-session/comps/session-overview/session-overview-styled.js +13 -13
  73. package/dist/features/trial-session/comps/session-overview/session-overview-styled.js.map +1 -1
  74. package/dist/features/trial-session/comps/session-overview/session-overview-utils.js +4 -23
  75. package/dist/features/trial-session/comps/session-overview/session-overview-utils.js.map +1 -1
  76. package/dist/features/trial-session/comps/session-overview/session-overview.js +20 -20
  77. package/dist/features/trial-session/comps/session-overview/session-overview.js.map +1 -1
  78. package/dist/features/trial-session/comps/session-report/report-404/report-404.js +16 -15
  79. package/dist/features/trial-session/comps/session-report/report-404/report-404.js.map +1 -1
  80. package/dist/features/trial-session/comps/session-report/session-report.js +33 -35
  81. package/dist/features/trial-session/comps/session-report/session-report.js.map +1 -1
  82. package/dist/features/trial-session/comps/student-enrichment/student-enrichment-styled.js +16 -9
  83. package/dist/features/trial-session/comps/student-enrichment/student-enrichment-styled.js.map +1 -1
  84. package/dist/features/trial-session/comps/student-enrichment/student-enrichment.js +37 -39
  85. package/dist/features/trial-session/comps/student-enrichment/student-enrichment.js.map +1 -1
  86. package/dist/features/trial-session/comps/student-feedback/student-feedback-styled.js +9 -10
  87. package/dist/features/trial-session/comps/student-feedback/student-feedback-styled.js.map +1 -1
  88. package/dist/features/trial-session/comps/student-info/student-info-styled.js +11 -26
  89. package/dist/features/trial-session/comps/student-info/student-info-styled.js.map +1 -1
  90. package/dist/features/trial-session/comps/student-info/student-info.js +78 -113
  91. package/dist/features/trial-session/comps/student-info/student-info.js.map +1 -1
  92. package/dist/features/trial-session/comps/student-personalization/student-personalization-styled.js +12 -3
  93. package/dist/features/trial-session/comps/student-personalization/student-personalization-styled.js.map +1 -1
  94. package/dist/features/trial-session/comps/student-personalization/student-personalization.js +33 -34
  95. package/dist/features/trial-session/comps/student-personalization/student-personalization.js.map +1 -1
  96. package/dist/features/trial-session/comps/student-profile/student-profile.js +44 -45
  97. package/dist/features/trial-session/comps/student-profile/student-profile.js.map +1 -1
  98. package/dist/features/trial-session/comps/teacher-intro/teacher-intro.js +8 -9
  99. package/dist/features/trial-session/comps/teacher-intro/teacher-intro.js.map +1 -1
  100. package/dist/features/trial-session/comps/test-prep/test-prep-styled.js +19 -11
  101. package/dist/features/trial-session/comps/test-prep/test-prep-styled.js.map +1 -1
  102. package/dist/features/trial-session/comps/test-prep/test-prep.js +29 -31
  103. package/dist/features/trial-session/comps/test-prep/test-prep.js.map +1 -1
  104. package/dist/features/trial-session/comps/worksheet/worksheet.js +33 -35
  105. package/dist/features/trial-session/comps/worksheet/worksheet.js.map +1 -1
  106. package/dist/features/trial-session/context/trial-session-context.js +0 -2
  107. package/dist/features/trial-session/context/trial-session-context.js.map +1 -1
  108. package/dist/features/trial-session/helper.js +64 -70
  109. package/dist/features/trial-session/helper.js.map +1 -1
  110. package/dist/features/trial-session/hooks/use-trial-session-navigation.js +158 -190
  111. package/dist/features/trial-session/hooks/use-trial-session-navigation.js.map +1 -1
  112. package/dist/features/trial-session/right-panel/right-panel-styled.js +8 -8
  113. package/dist/features/trial-session/right-panel/right-panel-styled.js.map +1 -1
  114. package/dist/features/trial-session/right-panel/slide-components-map.js +36 -42
  115. package/dist/features/trial-session/right-panel/slide-components-map.js.map +1 -1
  116. package/dist/features/trial-session/trial-session-constants.js +18 -22
  117. package/dist/features/trial-session/trial-session-constants.js.map +1 -1
  118. package/dist/features/trial-session/trial-session-types.js.map +1 -1
  119. package/dist/features/trial-session/trial-session-view.js +77 -82
  120. package/dist/features/trial-session/trial-session-view.js.map +1 -1
  121. package/dist/features/trial-session/trial-session.js +38 -38
  122. package/dist/features/trial-session/trial-session.js.map +1 -1
  123. package/dist/features/ui/inputs/checkbox-input/checkbox-input.js +21 -21
  124. package/dist/features/ui/inputs/checkbox-input/checkbox-input.js.map +1 -1
  125. package/dist/features/ui/inputs/checkbox-input-list/checkbox-input-list.js +12 -12
  126. package/dist/features/ui/inputs/checkbox-input-list/checkbox-input-list.js.map +1 -1
  127. package/dist/features/ui/theme/clrs.js +0 -1
  128. package/dist/features/ui/theme/clrs.js.map +1 -1
  129. package/dist/features/worksheet/worksheet/worksheet-helpers.js +37 -38
  130. package/dist/features/worksheet/worksheet/worksheet-helpers.js.map +1 -1
  131. package/dist/index.d.ts +8 -10
  132. package/dist/index.js +382 -380
  133. package/dist/index.js.map +1 -1
  134. package/package.json +1 -1
  135. package/dist/features/trial-session/api/trial-session-report.js +0 -16
  136. package/dist/features/trial-session/api/trial-session-report.js.map +0 -1
  137. package/dist/features/trial-session/api/trial-topics.js +0 -9
  138. package/dist/features/trial-session/api/trial-topics.js.map +0 -1
  139. package/dist/features/trial-session/comps/session-progress-summary/session-progress-summary-styled.js +0 -61
  140. package/dist/features/trial-session/comps/session-progress-summary/session-progress-summary-styled.js.map +0 -1
  141. package/dist/features/trial-session/comps/session-progress-summary/session-progress-summary-types.js +0 -5
  142. package/dist/features/trial-session/comps/session-progress-summary/session-progress-summary-types.js.map +0 -1
  143. package/dist/features/trial-session/comps/session-progress-summary/session-progress-summary-view.js +0 -135
  144. package/dist/features/trial-session/comps/session-progress-summary/session-progress-summary-view.js.map +0 -1
  145. package/dist/features/trial-session/comps/session-progress-summary/session-progress-summary.js +0 -53
  146. package/dist/features/trial-session/comps/session-progress-summary/session-progress-summary.js.map +0 -1
  147. package/dist/features/trial-session/comps/student-info/student-info-constants.js +0 -35
  148. package/dist/features/trial-session/comps/student-info/student-info-constants.js.map +0 -1
  149. package/dist/features/trial-session/comps/student-info/student-info-helpers.js +0 -12
  150. package/dist/features/trial-session/comps/student-info/student-info-helpers.js.map +0 -1
  151. package/dist/features/trial-session/comps/topic-selection/topic-selection-styled.js +0 -42
  152. package/dist/features/trial-session/comps/topic-selection/topic-selection-styled.js.map +0 -1
  153. package/dist/features/trial-session/comps/topic-selection/topic-selection.js +0 -84
  154. package/dist/features/trial-session/comps/topic-selection/topic-selection.js.map +0 -1
  155. package/dist/features/trial-session/comps/whiteboard/whiteboard-styled.js +0 -21
  156. package/dist/features/trial-session/comps/whiteboard/whiteboard-styled.js.map +0 -1
  157. package/dist/features/trial-session/comps/whiteboard/whiteboard.js +0 -99
  158. package/dist/features/trial-session/comps/whiteboard/whiteboard.js.map +0 -1
  159. package/dist/features/worksheet/worksheet/mocks/activity.js +0 -6
  160. package/dist/features/worksheet/worksheet/mocks/activity.js.map +0 -1
  161. package/dist/features/worksheet/worksheet/mocks/signed-requests.js +0 -5
  162. package/dist/features/worksheet/worksheet/mocks/signed-requests.js.map +0 -1
  163. package/dist/features/worksheet/worksheet/stories/use-canvas-sync-broker-story.js +0 -57
  164. package/dist/features/worksheet/worksheet/stories/use-canvas-sync-broker-story.js.map +0 -1
  165. package/dist/features/worksheet/worksheet/stories/worksheet-story-container.js +0 -263
  166. package/dist/features/worksheet/worksheet/stories/worksheet-story-container.js.map +0 -1
  167. package/dist/features/worksheet/worksheet/stories/worksheet-student.js +0 -177
  168. package/dist/features/worksheet/worksheet/stories/worksheet-student.js.map +0 -1
  169. package/dist/features/worksheet/worksheet/stories/worksheet-teacher.js +0 -268
  170. package/dist/features/worksheet/worksheet/stories/worksheet-teacher.js.map +0 -1
@@ -1,299 +1,306 @@
1
- import { jsxs as j, jsx as t } from "react/jsx-runtime";
2
- import { memo as ue, useRef as z, useCallback as T, useMemo as fe } from "react";
3
- import I from "../../assets/line-icons/icons/eye2.js";
4
- import he from "../../assets/line-icons/icons/home2.js";
5
- import de from "../../assets/line-icons/icons/more-vertical.js";
6
- import B from "../../assets/line-icons/icons/redo.js";
7
- import { ECardType as K } from "../chapters-v2/comps/node-card/node-card-types.js";
8
- import Z from "../ui/arrow-tooltip/arrow-tooltip.js";
9
- import me from "../ui/buttons/clickable/clickable.js";
10
- import A from "../ui/hooks/use-context-menu-click-handler.js";
11
- import pe from "../ui/layout/flex-view.js";
12
- import Y from "./card-menu-options.js";
13
- import be from "./homework-card-view.js";
14
- import { EHWCardListEntityType as we } from "./hw-card-list/hw-card-list-types.js";
15
- import { CardContainer as Ce, MenuWrapper as Ee, CardKebabMenuWrapper as Me, BlurContainer as Te, BlurFlexView as ye, StyledMinus2Icon as _e } from "./styles.js";
16
- import { getCardAnalyticProps as $e } from "./utils.js";
17
- const ke = ({
1
+ import { jsxs as z, jsx as i } from "react/jsx-runtime";
2
+ import { memo as fr, useRef as B, useCallback as _, useMemo as hr } from "react";
3
+ import K from "../../assets/line-icons/icons/eye2.js";
4
+ import dr from "../../assets/line-icons/icons/home2.js";
5
+ import mr from "../../assets/line-icons/icons/more-vertical.js";
6
+ import Z from "../../assets/line-icons/icons/redo.js";
7
+ import { ECardType as A } from "../chapters-v2/comps/node-card/node-card-types.js";
8
+ import I from "../ui/arrow-tooltip/arrow-tooltip.js";
9
+ import pr from "../ui/buttons/clickable/clickable.js";
10
+ import Y from "../ui/hooks/use-context-menu-click-handler.js";
11
+ import br from "../ui/layout/flex-view.js";
12
+ import q from "./card-menu-options.js";
13
+ import wr from "./homework-card-view.js";
14
+ import { EHWCardListEntityType as Cr } from "./hw-card-list/hw-card-list-types.js";
15
+ import { CardContainer as Er, MenuWrapper as Mr, CardKebabMenuWrapper as Tr, BlurContainer as _r, BlurFlexView as $r, StyledMinus2Icon as kr } from "./styles.js";
16
+ import { getCardAnalyticProps as Rr } from "./utils.js";
17
+ const vr = ({
18
18
  // callbacks
19
- nodeData: e,
20
- onNodeAttempt: y,
19
+ nodeData: r,
20
+ onNodeAttempt: $,
21
21
  onNodeReattempt: m,
22
- onNodeReview: s,
22
+ onNodeReview: a,
23
23
  onNodeUnassign: p,
24
- onNodeView: _,
24
+ onNodeView: k,
25
25
  onNodeAssignAsHomework: b,
26
- onCardClick: a,
27
- entityId: l,
28
- entityType: v,
29
- header: q,
30
- homeworkId: i,
31
- isInQueue: g,
32
- puzzleHWCardRef: G,
33
- mathFitCardRef: J,
34
- renderAs: S,
26
+ onCardClick: l,
27
+ entityId: t,
28
+ entityType: w,
29
+ header: G,
30
+ homeworkId: n,
31
+ isInQueue: S,
32
+ puzzleHWCardRef: J,
33
+ mathFitCardRef: U,
34
+ renderAs: y,
35
35
  score: Q,
36
- shouldOpenOnRight: U,
36
+ shouldOpenOnRight: D,
37
37
  state: d,
38
- imageUrl: D,
39
- studentId: O,
40
- subHeader: N,
41
- userMilestoneId: ee,
42
- userType: V
38
+ totalQuestions: O,
39
+ imageUrl: N,
40
+ studentId: V,
41
+ subHeader: rr,
42
+ userMilestoneId: er,
43
+ userType: F
43
44
  }) => {
44
- const c = S === "homework", { node_type: w, permissions: re, user_node_id: u } = e, r = ee || "", F = w === "PUZZLE_CARD", n = v === we.MATHFIT_TEST, W = d === "LOCKED", $ = z(null), k = z(null), { menuVisible: H, onMenuClick: te } = A($), { menuVisible: ie, onMenuClick: L } = A(k), {
45
- can_start: C,
46
- can_resume: E,
45
+ const o = y === "homework", { node_type: C, permissions: ir, user_node_id: u } = r, e = er || "", W = C === "PUZZLE_CARD", c = w === Cr.MATHFIT_TEST, H = d === "LOCKED", R = B(null), v = B(null), { menuVisible: L, onMenuClick: tr } = Y(R), { menuVisible: nr, onMenuClick: x } = Y(v), {
46
+ can_start: E,
47
+ can_resume: M,
47
48
  can_review: f,
48
- can_unassign: ne,
49
- can_reset: x,
50
- can_assign_as_homework: ce
51
- } = re, o = V === "STUDENT", M = T(() => {
49
+ can_unassign: cr,
50
+ can_reset: P,
51
+ can_assign_as_homework: or
52
+ } = ir, s = F === "STUDENT", T = _(() => {
52
53
  if (f) {
53
- if (typeof s != "function")
54
+ if (typeof a != "function")
54
55
  throw new Error("onReview must be a function");
55
56
  if (!u)
56
57
  throw new Error("user node id must be present to review the sheet");
57
- s(e, r);
58
+ a(r, e);
58
59
  return;
59
60
  }
60
- }, [f, s, u, e, r]), oe = T(() => {
61
- if (n && l) {
62
- if (typeof a != "function")
61
+ }, [f, a, u, r, e]), sr = _(() => {
62
+ if (c && t) {
63
+ if (typeof l != "function")
63
64
  throw new Error("onCardClick must be a function for MathFit cards");
64
- a({ entityId: l, type: K.MATHFIT });
65
+ l({ entityId: t, type: A.MATHFIT });
65
66
  return;
66
67
  }
67
- if (C || E) {
68
- if (typeof y != "function")
68
+ if (E || M) {
69
+ if (typeof $ != "function")
69
70
  throw new Error("onNodeAttempt must be a function");
70
- y(e, r, i);
71
+ $(r, e, n);
71
72
  return;
72
73
  }
73
- if (!c) {
74
- L();
74
+ if (!o) {
75
+ x();
75
76
  return;
76
77
  }
77
- M();
78
+ T();
78
79
  }, [
80
+ M,
79
81
  E,
80
- C,
81
- l,
82
- i,
83
- c,
82
+ t,
84
83
  n,
85
- r,
84
+ o,
85
+ c,
86
86
  e,
87
- a,
88
- y,
89
- L,
90
- M
91
- ]), R = T(() => {
92
- if (n && l) {
93
- if (typeof a != "function")
87
+ r,
88
+ l,
89
+ $,
90
+ x,
91
+ T
92
+ ]), g = _(() => {
93
+ if (c && t) {
94
+ if (typeof l != "function")
94
95
  throw new Error("onCardClick must be a function for MathFit cards");
95
- a({ entityId: l, type: K.MATHFIT });
96
+ l({ entityId: t, type: A.MATHFIT });
96
97
  return;
97
98
  }
98
99
  if (f) {
99
- if (typeof s != "function")
100
+ if (typeof a != "function")
100
101
  throw new Error("onNodeReview must be a function");
101
102
  if (!u)
102
103
  throw new Error("user node id must be present to review the sheet");
103
- s(e, r, i);
104
+ a(r, e, n);
104
105
  return;
105
106
  }
106
- if (typeof _ != "function")
107
+ if (typeof k != "function")
107
108
  throw new Error("onNodeView must be a function");
108
- _(e, r);
109
+ k(r, e);
109
110
  }, [
110
111
  f,
111
- l,
112
- i,
112
+ t,
113
113
  n,
114
- r,
114
+ c,
115
115
  e,
116
+ r,
117
+ l,
116
118
  a,
117
- s,
118
- _,
119
+ k,
119
120
  u
120
- ]), h = T(
121
- (X) => {
122
- switch (X) {
121
+ ]), h = _(
122
+ (j) => {
123
+ switch (j) {
123
124
  case "teacher-card-view":
124
- R();
125
+ g();
125
126
  return;
126
127
  case "student-card-view":
127
- M();
128
+ T();
128
129
  return;
129
130
  case "teacher-card-unassign":
130
- p == null || p(e, r, i);
131
+ p == null || p(r, e, n);
131
132
  return;
132
133
  case "student-card-reattempt":
133
134
  case "teacher-card-redo":
134
- m == null || m(e, r);
135
+ m == null || m(r, e);
135
136
  return;
136
137
  case "teacher-card-assign-as-hw":
137
- b == null || b(e, r);
138
+ b == null || b(r, e);
138
139
  return;
139
140
  default:
140
- throw new Error(`No callback function for ${X}`);
141
+ throw new Error(`No callback function for ${j}`);
141
142
  }
142
143
  },
143
144
  [
144
- i,
145
- r,
145
+ n,
146
146
  e,
147
+ r,
147
148
  b,
148
149
  m,
149
150
  p,
150
- M,
151
- R
151
+ T,
152
+ g
152
153
  ]
153
- ), se = [
154
+ ), ar = [
154
155
  {
155
156
  id: "teacher-card-view",
156
157
  label: f ? "Review" : "View",
157
- icon: I,
158
+ icon: K,
158
159
  disabled: !1,
159
160
  onClick: h
160
161
  },
161
162
  {
162
163
  id: "teacher-card-unassign",
163
164
  label: "Unassign",
164
- icon: _e,
165
- disabled: c ? w === "MASTERY" : !ne,
165
+ icon: kr,
166
+ disabled: o ? C === "MASTERY" : !cr,
166
167
  onClick: h
167
168
  },
168
169
  {
169
170
  id: "teacher-card-redo",
170
171
  label: "Redo",
171
- icon: B,
172
- disabled: !x,
172
+ icon: Z,
173
+ disabled: !P,
173
174
  onClick: h
174
175
  },
175
176
  {
176
177
  id: "teacher-card-assign-as-hw",
177
178
  label: "Assign as HW",
178
- icon: he,
179
- disabled: !ce,
179
+ icon: dr,
180
+ disabled: !or,
180
181
  onClick: h
181
182
  }
182
- ], ae = [
183
+ ], lr = [
183
184
  {
184
185
  id: "student-card-view",
185
186
  label: "Review",
186
- icon: I,
187
+ icon: K,
187
188
  disabled: !f,
188
189
  onClick: h
189
190
  },
190
191
  {
191
192
  id: "student-card-reattempt",
192
193
  label: "Reattempt",
193
- icon: B,
194
- disabled: !x,
194
+ icon: Z,
195
+ disabled: !P,
195
196
  onClick: h
196
197
  }
197
- ], P = fe(
198
- () => $e({
199
- canResume: E,
200
- canStart: C,
201
- homeworkId: i,
202
- isHomeWork: c,
203
- isStudent: o,
204
- milestoneId: r,
205
- nodeType: w,
206
- studentId: O,
198
+ ], X = hr(
199
+ () => Rr({
200
+ canResume: M,
201
+ canStart: E,
202
+ entityId: t,
203
+ entityType: w,
204
+ homeworkId: n,
205
+ isHomeWork: o,
206
+ isStudent: s,
207
+ milestoneId: e,
208
+ nodeType: C,
209
+ studentId: V,
210
+ totalQuestions: O,
207
211
  userNodeId: u
208
212
  }),
209
213
  [
214
+ M,
210
215
  E,
211
- C,
212
- i,
213
- c,
214
- o,
215
- r,
216
+ t,
216
217
  w,
218
+ n,
219
+ o,
220
+ s,
221
+ e,
222
+ C,
223
+ V,
217
224
  O,
218
225
  u
219
226
  ]
220
- ), le = o && F && W || !o && n && d !== "COMPLETED" && d !== "EXPIRED" || n && W;
221
- return /* @__PURE__ */ j(Ce, { $position: "relative", $width: "fit-content", children: [
222
- /* @__PURE__ */ t(
223
- me,
227
+ ), ur = s && W && H || !s && c && d !== "COMPLETED" && d !== "EXPIRED" || c && H;
228
+ return /* @__PURE__ */ z(Er, { $position: "relative", $width: "fit-content", children: [
229
+ /* @__PURE__ */ i(
230
+ pr,
224
231
  {
225
- onClick: o ? oe : R,
232
+ onClick: s ? sr : g,
226
233
  label: "homework-card",
227
- analyticsLabel: P.analyticsLabel,
228
- analyticsProps: P.analyticsProps,
229
- disabled: le,
230
- children: /* @__PURE__ */ t(
231
- be,
234
+ analyticsLabel: X.analyticsLabel,
235
+ analyticsProps: X.analyticsProps,
236
+ disabled: ur,
237
+ children: /* @__PURE__ */ i(
238
+ wr,
232
239
  {
233
- entityType: v,
234
- header: q,
235
- isInQueue: g,
236
- isMilestone: S === "milestone",
237
- nodeData: e,
238
- puzzleHWCardRef: G,
239
- mathFitCardRef: J,
240
+ entityType: w,
241
+ header: G,
242
+ isInQueue: S,
243
+ isMilestone: y === "milestone",
244
+ nodeData: r,
245
+ puzzleHWCardRef: J,
246
+ mathFitCardRef: U,
240
247
  score: Q,
241
- imageUrl: D,
248
+ imageUrl: N,
242
249
  state: d,
243
- studentContainerRef: k,
244
- subHeader: N,
245
- userType: V
250
+ studentContainerRef: v,
251
+ subHeader: rr,
252
+ userType: F
246
253
  }
247
254
  )
248
255
  }
249
256
  ),
250
- o && !c && !n && /* @__PURE__ */ t(
251
- Y,
257
+ s && !o && !c && /* @__PURE__ */ i(
258
+ q,
252
259
  {
253
260
  $width: 200,
254
- options: ae,
255
- triggerRef: k,
256
- visible: ie,
261
+ options: lr,
262
+ triggerRef: v,
263
+ visible: nr,
257
264
  shouldOpenOnRight: !1
258
265
  }
259
266
  ),
260
- !o && !F && !n && /* @__PURE__ */ j(Ee, { $position: "absolute", $width: "fit-content", $borderRadiusX: 2, children: [
261
- /* @__PURE__ */ t(
262
- Z,
267
+ !s && !W && !c && /* @__PURE__ */ z(Mr, { $position: "absolute", $width: "fit-content", $borderRadiusX: 2, children: [
268
+ /* @__PURE__ */ i(
269
+ I,
263
270
  {
264
271
  renderAs: "primary",
265
272
  tooltipItem: "Review",
266
273
  position: "bottom",
267
274
  zIndex: 6,
268
275
  parentWidth: "100%",
269
- hidden: H || d !== "WAIT_FOR_REVIEW" && c,
270
- children: /* @__PURE__ */ t(
271
- Me,
276
+ hidden: L || d !== "WAIT_FOR_REVIEW" && o,
277
+ children: /* @__PURE__ */ i(
278
+ Tr,
272
279
  {
273
280
  $alignItems: "center",
274
281
  $justifyContent: "center",
275
- ref: $,
276
- onClick: te,
277
- children: /* @__PURE__ */ t(de, { width: 16, height: 16 })
282
+ ref: R,
283
+ onClick: tr,
284
+ children: /* @__PURE__ */ i(mr, { width: 16, height: 16 })
278
285
  }
279
286
  )
280
287
  }
281
288
  ),
282
- /* @__PURE__ */ t(
283
- Y,
289
+ /* @__PURE__ */ i(
290
+ q,
284
291
  {
285
- options: se,
286
- triggerRef: $,
287
- visible: H,
288
- shouldOpenOnRight: U,
292
+ options: ar,
293
+ triggerRef: R,
294
+ visible: L,
295
+ shouldOpenOnRight: D,
289
296
  $width: 144
290
297
  }
291
298
  )
292
299
  ] }),
293
- g && /* @__PURE__ */ t(Te, { $background: "WHITE_5", children: /* @__PURE__ */ t(ye, { $heightX: 1, $widthX: 6, children: /* @__PURE__ */ t(Z, { renderAs: "primary", tooltipItem: "Not visible to student", position: "bottom", children: /* @__PURE__ */ t(pe, { $heightX: 1, $widthX: 6 }) }) }) })
300
+ S && /* @__PURE__ */ i(_r, { $background: "WHITE_5", children: /* @__PURE__ */ i($r, { $heightX: 1, $widthX: 6, children: /* @__PURE__ */ i(I, { renderAs: "primary", tooltipItem: "Not visible to student", position: "bottom", children: /* @__PURE__ */ i(br, { $heightX: 1, $widthX: 6 }) }) }) })
294
301
  ] });
295
- }, Be = ue(ke);
302
+ }, Zr = fr(vr);
296
303
  export {
297
- Be as default
304
+ Zr as default
298
305
  };
299
306
  //# sourceMappingURL=homework-card.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"homework-card.js","sources":["../../../src/features/homework/homework-card.tsx"],"sourcesContent":["import { memo, useCallback, useMemo, useRef, type FC } from 'react';\n\nimport Eye2Icon from '../../assets/line-icons/icons/eye2';\nimport Home2Icon from '../../assets/line-icons/icons/home2';\nimport MoreVerticalIcon from '../../assets/line-icons/icons/more-vertical';\nimport RedoIcon from '../../assets/line-icons/icons/redo';\nimport {\n ECardType,\n type INodeCardCallbacks,\n type INodeDataProps,\n type TSheetStates,\n} from '../chapters-v2/comps/node-card/node-card-types';\nimport ArrowTooltip from '../ui/arrow-tooltip/arrow-tooltip';\nimport Clickable from '../ui/buttons/clickable/clickable';\nimport useContextMenuClickHandler from '../ui/hooks/use-context-menu-click-handler';\nimport FlexView from '../ui/layout/flex-view';\nimport type { TUserTypes } from '../ui/types';\nimport CardMenuOptions from './card-menu-options';\nimport HomeworkView from './homework-card-view';\nimport { EHWCardListEntityType } from './hw-card-list/hw-card-list-types';\nimport * as Styled from './styles';\nimport { getCardAnalyticProps } from './utils';\n\ninterface IHomeworkCardProps extends INodeCardCallbacks {\n entityId?: string;\n entityType?: EHWCardListEntityType;\n header: string;\n homeworkId?: string;\n isInQueue?: boolean;\n nodeData: INodeDataProps;\n puzzleHWCardRef?: React.RefObject<HTMLDivElement>;\n mathFitCardRef?: React.RefObject<HTMLDivElement>;\n renderAs: 'homework' | 'milestone';\n score: number | null;\n shouldOpenOnRight: boolean;\n state: TSheetStates;\n imageUrl?: string;\n studentId: string;\n subHeader: string;\n userMilestoneId?: string;\n userType: TUserTypes;\n}\n\nconst HomeworkCard: FC<IHomeworkCardProps> = ({\n // callbacks\n nodeData,\n onNodeAttempt,\n onNodeReattempt,\n onNodeReview,\n onNodeUnassign,\n onNodeView,\n onNodeAssignAsHomework,\n onCardClick,\n\n entityId,\n entityType,\n header,\n homeworkId,\n isInQueue,\n puzzleHWCardRef,\n mathFitCardRef,\n renderAs,\n score,\n shouldOpenOnRight,\n state,\n imageUrl,\n studentId,\n subHeader,\n userMilestoneId,\n userType,\n}) => {\n const isHomeWork = renderAs === 'homework';\n const { node_type: nodeType, permissions, user_node_id: userNodeId } = nodeData;\n\n const milestoneId = userMilestoneId || '';\n const isPuzzleCard = nodeType === 'PUZZLE_CARD';\n const isMathFitCard = entityType === EHWCardListEntityType.MATHFIT_TEST;\n const isSheetLocked = state === 'LOCKED';\n\n const teacherContainerRef = useRef<HTMLDivElement>(null) as React.RefObject<HTMLDivElement>;\n const studentContainerRef = useRef<HTMLDivElement>(null) as React.RefObject<HTMLDivElement>;\n const { menuVisible: teacherMenuVisible, onMenuClick: onTeacherMenuClick } =\n useContextMenuClickHandler(teacherContainerRef);\n const { menuVisible: studentMenuVisible, onMenuClick: onStudentMenuClick } =\n useContextMenuClickHandler(studentContainerRef);\n\n const {\n can_start: canStart,\n can_resume: canResume,\n can_review: canReview,\n can_unassign: canUnassign,\n can_reset: canReset,\n can_assign_as_homework: canAssignAsHw,\n } = permissions;\n const isStudent = userType === 'STUDENT';\n\n const onStudentViewSheet = useCallback(() => {\n if (canReview) {\n if (typeof onNodeReview !== 'function') {\n throw new Error('onReview must be a function');\n }\n\n if (!userNodeId) {\n throw new Error('user node id must be present to review the sheet');\n }\n onNodeReview(nodeData, milestoneId);\n\n return;\n }\n }, [canReview, onNodeReview, userNodeId, nodeData, milestoneId]);\n\n const onStudentCardClick = useCallback(() => {\n // Handle MathFit card clicks\n if (isMathFitCard && entityId) {\n if (typeof onCardClick !== 'function') {\n throw new Error('onCardClick must be a function for MathFit cards');\n }\n\n onCardClick({ entityId, type: ECardType.MATHFIT });\n\n return;\n }\n\n if (canStart || canResume) {\n if (typeof onNodeAttempt !== 'function') {\n throw new Error('onNodeAttempt must be a function');\n }\n\n onNodeAttempt(nodeData, milestoneId, homeworkId);\n\n return;\n }\n\n if (!isHomeWork) {\n onStudentMenuClick();\n\n return;\n }\n onStudentViewSheet();\n }, [\n canResume,\n canStart,\n entityId,\n homeworkId,\n isHomeWork,\n isMathFitCard,\n milestoneId,\n nodeData,\n onCardClick,\n onNodeAttempt,\n onStudentMenuClick,\n onStudentViewSheet,\n ]);\n\n const onTeacherCardClick = useCallback(() => {\n // Handle MathFit card clicks\n if (isMathFitCard && entityId) {\n if (typeof onCardClick !== 'function') {\n throw new Error('onCardClick must be a function for MathFit cards');\n }\n\n onCardClick({ entityId, type: ECardType.MATHFIT });\n\n return;\n }\n\n if (canReview) {\n if (typeof onNodeReview !== 'function') {\n throw new Error('onNodeReview must be a function');\n }\n\n if (!userNodeId) {\n throw new Error('user node id must be present to review the sheet');\n }\n onNodeReview(nodeData, milestoneId, homeworkId);\n\n return;\n }\n\n if (typeof onNodeView !== 'function') {\n throw new Error('onNodeView must be a function');\n }\n\n onNodeView(nodeData, milestoneId);\n }, [\n canReview,\n entityId,\n homeworkId,\n isMathFitCard,\n milestoneId,\n nodeData,\n onCardClick,\n onNodeReview,\n onNodeView,\n userNodeId,\n ]);\n\n const handleOnMenuOptionClick = useCallback(\n (optionId: string) => {\n switch (optionId) {\n case 'teacher-card-view':\n onTeacherCardClick();\n\n return;\n case 'student-card-view':\n onStudentViewSheet();\n\n return;\n case 'teacher-card-unassign':\n onNodeUnassign?.(nodeData, milestoneId, homeworkId);\n\n return;\n case 'student-card-reattempt':\n case 'teacher-card-redo':\n onNodeReattempt?.(nodeData, milestoneId);\n\n return;\n\n case 'teacher-card-assign-as-hw':\n onNodeAssignAsHomework?.(nodeData, milestoneId);\n\n return;\n\n default:\n throw new Error(`No callback function for ${optionId}`);\n }\n },\n [\n homeworkId,\n milestoneId,\n nodeData,\n onNodeAssignAsHomework,\n onNodeReattempt,\n onNodeUnassign,\n onStudentViewSheet,\n onTeacherCardClick,\n ],\n );\n\n const teacherOptions = [\n {\n id: 'teacher-card-view',\n label: canReview ? 'Review' : 'View',\n icon: Eye2Icon,\n disabled: false,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'teacher-card-unassign',\n label: 'Unassign',\n icon: Styled.StyledMinus2Icon,\n disabled: isHomeWork ? nodeType === 'MASTERY' : !canUnassign,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'teacher-card-redo',\n label: 'Redo',\n icon: RedoIcon,\n disabled: !canReset,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'teacher-card-assign-as-hw',\n label: 'Assign as HW',\n icon: Home2Icon,\n disabled: !canAssignAsHw,\n onClick: handleOnMenuOptionClick,\n },\n ];\n\n const studentOptions = [\n {\n id: 'student-card-view',\n label: 'Review',\n icon: Eye2Icon,\n disabled: !canReview,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'student-card-reattempt',\n label: 'Reattempt',\n icon: RedoIcon,\n disabled: !canReset,\n onClick: handleOnMenuOptionClick,\n },\n ];\n\n const analyticsLabel = useMemo(\n () =>\n getCardAnalyticProps({\n canResume,\n canStart,\n homeworkId,\n isHomeWork,\n isStudent,\n milestoneId,\n nodeType,\n studentId,\n userNodeId,\n }),\n [\n canResume,\n canStart,\n homeworkId,\n isHomeWork,\n isStudent,\n milestoneId,\n nodeType,\n studentId,\n userNodeId,\n ],\n );\n\n const isClickableDisabled =\n (isStudent && isPuzzleCard && isSheetLocked) ||\n (!isStudent && isMathFitCard && state !== 'COMPLETED' && state !== 'EXPIRED') ||\n (isMathFitCard && isSheetLocked);\n\n return (\n <Styled.CardContainer $position=\"relative\" $width=\"fit-content\">\n <Clickable\n onClick={isStudent ? onStudentCardClick : onTeacherCardClick}\n label=\"homework-card\"\n analyticsLabel={analyticsLabel.analyticsLabel}\n analyticsProps={analyticsLabel.analyticsProps}\n disabled={isClickableDisabled}\n >\n <HomeworkView\n entityType={entityType}\n header={header}\n isInQueue={isInQueue}\n isMilestone={renderAs === 'milestone'}\n nodeData={nodeData}\n puzzleHWCardRef={puzzleHWCardRef}\n mathFitCardRef={mathFitCardRef}\n score={score}\n imageUrl={imageUrl}\n state={state}\n studentContainerRef={studentContainerRef}\n subHeader={subHeader}\n userType={userType}\n />\n </Clickable>\n {isStudent && !isHomeWork && !isMathFitCard && (\n <CardMenuOptions\n $width={200}\n options={studentOptions}\n triggerRef={studentContainerRef}\n visible={studentMenuVisible}\n shouldOpenOnRight={false}\n />\n )}\n {!isStudent && !isPuzzleCard && !isMathFitCard && (\n <Styled.MenuWrapper $position=\"absolute\" $width=\"fit-content\" $borderRadiusX={2}>\n <ArrowTooltip\n renderAs=\"primary\"\n tooltipItem=\"Review\"\n position=\"bottom\"\n zIndex={6}\n parentWidth=\"100%\"\n hidden={teacherMenuVisible || (state !== 'WAIT_FOR_REVIEW' && isHomeWork)}\n >\n <Styled.CardKebabMenuWrapper\n $alignItems=\"center\"\n $justifyContent=\"center\"\n ref={teacherContainerRef}\n onClick={onTeacherMenuClick}\n >\n <MoreVerticalIcon width={16} height={16} />\n </Styled.CardKebabMenuWrapper>\n </ArrowTooltip>\n <CardMenuOptions\n options={teacherOptions}\n triggerRef={teacherContainerRef}\n visible={teacherMenuVisible}\n shouldOpenOnRight={shouldOpenOnRight}\n $width={144}\n />\n </Styled.MenuWrapper>\n )}\n {isInQueue && (\n <Styled.BlurContainer $background=\"WHITE_5\">\n <Styled.BlurFlexView $heightX={1} $widthX={6}>\n <ArrowTooltip renderAs=\"primary\" tooltipItem=\"Not visible to student\" position=\"bottom\">\n <FlexView $heightX={1} $widthX={6} />\n </ArrowTooltip>\n </Styled.BlurFlexView>\n </Styled.BlurContainer>\n )}\n </Styled.CardContainer>\n );\n};\n\nexport default memo(HomeworkCard);\n"],"names":["HomeworkCard","nodeData","onNodeAttempt","onNodeReattempt","onNodeReview","onNodeUnassign","onNodeView","onNodeAssignAsHomework","onCardClick","entityId","entityType","header","homeworkId","isInQueue","puzzleHWCardRef","mathFitCardRef","renderAs","score","shouldOpenOnRight","state","imageUrl","studentId","subHeader","userMilestoneId","userType","isHomeWork","nodeType","permissions","userNodeId","milestoneId","isPuzzleCard","isMathFitCard","EHWCardListEntityType","isSheetLocked","teacherContainerRef","useRef","studentContainerRef","teacherMenuVisible","onTeacherMenuClick","useContextMenuClickHandler","studentMenuVisible","onStudentMenuClick","canStart","canResume","canReview","canUnassign","canReset","canAssignAsHw","isStudent","onStudentViewSheet","useCallback","onStudentCardClick","ECardType","onTeacherCardClick","handleOnMenuOptionClick","optionId","teacherOptions","Eye2Icon","Styled.StyledMinus2Icon","RedoIcon","Home2Icon","studentOptions","analyticsLabel","useMemo","getCardAnalyticProps","isClickableDisabled","Styled.CardContainer","jsx","Clickable","HomeworkView","CardMenuOptions","jsxs","Styled.MenuWrapper","ArrowTooltip","Styled.CardKebabMenuWrapper","MoreVerticalIcon","Styled.BlurContainer","Styled.BlurFlexView","FlexView","HomeworkCard$1","memo"],"mappings":"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"}
1
+ {"version":3,"file":"homework-card.js","sources":["../../../src/features/homework/homework-card.tsx"],"sourcesContent":["import { memo, useCallback, useMemo, useRef, type FC } from 'react';\n\nimport Eye2Icon from '../../assets/line-icons/icons/eye2';\nimport Home2Icon from '../../assets/line-icons/icons/home2';\nimport MoreVerticalIcon from '../../assets/line-icons/icons/more-vertical';\nimport RedoIcon from '../../assets/line-icons/icons/redo';\nimport {\n ECardType,\n type INodeCardCallbacks,\n type INodeDataProps,\n type TSheetStates,\n} from '../chapters-v2/comps/node-card/node-card-types';\nimport ArrowTooltip from '../ui/arrow-tooltip/arrow-tooltip';\nimport Clickable from '../ui/buttons/clickable/clickable';\nimport useContextMenuClickHandler from '../ui/hooks/use-context-menu-click-handler';\nimport FlexView from '../ui/layout/flex-view';\nimport type { TUserTypes } from '../ui/types';\nimport CardMenuOptions from './card-menu-options';\nimport HomeworkView from './homework-card-view';\nimport { EHWCardListEntityType } from './hw-card-list/hw-card-list-types';\nimport * as Styled from './styles';\nimport { getCardAnalyticProps } from './utils';\n\ninterface IHomeworkCardProps extends INodeCardCallbacks {\n entityId?: string;\n entityType?: EHWCardListEntityType;\n header: string;\n homeworkId?: string;\n isInQueue?: boolean;\n nodeData: INodeDataProps;\n puzzleHWCardRef?: React.RefObject<HTMLDivElement>;\n mathFitCardRef?: React.RefObject<HTMLDivElement>;\n renderAs: 'homework' | 'milestone';\n score: number | null;\n shouldOpenOnRight: boolean;\n state: TSheetStates;\n imageUrl?: string;\n studentId: string;\n subHeader: string;\n userMilestoneId?: string;\n userType: TUserTypes;\n totalQuestions: number;\n}\n\nconst HomeworkCard: FC<IHomeworkCardProps> = ({\n // callbacks\n nodeData,\n onNodeAttempt,\n onNodeReattempt,\n onNodeReview,\n onNodeUnassign,\n onNodeView,\n onNodeAssignAsHomework,\n onCardClick,\n\n entityId,\n entityType,\n header,\n homeworkId,\n isInQueue,\n puzzleHWCardRef,\n mathFitCardRef,\n renderAs,\n score,\n shouldOpenOnRight,\n state,\n totalQuestions,\n imageUrl,\n studentId,\n subHeader,\n userMilestoneId,\n userType,\n}) => {\n const isHomeWork = renderAs === 'homework';\n const { node_type: nodeType, permissions, user_node_id: userNodeId } = nodeData;\n\n const milestoneId = userMilestoneId || '';\n const isPuzzleCard = nodeType === 'PUZZLE_CARD';\n const isMathFitCard = entityType === EHWCardListEntityType.MATHFIT_TEST;\n const isSheetLocked = state === 'LOCKED';\n\n const teacherContainerRef = useRef<HTMLDivElement>(null) as React.RefObject<HTMLDivElement>;\n const studentContainerRef = useRef<HTMLDivElement>(null) as React.RefObject<HTMLDivElement>;\n const { menuVisible: teacherMenuVisible, onMenuClick: onTeacherMenuClick } =\n useContextMenuClickHandler(teacherContainerRef);\n const { menuVisible: studentMenuVisible, onMenuClick: onStudentMenuClick } =\n useContextMenuClickHandler(studentContainerRef);\n\n const {\n can_start: canStart,\n can_resume: canResume,\n can_review: canReview,\n can_unassign: canUnassign,\n can_reset: canReset,\n can_assign_as_homework: canAssignAsHw,\n } = permissions;\n const isStudent = userType === 'STUDENT';\n\n const onStudentViewSheet = useCallback(() => {\n if (canReview) {\n if (typeof onNodeReview !== 'function') {\n throw new Error('onReview must be a function');\n }\n\n if (!userNodeId) {\n throw new Error('user node id must be present to review the sheet');\n }\n onNodeReview(nodeData, milestoneId);\n\n return;\n }\n }, [canReview, onNodeReview, userNodeId, nodeData, milestoneId]);\n\n const onStudentCardClick = useCallback(() => {\n // Handle MathFit card clicks\n if (isMathFitCard && entityId) {\n if (typeof onCardClick !== 'function') {\n throw new Error('onCardClick must be a function for MathFit cards');\n }\n\n onCardClick({ entityId, type: ECardType.MATHFIT });\n\n return;\n }\n\n if (canStart || canResume) {\n if (typeof onNodeAttempt !== 'function') {\n throw new Error('onNodeAttempt must be a function');\n }\n\n onNodeAttempt(nodeData, milestoneId, homeworkId);\n\n return;\n }\n\n if (!isHomeWork) {\n onStudentMenuClick();\n\n return;\n }\n onStudentViewSheet();\n }, [\n canResume,\n canStart,\n entityId,\n homeworkId,\n isHomeWork,\n isMathFitCard,\n milestoneId,\n nodeData,\n onCardClick,\n onNodeAttempt,\n onStudentMenuClick,\n onStudentViewSheet,\n ]);\n\n const onTeacherCardClick = useCallback(() => {\n // Handle MathFit card clicks\n if (isMathFitCard && entityId) {\n if (typeof onCardClick !== 'function') {\n throw new Error('onCardClick must be a function for MathFit cards');\n }\n\n onCardClick({ entityId, type: ECardType.MATHFIT });\n\n return;\n }\n\n if (canReview) {\n if (typeof onNodeReview !== 'function') {\n throw new Error('onNodeReview must be a function');\n }\n\n if (!userNodeId) {\n throw new Error('user node id must be present to review the sheet');\n }\n onNodeReview(nodeData, milestoneId, homeworkId);\n\n return;\n }\n\n if (typeof onNodeView !== 'function') {\n throw new Error('onNodeView must be a function');\n }\n\n onNodeView(nodeData, milestoneId);\n }, [\n canReview,\n entityId,\n homeworkId,\n isMathFitCard,\n milestoneId,\n nodeData,\n onCardClick,\n onNodeReview,\n onNodeView,\n userNodeId,\n ]);\n\n const handleOnMenuOptionClick = useCallback(\n (optionId: string) => {\n switch (optionId) {\n case 'teacher-card-view':\n onTeacherCardClick();\n\n return;\n case 'student-card-view':\n onStudentViewSheet();\n\n return;\n case 'teacher-card-unassign':\n onNodeUnassign?.(nodeData, milestoneId, homeworkId);\n\n return;\n case 'student-card-reattempt':\n case 'teacher-card-redo':\n onNodeReattempt?.(nodeData, milestoneId);\n\n return;\n\n case 'teacher-card-assign-as-hw':\n onNodeAssignAsHomework?.(nodeData, milestoneId);\n\n return;\n\n default:\n throw new Error(`No callback function for ${optionId}`);\n }\n },\n [\n homeworkId,\n milestoneId,\n nodeData,\n onNodeAssignAsHomework,\n onNodeReattempt,\n onNodeUnassign,\n onStudentViewSheet,\n onTeacherCardClick,\n ],\n );\n\n const teacherOptions = [\n {\n id: 'teacher-card-view',\n label: canReview ? 'Review' : 'View',\n icon: Eye2Icon,\n disabled: false,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'teacher-card-unassign',\n label: 'Unassign',\n icon: Styled.StyledMinus2Icon,\n disabled: isHomeWork ? nodeType === 'MASTERY' : !canUnassign,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'teacher-card-redo',\n label: 'Redo',\n icon: RedoIcon,\n disabled: !canReset,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'teacher-card-assign-as-hw',\n label: 'Assign as HW',\n icon: Home2Icon,\n disabled: !canAssignAsHw,\n onClick: handleOnMenuOptionClick,\n },\n ];\n\n const studentOptions = [\n {\n id: 'student-card-view',\n label: 'Review',\n icon: Eye2Icon,\n disabled: !canReview,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'student-card-reattempt',\n label: 'Reattempt',\n icon: RedoIcon,\n disabled: !canReset,\n onClick: handleOnMenuOptionClick,\n },\n ];\n\n const analyticsLabel = useMemo(\n () =>\n getCardAnalyticProps({\n canResume,\n canStart,\n entityId,\n entityType,\n homeworkId,\n isHomeWork,\n isStudent,\n milestoneId,\n nodeType,\n studentId,\n totalQuestions,\n userNodeId,\n }),\n [\n canResume,\n canStart,\n entityId,\n entityType,\n homeworkId,\n isHomeWork,\n isStudent,\n milestoneId,\n nodeType,\n studentId,\n totalQuestions,\n userNodeId,\n ],\n );\n\n const isClickableDisabled =\n (isStudent && isPuzzleCard && isSheetLocked) ||\n (!isStudent && isMathFitCard && state !== 'COMPLETED' && state !== 'EXPIRED') ||\n (isMathFitCard && isSheetLocked);\n\n return (\n <Styled.CardContainer $position=\"relative\" $width=\"fit-content\">\n <Clickable\n onClick={isStudent ? onStudentCardClick : onTeacherCardClick}\n label=\"homework-card\"\n analyticsLabel={analyticsLabel.analyticsLabel}\n analyticsProps={analyticsLabel.analyticsProps}\n disabled={isClickableDisabled}\n >\n <HomeworkView\n entityType={entityType}\n header={header}\n isInQueue={isInQueue}\n isMilestone={renderAs === 'milestone'}\n nodeData={nodeData}\n puzzleHWCardRef={puzzleHWCardRef}\n mathFitCardRef={mathFitCardRef}\n score={score}\n imageUrl={imageUrl}\n state={state}\n studentContainerRef={studentContainerRef}\n subHeader={subHeader}\n userType={userType}\n />\n </Clickable>\n {isStudent && !isHomeWork && !isMathFitCard && (\n <CardMenuOptions\n $width={200}\n options={studentOptions}\n triggerRef={studentContainerRef}\n visible={studentMenuVisible}\n shouldOpenOnRight={false}\n />\n )}\n {!isStudent && !isPuzzleCard && !isMathFitCard && (\n <Styled.MenuWrapper $position=\"absolute\" $width=\"fit-content\" $borderRadiusX={2}>\n <ArrowTooltip\n renderAs=\"primary\"\n tooltipItem=\"Review\"\n position=\"bottom\"\n zIndex={6}\n parentWidth=\"100%\"\n hidden={teacherMenuVisible || (state !== 'WAIT_FOR_REVIEW' && isHomeWork)}\n >\n <Styled.CardKebabMenuWrapper\n $alignItems=\"center\"\n $justifyContent=\"center\"\n ref={teacherContainerRef}\n onClick={onTeacherMenuClick}\n >\n <MoreVerticalIcon width={16} height={16} />\n </Styled.CardKebabMenuWrapper>\n </ArrowTooltip>\n <CardMenuOptions\n options={teacherOptions}\n triggerRef={teacherContainerRef}\n visible={teacherMenuVisible}\n shouldOpenOnRight={shouldOpenOnRight}\n $width={144}\n />\n </Styled.MenuWrapper>\n )}\n {isInQueue && (\n <Styled.BlurContainer $background=\"WHITE_5\">\n <Styled.BlurFlexView $heightX={1} $widthX={6}>\n <ArrowTooltip renderAs=\"primary\" tooltipItem=\"Not visible to student\" position=\"bottom\">\n <FlexView $heightX={1} $widthX={6} />\n </ArrowTooltip>\n </Styled.BlurFlexView>\n </Styled.BlurContainer>\n )}\n </Styled.CardContainer>\n );\n};\n\nexport default memo(HomeworkCard);\n"],"names":["HomeworkCard","nodeData","onNodeAttempt","onNodeReattempt","onNodeReview","onNodeUnassign","onNodeView","onNodeAssignAsHomework","onCardClick","entityId","entityType","header","homeworkId","isInQueue","puzzleHWCardRef","mathFitCardRef","renderAs","score","shouldOpenOnRight","state","totalQuestions","imageUrl","studentId","subHeader","userMilestoneId","userType","isHomeWork","nodeType","permissions","userNodeId","milestoneId","isPuzzleCard","isMathFitCard","EHWCardListEntityType","isSheetLocked","teacherContainerRef","useRef","studentContainerRef","teacherMenuVisible","onTeacherMenuClick","useContextMenuClickHandler","studentMenuVisible","onStudentMenuClick","canStart","canResume","canReview","canUnassign","canReset","canAssignAsHw","isStudent","onStudentViewSheet","useCallback","onStudentCardClick","ECardType","onTeacherCardClick","handleOnMenuOptionClick","optionId","teacherOptions","Eye2Icon","Styled.StyledMinus2Icon","RedoIcon","Home2Icon","studentOptions","analyticsLabel","useMemo","getCardAnalyticProps","isClickableDisabled","Styled.CardContainer","jsx","Clickable","HomeworkView","CardMenuOptions","jsxs","Styled.MenuWrapper","ArrowTooltip","Styled.CardKebabMenuWrapper","MoreVerticalIcon","Styled.BlurContainer","Styled.BlurFlexView","FlexView","HomeworkCard$1","memo"],"mappings":"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"}