@cuemath/leap 3.1.44-beta-0.2 → 3.1.44-hg2

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 (51) hide show
  1. package/dist/features/auth/forgot-password/forgot-password-styled.js +14 -14
  2. package/dist/features/auth/forgot-password/forgot-password-styled.js.map +1 -1
  3. package/dist/features/auth/login/identifier-otp-form/identifier-otp-form-styled.js +7 -7
  4. package/dist/features/auth/login/identifier-otp-form/identifier-otp-form-styled.js.map +1 -1
  5. package/dist/features/auth/login/login-styled.js +9 -9
  6. package/dist/features/auth/login/login-styled.js.map +1 -1
  7. package/dist/features/hooks/use-viewport/use-viewport.js +8 -16
  8. package/dist/features/hooks/use-viewport/use-viewport.js.map +1 -1
  9. package/dist/features/ui/theme/constants.js +11 -0
  10. package/dist/features/ui/theme/constants.js.map +1 -0
  11. package/dist/features/ui/theme/get-device.js +6 -0
  12. package/dist/features/ui/theme/get-device.js.map +1 -0
  13. package/dist/features/ui/theme/get-theme.js +23 -21
  14. package/dist/features/ui/theme/get-theme.js.map +1 -1
  15. package/dist/features/ui/theme/layout.js +5 -3
  16. package/dist/features/ui/theme/layout.js.map +1 -1
  17. package/dist/features/ui/theme/media-queries.js +11 -0
  18. package/dist/features/ui/theme/media-queries.js.map +1 -0
  19. package/dist/features/worksheet/worksheet/worksheet-action-bar/worksheet-action-bar.js +43 -45
  20. package/dist/features/worksheet/worksheet/worksheet-action-bar/worksheet-action-bar.js.map +1 -1
  21. package/dist/features/worksheet/worksheet/worksheet-helpers.js +84 -98
  22. package/dist/features/worksheet/worksheet/worksheet-helpers.js.map +1 -1
  23. package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question.js +66 -66
  24. package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question.js.map +1 -1
  25. package/dist/features/worksheet/worksheet/worksheet-questions-controller/use-handler-callbacks.js +75 -78
  26. package/dist/features/worksheet/worksheet/worksheet-questions-controller/use-handler-callbacks.js.map +1 -1
  27. package/dist/features/worksheet/worksheet/worksheet-questions-controller/worksheet-questions-controller.js +202 -268
  28. package/dist/features/worksheet/worksheet/worksheet-questions-controller/worksheet-questions-controller.js.map +1 -1
  29. package/dist/features/worksheet/worksheet/worksheet-sidebar/sidebar.js +20 -21
  30. package/dist/features/worksheet/worksheet/worksheet-sidebar/sidebar.js.map +1 -1
  31. package/dist/features/worksheet/worksheet/worksheet-types.js.map +1 -1
  32. package/dist/features/worksheet/worksheet/worksheet.js +354 -378
  33. package/dist/features/worksheet/worksheet/worksheet.js.map +1 -1
  34. package/dist/features/worksheet/worksheet-preview/dynamic-worksheet-preview/dynamic-worksheet-preview.js +18 -20
  35. package/dist/features/worksheet/worksheet-preview/dynamic-worksheet-preview/dynamic-worksheet-preview.js.map +1 -1
  36. package/dist/features/worksheet/worksheet-preview/hooks/use-worksheet-layout.js +25 -33
  37. package/dist/features/worksheet/worksheet-preview/hooks/use-worksheet-layout.js.map +1 -1
  38. package/dist/features/worksheet/worksheet-preview/worksheet-preview-styled.js +15 -22
  39. package/dist/features/worksheet/worksheet-preview/worksheet-preview-styled.js.map +1 -1
  40. package/dist/features/worksheet/worksheet-preview/worksheet-preview-view.js +66 -85
  41. package/dist/features/worksheet/worksheet-preview/worksheet-preview-view.js.map +1 -1
  42. package/dist/features/worksheet/worksheet-preview/worksheet-preview.js +32 -51
  43. package/dist/features/worksheet/worksheet-preview/worksheet-preview.js.map +1 -1
  44. package/dist/index.d.ts +7 -26
  45. package/dist/index.js +32 -34
  46. package/dist/index.js.map +1 -1
  47. package/package.json +1 -1
  48. package/dist/features/ui/theme/device.js +0 -5
  49. package/dist/features/ui/theme/device.js.map +0 -1
  50. package/dist/features/utils/media.js +0 -16
  51. package/dist/features/utils/media.js.map +0 -1
