@cuemath/leap 3.5.65 → 3.5.66-link0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) hide show
  1. package/dist/features/cue-canvas/bottombar/homework-controls.js.map +1 -1
  2. package/dist/features/cue-canvas/sidebar/sidebar.js +4 -4
  3. package/dist/features/cue-canvas/sidebar/sidebar.js.map +1 -1
  4. package/dist/features/cue-canvas/toolbar/toolbar.js +21 -17
  5. package/dist/features/cue-canvas/toolbar/toolbar.js.map +1 -1
  6. package/dist/features/cue-canvas/toolbar/whiteboard-toolbar.js +23 -13
  7. package/dist/features/cue-canvas/toolbar/whiteboard-toolbar.js.map +1 -1
  8. package/dist/features/milestone/create/api/milestone-config.js.map +1 -1
  9. package/dist/features/parent-dashboard/modals/trial-report/trial-report.js +1 -1
  10. package/dist/features/parent-dashboard/modals/trial-report/trial-report.js.map +1 -1
  11. package/dist/features/trial-session/api/trial-home.js +10 -16
  12. package/dist/features/trial-session/api/trial-home.js.map +1 -1
  13. package/dist/features/trial-session/api/trial-session-report.js +16 -0
  14. package/dist/features/trial-session/api/trial-session-report.js.map +1 -0
  15. package/dist/features/trial-session/api/trial-topics.js +9 -0
  16. package/dist/features/trial-session/api/trial-topics.js.map +1 -0
  17. package/dist/features/trial-session/comps/background-grid/background-grid-utils.js +62 -50
  18. package/dist/features/trial-session/comps/background-grid/background-grid-utils.js.map +1 -1
  19. package/dist/features/trial-session/comps/class-preference/class-preference-styled.js +5 -14
  20. package/dist/features/trial-session/comps/class-preference/class-preference-styled.js.map +1 -1
  21. package/dist/features/trial-session/comps/class-preference/class-preference.js +55 -53
  22. package/dist/features/trial-session/comps/class-preference/class-preference.js.map +1 -1
  23. package/dist/features/trial-session/comps/communication-slide/communication-slide-constants.js +3 -2
  24. package/dist/features/trial-session/comps/communication-slide/communication-slide-constants.js.map +1 -1
  25. package/dist/features/trial-session/comps/confirmation-modal/hooks/use-confirmation-modal.js +27 -27
  26. package/dist/features/trial-session/comps/confirmation-modal/hooks/use-confirmation-modal.js.map +1 -1
  27. package/dist/features/trial-session/comps/learning-session/learning-session-styled.js +19 -18
  28. package/dist/features/trial-session/comps/learning-session/learning-session-styled.js.map +1 -1
  29. package/dist/features/trial-session/comps/learning-session/learning-session.js +34 -43
  30. package/dist/features/trial-session/comps/learning-session/learning-session.js.map +1 -1
  31. package/dist/features/trial-session/comps/navigation-bar/index.js +56 -58
  32. package/dist/features/trial-session/comps/navigation-bar/index.js.map +1 -1
  33. package/dist/features/trial-session/comps/offering-information/offering-information-constants.js +29 -6
  34. package/dist/features/trial-session/comps/offering-information/offering-information-constants.js.map +1 -1
  35. package/dist/features/trial-session/comps/offering-information/offering-information.js +74 -64
  36. package/dist/features/trial-session/comps/offering-information/offering-information.js.map +1 -1
  37. package/dist/features/trial-session/comps/school-goals/school-goals-styled.js +10 -9
  38. package/dist/features/trial-session/comps/school-goals/school-goals-styled.js.map +1 -1
  39. package/dist/features/trial-session/comps/school-goals/school-goals-view.js +40 -39
  40. package/dist/features/trial-session/comps/school-goals/school-goals-view.js.map +1 -1
  41. package/dist/features/trial-session/comps/school-goals/school-goals.js +39 -37
  42. package/dist/features/trial-session/comps/school-goals/school-goals.js.map +1 -1
  43. package/dist/features/trial-session/comps/session-insights/session-insights-styled.js +12 -20
  44. package/dist/features/trial-session/comps/session-insights/session-insights-styled.js.map +1 -1
  45. package/dist/features/trial-session/comps/session-insights/session-insights.js +64 -63
  46. package/dist/features/trial-session/comps/session-insights/session-insights.js.map +1 -1
  47. package/dist/features/trial-session/comps/session-overview/session-overview-styled.js +13 -13
  48. package/dist/features/trial-session/comps/session-overview/session-overview-styled.js.map +1 -1
  49. package/dist/features/trial-session/comps/session-overview/session-overview-utils.js +23 -4
  50. package/dist/features/trial-session/comps/session-overview/session-overview-utils.js.map +1 -1
  51. package/dist/features/trial-session/comps/session-overview/session-overview.js +20 -20
  52. package/dist/features/trial-session/comps/session-overview/session-overview.js.map +1 -1
  53. package/dist/features/trial-session/comps/session-progress-summary/session-progress-summary-styled.js +61 -0
  54. package/dist/features/trial-session/comps/session-progress-summary/session-progress-summary-styled.js.map +1 -0
  55. package/dist/features/trial-session/comps/session-progress-summary/session-progress-summary-types.js +5 -0
  56. package/dist/features/trial-session/comps/session-progress-summary/session-progress-summary-types.js.map +1 -0
  57. package/dist/features/trial-session/comps/session-progress-summary/session-progress-summary-view.js +135 -0
  58. package/dist/features/trial-session/comps/session-progress-summary/session-progress-summary-view.js.map +1 -0
  59. package/dist/features/trial-session/comps/session-progress-summary/session-progress-summary.js +53 -0
  60. package/dist/features/trial-session/comps/session-progress-summary/session-progress-summary.js.map +1 -0
  61. package/dist/features/trial-session/comps/session-report/report-404/report-404.js +15 -16
  62. package/dist/features/trial-session/comps/session-report/report-404/report-404.js.map +1 -1
  63. package/dist/features/trial-session/comps/session-report/session-report.js +35 -33
  64. package/dist/features/trial-session/comps/session-report/session-report.js.map +1 -1
  65. package/dist/features/trial-session/comps/student-enrichment/student-enrichment-styled.js +9 -16
  66. package/dist/features/trial-session/comps/student-enrichment/student-enrichment-styled.js.map +1 -1
  67. package/dist/features/trial-session/comps/student-enrichment/student-enrichment.js +39 -37
  68. package/dist/features/trial-session/comps/student-enrichment/student-enrichment.js.map +1 -1
  69. package/dist/features/trial-session/comps/student-feedback/student-feedback-styled.js +10 -9
  70. package/dist/features/trial-session/comps/student-feedback/student-feedback-styled.js.map +1 -1
  71. package/dist/features/trial-session/comps/student-info/student-info-constants.js +35 -0
  72. package/dist/features/trial-session/comps/student-info/student-info-constants.js.map +1 -0
  73. package/dist/features/trial-session/comps/student-info/student-info-helpers.js +12 -0
  74. package/dist/features/trial-session/comps/student-info/student-info-helpers.js.map +1 -0
  75. package/dist/features/trial-session/comps/student-info/student-info-styled.js +26 -11
  76. package/dist/features/trial-session/comps/student-info/student-info-styled.js.map +1 -1
  77. package/dist/features/trial-session/comps/student-info/student-info.js +113 -78
  78. package/dist/features/trial-session/comps/student-info/student-info.js.map +1 -1
  79. package/dist/features/trial-session/comps/student-personalization/student-personalization-styled.js +3 -12
  80. package/dist/features/trial-session/comps/student-personalization/student-personalization-styled.js.map +1 -1
  81. package/dist/features/trial-session/comps/student-personalization/student-personalization.js +34 -33
  82. package/dist/features/trial-session/comps/student-personalization/student-personalization.js.map +1 -1
  83. package/dist/features/trial-session/comps/student-profile/student-profile.js +45 -44
  84. package/dist/features/trial-session/comps/student-profile/student-profile.js.map +1 -1
  85. package/dist/features/trial-session/comps/teacher-intro/teacher-intro.js +9 -8
  86. package/dist/features/trial-session/comps/teacher-intro/teacher-intro.js.map +1 -1
  87. package/dist/features/trial-session/comps/test-prep/test-prep-styled.js +11 -19
  88. package/dist/features/trial-session/comps/test-prep/test-prep-styled.js.map +1 -1
  89. package/dist/features/trial-session/comps/test-prep/test-prep.js +31 -29
  90. package/dist/features/trial-session/comps/test-prep/test-prep.js.map +1 -1
  91. package/dist/features/trial-session/comps/topic-selection/topic-selection-styled.js +42 -0
  92. package/dist/features/trial-session/comps/topic-selection/topic-selection-styled.js.map +1 -0
  93. package/dist/features/trial-session/comps/topic-selection/topic-selection.js +84 -0
  94. package/dist/features/trial-session/comps/topic-selection/topic-selection.js.map +1 -0
  95. package/dist/features/trial-session/comps/whiteboard/whiteboard-styled.js +21 -0
  96. package/dist/features/trial-session/comps/whiteboard/whiteboard-styled.js.map +1 -0
  97. package/dist/features/trial-session/comps/whiteboard/whiteboard.js +99 -0
  98. package/dist/features/trial-session/comps/whiteboard/whiteboard.js.map +1 -0
  99. package/dist/features/trial-session/comps/worksheet/worksheet.js +35 -33
  100. package/dist/features/trial-session/comps/worksheet/worksheet.js.map +1 -1
  101. package/dist/features/trial-session/context/trial-session-context.js +2 -0
  102. package/dist/features/trial-session/context/trial-session-context.js.map +1 -1
  103. package/dist/features/trial-session/helper.js +70 -64
  104. package/dist/features/trial-session/helper.js.map +1 -1
  105. package/dist/features/trial-session/hooks/use-trial-session-navigation.js +190 -158
  106. package/dist/features/trial-session/hooks/use-trial-session-navigation.js.map +1 -1
  107. package/dist/features/trial-session/right-panel/right-panel-styled.js +8 -8
  108. package/dist/features/trial-session/right-panel/right-panel-styled.js.map +1 -1
  109. package/dist/features/trial-session/right-panel/slide-components-map.js +42 -36
  110. package/dist/features/trial-session/right-panel/slide-components-map.js.map +1 -1
  111. package/dist/features/trial-session/trial-session-constants.js +22 -18
  112. package/dist/features/trial-session/trial-session-constants.js.map +1 -1
  113. package/dist/features/trial-session/trial-session-types.js.map +1 -1
  114. package/dist/features/trial-session/trial-session-view.js +82 -77
  115. package/dist/features/trial-session/trial-session-view.js.map +1 -1
  116. package/dist/features/trial-session/trial-session.js +38 -38
  117. package/dist/features/trial-session/trial-session.js.map +1 -1
  118. package/dist/features/ui/inputs/checkbox-input/checkbox-input.js +21 -21
  119. package/dist/features/ui/inputs/checkbox-input/checkbox-input.js.map +1 -1
  120. package/dist/features/ui/inputs/checkbox-input-list/checkbox-input-list.js +12 -12
  121. package/dist/features/ui/inputs/checkbox-input-list/checkbox-input-list.js.map +1 -1
  122. package/dist/features/ui/theme/clrs.js +1 -0
  123. package/dist/features/ui/theme/clrs.js.map +1 -1
  124. package/dist/features/worksheet/worksheet/mocks/activity.js +6 -0
  125. package/dist/features/worksheet/worksheet/mocks/activity.js.map +1 -0
  126. package/dist/features/worksheet/worksheet/mocks/signed-requests.js +5 -0
  127. package/dist/features/worksheet/worksheet/mocks/signed-requests.js.map +1 -0
  128. package/dist/features/worksheet/worksheet/stories/use-canvas-sync-broker-story.js +57 -0
  129. package/dist/features/worksheet/worksheet/stories/use-canvas-sync-broker-story.js.map +1 -0
  130. package/dist/features/worksheet/worksheet/stories/worksheet-story-container.js +263 -0
  131. package/dist/features/worksheet/worksheet/stories/worksheet-story-container.js.map +1 -0
  132. package/dist/features/worksheet/worksheet/stories/worksheet-student.js +177 -0
  133. package/dist/features/worksheet/worksheet/stories/worksheet-student.js.map +1 -0
  134. package/dist/features/worksheet/worksheet/stories/worksheet-teacher.js +268 -0
  135. package/dist/features/worksheet/worksheet/stories/worksheet-teacher.js.map +1 -0
  136. package/dist/features/worksheet/worksheet/worksheet-helpers.js +38 -37
  137. package/dist/features/worksheet/worksheet/worksheet-helpers.js.map +1 -1
  138. package/dist/index.d.ts +7 -3
  139. package/dist/index.js +1 -1
  140. package/dist/node_modules/uuid/dist/esm-browser/regex.js +5 -0
  141. package/dist/node_modules/uuid/dist/esm-browser/regex.js.map +1 -0
  142. package/dist/node_modules/uuid/dist/esm-browser/rng.js +2 -3
  143. package/dist/node_modules/uuid/dist/esm-browser/rng.js.map +1 -1
  144. package/dist/node_modules/uuid/dist/esm-browser/stringify.js +10 -6
  145. package/dist/node_modules/uuid/dist/esm-browser/stringify.js.map +1 -1
  146. package/dist/node_modules/uuid/dist/esm-browser/v4.js +9 -12
  147. package/dist/node_modules/uuid/dist/esm-browser/v4.js.map +1 -1
  148. package/dist/node_modules/uuid/dist/esm-browser/validate.js +8 -0
  149. package/dist/node_modules/uuid/dist/esm-browser/validate.js.map +1 -0
  150. package/package.json +1 -1
  151. package/dist/node_modules/uuid/dist/esm-browser/native.js +0 -7
  152. package/dist/node_modules/uuid/dist/esm-browser/native.js.map +0 -1
