@cuemath/leap 3.5.52-as1 → 3.5.53-j1

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 (127) hide show
  1. package/dist/features/homework/homework-card.js +122 -121
  2. package/dist/features/homework/homework-card.js.map +1 -1
  3. package/dist/features/milestone/create/comps/add-custom-chapter/add-custom-chapter.js +66 -61
  4. package/dist/features/milestone/create/comps/add-custom-chapter/add-custom-chapter.js.map +1 -1
  5. package/dist/features/milestone/create/comps/add-custom-chapter/course-catalog.js +56 -55
  6. package/dist/features/milestone/create/comps/add-custom-chapter/course-catalog.js.map +1 -1
  7. package/dist/features/milestone/create/comps/add-custom-chapter/search-chapter/search-chapters.js +32 -25
  8. package/dist/features/milestone/create/comps/add-custom-chapter/search-chapter/search-chapters.js.map +1 -1
  9. package/dist/features/milestone/create/comps/add-custom-chapter/selected-chapters/selected-chapter-item.js +16 -15
  10. package/dist/features/milestone/create/comps/add-custom-chapter/selected-chapters/selected-chapter-item.js.map +1 -1
  11. package/dist/features/milestone/create/comps/add-custom-chapter/selected-chapters/selected-chapters.js +17 -10
  12. package/dist/features/milestone/create/comps/add-custom-chapter/selected-chapters/selected-chapters.js.map +1 -1
  13. package/dist/features/milestone/create/comps/add-custom-chapter/selected-chapters/tags-render.js +6 -6
  14. package/dist/features/milestone/create/comps/add-custom-chapter/selected-chapters/tags-render.js.map +1 -1
  15. package/dist/features/milestone/create/comps/body-layout/body-layout.js +30 -29
  16. package/dist/features/milestone/create/comps/body-layout/body-layout.js.map +1 -1
  17. package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step.js +77 -74
  18. package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step.js.map +1 -1
  19. package/dist/features/milestone/create/comps/goal-completion-date-selector/goal-completion-date-selector.js +82 -79
  20. package/dist/features/milestone/create/comps/goal-completion-date-selector/goal-completion-date-selector.js.map +1 -1
  21. package/dist/features/milestone/create/milestone-create-styled.js +8 -8
  22. package/dist/features/milestone/create/milestone-create-styled.js.map +1 -1
  23. package/dist/features/milestone/create/milestone-create.js +48 -46
  24. package/dist/features/milestone/create/milestone-create.js.map +1 -1
  25. package/dist/features/milestone/edit/goal-draft-edit-sync.js +26 -0
  26. package/dist/features/milestone/edit/goal-draft-edit-sync.js.map +1 -0
  27. package/dist/features/milestone/edit/goal-drafts/goal-draft-edit-container.js +72 -66
  28. package/dist/features/milestone/edit/goal-drafts/goal-draft-edit-container.js.map +1 -1
  29. package/dist/features/milestone/edit/hooks/use-milestone-edit-sync.js +82 -0
  30. package/dist/features/milestone/edit/hooks/use-milestone-edit-sync.js.map +1 -0
  31. package/dist/features/milestone/milestone-list-container/hooks/use-milestone-list-sync.js +49 -0
  32. package/dist/features/milestone/milestone-list-container/hooks/use-milestone-list-sync.js.map +1 -0
  33. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js +109 -105
  34. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js.map +1 -1
  35. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/goals/goal-action-ctas.js +2 -2
  36. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/goals/goal-action-ctas.js.map +1 -1
  37. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs-styled.js +21 -16
  38. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs-styled.js.map +1 -1
  39. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs.js +106 -98
  40. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs.js.map +1 -1
  41. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget.js +136 -117
  42. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget.js.map +1 -1
  43. package/dist/features/milestone/milestone-list-container/milestone-list-container.js +96 -92
  44. package/dist/features/milestone/milestone-list-container/milestone-list-container.js.map +1 -1
  45. package/dist/features/milestone/milestone-list-container/milestone-list-sync.js +25 -0
  46. package/dist/features/milestone/milestone-list-container/milestone-list-sync.js.map +1 -0
  47. package/dist/features/milestone/milestone-resources/resources-assign/added-resource-and-filters.js +78 -81
  48. package/dist/features/milestone/milestone-resources/resources-assign/added-resource-and-filters.js.map +1 -1
  49. package/dist/features/milestone/milestone-resources/resources-assign/comps/filter-item/filter-item.js +28 -25
  50. package/dist/features/milestone/milestone-resources/resources-assign/comps/filter-item/filter-item.js.map +1 -1
  51. package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/resource-item.js +39 -33
  52. package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/resource-item.js.map +1 -1
  53. package/dist/features/milestone/milestone-resources/resources-assign/hooks/use-resource-assign-sync.js +50 -0
  54. package/dist/features/milestone/milestone-resources/resources-assign/hooks/use-resource-assign-sync.js.map +1 -0
  55. package/dist/features/milestone/milestone-resources/resources-assign/resource-assign-sync.js +25 -0
  56. package/dist/features/milestone/milestone-resources/resources-assign/resource-assign-sync.js.map +1 -0
  57. package/dist/features/milestone/milestone-resources/resources-assign/resource-items/resource-items.js +43 -53
  58. package/dist/features/milestone/milestone-resources/resources-assign/resource-items/resource-items.js.map +1 -1
  59. package/dist/features/milestone/milestone-resources/resources-assign/resources-assign.js +218 -174
  60. package/dist/features/milestone/milestone-resources/resources-assign/resources-assign.js.map +1 -1
  61. package/dist/features/milestone/milestone-resources/resources-assign/store/resource-assign-store.js +198 -0
  62. package/dist/features/milestone/milestone-resources/resources-assign/store/resource-assign-store.js.map +1 -0
  63. package/dist/features/milestone/milestone-resources/resources-list/resources-list.js +69 -67
  64. package/dist/features/milestone/milestone-resources/resources-list/resources-list.js.map +1 -1
  65. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-container.js +46 -45
  66. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-container.js.map +1 -1
  67. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-view.js +34 -32
  68. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-view.js.map +1 -1
  69. package/dist/features/milestone/milestone-tests/tests-creation/hooks/use-tests-creation-sync.js +52 -0
  70. package/dist/features/milestone/milestone-tests/tests-creation/hooks/use-tests-creation-sync.js.map +1 -0
  71. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/chapter-selection/chapter-selection.js +51 -41
  72. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/chapter-selection/chapter-selection.js.map +1 -1
  73. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/difficulty-and-duration-selection/difficulty-and-duration-selection.js +85 -71
  74. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/difficulty-and-duration-selection/difficulty-and-duration-selection.js.map +1 -1
  75. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/test-preview/test-preview-styled.js +5 -5
  76. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/test-preview/test-preview-styled.js.map +1 -1
  77. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/test-preview/test-preview.js +36 -26
  78. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/test-preview/test-preview.js.map +1 -1
  79. package/dist/features/milestone/milestone-tests/tests-creation/tests-creation-sync.js +25 -0
  80. package/dist/features/milestone/milestone-tests/tests-creation/tests-creation-sync.js.map +1 -0
  81. package/dist/features/milestone/milestone-tests/tests-creation/tests-creation-types.js +5 -0
  82. package/dist/features/milestone/milestone-tests/tests-creation/tests-creation-types.js.map +1 -0
  83. package/dist/features/milestone/milestone-tests/tests-creation/tests-creation.js +150 -89
  84. package/dist/features/milestone/milestone-tests/tests-creation/tests-creation.js.map +1 -1
  85. package/dist/features/sheet-v2/resource-list/resource-list.js +26 -24
  86. package/dist/features/sheet-v2/resource-list/resource-list.js.map +1 -1
  87. package/dist/features/trial-session/comps/learning-plan/index.js +218 -91
  88. package/dist/features/trial-session/comps/learning-plan/index.js.map +1 -1
  89. package/dist/features/trial-session/comps/learning-plan/learning-plan-styled.js +7 -6
  90. package/dist/features/trial-session/comps/learning-plan/learning-plan-styled.js.map +1 -1
  91. package/dist/features/trial-session/hooks/use-learning-plan-scroll-sync.js +75 -0
  92. package/dist/features/trial-session/hooks/use-learning-plan-scroll-sync.js.map +1 -0
  93. package/dist/features/trial-session/hooks/use-trial-session-navigation.js +125 -115
  94. package/dist/features/trial-session/hooks/use-trial-session-navigation.js.map +1 -1
  95. package/dist/features/trial-session/trial-session-types.js +3 -2
  96. package/dist/features/trial-session/trial-session-types.js.map +1 -1
  97. package/dist/features/worksheet/worksheet/worksheet-behavior-helper.js +69 -54
  98. package/dist/features/worksheet/worksheet/worksheet-behavior-helper.js.map +1 -1
  99. package/dist/features/worksheet/worksheet/worksheet-types.js.map +1 -1
  100. package/dist/features/worksheet/worksheet/worksheet.js +44 -33
  101. package/dist/features/worksheet/worksheet/worksheet.js.map +1 -1
  102. package/dist/features/worksheet/worksheet-preview/hooks/use-worksheet-layout.js +25 -22
  103. package/dist/features/worksheet/worksheet-preview/hooks/use-worksheet-layout.js.map +1 -1
  104. package/dist/features/worksheet/worksheet-preview/worksheet-preview-view.js +48 -44
  105. package/dist/features/worksheet/worksheet-preview/worksheet-preview-view.js.map +1 -1
  106. package/dist/features/worksheet/worksheet-preview/worksheet-preview.js +2 -2
  107. package/dist/features/worksheet/worksheet-preview/worksheet-preview.js.map +1 -1
  108. package/dist/index.d.ts +138 -2
  109. package/dist/node_modules/decode-uri-component/index.js.map +1 -0
  110. package/dist/node_modules/query-string/base.js +1 -1
  111. package/dist/node_modules/uuid/dist/esm-browser/native.js +7 -0
  112. package/dist/node_modules/uuid/dist/esm-browser/native.js.map +1 -0
  113. package/dist/node_modules/uuid/dist/esm-browser/rng.js +3 -2
  114. package/dist/node_modules/uuid/dist/esm-browser/rng.js.map +1 -1
  115. package/dist/node_modules/uuid/dist/esm-browser/stringify.js +6 -10
  116. package/dist/node_modules/uuid/dist/esm-browser/stringify.js.map +1 -1
  117. package/dist/node_modules/uuid/dist/esm-browser/v4.js +12 -9
  118. package/dist/node_modules/uuid/dist/esm-browser/v4.js.map +1 -1
  119. package/package.json +1 -1
  120. package/dist/features/trial-session/comps/learning-plan/use-learning-plan-scroll-sync.js +0 -37
  121. package/dist/features/trial-session/comps/learning-plan/use-learning-plan-scroll-sync.js.map +0 -1
  122. package/dist/node_modules/query-string/node_modules/decode-uri-component/index.js.map +0 -1
  123. package/dist/node_modules/uuid/dist/esm-browser/regex.js +0 -5
  124. package/dist/node_modules/uuid/dist/esm-browser/regex.js.map +0 -1
  125. package/dist/node_modules/uuid/dist/esm-browser/validate.js +0 -8
  126. package/dist/node_modules/uuid/dist/esm-browser/validate.js.map +0 -1
  127. /package/dist/node_modules/{query-string/node_modules/decode-uri-component → decode-uri-component}/index.js +0 -0