@@ -1,22 +1,22 @@
1
- import { jsxs as L, jsx as i, Fragment as Vt } from "react/jsx-runtime";
2
- import { memo as Xt, useMemo as p, useState as T, useRef as K, useCallback as Pt, useEffect as R, useLayoutEffect as jt } from "react";
3
- import { IMAGES as Gt } from "../../../../assets/images/images.js";
4
- import Yt from "../../../cue-canvas/cue-canvas.js";
5
- import Zt from "../../../pointer-sync/pointer.js";
6
- import Ht from "../../../ui/layout/flex-view.js";
7
- import Jt from "../../constants/events.js";
8
- import { QUESTIONS_GAP as kt, LEARNOSITY_KEYBOARD_HEIGHT as St } from "../constants.js";
9
- import { getPaperColorByQuestion as qt, isConceptIntroWidget as te, scrollToQuestion as bt } from "../worksheet-helpers.js";
10
- import ee from "./header/header.js";
11
- import ie from "./learnosity-question.js";
12
- import re from "./question-backdrop/question-backdrop.js";
13
- import oe from "./subjective-review.js";
14
- import ne from "./system-intros/advanced-practice-intro.js";
15
- import ce from "./system-intros/basic-practice-intro.js";
16
- import ae from "./system-intros/exit-ticket-intro.js";
17
- import se from "./system-intros/regular-practice-intro.js";
18
- import { QuestionContainerWrapper as le, StimulusReview as me, QuestionContainer as ue, QuestionWrapper as fe, LessonOverviewBanner as he, CueCanvasWrapper as de, Hint as ge, Solution as Ee } from "./worksheet-question-styled.js";
19
- const Me = Xt(
1
+ import { jsxs as L, jsx as i, Fragment as Kt } from "react/jsx-runtime";
2
+ import { memo as Vt, useMemo as p, useState as T, useRef as K, useCallback as Xt, useEffect as R, useLayoutEffect as Pt } from "react";
3
+ import { IMAGES as jt } from "../../../../assets/images/images.js";
4
+ import Gt from "../../../cue-canvas/cue-canvas.js";
5
+ import Yt from "../../../pointer-sync/pointer.js";
6
+ import St from "../../../ui/layout/flex-view.js";
7
+ import Zt from "../../constants/events.js";
8
+ import { QUESTIONS_GAP as Jt, LEARNOSITY_KEYBOARD_HEIGHT as Ht } from "../constants.js";
9
+ import { getPaperColorByQuestion as kt, isConceptIntroWidget as qt, scrollToQuestion as bt } from "../worksheet-helpers.js";
10
+ import te from "./header/header.js";
11
+ import ee from "./learnosity-question.js";
12
+ import ie from "./question-backdrop/question-backdrop.js";
13
+ import re from "./subjective-review.js";
14
+ import oe from "./system-intros/advanced-practice-intro.js";
15
+ import ne from "./system-intros/basic-practice-intro.js";
16
+ import ce from "./system-intros/exit-ticket-intro.js";
17
+ import ae from "./system-intros/regular-practice-intro.js";
18
+ import { QuestionContainerWrapper as se, StimulusReview as le, QuestionContainer as me, QuestionWrapper as ue, LessonOverviewBanner as fe, CueCanvasWrapper as he, Hint as de, Solution as ge } from "./worksheet-question-styled.js";
19
+ const Ae = Vt(
20
20
  ({
21
21
  userType: c,
22
22
  signedRequest: Ct,
@@ -54,16 +54,16 @@ const Me = Xt(
54
54
  subjectiveProps: rt
55
55
  }) => {
56
56
  const C = p(
57
- () => Y === "paper" ? qt(n) : void 0,
57
+ () => Y === "paper" ? kt(n) : void 0,
58
58
  [Y, n]
59
59
  ), [W, Mt] = T(), [ot, Ot] = T(), {
60
60
  validation: nt,
61
61
  review: N,
62
62
  maximumAttempts: ct,
63
63
  canExceedAttempts: at,
64
- teacherValidationEnabled: H,
64
+ teacherValidationEnabled: S,
65
65
  solutionHidden: st
66
- } = P, { minQuestionHeight: Nt, topOffset: lt, questionsScrollable: y, renderQuestionHeader: Qt } = j, {
66
+ } = P, { minQuestionHeight: Nt, topOffset: lt, questionsScrollable: y } = j, {
67
67
  type: E,
68
68
  response_id: r,
69
69
  stimulus_review: _,
@@ -74,9 +74,9 @@ const Me = Xt(
74
74
  question_number: ht,
75
75
  item_number: dt,
76
76
  item_display_number: gt
77
- } = n, Ft = !!_, x = f === "overview", m = te(mt), d = mt === "SystemIntro", Q = m || d, Et = e == null ? void 0 : e.responseEdited, zt = p(() => {
77
+ } = n, Qt = !!_, x = f === "overview", m = qt(mt), d = mt === "SystemIntro", Q = m || d, Et = e == null ? void 0 : e.responseEdited, Ft = p(() => {
78
78
  const t = [];
79
- return Et && c === "TEACHER" && t.push("attempting"), a || t.push("hidden"), E === "hotspot" && t.push("correct-answers-hidden"), a && H && E === "clozetext" && (!m || c === "STUDENT" ? t.push("response-hidden") : t.push("response-code-hidden")), x && t.push("lesson-overview"), m && t.push("concept-intro"), d && t.push("system-intro"), t.join(" ");
79
+ return Et && c === "TEACHER" && t.push("attempting"), a || t.push("hidden"), E === "hotspot" && t.push("correct-answers-hidden"), a && S && E === "clozetext" && (!m || c === "STUDENT" ? t.push("response-hidden") : t.push("response-code-hidden")), x && t.push("lesson-overview"), m && t.push("concept-intro"), d && t.push("system-intro"), t.join(" ");
80
80
  }, [
81
81
  a,
82
82
  m,
@@ -84,7 +84,7 @@ const Me = Xt(
84
84
  d,
85
85
  E,
86
86
  Et,
87
- H,
87
+ S,
88
88
  c
89
89
  ]), F = K({}), z = (e == null ? void 0 : e.hintsUsed) ?? 0, [_t] = T((e == null ? void 0 : e.validatedByTeacher) ?? !1), I = K(null), D = K(null), U = p(() => h == null ? void 0 : h.slice(0, z), [h, z]), $t = p(() => c === "TEACHER" || g ? !0 : !e || !e.response || e.responseEdited ? !1 : nt, [e, c, nt, g]), pt = p(() => {
90
90
  if (c === "TEACHER") return !0;
@@ -93,13 +93,13 @@ const Me = Xt(
93
93
  return ((t == null ? void 0 : t.length) ?? 0) >= ct && !at;
94
94
  }
95
95
  return !1;
96
- }, [at, ct, e, N, c]), Dt = p(
96
+ }, [at, ct, e, N, c]), zt = p(
97
97
  () => B && g && !st,
98
98
  [st, B, g]
99
- ), [Rt, Ut] = T({
99
+ ), [Rt, Dt] = T({
100
100
  width: 0,
101
101
  height: 0
102
- }), Kt = Pt((t) => {
102
+ }), Ut = Xt((t) => {
103
103
  Ot(t);
104
104
  }, []);
105
105
  return R(() => {
@@ -112,7 +112,7 @@ const Me = Xt(
112
112
  let s = 0, o = 0;
113
113
  t.forEach((l) => {
114
114
  s = Math.max(s, l.clientWidth + 33), o = Math.max(o, l.clientHeight + 1);
115
- }), Ut({
115
+ }), Dt({
116
116
  width: n.type !== "association" ? s : 0,
117
117
  height: o
118
118
  });
@@ -133,7 +133,7 @@ const Me = Xt(
133
133
  if (u != null && u.closest(".resize-sensor"))
134
134
  continue;
135
135
  if (((u == null ? void 0 : u.clientWidth) ?? 0) > s) {
136
- F.current[r] = !0, M.current(Jt.WORKSHEET_V3_GREATER_WIDTH_ELEMENT, {
136
+ F.current[r] = !0, M.current(Zt.WORKSHEET_V3_GREATER_WIDTH_ELEMENT, {
137
137
  item_reference: ft,
138
138
  widget_reference: ut,
139
139
  question_type: E,
@@ -164,27 +164,27 @@ const Me = Xt(
164
164
  const l = o.querySelector(".lrn_response_wrapper");
165
165
  if (Q || !l)
166
166
  return 0;
167
- const u = o.getBoundingClientRect().bottom, S = l.getBoundingClientRect().bottom, $ = Math.abs(u - S);
168
- return $ < St ? St - $ : 0;
167
+ const u = o.getBoundingClientRect().bottom, H = l.getBoundingClientRect().bottom, $ = Math.abs(u - H);
168
+ return $ < Ht ? Ht - $ : 0;
169
169
  };
170
170
  a && t && Mt((o) => {
171
171
  var wt;
172
- const S = ((wt = n.ui_style) == null ? void 0 : wt.type) === "floating-keyboard" && !(H && E === "clozetext"), $ = t.clientHeight;
172
+ const H = ((wt = n.ui_style) == null ? void 0 : wt.type) === "floating-keyboard" && !(S && E === "clozetext"), $ = t.clientHeight;
173
173
  if ($ === 0)
174
174
  return o;
175
175
  if (!o)
176
176
  return Math.ceil(
177
- $ + (S ? s(t) : 0)
177
+ $ + (H ? s(t) : 0)
178
178
  );
179
179
  const vt = Math.ceil(
180
- $ + (S ? s(t) : 0)
180
+ $ + (H ? s(t) : 0)
181
181
  );
182
182
  return Math.abs(vt - o) > 4 ? vt : o;
183
- }), (z || Ft || B && g) && b.renderMath("mathjax");
184
- }), jt(() => {
183
+ }), (z || Qt || B && g) && b.renderMath("mathjax");
184
+ }), Pt(() => {
185
185
  !y && !A && bt(r);
186
186
  }, [A, y, r, lt]), R(() => {
187
- if (H && v && !_t && (e != null && e.validatedByTeacher)) {
187
+ if (S && v && !_t && (e != null && e.validatedByTeacher)) {
188
188
  const t = setTimeout(() => {
189
189
  y ? bt(v) : it(v);
190
190
  }, 1e3);
@@ -194,13 +194,13 @@ const Me = Xt(
194
194
  }
195
195
  }, [
196
196
  v,
197
- H,
197
+ S,
198
198
  _t,
199
199
  y,
200
200
  it,
201
201
  e == null ? void 0 : e.validatedByTeacher
202
202
  ]), /* @__PURE__ */ L(
203
- le,
203
+ se,
204
204
  {
205
205
  "data-response-id": r,
206
206
  className: `widget-${r}`,
@@ -209,10 +209,10 @@ const Me = Xt(
209
209
  $flexDirection: _ ? "row" : "column",
210
210
  $alignItems: _ ? "flex-start" : "center",
211
211
  $hidden: A,
212
- $marginBottom: kt,
212
+ $marginBottom: Jt,
213
213
  children: [
214
214
  _ && /* @__PURE__ */ i(
215
- me,
215
+ le,
216
216
  {
217
217
  dangerouslySetInnerHTML: {
218
218
  __html: _
@@ -220,7 +220,7 @@ const Me = Xt(
220
220
  }
221
221
  ),
222
222
  /* @__PURE__ */ L(
223
- ue,
223
+ me,
224
224
  {
225
225
  ref: D,
226
226
  $width: _ ? "50%" : `${X}px`,
@@ -230,7 +230,7 @@ const Me = Xt(
230
230
  $opacity: w ? 1 : 0.2,
231
231
  children: [
232
232
  w && !!tt && !!et && q && /* @__PURE__ */ i(
233
- Zt,
233
+ Yt,
234
234
  {
235
235
  containerRef: D,
236
236
  onPublish: tt,
@@ -239,14 +239,14 @@ const Me = Xt(
239
239
  }
240
240
  ),
241
241
  /* @__PURE__ */ L(
242
- fe,
242
+ ue,
243
243
  {
244
- className: zt,
244
+ className: Ft,
245
245
  $dropzoneMinWidth: Rt.width,
246
246
  $dropzoneMinHeight: Rt.height,
247
247
  children: [
248
- Qt && !(x || m || d) && /* @__PURE__ */ i(
249
- ee,
248
+ !(x || m || d) && /* @__PURE__ */ i(
249
+ te,
250
250
  {
251
251
  userType: c,
252
252
  question: n,
@@ -261,16 +261,16 @@ const Me = Xt(
261
261
  worksheetCompleted: g
262
262
  }
263
263
  ),
264
- x && /* @__PURE__ */ i(he, { src: Gt.LESSON_OVERVIEW_BANNER }),
265
- m && C && /* @__PURE__ */ i(re, { paperColor: C }),
266
- d ? /* @__PURE__ */ L(Vt, { children: [
267
- f === "practice-basic" && /* @__PURE__ */ i(ce, {}),
268
- f === "practice-regular" && /* @__PURE__ */ i(se, {}),
269
- f === "exit-ticket" && /* @__PURE__ */ i(ae, {}),
270
- (f == null ? void 0 : f.startsWith("advanced-")) && /* @__PURE__ */ i(ne, {})
264
+ x && /* @__PURE__ */ i(fe, { src: jt.LESSON_OVERVIEW_BANNER }),
265
+ m && C && /* @__PURE__ */ i(ie, { paperColor: C }),
266
+ d ? /* @__PURE__ */ L(Kt, { children: [
267
+ f === "practice-basic" && /* @__PURE__ */ i(ne, {}),
268
+ f === "practice-regular" && /* @__PURE__ */ i(ae, {}),
269
+ f === "exit-ticket" && /* @__PURE__ */ i(ce, {}),
270
+ (f == null ? void 0 : f.startsWith("advanced-")) && /* @__PURE__ */ i(oe, {})
271
271
  ] }) : void 0,
272
272
  /* @__PURE__ */ i(
273
- ie,
273
+ ee,
274
274
  {
275
275
  signedRequest: Ct,
276
276
  appended: a,
@@ -284,8 +284,8 @@ const Me = Xt(
284
284
  onMediaStateChange: yt
285
285
  }
286
286
  ),
287
- !Q && q && Z && J && W !== void 0 && /* @__PURE__ */ i(de, { $canScribble: k, children: /* @__PURE__ */ i(
288
- Yt,
287
+ !Q && q && Z && J && W !== void 0 && /* @__PURE__ */ i(he, { $canScribble: k, children: /* @__PURE__ */ i(
288
+ Gt,
289
289
  {
290
290
  canRender: V,
291
291
  canScribble: k && w,
@@ -293,7 +293,7 @@ const Me = Xt(
293
293
  canvasId: r,
294
294
  width: X,
295
295
  height: Math.max(W, ot ?? 0),
296
- onUpdateHeight: Kt,
296
+ onUpdateHeight: Ut,
297
297
  onPublish: Z,
298
298
  onSubscribe: J,
299
299
  userId: xt,
@@ -302,7 +302,7 @@ const Me = Xt(
302
302
  }
303
303
  ) }),
304
304
  !Q && U && U.length > 0 && /* @__PURE__ */ i(
305
- Ht,
305
+ St,
306
306
  {
307
307
  $background: "BLUE_1",
308
308
  $gutterX: 1,
@@ -310,7 +310,7 @@ const Me = Xt(
310
310
  $borderRadiusX: 0,
311
311
  $borderColor: "BLUE_2",
312
312
  children: U.map((t, s) => /* @__PURE__ */ i(
313
- ge,
313
+ de,
314
314
  {
315
315
  dangerouslySetInnerHTML: {
316
316
  __html: `<span style="color: #DA5107; font-weight: 600;">Hint${((h == null ? void 0 : h.length) ?? 0) > 1 ? ` ${s + 1}` : ""}:</span>&nbsp;${t}`
@@ -320,8 +320,8 @@ const Me = Xt(
320
320
  ))
321
321
  }
322
322
  ),
323
- Dt && /* @__PURE__ */ i(
324
- Ht,
323
+ zt && /* @__PURE__ */ i(
324
+ St,
325
325
  {
326
326
  $background: "YELLOW_1",
327
327
  $gutterX: 1,
@@ -329,7 +329,7 @@ const Me = Xt(
329
329
  $borderRadiusX: 0,
330
330
  $borderColor: "YELLOW_2",
331
331
  children: /* @__PURE__ */ i(
332
- Ee,
332
+ ge,
333
333
  {
334
334
  dangerouslySetInnerHTML: {
335
335
  __html: `<div style="color: #DA5107; font-weight: 600;">Solution:</div>${B}`
@@ -339,7 +339,7 @@ const Me = Xt(
339
339
  }
340
340
  ),
341
341
  !!rt && /* @__PURE__ */ i(
342
- oe,
342
+ re,
343
343
  {
344
344
  responses: At,
345
345
  response: e,
@@ -362,6 +362,6 @@ const Me = Xt(
362
362
  }
363
363
  );
364
364
  export {
365
- Me as default
365
+ Ae as default
366
366
  };
367
367
  //# sourceMappingURL=worksheet-question.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"worksheet-question.js","sources":["../../../../../src/features/worksheet/worksheet/worksheet-question/worksheet-question.tsx"],"sourcesContent":["import type { IWorksheetQuestionProps } from './worksheet-question-types';\n\nimport {\n memo,\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n type FC,\n} from 'react';\n\nimport { IMAGES } from '../../../../assets/images/images';\nimport CueCanvas from '../../../cue-canvas/cue-canvas';\nimport Pointer from '../../../pointer-sync/pointer';\nimport FlexView from '../../../ui/layout/flex-view';\nimport EVENTS from '../../constants/events';\nimport { LEARNOSITY_KEYBOARD_HEIGHT, QUESTIONS_GAP } from '../constants';\nimport {\n getPaperColorByQuestion,\n isConceptIntroWidget,\n scrollToQuestion,\n} from '../worksheet-helpers';\nimport QuestionHeader from './header/header';\nimport LearnosityQuestion from './learnosity-question';\nimport QuestionBackdrop from './question-backdrop/question-backdrop';\nimport SubjectiveQuestionReview from './subjective-review';\nimport AdvancedPracticeIntro from './system-intros/advanced-practice-intro';\nimport BasicPracticeIntro from './system-intros/basic-practice-intro';\nimport ExitTicketIntro from './system-intros/exit-ticket-intro';\nimport RegularPracticeIntro from './system-intros/regular-practice-intro';\nimport * as Styled from './worksheet-question-styled';\n\nconst WorksheetQuestion: FC<IWorksheetQuestionProps> = memo(\n ({\n userType,\n signedRequest,\n worksheetCompleted,\n question,\n response,\n nextQuestionId,\n isActive,\n isHidden,\n canRender,\n loggerRef,\n appended,\n maxQuestionWidth,\n behavior,\n layout,\n actionbarHeight,\n learnosity,\n intersectionObserver,\n background = 'paper',\n onMediaStateChange,\n onMarkForReview,\n userId,\n onPublishStrokes,\n onReceiveStrokes,\n isScribblingEnabled,\n initialStrokesData,\n isCanvasEnabled,\n onPublishMouseMove,\n onSubscribeMouseMove,\n setActiveQuestionId,\n canResolveDoubt,\n onResolveDoubt,\n studentId,\n responses,\n subjectiveProps,\n }) => {\n const paperColor = useMemo(\n () => (background === 'paper' ? getPaperColorByQuestion(question) : undefined),\n [background, question],\n );\n const [questionHeight, setQuestionHeight] = useState<number | undefined>();\n const [canvasHeight, setCanvasHeight] = useState<number | undefined>();\n const {\n validation,\n review,\n maximumAttempts,\n canExceedAttempts,\n teacherValidationEnabled,\n solutionHidden,\n } = behavior;\n const { minQuestionHeight, topOffset, questionsScrollable, renderQuestionHeader } = layout;\n const {\n type: questionType,\n response_id: responseId,\n stimulus_review,\n item_type,\n instructor_stimulus,\n metadata: { hints: hintsAvailable, solution, widget_reference },\n item_reference,\n question_number,\n item_number,\n item_display_number,\n } = question;\n const hasStimulusReview = !!stimulus_review;\n const isLessonOverview = item_type === 'overview';\n const isConceptIntro = isConceptIntroWidget(instructor_stimulus);\n const isSystemIntro = instructor_stimulus === 'SystemIntro';\n const isIntro = isConceptIntro || isSystemIntro;\n const responseEdited = response?.responseEdited;\n const wrapperClasses = useMemo(() => {\n const classes = [];\n\n if (responseEdited && userType === 'TEACHER') {\n classes.push('attempting');\n }\n\n if (!appended) {\n classes.push('hidden');\n }\n\n if (questionType === 'hotspot') {\n classes.push('correct-answers-hidden');\n }\n\n if (appended && teacherValidationEnabled && questionType === 'clozetext') {\n if (!isConceptIntro || userType === 'STUDENT') {\n classes.push('response-hidden');\n } else {\n classes.push('response-code-hidden');\n }\n }\n\n if (isLessonOverview) {\n classes.push('lesson-overview');\n }\n\n if (isConceptIntro) {\n classes.push('concept-intro');\n }\n\n if (isSystemIntro) {\n classes.push('system-intro');\n }\n\n return classes.join(' ');\n }, [\n appended,\n isConceptIntro,\n isLessonOverview,\n isSystemIntro,\n questionType,\n responseEdited,\n teacherValidationEnabled,\n userType,\n ]);\n const overflowDetectedRef = useRef<Record<string, boolean>>({});\n\n const hintsUsed = response?.hintsUsed ?? 0;\n const [validatedByTeacherOnMount] = useState(response?.validatedByTeacher ?? false);\n\n const questionRef = useRef<HTMLDivElement>(null);\n const pointerContainerRef = useRef<HTMLDivElement>(null);\n const hints = useMemo(() => hintsAvailable?.slice(0, hintsUsed), [hintsAvailable, hintsUsed]);\n const validateResponse = useMemo(() => {\n if (userType === 'TEACHER') return true;\n\n if (worksheetCompleted) return true;\n\n if (!response) return false;\n\n if (!response.response) return false;\n\n if (response.responseEdited) return false;\n\n return validation;\n }, [response, userType, validation, worksheetCompleted]);\n\n const showCorrectAnswers = useMemo(() => {\n if (userType === 'TEACHER') return true;\n\n if (review) {\n const { attemptsHistory } = response ?? {};\n const maximumAttemptsReached = (attemptsHistory?.length ?? 0) >= maximumAttempts;\n\n return maximumAttemptsReached && !canExceedAttempts;\n }\n\n return false;\n }, [canExceedAttempts, maximumAttempts, response, review, userType]);\n\n const showSolution = useMemo(\n () => solution && worksheetCompleted && !solutionHidden,\n [solutionHidden, solution, worksheetCompleted],\n );\n\n const [dropZoneDimensions, setDropZoneDimensions] = useState({\n width: 0,\n height: 0,\n });\n\n const onUpdateHeight = useCallback((height: number) => {\n setCanvasHeight(height);\n }, []);\n\n useEffect(() => {\n if (questionRef.current) {\n intersectionObserver.observe(questionRef.current);\n }\n }, [intersectionObserver]);\n\n useEffect(() => {\n if (\n appended &&\n (question.type === 'clozeassociation' ||\n question.type === 'association' ||\n question.type === 'clozeformula')\n ) {\n const draggableElements = document.querySelectorAll(\n `.widget-${question.response_id} .lrn_draggable`,\n );\n\n let minWidth = 0;\n let minHeight = 0;\n\n draggableElements.forEach(draggableElement => {\n minWidth = Math.max(minWidth, draggableElement.clientWidth + 33);\n minHeight = Math.max(minHeight, draggableElement.clientHeight + 1);\n });\n\n setDropZoneDimensions({\n width: question.type !== 'association' ? minWidth : 0,\n height: minHeight,\n });\n }\n }, [appended, question.response_id, question.type]);\n\n useEffect(() => {\n if (appended && validateResponse) {\n const learnosityQuestion = learnosity.question(responseId);\n\n if (learnosityQuestion) {\n learnosityQuestion.validate({\n showCorrectAnswers,\n });\n }\n }\n }, [appended, learnosity, responseId, review, showCorrectAnswers, userType, validateResponse]);\n\n useEffect(() => {\n const $questionEl = pointerContainerRef.current;\n\n if (\n appended &&\n $questionEl &&\n loggerRef.current &&\n overflowDetectedRef.current[responseId] === undefined &&\n !isConceptIntro &&\n !isSystemIntro\n ) {\n const parentWidth = $questionEl.clientWidth;\n const nestedElements = $questionEl.querySelectorAll('*');\n\n for (let i = 0; i < nestedElements.length; i++) {\n const element = nestedElements[i];\n\n if (element?.closest('.resize-sensor')) {\n continue;\n }\n\n const elementWidth = element?.clientWidth ?? 0;\n\n if (elementWidth > parentWidth) {\n overflowDetectedRef.current[responseId] = true;\n loggerRef.current(EVENTS.WORKSHEET_V3_GREATER_WIDTH_ELEMENT, {\n item_reference,\n widget_reference,\n question_type: questionType,\n question_number,\n responseId,\n item_number,\n item_display_number,\n });\n break;\n }\n }\n\n overflowDetectedRef.current[responseId] = false;\n }\n }, [\n appended,\n isConceptIntro,\n isSystemIntro,\n item_display_number,\n item_number,\n item_reference,\n loggerRef,\n questionType,\n question_number,\n responseId,\n widget_reference,\n ]);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => {\n const $questionEl = questionRef.current;\n\n const getExtraSpaceNeedForFloatingKeyboard = (questionEl: HTMLDivElement) => {\n const $responseWrapper = questionEl.querySelector('.lrn_response_wrapper');\n\n if (isIntro || !$responseWrapper) {\n return 0;\n }\n\n const questionBottom = questionEl.getBoundingClientRect().bottom;\n const responseWrapperBottom = $responseWrapper.getBoundingClientRect().bottom;\n const spaceFromResponseToBottom = Math.abs(questionBottom - responseWrapperBottom);\n\n if (spaceFromResponseToBottom < LEARNOSITY_KEYBOARD_HEIGHT) {\n return LEARNOSITY_KEYBOARD_HEIGHT - spaceFromResponseToBottom;\n }\n\n return 0;\n };\n\n if (appended && $questionEl) {\n setQuestionHeight(qHeight => {\n const hasFloatingKeyboard = question.ui_style?.type === 'floating-keyboard';\n const v3CodeHidden = teacherValidationEnabled && questionType === 'clozetext';\n const hasKeyboard = hasFloatingKeyboard && !v3CodeHidden;\n const height = $questionEl.clientHeight;\n\n if (height === 0) {\n return qHeight;\n }\n\n // If the question has a floating keyboard, we need to add the height of the keyboard to the question height\n if (!qHeight) {\n return Math.ceil(\n height + (hasKeyboard ? getExtraSpaceNeedForFloatingKeyboard($questionEl) : 0),\n );\n }\n\n const newQuestionHeight = Math.ceil(\n height + (hasKeyboard ? getExtraSpaceNeedForFloatingKeyboard($questionEl) : 0),\n );\n\n if (Math.abs(newQuestionHeight - qHeight) > 4) {\n return newQuestionHeight;\n }\n\n return qHeight;\n });\n }\n\n //Dirty fix to render mathjax\n if (hintsUsed || hasStimulusReview || (solution && worksheetCompleted)) {\n learnosity.renderMath('mathjax');\n }\n });\n\n useLayoutEffect(() => {\n if (!questionsScrollable && !isHidden) {\n scrollToQuestion(responseId);\n }\n }, [isHidden, questionsScrollable, responseId, topOffset]);\n\n useEffect(() => {\n if (\n teacherValidationEnabled &&\n nextQuestionId &&\n !validatedByTeacherOnMount &&\n response?.validatedByTeacher\n ) {\n const timer = setTimeout(() => {\n if (questionsScrollable) {\n scrollToQuestion(nextQuestionId);\n } else {\n setActiveQuestionId(nextQuestionId);\n }\n }, 1000);\n\n return () => {\n clearTimeout(timer);\n };\n }\n }, [\n nextQuestionId,\n teacherValidationEnabled,\n validatedByTeacherOnMount,\n questionsScrollable,\n setActiveQuestionId,\n response?.validatedByTeacher,\n ]);\n\n return (\n <Styled.QuestionContainerWrapper\n data-response-id={responseId}\n className={`widget-${responseId}`}\n ref={questionRef}\n $topOffset={topOffset}\n $flexDirection={stimulus_review ? 'row' : 'column'}\n $alignItems={stimulus_review ? 'flex-start' : 'center'}\n $hidden={isHidden}\n $marginBottom={QUESTIONS_GAP}\n >\n {stimulus_review && (\n <Styled.StimulusReview\n dangerouslySetInnerHTML={{\n __html: stimulus_review,\n }}\n />\n )}\n <Styled.QuestionContainer\n ref={pointerContainerRef}\n $width={stimulus_review ? '50%' : `${maxQuestionWidth}px`}\n $minHeight={\n questionHeight ? Math.max(questionHeight - 72, canvasHeight ?? 0) : minQuestionHeight\n }\n $isActive={isActive}\n $paperColor={paperColor}\n $opacity={isActive ? 1 : 0.2}\n >\n {isActive && !!onPublishMouseMove && !!onSubscribeMouseMove && isCanvasEnabled && (\n <Pointer\n containerRef={pointerContainerRef}\n onPublish={onPublishMouseMove}\n onSubscribe={onSubscribeMouseMove}\n responseId={responseId}\n />\n )}\n <Styled.QuestionWrapper\n className={wrapperClasses}\n $dropzoneMinWidth={dropZoneDimensions.width}\n $dropzoneMinHeight={dropZoneDimensions.height}\n >\n {renderQuestionHeader && !(isLessonOverview || isConceptIntro || isSystemIntro) && (\n <QuestionHeader\n userType={userType}\n question={question}\n response={response}\n behavior={behavior}\n layout={layout}\n paperColor={paperColor}\n onMarkForReview={onMarkForReview}\n actionbarHeight={actionbarHeight}\n canResolveDoubt={canResolveDoubt}\n onResolveDoubt={onResolveDoubt}\n worksheetCompleted={worksheetCompleted}\n />\n )}\n {isLessonOverview && (\n <Styled.LessonOverviewBanner src={IMAGES.LESSON_OVERVIEW_BANNER} />\n )}\n {isConceptIntro && paperColor && <QuestionBackdrop paperColor={paperColor} />}\n {isSystemIntro ? (\n <>\n {item_type === 'practice-basic' && <BasicPracticeIntro />}\n {item_type === 'practice-regular' && <RegularPracticeIntro />}\n {item_type === 'exit-ticket' && <ExitTicketIntro />}\n {item_type?.startsWith('advanced-') && <AdvancedPracticeIntro />}\n </>\n ) : undefined}\n <LearnosityQuestion\n signedRequest={signedRequest}\n appended={appended}\n question={question}\n response={response?.response}\n canRender={canRender || isActive}\n learnosity={learnosity}\n canForceAppend={userType === 'TEACHER'}\n isConceptIntro={isConceptIntro}\n simState={response?.simState}\n onMediaStateChange={onMediaStateChange}\n />\n\n {!isIntro &&\n isCanvasEnabled &&\n onPublishStrokes &&\n onReceiveStrokes &&\n questionHeight !== undefined && (\n <Styled.CueCanvasWrapper $canScribble={isScribblingEnabled}>\n <CueCanvas\n canRender={canRender}\n canScribble={isScribblingEnabled && isActive}\n appended={appended}\n canvasId={responseId}\n width={maxQuestionWidth}\n height={Math.max(questionHeight, canvasHeight ?? 0)}\n onUpdateHeight={onUpdateHeight}\n onPublish={onPublishStrokes}\n onSubscribe={onReceiveStrokes}\n userId={userId}\n initialData={initialStrokesData?.[responseId]}\n userType={userType}\n />\n </Styled.CueCanvasWrapper>\n )}\n {!isIntro && hints && hints.length > 0 && (\n <FlexView\n $background=\"BLUE_1\"\n $gutterX={1}\n $gapX={0.5}\n $borderRadiusX={0}\n $borderColor=\"BLUE_2\"\n >\n {hints.map((hint, index) => (\n <Styled.Hint\n key={hint}\n dangerouslySetInnerHTML={{\n __html: `<span style=\"color: #DA5107; font-weight: 600;\">Hint${\n (hintsAvailable?.length ?? 0) > 1 ? ` ${index + 1}` : ''\n }:</span>&nbsp;${hint}`,\n }}\n />\n ))}\n </FlexView>\n )}\n {showSolution && (\n <FlexView\n $background=\"YELLOW_1\"\n $gutterX={1}\n $gapX={0.875}\n $borderRadiusX={0}\n $borderColor=\"YELLOW_2\"\n >\n <Styled.Solution\n dangerouslySetInnerHTML={{\n __html: `<div style=\"color: #DA5107; font-weight: 600;\">Solution:</div>${solution}`,\n }}\n />\n </FlexView>\n )}\n {!!subjectiveProps && (\n <SubjectiveQuestionReview\n responses={responses}\n response={response}\n nextQuestionId={nextQuestionId}\n responseId={responseId}\n studentId={studentId}\n userType={userType}\n {...subjectiveProps}\n />\n )}\n </Styled.QuestionWrapper>\n </Styled.QuestionContainer>\n </Styled.QuestionContainerWrapper>\n );\n },\n);\n\nexport default WorksheetQuestion;\n"],"names":["WorksheetQuestion","memo","userType","signedRequest","worksheetCompleted","question","response","nextQuestionId","isActive","isHidden","canRender","loggerRef","appended","maxQuestionWidth","behavior","layout","actionbarHeight","learnosity","intersectionObserver","background","onMediaStateChange","onMarkForReview","userId","onPublishStrokes","onReceiveStrokes","isScribblingEnabled","initialStrokesData","isCanvasEnabled","onPublishMouseMove","onSubscribeMouseMove","setActiveQuestionId","canResolveDoubt","onResolveDoubt","studentId","responses","subjectiveProps","paperColor","useMemo","getPaperColorByQuestion","questionHeight","setQuestionHeight","useState","canvasHeight","setCanvasHeight","validation","review","maximumAttempts","canExceedAttempts","teacherValidationEnabled","solutionHidden","minQuestionHeight","topOffset","questionsScrollable","renderQuestionHeader","questionType","responseId","stimulus_review","item_type","instructor_stimulus","hintsAvailable","solution","widget_reference","item_reference","question_number","item_number","item_display_number","hasStimulusReview","isLessonOverview","isConceptIntro","isConceptIntroWidget","isSystemIntro","isIntro","responseEdited","wrapperClasses","classes","overflowDetectedRef","useRef","hintsUsed","validatedByTeacherOnMount","questionRef","pointerContainerRef","hints","validateResponse","showCorrectAnswers","attemptsHistory","showSolution","dropZoneDimensions","setDropZoneDimensions","onUpdateHeight","useCallback","height","useEffect","draggableElements","minWidth","minHeight","draggableElement","learnosityQuestion","$questionEl","parentWidth","nestedElements","i","element","EVENTS","getExtraSpaceNeedForFloatingKeyboard","questionEl","$responseWrapper","questionBottom","responseWrapperBottom","spaceFromResponseToBottom","LEARNOSITY_KEYBOARD_HEIGHT","qHeight","hasKeyboard","_a","newQuestionHeight","useLayoutEffect","scrollToQuestion","timer","jsxs","Styled.QuestionContainerWrapper","QUESTIONS_GAP","jsx","Styled.StimulusReview","Styled.QuestionContainer","Pointer","Styled.QuestionWrapper","QuestionHeader","Styled.LessonOverviewBanner","IMAGES","QuestionBackdrop","Fragment","BasicPracticeIntro","RegularPracticeIntro","ExitTicketIntro","AdvancedPracticeIntro","LearnosityQuestion","Styled.CueCanvasWrapper","CueCanvas","FlexView","hint","index","Styled.Hint","Styled.Solution","SubjectiveQuestionReview"],"mappings":"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"}
1
+ {"version":3,"file":"worksheet-question.js","sources":["../../../../../src/features/worksheet/worksheet/worksheet-question/worksheet-question.tsx"],"sourcesContent":["import type { IWorksheetQuestionProps } from './worksheet-question-types';\n\nimport {\n memo,\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n type FC,\n} from 'react';\n\nimport { IMAGES } from '../../../../assets/images/images';\nimport CueCanvas from '../../../cue-canvas/cue-canvas';\nimport Pointer from '../../../pointer-sync/pointer';\nimport FlexView from '../../../ui/layout/flex-view';\nimport EVENTS from '../../constants/events';\nimport { LEARNOSITY_KEYBOARD_HEIGHT, QUESTIONS_GAP } from '../constants';\nimport {\n getPaperColorByQuestion,\n isConceptIntroWidget,\n scrollToQuestion,\n} from '../worksheet-helpers';\nimport QuestionHeader from './header/header';\nimport LearnosityQuestion from './learnosity-question';\nimport QuestionBackdrop from './question-backdrop/question-backdrop';\nimport SubjectiveQuestionReview from './subjective-review';\nimport AdvancedPracticeIntro from './system-intros/advanced-practice-intro';\nimport BasicPracticeIntro from './system-intros/basic-practice-intro';\nimport ExitTicketIntro from './system-intros/exit-ticket-intro';\nimport RegularPracticeIntro from './system-intros/regular-practice-intro';\nimport * as Styled from './worksheet-question-styled';\n\nconst WorksheetQuestion: FC<IWorksheetQuestionProps> = memo(\n ({\n userType,\n signedRequest,\n worksheetCompleted,\n question,\n response,\n nextQuestionId,\n isActive,\n isHidden,\n canRender,\n loggerRef,\n appended,\n maxQuestionWidth,\n behavior,\n layout,\n actionbarHeight,\n learnosity,\n intersectionObserver,\n background = 'paper',\n onMediaStateChange,\n onMarkForReview,\n userId,\n onPublishStrokes,\n onReceiveStrokes,\n isScribblingEnabled,\n initialStrokesData,\n isCanvasEnabled,\n onPublishMouseMove,\n onSubscribeMouseMove,\n setActiveQuestionId,\n canResolveDoubt,\n onResolveDoubt,\n studentId,\n responses,\n subjectiveProps,\n }) => {\n const paperColor = useMemo(\n () => (background === 'paper' ? getPaperColorByQuestion(question) : undefined),\n [background, question],\n );\n const [questionHeight, setQuestionHeight] = useState<number | undefined>();\n const [canvasHeight, setCanvasHeight] = useState<number | undefined>();\n const {\n validation,\n review,\n maximumAttempts,\n canExceedAttempts,\n teacherValidationEnabled,\n solutionHidden,\n } = behavior;\n const { minQuestionHeight, topOffset, questionsScrollable } = layout;\n const {\n type: questionType,\n response_id: responseId,\n stimulus_review,\n item_type,\n instructor_stimulus,\n metadata: { hints: hintsAvailable, solution, widget_reference },\n item_reference,\n question_number,\n item_number,\n item_display_number,\n } = question;\n const hasStimulusReview = !!stimulus_review;\n const isLessonOverview = item_type === 'overview';\n const isConceptIntro = isConceptIntroWidget(instructor_stimulus);\n const isSystemIntro = instructor_stimulus === 'SystemIntro';\n const isIntro = isConceptIntro || isSystemIntro;\n const responseEdited = response?.responseEdited;\n const wrapperClasses = useMemo(() => {\n const classes = [];\n\n if (responseEdited && userType === 'TEACHER') {\n classes.push('attempting');\n }\n\n if (!appended) {\n classes.push('hidden');\n }\n\n if (questionType === 'hotspot') {\n classes.push('correct-answers-hidden');\n }\n\n if (appended && teacherValidationEnabled && questionType === 'clozetext') {\n if (!isConceptIntro || userType === 'STUDENT') {\n classes.push('response-hidden');\n } else {\n classes.push('response-code-hidden');\n }\n }\n\n if (isLessonOverview) {\n classes.push('lesson-overview');\n }\n\n if (isConceptIntro) {\n classes.push('concept-intro');\n }\n\n if (isSystemIntro) {\n classes.push('system-intro');\n }\n\n return classes.join(' ');\n }, [\n appended,\n isConceptIntro,\n isLessonOverview,\n isSystemIntro,\n questionType,\n responseEdited,\n teacherValidationEnabled,\n userType,\n ]);\n const overflowDetectedRef = useRef<Record<string, boolean>>({});\n\n const hintsUsed = response?.hintsUsed ?? 0;\n const [validatedByTeacherOnMount] = useState(response?.validatedByTeacher ?? false);\n\n const questionRef = useRef<HTMLDivElement>(null);\n const pointerContainerRef = useRef<HTMLDivElement>(null);\n const hints = useMemo(() => hintsAvailable?.slice(0, hintsUsed), [hintsAvailable, hintsUsed]);\n const validateResponse = useMemo(() => {\n if (userType === 'TEACHER') return true;\n\n if (worksheetCompleted) return true;\n\n if (!response) return false;\n\n if (!response.response) return false;\n\n if (response.responseEdited) return false;\n\n return validation;\n }, [response, userType, validation, worksheetCompleted]);\n\n const showCorrectAnswers = useMemo(() => {\n if (userType === 'TEACHER') return true;\n\n if (review) {\n const { attemptsHistory } = response ?? {};\n const maximumAttemptsReached = (attemptsHistory?.length ?? 0) >= maximumAttempts;\n\n return maximumAttemptsReached && !canExceedAttempts;\n }\n\n return false;\n }, [canExceedAttempts, maximumAttempts, response, review, userType]);\n\n const showSolution = useMemo(\n () => solution && worksheetCompleted && !solutionHidden,\n [solutionHidden, solution, worksheetCompleted],\n );\n\n const [dropZoneDimensions, setDropZoneDimensions] = useState({\n width: 0,\n height: 0,\n });\n\n const onUpdateHeight = useCallback((height: number) => {\n setCanvasHeight(height);\n }, []);\n\n useEffect(() => {\n if (questionRef.current) {\n intersectionObserver.observe(questionRef.current);\n }\n }, [intersectionObserver]);\n\n useEffect(() => {\n if (\n appended &&\n (question.type === 'clozeassociation' ||\n question.type === 'association' ||\n question.type === 'clozeformula')\n ) {\n const draggableElements = document.querySelectorAll(\n `.widget-${question.response_id} .lrn_draggable`,\n );\n\n let minWidth = 0;\n let minHeight = 0;\n\n draggableElements.forEach(draggableElement => {\n minWidth = Math.max(minWidth, draggableElement.clientWidth + 33);\n minHeight = Math.max(minHeight, draggableElement.clientHeight + 1);\n });\n\n setDropZoneDimensions({\n width: question.type !== 'association' ? minWidth : 0,\n height: minHeight,\n });\n }\n }, [appended, question.response_id, question.type]);\n\n useEffect(() => {\n if (appended && validateResponse) {\n const learnosityQuestion = learnosity.question(responseId);\n\n if (learnosityQuestion) {\n learnosityQuestion.validate({\n showCorrectAnswers,\n });\n }\n }\n }, [appended, learnosity, responseId, review, showCorrectAnswers, userType, validateResponse]);\n\n useEffect(() => {\n const $questionEl = pointerContainerRef.current;\n\n if (\n appended &&\n $questionEl &&\n loggerRef.current &&\n overflowDetectedRef.current[responseId] === undefined &&\n !isConceptIntro &&\n !isSystemIntro\n ) {\n const parentWidth = $questionEl.clientWidth;\n const nestedElements = $questionEl.querySelectorAll('*');\n\n for (let i = 0; i < nestedElements.length; i++) {\n const element = nestedElements[i];\n\n if (element?.closest('.resize-sensor')) {\n continue;\n }\n\n const elementWidth = element?.clientWidth ?? 0;\n\n if (elementWidth > parentWidth) {\n overflowDetectedRef.current[responseId] = true;\n loggerRef.current(EVENTS.WORKSHEET_V3_GREATER_WIDTH_ELEMENT, {\n item_reference,\n widget_reference,\n question_type: questionType,\n question_number,\n responseId,\n item_number,\n item_display_number,\n });\n break;\n }\n }\n\n overflowDetectedRef.current[responseId] = false;\n }\n }, [\n appended,\n isConceptIntro,\n isSystemIntro,\n item_display_number,\n item_number,\n item_reference,\n loggerRef,\n questionType,\n question_number,\n responseId,\n widget_reference,\n ]);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => {\n const $questionEl = questionRef.current;\n\n const getExtraSpaceNeedForFloatingKeyboard = (questionEl: HTMLDivElement) => {\n const $responseWrapper = questionEl.querySelector('.lrn_response_wrapper');\n\n if (isIntro || !$responseWrapper) {\n return 0;\n }\n\n const questionBottom = questionEl.getBoundingClientRect().bottom;\n const responseWrapperBottom = $responseWrapper.getBoundingClientRect().bottom;\n const spaceFromResponseToBottom = Math.abs(questionBottom - responseWrapperBottom);\n\n if (spaceFromResponseToBottom < LEARNOSITY_KEYBOARD_HEIGHT) {\n return LEARNOSITY_KEYBOARD_HEIGHT - spaceFromResponseToBottom;\n }\n\n return 0;\n };\n\n if (appended && $questionEl) {\n setQuestionHeight(qHeight => {\n const hasFloatingKeyboard = question.ui_style?.type === 'floating-keyboard';\n const v3CodeHidden = teacherValidationEnabled && questionType === 'clozetext';\n const hasKeyboard = hasFloatingKeyboard && !v3CodeHidden;\n const height = $questionEl.clientHeight;\n\n if (height === 0) {\n return qHeight;\n }\n\n // If the question has a floating keyboard, we need to add the height of the keyboard to the question height\n if (!qHeight) {\n return Math.ceil(\n height + (hasKeyboard ? getExtraSpaceNeedForFloatingKeyboard($questionEl) : 0),\n );\n }\n\n const newQuestionHeight = Math.ceil(\n height + (hasKeyboard ? getExtraSpaceNeedForFloatingKeyboard($questionEl) : 0),\n );\n\n if (Math.abs(newQuestionHeight - qHeight) > 4) {\n return newQuestionHeight;\n }\n\n return qHeight;\n });\n }\n\n //Dirty fix to render mathjax\n if (hintsUsed || hasStimulusReview || (solution && worksheetCompleted)) {\n learnosity.renderMath('mathjax');\n }\n });\n\n useLayoutEffect(() => {\n if (!questionsScrollable && !isHidden) {\n scrollToQuestion(responseId);\n }\n }, [isHidden, questionsScrollable, responseId, topOffset]);\n\n useEffect(() => {\n if (\n teacherValidationEnabled &&\n nextQuestionId &&\n !validatedByTeacherOnMount &&\n response?.validatedByTeacher\n ) {\n const timer = setTimeout(() => {\n if (questionsScrollable) {\n scrollToQuestion(nextQuestionId);\n } else {\n setActiveQuestionId(nextQuestionId);\n }\n }, 1000);\n\n return () => {\n clearTimeout(timer);\n };\n }\n }, [\n nextQuestionId,\n teacherValidationEnabled,\n validatedByTeacherOnMount,\n questionsScrollable,\n setActiveQuestionId,\n response?.validatedByTeacher,\n ]);\n\n return (\n <Styled.QuestionContainerWrapper\n data-response-id={responseId}\n className={`widget-${responseId}`}\n ref={questionRef}\n $topOffset={topOffset}\n $flexDirection={stimulus_review ? 'row' : 'column'}\n $alignItems={stimulus_review ? 'flex-start' : 'center'}\n $hidden={isHidden}\n $marginBottom={QUESTIONS_GAP}\n >\n {stimulus_review && (\n <Styled.StimulusReview\n dangerouslySetInnerHTML={{\n __html: stimulus_review,\n }}\n />\n )}\n <Styled.QuestionContainer\n ref={pointerContainerRef}\n $width={stimulus_review ? '50%' : `${maxQuestionWidth}px`}\n $minHeight={\n questionHeight ? Math.max(questionHeight - 72, canvasHeight ?? 0) : minQuestionHeight\n }\n $isActive={isActive}\n $paperColor={paperColor}\n $opacity={isActive ? 1 : 0.2}\n >\n {isActive && !!onPublishMouseMove && !!onSubscribeMouseMove && isCanvasEnabled && (\n <Pointer\n containerRef={pointerContainerRef}\n onPublish={onPublishMouseMove}\n onSubscribe={onSubscribeMouseMove}\n responseId={responseId}\n />\n )}\n <Styled.QuestionWrapper\n className={wrapperClasses}\n $dropzoneMinWidth={dropZoneDimensions.width}\n $dropzoneMinHeight={dropZoneDimensions.height}\n >\n {!(isLessonOverview || isConceptIntro || isSystemIntro) && (\n <QuestionHeader\n userType={userType}\n question={question}\n response={response}\n behavior={behavior}\n layout={layout}\n paperColor={paperColor}\n onMarkForReview={onMarkForReview}\n actionbarHeight={actionbarHeight}\n canResolveDoubt={canResolveDoubt}\n onResolveDoubt={onResolveDoubt}\n worksheetCompleted={worksheetCompleted}\n />\n )}\n {isLessonOverview && (\n <Styled.LessonOverviewBanner src={IMAGES.LESSON_OVERVIEW_BANNER} />\n )}\n {isConceptIntro && paperColor && <QuestionBackdrop paperColor={paperColor} />}\n {isSystemIntro ? (\n <>\n {item_type === 'practice-basic' && <BasicPracticeIntro />}\n {item_type === 'practice-regular' && <RegularPracticeIntro />}\n {item_type === 'exit-ticket' && <ExitTicketIntro />}\n {item_type?.startsWith('advanced-') && <AdvancedPracticeIntro />}\n </>\n ) : undefined}\n <LearnosityQuestion\n signedRequest={signedRequest}\n appended={appended}\n question={question}\n response={response?.response}\n canRender={canRender || isActive}\n learnosity={learnosity}\n canForceAppend={userType === 'TEACHER'}\n isConceptIntro={isConceptIntro}\n simState={response?.simState}\n onMediaStateChange={onMediaStateChange}\n />\n\n {!isIntro &&\n isCanvasEnabled &&\n onPublishStrokes &&\n onReceiveStrokes &&\n questionHeight !== undefined && (\n <Styled.CueCanvasWrapper $canScribble={isScribblingEnabled}>\n <CueCanvas\n canRender={canRender}\n canScribble={isScribblingEnabled && isActive}\n appended={appended}\n canvasId={responseId}\n width={maxQuestionWidth}\n height={Math.max(questionHeight, canvasHeight ?? 0)}\n onUpdateHeight={onUpdateHeight}\n onPublish={onPublishStrokes}\n onSubscribe={onReceiveStrokes}\n userId={userId}\n initialData={initialStrokesData?.[responseId]}\n userType={userType}\n />\n </Styled.CueCanvasWrapper>\n )}\n {!isIntro && hints && hints.length > 0 && (\n <FlexView\n $background=\"BLUE_1\"\n $gutterX={1}\n $gapX={0.5}\n $borderRadiusX={0}\n $borderColor=\"BLUE_2\"\n >\n {hints.map((hint, index) => (\n <Styled.Hint\n key={hint}\n dangerouslySetInnerHTML={{\n __html: `<span style=\"color: #DA5107; font-weight: 600;\">Hint${\n (hintsAvailable?.length ?? 0) > 1 ? ` ${index + 1}` : ''\n }:</span>&nbsp;${hint}`,\n }}\n />\n ))}\n </FlexView>\n )}\n {showSolution && (\n <FlexView\n $background=\"YELLOW_1\"\n $gutterX={1}\n $gapX={0.875}\n $borderRadiusX={0}\n $borderColor=\"YELLOW_2\"\n >\n <Styled.Solution\n dangerouslySetInnerHTML={{\n __html: `<div style=\"color: #DA5107; font-weight: 600;\">Solution:</div>${solution}`,\n }}\n />\n </FlexView>\n )}\n {!!subjectiveProps && (\n <SubjectiveQuestionReview\n responses={responses}\n response={response}\n nextQuestionId={nextQuestionId}\n responseId={responseId}\n studentId={studentId}\n userType={userType}\n {...subjectiveProps}\n />\n )}\n </Styled.QuestionWrapper>\n </Styled.QuestionContainer>\n </Styled.QuestionContainerWrapper>\n );\n },\n);\n\nexport default WorksheetQuestion;\n"],"names":["WorksheetQuestion","memo","userType","signedRequest","worksheetCompleted","question","response","nextQuestionId","isActive","isHidden","canRender","loggerRef","appended","maxQuestionWidth","behavior","layout","actionbarHeight","learnosity","intersectionObserver","background","onMediaStateChange","onMarkForReview","userId","onPublishStrokes","onReceiveStrokes","isScribblingEnabled","initialStrokesData","isCanvasEnabled","onPublishMouseMove","onSubscribeMouseMove","setActiveQuestionId","canResolveDoubt","onResolveDoubt","studentId","responses","subjectiveProps","paperColor","useMemo","getPaperColorByQuestion","questionHeight","setQuestionHeight","useState","canvasHeight","setCanvasHeight","validation","review","maximumAttempts","canExceedAttempts","teacherValidationEnabled","solutionHidden","minQuestionHeight","topOffset","questionsScrollable","questionType","responseId","stimulus_review","item_type","instructor_stimulus","hintsAvailable","solution","widget_reference","item_reference","question_number","item_number","item_display_number","hasStimulusReview","isLessonOverview","isConceptIntro","isConceptIntroWidget","isSystemIntro","isIntro","responseEdited","wrapperClasses","classes","overflowDetectedRef","useRef","hintsUsed","validatedByTeacherOnMount","questionRef","pointerContainerRef","hints","validateResponse","showCorrectAnswers","attemptsHistory","showSolution","dropZoneDimensions","setDropZoneDimensions","onUpdateHeight","useCallback","height","useEffect","draggableElements","minWidth","minHeight","draggableElement","learnosityQuestion","$questionEl","parentWidth","nestedElements","i","element","EVENTS","getExtraSpaceNeedForFloatingKeyboard","questionEl","$responseWrapper","questionBottom","responseWrapperBottom","spaceFromResponseToBottom","LEARNOSITY_KEYBOARD_HEIGHT","qHeight","hasKeyboard","_a","newQuestionHeight","useLayoutEffect","scrollToQuestion","timer","jsxs","Styled.QuestionContainerWrapper","QUESTIONS_GAP","jsx","Styled.StimulusReview","Styled.QuestionContainer","Pointer","Styled.QuestionWrapper","QuestionHeader","Styled.LessonOverviewBanner","IMAGES","QuestionBackdrop","Fragment","BasicPracticeIntro","RegularPracticeIntro","ExitTicketIntro","AdvancedPracticeIntro","LearnosityQuestion","Styled.CueCanvasWrapper","CueCanvas","FlexView","hint","index","Styled.Hint","Styled.Solution","SubjectiveQuestionReview"],"mappings":"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"}