@@ -0,0 +1,268 @@
1
+ import { jsx as r, jsxs as c, Fragment as oe } from "react/jsx-runtime";
2
+ import { useState as A, useRef as b, useCallback as o, useEffect as ne } from "react";
3
+ import u from "../../../ui/buttons/button/button.js";
4
+ import f from "../../../ui/layout/flex-view.js";
5
+ import I from "../../../ui/text/text.js";
6
+ import W from "../../constants/events.js";
7
+ import re from "../../worksheet-preview/hooks/use-worksheet-layout.js";
8
+ import { getActivityMockAttemptId as D } from "../mocks/activity.js";
9
+ import { getMockItemsSignedRequest as ae } from "../mocks/signed-requests.js";
10
+ import ie from "../worksheet.js";
11
+ import { isSATAssessmentNode as le } from "../worksheet-helpers.js";
12
+ import de from "./use-canvas-sync-broker-story.js";
13
+ import { HeaderWrapper as pe, WorksheetWrapper as ce } from "./worksheet-student.js";
14
+ import { TRIAL_V3_NODE_TYPES as me } from "../worksheet-behavior-helper.js";
15
+ const ye = (w) => {
16
+ var N;
17
+ const [t, L] = A(), _ = (N = t == null ? void 0 : t.instructor_stimulus) == null ? void 0 : N.toLowerCase(), {
18
+ nodeType: a,
19
+ activityType: h,
20
+ worksheetCompleted: g,
21
+ mockEnabled: m,
22
+ showHeader: R,
23
+ includeGutter: k,
24
+ questionsSignedRequest: P,
25
+ itemsSignedRequest: M,
26
+ inClass: v
27
+ } = w, C = h === "lesson-v3", E = m ? D(a, C) : "attemptId", K = b(null), V = le(a), O = re({
28
+ userType: "TEACHER",
29
+ isSATAssessment: V,
30
+ nodeType: a,
31
+ topOffset: R ? 60 : 0
32
+ }), [y, $] = A(), q = b((e, s) => {
33
+ console.log("Worksheet Teacher Logger:", e, s), e === W.WORKSHEET_V3_ITEMS_FAILED && $(`Failed to load worksheet: ${JSON.stringify(s, null, 2)}`), e === W.WORKSHEET_V3_QUESTION_MISSING_VALIDATION && $(`Question missing validation: ${JSON.stringify(s, null, 2)}`);
34
+ }), S = o(() => {
35
+ }, []), B = o((e) => {
36
+ alert(`Open Question Feedback Modal for item ref: ${e}`);
37
+ }, []), [x, H] = A(), F = o((e) => {
38
+ H(e);
39
+ }, []), { publishStrokes: G, registerCallback: X, initialStrokesData: j } = de(
40
+ "TEACHER",
41
+ void 0
42
+ ), n = o((e) => {
43
+ var p, d;
44
+ const s = (p = window.top) == null ? void 0 : p.document.querySelector(
45
+ 'iframe[src*="worksheet-student"]'
46
+ ), i = (d = s == null ? void 0 : s.contentWindow) == null ? void 0 : d.postMessage;
47
+ i && i(e);
48
+ }, []), z = o(
49
+ (e) => {
50
+ n({
51
+ eventName: "WORKSHEET_QUESTION_RETRY_ALLOWED",
52
+ eventPayload: {
53
+ attemptId: "userAttemptId",
54
+ responseId: e
55
+ }
56
+ });
57
+ },
58
+ [n]
59
+ ), T = o(
60
+ (e, s) => {
61
+ n({
62
+ eventName: "WORKSHEET_RESPONSE_VALIDATED",
63
+ eventPayload: {
64
+ attemptId: "userAttemptId",
65
+ responseId: e,
66
+ rating: s ?? "E"
67
+ // change this
68
+ }
69
+ });
70
+ },
71
+ [n]
72
+ ), J = o(
73
+ (e) => {
74
+ n({
75
+ eventName: "WORKSHEET_OPTIONAL_ITEMS_ASSIGNED",
76
+ eventPayload: {
77
+ attemptId: "userAttemptId",
78
+ itemType: e
79
+ }
80
+ });
81
+ },
82
+ [n]
83
+ ), U = o(
84
+ (e) => {
85
+ n({
86
+ eventName: "WORKSHEET_OPTIONAL_ITEMS_SKIPPED",
87
+ eventPayload: {
88
+ attemptId: "userAttemptId",
89
+ itemType: e
90
+ }
91
+ });
92
+ },
93
+ [n]
94
+ ), Y = o(
95
+ (e, s, i) => {
96
+ n({
97
+ eventName: "WORKSHEET_MEDIA_STATE_UPDATED_BY_TEACHER",
98
+ eventPayload: {
99
+ attemptId: "userAttemptId",
100
+ responseId: e.response_id,
101
+ mediaType: s,
102
+ mediaState: i
103
+ }
104
+ });
105
+ },
106
+ [n]
107
+ );
108
+ ne(() => {
109
+ window.addEventListener(
110
+ "message",
111
+ (e) => {
112
+ H((s) => {
113
+ const { eventName: i, eventPayload: p } = e.data;
114
+ if (i === "WORKSHEET_RESPONSE_CHANGED") {
115
+ const { responseId: d, response: se } = p;
116
+ return {
117
+ ...s,
118
+ [d]: se
119
+ };
120
+ }
121
+ if (i === "WORKSHEET_BULK_RESPONSES_CHANGED") {
122
+ const { responses: d } = p;
123
+ return {
124
+ ...s,
125
+ ...d
126
+ };
127
+ }
128
+ return s;
129
+ });
130
+ },
131
+ !1
132
+ );
133
+ }, []);
134
+ const l = o(
135
+ (e) => {
136
+ t != null && t.response_id && n({
137
+ eventName: "WORKSHEET_RESPONSE_VALIDATED",
138
+ eventPayload: {
139
+ attemptId: E,
140
+ responseId: t == null ? void 0 : t.response_id,
141
+ rating: e !== "H" ? e : void 0,
142
+ skipRemainingQuestions: e === "H" || e === "E"
143
+ }
144
+ });
145
+ },
146
+ [t, E, n]
147
+ ), Q = o(() => l("E"), [l]), Z = o(
148
+ () => l("S"),
149
+ [l]
150
+ ), ee = o(() => l("H"), [l]), te = o(() => {
151
+ t != null && t.response_id && T(t.response_id);
152
+ }, [t == null ? void 0 : t.response_id, T]);
153
+ return y ? /* @__PURE__ */ r(
154
+ f,
155
+ {
156
+ $flexDirection: "column",
157
+ $alignItems: "center",
158
+ $justifyContent: "center",
159
+ $height: "100%",
160
+ $gutterX: 4,
161
+ $gapX: 4,
162
+ children: /* @__PURE__ */ r(I, { $renderAs: "ub1-bold", $color: "RED", children: /* @__PURE__ */ r("pre", { children: /* @__PURE__ */ r("code", { children: y }) }) })
163
+ }
164
+ ) : /* @__PURE__ */ c(f, { $gutterX: k ? 1 : 0, children: [
165
+ R && /* @__PURE__ */ r(
166
+ pe,
167
+ {
168
+ $height: 60,
169
+ $gutterX: 3.75,
170
+ $flexDirection: "row",
171
+ $alignItems: "center",
172
+ $justifyContent: "space-between",
173
+ $background: "WHITE",
174
+ $borderColor: "BLACK_1",
175
+ children: me.includes(a) ? /* @__PURE__ */ c(oe, { children: [
176
+ /* @__PURE__ */ c(I, { $renderAs: "ah4-black", children: [
177
+ "TEACHER: ",
178
+ a
179
+ ] }),
180
+ _ !== "learn" ? /* @__PURE__ */ c(f, { $flexDirection: "row", $flexColumnGapX: 1, children: [
181
+ /* @__PURE__ */ r(
182
+ u,
183
+ {
184
+ renderAs: "primary",
185
+ label: "Too Easy",
186
+ shape: "square",
187
+ size: "small",
188
+ onClick: Q
189
+ }
190
+ ),
191
+ /* @__PURE__ */ r(
192
+ u,
193
+ {
194
+ renderAs: "primary",
195
+ label: "Just right",
196
+ shape: "square",
197
+ size: "small",
198
+ onClick: Z
199
+ }
200
+ ),
201
+ _ === "try" && /* @__PURE__ */ r(
202
+ u,
203
+ {
204
+ renderAs: "primary",
205
+ label: "Too Hard",
206
+ shape: "square",
207
+ size: "small",
208
+ onClick: ee
209
+ }
210
+ )
211
+ ] }) : /* @__PURE__ */ r(
212
+ u,
213
+ {
214
+ renderAs: "primary",
215
+ label: "Validate",
216
+ shape: "square",
217
+ size: "small",
218
+ onClick: te
219
+ }
220
+ )
221
+ ] }) : /* @__PURE__ */ c(I, { $renderAs: "ah4-bold", children: [
222
+ "TEACHER: ",
223
+ a
224
+ ] })
225
+ }
226
+ ),
227
+ /* @__PURE__ */ r(ce, { $topOffset: O.topOffset, $showBorder: !!k, children: /* @__PURE__ */ r(
228
+ ie,
229
+ {
230
+ ref: K,
231
+ userType: "TEACHER",
232
+ userId: "teacher_id",
233
+ studentId: "student_id",
234
+ worksheetName: "Worksheet Name",
235
+ attemptId: m ? D(a, C) : E,
236
+ questionsSignedRequest: P,
237
+ itemsSignedRequest: m ? ae(E) : M,
238
+ layout: O,
239
+ updatedResponses: x,
240
+ loggerRef: q,
241
+ onLoaded: S,
242
+ onErrored: S,
243
+ onActiveQuestionChange: L,
244
+ onResponsesChange: S,
245
+ onPublishStrokes: G,
246
+ onReceiveStrokes: X,
247
+ onMediaStateChange: Y,
248
+ worksheetCompleted: g,
249
+ onResponsesLoaded: F,
250
+ onTeacherValidation: T,
251
+ onAllowRetry: z,
252
+ onOptionalItemAssignment: J,
253
+ onOptionalItemSkip: U,
254
+ openQuestionFeedbackModal: B,
255
+ initialStrokesData: j,
256
+ nodeType: a,
257
+ mode: "review",
258
+ activityType: h,
259
+ inClass: v
260
+ },
261
+ `${a}-${h}-${g}-${m}`
262
+ ) })
263
+ ] });
264
+ };
265
+ export {
266
+ ye as default
267
+ };
268
+ //# sourceMappingURL=worksheet-teacher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worksheet-teacher.js","sources":["../../../../../src/features/worksheet/worksheet/stories/worksheet-teacher.tsx"],"sourcesContent":["import { useCallback, useEffect, useRef, useState, type FC } from 'react';\n\nimport type { EWorksheetActivity, NODE_TYPES } from '../../../../types/models/worksheet';\nimport type { TInclassMessage } from '../../../communication/hooks/use-inclass-message-broker/use-inclass-message-broker-types';\nimport Button from '../../../ui/buttons/button/button';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Text from '../../../ui/text/text';\nimport EVENTS from '../../constants/events';\nimport useWorksheetLayout from '../../worksheet-preview/hooks/use-worksheet-layout';\nimport { getActivityMockAttemptId } from '../mocks/activity';\nimport { getMockItemsSignedRequest } from '../mocks/signed-requests';\nimport Worksheet from '../worksheet';\nimport { isSATAssessmentNode } from '../worksheet-helpers';\nimport type {\n IWorksheetCallbackProps,\n IWorksheetProps,\n IWorksheetQuestion,\n IWorksheetRef,\n IWorksheetResponse,\n} from '../worksheet-types';\nimport useCanvasSyncBrokerStory from './use-canvas-sync-broker-story';\nimport { HeaderWrapper, WorksheetWrapper } from './worksheet-student';\nimport { TRIAL_V3_NODE_TYPES } from '../worksheet-behavior-helper';\n\ninterface IWorksheetTeacherStoryProps {\n nodeType: NODE_TYPES;\n activityType: EWorksheetActivity | null;\n worksheetCompleted: boolean;\n mockEnabled: boolean;\n showHeader: boolean;\n includeGutter: boolean;\n questionsSignedRequest: string;\n itemsSignedRequest: string;\n inClass: boolean;\n}\n\nconst WorksheetTeacherStory: FC<IWorksheetTeacherStoryProps> = props => {\n const [activeQuestion, setActiveQuestion] = useState<IWorksheetQuestion | undefined>();\n const instructorStimulus = activeQuestion?.instructor_stimulus?.toLowerCase();\n\n const {\n nodeType,\n activityType,\n worksheetCompleted,\n mockEnabled,\n showHeader,\n includeGutter,\n questionsSignedRequest,\n itemsSignedRequest,\n inClass,\n } = props;\n const isLessonV3 = activityType === 'lesson-v3';\n const attemptId = mockEnabled ? getActivityMockAttemptId(nodeType, isLessonV3) : 'attemptId';\n const ref = useRef<IWorksheetRef>(null);\n const isSATAssessment = isSATAssessmentNode(nodeType);\n\n const layout = useWorksheetLayout({\n userType: 'TEACHER',\n isSATAssessment,\n nodeType,\n topOffset: showHeader ? 60 : 0,\n });\n const [error, setError] = useState<string>();\n const loggerRef = useRef((eventName: string, data?: Record<string, unknown>) => {\n // eslint-disable-next-line no-console\n console.log('Worksheet Teacher Logger:', eventName, data);\n\n if (eventName === EVENTS.WORKSHEET_V3_ITEMS_FAILED) {\n setError(`Failed to load worksheet: ${JSON.stringify(data, null, 2)}`);\n }\n\n if (eventName === EVENTS.WORKSHEET_V3_QUESTION_MISSING_VALIDATION) {\n setError(`Question missing validation: ${JSON.stringify(data, null, 2)}`);\n }\n });\n const fakeCallback = useCallback(() => {}, []);\n\n const handleOpenQuestionFeedbackModal = useCallback<\n NonNullable<IWorksheetProps['openQuestionFeedbackModal']>\n >(itemRef => {\n alert(`Open Question Feedback Modal for item ref: ${itemRef}`);\n }, []);\n\n const [responses, setResponses] = useState<Record<string, IWorksheetResponse> | undefined>();\n\n const handleResponsesChange = useCallback((rsps?: Record<string, IWorksheetResponse>) => {\n setResponses(rsps);\n }, []);\n\n const { publishStrokes, registerCallback, initialStrokesData } = useCanvasSyncBrokerStory(\n 'TEACHER',\n undefined,\n );\n\n const publishMessage = useCallback((message: TInclassMessage) => {\n const studentIframe = window.top?.document.querySelector(\n 'iframe[src*=\"worksheet-student\"]',\n ) as HTMLIFrameElement;\n const postMessage = studentIframe?.contentWindow?.postMessage;\n\n if (postMessage) {\n postMessage(message);\n }\n }, []);\n\n const handleAllowRetry = useCallback<NonNullable<IWorksheetCallbackProps['onAllowRetry']>>(\n questionId => {\n publishMessage({\n eventName: 'WORKSHEET_QUESTION_RETRY_ALLOWED',\n eventPayload: {\n attemptId: 'userAttemptId',\n responseId: questionId,\n },\n });\n },\n [publishMessage],\n );\n\n const handleTeacherValidation = useCallback<\n NonNullable<IWorksheetCallbackProps['onTeacherValidation']>\n >(\n (questionId, rating) => {\n publishMessage({\n eventName: 'WORKSHEET_RESPONSE_VALIDATED',\n eventPayload: {\n attemptId: 'userAttemptId',\n responseId: questionId,\n rating: rating ?? 'E', // change this\n },\n });\n },\n [publishMessage],\n );\n\n const handleOptionalItemAssignment = useCallback<\n NonNullable<IWorksheetCallbackProps['onOptionalItemAssignment']>\n >(\n itemType => {\n publishMessage({\n eventName: 'WORKSHEET_OPTIONAL_ITEMS_ASSIGNED',\n eventPayload: {\n attemptId: 'userAttemptId',\n itemType,\n },\n });\n },\n [publishMessage],\n );\n\n const handleOptionalItemSkip = useCallback<\n NonNullable<IWorksheetCallbackProps['onOptionalItemSkip']>\n >(\n itemType => {\n publishMessage({\n eventName: 'WORKSHEET_OPTIONAL_ITEMS_SKIPPED',\n eventPayload: {\n attemptId: 'userAttemptId',\n itemType,\n },\n });\n },\n [publishMessage],\n );\n\n const handleMediaStateChange = useCallback<\n NonNullable<IWorksheetCallbackProps['onMediaStateChange']>\n >(\n (question, mediaType, mediaState) => {\n publishMessage({\n eventName: 'WORKSHEET_MEDIA_STATE_UPDATED_BY_TEACHER',\n eventPayload: {\n attemptId: 'userAttemptId',\n responseId: question.response_id,\n mediaType,\n mediaState,\n },\n });\n },\n [publishMessage],\n );\n\n useEffect(() => {\n window.addEventListener(\n 'message',\n event => {\n setResponses(prevResponses => {\n const { eventName, eventPayload } = event.data as TInclassMessage;\n\n if (eventName === 'WORKSHEET_RESPONSE_CHANGED') {\n const { responseId, response } = eventPayload;\n\n return {\n ...prevResponses,\n [responseId]: response,\n };\n }\n\n if (eventName === 'WORKSHEET_BULK_RESPONSES_CHANGED') {\n const { responses: bulkResponses } = eventPayload;\n\n return {\n ...prevResponses,\n ...bulkResponses,\n };\n }\n\n return prevResponses;\n });\n },\n false,\n );\n }, []);\n\n const handleRatingChange = useCallback(\n (rating: 'E' | 'S' | 'H') => {\n if (activeQuestion?.response_id) {\n publishMessage({\n eventName: 'WORKSHEET_RESPONSE_VALIDATED',\n eventPayload: {\n attemptId: attemptId,\n responseId: activeQuestion?.response_id,\n rating: rating !== 'H' ? rating : undefined,\n skipRemainingQuestions: rating === 'H' || rating === 'E',\n },\n });\n }\n },\n [activeQuestion, attemptId, publishMessage],\n );\n\n const handleTooEasyButtonClick = useCallback(() => handleRatingChange('E'), [handleRatingChange]);\n const handleJustRightButtonClick = useCallback(\n () => handleRatingChange('S'),\n [handleRatingChange],\n );\n const handleTooHardButtonClick = useCallback(() => handleRatingChange('H'), [handleRatingChange]);\n\n const handleValidateButtonClick = useCallback(() => {\n if (activeQuestion?.response_id) {\n handleTeacherValidation(activeQuestion.response_id);\n }\n }, [activeQuestion?.response_id, handleTeacherValidation]);\n\n if (error) {\n return (\n <FlexView\n $flexDirection=\"column\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $height=\"100%\"\n $gutterX={4}\n $gapX={4}\n >\n <Text $renderAs=\"ub1-bold\" $color=\"RED\">\n <pre>\n <code>{error}</code>\n </pre>\n </Text>\n </FlexView>\n );\n }\n\n return (\n <FlexView $gutterX={includeGutter ? 1 : 0}>\n {showHeader && (\n <HeaderWrapper\n $height={60}\n $gutterX={3.75}\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $justifyContent=\"space-between\"\n $background=\"WHITE\"\n $borderColor=\"BLACK_1\"\n >\n {TRIAL_V3_NODE_TYPES.includes(nodeType) ? (\n <>\n <Text $renderAs=\"ah4-black\">TEACHER: {nodeType}</Text>\n {instructorStimulus !== 'learn' ? (\n <FlexView $flexDirection=\"row\" $flexColumnGapX={1}>\n <Button\n renderAs=\"primary\"\n label=\"Too Easy\"\n shape=\"square\"\n size=\"small\"\n onClick={handleTooEasyButtonClick}\n />\n <Button\n renderAs=\"primary\"\n label=\"Just right\"\n shape=\"square\"\n size=\"small\"\n onClick={handleJustRightButtonClick}\n />\n {instructorStimulus === 'try' && (\n <Button\n renderAs=\"primary\"\n label=\"Too Hard\"\n shape=\"square\"\n size=\"small\"\n onClick={handleTooHardButtonClick}\n />\n )}\n </FlexView>\n ) : (\n <Button\n renderAs=\"primary\"\n label=\"Validate\"\n shape=\"square\"\n size=\"small\"\n onClick={handleValidateButtonClick}\n />\n )}\n </>\n ) : (\n <Text $renderAs=\"ah4-bold\">TEACHER: {nodeType}</Text>\n )}\n </HeaderWrapper>\n )}\n <WorksheetWrapper $topOffset={layout.topOffset} $showBorder={!!includeGutter}>\n <Worksheet\n key={`${nodeType}-${activityType}-${worksheetCompleted}-${mockEnabled}`}\n ref={ref}\n userType=\"TEACHER\"\n userId=\"teacher_id\"\n studentId=\"student_id\"\n worksheetName=\"Worksheet Name\"\n attemptId={mockEnabled ? getActivityMockAttemptId(nodeType, isLessonV3) : attemptId}\n questionsSignedRequest={questionsSignedRequest}\n itemsSignedRequest={\n mockEnabled ? getMockItemsSignedRequest(attemptId) : itemsSignedRequest\n }\n layout={layout}\n updatedResponses={responses}\n loggerRef={loggerRef}\n onLoaded={fakeCallback}\n onErrored={fakeCallback}\n onActiveQuestionChange={setActiveQuestion}\n onResponsesChange={fakeCallback}\n onPublishStrokes={publishStrokes}\n onReceiveStrokes={registerCallback}\n onMediaStateChange={handleMediaStateChange}\n worksheetCompleted={worksheetCompleted}\n onResponsesLoaded={handleResponsesChange}\n onTeacherValidation={handleTeacherValidation}\n onAllowRetry={handleAllowRetry}\n onOptionalItemAssignment={handleOptionalItemAssignment}\n onOptionalItemSkip={handleOptionalItemSkip}\n openQuestionFeedbackModal={handleOpenQuestionFeedbackModal}\n initialStrokesData={initialStrokesData}\n nodeType={nodeType}\n mode=\"review\"\n activityType={activityType}\n inClass={inClass}\n />\n </WorksheetWrapper>\n </FlexView>\n );\n};\n\nexport default WorksheetTeacherStory;\n"],"names":["WorksheetTeacherStory","props","activeQuestion","setActiveQuestion","useState","instructorStimulus","_a","nodeType","activityType","worksheetCompleted","mockEnabled","showHeader","includeGutter","questionsSignedRequest","itemsSignedRequest","inClass","isLessonV3","attemptId","getActivityMockAttemptId","ref","useRef","isSATAssessment","isSATAssessmentNode","layout","useWorksheetLayout","error","setError","loggerRef","eventName","data","EVENTS","fakeCallback","useCallback","handleOpenQuestionFeedbackModal","itemRef","responses","setResponses","handleResponsesChange","rsps","publishStrokes","registerCallback","initialStrokesData","useCanvasSyncBrokerStory","publishMessage","message","studentIframe","postMessage","_b","handleAllowRetry","questionId","handleTeacherValidation","rating","handleOptionalItemAssignment","itemType","handleOptionalItemSkip","handleMediaStateChange","question","mediaType","mediaState","useEffect","event","prevResponses","eventPayload","responseId","response","bulkResponses","handleRatingChange","handleTooEasyButtonClick","handleJustRightButtonClick","handleTooHardButtonClick","handleValidateButtonClick","jsx","FlexView","Text","jsxs","HeaderWrapper","TRIAL_V3_NODE_TYPES","Fragment","Button","WorksheetWrapper","Worksheet","getMockItemsSignedRequest"],"mappings":"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"}
@@ -1,12 +1,12 @@
1
- import d from "../../../assets/line-icons/icons/bulb2.js";
1
+ import _ from "../../../assets/line-icons/icons/bulb2.js";
2
2
  import f from "../../../assets/line-icons/icons/edit-star.js";
