@cuemath/leap 3.1.48-aa2 → 3.1.48-aa3

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.
@@ -1,6 +1,6 @@
1
1
  import { jsxs as R, Fragment as lt, jsx as o } from "react/jsx-runtime";
2
2
  import { captureMessage as Z } from "@sentry/browser";
3
- import { memo as dt, forwardRef as ut, useMemo as Q, useState as y, useCallback as T, useEffect as b, useLayoutEffect as mt } from "react";
3
+ import { memo as dt, forwardRef as ut, useMemo as Q, useState as y, useCallback as v, useEffect as b, useLayoutEffect as mt } from "react";
4
4
  import ft from "../../../assets/line-icons/icons/check2.js";
5
5
  import pt from "../../../assets/line-icons/icons/info2.js";
6
6
  import ht from "../../../helpers/get-device-details.js";
@@ -10,8 +10,8 @@ import bt from "../../ui/text/text.js";
10
10
  import It from "../constants/events.js";
11
11
  import St from "../user-pointer-pin/user-pin.js";
12
12
  import { WORKSHEET_NUDGE_BANNER_HEIGHT as me, TOP_NAVIGATION_HEIGHT as Ct, DESMOS_CALC_POSITION as yt } from "./constants.js";
13
- import Tt from "./hooks/use-create-imperative-handle.js";
14
- import vt from "./hooks/use-get-active-question-id.js";
13
+ import vt from "./hooks/use-create-imperative-handle.js";
14
+ import Tt from "./hooks/use-get-active-question-id.js";
15
15
  import $t from "./hooks/use-time-on-questions.js";
16
16
  import Et from "./question-tips.js";
17
17
  import _t from "./worksheet-action-bar/worksheet-action-bar.js";
@@ -19,9 +19,9 @@ import kt from "./worksheet-blocker/worksheet-blocker.js";
19
19
  import { getWorksheetDimensions as wt, getQuestionsFromItems as Nt, getInitialResponses as At, getLastUnlockedQuestionIndex as fe, getRenderableQuestions as Bt, getInitialQuestionId as Wt, getQuestionMetadata as pe, scrollToQuestion as L, getWorksheetNudgeBannerInfo as Ot } from "./worksheet-helpers.js";
20
20
  import Rt from "./worksheet-navigation/worksheet-navigation.js";
21
21
  import Dt from "./worksheet-question/worksheet-question.js";
22
- import Vt from "./worksheet-sidebar/navigator.js";
23
- import Mt from "./worksheet-sidebar/sidebar.js";
24
- import { LearnosityStyleOverrides as Ht, NudgeBannerWrapper as xt, NudgeBannerIcon as he, WorksheetContainer as qt, NavigationContainer as Pt, NavigationWrapper as Qt, BlockerWrapper as Lt, DesmosCalcWrapper as Gt, ActionbarContainer as Ft, ActionbarWrapper as jt, StudentWorksheetSideBar as Kt, QuestionsWrapper as Ut } from "./worksheet-styled.js";
22
+ import Mt from "./worksheet-sidebar/navigator.js";
23
+ import Vt from "./worksheet-sidebar/sidebar.js";
24
+ import { LearnosityStyleOverrides as xt, NudgeBannerWrapper as Ht, NudgeBannerIcon as he, WorksheetContainer as qt, NavigationContainer as Pt, NavigationWrapper as Qt, BlockerWrapper as Lt, DesmosCalcWrapper as Gt, ActionbarContainer as Ft, ActionbarWrapper as jt, StudentWorksheetSideBar as Kt, QuestionsWrapper as Ut } from "./worksheet-styled.js";
25
25
  import Xt from "./worksheet-summary/worksheet-summary.js";