@@ -1,57 +1,58 @@
1
- import { jsxs as I, jsx as t } from "react/jsx-runtime";
2
- import { memo as le, useRef as j, useCallback as T, useMemo as ue } from "react";
3
- import z from "../../assets/line-icons/icons/eye2.js";
4
- import fe 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 he from "../ui/buttons/clickable/clickable.js";
10
- import A from "../ui/hooks/use-context-menu-click-handler.js";
11
- import me from "../ui/layout/flex-view.js";
12
- import Y from "./card-menu-options.js";
13
- import pe from "./homework-card-view.js";
14
- import { EHWCardListEntityType as be } from "./hw-card-list/hw-card-list-types.js";
15
- import { CardContainer as we, MenuWrapper as Ce, CardKebabMenuWrapper as Ee, BlurContainer as Me, BlurFlexView as Te, StyledMinus2Icon as _e } from "./styles.js";
16
- import { getCardAnalyticProps as ye } from "./utils.js";
17
- const $e = ({
1
+ import { jsxs as j, jsx as t } from "react/jsx-runtime";
2
+ import { memo as fe, useRef as z, useCallback as y, useMemo as de } from "react";
3
+ import B from "../../assets/line-icons/icons/eye2.js";
4
+ import he from "../../assets/line-icons/icons/home2.js";
5
+ import me from "../../assets/line-icons/icons/more-vertical.js";
6
+ import K from "../../assets/line-icons/icons/redo.js";
7
+ import { ECardType as Z } from "../chapters-v2/comps/node-card/node-card-types.js";
8
+ import A from "../ui/arrow-tooltip/arrow-tooltip.js";
9
+ import pe from "../ui/buttons/clickable/clickable.js";
10
+ import Y from "../ui/hooks/use-context-menu-click-handler.js";
11
+ import be from "../ui/layout/flex-view.js";
12
+ import q from "./card-menu-options.js";
13
+ import we from "./homework-card-view.js";
14
+ import { EHWCardListEntityType as Ce } from "./hw-card-list/hw-card-list-types.js";
15
+ import { CardContainer as Me, MenuWrapper as Ee, CardKebabMenuWrapper as _e, BlurContainer as ye, BlurFlexView as $e, StyledMinus2Icon as Te } from "./styles.js";
16
+ import { getCardAnalyticProps as ke } from "./utils.js";
17
+ const Re = ({
18
18
  // callbacks
19
19
  nodeData: e,
20
- onNodeAttempt: _,
20
+ onNodeAttempt: $,
21
21
  onNodeReattempt: m,
22
22
  onNodeReview: s,
23
23
  onNodeUnassign: p,
24
- onNodeView: y,
24
+ onNodeView: T,
25
25
  onNodeAssignAsHomework: b,
26
26
  onCardClick: a,
27
27
  entityId: l,
28
- entityType: v,
29
- header: q,
28
+ entityType: g,
29
+ header: G,
30
30
  homeworkId: i,
31
- isInQueue: g,
32
- puzzleHWCardRef: G,
33
- renderAs: S,
31
+ isInQueue: O,
32
+ renderAs: V,
34
33
  score: J,
35
34
  shouldOpenOnRight: Q,
36
35
  state: h,
37
- studentId: O,
36
+ studentId: F,
38
37
  subHeader: U,
39
38
  userMilestoneId: D,
40
- userType: V
39
+ userType: W,
40
+ puzzleHWCardRef: N,
41
+ isTrialSession: w
41
42
  }) => {
42
- const c = S === "homework", {
43
- node_type: w,
44
- permissions: N,
43
+ const n = V === "homework", {
44
+ node_type: C,
45
+ permissions: ee,
45
46
  user_node_id: u,
46
- user_milestone_id: ee
47
- } = e, r = D || ee || "", F = w === "PUZZLE_CARD", n = v === be.MATHFIT_TEST, W = h === "LOCKED", $ = j(null), k = j(null), { menuVisible: H, onMenuClick: re } = A($), { menuVisible: te, onMenuClick: L } = A(k), {
48
- can_start: C,
47
+ user_milestone_id: re
48
+ } = e, r = D || re || "", H = C === "PUZZLE_CARD", c = g === Ce.MATHFIT_TEST, L = h === "LOCKED", k = z(null), R = z(null), { menuVisible: S, onMenuClick: te } = Y(k), { menuVisible: ie, onMenuClick: x } = Y(R), {
49
+ can_start: M,
49
50
  can_resume: E,
50
51
  can_review: f,
51
- can_unassign: ie,
52
- can_reset: x,
53
- can_assign_as_homework: ne
54
- } = N, o = V === "STUDENT", M = T(() => {
52
+ can_unassign: ne,
53
+ can_reset: P,
54
+ can_assign_as_homework: ce
55
+ } = ee, o = W === "STUDENT", _ = y(() => {
55
56
  if (f) {
56
57
  if (typeof s != "function")
57
58
  throw new Error("onReview must be a function");
@@ -60,42 +61,42 @@ const $e = ({
60
61
  s(e, r);
61
62
  return;
62
63
  }
63
- }, [f, s, u, e, r]), ce = T(() => {
64
- if (n && l) {
64
+ }, [f, s, u, e, r]), oe = y(() => {
65
+ if (c && l) {
65
66
  if (typeof a != "function")
66
67
  throw new Error("onCardClick must be a function for MathFit cards");
67
- a({ entityId: l, type: K.MATHFIT });
68
+ a({ entityId: l, type: Z.MATHFIT });
68
69
  return;
69
70
  }
70
- if (C || E) {
71
- if (typeof _ != "function")
71
+ if (M || E) {
72
+ if (typeof $ != "function")
72
73
  throw new Error("onNodeAttempt must be a function");
73
- _(e, r, i);
74
+ $(e, r, i);
74
75
  return;
75
76
  }
76
- if (!c) {
77
- L();
77
+ if (!n) {
78
+ x();
78
79
  return;
79
80
  }
80
- M();
81
+ _();
81
82
  }, [
82
83
  E,
83
- C,
84
+ M,
84
85
  l,
85
86
  i,
86
- c,
87
87
  n,
88
+ c,
88
89
  r,
89
90
  e,
90
91
  a,
91
- _,
92
- L,
93
- M
94
- ]), R = T(() => {
95
- if (n && l) {
92
+ $,
93
+ x,
94
+ _
95
+ ]), v = y(() => {
96
+ if (c && l) {
96
97
  if (typeof a != "function")
97
98
  throw new Error("onCardClick must be a function for MathFit cards");
98
- a({ entityId: l, type: K.MATHFIT });
99
+ a({ entityId: l, type: Z.MATHFIT });
99
100
  return;
100
101
  }
101
102
  if (f) {
@@ -106,28 +107,28 @@ const $e = ({
106
107
  s(e, r, i);
107
108
  return;
108
109
  }
109
- if (typeof y != "function")
110
+ if (typeof T != "function")
110
111
  throw new Error("onNodeView must be a function");
111
- y(e, r);
112
+ T(e, r);
112
113
  }, [
113
114
  f,
114
115
  l,
115
116
  i,
116
- n,
117
+ c,
117
118
  r,
118
119
  e,
119
120
  a,
120
121
  s,
121
- y,
122
+ T,
122
123
  u
123
- ]), d = T(
124
- (X) => {
125
- switch (X) {
124
+ ]), d = y(
125
+ (I) => {
126
+ switch (I) {
126
127
  case "teacher-card-view":
127
- R();
128
+ v();
128
129
  return;
129
130
  case "student-card-view":
130
- M();
131
+ _();
131
132
  return;
132
133
  case "teacher-card-unassign":
133
134
  p == null || p(e, r, i);
@@ -140,7 +141,7 @@ const $e = ({
140
141
  b == null || b(e, r);
141
142
  return;
142
143
  default:
143
- throw new Error(`No callback function for ${X}`);
144
+ throw new Error(`No callback function for ${I}`);
144
145
  }
145
146
  },
146
147
  [
@@ -150,151 +151,151 @@ const $e = ({
150
151
  b,
151
152
  m,
152
153
  p,
153
- M,
154
- R
154
+ _,
155
+ v
155
156
  ]
156
- ), oe = [
157
+ ), se = [
157
158
  {
158
159
  id: "teacher-card-view",
159
160
  label: f ? "Review" : "View",
160
- icon: z,
161
+ icon: B,
161
162
  disabled: !1,
162
163
  onClick: d
163
164
  },
164
165
  {
165
166
  id: "teacher-card-unassign",
166
167
  label: "Unassign",
167
- icon: _e,
168
- disabled: c ? w === "MASTERY" : !ie,
168
+ icon: Te,
169
+ disabled: w || (n ? C === "MASTERY" : !ne),
169
170
  onClick: d
170
171
  },
171
172
  {
172
173
  id: "teacher-card-redo",
173
174
  label: "Redo",
174
- icon: B,
175
- disabled: !x,
175
+ icon: K,
176
+ disabled: w || !P,
176
177
  onClick: d
177
178
  },
178
179
  {
179
180
  id: "teacher-card-assign-as-hw",
180
181
  label: "Assign as HW",
181
- icon: fe,
182
- disabled: !ne,
182
+ icon: he,
183
+ disabled: w || !ce,
183
184
  onClick: d
184
185
  }
185
- ], se = [
186
+ ], ae = [
186
187
  {
187
188
  id: "student-card-view",
188
189
  label: "Review",
189
- icon: z,
190
+ icon: B,
190
191
  disabled: !f,
191
192
  onClick: d
192
193
  },
193
194
  {
194
195
  id: "student-card-reattempt",
195
196
  label: "Reattempt",
196
- icon: B,
197
- disabled: !x,
197
+ icon: K,
198
+ disabled: !P,
198
199
  onClick: d
199
200
  }
200
- ], P = ue(
201
- () => ye({
201
+ ], X = de(
202
+ () => ke({
202
203
  canResume: E,
203
- canStart: C,
204
+ canStart: M,
204
205
  homeworkId: i,
205
- isHomeWork: c,
206
+ isHomeWork: n,
206
207
  isStudent: o,
207
208
  milestoneId: r,
208
- nodeType: w,
209
- studentId: O,
209
+ nodeType: C,
210
+ studentId: F,
210
211
  userNodeId: u
211
212
  }),
212
213
  [
213
214
  E,
214
- C,
215
+ M,
215
216
  i,
216
- c,
217
+ n,
217
218
  o,
218
219
  r,
219
- w,
220
- O,
220
+ C,
221
+ F,
221
222
  u
222
223
  ]
223
- ), ae = o && F && W || !o && n && h !== "COMPLETED" && h !== "EXPIRED" || n && W;
224
- return /* @__PURE__ */ I(we, { $position: "relative", $width: "fit-content", children: [
224
+ ), le = !o && !H && !w, ue = o && H && L || !o && c && h !== "COMPLETED" && h !== "EXPIRED" || c && L;
225
+ return /* @__PURE__ */ j(Me, { $position: "relative", $width: "fit-content", children: [
225
226
  /* @__PURE__ */ t(
226
- he,
227
+ pe,
227
228
  {
228
- onClick: o ? ce : R,
229
+ onClick: o ? oe : v,
229
230
  label: "homework-card",
230
- analyticsLabel: P.analyticsLabel,
231
- analyticsProps: P.analyticsProps,
232
- disabled: ae,
231
+ analyticsLabel: X.analyticsLabel,
232
+ analyticsProps: X.analyticsProps,
233
+ disabled: ue,
233
234
  children: /* @__PURE__ */ t(
234
- pe,
235
+ we,
235
236
  {
236
- entityType: v,
237
- header: q,
238
- isInQueue: g,
239
- isMilestone: S === "milestone",
237
+ entityType: g,
238
+ header: G,
239
+ isInQueue: O,
240
+ isMilestone: V === "milestone",
240
241
  nodeData: e,
241
- puzzleHWCardRef: G,
242
+ puzzleHWCardRef: N,
242
243
  score: J,
243
244
  state: h,
244
- studentContainerRef: k,
245
+ studentContainerRef: R,
245
246
  subHeader: U,
246
- userType: V
247
+ userType: W
247
248
  }
248
249
  )
249
250
  }
250
251
  ),
251
- o && !c && !n && /* @__PURE__ */ t(
252
- Y,
252
+ o && !n && !c && /* @__PURE__ */ t(
253
+ q,
253
254
  {
254
255
  $width: 200,
255
- options: se,
256
- triggerRef: k,
257
- visible: te,
256
+ options: ae,
257
+ triggerRef: R,
258
+ visible: ie,
258
259
  shouldOpenOnRight: !1
259
260
  }
260
261
  ),
261
- !o && !F && !n && /* @__PURE__ */ I(Ce, { $position: "absolute", $width: "fit-content", $borderRadiusX: 2, children: [
262
+ le && /* @__PURE__ */ j(Ee, { $position: "absolute", $width: "fit-content", $borderRadiusX: 2, children: [
262
263
  /* @__PURE__ */ t(
263
- Z,
264
+ A,
264
265
  {
265
266
  renderAs: "primary",
266
267
  tooltipItem: "Review",
267
268
  position: "bottom",
268
269
  zIndex: 6,
269
270
  parentWidth: "100%",
270
- hidden: H || h !== "WAIT_FOR_REVIEW" && c,
271
+ hidden: S || h !== "WAIT_FOR_REVIEW" && n,
271
272
  children: /* @__PURE__ */ t(
272
- Ee,
273
+ _e,
273
274
  {
274
275
  $alignItems: "center",
275
276
  $justifyContent: "center",
276
- ref: $,
277
- onClick: re,
278
- children: /* @__PURE__ */ t(de, { width: 16, height: 16 })
277
+ ref: k,
278
+ onClick: te,
279
+ children: /* @__PURE__ */ t(me, { width: 16, height: 16 })
279
280
  }
280
281
  )
281
282
  }
282
283
  ),
283
284
  /* @__PURE__ */ t(
284
- Y,
285
+ q,
285
286
  {
286
- options: oe,
287
- triggerRef: $,
288
- visible: H,
287
+ options: se,
288
+ triggerRef: k,
289
+ visible: S,
289
290
  shouldOpenOnRight: Q,
290
291
  $width: 144
291
292
  }
292
293
  )
293
294
  ] }),
294
- g && /* @__PURE__ */ t(Me, { $background: "WHITE_5", children: /* @__PURE__ */ t(Te, { $heightX: 1, $widthX: 6, children: /* @__PURE__ */ t(Z, { renderAs: "primary", tooltipItem: "Not visible to student", position: "bottom", children: /* @__PURE__ */ t(me, { $heightX: 1, $widthX: 6 }) }) }) })
295
+ O && /* @__PURE__ */ t(ye, { $background: "WHITE_5", children: /* @__PURE__ */ t($e, { $heightX: 1, $widthX: 6, children: /* @__PURE__ */ t(A, { renderAs: "primary", tooltipItem: "Not visible to student", position: "bottom", children: /* @__PURE__ */ t(be, { $heightX: 1, $widthX: 6 }) }) }) })
295
296
  ] });
296
- }, ze = le($e);
297
+ }, Ke = fe(Re);
297
298
  export {
298
- ze as default
299
+ Ke as default
299
300
  };
300
301
  //# 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 renderAs: 'homework' | 'milestone';\n score: number | null;\n shouldOpenOnRight: boolean;\n state: TSheetStates;\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 renderAs,\n score,\n shouldOpenOnRight,\n state,\n studentId,\n subHeader,\n userMilestoneId,\n userType,\n}) => {\n const isHomeWork = renderAs === 'homework';\n const {\n node_type: nodeType,\n permissions,\n user_node_id: userNodeId,\n user_milestone_id: nodeDataMilestoneId,\n } = nodeData;\n\n const milestoneId = userMilestoneId || nodeDataMilestoneId || '';\n const isPuzzleCard = nodeType === 'PUZZLE_CARD';\n const isMathFitCard = entityType === EHWCardListEntityType.MATHFIT_TEST;\n const isSheetLocked = state === 'LOCKED';\n\n const teacherContainerRef = useRef<HTMLDivElement>(null) as React.RefObject<HTMLDivElement>;\n const studentContainerRef = useRef<HTMLDivElement>(null) as React.RefObject<HTMLDivElement>;\n const { menuVisible: teacherMenuVisible, onMenuClick: onTeacherMenuClick } =\n useContextMenuClickHandler(teacherContainerRef);\n const { menuVisible: studentMenuVisible, onMenuClick: onStudentMenuClick } =\n useContextMenuClickHandler(studentContainerRef);\n\n const {\n can_start: canStart,\n can_resume: canResume,\n can_review: canReview,\n can_unassign: canUnassign,\n can_reset: canReset,\n can_assign_as_homework: canAssignAsHw,\n } = permissions;\n const isStudent = userType === 'STUDENT';\n\n const onStudentViewSheet = useCallback(() => {\n if (canReview) {\n if (typeof onNodeReview !== 'function') {\n throw new Error('onReview must be a function');\n }\n\n if (!userNodeId) {\n throw new Error('user node id must be present to review the sheet');\n }\n onNodeReview(nodeData, milestoneId);\n\n return;\n }\n }, [canReview, onNodeReview, userNodeId, nodeData, milestoneId]);\n\n const onStudentCardClick = useCallback(() => {\n // Handle MathFit card clicks\n if (isMathFitCard && entityId) {\n if (typeof onCardClick !== 'function') {\n throw new Error('onCardClick must be a function for MathFit cards');\n }\n\n onCardClick({ entityId, type: ECardType.MATHFIT });\n\n return;\n }\n\n if (canStart || canResume) {\n if (typeof onNodeAttempt !== 'function') {\n throw new Error('onNodeAttempt must be a function');\n }\n\n onNodeAttempt(nodeData, milestoneId, homeworkId);\n\n return;\n }\n\n if (!isHomeWork) {\n onStudentMenuClick();\n\n return;\n }\n onStudentViewSheet();\n }, [\n canResume,\n canStart,\n entityId,\n homeworkId,\n isHomeWork,\n isMathFitCard,\n milestoneId,\n nodeData,\n onCardClick,\n onNodeAttempt,\n onStudentMenuClick,\n onStudentViewSheet,\n ]);\n\n const onTeacherCardClick = useCallback(() => {\n // Handle MathFit card clicks\n if (isMathFitCard && entityId) {\n if (typeof onCardClick !== 'function') {\n throw new Error('onCardClick must be a function for MathFit cards');\n }\n\n onCardClick({ entityId, type: ECardType.MATHFIT });\n\n return;\n }\n\n if (canReview) {\n if (typeof onNodeReview !== 'function') {\n throw new Error('onNodeReview must be a function');\n }\n\n if (!userNodeId) {\n throw new Error('user node id must be present to review the sheet');\n }\n onNodeReview(nodeData, milestoneId, homeworkId);\n\n return;\n }\n\n if (typeof onNodeView !== 'function') {\n throw new Error('onNodeView must be a function');\n }\n\n onNodeView(nodeData, milestoneId);\n }, [\n canReview,\n entityId,\n homeworkId,\n isMathFitCard,\n milestoneId,\n nodeData,\n onCardClick,\n onNodeReview,\n onNodeView,\n userNodeId,\n ]);\n\n const handleOnMenuOptionClick = useCallback(\n (optionId: string) => {\n switch (optionId) {\n case 'teacher-card-view':\n onTeacherCardClick();\n\n return;\n case 'student-card-view':\n onStudentViewSheet();\n\n return;\n case 'teacher-card-unassign':\n onNodeUnassign?.(nodeData, milestoneId, homeworkId);\n\n return;\n case 'student-card-reattempt':\n case 'teacher-card-redo':\n onNodeReattempt?.(nodeData, milestoneId);\n\n return;\n\n case 'teacher-card-assign-as-hw':\n onNodeAssignAsHomework?.(nodeData, milestoneId);\n\n return;\n\n default:\n throw new Error(`No callback function for ${optionId}`);\n }\n },\n [\n homeworkId,\n milestoneId,\n nodeData,\n onNodeAssignAsHomework,\n onNodeReattempt,\n onNodeUnassign,\n onStudentViewSheet,\n onTeacherCardClick,\n ],\n );\n\n const teacherOptions = [\n {\n id: 'teacher-card-view',\n label: canReview ? 'Review' : 'View',\n icon: Eye2Icon,\n disabled: false,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'teacher-card-unassign',\n label: 'Unassign',\n icon: Styled.StyledMinus2Icon,\n disabled: isHomeWork ? nodeType === 'MASTERY' : !canUnassign,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'teacher-card-redo',\n label: 'Redo',\n icon: RedoIcon,\n disabled: !canReset,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'teacher-card-assign-as-hw',\n label: 'Assign as HW',\n icon: Home2Icon,\n disabled: !canAssignAsHw,\n onClick: handleOnMenuOptionClick,\n },\n ];\n\n const studentOptions = [\n {\n id: 'student-card-view',\n label: 'Review',\n icon: Eye2Icon,\n disabled: !canReview,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'student-card-reattempt',\n label: 'Reattempt',\n icon: RedoIcon,\n disabled: !canReset,\n onClick: handleOnMenuOptionClick,\n },\n ];\n\n const analyticsLabel = useMemo(\n () =>\n getCardAnalyticProps({\n canResume,\n canStart,\n homeworkId,\n isHomeWork,\n isStudent,\n milestoneId,\n nodeType,\n studentId,\n userNodeId,\n }),\n [\n canResume,\n canStart,\n homeworkId,\n isHomeWork,\n isStudent,\n milestoneId,\n nodeType,\n studentId,\n userNodeId,\n ],\n );\n\n const isClickableDisabled =\n (isStudent && isPuzzleCard && isSheetLocked) ||\n (!isStudent && isMathFitCard && state !== 'COMPLETED' && state !== 'EXPIRED') ||\n (isMathFitCard && isSheetLocked);\n\n return (\n <Styled.CardContainer $position=\"relative\" $width=\"fit-content\">\n <Clickable\n onClick={isStudent ? onStudentCardClick : onTeacherCardClick}\n label=\"homework-card\"\n analyticsLabel={analyticsLabel.analyticsLabel}\n analyticsProps={analyticsLabel.analyticsProps}\n disabled={isClickableDisabled}\n >\n <HomeworkView\n entityType={entityType}\n header={header}\n isInQueue={isInQueue}\n isMilestone={renderAs === 'milestone'}\n nodeData={nodeData}\n puzzleHWCardRef={puzzleHWCardRef}\n score={score}\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","renderAs","score","shouldOpenOnRight","state","studentId","subHeader","userMilestoneId","userType","isHomeWork","nodeType","permissions","userNodeId","nodeDataMilestoneId","milestoneId","isPuzzleCard","isMathFitCard","EHWCardListEntityType","isSheetLocked","teacherContainerRef","useRef","studentContainerRef","teacherMenuVisible","onTeacherMenuClick","useContextMenuClickHandler","studentMenuVisible","onStudentMenuClick","canStart","canResume","canReview","canUnassign","canReset","canAssignAsHw","isStudent","onStudentViewSheet","useCallback","onStudentCardClick","ECardType","onTeacherCardClick","handleOnMenuOptionClick","optionId","teacherOptions","Eye2Icon","Styled.StyledMinus2Icon","RedoIcon","Home2Icon","studentOptions","analyticsLabel","useMemo","getCardAnalyticProps","isClickableDisabled","Styled.CardContainer","jsx","Clickable","HomeworkView","CardMenuOptions","jsxs","Styled.MenuWrapper","ArrowTooltip","Styled.CardKebabMenuWrapper","MoreVerticalIcon","Styled.BlurContainer","Styled.BlurFlexView","FlexView","HomeworkCard$1","memo"],"mappings":"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"}
1
+ {"version":3,"file":"homework-card.js","sources":["../../../src/features/homework/homework-card.tsx"],"sourcesContent":["import { memo, useCallback, useMemo, useRef, type FC } from 'react';\n\nimport Eye2Icon from '../../assets/line-icons/icons/eye2';\nimport Home2Icon from '../../assets/line-icons/icons/home2';\nimport MoreVerticalIcon from '../../assets/line-icons/icons/more-vertical';\nimport RedoIcon from '../../assets/line-icons/icons/redo';\nimport {\n ECardType,\n type INodeCardCallbacks,\n type INodeDataProps,\n type TSheetStates,\n} from '../chapters-v2/comps/node-card/node-card-types';\nimport ArrowTooltip from '../ui/arrow-tooltip/arrow-tooltip';\nimport Clickable from '../ui/buttons/clickable/clickable';\nimport useContextMenuClickHandler from '../ui/hooks/use-context-menu-click-handler';\nimport FlexView from '../ui/layout/flex-view';\nimport type { TUserTypes } from '../ui/types';\nimport CardMenuOptions from './card-menu-options';\nimport HomeworkView from './homework-card-view';\nimport { EHWCardListEntityType } from './hw-card-list/hw-card-list-types';\nimport * as Styled from './styles';\nimport { getCardAnalyticProps } from './utils';\n\ninterface IHomeworkCardProps extends INodeCardCallbacks {\n entityId?: string;\n entityType?: EHWCardListEntityType;\n header: string;\n homeworkId?: string;\n isInQueue?: boolean;\n nodeData: INodeDataProps;\n puzzleHWCardRef?: React.RefObject<HTMLDivElement>;\n isTrialSession?: boolean;\n renderAs: 'homework' | 'milestone';\n score: number | null;\n shouldOpenOnRight: boolean;\n state: TSheetStates;\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 renderAs,\n score,\n shouldOpenOnRight,\n state,\n studentId,\n subHeader,\n userMilestoneId,\n userType,\n puzzleHWCardRef,\n isTrialSession,\n}) => {\n const isHomeWork = renderAs === 'homework';\n const {\n node_type: nodeType,\n permissions,\n user_node_id: userNodeId,\n user_milestone_id: nodeDataMilestoneId,\n } = nodeData;\n\n const milestoneId = userMilestoneId || nodeDataMilestoneId || '';\n const isPuzzleCard = nodeType === 'PUZZLE_CARD';\n const isMathFitCard = entityType === EHWCardListEntityType.MATHFIT_TEST;\n const isSheetLocked = state === 'LOCKED';\n\n const teacherContainerRef = useRef<HTMLDivElement>(null) as React.RefObject<HTMLDivElement>;\n const studentContainerRef = useRef<HTMLDivElement>(null) as React.RefObject<HTMLDivElement>;\n const { menuVisible: teacherMenuVisible, onMenuClick: onTeacherMenuClick } =\n useContextMenuClickHandler(teacherContainerRef);\n const { menuVisible: studentMenuVisible, onMenuClick: onStudentMenuClick } =\n useContextMenuClickHandler(studentContainerRef);\n\n const {\n can_start: canStart,\n can_resume: canResume,\n can_review: canReview,\n can_unassign: canUnassign,\n can_reset: canReset,\n can_assign_as_homework: canAssignAsHw,\n } = permissions;\n const isStudent = userType === 'STUDENT';\n\n const onStudentViewSheet = useCallback(() => {\n if (canReview) {\n if (typeof onNodeReview !== 'function') {\n throw new Error('onReview must be a function');\n }\n\n if (!userNodeId) {\n throw new Error('user node id must be present to review the sheet');\n }\n onNodeReview(nodeData, milestoneId);\n\n return;\n }\n }, [canReview, onNodeReview, userNodeId, nodeData, milestoneId]);\n\n const onStudentCardClick = useCallback(() => {\n // Handle MathFit card clicks\n if (isMathFitCard && entityId) {\n if (typeof onCardClick !== 'function') {\n throw new Error('onCardClick must be a function for MathFit cards');\n }\n\n onCardClick({ entityId, type: ECardType.MATHFIT });\n\n return;\n }\n\n if (canStart || canResume) {\n if (typeof onNodeAttempt !== 'function') {\n throw new Error('onNodeAttempt must be a function');\n }\n\n onNodeAttempt(nodeData, milestoneId, homeworkId);\n\n return;\n }\n\n if (!isHomeWork) {\n onStudentMenuClick();\n\n return;\n }\n onStudentViewSheet();\n }, [\n canResume,\n canStart,\n entityId,\n homeworkId,\n isHomeWork,\n isMathFitCard,\n milestoneId,\n nodeData,\n onCardClick,\n onNodeAttempt,\n onStudentMenuClick,\n onStudentViewSheet,\n ]);\n\n const onTeacherCardClick = useCallback(() => {\n // Handle MathFit card clicks\n if (isMathFitCard && entityId) {\n if (typeof onCardClick !== 'function') {\n throw new Error('onCardClick must be a function for MathFit cards');\n }\n\n onCardClick({ entityId, type: ECardType.MATHFIT });\n\n return;\n }\n\n if (canReview) {\n if (typeof onNodeReview !== 'function') {\n throw new Error('onNodeReview must be a function');\n }\n\n if (!userNodeId) {\n throw new Error('user node id must be present to review the sheet');\n }\n onNodeReview(nodeData, milestoneId, homeworkId);\n\n return;\n }\n\n if (typeof onNodeView !== 'function') {\n throw new Error('onNodeView must be a function');\n }\n\n onNodeView(nodeData, milestoneId);\n }, [\n canReview,\n entityId,\n homeworkId,\n isMathFitCard,\n milestoneId,\n nodeData,\n onCardClick,\n onNodeReview,\n onNodeView,\n userNodeId,\n ]);\n\n const handleOnMenuOptionClick = useCallback(\n (optionId: string) => {\n switch (optionId) {\n case 'teacher-card-view':\n onTeacherCardClick();\n\n return;\n case 'student-card-view':\n onStudentViewSheet();\n\n return;\n case 'teacher-card-unassign':\n onNodeUnassign?.(nodeData, milestoneId, homeworkId);\n\n return;\n case 'student-card-reattempt':\n case 'teacher-card-redo':\n onNodeReattempt?.(nodeData, milestoneId);\n\n return;\n\n case 'teacher-card-assign-as-hw':\n onNodeAssignAsHomework?.(nodeData, milestoneId);\n\n return;\n\n default:\n throw new Error(`No callback function for ${optionId}`);\n }\n },\n [\n homeworkId,\n milestoneId,\n nodeData,\n onNodeAssignAsHomework,\n onNodeReattempt,\n onNodeUnassign,\n onStudentViewSheet,\n onTeacherCardClick,\n ],\n );\n\n const teacherOptions = [\n {\n id: 'teacher-card-view',\n label: canReview ? 'Review' : 'View',\n icon: Eye2Icon,\n disabled: false,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'teacher-card-unassign',\n label: 'Unassign',\n icon: Styled.StyledMinus2Icon,\n disabled: isTrialSession || (isHomeWork ? nodeType === 'MASTERY' : !canUnassign),\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'teacher-card-redo',\n label: 'Redo',\n icon: RedoIcon,\n disabled: isTrialSession || !canReset,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'teacher-card-assign-as-hw',\n label: 'Assign as HW',\n icon: Home2Icon,\n disabled: isTrialSession || !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 showMoreMenu = !isStudent && !isPuzzleCard && !isTrialSession;\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 score={score}\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 {showMoreMenu && (\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","renderAs","score","shouldOpenOnRight","state","studentId","subHeader","userMilestoneId","userType","puzzleHWCardRef","isTrialSession","isHomeWork","nodeType","permissions","userNodeId","nodeDataMilestoneId","milestoneId","isPuzzleCard","isMathFitCard","EHWCardListEntityType","isSheetLocked","teacherContainerRef","useRef","studentContainerRef","teacherMenuVisible","onTeacherMenuClick","useContextMenuClickHandler","studentMenuVisible","onStudentMenuClick","canStart","canResume","canReview","canUnassign","canReset","canAssignAsHw","isStudent","onStudentViewSheet","useCallback","onStudentCardClick","ECardType","onTeacherCardClick","handleOnMenuOptionClick","optionId","teacherOptions","Eye2Icon","Styled.StyledMinus2Icon","RedoIcon","Home2Icon","studentOptions","analyticsLabel","useMemo","getCardAnalyticProps","showMoreMenu","isClickableDisabled","Styled.CardContainer","jsx","Clickable","HomeworkView","CardMenuOptions","jsxs","Styled.MenuWrapper","ArrowTooltip","Styled.CardKebabMenuWrapper","MoreVerticalIcon","Styled.BlurContainer","Styled.BlurFlexView","FlexView","HomeworkCard$1","memo"],"mappings":";;;;;;;;;;;;;;;;AA0CA,MAAMA,KAAuC,CAAC;AAAA;AAAA,EAE5C,UAAAC;AAAA,EACA,eAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,cAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,YAAAC;AAAA,EACA,wBAAAC;AAAA,EACA,aAAAC;AAAA,EAEA,UAAAC;AAAA,EACA,YAAAC;AAAA,EACA,QAAAC;AAAA,EACA,YAAAC;AAAA,EACA,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,OAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,OAAAC;AAAA,EACA,WAAAC;AAAA,EACA,WAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,UAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,gBAAAC;AACF,MAAM;AACJ,QAAMC,IAAaV,MAAa,YAC1B;AAAA,IACJ,WAAWW;AAAA,IACX,aAAAC;AAAA,IACA,cAAcC;AAAA,IACd,mBAAmBC;AAAA,EACjB,IAAA3B,GAEE4B,IAAcT,KAAmBQ,MAAuB,IACxDE,IAAeL,MAAa,eAC5BM,IAAgBrB,MAAesB,GAAsB,cACrDC,IAAgBhB,MAAU,UAE1BiB,IAAsBC,EAAuB,IAAI,GACjDC,IAAsBD,EAAuB,IAAI,GACjD,EAAE,aAAaE,GAAoB,aAAaC,OACpDC,EAA2BL,CAAmB,GAC1C,EAAE,aAAaM,IAAoB,aAAaC,MACpDF,EAA2BH,CAAmB,GAE1C;AAAA,IACJ,WAAWM;AAAA,IACX,YAAYC;AAAA,IACZ,YAAYC;AAAA,IACZ,cAAcC;AAAA,IACd,WAAWC;AAAA,IACX,wBAAwBC;AAAA,EACtB,IAAArB,IACEsB,IAAY3B,MAAa,WAEzB4B,IAAqBC,EAAY,MAAM;AAC3C,QAAIN,GAAW;AACT,UAAA,OAAOxC,KAAiB;AACpB,cAAA,IAAI,MAAM,6BAA6B;AAG/C,UAAI,CAACuB;AACG,cAAA,IAAI,MAAM,kDAAkD;AAEpE,MAAAvB,EAAaH,GAAU4B,CAAW;AAElC;AAAA,IACF;AAAA,EAAA,GACC,CAACe,GAAWxC,GAAcuB,GAAY1B,GAAU4B,CAAW,CAAC,GAEzDsB,KAAqBD,EAAY,MAAM;AAE3C,QAAInB,KAAiBtB,GAAU;AACzB,UAAA,OAAOD,KAAgB;AACnB,cAAA,IAAI,MAAM,kDAAkD;AAGpE,MAAAA,EAAY,EAAE,UAAAC,GAAU,MAAM2C,EAAU,QAAS,CAAA;AAEjD;AAAA,IACF;AAEA,QAAIV,KAAYC,GAAW;AACrB,UAAA,OAAOzC,KAAkB;AACrB,cAAA,IAAI,MAAM,kCAAkC;AAGtC,MAAAA,EAAAD,GAAU4B,GAAajB,CAAU;AAE/C;AAAA,IACF;AAEA,QAAI,CAACY,GAAY;AACI,MAAAiB;AAEnB;AAAA,IACF;AACmB,IAAAQ;EAAA,GAClB;AAAA,IACDN;AAAA,IACAD;AAAA,IACAjC;AAAA,IACAG;AAAA,IACAY;AAAA,IACAO;AAAA,IACAF;AAAA,IACA5B;AAAA,IACAO;AAAA,IACAN;AAAA,IACAuC;AAAA,IACAQ;AAAA,EAAA,CACD,GAEKI,IAAqBH,EAAY,MAAM;AAE3C,QAAInB,KAAiBtB,GAAU;AACzB,UAAA,OAAOD,KAAgB;AACnB,cAAA,IAAI,MAAM,kDAAkD;AAGpE,MAAAA,EAAY,EAAE,UAAAC,GAAU,MAAM2C,EAAU,QAAS,CAAA;AAEjD;AAAA,IACF;AAEA,QAAIR,GAAW;AACT,UAAA,OAAOxC,KAAiB;AACpB,cAAA,IAAI,MAAM,iCAAiC;AAGnD,UAAI,CAACuB;AACG,cAAA,IAAI,MAAM,kDAAkD;AAEvD,MAAAvB,EAAAH,GAAU4B,GAAajB,CAAU;AAE9C;AAAA,IACF;AAEI,QAAA,OAAON,KAAe;AAClB,YAAA,IAAI,MAAM,+BAA+B;AAGjD,IAAAA,EAAWL,GAAU4B,CAAW;AAAA,EAAA,GAC/B;AAAA,IACDe;AAAA,IACAnC;AAAA,IACAG;AAAA,IACAmB;AAAA,IACAF;AAAA,IACA5B;AAAA,IACAO;AAAA,IACAJ;AAAA,IACAE;AAAA,IACAqB;AAAA,EAAA,CACD,GAEK2B,IAA0BJ;AAAA,IAC9B,CAACK,MAAqB;AACpB,cAAQA,GAAU;AAAA,QAChB,KAAK;AACgB,UAAAF;AAEnB;AAAA,QACF,KAAK;AACgB,UAAAJ;AAEnB;AAAA,QACF,KAAK;AACc,UAAA5C,KAAA,QAAAA,EAAAJ,GAAU4B,GAAajB;AAExC;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AACH,UAAAT,KAAA,QAAAA,EAAkBF,GAAU4B;AAE5B;AAAA,QAEF,KAAK;AACH,UAAAtB,KAAA,QAAAA,EAAyBN,GAAU4B;AAEnC;AAAA,QAEF;AACE,gBAAM,IAAI,MAAM,4BAA4B0B,CAAQ,EAAE;AAAA,MAC1D;AAAA,IACF;AAAA,IACA;AAAA,MACE3C;AAAA,MACAiB;AAAA,MACA5B;AAAA,MACAM;AAAA,MACAJ;AAAA,MACAE;AAAA,MACA4C;AAAA,MACAI;AAAA,IACF;AAAA,EAAA,GAGIG,KAAiB;AAAA,IACrB;AAAA,MACE,IAAI;AAAA,MACJ,OAAOZ,IAAY,WAAW;AAAA,MAC9B,MAAMa;AAAA,MACN,UAAU;AAAA,MACV,SAASH;AAAA,IACX;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,OAAO;AAAA,MACP,MAAMI;AAAAA,MACN,UAAUnC,MAAmBC,IAAaC,MAAa,YAAY,CAACoB;AAAA,MACpE,SAASS;AAAA,IACX;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,OAAO;AAAA,MACP,MAAMK;AAAA,MACN,UAAUpC,KAAkB,CAACuB;AAAA,MAC7B,SAASQ;AAAA,IACX;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,OAAO;AAAA,MACP,MAAMM;AAAA,MACN,UAAUrC,KAAkB,CAACwB;AAAA,MAC7B,SAASO;AAAA,IACX;AAAA,EAAA,GAGIO,KAAiB;AAAA,IACrB;AAAA,MACE,IAAI;AAAA,MACJ,OAAO;AAAA,MACP,MAAMJ;AAAA,MACN,UAAU,CAACb;AAAA,MACX,SAASU;AAAA,IACX;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,OAAO;AAAA,MACP,MAAMK;AAAA,MACN,UAAU,CAACb;AAAA,MACX,SAASQ;AAAA,IACX;AAAA,EAAA,GAGIQ,IAAiBC;AAAA,IACrB,MACEC,GAAqB;AAAA,MACnB,WAAArB;AAAA,MACA,UAAAD;AAAA,MACA,YAAA9B;AAAA,MACA,YAAAY;AAAA,MACA,WAAAwB;AAAA,MACA,aAAAnB;AAAA,MACA,UAAAJ;AAAA,MACA,WAAAP;AAAA,MACA,YAAAS;AAAA,IAAA,CACD;AAAA,IACH;AAAA,MACEgB;AAAA,MACAD;AAAA,MACA9B;AAAA,MACAY;AAAA,MACAwB;AAAA,MACAnB;AAAA,MACAJ;AAAA,MACAP;AAAA,MACAS;AAAA,IACF;AAAA,EAAA,GAGIsC,KAAe,CAACjB,KAAa,CAAClB,KAAgB,CAACP,GAC/C2C,KACHlB,KAAalB,KAAgBG,KAC7B,CAACe,KAAajB,KAAiBd,MAAU,eAAeA,MAAU,aAClEc,KAAiBE;AAEpB,2BACGkC,IAAA,EAAqB,WAAU,YAAW,QAAO,eAChD,UAAA;AAAA,IAAA,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,SAASrB,IAAYG,KAAqBE;AAAA,QAC1C,OAAM;AAAA,QACN,gBAAgBS,EAAe;AAAA,QAC/B,gBAAgBA,EAAe;AAAA,QAC/B,UAAUI;AAAA,QAEV,UAAA,gBAAAE;AAAA,UAACE;AAAAA,UAAA;AAAA,YACC,YAAA5D;AAAA,YACA,QAAAC;AAAA,YACA,WAAAE;AAAA,YACA,aAAaC,MAAa;AAAA,YAC1B,UAAAb;AAAA,YACA,iBAAAqB;AAAA,YACA,OAAAP;AAAA,YACA,OAAAE;AAAA,YACA,qBAAAmB;AAAA,YACA,WAAAjB;AAAA,YACA,UAAAE;AAAA,UAAA;AAAA,QACF;AAAA,MAAA;AAAA,IACF;AAAA,IACC2B,KAAa,CAACxB,KAAc,CAACO,KAC5B,gBAAAqC;AAAA,MAACG;AAAA,MAAA;AAAA,QACC,QAAQ;AAAA,QACR,SAASV;AAAA,QACT,YAAYzB;AAAA,QACZ,SAASI;AAAA,QACT,mBAAmB;AAAA,MAAA;AAAA,IACrB;AAAA,IAEDyB,MACE,gBAAAO,EAAAC,IAAA,EAAmB,WAAU,YAAW,QAAO,eAAc,gBAAgB,GAC5E,UAAA;AAAA,MAAA,gBAAAL;AAAA,QAACM;AAAA,QAAA;AAAA,UACC,UAAS;AAAA,UACT,aAAY;AAAA,UACZ,UAAS;AAAA,UACT,QAAQ;AAAA,UACR,aAAY;AAAA,UACZ,QAAQrC,KAAuBpB,MAAU,qBAAqBO;AAAA,UAE9D,UAAA,gBAAA4C;AAAA,YAACO;AAAAA,YAAA;AAAA,cACC,aAAY;AAAA,cACZ,iBAAgB;AAAA,cAChB,KAAKzC;AAAA,cACL,SAASI;AAAA,cAET,UAAC,gBAAA8B,EAAAQ,IAAA,EAAiB,OAAO,IAAI,QAAQ,IAAI;AAAA,YAAA;AAAA,UAC3C;AAAA,QAAA;AAAA,MACF;AAAA,MACA,gBAAAR;AAAA,QAACG;AAAA,QAAA;AAAA,UACC,SAASf;AAAA,UACT,YAAYtB;AAAA,UACZ,SAASG;AAAA,UACT,mBAAArB;AAAA,UACA,QAAQ;AAAA,QAAA;AAAA,MACV;AAAA,IAAA,GACF;AAAA,IAEDH,KACC,gBAAAuD,EAACS,IAAA,EAAqB,aAAY,WAChC,UAAA,gBAAAT,EAACU,IAAA,EAAoB,UAAU,GAAG,SAAS,GACzC,UAAC,gBAAAV,EAAAM,GAAA,EAAa,UAAS,WAAU,aAAY,0BAAyB,UAAS,UAC7E,UAAA,gBAAAN,EAACW,IAAS,EAAA,UAAU,GAAG,SAAS,EAAG,CAAA,EACrC,CAAA,EACF,CAAA,GACF;AAAA,EAEJ,EAAA,CAAA;AAEJ,GAEeC,KAAAC,GAAKjF,EAAY;"}