3
3
  import E from "../../../assets/line-icons/icons/edit2.js";
4
4
  import h from "../../../assets/line-icons/icons/practice.js";
5
5
  import C from "../../../assets/line-icons/icons/question-letter.js";
6
6
  import w from "../../../assets/line-icons/icons/star2.js";
7
7
  import s from "../constants/events.js";
8
- import { ACTION_BAR_HEIGHT as I, QUESTION_WIDTH as _, SPLIT_QUESTION_WIDTH as v, CLOZE_FORMULA_RESPONSE_LIMIT as b } from "./constants.js";
9
- const x = ({
8
+ import { ACTION_BAR_HEIGHT as T, QUESTION_WIDTH as d, SPLIT_QUESTION_WIDTH as I, CLOZE_FORMULA_RESPONSE_LIMIT as S } from "./constants.js";
9
+ const k = ({
10
10
  questions: e,
11
11
  initialQuestion: t,
12
12
  initialResponseId: r,
@@ -31,7 +31,7 @@ const x = ({
31
31
  return e[0].response_id;
32
32
  throw new Error("Initial question not found");
33
33
  };
34
- function T(e, t) {
34
+ function A(e, t) {
35
35
  var n, o;
36
36
  const r = Array.isArray(e) ? e.find((i) => i.response_id === t) : e;
37
37
  if (!r)
@@ -41,7 +41,7 @@ function T(e, t) {
41
41
  itemReference: r.item_reference,
42
42
  itemPosition: r.item_number,
43
43
  questionPosition: r.question_number,
44
- isOkayTypeQuestion: L(r),
44
+ isOkayTypeQuestion: v(r),
45
45
  score: {
46
46
  max_score: ((o = (n = r == null ? void 0 : r.validation) == null ? void 0 : n.valid_response) == null ? void 0 : o.score) ?? 0 * r.metadata.valid_response_count
47
47
  },
@@ -51,31 +51,31 @@ function T(e, t) {
51
51
  }
52
52
  };
53
53
  }
54
- const Q = (e) => e.reduce(
54
+ const x = (e) => e.reduce(
55
55
  (t, r) => ({
56
56
  ...t,
57
- [r.response_id]: T(e, r.response_id)
57
+ [r.response_id]: A(e, r.response_id)
58
58
  }),
59
59
  {}
60
- ), W = (e, t) => {
60
+ ), Q = (e, t) => {
61
61
  const { actionBar: r } = t;
62
62
  return {
63
63
  questionsContainerWidth: !e.some(
64
64
  (i) => i.questions.some((a) => a.stimulus_review)
65
- ) ? _ : v,
66
- maxQuestionWidth: _,
67
- actionbarHeight: r === "bottom" ? I : 0
65
+ ) ? d : I,
66
+ maxQuestionWidth: d,
67
+ actionbarHeight: r === "bottom" ? T : 0
68
68
  };
69
- }, P = (e, { animation: t = !1, block: r = "start" } = {}) => {
69
+ }, W = (e, { animation: t = !1, block: r = "start" } = {}) => {
70
70
  const n = document.querySelectorAll(`.widget-${e}`)[0];
71
71
  n && n.scrollIntoView({
72
72
  block: r,
73
73
  behavior: t ? "smooth" : "instant"
74
74
  });
75
- }, L = (e) => {
75
+ }, v = (e) => {
76
76
  const { type: t, options: r, instructor_stimulus: n } = e;
77
77
  return ("item_type" in e ? e.item_type : void 0) === "overview" || n === "Intro" || n === "SystemIntro" || n === "Concept-Intro" ? !0 : t === "mcq" && (r == null ? void 0 : r.length) === 1;
78
- }, N = ({
78
+ }, P = ({
79
79
  attemptsAfterTeacherInterventionNeeded: e,
80
80
  attemptsHistory: t
81
81
  }) => {
@@ -166,7 +166,7 @@ const Q = (e) => e.reduce(
166
166
  default:
167
167
  return "GREY_3";
168
168
  }
169
- }, Y = (e) => {
169
+ }, H = (e) => {
170
170
  switch (e) {
171
171
  case "learning":
172
172
  return "BLUE_1";
@@ -181,7 +181,7 @@ const Q = (e) => e.reduce(
181
181
  default:
182
182
  return "YELLOW_1";
183
183
  }
184
- }, z = (e) => {
184
+ }, Y = (e) => {
185
185
  switch (e) {
186
186
  case "learning":
187
187
  return "Learning";
@@ -198,10 +198,10 @@ const Q = (e) => e.reduce(
198
198
  default:
199
199
  return "";
200
200
  }
201
- }, J = (e) => {
201
+ }, z = (e) => {
202
202
  switch (e) {
203
203
  case "learning":
204
- return d;
204
+ return _;
205
205
  case "practice":
206
206
  return h;
207
207
  case "practice-basic":
@@ -213,11 +213,11 @@ const Q = (e) => e.reduce(
213
213
  case "advanced":
214
214
  return w;
215
215
  default:
216
- return d;
216
+ return _;
217
217
  }
218
- }, H = (e) => Array.isArray(e.value) ? e.value.some(
219
- (r) => typeof r == "string" && r.length > b
220
- ) : !1, K = ({
218
+ }, J = (e) => e === "SAT_ENGLISH_ASSESSMENT" || e === "SAT_MATH_ASSESSMENT", K = (e) => Array.isArray(e.value) ? e.value.some(
219
+ (r) => typeof r == "string" && r.length > S
220
+ ) : !1, D = ({
221
221
  isPuzzleWorksheet: e,
222
222
  isTestWorksheet: t,
223
223
  imageHue: r = "BLUE"
@@ -233,30 +233,31 @@ const Q = (e) => e.reduce(
233
233
  bgColor: "BLACK",
234
234
  borderColor: "BLACK_4",
235
235
  textColor: "WHITE"
236
- }, D = (e) => e ? `${e}_1` : "BLUE_1", V = (e) => {
236
+ }, V = (e) => e ? `${e}_1` : "BLUE_1", X = (e) => {
237
237
  if (!e)
238
238
  return !1;
239
239
  const t = e.toLowerCase();
240
240
  return t === "intro" || t === "concept-intro";
241
241
  };
242
242
  export {
243
- H as checkIsClozeFormulaResponseInvalid,
244
- x as getInitialQuestionId,
245
- Q as getInitialResponses,
246
- Y as getNavigationSectionBackgroundColor,
247
- J as getNavigationSectionIcon,
248
- z as getNavigationSectionName,
243
+ K as checkIsClozeFormulaResponseInvalid,
244
+ k as getInitialQuestionId,
245
+ x as getInitialResponses,
246
+ H as getNavigationSectionBackgroundColor,
247
+ z as getNavigationSectionIcon,
248
+ Y as getNavigationSectionName,
249
249
  U as getPaperColorByQuestion,
250
- D as getPuzzleWorksheetBackgroundColor,
250
+ V as getPuzzleWorksheetBackgroundColor,
251
251
  F as getQuestionBackgroundImage,
252
252
  G as getQuestionBorderColor,
253
- T as getQuestionMetadata,
254
- W as getWorksheetDimensions,
255
- K as getWorksheetHeaderLayout,
256
- V as isConceptIntroWidget,
257
- L as isOkayTypeQuestion,
258
- N as isTeacherInterventionNeeded,
259
- P as scrollToQuestion,
253
+ A as getQuestionMetadata,
254
+ Q as getWorksheetDimensions,
255
+ D as getWorksheetHeaderLayout,
256
+ X as isConceptIntroWidget,
257
+ v as isOkayTypeQuestion,
258
+ J as isSATAssessmentNode,
259
+ P as isTeacherInterventionNeeded,
260
+ W as scrollToQuestion,
260
261
  $ as setMathJaxConfigInWindow
261
262
  };
262
263
  //# sourceMappingURL=worksheet-helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"worksheet-helpers.js","sources":["../../../../src/features/worksheet/worksheet/worksheet-helpers.ts"],"sourcesContent":["import Bulb2Icon from '../../../assets/line-icons/icons/bulb2';\nimport EditStarIcon from '../../../assets/line-icons/icons/edit-star';\nimport Edit2Icon from '../../../assets/line-icons/icons/edit2';\nimport PracticeIcon from '../../../assets/line-icons/icons/practice';\nimport QuestionLetterIcon from '../../../assets/line-icons/icons/question-letter';\nimport Star2Icon from '../../../assets/line-icons/icons/star2';\nimport { type NODE_TYPES } from '../../../types/models/worksheet';\nimport type { TColorNames, THueNames } from '../../ui/types';\nimport EVENTS from '../constants/events';\nimport {\n ACTION_BAR_HEIGHT,\n CLOZE_FORMULA_RESPONSE_LIMIT,\n QUESTION_WIDTH,\n SPLIT_QUESTION_WIDTH,\n} from './constants';\nimport type { TWorksheetQuestionPaperColor } from './worksheet-question/worksheet-question-types';\nimport {\n type ILearnosityItem,\n type ILearnosityQuestion,\n type ILearnosityQuestionResponse,\n type IWorksheetBehavior,\n type IWorksheetHeaderLayoutProps,\n type IWorksheetLayout,\n type IWorksheetQuestion,\n type IWorksheetResponse,\n type TInstructorStimulus,\n type TSectionName,\n} from './worksheet-types';\n\ninterface IGetInitialQuestionId {\n (params: {\n questions: IWorksheetQuestion[];\n initialQuestion: IWorksheetBehavior['initialQuestion'];\n lastUnlockedQuestionIndex: number;\n lastAttemptableQuestionIndex: number;\n initialResponseId?: string;\n initialItemIndex?: number;\n }): string;\n}\n\nconst getInitialQuestionId: IGetInitialQuestionId = ({\n questions,\n initialQuestion,\n initialResponseId,\n initialItemIndex,\n lastUnlockedQuestionIndex,\n lastAttemptableQuestionIndex,\n}) => {\n const unlockedQuestions = questions.slice(0, lastUnlockedQuestionIndex + 1);\n const lastUnlockedQuestion = questions[lastUnlockedQuestionIndex]!;\n const lastAttemptableQuestion = questions[lastAttemptableQuestionIndex]!;\n\n if (initialResponseId && unlockedQuestions.find(q => q.response_id === initialResponseId)) {\n return initialResponseId;\n }\n\n if (\n typeof initialItemIndex === 'number' &&\n initialItemIndex <= lastUnlockedQuestion.item_number\n ) {\n const question = questions.find(q => q.item_number === initialItemIndex);\n\n if (question?.response_id) {\n return question.response_id;\n }\n }\n\n if (initialQuestion === 'FIRST' && questions[0]?.response_id) {\n return questions[0].response_id;\n }\n\n if (initialQuestion === 'CURRENT') {\n return lastAttemptableQuestion.response_id;\n }\n\n if (questions[0]?.response_id) {\n return questions[0].response_id;\n }\n\n throw new Error('Initial question not found');\n};\n\ntype TQuestionMetadata = Pick<\n IWorksheetResponse,\n 'widgetReference' | 'itemReference' | 'itemPosition' | 'questionPosition' | 'isOkayTypeQuestion'\n>;\n\nfunction getQuestionMetadata(\n questions: IWorksheetQuestion[],\n questionId: string,\n): TQuestionMetadata;\nfunction getQuestionMetadata(question: IWorksheetQuestion): TQuestionMetadata;\nfunction getQuestionMetadata(\n questions: IWorksheetQuestion | IWorksheetQuestion[],\n questionId?: string,\n) {\n const question = Array.isArray(questions)\n ? questions.find(q => q.response_id === questionId)\n : questions;\n\n if (!question) {\n throw new Error(`Question with id ${questionId} not found`);\n }\n\n return {\n widgetReference: question.metadata.widget_reference,\n itemReference: question.item_reference,\n itemPosition: question.item_number,\n questionPosition: question.question_number,\n isOkayTypeQuestion: isOkayTypeQuestion(question),\n score: {\n max_score:\n question?.validation?.valid_response?.score ?? 0 * question.metadata.valid_response_count,\n },\n tags: {\n ...question.item_tags_map,\n instructor_stimulus: question.instructor_stimulus,\n },\n };\n}\n\ninterface IGetInitialResponses {\n (questions: IWorksheetQuestion[]): Record<string, IWorksheetResponse>;\n}\n\nconst getInitialResponses: IGetInitialResponses = questions => {\n return questions.reduce(\n (acc, question) => ({\n ...acc,\n [question.response_id]: getQuestionMetadata(questions, question.response_id),\n }),\n {},\n );\n};\n\ninterface IGetWorksheetDimensions {\n (\n items: ILearnosityItem[],\n layout: IWorksheetLayout,\n ): {\n questionsContainerWidth: number;\n maxQuestionWidth: number;\n actionbarHeight: number;\n };\n}\n\nconst getWorksheetDimensions: IGetWorksheetDimensions = (items, layout) => {\n const { actionBar } = layout;\n const isSingleColumn = !items.some(item =>\n item.questions.some(question => question.stimulus_review),\n );\n const actionbarHeight = actionBar === 'bottom' ? ACTION_BAR_HEIGHT : 0;\n\n return {\n questionsContainerWidth: isSingleColumn ? QUESTION_WIDTH : SPLIT_QUESTION_WIDTH,\n maxQuestionWidth: QUESTION_WIDTH,\n actionbarHeight,\n };\n};\n\ninterface IScrollToQuestion {\n (questionId: string, params?: { animation?: boolean; block?: 'start' | 'end' }): void;\n}\n\nconst scrollToQuestion: IScrollToQuestion = (\n questionId,\n { animation = false, block = 'start' } = {},\n) => {\n const $questionEl = document.querySelectorAll(`.widget-${questionId}`)[0];\n\n if ($questionEl) {\n $questionEl.scrollIntoView({\n block,\n behavior: animation ? 'smooth' : 'instant',\n });\n }\n};\n\ninterface IIsOkayTypeQuestion {\n (question: IWorksheetQuestion | ILearnosityQuestion): boolean;\n}\n\nconst isOkayTypeQuestion: IIsOkayTypeQuestion = question => {\n const { type, options, instructor_stimulus } = question;\n const itemType = 'item_type' in question ? question.item_type : undefined;\n\n if (\n itemType === 'overview' ||\n instructor_stimulus === 'Intro' ||\n instructor_stimulus === 'SystemIntro' ||\n instructor_stimulus === 'Concept-Intro'\n ) {\n return true;\n }\n\n return type === 'mcq' && options?.length === 1 ? true : false;\n};\n\ninterface IIsTeacherInterventionNeeded {\n (params: {\n attemptsAfterTeacherInterventionNeeded: number | undefined;\n attemptsHistory: IWorksheetResponse['attemptsHistory'];\n }): boolean;\n}\n\nconst isTeacherInterventionNeeded: IIsTeacherInterventionNeeded = ({\n attemptsAfterTeacherInterventionNeeded,\n attemptsHistory,\n}) => {\n if (\n attemptsAfterTeacherInterventionNeeded &&\n (attemptsHistory?.length ?? 0) >= attemptsAfterTeacherInterventionNeeded\n ) {\n const score = attemptsHistory?.slice(-1)[0]?.score;\n\n if (score && score.score === score.max_score) {\n return false;\n }\n\n return true;\n }\n\n return false;\n};\n\nconst setMathJaxConfigInWindow = (\n logger: (eventName: string, data?: Record<string, unknown>) => void,\n) => {\n window.MathJax = {\n options: {\n enableMenu: false,\n ignoreHtmlClass: 'lrn_noMath',\n compileError: function (doc, math, err) {\n logger(EVENTS.MATHJAX_COMPILE_ERROR);\n doc.compileError(math, err);\n },\n typesetError: function (doc, math, err) {\n logger(EVENTS.MATHJAX_TYPESET_ERROR);\n doc.typesetError(math, err);\n // throw new Error('typesetError');\n },\n },\n tex: {\n inlineMath: [\n ['\\\\(', '\\\\)'],\n ['$$', '$$'],\n ],\n displayMath: [['\\\\[', '\\\\]']],\n macros: {\n abs: ['{|#1|}', 1],\n degree: ['°'],\n longdiv: ['{\\\\enclose{longdiv}{#1}}', 1],\n atomic: ['{_{#1}^{#2}}', 2],\n polyatomic: ['{_{#2}{}^{#1}}', 2],\n circledot: ['{\\\\odot}'],\n parallelogram: ['\\\\unicode{x25B1}'],\n ngtr: ['\\\\unicode{x226F}'],\n nless: ['\\\\unicode{x226E}'],\n MathQuillVarField: ['#1', 1],\n overarc: ['{\\\\overparen{#1}}', 1],\n },\n formatError: (jax, err) => {\n logger(EVENTS.MATHJAX_FORMAT_ERROR, {\n id: err.id,\n message: err.message,\n });\n jax.formatError(err);\n },\n },\n chtml: {\n minScale: 1,\n matchFontHeight: false,\n },\n };\n};\n\ninterface IGetPaperColorByQuestion {\n (question: IWorksheetQuestion): TWorksheetQuestionPaperColor;\n}\n\nconst getPaperColorByQuestion: IGetPaperColorByQuestion = question => {\n const { item_type, instructor_stimulus } = question;\n const lowerCaseInstructorStimulus = instructor_stimulus?.toLowerCase();\n\n switch (item_type) {\n case 'overview':\n case 'learning':\n return 'blue';\n case 'learning-we-do':\n case 'learning-your-turn':\n case 'learning-explore':\n if (\n lowerCaseInstructorStimulus === 'instruction' ||\n lowerCaseInstructorStimulus === 'intro' ||\n lowerCaseInstructorStimulus === 'concept-intro'\n ) {\n return 'blue';\n }\n\n if (lowerCaseInstructorStimulus === 'task') {\n return 'green';\n }\n\n return 'yellow';\n case 'practice-basic':\n case 'practice-regular':\n return 'yellow';\n case 'exit-ticket':\n return 'purple';\n case 'advanced-practice':\n return 'orange';\n default:\n if (lowerCaseInstructorStimulus === 'learn') return 'blue';\n\n if (lowerCaseInstructorStimulus === 'try' || lowerCaseInstructorStimulus === 'apply')\n return 'green';\n\n return 'yellow';\n }\n};\n\nconst getQuestionBackgroundImage = (paperColor: TWorksheetQuestionPaperColor) => {\n return `https://cuemath-intel.s3.ap-southeast-1.amazonaws.com/media/math-canvas/paper-${paperColor}.png`;\n};\n\nconst getQuestionBorderColor = (\n paperColor: TWorksheetQuestionPaperColor,\n isActive?: boolean,\n): TColorNames => {\n if (!isActive) {\n return 'GREY_3';\n }\n\n switch (paperColor) {\n case 'orange':\n case 'white':\n return 'ORANGE_2';\n case 'blue':\n return 'BLUE_2';\n case 'green':\n return 'GREEN_2';\n case 'yellow':\n return 'YELLOW_2';\n case 'purple':\n return 'PURPLE_2';\n default:\n return 'GREY_3';\n }\n};\n\nconst getNavigationSectionBackgroundColor = (sectionName?: TSectionName): TColorNames => {\n switch (sectionName) {\n case 'learning':\n return 'BLUE_1';\n case 'practice':\n case 'practice-basic':\n case 'practice-regular':\n return 'YELLOW_1';\n case 'exit-ticket':\n return 'PURPLE_1';\n case 'advanced':\n return 'ORANGE_1';\n default:\n return 'YELLOW_1';\n }\n};\n\nconst getNavigationSectionName = (sectionName?: TSectionName): string => {\n switch (sectionName) {\n case 'learning':\n return 'Learning';\n case 'practice':\n return 'Practice';\n case 'practice-basic':\n return 'Basic practice';\n case 'practice-regular':\n return 'Regular practice';\n case 'exit-ticket':\n return 'Mini quiz';\n case 'advanced':\n return 'Advanced work';\n default:\n return '';\n }\n};\n\nconst getNavigationSectionIcon = (sectionName?: TSectionName) => {\n switch (sectionName) {\n case 'learning':\n return Bulb2Icon;\n case 'practice':\n return PracticeIcon;\n case 'practice-basic':\n return Edit2Icon;\n case 'practice-regular':\n return EditStarIcon;\n case 'exit-ticket':\n return QuestionLetterIcon;\n case 'advanced':\n return Star2Icon;\n default:\n return Bulb2Icon;\n }\n};\n\nconst isSATAssessmentNode = (nodeType: NODE_TYPES) =>\n nodeType === 'SAT_ENGLISH_ASSESSMENT' || nodeType === 'SAT_MATH_ASSESSMENT';\n\nconst checkIsClozeFormulaResponseInvalid = (response: ILearnosityQuestionResponse) => {\n if (Array.isArray(response.value)) {\n const isInvalid = response.value.some(\n item => typeof item === 'string' && item.length > CLOZE_FORMULA_RESPONSE_LIMIT,\n );\n\n return isInvalid;\n }\n\n return false;\n};\n\nconst getWorksheetHeaderLayout: IWorksheetHeaderLayoutProps = ({\n isPuzzleWorksheet,\n isTestWorksheet,\n imageHue = 'BLUE',\n}) => {\n if (isPuzzleWorksheet) {\n return {\n bgColor: `${imageHue}_3`,\n borderColor: `${imageHue}_4`,\n textColor: 'BLACK_T_87',\n };\n }\n\n if (isTestWorksheet) {\n return {\n bgColor: 'WHITE_3',\n borderColor: 'WHITE_4',\n textColor: 'BLACK_T_87',\n };\n }\n\n return {\n bgColor: 'BLACK',\n borderColor: 'BLACK_4',\n textColor: 'WHITE',\n };\n};\n\ninterface IGetPuzzleWorksheetBackgroundColor {\n (imageHue?: THueNames): TColorNames;\n}\n\nconst getPuzzleWorksheetBackgroundColor: IGetPuzzleWorksheetBackgroundColor = imageHue => {\n if (!imageHue) return 'BLUE_1';\n\n return `${imageHue}_1`;\n};\n\nconst isConceptIntroWidget = (instructorStimulus?: TInstructorStimulus) => {\n if (!instructorStimulus) {\n return false;\n }\n\n const lowerCaseInstructorStimulus = instructorStimulus.toLowerCase();\n\n return lowerCaseInstructorStimulus === 'intro' || lowerCaseInstructorStimulus === 'concept-intro';\n};\n\nexport {\n checkIsClozeFormulaResponseInvalid,\n getInitialQuestionId,\n getInitialResponses,\n getNavigationSectionBackgroundColor,\n getNavigationSectionIcon,\n getNavigationSectionName,\n getPaperColorByQuestion,\n getPuzzleWorksheetBackgroundColor,\n getQuestionBackgroundImage,\n getQuestionBorderColor,\n getQuestionMetadata,\n getWorksheetDimensions,\n getWorksheetHeaderLayout,\n isConceptIntroWidget,\n isOkayTypeQuestion,\n isSATAssessmentNode,\n isTeacherInterventionNeeded,\n scrollToQuestion,\n setMathJaxConfigInWindow,\n};\n"],"names":["getInitialQuestionId","questions","initialQuestion","initialResponseId","initialItemIndex","lastUnlockedQuestionIndex","lastAttemptableQuestionIndex","unlockedQuestions","lastUnlockedQuestion","lastAttemptableQuestion","q","question","_a","_b","getQuestionMetadata","questionId","isOkayTypeQuestion","getInitialResponses","acc","getWorksheetDimensions","items","layout","actionBar","item","QUESTION_WIDTH","SPLIT_QUESTION_WIDTH","ACTION_BAR_HEIGHT","scrollToQuestion","animation","block","$questionEl","type","options","instructor_stimulus","isTeacherInterventionNeeded","attemptsAfterTeacherInterventionNeeded","attemptsHistory","score","setMathJaxConfigInWindow","logger","doc","math","err","EVENTS","jax","getPaperColorByQuestion","item_type","lowerCaseInstructorStimulus","getQuestionBackgroundImage","paperColor","getQuestionBorderColor","isActive","getNavigationSectionBackgroundColor","sectionName","getNavigationSectionName","getNavigationSectionIcon","Bulb2Icon","PracticeIcon","Edit2Icon","EditStarIcon","QuestionLetterIcon","Star2Icon","checkIsClozeFormulaResponseInvalid","response","CLOZE_FORMULA_RESPONSE_LIMIT","getWorksheetHeaderLayout","isPuzzleWorksheet","isTestWorksheet","imageHue","getPuzzleWorksheetBackgroundColor","isConceptIntroWidget","instructorStimulus"],"mappings":"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"}
1
+ {"version":3,"file":"worksheet-helpers.js","sources":["../../../../src/features/worksheet/worksheet/worksheet-helpers.ts"],"sourcesContent":["import Bulb2Icon from '../../../assets/line-icons/icons/bulb2';\nimport EditStarIcon from '../../../assets/line-icons/icons/edit-star';\nimport Edit2Icon from '../../../assets/line-icons/icons/edit2';\nimport PracticeIcon from '../../../assets/line-icons/icons/practice';\nimport QuestionLetterIcon from '../../../assets/line-icons/icons/question-letter';\nimport Star2Icon from '../../../assets/line-icons/icons/star2';\nimport { type NODE_TYPES } from '../../../types/models/worksheet';\nimport type { TColorNames, THueNames } from '../../ui/types';\nimport EVENTS from '../constants/events';\nimport {\n ACTION_BAR_HEIGHT,\n CLOZE_FORMULA_RESPONSE_LIMIT,\n QUESTION_WIDTH,\n SPLIT_QUESTION_WIDTH,\n} from './constants';\nimport type { TWorksheetQuestionPaperColor } from './worksheet-question/worksheet-question-types';\nimport {\n type ILearnosityItem,\n type ILearnosityQuestion,\n type ILearnosityQuestionResponse,\n type IWorksheetBehavior,\n type IWorksheetHeaderLayoutProps,\n type IWorksheetLayout,\n type IWorksheetQuestion,\n type IWorksheetResponse,\n type TInstructorStimulus,\n type TSectionName,\n} from './worksheet-types';\n\ninterface IGetInitialQuestionId {\n (params: {\n questions: IWorksheetQuestion[];\n initialQuestion: IWorksheetBehavior['initialQuestion'];\n lastUnlockedQuestionIndex: number;\n lastAttemptableQuestionIndex: number;\n initialResponseId?: string;\n initialItemIndex?: number;\n }): string;\n}\n\nconst getInitialQuestionId: IGetInitialQuestionId = ({\n questions,\n initialQuestion,\n initialResponseId,\n initialItemIndex,\n lastUnlockedQuestionIndex,\n lastAttemptableQuestionIndex,\n}) => {\n const unlockedQuestions = questions.slice(0, lastUnlockedQuestionIndex + 1);\n const lastUnlockedQuestion = questions[lastUnlockedQuestionIndex]!;\n const lastAttemptableQuestion = questions[lastAttemptableQuestionIndex]!;\n\n if (initialResponseId && unlockedQuestions.find(q => q.response_id === initialResponseId)) {\n return initialResponseId;\n }\n\n if (\n typeof initialItemIndex === 'number' &&\n initialItemIndex <= lastUnlockedQuestion.item_number\n ) {\n const question = questions.find(q => q.item_number === initialItemIndex);\n\n if (question?.response_id) {\n return question.response_id;\n }\n }\n\n if (initialQuestion === 'FIRST' && questions[0]?.response_id) {\n return questions[0].response_id;\n }\n\n if (initialQuestion === 'CURRENT') {\n return lastAttemptableQuestion.response_id;\n }\n\n if (questions[0]?.response_id) {\n return questions[0].response_id;\n }\n\n throw new Error('Initial question not found');\n};\n\ntype TQuestionMetadata = Pick<\n IWorksheetResponse,\n 'widgetReference' | 'itemReference' | 'itemPosition' | 'questionPosition' | 'isOkayTypeQuestion'\n>;\n\nfunction getQuestionMetadata(\n questions: IWorksheetQuestion[],\n questionId: string,\n): TQuestionMetadata;\nfunction getQuestionMetadata(question: IWorksheetQuestion): TQuestionMetadata;\nfunction getQuestionMetadata(\n questions: IWorksheetQuestion | IWorksheetQuestion[],\n questionId?: string,\n) {\n const question = Array.isArray(questions)\n ? questions.find(q => q.response_id === questionId)\n : questions;\n\n if (!question) {\n throw new Error(`Question with id ${questionId} not found`);\n }\n\n return {\n widgetReference: question.metadata.widget_reference,\n itemReference: question.item_reference,\n itemPosition: question.item_number,\n questionPosition: question.question_number,\n isOkayTypeQuestion: isOkayTypeQuestion(question),\n score: {\n max_score:\n question?.validation?.valid_response?.score ?? 0 * question.metadata.valid_response_count,\n },\n tags: {\n ...question.item_tags_map,\n instructor_stimulus: question.instructor_stimulus,\n },\n };\n}\n\ninterface IGetInitialResponses {\n (questions: IWorksheetQuestion[]): Record<string, IWorksheetResponse>;\n}\n\nconst getInitialResponses: IGetInitialResponses = questions => {\n return questions.reduce(\n (acc, question) => ({\n ...acc,\n [question.response_id]: getQuestionMetadata(questions, question.response_id),\n }),\n {},\n );\n};\n\ninterface IGetWorksheetDimensions {\n (\n items: ILearnosityItem[],\n layout: IWorksheetLayout,\n ): {\n questionsContainerWidth: number;\n maxQuestionWidth: number;\n actionbarHeight: number;\n };\n}\n\nconst getWorksheetDimensions: IGetWorksheetDimensions = (items, layout) => {\n const { actionBar } = layout;\n const isSingleColumn = !items.some(item =>\n item.questions.some(question => question.stimulus_review),\n );\n const actionbarHeight = actionBar === 'bottom' ? ACTION_BAR_HEIGHT : 0;\n\n return {\n questionsContainerWidth: isSingleColumn ? QUESTION_WIDTH : SPLIT_QUESTION_WIDTH,\n maxQuestionWidth: QUESTION_WIDTH,\n actionbarHeight,\n };\n};\n\ninterface IScrollToQuestion {\n (questionId: string, params?: { animation?: boolean; block?: 'start' | 'end' }): void;\n}\n\nconst scrollToQuestion: IScrollToQuestion = (\n questionId,\n { animation = false, block = 'start' } = {},\n) => {\n const $questionEl = document.querySelectorAll(`.widget-${questionId}`)[0];\n\n if ($questionEl) {\n $questionEl.scrollIntoView({\n block,\n behavior: animation ? 'smooth' : 'instant',\n });\n }\n};\n\ninterface IIsOkayTypeQuestion {\n (question: IWorksheetQuestion | ILearnosityQuestion): boolean;\n}\n\nconst isOkayTypeQuestion: IIsOkayTypeQuestion = question => {\n const { type, options, instructor_stimulus } = question;\n const itemType = 'item_type' in question ? question.item_type : undefined;\n\n if (\n itemType === 'overview' ||\n instructor_stimulus === 'Intro' ||\n instructor_stimulus === 'SystemIntro' ||\n instructor_stimulus === 'Concept-Intro'\n ) {\n return true;\n }\n\n return type === 'mcq' && options?.length === 1 ? true : false;\n};\n\ninterface IIsTeacherInterventionNeeded {\n (params: {\n attemptsAfterTeacherInterventionNeeded: number | undefined;\n attemptsHistory: IWorksheetResponse['attemptsHistory'];\n }): boolean;\n}\n\nconst isTeacherInterventionNeeded: IIsTeacherInterventionNeeded = ({\n attemptsAfterTeacherInterventionNeeded,\n attemptsHistory,\n}) => {\n if (\n attemptsAfterTeacherInterventionNeeded &&\n (attemptsHistory?.length ?? 0) >= attemptsAfterTeacherInterventionNeeded\n ) {\n const score = attemptsHistory?.slice(-1)[0]?.score;\n\n if (score && score.score === score.max_score) {\n return false;\n }\n\n return true;\n }\n\n return false;\n};\n\nconst setMathJaxConfigInWindow = (\n logger: (eventName: string, data?: Record<string, unknown>) => void,\n) => {\n window.MathJax = {\n options: {\n enableMenu: false,\n ignoreHtmlClass: 'lrn_noMath',\n compileError: function (doc, math, err) {\n logger(EVENTS.MATHJAX_COMPILE_ERROR);\n doc.compileError(math, err);\n },\n typesetError: function (doc, math, err) {\n logger(EVENTS.MATHJAX_TYPESET_ERROR);\n doc.typesetError(math, err);\n // throw new Error('typesetError');\n },\n },\n tex: {\n inlineMath: [\n ['\\\\(', '\\\\)'],\n ['$$', '$$'],\n ],\n displayMath: [['\\\\[', '\\\\]']],\n macros: {\n abs: ['{|#1|}', 1],\n degree: ['°'],\n longdiv: ['{\\\\enclose{longdiv}{#1}}', 1],\n atomic: ['{_{#1}^{#2}}', 2],\n polyatomic: ['{_{#2}{}^{#1}}', 2],\n circledot: ['{\\\\odot}'],\n parallelogram: ['\\\\unicode{x25B1}'],\n ngtr: ['\\\\unicode{x226F}'],\n nless: ['\\\\unicode{x226E}'],\n MathQuillVarField: ['#1', 1],\n overarc: ['{\\\\overparen{#1}}', 1],\n },\n formatError: (jax, err) => {\n logger(EVENTS.MATHJAX_FORMAT_ERROR, {\n id: err.id,\n message: err.message,\n });\n jax.formatError(err);\n },\n },\n chtml: {\n minScale: 1,\n matchFontHeight: false,\n },\n };\n};\n\ninterface IGetPaperColorByQuestion {\n (question: IWorksheetQuestion): TWorksheetQuestionPaperColor;\n}\n\nconst getPaperColorByQuestion: IGetPaperColorByQuestion = question => {\n const { item_type, instructor_stimulus } = question;\n const lowerCaseInstructorStimulus = instructor_stimulus?.toLowerCase();\n\n switch (item_type) {\n case 'overview':\n case 'learning':\n return 'blue';\n case 'learning-we-do':\n case 'learning-your-turn':\n case 'learning-explore':\n if (\n lowerCaseInstructorStimulus === 'instruction' ||\n lowerCaseInstructorStimulus === 'intro' ||\n lowerCaseInstructorStimulus === 'concept-intro'\n ) {\n return 'blue';\n }\n\n if (lowerCaseInstructorStimulus === 'task') {\n return 'green';\n }\n\n return 'yellow';\n case 'practice-basic':\n case 'practice-regular':\n return 'yellow';\n case 'exit-ticket':\n return 'purple';\n case 'advanced-practice':\n return 'orange';\n default:\n if (lowerCaseInstructorStimulus === 'learn') return 'blue';\n\n if (lowerCaseInstructorStimulus === 'try' || lowerCaseInstructorStimulus === 'apply')\n return 'green';\n\n return 'yellow';\n }\n};\n\nconst getQuestionBackgroundImage = (paperColor: TWorksheetQuestionPaperColor) => {\n return `https://cuemath-intel.s3.ap-southeast-1.amazonaws.com/media/math-canvas/paper-${paperColor}.png`;\n};\n\nconst getQuestionBorderColor = (\n paperColor: TWorksheetQuestionPaperColor,\n isActive?: boolean,\n): TColorNames => {\n if (!isActive) {\n return 'GREY_3';\n }\n\n switch (paperColor) {\n case 'orange':\n case 'white':\n return 'ORANGE_2';\n case 'blue':\n return 'BLUE_2';\n case 'green':\n return 'GREEN_2';\n case 'yellow':\n return 'YELLOW_2';\n case 'purple':\n return 'PURPLE_2';\n default:\n return 'GREY_3';\n }\n};\n\nconst getNavigationSectionBackgroundColor = (sectionName?: TSectionName): TColorNames => {\n switch (sectionName) {\n case 'learning':\n return 'BLUE_1';\n case 'practice':\n case 'practice-basic':\n case 'practice-regular':\n return 'YELLOW_1';\n case 'exit-ticket':\n return 'PURPLE_1';\n case 'advanced':\n return 'ORANGE_1';\n default:\n return 'YELLOW_1';\n }\n};\n\nconst getNavigationSectionName = (sectionName?: TSectionName): string => {\n switch (sectionName) {\n case 'learning':\n return 'Learning';\n case 'practice':\n return 'Practice';\n case 'practice-basic':\n return 'Basic practice';\n case 'practice-regular':\n return 'Regular practice';\n case 'exit-ticket':\n return 'Mini quiz';\n case 'advanced':\n return 'Advanced work';\n default:\n return '';\n }\n};\n\nconst getNavigationSectionIcon = (sectionName?: TSectionName) => {\n switch (sectionName) {\n case 'learning':\n return Bulb2Icon;\n case 'practice':\n return PracticeIcon;\n case 'practice-basic':\n return Edit2Icon;\n case 'practice-regular':\n return EditStarIcon;\n case 'exit-ticket':\n return QuestionLetterIcon;\n case 'advanced':\n return Star2Icon;\n default:\n return Bulb2Icon;\n }\n};\n\nconst isSATAssessmentNode = (nodeType: NODE_TYPES) =>\n nodeType === 'SAT_ENGLISH_ASSESSMENT' || nodeType === 'SAT_MATH_ASSESSMENT';\n\nconst checkIsClozeFormulaResponseInvalid = (response: ILearnosityQuestionResponse) => {\n if (Array.isArray(response.value)) {\n const isInvalid = response.value.some(\n item => typeof item === 'string' && item.length > CLOZE_FORMULA_RESPONSE_LIMIT,\n );\n\n return isInvalid;\n }\n\n return false;\n};\n\nconst getWorksheetHeaderLayout: IWorksheetHeaderLayoutProps = ({\n isPuzzleWorksheet,\n isTestWorksheet,\n imageHue = 'BLUE',\n}) => {\n if (isPuzzleWorksheet) {\n return {\n bgColor: `${imageHue}_3`,\n borderColor: `${imageHue}_4`,\n textColor: 'BLACK_T_87',\n };\n }\n\n if (isTestWorksheet) {\n return {\n bgColor: 'WHITE_3',\n borderColor: 'WHITE_4',\n textColor: 'BLACK_T_87',\n };\n }\n\n return {\n bgColor: 'BLACK',\n borderColor: 'BLACK_4',\n textColor: 'WHITE',\n };\n};\n\ninterface IGetPuzzleWorksheetBackgroundColor {\n (imageHue?: THueNames): TColorNames;\n}\n\nconst getPuzzleWorksheetBackgroundColor: IGetPuzzleWorksheetBackgroundColor = imageHue => {\n if (!imageHue) return 'BLUE_1';\n\n return `${imageHue}_1`;\n};\n\nconst isConceptIntroWidget = (instructorStimulus?: TInstructorStimulus) => {\n if (!instructorStimulus) {\n return false;\n }\n\n const lowerCaseInstructorStimulus = instructorStimulus.toLowerCase();\n\n return lowerCaseInstructorStimulus === 'intro' || lowerCaseInstructorStimulus === 'concept-intro';\n};\n\nexport {\n checkIsClozeFormulaResponseInvalid,\n getInitialQuestionId,\n getInitialResponses,\n getNavigationSectionBackgroundColor,\n getNavigationSectionIcon,\n getNavigationSectionName,\n getPaperColorByQuestion,\n getPuzzleWorksheetBackgroundColor,\n getQuestionBackgroundImage,\n getQuestionBorderColor,\n getQuestionMetadata,\n getWorksheetDimensions,\n getWorksheetHeaderLayout,\n isConceptIntroWidget,\n isOkayTypeQuestion,\n isSATAssessmentNode,\n isTeacherInterventionNeeded,\n scrollToQuestion,\n setMathJaxConfigInWindow,\n};\n"],"names":["getInitialQuestionId","questions","initialQuestion","initialResponseId","initialItemIndex","lastUnlockedQuestionIndex","lastAttemptableQuestionIndex","unlockedQuestions","lastUnlockedQuestion","lastAttemptableQuestion","q","question","_a","_b","getQuestionMetadata","questionId","isOkayTypeQuestion","getInitialResponses","acc","getWorksheetDimensions","items","layout","actionBar","item","QUESTION_WIDTH","SPLIT_QUESTION_WIDTH","ACTION_BAR_HEIGHT","scrollToQuestion","animation","block","$questionEl","type","options","instructor_stimulus","isTeacherInterventionNeeded","attemptsAfterTeacherInterventionNeeded","attemptsHistory","score","setMathJaxConfigInWindow","logger","doc","math","err","EVENTS","jax","getPaperColorByQuestion","item_type","lowerCaseInstructorStimulus","getQuestionBackgroundImage","paperColor","getQuestionBorderColor","isActive","getNavigationSectionBackgroundColor","sectionName","getNavigationSectionName","getNavigationSectionIcon","Bulb2Icon","PracticeIcon","Edit2Icon","EditStarIcon","QuestionLetterIcon","Star2Icon","isSATAssessmentNode","nodeType","checkIsClozeFormulaResponseInvalid","response","CLOZE_FORMULA_RESPONSE_LIMIT","getWorksheetHeaderLayout","isPuzzleWorksheet","isTestWorksheet","imageHue","getPuzzleWorksheetBackgroundColor","isConceptIntroWidget","instructorStimulus"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -4713,6 +4713,7 @@ export declare interface ITodaysContentTimeStamps {
4713
4713
  declare interface IToolbarProps {
4714
4714
  userType: TUserTypes;
4715
4715
  renderAs: TRenderAs_2;
4716
+ withGutter?: boolean;
4716
4717
  }
4717
4718
 
4718
4719
  export declare interface ITrackEvent {
@@ -4724,6 +4725,7 @@ export declare interface ITrialSessionFormFields {
4724
4725
  id: string;
4725
4726
  name?: string;
4726
4727
  grade?: string;
4728
+ course?: string;
4727
4729
  curriculum?: string;
4728
4730
  goals?: TGoals[];
4729
4731
  studentProfile?: {
@@ -4755,6 +4757,7 @@ export declare interface ITrialSessionFormFields {
4755
4757
  numberInNameError?: boolean;
4756
4758
  confirmationModalActive?: boolean;
4757
4759
  resetAttempt: boolean;
4760
+ selectedTopics?: string[];
4758
4761
  }
4759
4762
 
4760
4763
  declare interface ITrialSessionMetadata {
@@ -4763,6 +4766,7 @@ declare interface ITrialSessionMetadata {
4763
4766
 
4764
4767
  declare interface ITrialSessionProps {
4765
4768
  classStartedOn?: Date;
4769
+ demoType: string;
4766
4770
  height?: string | number;
4767
4771
  userType: TUserTypes;
4768
4772
  studentId: string;
@@ -6519,7 +6523,7 @@ export declare type TCheckboxVariants = 'black' | 'black-dark';
6519
6523
  */
6520
6524
  export declare type TCoachmarkJourneyProps = Omit<ICoachmarkProps, 'isActive'>;
6521
6525
 
6522
- export declare type TColorNames = `${THueNames}_${'1' | '2' | '3' | '4' | '5' | '6'}` | `${'BLACK' | 'WHITE'}_${'1' | '2' | '3' | '4' | '5'}` | `${'GREY'}_${'1' | '2' | '3' | '4'}` | `${'BLACK_T'}_${'02' | '04' | '08' | '15' | '20' | '38' | '60' | '87'}` | `${'WHITE_T'}_${'03' | '05' | '10' | '15' | '38' | '60' | '87'}` | 'BLACK' | `${'BLACK'}_${'50' | '65' | '75' | '10'}` | 'REAL_BLACK' | `${'REAL_BLACK'}_${'10' | '15' | '30' | '50' | '60'}` | 'WHITE' | `${'WHITE'}_${'10' | '20' | '30' | '70'}` | 'RED' | 'TRANSPARENT' | 'FLOWER' | `${'GREEN' | 'PURPLE'}_20`;
6526
+ export declare type TColorNames = `${THueNames}_${'1' | '2' | '3' | '4' | '5' | '6'}` | `${'BLACK' | 'WHITE'}_${'1' | '2' | '3' | '4' | '5'}` | `${'GREY'}_${'1' | '2' | '3' | '4'}` | `${'BLACK_T'}_${'02' | '04' | '08' | '15' | '20' | '38' | '60' | '87'}` | `${'WHITE_T'}_${'03' | '05' | '10' | '15' | '38' | '60' | '87'}` | 'BLACK' | `${'BLACK'}_${'50' | '65' | '75' | '10'}` | 'REAL_BLACK' | `${'REAL_BLACK'}_${'10' | '15' | '30' | '50' | '60'}` | 'WHITE' | `${'WHITE'}_${'10' | '20' | '30' | '70'}` | 'RED' | `${'RED'}_${'4'}` | 'TRANSPARENT' | 'FLOWER' | `${'GREEN' | 'PURPLE'}_20`;
6523
6527
 
6524
6528
  export declare type TColorsMap = Record<TColorNames, string>;
6525
6529
 
@@ -7745,10 +7749,10 @@ export declare const useGetLeaderboardDal: (userId: string) => Omit<ReturnType<t
7745
7749
  };
7746
7750
 
7747
7751
  export declare const useGetMileStoneConfig: (initialId?: string, initialQuery?: {
7748
- demo_type?: "TRIAL_V3";
7752
+ demo_type?: string;
7749
7753
  } | undefined) => {
7750
7754
  get: (id: string, query: {
7751
- demo_type?: "TRIAL_V3";
7755
+ demo_type?: string;
7752
7756
  } | undefined, meta: void) => Promise<void>;
7753
7757
  resource: ResourceModel<IMilestoneConfig> | undefined;
7754
7758
  data: IMilestoneConfig | undefined;
package/dist/index.js CHANGED
@@ -268,7 +268,7 @@ import { default as ep } from "./features/trial-session/comps/session-report/rep
268
268
  import { default as rp } from "./features/trial-session/comps/student-profile/student-profile-highlights/student-profile-highlights.js";
269
269
  import { EClassTimeAlertLevel as ap } from "./features/trial-session/trial-session-types.js";
270
270
  import { ESessionStatus as sp } from "./features/parent-dashboard/comps/upcoming-sessions/upcoming-sessions-types.js";
271
- import { useGetSessionReports as up } from "./features/trial-session/api/trial-home.js";
271
+ import { useGetSessionReports as up } from "./features/trial-session/api/trial-session-report.js";
272
272
  import { useClassTimeAlerts as mp } from "./features/trial-session/hooks/use-class-time-alerts.js";
273
273
  import { default as xp } from "./features/timeline/daily-timeline/daily-timeline.js";
274
274
  import { USER_TYPE as ip } from "./features/timeline/daily-timeline/daily-timeline-types.js";