26
26
  const zt = (ge, be) => {
27
27
  const {
@@ -33,9 +33,9 @@ const zt = (ge, be) => {
33
33
  initialItemIndex: ye,
34
34
  learnosityActivityRef: _,
35
35
  learnosityItems: k,
36
- learnosityResponses: Te,
37
- layout: v,
38
- background: ve,
36
+ learnosityResponses: ve,
37
+ layout: T,
38
+ background: Te,
39
39
  behavior: a,
40
40
  updatedResponses: G,
41
41
  showNudgeBanner: $e,
@@ -48,7 +48,7 @@ const zt = (ge, be) => {
48
48
  onOptionalItemAssignment: _e,
49
49
  onOptionalItemSkip: ke,
50
50
  onExitTicketStart: D,
51
- onExitTicketSubmit: V,
51
+ onExitTicketSubmit: M,
52
52
  onSubmit: we,
53
53
  learnosity: S,
54
54
  appendedQuestionIds: ne,
@@ -60,11 +60,11 @@ const zt = (ge, be) => {
60
60
  isCanvasEnabled: oe,
61
61
  onHelp: Re,
62
62
  onPublishMouseMove: De,
63
- onSubscribeMouseMove: Ve,
63
+ onSubscribeMouseMove: Me,
64
64
  onActiveQuestionChange: K,
65
- openQuestionFeedbackModal: Me,
66
- summaryDescription: He,
67
- canSubmitWorksheet: xe,
65
+ openQuestionFeedbackModal: Ve,
66
+ summaryDescription: xe,
67
+ canSubmitWorksheet: He,
68
68
  loggerRef: w,
69
69
  canResolveDoubt: qe,
70
70
  onResolveDoubt: Pe,
@@ -74,42 +74,42 @@ const zt = (ge, be) => {
74
74
  subjectiveProps: Fe,
75
75
  canShowActionBar: je = !0
76
76
  } = ge, { initialQuestion: Ke, navigationMode: p, teacherValidationEnabled: U } = a, {
77
- containerStyle: M,
77
+ containerStyle: V,
78
78
  containerWidth: Ue,
79
79
  minQuestionHeight: re,
80
80
  minSummaryHeight: Xe,
81
- questionsScrollable: H,
81
+ questionsScrollable: x,
82
82
  navigationBar: ze,
83
- topOffset: x,
83
+ topOffset: H,
84
84
  renderSideBar: Je,
85
85
  showUserPointer: Ye = !0
86
- } = v, { actionbarHeight: C, maxQuestionWidth: X, questionsContainerWidth: z } = Q(
87
- () => wt(k, v),
88
- [v, k]
89
- ), [t] = y(
86
+ } = T, { actionbarHeight: C, maxQuestionWidth: X, questionsContainerWidth: z } = Q(
87
+ () => wt(k, T),
88
+ [T, k]
89
+ ), [i] = y(
90
90
  () => Nt(k, {
91
91
  sectioned: U && p !== "ADAPTIVE" && p !== "CURRENT",
92
92
  adaptive: p === "ADAPTIVE"
93
93
  })
94
94
  ), [c, N] = y(
95
- () => Te ?? At(t)
95
+ () => ve ?? At(i)
96
96
  ), [se, Ze] = y(!1), h = Q(
97
97
  () => p !== "OPEN" ? fe({
98
- questions: t,
98
+ questions: i,
99
99
  responses: c,
100
100
  behavior: a,
101
101
  userType: r
102
- }) : t.length - 1,
103
- [a, p, t, c, r]
102
+ }) : i.length - 1,
103
+ [a, p, i, c, r]
104
104
  ), et = Q(
105
- () => Bt({ questions: t, lastUnlockedQuestionIndex: h, userType: r }),
106
- [t, h, r]
107
- ), l = t[h], s = c[(l == null ? void 0 : l.response_id) ?? ""], { bannerBackgroundColor: tt, label: it } = Ot(r, !!te), [A] = y(
105
+ () => Bt({ questions: i, lastUnlockedQuestionIndex: h, userType: r }),
106
+ [i, h, r]
107
+ ), l = i[h], s = c[(l == null ? void 0 : l.response_id) ?? ""], { bannerBackgroundColor: tt, label: it } = Ot(r, !!te), [A] = y(
108
108
  () => Wt({
109
- questions: t,
109
+ questions: i,
110
110
  initialQuestion: Ke,
111
111
  lastUnlockedQuestionIndex: fe({
112
- questions: t,
112
+ questions: i,
113
113
  responses: c,
114
114
  behavior: a,
115
115
  userType: r
@@ -117,14 +117,14 @@ const zt = (ge, be) => {
117
117
  initialResponseId: Ce,
118
118
  initialItemIndex: ye
119
119
  })
120
- ), { activeQuestionId: B, setActiveQuestionId: q, intersectionObserver: J } = vt(A), f = Q(
121
- () => t.findIndex((e) => e.response_id === B),
122
- [B, t]
123
- ), [g, Y] = y(!1), [ae, W] = y(), [ce, le] = y(!1), de = $t(a, c, B), nt = T(
124
- (e, i, n) => {
125
- const d = i === "SIMULATION" ? "simState" : void 0;
120
+ ), { activeQuestionId: B, setActiveQuestionId: q, intersectionObserver: J } = Tt(A), f = Q(
121
+ () => i.findIndex((e) => e.response_id === B),
122
+ [B, i]
123
+ ), [g, Y] = y(!1), [ae, W] = y(), [ce, le] = y(!1), de = $t(a, c, B), nt = v(
124
+ (e, t, n) => {
125
+ const d = t === "SIMULATION" ? "simState" : void 0;
126
126
  d && (I ? N((u) => {
127
- const m = e.response_id, $ = pe(t, m);
127
+ const m = e.response_id, $ = pe(i, m);
128
128
  if (!$) return u;
129
129
  const E = {
130
130
  ...$,
@@ -140,52 +140,56 @@ const zt = (ge, be) => {
140
140
  ...u,
141
141
  [m]: E
142
142
  };
143
- }) : j && j(e, i, n));
143
+ }) : j && j(e, t, n));
144
144
  },
145
- [j, I, t]
146
- ), ot = T(
147
- (e, i) => {
145
+ [j, I, i]
146
+ ), ot = v(
147
+ (e, t) => {
148
148
  N((n) => {
149
- const d = pe(t, e);
149
+ const d = pe(i, e);
150
150
  return d ? {
151
151
  ...n,
152
152
  [e]: {
153
153
  ...d,
154
154
  ...n[e],
155
- markedForReview: i
155
+ markedForReview: t
156
156
  }
157
157
  } : n;
158
158
  });
159
159
  },
160
- [t]
161
- ), O = T(() => {
160
+ [i]
161
+ ), O = v(() => {
162
162
  W((e) => {
163
- var i;
163
+ var t;
164
164
  if (e) {
165
- const n = (i = t[h]) == null ? void 0 : i.response_id;
165
+ const n = (t = i[h]) == null ? void 0 : t.response_id;
166
166
  n && setTimeout(() => {
167
167
  L(n);
168
168
  }, 50);
169
169
  }
170
170
  });
171
- }, [h, t]), P = T(
171
+ }, [h, i]), P = v(
172
172
  (e) => {
173
- Y(!1), H ? requestAnimationFrame(() => L(e)) : q(e);
173
+ Y(!1), x ? requestAnimationFrame(() => L(e)) : q(e);
174
174
  },
175
- [H, q]
176
- ), rt = T(() => {
175
+ [x, q]
176
+ ), rt = v(() => {
177
177
  le(!1);
178
- }, []), st = T(() => {
178
+ }, []), st = v(() => {
179
179
  le(!0);
180
- }, []), at = T(() => {
180
+ }, []), at = v(() => {
181
181
  Y(!0);
182
182
  }, []);
183
183
  return b(() => {
184
- const e = t[f];
185
- e && K && K(e);
186
- }, [K, t, f]), Tt(be, {
184
+ const e = i[f];
185
+ if (e && K) {
186
+ K(e);
187
+ const t = document.querySelector('div[role="dialog"][aria-label="Math Response Modal"]');
188
+ t && t.classList.add("lds-flexible-container--hide");
189
+ }
190
+ }, [K, i, f]), vt(be, {
187
191
  behavior: a,
188
- questions: t,
192
+ questions: i,
189
193
  setResponses: N,
190
194
  onResponseChange: I,
191
195
  onBulkResponsesChange: Ee,
@@ -203,10 +207,10 @@ const zt = (ge, be) => {
203
207
  }, 400) : L(A)), () => {
204
208
  clearTimeout(e);
205
209
  };
206
- }, [S, A, x]), b(() => {
210
+ }, [S, A, H]), b(() => {
207
211
  if (a.teacherValidationEnabled && l) {
208
- const { item_type: e, instructor_stimulus: i, is_optional: n } = l;
209
- r === "TEACHER" && (e === "exit-ticket" && i !== "SystemIntro" ? s != null && s.submittedByStudent && !(s != null && s.validatedByTeacher) ? W("exit-ticket-review-available") : s != null && s.validatedByTeacher ? O() : W("exit-ticket-teacher-intervention") : n ? s != null && s.assignStatus ? O() : W("optional-items-assignment") : n || O());
212
+ const { item_type: e, instructor_stimulus: t, is_optional: n } = l;
213
+ r === "TEACHER" && (e === "exit-ticket" && t !== "SystemIntro" ? s != null && s.submittedByStudent && !(s != null && s.validatedByTeacher) ? W("exit-ticket-review-available") : s != null && s.validatedByTeacher ? O() : W("exit-ticket-teacher-intervention") : n ? s != null && s.assignStatus ? O() : W("optional-items-assignment") : n || O());
210
214
  }
211
215
  }, [
212
216
  a.teacherValidationEnabled,
@@ -216,20 +220,20 @@ const zt = (ge, be) => {
216
220
  r
217
221
  ]), b(() => {
218
222
  if (a.teacherValidationEnabled && l) {
219
- const { item_type: e, instructor_stimulus: i } = l;
220
- r === "STUDENT" && e === "exit-ticket" && i !== "SystemIntro" && (s != null && s.submittedByStudent ? V == null || V() : D == null || D());
223
+ const { item_type: e, instructor_stimulus: t } = l;
224
+ r === "STUDENT" && e === "exit-ticket" && t !== "SystemIntro" && (s != null && s.submittedByStudent ? M == null || M() : D == null || D());
221
225
  }
222
226
  }, [
223
227
  a.teacherValidationEnabled,
224
228
  l,
225
229
  s == null ? void 0 : s.submittedByStudent,
226
230
  D,
227
- V,
231
+ M,
228
232
  r
229
233
  ]), b(() => {
230
- p === "CURRENT" && k.forEach(({ reference: e, questions: i }) => {
234
+ p === "CURRENT" && k.forEach(({ reference: e, questions: t }) => {
231
235
  var n, d, u;
232
- i.length < 3 ? Z(`Diagnostics item has Less than 3 questions: ${e}`, {
236
+ t.length < 3 ? Z(`Diagnostics item has Less than 3 questions: ${e}`, {
233
237
  tags: {
234
238
  "content-type": "learnosity",
235
239
  "activity-reference": _,
@@ -237,7 +241,7 @@ const zt = (ge, be) => {
237
241
  },
238
242
  fingerprint: [`diagnostics-item-questions-count-${e}`]
239
243
  // Add unique fingerprint
240
- }) : (((n = i[0]) == null ? void 0 : n.instructor_stimulus) !== "Try" || ((d = i[1]) == null ? void 0 : d.instructor_stimulus) !== "Learn" || ((u = i[2]) == null ? void 0 : u.instructor_stimulus) !== "Apply") && Z(
244
+ }) : (((n = t[0]) == null ? void 0 : n.instructor_stimulus) !== "Try" || ((d = t[1]) == null ? void 0 : d.instructor_stimulus) !== "Learn" || ((u = t[2]) == null ? void 0 : u.instructor_stimulus) !== "Apply") && Z(
241
245
  `Diagnostics questions sequence is incorrect expected [Try, Learn, Apply]: ${e}`,
242
246
  {
243
247
  tags: {
@@ -251,11 +255,11 @@ const zt = (ge, be) => {
251
255
  );
252
256
  });
253
257
  }, [_, k, p]), b(() => {
254
- t.forEach((e) => {
255
- const { validation: i, item_reference: n, type: d, question_number: u, metadata: m } = e;
256
- if ((U ? d !== "clozetext" : !0) && (i != null && i.valid_response)) {
257
- const E = i.valid_response.value ?? [];
258
- (E == null ? void 0 : E.length) === 0 && ((i.alt_responses ?? []).some((ct) => ct.value.length > 0) || (Z(`Question has no valid response: ${m.widget_reference}`, {
258
+ i.forEach((e) => {
259
+ const { validation: t, item_reference: n, type: d, question_number: u, metadata: m } = e;
260
+ if ((U ? d !== "clozetext" : !0) && (t != null && t.valid_response)) {
261
+ const E = t.valid_response.value ?? [];
262
+ (E == null ? void 0 : E.length) === 0 && ((t.alt_responses ?? []).some((ct) => ct.value.length > 0) || (Z(`Question has no valid response: ${m.widget_reference}`, {
259
263
  tags: {
260
264
  "content-type": "learnosity",
261
265
  "activity-reference": _,
@@ -273,10 +277,10 @@ const zt = (ge, be) => {
273
277
  })));
274
278
  }
275
279
  });
276
- }, [_, w, t, U]), S ? /* @__PURE__ */ R(lt, { children: [
277
- /* @__PURE__ */ o(Ht, {}),
280
+ }, [_, w, i, U]), S ? /* @__PURE__ */ R(lt, { children: [
281
+ /* @__PURE__ */ o(xt, {}),
278
282
  $e && /* @__PURE__ */ R(
279
- xt,
283
+ Ht,
280
284
  {
281
285
  $flexDirection: "row",
282
286
  $justifyContent: "center",
@@ -288,7 +292,7 @@ const zt = (ge, be) => {
288
292
  $gutter: 8,
289
293
  $flexGap: 8,
290
294
  $background: tt,
291
- $topOffset: v.topOffset - me,
295
+ $topOffset: T.topOffset - me,
292
296
  children: [
293
297
  te ? /* @__PURE__ */ o(he, { children: /* @__PURE__ */ o(ft, { width: 16, height: 16 }) }) : /* @__PURE__ */ o(he, { children: /* @__PURE__ */ o(pt, { width: 16, height: 16 }) }),
294
298
  /* @__PURE__ */ o(bt, { $renderAs: "ub3", children: it })
@@ -296,11 +300,11 @@ const zt = (ge, be) => {
296
300
  }
297
301
  ),
298
302
  /* @__PURE__ */ R(qt, { $background: "WHITE", $width: Ue, children: [
299
- ze === "top" && /* @__PURE__ */ o(Pt, { $topOffset: x, $height: Ct, children: /* @__PURE__ */ o(Qt, { children: /* @__PURE__ */ o(
303
+ ze === "top" && /* @__PURE__ */ o(Pt, { $topOffset: H, $height: Ct, children: /* @__PURE__ */ o(Qt, { children: /* @__PURE__ */ o(
300
304
  Rt,
301
305
  {
302
306
  placement: "top",
303
- questions: t,
307
+ questions: i,
304
308
  responses: c,
305
309
  activeQuestionIndex: f,
306
310
  lastUnlockedQuestionIndex: h,
@@ -310,7 +314,7 @@ const zt = (ge, be) => {
310
314
  summaryVisible: g
311
315
  }
312
316
  ) }) }),
313
- ae && l && /* @__PURE__ */ o(Lt, { $minHeight: re, $topOffset: x, children: /* @__PURE__ */ o(ue, { $width: X, $justifyContent: "center", $alignItems: "center", children: /* @__PURE__ */ o(
317
+ ae && l && /* @__PURE__ */ o(Lt, { $minHeight: re, $topOffset: H, children: /* @__PURE__ */ o(ue, { $width: X, $justifyContent: "center", $alignItems: "center", children: /* @__PURE__ */ o(
314
318
  kt,
315
319
  {
316
320
  blocker: ae,
@@ -327,9 +331,9 @@ const zt = (ge, be) => {
327
331
  {
328
332
  activeQuestionIndex: f,
329
333
  onClick: P,
330
- questions: t,
334
+ questions: i,
331
335
  bottomOffset: C,
332
- topOffset: x,
336
+ topOffset: H,
333
337
  userType: r
334
338
  }
335
339
  ),
@@ -339,13 +343,13 @@ const zt = (ge, be) => {
339
343
  {
340
344
  $marginTop: r === "TEACHER" && g ? "0" : C,
341
345
  $height: C,
342
- $isCardView: M === "card",
346
+ $isCardView: V === "card",
343
347
  children: [
344
348
  /* @__PURE__ */ o(
345
349
  Et,
346
350
  {
347
351
  width: z - 32,
348
- question: t[f],
352
+ question: i[f],
349
353
  learnosity: S,
350
354
  userType: r
351
355
  }
@@ -354,8 +358,8 @@ const zt = (ge, be) => {
354
358
  jt,
355
359
  {
356
360
  $height: C,
357
- $width: M === "card" ? z - 32 : "100%",
358
- $isCardView: M === "card",
361
+ $width: V === "card" ? z - 32 : "100%",
362
+ $isCardView: V === "card",
359
363
  children: /* @__PURE__ */ o(
360
364
  ue,
361
365
  {
@@ -368,10 +372,10 @@ const zt = (ge, be) => {
368
372
  _t,
369
373
  {
370
374
  userType: r,
371
- layout: v,
375
+ layout: T,
372
376
  behavior: a,
373
377
  worksheetName: ee,
374
- questions: t,
378
+ questions: i,
375
379
  responses: c,
376
380
  onCalculatorOpen: st,
377
381
  activeQuestionIndex: f,
@@ -379,7 +383,7 @@ const zt = (ge, be) => {
379
383
  appendedQuestionIds: ne,
380
384
  learnosity: S,
381
385
  isCanvasEnabled: oe,
382
- canSubmitWorksheet: xe,
386
+ canSubmitWorksheet: He,
383
387
  isScribblingEnabled: se,
384
388
  isSummaryVisible: g,
385
389
  setResponses: N,
@@ -404,7 +408,7 @@ const zt = (ge, be) => {
404
408
  )
405
409
  }
406
410
  ),
407
- !g && H && r === "STUDENT" && /* @__PURE__ */ o(Kt, { children: /* @__PURE__ */ o(Vt, {}) })
411
+ !g && x && r === "STUDENT" && /* @__PURE__ */ o(Kt, { children: /* @__PURE__ */ o(Mt, {}) })
408
412
  ]
409
413
  }
410
414
  ),
@@ -412,9 +416,9 @@ const zt = (ge, be) => {
412
416
  Ut,
413
417
  {
414
418
  $actionbarHeight: C,
415
- $isCardView: M === "card",
419
+ $isCardView: V === "card",
416
420
  children: [
417
- et.map((e, i) => {
421
+ et.map((e, t) => {
418
422
  var m, $;
419
423
  const { response_id: n, is_optional: d } = e, u = (m = c[n]) == null ? void 0 : m.assignStatus;
420
424
  return a.teacherValidationEnabled && (u === "skipped" || d && u !== "assigned" && r === "STUDENT") ? null : /* @__PURE__ */ o(
@@ -425,16 +429,16 @@ const zt = (ge, be) => {
425
429
  worksheetCompleted: Ne,
426
430
  question: e,
427
431
  response: c[n],
428
- nextQuestionId: p === "ADAPTIVE" || p === "CURRENT" ? l == null ? void 0 : l.response_id : i < h ? ($ = t[i + 1]) == null ? void 0 : $.response_id : void 0,
432
+ nextQuestionId: p === "ADAPTIVE" || p === "CURRENT" ? l == null ? void 0 : l.response_id : t < h ? ($ = i[t + 1]) == null ? void 0 : $.response_id : void 0,
429
433
  maxQuestionWidth: X,
430
434
  learnosity: S,
431
435
  isActive: n === B,
432
- isHidden: !H && n !== B || g,
433
- canRender: f > -1 && (i === f || p !== "CURRENT" && i === f + 1),
434
- background: ve,
436
+ isHidden: !x && n !== B || g,
437
+ canRender: f > -1 && (t === f || p !== "CURRENT" && t === f + 1),
438
+ background: Te,
435
439
  appended: ne.includes(n),
436
440
  behavior: a,
437
- layout: v,
441
+ layout: T,
438
442
  actionbarHeight: C,
439
443
  intersectionObserver: J,
440
444
  onMarkForReview: ot,
@@ -446,7 +450,7 @@ const zt = (ge, be) => {
446
450
  initialStrokesData: Oe,
447
451
  isCanvasEnabled: oe,
448
452
  onPublishMouseMove: De,
449
- onSubscribeMouseMove: Ve,
453
+ onSubscribeMouseMove: Me,
450
454
  setActiveQuestionId: q,
451
455
  canResolveDoubt: qe,
452
456
  onResolveDoubt: Pe,
@@ -462,14 +466,14 @@ const zt = (ge, be) => {
462
466
  Xt,
463
467
  {
464
468
  worksheetName: ee,
465
- questions: t,
469
+ questions: i,
466
470
  responses: c,
467
471
  activeQuestionIndex: f,
468
472
  lastUnlockedQuestionIndex: h,
469
473
  onItemNumberClick: P,
470
474
  behavior: a,
471
475
  minHeight: Xe,
472
- summaryDescription: He,
476
+ summaryDescription: xe,
473
477
  summaryVisible: g
474
478
  }
475
479
  )
@@ -477,16 +481,16 @@ const zt = (ge, be) => {
477
481
  }
478
482
  ),
479
483
  !g && Je && /* @__PURE__ */ o(
480
- Mt,
484
+ Vt,
481
485
  {
482
486
  questionWidth: X,
483
- questions: t,
487
+ questions: i,
484
488
  activeQuestionIndex: f,
485
489
  learnosity: S,
486
490
  userType: r,
487
491
  height: re,
488
492
  actionbarHeight: C,
489
- openQuestionFeedbackModal: Me,
493
+ openQuestionFeedbackModal: Ve,
490
494
  loggerRef: w
491
495
  }
492
496
  )
@@ -1 +1 @@
1
- {"version":3,"file":"worksheet.js","sources":["../../../../src/features/worksheet/worksheet/worksheet.tsx"],"sourcesContent":["import type { TWorksheetBlocker } from './worksheet-blocker/worksheet-blocker-types';\nimport type { IWorksheetProps, IWorksheetRef, IWorksheetResponse } from './worksheet-types';\nimport type { ForwardRefRenderFunction } from 'react';\n\nimport { captureMessage } from '@sentry/browser';\nimport {\n forwardRef,\n memo,\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useState,\n} from 'react';\n\nimport Check2Icon from '../../../assets/line-icons/icons/check2';\nimport Info2Icon from '../../../assets/line-icons/icons/info2';\nimport getDeviceDetails from '../../../helpers/get-device-details';\nimport DesmosCalculator from '../../sheet-tools/desmos-calculator/desmos-calculator';\nimport FlexView from '../../ui/layout/flex-view';\nimport Text from '../../ui/text/text';\nimport EVENTS from '../constants/events';\nimport UserPointer from '../user-pointer-pin/user-pin';\nimport {\n DESMOS_CALC_POSITION,\n TOP_NAVIGATION_HEIGHT,\n WORKSHEET_NUDGE_BANNER_HEIGHT,\n} from './constants';\nimport useCreateImperativeHandle from './hooks/use-create-imperative-handle';\nimport useGetActiveQuestionId from './hooks/use-get-active-question-id';\nimport useTimeSpentOnQuestions from './hooks/use-time-on-questions';\nimport QuestionTips from './question-tips';\nimport WorksheetActionBar from './worksheet-action-bar/worksheet-action-bar';\nimport WorksheetBlocker from './worksheet-blocker/worksheet-blocker';\nimport {\n getInitialQuestionId,\n getInitialResponses,\n getLastUnlockedQuestionIndex,\n getQuestionMetadata,\n getQuestionsFromItems,\n getRenderableQuestions,\n getWorksheetDimensions,\n getWorksheetNudgeBannerInfo,\n scrollToQuestion,\n} from './worksheet-helpers';\nimport WorksheetNavigation from './worksheet-navigation/worksheet-navigation';\nimport WorksheetQuestion from './worksheet-question/worksheet-question';\nimport Navigator from './worksheet-sidebar/navigator';\nimport WorksheetSideBar from './worksheet-sidebar/sidebar';\nimport * as Styled from './worksheet-styled';\nimport WorksheetSummary from './worksheet-summary/worksheet-summary';\n\n/**\n *\n * @param learnosityItems cannot not be changed between the renders\n */\nconst WorksheetComp: ForwardRefRenderFunction<IWorksheetRef, IWorksheetProps> = (props, ref) => {\n const {\n userType,\n studentName = 'Student',\n questionsSignedRequest,\n worksheetName,\n initialResponseId,\n initialItemIndex,\n learnosityActivityRef,\n learnosityItems,\n learnosityResponses,\n layout,\n background,\n behavior,\n updatedResponses,\n showNudgeBanner,\n markedAsCompleted,\n onResponseChange,\n onBulkResponsesChange,\n onResponsesChange,\n onMediaStateChange,\n onTeacherValidation,\n onOptionalItemAssignment,\n onOptionalItemSkip,\n onExitTicketStart,\n onExitTicketSubmit,\n onSubmit,\n learnosity,\n appendedQuestionIds,\n worksheetCompleted,\n userId,\n onPublishStrokes,\n onReceiveStrokes,\n initialStrokesData,\n isCanvasEnabled,\n onHelp,\n onPublishMouseMove,\n onSubscribeMouseMove,\n onActiveQuestionChange,\n openQuestionFeedbackModal,\n summaryDescription,\n canSubmitWorksheet,\n loggerRef,\n canResolveDoubt,\n onResolveDoubt,\n onSkip,\n canToggleScribbling = true,\n studentId,\n subjectiveProps,\n canShowActionBar = true,\n } = props;\n const { initialQuestion, navigationMode, teacherValidationEnabled } = behavior;\n const {\n containerStyle,\n containerWidth,\n minQuestionHeight,\n minSummaryHeight,\n questionsScrollable,\n navigationBar,\n topOffset,\n renderSideBar,\n showUserPointer = true,\n } = layout;\n\n const { actionbarHeight, maxQuestionWidth, questionsContainerWidth } = useMemo(\n () => getWorksheetDimensions(learnosityItems, layout),\n [layout, learnosityItems],\n );\n\n const [questions] = useState(() =>\n getQuestionsFromItems(learnosityItems, {\n sectioned:\n teacherValidationEnabled && navigationMode !== 'ADAPTIVE' && navigationMode !== 'CURRENT',\n adaptive: navigationMode === 'ADAPTIVE',\n }),\n );\n\n const [responses, setResponses] = useState<Record<string, IWorksheetResponse>>(\n () => learnosityResponses ?? getInitialResponses(questions),\n );\n const [isScribblingEnabled, setIsScribblingEnabled] = useState(false);\n const lastUnlockedQuestionIndex = useMemo(\n () =>\n navigationMode !== 'OPEN'\n ? getLastUnlockedQuestionIndex({\n questions,\n responses,\n behavior,\n userType,\n })\n : questions.length - 1,\n [behavior, navigationMode, questions, responses, userType],\n );\n\n const questionsToRender = useMemo(\n () => getRenderableQuestions({ questions, lastUnlockedQuestionIndex, userType }),\n [questions, lastUnlockedQuestionIndex, userType],\n );\n\n const lastUnlockedQuestion = questions[lastUnlockedQuestionIndex];\n const lastUnlockedQuestionResponse = responses[lastUnlockedQuestion?.response_id ?? ''];\n\n const { bannerBackgroundColor: nudgeBannerBackgroundColor, label: nudgeBannerLabel } =\n getWorksheetNudgeBannerInfo(userType, Boolean(markedAsCompleted));\n\n const [initialQuestionId] = useState(() =>\n getInitialQuestionId({\n questions,\n initialQuestion,\n lastUnlockedQuestionIndex: getLastUnlockedQuestionIndex({\n questions,\n responses,\n behavior,\n userType,\n }),\n initialResponseId,\n initialItemIndex,\n }),\n );\n\n const { activeQuestionId, setActiveQuestionId, intersectionObserver } =\n useGetActiveQuestionId(initialQuestionId);\n const activeQuestionIndex = useMemo(\n () => questions.findIndex(question => question.response_id === activeQuestionId),\n [activeQuestionId, questions],\n );\n const [summaryVisible, setSummaryVisible] = useState(false);\n const [blocker, setBlocker] = useState<TWorksheetBlocker>();\n\n const [showCalculator, setShowCalculator] = useState(false);\n const getTimeSpentOnQuestion = useTimeSpentOnQuestions(behavior, responses, activeQuestionId);\n\n const handleMediaStateChange = useCallback<NonNullable<typeof onMediaStateChange>>(\n (question, mediaType, mediaState) => {\n const key = mediaType === 'SIMULATION' ? 'simState' : undefined;\n\n if (!key) return;\n\n if (onResponseChange) {\n setResponses(prevResponses => {\n const questionId = question.response_id;\n const questionMeta = getQuestionMetadata(questions, questionId);\n\n if (!questionMeta) return prevResponses;\n\n const updatedResponse = {\n ...questionMeta,\n ...prevResponses[questionId],\n [key]: mediaState,\n };\n\n onResponseChange?.({\n responseId: questionId,\n response: updatedResponse,\n isNewAttempt: false,\n question,\n });\n\n return {\n ...prevResponses,\n [questionId]: updatedResponse,\n };\n });\n } else if (onMediaStateChange) {\n onMediaStateChange(question, mediaType, mediaState);\n }\n },\n [onMediaStateChange, onResponseChange, questions],\n );\n\n const handleMarkForReview = useCallback(\n (questionId: string, markedForReview: boolean) => {\n setResponses(prevResponses => {\n const questionMeta = getQuestionMetadata(questions, questionId);\n\n if (!questionMeta) return prevResponses;\n\n return {\n ...prevResponses,\n [questionId]: {\n ...questionMeta,\n ...prevResponses[questionId],\n markedForReview,\n },\n };\n });\n },\n [questions],\n );\n\n const handleBlockerClose = useCallback(() => {\n setBlocker(prevBlocker => {\n if (prevBlocker) {\n const lastUnlockedQuestionId = questions[lastUnlockedQuestionIndex]?.response_id;\n\n if (lastUnlockedQuestionId) {\n setTimeout(() => {\n scrollToQuestion(lastUnlockedQuestionId);\n }, 50);\n }\n }\n\n return undefined;\n });\n }, [lastUnlockedQuestionIndex, questions]);\n\n const handleItemNumberClick = useCallback(\n (questionId: string) => {\n setSummaryVisible(false);\n\n if (questionsScrollable) {\n requestAnimationFrame(() => scrollToQuestion(questionId));\n } else {\n setActiveQuestionId(questionId);\n }\n },\n [questionsScrollable, setActiveQuestionId],\n );\n\n const onCalculatorClose = useCallback(() => {\n setShowCalculator(false);\n }, []);\n\n const onCalculatorOpen = useCallback(() => {\n setShowCalculator(true);\n }, []);\n\n const handleOnGoToReview = useCallback(() => {\n setSummaryVisible(true);\n }, []);\n\n useEffect(() => {\n const activeQuestion = questions[activeQuestionIndex];\n\n if (activeQuestion && onActiveQuestionChange) {\n onActiveQuestionChange(activeQuestion);\n }\n }, [onActiveQuestionChange, questions, activeQuestionIndex]);\n\n useCreateImperativeHandle(ref, {\n behavior,\n questions,\n setResponses,\n onResponseChange,\n onBulkResponsesChange,\n getTimeSpentOnQuestion,\n });\n\n useEffect(() => {\n return () => {\n intersectionObserver.disconnect();\n };\n }, [intersectionObserver]);\n\n useEffect(() => {\n if (onResponsesChange && responses) {\n onResponsesChange(responses);\n }\n }, [onResponsesChange, responses]);\n\n useEffect(() => {\n if (updatedResponses) {\n setResponses(updatedResponses);\n }\n }, [updatedResponses]);\n\n useLayoutEffect(() => {\n let timer: NodeJS.Timeout;\n\n if (learnosity && initialQuestionId) {\n if (getDeviceDetails().browser_name === 'Safari') {\n timer = setTimeout(() => {\n scrollToQuestion(initialQuestionId);\n }, 400);\n } else {\n scrollToQuestion(initialQuestionId);\n }\n }\n\n return () => {\n clearTimeout(timer);\n };\n }, [learnosity, initialQuestionId, topOffset]);\n\n useEffect(() => {\n if (behavior.teacherValidationEnabled && lastUnlockedQuestion) {\n const { item_type, instructor_stimulus, is_optional } = lastUnlockedQuestion;\n\n if (userType === 'TEACHER') {\n if (item_type === 'exit-ticket' && instructor_stimulus !== 'SystemIntro') {\n if (\n lastUnlockedQuestionResponse?.submittedByStudent &&\n !lastUnlockedQuestionResponse?.validatedByTeacher\n ) {\n setBlocker('exit-ticket-review-available');\n } else if (!lastUnlockedQuestionResponse?.validatedByTeacher) {\n setBlocker('exit-ticket-teacher-intervention');\n } else {\n handleBlockerClose();\n }\n } else if (is_optional) {\n if (!lastUnlockedQuestionResponse?.assignStatus) {\n setBlocker('optional-items-assignment');\n } else {\n handleBlockerClose();\n }\n } else if (!is_optional) {\n handleBlockerClose();\n }\n }\n }\n }, [\n behavior.teacherValidationEnabled,\n handleBlockerClose,\n lastUnlockedQuestion,\n lastUnlockedQuestionResponse,\n userType,\n ]);\n\n useEffect(() => {\n if (behavior.teacherValidationEnabled && lastUnlockedQuestion) {\n const { item_type, instructor_stimulus } = lastUnlockedQuestion;\n\n if (userType === 'STUDENT') {\n if (item_type === 'exit-ticket' && instructor_stimulus !== 'SystemIntro') {\n if (lastUnlockedQuestionResponse?.submittedByStudent) {\n onExitTicketSubmit?.();\n } else {\n onExitTicketStart?.();\n }\n }\n }\n }\n }, [\n behavior.teacherValidationEnabled,\n lastUnlockedQuestion,\n lastUnlockedQuestionResponse?.submittedByStudent,\n onExitTicketStart,\n onExitTicketSubmit,\n userType,\n ]);\n\n useEffect(() => {\n if (navigationMode === 'CURRENT') {\n learnosityItems.forEach(({ reference, questions: itemQuestions }) => {\n if (itemQuestions.length < 3) {\n captureMessage(`Diagnostics item has Less than 3 questions: ${reference}`, {\n tags: {\n 'content-type': 'learnosity',\n 'activity-reference': learnosityActivityRef,\n 'item-reference': reference,\n },\n fingerprint: [`diagnostics-item-questions-count-${reference}`], // Add unique fingerprint\n });\n } else if (\n itemQuestions[0]?.instructor_stimulus !== 'Try' ||\n itemQuestions[1]?.instructor_stimulus !== 'Learn' ||\n itemQuestions[2]?.instructor_stimulus !== 'Apply'\n ) {\n captureMessage(\n `Diagnostics questions sequence is incorrect expected [Try, Learn, Apply]: ${reference}`,\n {\n tags: {\n 'content-type': 'learnosity',\n 'activity-reference': learnosityActivityRef,\n 'item-reference': reference,\n },\n fingerprint: [`diagnostics-item-questions-sequence-${reference}`], // Add unique fingerprint\n },\n );\n }\n });\n }\n }, [learnosityActivityRef, learnosityItems, navigationMode]);\n\n useEffect(() => {\n questions.forEach(question => {\n const { validation, item_reference, type, question_number, metadata } = question;\n const responseNeeded = teacherValidationEnabled ? type !== 'clozetext' : true;\n\n if (responseNeeded && validation?.valid_response) {\n const value = validation.valid_response.value ?? [];\n\n if (value?.length === 0) {\n const altResponses = validation.alt_responses ?? [];\n const hasAltResponse = altResponses.some(altResponse => altResponse.value.length > 0);\n\n if (!hasAltResponse) {\n captureMessage(`Question has no valid response: ${metadata.widget_reference}`, {\n tags: {\n 'content-type': 'learnosity',\n 'activity-reference': learnosityActivityRef,\n 'item-reference': item_reference,\n 'question-number': question_number,\n 'widget-reference': metadata.widget_reference,\n },\n fingerprint: [`no-valid-response-${metadata.widget_reference}`], // Add unique fingerprint\n });\n loggerRef.current(EVENTS.WORKSHEET_V3_QUESTION_MISSING_VALIDATION, {\n item_reference: item_reference,\n widget_reference: metadata.widget_reference,\n question_type: type,\n question_number: question_number,\n });\n }\n }\n }\n });\n }, [learnosityActivityRef, loggerRef, questions, teacherValidationEnabled]);\n\n if (!learnosity) {\n return null;\n }\n\n return (\n <>\n <Styled.LearnosityStyleOverrides />\n {showNudgeBanner && (\n <Styled.NudgeBannerWrapper\n $flexDirection=\"row\"\n $justifyContent=\"center\"\n $alignItems=\"center\"\n $width=\"100%\"\n $heightX={1.75}\n $height={WORKSHEET_NUDGE_BANNER_HEIGHT}\n $gap={8}\n $gutter={8}\n $flexGap={8}\n $background={nudgeBannerBackgroundColor}\n $topOffset={layout.topOffset - WORKSHEET_NUDGE_BANNER_HEIGHT}\n >\n {markedAsCompleted ? (\n <Styled.NudgeBannerIcon>\n <Check2Icon width={16} height={16} />\n </Styled.NudgeBannerIcon>\n ) : (\n <Styled.NudgeBannerIcon>\n <Info2Icon width={16} height={16} />\n </Styled.NudgeBannerIcon>\n )}\n\n <Text $renderAs=\"ub3\">{nudgeBannerLabel}</Text>\n </Styled.NudgeBannerWrapper>\n )}\n\n <Styled.WorksheetContainer $background=\"WHITE\" $width={containerWidth}>\n {navigationBar === 'top' && (\n <Styled.NavigationContainer $topOffset={topOffset} $height={TOP_NAVIGATION_HEIGHT}>\n <Styled.NavigationWrapper>\n <WorksheetNavigation\n placement=\"top\"\n questions={questions}\n responses={responses}\n activeQuestionIndex={activeQuestionIndex}\n lastUnlockedQuestionIndex={lastUnlockedQuestionIndex}\n behavior={behavior}\n onItemNumberClick={handleItemNumberClick}\n userType={userType}\n summaryVisible={summaryVisible}\n />\n </Styled.NavigationWrapper>\n </Styled.NavigationContainer>\n )}\n {blocker && lastUnlockedQuestion && (\n <Styled.BlockerWrapper $minHeight={minQuestionHeight} $topOffset={topOffset}>\n <FlexView $width={maxQuestionWidth} $justifyContent=\"center\" $alignItems=\"center\">\n <WorksheetBlocker\n blocker={blocker}\n lastUnlockedQuestion={lastUnlockedQuestion}\n studentName={studentName}\n onBlockerClose={handleBlockerClose}\n onOptionalItemAssignment={onOptionalItemAssignment}\n onOptionalItemSkip={onOptionalItemSkip}\n onTeacherValidation={onTeacherValidation}\n />\n </FlexView>\n </Styled.BlockerWrapper>\n )}\n {showUserPointer && (\n <UserPointer\n activeQuestionIndex={activeQuestionIndex}\n onClick={handleItemNumberClick}\n questions={questions}\n bottomOffset={actionbarHeight}\n topOffset={topOffset}\n userType={userType}\n />\n )}\n {showCalculator && (\n <Styled.DesmosCalcWrapper>\n <DesmosCalculator initialPosition={DESMOS_CALC_POSITION} onClose={onCalculatorClose} />\n </Styled.DesmosCalcWrapper>\n )}\n <Styled.ActionbarContainer\n $marginTop={userType === 'TEACHER' && summaryVisible ? '0' : actionbarHeight}\n $height={actionbarHeight}\n $isCardView={containerStyle === 'card'}\n >\n <QuestionTips\n width={questionsContainerWidth - 32}\n question={questions[activeQuestionIndex]}\n learnosity={learnosity}\n userType={userType}\n />\n {canShowActionBar && (\n <Styled.ActionbarWrapper\n $height={actionbarHeight}\n $width={containerStyle === 'card' ? questionsContainerWidth - 32 : '100%'}\n $isCardView={containerStyle === 'card'}\n >\n <FlexView\n $gutterX={1}\n $flexDirection=\"row\"\n $justifyContent=\"space-between\"\n $alignItems=\"center\"\n $width={questionsContainerWidth - 32}\n >\n <WorksheetActionBar\n userType={userType}\n layout={layout}\n behavior={behavior}\n worksheetName={worksheetName}\n questions={questions}\n responses={responses}\n onCalculatorOpen={onCalculatorOpen}\n activeQuestionIndex={activeQuestionIndex}\n lastUnlockedQuestionIndex={lastUnlockedQuestionIndex}\n appendedQuestionIds={appendedQuestionIds}\n learnosity={learnosity}\n isCanvasEnabled={isCanvasEnabled}\n canSubmitWorksheet={canSubmitWorksheet}\n isScribblingEnabled={isScribblingEnabled}\n isSummaryVisible={summaryVisible}\n setResponses={setResponses}\n getTimeSpentOnQuestion={getTimeSpentOnQuestion}\n setSummaryVisible={setSummaryVisible}\n setBlocker={setBlocker}\n setIsScribblingEnabled={setIsScribblingEnabled}\n setActiveQuestionId={setActiveQuestionId}\n onItemNumberClick={handleItemNumberClick}\n onGoToReview={handleOnGoToReview}\n onResponseChange={onResponseChange}\n onHelp={onHelp}\n onTeacherValidation={onTeacherValidation}\n onSubmit={onSubmit}\n showCalculator={showCalculator}\n loggerRef={loggerRef}\n onSkip={onSkip}\n canToggleScribbling={canToggleScribbling}\n />\n </FlexView>\n </Styled.ActionbarWrapper>\n )}\n {!summaryVisible && questionsScrollable && userType === 'STUDENT' && (\n <Styled.StudentWorksheetSideBar>\n <Navigator />\n </Styled.StudentWorksheetSideBar>\n )}\n </Styled.ActionbarContainer>\n <Styled.QuestionsWrapper\n $actionbarHeight={actionbarHeight}\n $isCardView={containerStyle === 'card'}\n >\n {questionsToRender.map((question, questionIndex) => {\n const { response_id: responseId, is_optional } = question;\n const assignStatus = responses[responseId]?.assignStatus;\n\n if (behavior.teacherValidationEnabled) {\n if (assignStatus === 'skipped') return null;\n\n if (is_optional && assignStatus !== 'assigned' && userType === 'STUDENT') {\n return null;\n }\n }\n\n return (\n <WorksheetQuestion\n key={responseId}\n signedRequest={questionsSignedRequest}\n userType={userType}\n worksheetCompleted={worksheetCompleted}\n question={question}\n response={responses[responseId]}\n nextQuestionId={\n navigationMode === 'ADAPTIVE' || navigationMode === 'CURRENT'\n ? lastUnlockedQuestion?.response_id\n : questionIndex < lastUnlockedQuestionIndex\n ? questions[questionIndex + 1]?.response_id\n : undefined\n }\n maxQuestionWidth={maxQuestionWidth}\n learnosity={learnosity}\n isActive={responseId === activeQuestionId}\n isHidden={\n (!questionsScrollable && responseId !== activeQuestionId) || summaryVisible\n }\n canRender={\n activeQuestionIndex > -1 &&\n (questionIndex === activeQuestionIndex ||\n (navigationMode !== 'CURRENT' && questionIndex === activeQuestionIndex + 1))\n }\n background={background}\n appended={appendedQuestionIds.includes(responseId)}\n behavior={behavior}\n layout={layout}\n actionbarHeight={actionbarHeight}\n intersectionObserver={intersectionObserver}\n onMarkForReview={handleMarkForReview}\n onMediaStateChange={handleMediaStateChange}\n userId={userId}\n isScribblingEnabled={isScribblingEnabled}\n onPublishStrokes={onPublishStrokes}\n onReceiveStrokes={onReceiveStrokes}\n initialStrokesData={initialStrokesData}\n isCanvasEnabled={isCanvasEnabled}\n onPublishMouseMove={onPublishMouseMove}\n onSubscribeMouseMove={onSubscribeMouseMove}\n setActiveQuestionId={setActiveQuestionId}\n canResolveDoubt={canResolveDoubt}\n onResolveDoubt={onResolveDoubt}\n studentId={studentId}\n subjectiveProps={subjectiveProps}\n responses={responses}\n loggerRef={loggerRef}\n />\n );\n })}\n {summaryVisible && (\n <WorksheetSummary\n worksheetName={worksheetName}\n questions={questions}\n responses={responses}\n activeQuestionIndex={activeQuestionIndex}\n lastUnlockedQuestionIndex={lastUnlockedQuestionIndex}\n onItemNumberClick={handleItemNumberClick}\n behavior={behavior}\n minHeight={minSummaryHeight}\n summaryDescription={summaryDescription}\n summaryVisible={summaryVisible}\n />\n )}\n </Styled.QuestionsWrapper>\n {!summaryVisible && renderSideBar && (\n <WorksheetSideBar\n questionWidth={maxQuestionWidth}\n questions={questions}\n activeQuestionIndex={activeQuestionIndex}\n learnosity={learnosity}\n userType={userType}\n height={minQuestionHeight}\n actionbarHeight={actionbarHeight}\n openQuestionFeedbackModal={openQuestionFeedbackModal}\n loggerRef={loggerRef}\n />\n )}\n </Styled.WorksheetContainer>\n </>\n );\n};\n\nconst Worksheet = memo(forwardRef(WorksheetComp));\n\nexport default Worksheet;\n"],"names":["WorksheetComp","props","ref","userType","studentName","questionsSignedRequest","worksheetName","initialResponseId","initialItemIndex","learnosityActivityRef","learnosityItems","learnosityResponses","layout","background","behavior","updatedResponses","showNudgeBanner","markedAsCompleted","onResponseChange","onBulkResponsesChange","onResponsesChange","onMediaStateChange","onTeacherValidation","onOptionalItemAssignment","onOptionalItemSkip","onExitTicketStart","onExitTicketSubmit","onSubmit","learnosity","appendedQuestionIds","worksheetCompleted","userId","onPublishStrokes","onReceiveStrokes","initialStrokesData","isCanvasEnabled","onHelp","onPublishMouseMove","onSubscribeMouseMove","onActiveQuestionChange","openQuestionFeedbackModal","summaryDescription","canSubmitWorksheet","loggerRef","canResolveDoubt","onResolveDoubt","onSkip","canToggleScribbling","studentId","subjectiveProps","canShowActionBar","initialQuestion","navigationMode","teacherValidationEnabled","containerStyle","containerWidth","minQuestionHeight","minSummaryHeight","questionsScrollable","navigationBar","topOffset","renderSideBar","showUserPointer","actionbarHeight","maxQuestionWidth","questionsContainerWidth","useMemo","getWorksheetDimensions","questions","useState","getQuestionsFromItems","responses","setResponses","getInitialResponses","isScribblingEnabled","setIsScribblingEnabled","lastUnlockedQuestionIndex","getLastUnlockedQuestionIndex","questionsToRender","getRenderableQuestions","lastUnlockedQuestion","lastUnlockedQuestionResponse","nudgeBannerBackgroundColor","nudgeBannerLabel","getWorksheetNudgeBannerInfo","initialQuestionId","getInitialQuestionId","activeQuestionId","setActiveQuestionId","intersectionObserver","useGetActiveQuestionId","activeQuestionIndex","question","summaryVisible","setSummaryVisible","blocker","setBlocker","showCalculator","setShowCalculator","getTimeSpentOnQuestion","useTimeSpentOnQuestions","handleMediaStateChange","useCallback","mediaType","mediaState","key","prevResponses","questionId","questionMeta","getQuestionMetadata","updatedResponse","handleMarkForReview","markedForReview","handleBlockerClose","prevBlocker","lastUnlockedQuestionId","_a","scrollToQuestion","handleItemNumberClick","onCalculatorClose","onCalculatorOpen","handleOnGoToReview","useEffect","activeQuestion","useCreateImperativeHandle","useLayoutEffect","timer","getDeviceDetails","item_type","instructor_stimulus","is_optional","reference","itemQuestions","captureMessage","_b","_c","validation","item_reference","type","question_number","metadata","value","altResponse","EVENTS","jsxs","Fragment","jsx","Styled.LearnosityStyleOverrides","Styled.NudgeBannerWrapper","WORKSHEET_NUDGE_BANNER_HEIGHT","Styled.NudgeBannerIcon","Check2Icon","Info2Icon","Text","Styled.WorksheetContainer","Styled.NavigationContainer","TOP_NAVIGATION_HEIGHT","Styled.NavigationWrapper","WorksheetNavigation","Styled.BlockerWrapper","FlexView","WorksheetBlocker","UserPointer","Styled.DesmosCalcWrapper","DesmosCalculator","DESMOS_CALC_POSITION","Styled.ActionbarContainer","QuestionTips","Styled.ActionbarWrapper","WorksheetActionBar","Styled.StudentWorksheetSideBar","Navigator","Styled.QuestionsWrapper","questionIndex","responseId","assignStatus","WorksheetQuestion","WorksheetSummary","WorksheetSideBar","Worksheet","memo","forwardRef"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAwDA,MAAMA,KAA0E,CAACC,IAAOC,OAAQ;AACxF,QAAA;AAAA,IACJ,UAAAC;AAAA,IACA,aAAAC,KAAc;AAAA,IACd,wBAAAC;AAAA,IACA,eAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,uBAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,qBAAAC;AAAA,IACA,QAAAC;AAAA,IACA,YAAAC;AAAA,IACA,UAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,uBAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,qBAAAC;AAAA,IACA,0BAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,UAAAC;AAAA,IACA,YAAAC;AAAA,IACA,qBAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,QAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,QAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,sBAAAC;AAAA,IACA,wBAAAC;AAAA,IACA,2BAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,WAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,QAAAC;AAAA,IACA,qBAAAC,KAAsB;AAAA,IACtB,WAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,kBAAAC,KAAmB;AAAA,EACjB,IAAAjD,IACE,EAAE,iBAAAkD,IAAiB,gBAAAC,GAAgB,0BAAAC,EAAA,IAA6BvC,GAChE;AAAA,IACJ,gBAAAwC;AAAA,IACA,gBAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,qBAAAC;AAAA,IACA,eAAAC;AAAA,IACA,WAAAC;AAAA,IACA,eAAAC;AAAA,IACA,iBAAAC,KAAkB;AAAA,EAChB,IAAAlD,GAEE,EAAE,iBAAAmD,GAAiB,kBAAAC,GAAkB,yBAAAC,EAA4B,IAAAC;AAAA,IACrE,MAAMC,GAAuBzD,GAAiBE,CAAM;AAAA,IACpD,CAACA,GAAQF,CAAe;AAAA,EAAA,GAGpB,CAAC0D,CAAS,IAAIC;AAAA,IAAS,MAC3BC,GAAsB5D,GAAiB;AAAA,MACrC,WACE2C,KAA4BD,MAAmB,cAAcA,MAAmB;AAAA,MAClF,UAAUA,MAAmB;AAAA,IAAA,CAC9B;AAAA,EAAA,GAGG,CAACmB,GAAWC,CAAY,IAAIH;AAAA,IAChC,MAAM1D,MAAuB8D,GAAoBL,CAAS;AAAA,EAAA,GAEtD,CAACM,IAAqBC,EAAsB,IAAIN,EAAS,EAAK,GAC9DO,IAA4BV;AAAA,IAChC,MACEd,MAAmB,SACfyB,GAA6B;AAAA,MAC3B,WAAAT;AAAA,MACA,WAAAG;AAAA,MACA,UAAAzD;AAAA,MACA,UAAAX;AAAA,IAAA,CACD,IACDiE,EAAU,SAAS;AAAA,IACzB,CAACtD,GAAUsC,GAAgBgB,GAAWG,GAAWpE,CAAQ;AAAA,EAAA,GAGrD2E,KAAoBZ;AAAA,IACxB,MAAMa,GAAuB,EAAE,WAAAX,GAAW,2BAAAQ,GAA2B,UAAAzE,GAAU;AAAA,IAC/E,CAACiE,GAAWQ,GAA2BzE,CAAQ;AAAA,EAAA,GAG3C6E,IAAuBZ,EAAUQ,CAAyB,GAC1DK,IAA+BV,GAAUS,KAAA,gBAAAA,EAAsB,gBAAe,EAAE,GAEhF,EAAE,uBAAuBE,IAA4B,OAAOC,GAAA,IAChEC,GAA4BjF,GAAU,EAAQc,EAAkB,GAE5D,CAACoE,CAAiB,IAAIhB;AAAA,IAAS,MACnCiB,GAAqB;AAAA,MACnB,WAAAlB;AAAA,MACA,iBAAAjB;AAAA,MACA,2BAA2B0B,GAA6B;AAAA,QACtD,WAAAT;AAAA,QACA,WAAAG;AAAA,QACA,UAAAzD;AAAA,QACA,UAAAX;AAAA,MAAA,CACD;AAAA,MACD,mBAAAI;AAAA,MACA,kBAAAC;AAAA,IAAA,CACD;AAAA,EAAA,GAGG,EAAE,kBAAA+E,GAAkB,qBAAAC,GAAqB,sBAAAC,EAAqB,IAClEC,GAAuBL,CAAiB,GACpCM,IAAsBzB;AAAA,IAC1B,MAAME,EAAU,UAAU,CAAYwB,MAAAA,EAAS,gBAAgBL,CAAgB;AAAA,IAC/E,CAACA,GAAkBnB,CAAS;AAAA,EAAA,GAExB,CAACyB,GAAgBC,CAAiB,IAAIzB,EAAS,EAAK,GACpD,CAAC0B,IAASC,CAAU,IAAI3B,EAA4B,GAEpD,CAAC4B,IAAgBC,EAAiB,IAAI7B,EAAS,EAAK,GACpD8B,KAAyBC,GAAwBtF,GAAUyD,GAAWgB,CAAgB,GAEtFc,KAAyBC;AAAA,IAC7B,CAACV,GAAUW,GAAWC,MAAe;AAC7B,YAAAC,IAAMF,MAAc,eAAe,aAAa;AAEtD,MAAKE,MAEDvF,IACFsD,EAAa,CAAiBkC,MAAA;AAC5B,cAAMC,IAAaf,EAAS,aACtBgB,IAAeC,GAAoBzC,GAAWuC,CAAU;AAE1D,YAAA,CAACC,EAAqB,QAAAF;AAE1B,cAAMI,IAAkB;AAAA,UACtB,GAAGF;AAAA,UACH,GAAGF,EAAcC,CAAU;AAAA,UAC3B,CAACF,CAAG,GAAGD;AAAA,QAAA;AAGU,eAAAtF,KAAA,QAAAA,EAAA;AAAA,UACjB,YAAYyF;AAAA,UACZ,UAAUG;AAAA,UACV,cAAc;AAAA,UACd,UAAAlB;AAAA,QAAA,IAGK;AAAA,UACL,GAAGc;AAAA,UACH,CAACC,CAAU,GAAGG;AAAA,QAAA;AAAA,MAChB,CACD,IACQzF,KACUA,EAAAuE,GAAUW,GAAWC,CAAU;AAAA,IAEtD;AAAA,IACA,CAACnF,GAAoBH,GAAkBkD,CAAS;AAAA,EAAA,GAG5C2C,KAAsBT;AAAA,IAC1B,CAACK,GAAoBK,MAA6B;AAChD,MAAAxC,EAAa,CAAiBkC,MAAA;AACtB,cAAAE,IAAeC,GAAoBzC,GAAWuC,CAAU;AAE1D,eAACC,IAEE;AAAA,UACL,GAAGF;AAAA,UACH,CAACC,CAAU,GAAG;AAAA,YACZ,GAAGC;AAAA,YACH,GAAGF,EAAcC,CAAU;AAAA,YAC3B,iBAAAK;AAAA,UACF;AAAA,QAAA,IARwBN;AAAA,MAS1B,CACD;AAAA,IACH;AAAA,IACA,CAACtC,CAAS;AAAA,EAAA,GAGN6C,IAAqBX,EAAY,MAAM;AAC3C,IAAAN,EAAW,CAAekB,MAAA;;AACxB,UAAIA,GAAa;AACT,cAAAC,KAAyBC,IAAAhD,EAAUQ,CAAyB,MAAnC,gBAAAwC,EAAsC;AAErE,QAAID,KACF,WAAW,MAAM;AACf,UAAAE,EAAiBF,CAAsB;AAAA,WACtC,EAAE;AAAA,MAET;AAAA,IAEO,CACR;AAAA,EAAA,GACA,CAACvC,GAA2BR,CAAS,CAAC,GAEnCkD,IAAwBhB;AAAA,IAC5B,CAACK,MAAuB;AACtB,MAAAb,EAAkB,EAAK,GAEnBpC,IACoB,sBAAA,MAAM2D,EAAiBV,CAAU,CAAC,IAExDnB,EAAoBmB,CAAU;AAAA,IAElC;AAAA,IACA,CAACjD,GAAqB8B,CAAmB;AAAA,EAAA,GAGrC+B,KAAoBjB,EAAY,MAAM;AAC1C,IAAAJ,GAAkB,EAAK;AAAA,EACzB,GAAG,CAAE,CAAA,GAECsB,KAAmBlB,EAAY,MAAM;AACzC,IAAAJ,GAAkB,EAAI;AAAA,EACxB,GAAG,CAAE,CAAA,GAECuB,KAAqBnB,EAAY,MAAM;AAC3C,IAAAR,EAAkB,EAAI;AAAA,EACxB,GAAG,CAAE,CAAA;AAqLL,SAnLA4B,EAAU,MAAM;AACR,UAAAC,IAAiBvD,EAAUuB,CAAmB;AAEpD,IAAIgC,KAAkBpF,KACpBA,EAAuBoF,CAAc;AAAA,EAEtC,GAAA,CAACpF,GAAwB6B,GAAWuB,CAAmB,CAAC,GAE3DiC,GAA0B1H,IAAK;AAAA,IAC7B,UAAAY;AAAA,IACA,WAAAsD;AAAA,IACA,cAAAI;AAAA,IACA,kBAAAtD;AAAA,IACA,uBAAAC;AAAA,IACA,wBAAAgF;AAAA,EAAA,CACD,GAEDuB,EAAU,MACD,MAAM;AACX,IAAAjC,EAAqB,WAAW;AAAA,EAAA,GAEjC,CAACA,CAAoB,CAAC,GAEzBiC,EAAU,MAAM;AACd,IAAItG,KAAqBmD,KACvBnD,EAAkBmD,CAAS;AAAA,EAC7B,GACC,CAACnD,GAAmBmD,CAAS,CAAC,GAEjCmD,EAAU,MAAM;AACd,IAAI3G,KACFyD,EAAazD,CAAgB;AAAA,EAC/B,GACC,CAACA,CAAgB,CAAC,GAErB8G,GAAgB,MAAM;AAChB,QAAAC;AAEJ,WAAIlG,KAAcyD,MACZ0C,GAAA,EAAmB,iBAAiB,WACtCD,IAAQ,WAAW,MAAM;AACvB,MAAAT,EAAiBhC,CAAiB;AAAA,OACjC,GAAG,IAENgC,EAAiBhC,CAAiB,IAI/B,MAAM;AACX,mBAAayC,CAAK;AAAA,IAAA;AAAA,EAEnB,GAAA,CAAClG,GAAYyD,GAAmBzB,CAAS,CAAC,GAE7C8D,EAAU,MAAM;AACV,QAAA5G,EAAS,4BAA4BkE,GAAsB;AAC7D,YAAM,EAAE,WAAAgD,GAAW,qBAAAC,GAAqB,aAAAC,EAAA,IAAgBlD;AAExD,MAAI7E,MAAa,cACX6H,MAAc,iBAAiBC,MAAwB,gBAEvDhD,KAAA,QAAAA,EAA8B,sBAC9B,EAACA,KAAA,QAAAA,EAA8B,sBAE/Be,EAAW,8BAA8B,IAC/Bf,KAAA,QAAAA,EAA8B,qBAGrBgC,MAFnBjB,EAAW,kCAAkC,IAItCkC,IACJjD,KAAA,QAAAA,EAA8B,eAGdgC,MAFnBjB,EAAW,2BAA2B,IAI9BkC,KACSjB;IAGzB;AAAA,EAAA,GACC;AAAA,IACDnG,EAAS;AAAA,IACTmG;AAAA,IACAjC;AAAA,IACAC;AAAA,IACA9E;AAAA,EAAA,CACD,GAEDuH,EAAU,MAAM;AACV,QAAA5G,EAAS,4BAA4BkE,GAAsB;AACvD,YAAA,EAAE,WAAAgD,GAAW,qBAAAC,EAAwB,IAAAjD;AAE3C,MAAI7E,MAAa,aACX6H,MAAc,iBAAiBC,MAAwB,kBACrDhD,KAAA,QAAAA,EAA8B,qBACXvD,KAAA,QAAAA,MAEDD,KAAA,QAAAA;AAAA,IAI5B;AAAA,EAAA,GACC;AAAA,IACDX,EAAS;AAAA,IACTkE;AAAA,IACAC,KAAA,gBAAAA,EAA8B;AAAA,IAC9BxD;AAAA,IACAC;AAAA,IACAvB;AAAA,EAAA,CACD,GAEDuH,EAAU,MAAM;AACd,IAAItE,MAAmB,aACrB1C,EAAgB,QAAQ,CAAC,EAAE,WAAAyH,GAAW,WAAWC,QAAoB;;AAC/D,MAAAA,EAAc,SAAS,IACVC,EAAA,+CAA+CF,CAAS,IAAI;AAAA,QACzE,MAAM;AAAA,UACJ,gBAAgB;AAAA,UAChB,sBAAsB1H;AAAA,UACtB,kBAAkB0H;AAAA,QACpB;AAAA,QACA,aAAa,CAAC,oCAAoCA,CAAS,EAAE;AAAA;AAAA,MAAA,CAC9D,OAEDf,IAAAgB,EAAc,CAAC,MAAf,gBAAAhB,EAAkB,yBAAwB,WAC1CkB,IAAAF,EAAc,CAAC,MAAf,gBAAAE,EAAkB,yBAAwB,aAC1CC,IAAAH,EAAc,CAAC,MAAf,gBAAAG,EAAkB,yBAAwB,YAE1CF;AAAA,QACE,6EAA6EF,CAAS;AAAA,QACtF;AAAA,UACE,MAAM;AAAA,YACJ,gBAAgB;AAAA,YAChB,sBAAsB1H;AAAA,YACtB,kBAAkB0H;AAAA,UACpB;AAAA,UACA,aAAa,CAAC,uCAAuCA,CAAS,EAAE;AAAA;AAAA,QAClE;AAAA,MAAA;AAAA,IAEJ,CACD;AAAA,EAEF,GAAA,CAAC1H,GAAuBC,GAAiB0C,CAAc,CAAC,GAE3DsE,EAAU,MAAM;AACd,IAAAtD,EAAU,QAAQ,CAAYwB,MAAA;AAC5B,YAAM,EAAE,YAAA4C,GAAY,gBAAAC,GAAgB,MAAAC,GAAM,iBAAAC,GAAiB,UAAAC,EAAa,IAAAhD;AAGpE,WAFmBvC,IAA2BqF,MAAS,cAAc,QAEnDF,KAAA,QAAAA,EAAY,iBAAgB;AAChD,cAAMK,IAAQL,EAAW,eAAe,SAAS,CAAA;AAE7C,SAAAK,KAAA,gBAAAA,EAAO,YAAW,OACCL,EAAW,iBAAiB,IACb,KAAK,QAAeM,GAAY,MAAM,SAAS,CAAC,MAGnET,EAAA,mCAAmCO,EAAS,gBAAgB,IAAI;AAAA,UAC7E,MAAM;AAAA,YACJ,gBAAgB;AAAA,YAChB,sBAAsBnI;AAAA,YACtB,kBAAkBgI;AAAA,YAClB,mBAAmBE;AAAA,YACnB,oBAAoBC,EAAS;AAAA,UAC/B;AAAA,UACA,aAAa,CAAC,qBAAqBA,EAAS,gBAAgB,EAAE;AAAA;AAAA,QAAA,CAC/D,GACSjG,EAAA,QAAQoG,GAAO,0CAA0C;AAAA,UACjE,gBAAAN;AAAA,UACA,kBAAkBG,EAAS;AAAA,UAC3B,eAAeF;AAAA,UACf,iBAAAC;AAAA,QAAA,CACD;AAAA,MAGP;AAAA,IAAA,CACD;AAAA,KACA,CAAClI,GAAuBkC,GAAWyB,GAAWf,CAAwB,CAAC,GAErEzB,IAMD,gBAAAoH,EAAAC,IAAA,EAAA,UAAA;AAAA,IAAC,gBAAAC,EAAAC,IAAA,EAAgC;AAAA,IAChCnI,MACC,gBAAAgI;AAAA,MAACI;AAAAA,MAAA;AAAA,QACC,gBAAe;AAAA,QACf,iBAAgB;AAAA,QAChB,aAAY;AAAA,QACZ,QAAO;AAAA,QACP,UAAU;AAAA,QACV,SAASC;AAAA,QACT,MAAM;AAAA,QACN,SAAS;AAAA,QACT,UAAU;AAAA,QACV,aAAanE;AAAA,QACb,YAAYtE,EAAO,YAAYyI;AAAA,QAE9B,UAAA;AAAA,UACCpI,KAAA,gBAAAiI,EAACI,IAAA,EACC,4BAACC,IAAW,EAAA,OAAO,IAAI,QAAQ,GAAI,CAAA,EAAA,CACrC,IAEC,gBAAAL,EAAAI,IAAA,EACC,UAAA,gBAAAJ,EAACM,MAAU,OAAO,IAAI,QAAQ,GAAA,CAAI,EACpC,CAAA;AAAA,UAGD,gBAAAN,EAAAO,IAAA,EAAK,WAAU,OAAO,UAAiBtE,IAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAC1C;AAAA,sBAGDuE,IAAA,EAA0B,aAAY,SAAQ,QAAQnG,IACpD,UAAA;AAAA,MAAAI,OAAkB,SACjB,gBAAAuF,EAACS,IAAA,EAA2B,YAAY/F,GAAW,SAASgG,IAC1D,UAAA,gBAAAV,EAACW,IAAA,EACC,UAAA,gBAAAX;AAAA,QAACY;AAAA,QAAA;AAAA,UACC,WAAU;AAAA,UACV,WAAA1F;AAAA,UACA,WAAAG;AAAA,UACA,qBAAAoB;AAAA,UACA,2BAAAf;AAAA,UACA,UAAA9D;AAAA,UACA,mBAAmBwG;AAAA,UACnB,UAAAnH;AAAA,UACA,gBAAA0F;AAAA,QAAA;AAAA,SAEJ,EACF,CAAA;AAAA,MAEDE,MAAWf,KACV,gBAAAkE,EAACa,IAAA,EAAsB,YAAYvG,IAAmB,YAAYI,GAChE,4BAACoG,IAAS,EAAA,QAAQhG,GAAkB,iBAAgB,UAAS,aAAY,UACvE,UAAA,gBAAAkF;AAAA,QAACe;AAAA,QAAA;AAAA,UACC,SAAAlE;AAAA,UACA,sBAAAf;AAAA,UACA,aAAA5E;AAAA,UACA,gBAAgB6G;AAAA,UAChB,0BAAA1F;AAAA,UACA,oBAAAC;AAAA,UACA,qBAAAF;AAAA,QAAA;AAAA,SAEJ,EACF,CAAA;AAAA,MAEDwC,MACC,gBAAAoF;AAAA,QAACgB;AAAA,QAAA;AAAA,UACC,qBAAAvE;AAAA,UACA,SAAS2B;AAAA,UACT,WAAAlD;AAAA,UACA,cAAcL;AAAA,UACd,WAAAH;AAAA,UACA,UAAAzD;AAAA,QAAA;AAAA,MACF;AAAA,MAED8F,MACE,gBAAAiD,EAAAiB,IAAA,EACC,UAAC,gBAAAjB,EAAAkB,IAAA,EAAiB,iBAAiBC,IAAsB,SAAS9C,GAAA,CAAmB,EACvF,CAAA;AAAA,MAEF,gBAAAyB;AAAA,QAACsB;AAAAA,QAAA;AAAA,UACC,YAAYnK,MAAa,aAAa0F,IAAiB,MAAM9B;AAAA,UAC7D,SAASA;AAAA,UACT,aAAaT,MAAmB;AAAA,UAEhC,UAAA;AAAA,YAAA,gBAAA4F;AAAA,cAACqB;AAAA,cAAA;AAAA,gBACC,OAAOtG,IAA0B;AAAA,gBACjC,UAAUG,EAAUuB,CAAmB;AAAA,gBACvC,YAAA/D;AAAA,gBACA,UAAAzB;AAAA,cAAA;AAAA,YACF;AAAA,YACC+C,MACC,gBAAAgG;AAAA,cAACsB;AAAAA,cAAA;AAAA,gBACC,SAASzG;AAAA,gBACT,QAAQT,MAAmB,SAASW,IAA0B,KAAK;AAAA,gBACnE,aAAaX,MAAmB;AAAA,gBAEhC,UAAA,gBAAA4F;AAAA,kBAACc;AAAA,kBAAA;AAAA,oBACC,UAAU;AAAA,oBACV,gBAAe;AAAA,oBACf,iBAAgB;AAAA,oBAChB,aAAY;AAAA,oBACZ,QAAQ/F,IAA0B;AAAA,oBAElC,UAAA,gBAAAiF;AAAA,sBAACuB;AAAA,sBAAA;AAAA,wBACC,UAAAtK;AAAA,wBACA,QAAAS;AAAA,wBACA,UAAAE;AAAA,wBACA,eAAAR;AAAA,wBACA,WAAA8D;AAAA,wBACA,WAAAG;AAAA,wBACA,kBAAAiD;AAAA,wBACA,qBAAA7B;AAAA,wBACA,2BAAAf;AAAA,wBACA,qBAAA/C;AAAA,wBACA,YAAAD;AAAA,wBACA,iBAAAO;AAAA,wBACA,oBAAAO;AAAA,wBACA,qBAAAgC;AAAA,wBACA,kBAAkBmB;AAAA,wBAClB,cAAArB;AAAA,wBACA,wBAAA2B;AAAA,wBACA,mBAAAL;AAAA,wBACA,YAAAE;AAAA,wBACA,wBAAArB;AAAA,wBACA,qBAAAa;AAAA,wBACA,mBAAmB8B;AAAA,wBACnB,cAAcG;AAAA,wBACd,kBAAAvG;AAAA,wBACA,QAAAkB;AAAA,wBACA,qBAAAd;AAAA,wBACA,UAAAK;AAAA,wBACA,gBAAAsE;AAAA,wBACA,WAAAtD;AAAA,wBACA,QAAAG;AAAA,wBACA,qBAAAC;AAAA,sBAAA;AAAA,oBACF;AAAA,kBAAA;AAAA,gBACF;AAAA,cAAA;AAAA,YACF;AAAA,YAED,CAAC8C,KAAkBnC,KAAuBvD,MAAa,aACrD,gBAAA+I,EAAAwB,IAAA,EACC,UAAC,gBAAAxB,EAAAyB,IAAA,CAAA,CAAU,EACb,CAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MAEJ;AAAA,MACA,gBAAA3B;AAAA,QAAC4B;AAAAA,QAAA;AAAA,UACC,kBAAkB7G;AAAA,UAClB,aAAaT,MAAmB;AAAA,UAE/B,UAAA;AAAA,YAAkBwB,GAAA,IAAI,CAACc,GAAUiF,MAAkB;;AAClD,oBAAM,EAAE,aAAaC,GAAY,aAAA5C,EAAA,IAAgBtC,GAC3CmF,KAAe3D,IAAA7C,EAAUuG,CAAU,MAApB,gBAAA1D,EAAuB;AAE5C,qBAAItG,EAAS,6BACPiK,MAAiB,aAEjB7C,KAAe6C,MAAiB,cAAc5K,MAAa,aACtD,OAKT,gBAAA+I;AAAA,gBAAC8B;AAAA,gBAAA;AAAA,kBAEC,eAAe3K;AAAA,kBACf,UAAAF;AAAA,kBACA,oBAAA2B;AAAA,kBACA,UAAA8D;AAAA,kBACA,UAAUrB,EAAUuG,CAAU;AAAA,kBAC9B,gBACE1H,MAAmB,cAAcA,MAAmB,YAChD4B,KAAA,gBAAAA,EAAsB,cACtB6F,IAAgBjG,KACd0D,IAAAlE,EAAUyG,IAAgB,CAAC,MAA3B,gBAAAvC,EAA8B,cAC9B;AAAA,kBAER,kBAAAtE;AAAA,kBACA,YAAApC;AAAA,kBACA,UAAUkJ,MAAevF;AAAA,kBACzB,UACG,CAAC7B,KAAuBoH,MAAevF,KAAqBM;AAAA,kBAE/D,WACEF,IAAsB,OACrBkF,MAAkBlF,KAChBvC,MAAmB,aAAayH,MAAkBlF,IAAsB;AAAA,kBAE7E,YAAA9E;AAAA,kBACA,UAAUgB,GAAoB,SAASiJ,CAAU;AAAA,kBACjD,UAAAhK;AAAA,kBACA,QAAAF;AAAA,kBACA,iBAAAmD;AAAA,kBACA,sBAAA0B;AAAA,kBACA,iBAAiBsB;AAAA,kBACjB,oBAAoBV;AAAA,kBACpB,QAAAtE;AAAA,kBACA,qBAAA2C;AAAA,kBACA,kBAAA1C;AAAA,kBACA,kBAAAC;AAAA,kBACA,oBAAAC;AAAA,kBACA,iBAAAC;AAAA,kBACA,oBAAAE;AAAA,kBACA,sBAAAC;AAAA,kBACA,qBAAAkD;AAAA,kBACA,iBAAA5C;AAAA,kBACA,gBAAAC;AAAA,kBACA,WAAAG;AAAA,kBACA,iBAAAC;AAAA,kBACA,WAAAsB;AAAA,kBACA,WAAA5B;AAAA,gBAAA;AAAA,gBA9CKmI;AAAA,cAAA;AAAA,YA+CP,CAEH;AAAA,YACAjF,KACC,gBAAAqD;AAAA,cAAC+B;AAAA,cAAA;AAAA,gBACC,eAAA3K;AAAA,gBACA,WAAA8D;AAAA,gBACA,WAAAG;AAAA,gBACA,qBAAAoB;AAAA,gBACA,2BAAAf;AAAA,gBACA,mBAAmB0C;AAAA,gBACnB,UAAAxG;AAAA,gBACA,WAAW2C;AAAA,gBACX,oBAAAhB;AAAA,gBACA,gBAAAoD;AAAA,cAAA;AAAA,YACF;AAAA,UAAA;AAAA,QAAA;AAAA,MAEJ;AAAA,MACC,CAACA,KAAkBhC,MAClB,gBAAAqF;AAAA,QAACgC;AAAA,QAAA;AAAA,UACC,eAAelH;AAAA,UACf,WAAAI;AAAA,UACA,qBAAAuB;AAAA,UACA,YAAA/D;AAAA,UACA,UAAAzB;AAAA,UACA,QAAQqD;AAAA,UACR,iBAAAO;AAAA,UACA,2BAAAvB;AAAA,UACA,WAAAG;AAAA,QAAA;AAAA,MACF;AAAA,IAAA,GAEJ;AAAA,EACF,EAAA,CAAA,IArPO;AAuPX,GAEMwI,KAAYC,GAAKC,GAAWrL,EAAa,CAAC;"}
1
+ {"version":3,"file":"worksheet.js","sources":["../../../../src/features/worksheet/worksheet/worksheet.tsx"],"sourcesContent":["import type { TWorksheetBlocker } from './worksheet-blocker/worksheet-blocker-types';\nimport type { IWorksheetProps, IWorksheetRef, IWorksheetResponse } from './worksheet-types';\nimport type { ForwardRefRenderFunction } from 'react';\n\nimport { captureMessage } from '@sentry/browser';\nimport {\n forwardRef,\n memo,\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useState,\n} from 'react';\n\nimport Check2Icon from '../../../assets/line-icons/icons/check2';\nimport Info2Icon from '../../../assets/line-icons/icons/info2';\nimport getDeviceDetails from '../../../helpers/get-device-details';\nimport DesmosCalculator from '../../sheet-tools/desmos-calculator/desmos-calculator';\nimport FlexView from '../../ui/layout/flex-view';\nimport Text from '../../ui/text/text';\nimport EVENTS from '../constants/events';\nimport UserPointer from '../user-pointer-pin/user-pin';\nimport {\n DESMOS_CALC_POSITION,\n TOP_NAVIGATION_HEIGHT,\n WORKSHEET_NUDGE_BANNER_HEIGHT,\n} from './constants';\nimport useCreateImperativeHandle from './hooks/use-create-imperative-handle';\nimport useGetActiveQuestionId from './hooks/use-get-active-question-id';\nimport useTimeSpentOnQuestions from './hooks/use-time-on-questions';\nimport QuestionTips from './question-tips';\nimport WorksheetActionBar from './worksheet-action-bar/worksheet-action-bar';\nimport WorksheetBlocker from './worksheet-blocker/worksheet-blocker';\nimport {\n getInitialQuestionId,\n getInitialResponses,\n getLastUnlockedQuestionIndex,\n getQuestionMetadata,\n getQuestionsFromItems,\n getRenderableQuestions,\n getWorksheetDimensions,\n getWorksheetNudgeBannerInfo,\n scrollToQuestion,\n} from './worksheet-helpers';\nimport WorksheetNavigation from './worksheet-navigation/worksheet-navigation';\nimport WorksheetQuestion from './worksheet-question/worksheet-question';\nimport Navigator from './worksheet-sidebar/navigator';\nimport WorksheetSideBar from './worksheet-sidebar/sidebar';\nimport * as Styled from './worksheet-styled';\nimport WorksheetSummary from './worksheet-summary/worksheet-summary';\n\n/**\n *\n * @param learnosityItems cannot not be changed between the renders\n */\nconst WorksheetComp: ForwardRefRenderFunction<IWorksheetRef, IWorksheetProps> = (props, ref) => {\n const {\n userType,\n studentName = 'Student',\n questionsSignedRequest,\n worksheetName,\n initialResponseId,\n initialItemIndex,\n learnosityActivityRef,\n learnosityItems,\n learnosityResponses,\n layout,\n background,\n behavior,\n updatedResponses,\n showNudgeBanner,\n markedAsCompleted,\n onResponseChange,\n onBulkResponsesChange,\n onResponsesChange,\n onMediaStateChange,\n onTeacherValidation,\n onOptionalItemAssignment,\n onOptionalItemSkip,\n onExitTicketStart,\n onExitTicketSubmit,\n onSubmit,\n learnosity,\n appendedQuestionIds,\n worksheetCompleted,\n userId,\n onPublishStrokes,\n onReceiveStrokes,\n initialStrokesData,\n isCanvasEnabled,\n onHelp,\n onPublishMouseMove,\n onSubscribeMouseMove,\n onActiveQuestionChange,\n openQuestionFeedbackModal,\n summaryDescription,\n canSubmitWorksheet,\n loggerRef,\n canResolveDoubt,\n onResolveDoubt,\n onSkip,\n canToggleScribbling = true,\n studentId,\n subjectiveProps,\n canShowActionBar = true,\n } = props;\n const { initialQuestion, navigationMode, teacherValidationEnabled } = behavior;\n const {\n containerStyle,\n containerWidth,\n minQuestionHeight,\n minSummaryHeight,\n questionsScrollable,\n navigationBar,\n topOffset,\n renderSideBar,\n showUserPointer = true,\n } = layout;\n\n const { actionbarHeight, maxQuestionWidth, questionsContainerWidth } = useMemo(\n () => getWorksheetDimensions(learnosityItems, layout),\n [layout, learnosityItems],\n );\n\n const [questions] = useState(() =>\n getQuestionsFromItems(learnosityItems, {\n sectioned:\n teacherValidationEnabled && navigationMode !== 'ADAPTIVE' && navigationMode !== 'CURRENT',\n adaptive: navigationMode === 'ADAPTIVE',\n }),\n );\n\n const [responses, setResponses] = useState<Record<string, IWorksheetResponse>>(\n () => learnosityResponses ?? getInitialResponses(questions),\n );\n const [isScribblingEnabled, setIsScribblingEnabled] = useState(false);\n const lastUnlockedQuestionIndex = useMemo(\n () =>\n navigationMode !== 'OPEN'\n ? getLastUnlockedQuestionIndex({\n questions,\n responses,\n behavior,\n userType,\n })\n : questions.length - 1,\n [behavior, navigationMode, questions, responses, userType],\n );\n\n const questionsToRender = useMemo(\n () => getRenderableQuestions({ questions, lastUnlockedQuestionIndex, userType }),\n [questions, lastUnlockedQuestionIndex, userType],\n );\n\n const lastUnlockedQuestion = questions[lastUnlockedQuestionIndex];\n const lastUnlockedQuestionResponse = responses[lastUnlockedQuestion?.response_id ?? ''];\n\n const { bannerBackgroundColor: nudgeBannerBackgroundColor, label: nudgeBannerLabel } =\n getWorksheetNudgeBannerInfo(userType, Boolean(markedAsCompleted));\n\n const [initialQuestionId] = useState(() =>\n getInitialQuestionId({\n questions,\n initialQuestion,\n lastUnlockedQuestionIndex: getLastUnlockedQuestionIndex({\n questions,\n responses,\n behavior,\n userType,\n }),\n initialResponseId,\n initialItemIndex,\n }),\n );\n\n const { activeQuestionId, setActiveQuestionId, intersectionObserver } =\n useGetActiveQuestionId(initialQuestionId);\n const activeQuestionIndex = useMemo(\n () => questions.findIndex(question => question.response_id === activeQuestionId),\n [activeQuestionId, questions],\n );\n const [summaryVisible, setSummaryVisible] = useState(false);\n const [blocker, setBlocker] = useState<TWorksheetBlocker>();\n\n const [showCalculator, setShowCalculator] = useState(false);\n const getTimeSpentOnQuestion = useTimeSpentOnQuestions(behavior, responses, activeQuestionId);\n\n const handleMediaStateChange = useCallback<NonNullable<typeof onMediaStateChange>>(\n (question, mediaType, mediaState) => {\n const key = mediaType === 'SIMULATION' ? 'simState' : undefined;\n\n if (!key) return;\n\n if (onResponseChange) {\n setResponses(prevResponses => {\n const questionId = question.response_id;\n const questionMeta = getQuestionMetadata(questions, questionId);\n\n if (!questionMeta) return prevResponses;\n\n const updatedResponse = {\n ...questionMeta,\n ...prevResponses[questionId],\n [key]: mediaState,\n };\n\n onResponseChange?.({\n responseId: questionId,\n response: updatedResponse,\n isNewAttempt: false,\n question,\n });\n\n return {\n ...prevResponses,\n [questionId]: updatedResponse,\n };\n });\n } else if (onMediaStateChange) {\n onMediaStateChange(question, mediaType, mediaState);\n }\n },\n [onMediaStateChange, onResponseChange, questions],\n );\n\n const handleMarkForReview = useCallback(\n (questionId: string, markedForReview: boolean) => {\n setResponses(prevResponses => {\n const questionMeta = getQuestionMetadata(questions, questionId);\n\n if (!questionMeta) return prevResponses;\n\n return {\n ...prevResponses,\n [questionId]: {\n ...questionMeta,\n ...prevResponses[questionId],\n markedForReview,\n },\n };\n });\n },\n [questions],\n );\n\n const handleBlockerClose = useCallback(() => {\n setBlocker(prevBlocker => {\n if (prevBlocker) {\n const lastUnlockedQuestionId = questions[lastUnlockedQuestionIndex]?.response_id;\n\n if (lastUnlockedQuestionId) {\n setTimeout(() => {\n scrollToQuestion(lastUnlockedQuestionId);\n }, 50);\n }\n }\n\n return undefined;\n });\n }, [lastUnlockedQuestionIndex, questions]);\n\n const handleItemNumberClick = useCallback(\n (questionId: string) => {\n setSummaryVisible(false);\n\n if (questionsScrollable) {\n requestAnimationFrame(() => scrollToQuestion(questionId));\n } else {\n setActiveQuestionId(questionId);\n }\n },\n [questionsScrollable, setActiveQuestionId],\n );\n\n const onCalculatorClose = useCallback(() => {\n setShowCalculator(false);\n }, []);\n\n const onCalculatorOpen = useCallback(() => {\n setShowCalculator(true);\n }, []);\n\n const handleOnGoToReview = useCallback(() => {\n setSummaryVisible(true);\n }, []);\n\n useEffect(() => {\n const activeQuestion = questions[activeQuestionIndex];\n\n if (activeQuestion && onActiveQuestionChange) {\n onActiveQuestionChange(activeQuestion);\n const modal = document.querySelector('div[role=\"dialog\"][aria-label=\"Math Response Modal\"]');\n\n if (modal) {\n modal.classList.add('lds-flexible-container--hide');\n }\n }\n }, [onActiveQuestionChange, questions, activeQuestionIndex]);\n\n useCreateImperativeHandle(ref, {\n behavior,\n questions,\n setResponses,\n onResponseChange,\n onBulkResponsesChange,\n getTimeSpentOnQuestion,\n });\n\n useEffect(() => {\n return () => {\n intersectionObserver.disconnect();\n };\n }, [intersectionObserver]);\n\n useEffect(() => {\n if (onResponsesChange && responses) {\n onResponsesChange(responses);\n }\n }, [onResponsesChange, responses]);\n\n useEffect(() => {\n if (updatedResponses) {\n setResponses(updatedResponses);\n }\n }, [updatedResponses]);\n\n useLayoutEffect(() => {\n let timer: NodeJS.Timeout;\n\n if (learnosity && initialQuestionId) {\n if (getDeviceDetails().browser_name === 'Safari') {\n timer = setTimeout(() => {\n scrollToQuestion(initialQuestionId);\n }, 400);\n } else {\n scrollToQuestion(initialQuestionId);\n }\n }\n\n return () => {\n clearTimeout(timer);\n };\n }, [learnosity, initialQuestionId, topOffset]);\n\n useEffect(() => {\n if (behavior.teacherValidationEnabled && lastUnlockedQuestion) {\n const { item_type, instructor_stimulus, is_optional } = lastUnlockedQuestion;\n\n if (userType === 'TEACHER') {\n if (item_type === 'exit-ticket' && instructor_stimulus !== 'SystemIntro') {\n if (\n lastUnlockedQuestionResponse?.submittedByStudent &&\n !lastUnlockedQuestionResponse?.validatedByTeacher\n ) {\n setBlocker('exit-ticket-review-available');\n } else if (!lastUnlockedQuestionResponse?.validatedByTeacher) {\n setBlocker('exit-ticket-teacher-intervention');\n } else {\n handleBlockerClose();\n }\n } else if (is_optional) {\n if (!lastUnlockedQuestionResponse?.assignStatus) {\n setBlocker('optional-items-assignment');\n } else {\n handleBlockerClose();\n }\n } else if (!is_optional) {\n handleBlockerClose();\n }\n }\n }\n }, [\n behavior.teacherValidationEnabled,\n handleBlockerClose,\n lastUnlockedQuestion,\n lastUnlockedQuestionResponse,\n userType,\n ]);\n\n useEffect(() => {\n if (behavior.teacherValidationEnabled && lastUnlockedQuestion) {\n const { item_type, instructor_stimulus } = lastUnlockedQuestion;\n\n if (userType === 'STUDENT') {\n if (item_type === 'exit-ticket' && instructor_stimulus !== 'SystemIntro') {\n if (lastUnlockedQuestionResponse?.submittedByStudent) {\n onExitTicketSubmit?.();\n } else {\n onExitTicketStart?.();\n }\n }\n }\n }\n }, [\n behavior.teacherValidationEnabled,\n lastUnlockedQuestion,\n lastUnlockedQuestionResponse?.submittedByStudent,\n onExitTicketStart,\n onExitTicketSubmit,\n userType,\n ]);\n\n useEffect(() => {\n if (navigationMode === 'CURRENT') {\n learnosityItems.forEach(({ reference, questions: itemQuestions }) => {\n if (itemQuestions.length < 3) {\n captureMessage(`Diagnostics item has Less than 3 questions: ${reference}`, {\n tags: {\n 'content-type': 'learnosity',\n 'activity-reference': learnosityActivityRef,\n 'item-reference': reference,\n },\n fingerprint: [`diagnostics-item-questions-count-${reference}`], // Add unique fingerprint\n });\n } else if (\n itemQuestions[0]?.instructor_stimulus !== 'Try' ||\n itemQuestions[1]?.instructor_stimulus !== 'Learn' ||\n itemQuestions[2]?.instructor_stimulus !== 'Apply'\n ) {\n captureMessage(\n `Diagnostics questions sequence is incorrect expected [Try, Learn, Apply]: ${reference}`,\n {\n tags: {\n 'content-type': 'learnosity',\n 'activity-reference': learnosityActivityRef,\n 'item-reference': reference,\n },\n fingerprint: [`diagnostics-item-questions-sequence-${reference}`], // Add unique fingerprint\n },\n );\n }\n });\n }\n }, [learnosityActivityRef, learnosityItems, navigationMode]);\n\n useEffect(() => {\n questions.forEach(question => {\n const { validation, item_reference, type, question_number, metadata } = question;\n const responseNeeded = teacherValidationEnabled ? type !== 'clozetext' : true;\n\n if (responseNeeded && validation?.valid_response) {\n const value = validation.valid_response.value ?? [];\n\n if (value?.length === 0) {\n const altResponses = validation.alt_responses ?? [];\n const hasAltResponse = altResponses.some(altResponse => altResponse.value.length > 0);\n\n if (!hasAltResponse) {\n captureMessage(`Question has no valid response: ${metadata.widget_reference}`, {\n tags: {\n 'content-type': 'learnosity',\n 'activity-reference': learnosityActivityRef,\n 'item-reference': item_reference,\n 'question-number': question_number,\n 'widget-reference': metadata.widget_reference,\n },\n fingerprint: [`no-valid-response-${metadata.widget_reference}`], // Add unique fingerprint\n });\n loggerRef.current(EVENTS.WORKSHEET_V3_QUESTION_MISSING_VALIDATION, {\n item_reference: item_reference,\n widget_reference: metadata.widget_reference,\n question_type: type,\n question_number: question_number,\n });\n }\n }\n }\n });\n }, [learnosityActivityRef, loggerRef, questions, teacherValidationEnabled]);\n\n if (!learnosity) {\n return null;\n }\n\n return (\n <>\n <Styled.LearnosityStyleOverrides />\n {showNudgeBanner && (\n <Styled.NudgeBannerWrapper\n $flexDirection=\"row\"\n $justifyContent=\"center\"\n $alignItems=\"center\"\n $width=\"100%\"\n $heightX={1.75}\n $height={WORKSHEET_NUDGE_BANNER_HEIGHT}\n $gap={8}\n $gutter={8}\n $flexGap={8}\n $background={nudgeBannerBackgroundColor}\n $topOffset={layout.topOffset - WORKSHEET_NUDGE_BANNER_HEIGHT}\n >\n {markedAsCompleted ? (\n <Styled.NudgeBannerIcon>\n <Check2Icon width={16} height={16} />\n </Styled.NudgeBannerIcon>\n ) : (\n <Styled.NudgeBannerIcon>\n <Info2Icon width={16} height={16} />\n </Styled.NudgeBannerIcon>\n )}\n\n <Text $renderAs=\"ub3\">{nudgeBannerLabel}</Text>\n </Styled.NudgeBannerWrapper>\n )}\n\n <Styled.WorksheetContainer $background=\"WHITE\" $width={containerWidth}>\n {navigationBar === 'top' && (\n <Styled.NavigationContainer $topOffset={topOffset} $height={TOP_NAVIGATION_HEIGHT}>\n <Styled.NavigationWrapper>\n <WorksheetNavigation\n placement=\"top\"\n questions={questions}\n responses={responses}\n activeQuestionIndex={activeQuestionIndex}\n lastUnlockedQuestionIndex={lastUnlockedQuestionIndex}\n behavior={behavior}\n onItemNumberClick={handleItemNumberClick}\n userType={userType}\n summaryVisible={summaryVisible}\n />\n </Styled.NavigationWrapper>\n </Styled.NavigationContainer>\n )}\n {blocker && lastUnlockedQuestion && (\n <Styled.BlockerWrapper $minHeight={minQuestionHeight} $topOffset={topOffset}>\n <FlexView $width={maxQuestionWidth} $justifyContent=\"center\" $alignItems=\"center\">\n <WorksheetBlocker\n blocker={blocker}\n lastUnlockedQuestion={lastUnlockedQuestion}\n studentName={studentName}\n onBlockerClose={handleBlockerClose}\n onOptionalItemAssignment={onOptionalItemAssignment}\n onOptionalItemSkip={onOptionalItemSkip}\n onTeacherValidation={onTeacherValidation}\n />\n </FlexView>\n </Styled.BlockerWrapper>\n )}\n {showUserPointer && (\n <UserPointer\n activeQuestionIndex={activeQuestionIndex}\n onClick={handleItemNumberClick}\n questions={questions}\n bottomOffset={actionbarHeight}\n topOffset={topOffset}\n userType={userType}\n />\n )}\n {showCalculator && (\n <Styled.DesmosCalcWrapper>\n <DesmosCalculator initialPosition={DESMOS_CALC_POSITION} onClose={onCalculatorClose} />\n </Styled.DesmosCalcWrapper>\n )}\n <Styled.ActionbarContainer\n $marginTop={userType === 'TEACHER' && summaryVisible ? '0' : actionbarHeight}\n $height={actionbarHeight}\n $isCardView={containerStyle === 'card'}\n >\n <QuestionTips\n width={questionsContainerWidth - 32}\n question={questions[activeQuestionIndex]}\n learnosity={learnosity}\n userType={userType}\n />\n {canShowActionBar && (\n <Styled.ActionbarWrapper\n $height={actionbarHeight}\n $width={containerStyle === 'card' ? questionsContainerWidth - 32 : '100%'}\n $isCardView={containerStyle === 'card'}\n >\n <FlexView\n $gutterX={1}\n $flexDirection=\"row\"\n $justifyContent=\"space-between\"\n $alignItems=\"center\"\n $width={questionsContainerWidth - 32}\n >\n <WorksheetActionBar\n userType={userType}\n layout={layout}\n behavior={behavior}\n worksheetName={worksheetName}\n questions={questions}\n responses={responses}\n onCalculatorOpen={onCalculatorOpen}\n activeQuestionIndex={activeQuestionIndex}\n lastUnlockedQuestionIndex={lastUnlockedQuestionIndex}\n appendedQuestionIds={appendedQuestionIds}\n learnosity={learnosity}\n isCanvasEnabled={isCanvasEnabled}\n canSubmitWorksheet={canSubmitWorksheet}\n isScribblingEnabled={isScribblingEnabled}\n isSummaryVisible={summaryVisible}\n setResponses={setResponses}\n getTimeSpentOnQuestion={getTimeSpentOnQuestion}\n setSummaryVisible={setSummaryVisible}\n setBlocker={setBlocker}\n setIsScribblingEnabled={setIsScribblingEnabled}\n setActiveQuestionId={setActiveQuestionId}\n onItemNumberClick={handleItemNumberClick}\n onGoToReview={handleOnGoToReview}\n onResponseChange={onResponseChange}\n onHelp={onHelp}\n onTeacherValidation={onTeacherValidation}\n onSubmit={onSubmit}\n showCalculator={showCalculator}\n loggerRef={loggerRef}\n onSkip={onSkip}\n canToggleScribbling={canToggleScribbling}\n />\n </FlexView>\n </Styled.ActionbarWrapper>\n )}\n {!summaryVisible && questionsScrollable && userType === 'STUDENT' && (\n <Styled.StudentWorksheetSideBar>\n <Navigator />\n </Styled.StudentWorksheetSideBar>\n )}\n </Styled.ActionbarContainer>\n <Styled.QuestionsWrapper\n $actionbarHeight={actionbarHeight}\n $isCardView={containerStyle === 'card'}\n >\n {questionsToRender.map((question, questionIndex) => {\n const { response_id: responseId, is_optional } = question;\n const assignStatus = responses[responseId]?.assignStatus;\n\n if (behavior.teacherValidationEnabled) {\n if (assignStatus === 'skipped') return null;\n\n if (is_optional && assignStatus !== 'assigned' && userType === 'STUDENT') {\n return null;\n }\n }\n\n return (\n <WorksheetQuestion\n key={responseId}\n signedRequest={questionsSignedRequest}\n userType={userType}\n worksheetCompleted={worksheetCompleted}\n question={question}\n response={responses[responseId]}\n nextQuestionId={\n navigationMode === 'ADAPTIVE' || navigationMode === 'CURRENT'\n ? lastUnlockedQuestion?.response_id\n : questionIndex < lastUnlockedQuestionIndex\n ? questions[questionIndex + 1]?.response_id\n : undefined\n }\n maxQuestionWidth={maxQuestionWidth}\n learnosity={learnosity}\n isActive={responseId === activeQuestionId}\n isHidden={\n (!questionsScrollable && responseId !== activeQuestionId) || summaryVisible\n }\n canRender={\n activeQuestionIndex > -1 &&\n (questionIndex === activeQuestionIndex ||\n (navigationMode !== 'CURRENT' && questionIndex === activeQuestionIndex + 1))\n }\n background={background}\n appended={appendedQuestionIds.includes(responseId)}\n behavior={behavior}\n layout={layout}\n actionbarHeight={actionbarHeight}\n intersectionObserver={intersectionObserver}\n onMarkForReview={handleMarkForReview}\n onMediaStateChange={handleMediaStateChange}\n userId={userId}\n isScribblingEnabled={isScribblingEnabled}\n onPublishStrokes={onPublishStrokes}\n onReceiveStrokes={onReceiveStrokes}\n initialStrokesData={initialStrokesData}\n isCanvasEnabled={isCanvasEnabled}\n onPublishMouseMove={onPublishMouseMove}\n onSubscribeMouseMove={onSubscribeMouseMove}\n setActiveQuestionId={setActiveQuestionId}\n canResolveDoubt={canResolveDoubt}\n onResolveDoubt={onResolveDoubt}\n studentId={studentId}\n subjectiveProps={subjectiveProps}\n responses={responses}\n loggerRef={loggerRef}\n />\n );\n })}\n {summaryVisible && (\n <WorksheetSummary\n worksheetName={worksheetName}\n questions={questions}\n responses={responses}\n activeQuestionIndex={activeQuestionIndex}\n lastUnlockedQuestionIndex={lastUnlockedQuestionIndex}\n onItemNumberClick={handleItemNumberClick}\n behavior={behavior}\n minHeight={minSummaryHeight}\n summaryDescription={summaryDescription}\n summaryVisible={summaryVisible}\n />\n )}\n </Styled.QuestionsWrapper>\n {!summaryVisible && renderSideBar && (\n <WorksheetSideBar\n questionWidth={maxQuestionWidth}\n questions={questions}\n activeQuestionIndex={activeQuestionIndex}\n learnosity={learnosity}\n userType={userType}\n height={minQuestionHeight}\n actionbarHeight={actionbarHeight}\n openQuestionFeedbackModal={openQuestionFeedbackModal}\n loggerRef={loggerRef}\n />\n )}\n </Styled.WorksheetContainer>\n </>\n );\n};\n\nconst Worksheet = memo(forwardRef(WorksheetComp));\n\nexport default Worksheet;\n"],"names":["WorksheetComp","props","ref","userType","studentName","questionsSignedRequest","worksheetName","initialResponseId","initialItemIndex","learnosityActivityRef","learnosityItems","learnosityResponses","layout","background","behavior","updatedResponses","showNudgeBanner","markedAsCompleted","onResponseChange","onBulkResponsesChange","onResponsesChange","onMediaStateChange","onTeacherValidation","onOptionalItemAssignment","onOptionalItemSkip","onExitTicketStart","onExitTicketSubmit","onSubmit","learnosity","appendedQuestionIds","worksheetCompleted","userId","onPublishStrokes","onReceiveStrokes","initialStrokesData","isCanvasEnabled","onHelp","onPublishMouseMove","onSubscribeMouseMove","onActiveQuestionChange","openQuestionFeedbackModal","summaryDescription","canSubmitWorksheet","loggerRef","canResolveDoubt","onResolveDoubt","onSkip","canToggleScribbling","studentId","subjectiveProps","canShowActionBar","initialQuestion","navigationMode","teacherValidationEnabled","containerStyle","containerWidth","minQuestionHeight","minSummaryHeight","questionsScrollable","navigationBar","topOffset","renderSideBar","showUserPointer","actionbarHeight","maxQuestionWidth","questionsContainerWidth","useMemo","getWorksheetDimensions","questions","useState","getQuestionsFromItems","responses","setResponses","getInitialResponses","isScribblingEnabled","setIsScribblingEnabled","lastUnlockedQuestionIndex","getLastUnlockedQuestionIndex","questionsToRender","getRenderableQuestions","lastUnlockedQuestion","lastUnlockedQuestionResponse","nudgeBannerBackgroundColor","nudgeBannerLabel","getWorksheetNudgeBannerInfo","initialQuestionId","getInitialQuestionId","activeQuestionId","setActiveQuestionId","intersectionObserver","useGetActiveQuestionId","activeQuestionIndex","question","summaryVisible","setSummaryVisible","blocker","setBlocker","showCalculator","setShowCalculator","getTimeSpentOnQuestion","useTimeSpentOnQuestions","handleMediaStateChange","useCallback","mediaType","mediaState","key","prevResponses","questionId","questionMeta","getQuestionMetadata","updatedResponse","handleMarkForReview","markedForReview","handleBlockerClose","prevBlocker","lastUnlockedQuestionId","_a","scrollToQuestion","handleItemNumberClick","onCalculatorClose","onCalculatorOpen","handleOnGoToReview","useEffect","activeQuestion","modal","useCreateImperativeHandle","useLayoutEffect","timer","getDeviceDetails","item_type","instructor_stimulus","is_optional","reference","itemQuestions","captureMessage","_b","_c","validation","item_reference","type","question_number","metadata","value","altResponse","EVENTS","jsxs","Fragment","jsx","Styled.LearnosityStyleOverrides","Styled.NudgeBannerWrapper","WORKSHEET_NUDGE_BANNER_HEIGHT","Styled.NudgeBannerIcon","Check2Icon","Info2Icon","Text","Styled.WorksheetContainer","Styled.NavigationContainer","TOP_NAVIGATION_HEIGHT","Styled.NavigationWrapper","WorksheetNavigation","Styled.BlockerWrapper","FlexView","WorksheetBlocker","UserPointer","Styled.DesmosCalcWrapper","DesmosCalculator","DESMOS_CALC_POSITION","Styled.ActionbarContainer","QuestionTips","Styled.ActionbarWrapper","WorksheetActionBar","Styled.StudentWorksheetSideBar","Navigator","Styled.QuestionsWrapper","questionIndex","responseId","assignStatus","WorksheetQuestion","WorksheetSummary","WorksheetSideBar","Worksheet","memo","forwardRef"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cuemath/leap",
3
- "version": "3.1.48-aa2",
3
+ "version": "3.1.48-aa3",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist"