@cuemath/leap 2.8.24 → 2.8.25-asg2

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.
@@ -29,7 +29,8 @@ const _ = {
29
29
  MATHJAX_SCRIPT_FAILED: "mathjax_script_failed",
30
30
  WORKSHEET_V3_SCRIBBLE_TOGGLE: "worksheet_v3_scribble_toggled",
31
31
  WORKSHEET_V3_HINT_SEEN: "worksheet_v3_hint_seen",
32
- WORKSHEET_V3_SOLUTION_SEEN: "worksheet_v3_solution_seen"
32
+ WORKSHEET_V3_SOLUTION_SEEN: "worksheet_v3_solution_seen",
33
+ WORKSHEET_V3_GREATER_WIDTH_ELEMENT: "worksheet_v3_greater_width_element"
33
34
  };
34
35
  export {
35
36
  _ as default
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sources":["../../../../src/features/worksheet/constants/events.ts"],"sourcesContent":["const EVENTS = {\n WORKSHEET_V3_SCRIPT_LOADING: 'worksheet_v3_script_loading',\n WORKSHEET_V3_SCRIPT_LOADED: 'worksheet_v3_script_loaded',\n WORKSHEET_V3_SCRIPT_FAILED: 'worksheet_v3_script_failed',\n\n WORKSHEET_V3_SCRIPT_FALLBACK_LOADING: 'worksheet_v3_script_fallback_loading',\n WORKSHEET_V3_SCRIPT_FALLBACK_LOADED: 'worksheet_v3_script_fallback_loaded',\n WORKSHEET_V3_SCRIPT_FALLBACK_FAILED: 'worksheet_v3_script_fallback_failed',\n\n WORKSHEET_V3_SCRIPT_READY: 'worksheet_v3_script_ready',\n\n WORKSHEET_V3_ITEMS_LOADING: 'worksheet_v3_items_loading',\n WORKSHEET_V3_ITEMS_LOADED: 'worksheet_v3_items_loaded',\n WORKSHEET_V3_ITEMS_FAILED: 'worksheet_v3_items_failed',\n\n WORKSHEET_V3_ATTEMPT_RESPONSES_LOADING: 'worksheet_v3_attempt_responses_loading',\n WORKSHEET_V3_ATTEMPT_RESPONSES_LOADED: 'worksheet_v3_attempt_responses_loaded',\n WORKSHEET_V3_ATTEMPT_RESPONSES_FAILED: 'worksheet_v3_attempt_responses_failed',\n\n WORKSHHEET_V3_LEANROSITY_INITIALIZING: 'worksheet_v3_learnosity_initializing',\n WORKSHEET_V3_LEARNOSITY_INITIALIZED: 'worksheet_v3_learnosity_initialized',\n WORKSHEET_V3_LEARNOSITY_FAILED: 'worksheet_v3_learnosity_failed',\n\n WORKSHEET_V3_READY: 'worksheet_v3_ready',\n\n WORKSHEET_V3_QUESTION_APPENDING_QUEUED: 'worksheet_v3_question_appending_queued',\n WORKSHEET_V3_QUESTION_APPENDING: 'worksheet_v3_question_appending',\n WORKSHEET_V3_QUESTION_APPENDED: 'worksheet_v3_question_appended',\n\n WORKSHEET_V3_FIRST_QUESTION_APPENDED: 'worksheet_v3_first_question_appended',\n\n WORKSHEET_V3_QUESTION_MISSING_VALIDATION: 'worksheet_v3_question_missing_validation',\n\n MATHJAX_COMPILE_ERROR: 'mathjax_compile_error',\n MATHJAX_TYPESET_ERROR: 'mathjax_typeset_error',\n MATHJAX_FORMAT_ERROR: 'mathjax_format_error',\n\n MATHJAX_SCRIPT_LOADING: 'mathjax_script_loading',\n MATHJAX_SCRIPT_LOADED: 'mathjax_script_loaded',\n MATHJAX_SCRIPT_FAILED: 'mathjax_script_failed',\n\n WORKSHEET_V3_SCRIBBLE_TOGGLE: 'worksheet_v3_scribble_toggled',\n WORKSHEET_V3_HINT_SEEN: 'worksheet_v3_hint_seen',\n WORKSHEET_V3_SOLUTION_SEEN: 'worksheet_v3_solution_seen',\n};\n\nexport default EVENTS;\n"],"names":["EVENTS"],"mappings":"AAAA,MAAMA,IAAS;AAAA,EACb,6BAA6B;AAAA,EAC7B,4BAA4B;AAAA,EAC5B,4BAA4B;AAAA,EAE5B,sCAAsC;AAAA,EACtC,qCAAqC;AAAA,EACrC,qCAAqC;AAAA,EAErC,2BAA2B;AAAA,EAE3B,4BAA4B;AAAA,EAC5B,2BAA2B;AAAA,EAC3B,2BAA2B;AAAA,EAE3B,wCAAwC;AAAA,EACxC,uCAAuC;AAAA,EACvC,uCAAuC;AAAA,EAEvC,uCAAuC;AAAA,EACvC,qCAAqC;AAAA,EACrC,gCAAgC;AAAA,EAEhC,oBAAoB;AAAA,EAEpB,wCAAwC;AAAA,EACxC,iCAAiC;AAAA,EACjC,gCAAgC;AAAA,EAEhC,sCAAsC;AAAA,EAEtC,0CAA0C;AAAA,EAE1C,uBAAuB;AAAA,EACvB,uBAAuB;AAAA,EACvB,sBAAsB;AAAA,EAEtB,wBAAwB;AAAA,EACxB,uBAAuB;AAAA,EACvB,uBAAuB;AAAA,EAEvB,8BAA8B;AAAA,EAC9B,wBAAwB;AAAA,EACxB,4BAA4B;AAC9B;"}
1
+ {"version":3,"file":"events.js","sources":["../../../../src/features/worksheet/constants/events.ts"],"sourcesContent":["const EVENTS = {\n WORKSHEET_V3_SCRIPT_LOADING: 'worksheet_v3_script_loading',\n WORKSHEET_V3_SCRIPT_LOADED: 'worksheet_v3_script_loaded',\n WORKSHEET_V3_SCRIPT_FAILED: 'worksheet_v3_script_failed',\n\n WORKSHEET_V3_SCRIPT_FALLBACK_LOADING: 'worksheet_v3_script_fallback_loading',\n WORKSHEET_V3_SCRIPT_FALLBACK_LOADED: 'worksheet_v3_script_fallback_loaded',\n WORKSHEET_V3_SCRIPT_FALLBACK_FAILED: 'worksheet_v3_script_fallback_failed',\n\n WORKSHEET_V3_SCRIPT_READY: 'worksheet_v3_script_ready',\n\n WORKSHEET_V3_ITEMS_LOADING: 'worksheet_v3_items_loading',\n WORKSHEET_V3_ITEMS_LOADED: 'worksheet_v3_items_loaded',\n WORKSHEET_V3_ITEMS_FAILED: 'worksheet_v3_items_failed',\n\n WORKSHEET_V3_ATTEMPT_RESPONSES_LOADING: 'worksheet_v3_attempt_responses_loading',\n WORKSHEET_V3_ATTEMPT_RESPONSES_LOADED: 'worksheet_v3_attempt_responses_loaded',\n WORKSHEET_V3_ATTEMPT_RESPONSES_FAILED: 'worksheet_v3_attempt_responses_failed',\n\n WORKSHHEET_V3_LEANROSITY_INITIALIZING: 'worksheet_v3_learnosity_initializing',\n WORKSHEET_V3_LEARNOSITY_INITIALIZED: 'worksheet_v3_learnosity_initialized',\n WORKSHEET_V3_LEARNOSITY_FAILED: 'worksheet_v3_learnosity_failed',\n\n WORKSHEET_V3_READY: 'worksheet_v3_ready',\n\n WORKSHEET_V3_QUESTION_APPENDING_QUEUED: 'worksheet_v3_question_appending_queued',\n WORKSHEET_V3_QUESTION_APPENDING: 'worksheet_v3_question_appending',\n WORKSHEET_V3_QUESTION_APPENDED: 'worksheet_v3_question_appended',\n\n WORKSHEET_V3_FIRST_QUESTION_APPENDED: 'worksheet_v3_first_question_appended',\n\n WORKSHEET_V3_QUESTION_MISSING_VALIDATION: 'worksheet_v3_question_missing_validation',\n MATHJAX_COMPILE_ERROR: 'mathjax_compile_error',\n MATHJAX_TYPESET_ERROR: 'mathjax_typeset_error',\n MATHJAX_FORMAT_ERROR: 'mathjax_format_error',\n\n MATHJAX_SCRIPT_LOADING: 'mathjax_script_loading',\n MATHJAX_SCRIPT_LOADED: 'mathjax_script_loaded',\n MATHJAX_SCRIPT_FAILED: 'mathjax_script_failed',\n\n WORKSHEET_V3_SCRIBBLE_TOGGLE: 'worksheet_v3_scribble_toggled',\n WORKSHEET_V3_HINT_SEEN: 'worksheet_v3_hint_seen',\n WORKSHEET_V3_SOLUTION_SEEN: 'worksheet_v3_solution_seen',\n WORKSHEET_V3_GREATER_WIDTH_ELEMENT: 'worksheet_v3_greater_width_element',\n};\n\nexport default EVENTS;\n"],"names":["EVENTS"],"mappings":"AAAA,MAAMA,IAAS;AAAA,EACb,6BAA6B;AAAA,EAC7B,4BAA4B;AAAA,EAC5B,4BAA4B;AAAA,EAE5B,sCAAsC;AAAA,EACtC,qCAAqC;AAAA,EACrC,qCAAqC;AAAA,EAErC,2BAA2B;AAAA,EAE3B,4BAA4B;AAAA,EAC5B,2BAA2B;AAAA,EAC3B,2BAA2B;AAAA,EAE3B,wCAAwC;AAAA,EACxC,uCAAuC;AAAA,EACvC,uCAAuC;AAAA,EAEvC,uCAAuC;AAAA,EACvC,qCAAqC;AAAA,EACrC,gCAAgC;AAAA,EAEhC,oBAAoB;AAAA,EAEpB,wCAAwC;AAAA,EACxC,iCAAiC;AAAA,EACjC,gCAAgC;AAAA,EAEhC,sCAAsC;AAAA,EAEtC,0CAA0C;AAAA,EAC1C,uBAAuB;AAAA,EACvB,uBAAuB;AAAA,EACvB,sBAAsB;AAAA,EAEtB,wBAAwB;AAAA,EACxB,uBAAuB;AAAA,EACvB,uBAAuB;AAAA,EAEvB,8BAA8B;AAAA,EAC9B,wBAAwB;AAAA,EACxB,4BAA4B;AAAA,EAC5B,oCAAoC;AACtC;"}
@@ -1,311 +1,342 @@
1
- import { jsxs as M, jsx as i, Fragment as Ot } from "react/jsx-runtime";
2
- import { memo as Tt, useMemo as p, useState as W, useRef as pt, useCallback as Nt, useEffect as $, useLayoutEffect as Qt } from "react";
3
- import { IMAGES as Ft } from "../../../../assets/images/images.js";
4
- import Ut from "../../../cue-canvas/cue-canvas.js";
5
- import zt from "../../../pointer-sync/pointer.js";
6
- import $t from "../../../ui/layout/flex-view.js";
7
- import { QUESTIONS_GAP as Xt, LEARNOSITY_KEYBOARD_HEIGHT as Et } from "../constants.js";
8
- import { getPaperColorByQuestion as Dt, isConceptIntroWidget as Kt, scrollToQuestion as Rt } from "../worksheet-helpers.js";
9
- import Pt from "./header/header.js";
10
- import jt from "./learnosity-question.js";
11
- import Vt from "./question-backdrop/question-backdrop.js";
12
- import Yt from "./subjective-review.js";
13
- import Gt from "./system-intros/advanced-practice-intro.js";
14
- import Zt from "./system-intros/basic-practice-intro.js";
15
- import Jt from "./system-intros/exit-ticket-intro.js";
16
- import kt from "./system-intros/regular-practice-intro.js";
17
- import { QuestionContainerWrapper as qt, StimulusReview as to, QuestionContainer as oo, QuestionWrapper as io, LessonOverviewBanner as ro, CueCanvasWrapper as eo, Hint as no, Solution as co } from "./worksheet-question-styled.js";
18
- const So = Tt(
1
+ import { jsxs as I, jsx as r, Fragment as Dt } from "react/jsx-runtime";
2
+ import { memo as Ut, useMemo as p, useState as A, useRef as z, useCallback as zt, useEffect as d, useLayoutEffect as Kt } from "react";
3
+ import { IMAGES as Vt } from "../../../../assets/images/images.js";
4
+ import Xt from "../../../cue-canvas/cue-canvas.js";
5
+ import Pt from "../../../pointer-sync/pointer.js";
6
+ import wt from "../../../ui/layout/flex-view.js";
7
+ import jt from "../../constants/events.js";
8
+ import { QUESTIONS_GAP as Gt, LEARNOSITY_KEYBOARD_HEIGHT as Ht } from "../constants.js";
9
+ import { getPaperColorByQuestion as Yt, isConceptIntroWidget as Zt, scrollToQuestion as St } from "../worksheet-helpers.js";
10
+ import Jt from "./header/header.js";
11
+ import qt from "./learnosity-question.js";
12
+ import kt from "./question-backdrop/question-backdrop.js";
13
+ import te from "./subjective-review.js";
14
+ import ee from "./system-intros/advanced-practice-intro.js";
15
+ import re from "./system-intros/basic-practice-intro.js";
16
+ import oe from "./system-intros/exit-ticket-intro.js";
17
+ import ie from "./system-intros/regular-practice-intro.js";
18
+ import { QuestionContainerWrapper as ne, StimulusReview as ce, QuestionContainer as ae, QuestionWrapper as se, LessonOverviewBanner as le, CueCanvasWrapper as me, Hint as ue, Solution as fe } from "./worksheet-question-styled.js";
19
+ const Le = Ut(
19
20
  ({
20
- userType: e,
21
- signedRequest: _t,
21
+ userType: c,
22
+ signedRequest: bt,
22
23
  worksheetCompleted: m,
23
- question: r,
24
- response: o,
25
- nextQuestionId: E,
24
+ question: n,
25
+ response: e,
26
+ nextQuestionId: _,
26
27
  isActive: R,
27
- isHidden: A,
28
- canRender: Q,
29
- appended: c,
30
- maxQuestionWidth: F,
31
- behavior: U,
32
- layout: z,
33
- actionbarHeight: vt,
34
- learnosity: _,
35
- intersectionObserver: X,
36
- background: D = "paper",
37
- onMarkForReview: wt,
38
- userId: Ht,
39
- onPublishStrokes: K,
40
- onReceiveStrokes: P,
41
- isScribblingEnabled: j,
42
- initialStrokesData: O,
43
- isCanvasEnabled: V,
44
- onPublishMouseMove: Y,
45
- onSubscribeMouseMove: G,
46
- setActiveQuestionId: Z,
47
- canResolveDoubt: Ct,
48
- onResolveDoubt: St,
49
- studentId: bt,
50
- responses: Bt,
51
- subjectiveProps: J
28
+ isHidden: M,
29
+ canRender: K,
30
+ loggerRef: O,
31
+ appended: a,
32
+ maxQuestionWidth: V,
33
+ behavior: X,
34
+ layout: P,
35
+ actionbarHeight: Ct,
36
+ learnosity: v,
37
+ intersectionObserver: j,
38
+ background: G = "paper",
39
+ onMarkForReview: Bt,
40
+ userId: Wt,
41
+ onPublishStrokes: Y,
42
+ onReceiveStrokes: Z,
43
+ isScribblingEnabled: J,
44
+ initialStrokesData: N,
45
+ isCanvasEnabled: q,
46
+ onPublishMouseMove: k,
47
+ onSubscribeMouseMove: tt,
48
+ setActiveQuestionId: et,
49
+ canResolveDoubt: yt,
50
+ onResolveDoubt: xt,
51
+ studentId: Lt,
52
+ responses: Tt,
53
+ subjectiveProps: rt
52
54
  }) => {
53
55
  const C = p(
54
- () => D === "paper" ? Dt(r) : void 0,
55
- [D, r]
56
- ), [S, xt] = W(), [k, yt] = W(), {
57
- validation: q,
58
- review: T,
59
- maximumAttempts: tt,
60
- canExceedAttempts: ot,
61
- teacherValidationEnabled: v,
62
- solutionHidden: it
63
- } = U, { minQuestionHeight: Lt, topOffset: rt, questionsScrollable: b } = z, {
64
- type: B,
65
- response_id: a,
66
- stimulus_review: u,
67
- item_type: l,
68
- instructor_stimulus: et,
69
- metadata: { hints: h, solution: w }
70
- } = r, nt = !!u, x = l === "overview", f = Kt(et), H = et === "SystemIntro", ct = f || H, at = o == null ? void 0 : o.responseEdited, It = p(() => {
56
+ () => G === "paper" ? Yt(n) : void 0,
57
+ [G, n]
58
+ ), [B, It] = A(), [ot, At] = A(), {
59
+ validation: it,
60
+ review: Q,
61
+ maximumAttempts: nt,
62
+ canExceedAttempts: ct,
63
+ teacherValidationEnabled: w,
64
+ solutionHidden: at
65
+ } = X, { minQuestionHeight: Mt, topOffset: st, questionsScrollable: W } = P, {
66
+ type: g,
67
+ response_id: o,
68
+ stimulus_review: E,
69
+ item_type: u,
70
+ instructor_stimulus: lt,
71
+ metadata: { hints: f, solution: H, widget_reference: mt },
72
+ item_reference: ut,
73
+ question_number: ft
74
+ } = n, ht = !!E, y = u === "overview", h = Zt(lt), S = lt === "SystemIntro", dt = h || S, gt = e == null ? void 0 : e.responseEdited, Ot = p(() => {
71
75
  const t = [];
72
- return at && e === "TEACHER" && t.push("attempting"), c || t.push("hidden"), B === "hotspot" && t.push("correct-answers-hidden"), c && v && B === "clozetext" && (!f || e === "STUDENT" ? t.push("response-hidden") : t.push("response-code-hidden")), x && t.push("lesson-overview"), f && t.push("concept-intro"), H && t.push("system-intro"), t.join(" ");
76
+ return gt && c === "TEACHER" && t.push("attempting"), a || t.push("hidden"), g === "hotspot" && t.push("correct-answers-hidden"), a && w && g === "clozetext" && (!h || c === "STUDENT" ? t.push("response-hidden") : t.push("response-code-hidden")), y && t.push("lesson-overview"), h && t.push("concept-intro"), S && t.push("system-intro"), t.join(" ");
73
77
  }, [
74
- c,
75
- f,
76
- x,
77
- H,
78
- B,
79
- at,
80
- v,
81
- e
82
- ]), y = (o == null ? void 0 : o.hintsUsed) ?? 0, [st] = W((o == null ? void 0 : o.validatedByTeacher) ?? !1), L = pt(null), mt = pt(null), N = p(() => h == null ? void 0 : h.slice(0, y), [h, y]), lt = p(() => e === "TEACHER" || m ? !0 : !o || !o.response || o.responseEdited ? !1 : q, [o, e, q, m]), ht = p(() => {
83
- if (e === "TEACHER") return !0;
84
- if (T) {
85
- const { attemptsHistory: t } = o ?? {};
86
- return ((t == null ? void 0 : t.length) ?? 0) >= tt && !ot;
78
+ a,
79
+ h,
80
+ y,
81
+ S,
82
+ g,
83
+ gt,
84
+ w,
85
+ c
86
+ ]), F = z({}), x = (e == null ? void 0 : e.hintsUsed) ?? 0, [Et] = A((e == null ? void 0 : e.validatedByTeacher) ?? !1), L = z(null), D = z(null), U = p(() => f == null ? void 0 : f.slice(0, x), [f, x]), $t = p(() => c === "TEACHER" || m ? !0 : !e || !e.response || e.responseEdited ? !1 : it, [e, c, it, m]), pt = p(() => {
87
+ if (c === "TEACHER") return !0;
88
+ if (Q) {
89
+ const { attemptsHistory: t } = e ?? {};
90
+ return ((t == null ? void 0 : t.length) ?? 0) >= nt && !ct;
87
91
  }
88
92
  return !1;
89
- }, [ot, tt, o, T, e]), Mt = p(
90
- () => w && m && !it,
91
- [it, w, m]
92
- ), [ft, Wt] = W({
93
+ }, [ct, nt, e, Q, c]), Nt = p(
94
+ () => H && m && !at,
95
+ [at, H, m]
96
+ ), [_t, Qt] = A({
93
97
  width: 0,
94
98
  height: 0
95
- }), At = Nt((t) => {
96
- yt(t);
99
+ }), Ft = zt((t) => {
100
+ At(t);
97
101
  }, []);
98
- return $(() => {
99
- L.current && X.observe(L.current);
100
- }, [X]), $(() => {
101
- if (c && (r.type === "clozeassociation" || r.type === "association" || r.type === "clozeformula")) {
102
+ return d(() => {
103
+ L.current && j.observe(L.current);
104
+ }, [j]), d(() => {
105
+ if (a && (n.type === "clozeassociation" || n.type === "association" || n.type === "clozeformula")) {
102
106
  const t = document.querySelectorAll(
103
- `.widget-${r.response_id} .lrn_draggable`
107
+ `.widget-${n.response_id} .lrn_draggable`
104
108
  );
105
- let s = 0, n = 0;
106
- t.forEach((d) => {
107
- s = Math.max(s, d.clientWidth + 33), n = Math.max(n, d.clientHeight + 1);
108
- }), Wt({
109
- width: r.type !== "association" ? s : 0,
110
- height: n
109
+ let s = 0, i = 0;
110
+ t.forEach((l) => {
111
+ s = Math.max(s, l.clientWidth + 33), i = Math.max(i, l.clientHeight + 1);
112
+ }), Qt({
113
+ width: n.type !== "association" ? s : 0,
114
+ height: i
111
115
  });
112
116
  }
113
- }, [c, r.response_id, r.type]), $(() => {
114
- if (c && lt) {
115
- const t = _.question(a);
117
+ }, [a, n.response_id, n.type]), d(() => {
118
+ if (a && $t) {
119
+ const t = v.question(o);
116
120
  t && t.validate({
117
- showCorrectAnswers: ht
121
+ showCorrectAnswers: pt
118
122
  });
119
123
  }
120
- }, [c, _, a, T, ht, e, lt]), $(() => {
121
- const t = L.current, s = (n) => {
122
- const d = n.querySelector(".lrn_response_wrapper");
123
- if (!d)
124
+ }, [a, v, o, Q, pt, c, $t]), d(() => {
125
+ const t = D.current;
126
+ if (a && t && O.current && F.current[o] === void 0) {
127
+ const s = t.clientWidth, i = t.querySelectorAll("*");
128
+ for (let l = 0; l < i.length; l++) {
129
+ const b = i[l];
130
+ if (b && b.clientWidth > s) {
131
+ F.current[o] = !0, O.current(jt.WORKSHEET_V3_GREATER_WIDTH_ELEMENT, {
132
+ item_reference: ut,
133
+ widget_reference: mt,
134
+ question_type: g,
135
+ question_number: ft,
136
+ responseId: o
137
+ });
138
+ break;
139
+ }
140
+ }
141
+ F.current[o] = !1;
142
+ }
143
+ }, [
144
+ a,
145
+ ut,
146
+ O,
147
+ g,
148
+ ft,
149
+ o,
150
+ mt
151
+ ]), d(() => {
152
+ const t = L.current, s = (i) => {
153
+ const l = i.querySelector(".lrn_response_wrapper");
154
+ if (!l)
124
155
  return 0;
125
- const ut = n.getBoundingClientRect().bottom, I = d.getBoundingClientRect().bottom, g = Math.abs(ut - I);
126
- return g < Et ? Et - g : 0;
156
+ const b = i.getBoundingClientRect().bottom, T = l.getBoundingClientRect().bottom, $ = Math.abs(b - T);
157
+ return $ < Ht ? Ht - $ : 0;
127
158
  };
128
- c && t && xt((n) => {
129
- var gt;
130
- const I = ((gt = r.ui_style) == null ? void 0 : gt.type) === "floating-keyboard" && !(v && B === "clozetext"), g = t.clientHeight;
131
- if (g === 0)
132
- return n;
133
- if (!n)
159
+ a && t && It((i) => {
160
+ var vt;
161
+ const T = ((vt = n.ui_style) == null ? void 0 : vt.type) === "floating-keyboard" && !(w && g === "clozetext"), $ = t.clientHeight;
162
+ if ($ === 0)
163
+ return i;
164
+ if (!i)
134
165
  return Math.ceil(
135
- g + (I ? s(t) : 0)
166
+ $ + (T ? s(t) : 0)
136
167
  );
137
- const dt = Math.ceil(
138
- g + (I ? s(t) : 0)
168
+ const Rt = Math.ceil(
169
+ $ + (T ? s(t) : 0)
139
170
  );
140
- return Math.abs(dt - n) > 4 ? dt : n;
171
+ return Math.abs(Rt - i) > 4 ? Rt : i;
141
172
  });
142
- }), Qt(() => {
143
- !b && !A && Rt(a);
144
- }, [A, b, a, rt]), $(() => {
145
- (y || nt || w && m) && _.renderMath("mathjax");
146
- }, [nt, y, _, w, m]), $(() => {
147
- if (v && E && !st && (o != null && o.validatedByTeacher)) {
173
+ }), Kt(() => {
174
+ !W && !M && St(o);
175
+ }, [M, W, o, st]), d(() => {
176
+ (x || ht || H && m) && v.renderMath("mathjax");
177
+ }, [ht, x, v, H, m]), d(() => {
178
+ if (w && _ && !Et && (e != null && e.validatedByTeacher)) {
148
179
  const t = setTimeout(() => {
149
- b ? Rt(E) : Z(E);
180
+ W ? St(_) : et(_);
150
181
  }, 1e3);
151
182
  return () => {
152
183
  clearTimeout(t);
153
184
  };
154
185
  }
155
186
  }, [
156
- E,
157
- v,
158
- st,
159
- b,
160
- Z,
161
- o == null ? void 0 : o.validatedByTeacher
162
- ]), /* @__PURE__ */ M(
163
- qt,
187
+ _,
188
+ w,
189
+ Et,
190
+ W,
191
+ et,
192
+ e == null ? void 0 : e.validatedByTeacher
193
+ ]), /* @__PURE__ */ I(
194
+ ne,
164
195
  {
165
- "data-response-id": a,
166
- className: `widget-${a}`,
196
+ "data-response-id": o,
197
+ className: `widget-${o}`,
167
198
  ref: L,
168
- $topOffset: rt,
169
- $flexDirection: u ? "row" : "column",
170
- $alignItems: u ? "flex-start" : "center",
171
- $hidden: A,
172
- $marginBottom: Xt,
199
+ $topOffset: st,
200
+ $flexDirection: E ? "row" : "column",
201
+ $alignItems: E ? "flex-start" : "center",
202
+ $hidden: M,
203
+ $marginBottom: Gt,
173
204
  children: [
174
- u && /* @__PURE__ */ i(
175
- to,
205
+ E && /* @__PURE__ */ r(
206
+ ce,
176
207
  {
177
208
  dangerouslySetInnerHTML: {
178
- __html: u
209
+ __html: E
179
210
  }
180
211
  }
181
212
  ),
182
- /* @__PURE__ */ M(
183
- oo,
213
+ /* @__PURE__ */ I(
214
+ ae,
184
215
  {
185
- ref: mt,
186
- $width: u ? "50%" : `${F}px`,
187
- $minHeight: S ? Math.max(S - 72, k ?? 0) : Lt,
216
+ ref: D,
217
+ $width: E ? "50%" : `${V}px`,
218
+ $minHeight: B ? Math.max(B - 72, ot ?? 0) : Mt,
188
219
  $isActive: R,
189
220
  $paperColor: C,
190
221
  $opacity: R ? 1 : 0.2,
191
222
  children: [
192
- R && !!Y && !!G && V && /* @__PURE__ */ i(
193
- zt,
223
+ R && !!k && !!tt && q && /* @__PURE__ */ r(
224
+ Pt,
194
225
  {
195
- containerRef: mt,
196
- onPublish: Y,
197
- onSubscribe: G,
198
- responseId: a
226
+ containerRef: D,
227
+ onPublish: k,
228
+ onSubscribe: tt,
229
+ responseId: o
199
230
  }
200
231
  ),
201
- /* @__PURE__ */ M(
202
- io,
232
+ /* @__PURE__ */ I(
233
+ se,
203
234
  {
204
- className: It,
205
- $dropzoneMinWidth: ft.width,
206
- $dropzoneMinHeight: ft.height,
235
+ className: Ot,
236
+ $dropzoneMinWidth: _t.width,
237
+ $dropzoneMinHeight: _t.height,
207
238
  children: [
208
- !(x || f || H) && /* @__PURE__ */ i(
209
- Pt,
239
+ !(y || h || S) && /* @__PURE__ */ r(
240
+ Jt,
210
241
  {
211
- userType: e,
212
- question: r,
213
- response: o,
214
- behavior: U,
215
- layout: z,
242
+ userType: c,
243
+ question: n,
244
+ response: e,
245
+ behavior: X,
246
+ layout: P,
216
247
  paperColor: C,
217
- onMarkForReview: wt,
218
- actionbarHeight: vt,
219
- canResolveDoubt: Ct,
220
- onResolveDoubt: St,
248
+ onMarkForReview: Bt,
249
+ actionbarHeight: Ct,
250
+ canResolveDoubt: yt,
251
+ onResolveDoubt: xt,
221
252
  worksheetCompleted: m
222
253
  }
223
254
  ),
224
- x && /* @__PURE__ */ i(ro, { src: Ft.LESSON_OVERVIEW_BANNER }),
225
- f && C && /* @__PURE__ */ i(Vt, { paperColor: C }),
226
- H ? /* @__PURE__ */ M(Ot, { children: [
227
- l === "practice-basic" && /* @__PURE__ */ i(Zt, {}),
228
- l === "practice-regular" && /* @__PURE__ */ i(kt, {}),
229
- l === "exit-ticket" && /* @__PURE__ */ i(Jt, {}),
230
- (l == null ? void 0 : l.startsWith("advanced-")) && /* @__PURE__ */ i(Gt, {})
255
+ y && /* @__PURE__ */ r(le, { src: Vt.LESSON_OVERVIEW_BANNER }),
256
+ h && C && /* @__PURE__ */ r(kt, { paperColor: C }),
257
+ S ? /* @__PURE__ */ I(Dt, { children: [
258
+ u === "practice-basic" && /* @__PURE__ */ r(re, {}),
259
+ u === "practice-regular" && /* @__PURE__ */ r(ie, {}),
260
+ u === "exit-ticket" && /* @__PURE__ */ r(oe, {}),
261
+ (u == null ? void 0 : u.startsWith("advanced-")) && /* @__PURE__ */ r(ee, {})
231
262
  ] }) : void 0,
232
- /* @__PURE__ */ i(
233
- jt,
263
+ /* @__PURE__ */ r(
264
+ qt,
234
265
  {
235
- signedRequest: _t,
236
- appended: c,
237
- question: r,
238
- response: o == null ? void 0 : o.response,
239
- canRender: Q || R,
240
- learnosity: _,
241
- canForceAppend: e === "TEACHER",
242
- isConceptIntro: f
266
+ signedRequest: bt,
267
+ appended: a,
268
+ question: n,
269
+ response: e == null ? void 0 : e.response,
270
+ canRender: K || R,
271
+ learnosity: v,
272
+ canForceAppend: c === "TEACHER",
273
+ isConceptIntro: h
243
274
  }
244
275
  ),
245
- !ct && V && K && P && S !== void 0 && /* @__PURE__ */ i(eo, { $canScribble: j, children: /* @__PURE__ */ i(
246
- Ut,
276
+ !dt && q && Y && Z && B !== void 0 && /* @__PURE__ */ r(me, { $canScribble: J, children: /* @__PURE__ */ r(
277
+ Xt,
247
278
  {
248
- canRender: Q,
249
- canScribble: j && R,
250
- appended: c,
251
- responseId: a,
252
- width: F,
253
- height: Math.max(S, k ?? 0),
254
- onUpdateHeight: At,
255
- onPublish: K,
256
- onSubscribe: P,
257
- userId: Ht,
258
- initialData: O == null ? void 0 : O[a],
259
- userType: e
279
+ canRender: K,
280
+ canScribble: J && R,
281
+ appended: a,
282
+ responseId: o,
283
+ width: V,
284
+ height: Math.max(B, ot ?? 0),
285
+ onUpdateHeight: Ft,
286
+ onPublish: Y,
287
+ onSubscribe: Z,
288
+ userId: Wt,
289
+ initialData: N == null ? void 0 : N[o],
290
+ userType: c
260
291
  }
261
292
  ) }),
262
- !ct && N && N.length > 0 && /* @__PURE__ */ i(
263
- $t,
293
+ !dt && U && U.length > 0 && /* @__PURE__ */ r(
294
+ wt,
264
295
  {
265
296
  $background: "BLUE_1",
266
297
  $gutterX: 1,
267
298
  $gapX: 0.5,
268
299
  $borderRadiusX: 0,
269
300
  $borderColor: "BLUE_2",
270
- children: N.map((t, s) => /* @__PURE__ */ i(
271
- no,
301
+ children: U.map((t, s) => /* @__PURE__ */ r(
302
+ ue,
272
303
  {
273
304
  dangerouslySetInnerHTML: {
274
- __html: `<span style="color: #DA5107; font-weight: 600;">Hint${((h == null ? void 0 : h.length) ?? 0) > 1 ? ` ${s + 1}` : ""}:</span>&nbsp;${t}`
305
+ __html: `<span style="color: #DA5107; font-weight: 600;">Hint${((f == null ? void 0 : f.length) ?? 0) > 1 ? ` ${s + 1}` : ""}:</span>&nbsp;${t}`
275
306
  }
276
307
  },
277
308
  t
278
309
  ))
279
310
  }
280
311
  ),
281
- Mt && /* @__PURE__ */ i(
282
- $t,
312
+ Nt && /* @__PURE__ */ r(
313
+ wt,
283
314
  {
284
315
  $background: "YELLOW_1",
285
316
  $gutterX: 1,
286
317
  $gapX: 0.875,
287
318
  $borderRadiusX: 0,
288
319
  $borderColor: "YELLOW_2",
289
- children: /* @__PURE__ */ i(
290
- co,
320
+ children: /* @__PURE__ */ r(
321
+ fe,
291
322
  {
292
323
  dangerouslySetInnerHTML: {
293
- __html: `<div style="color: #DA5107; font-weight: 600;">Solution:</div>${w}`
324
+ __html: `<div style="color: #DA5107; font-weight: 600;">Solution:</div>${H}`
294
325
  }
295
326
  }
296
327
  )
297
328
  }
298
329
  ),
299
- !!J && /* @__PURE__ */ i(
300
- Yt,
330
+ !!rt && /* @__PURE__ */ r(
331
+ te,
301
332
  {
302
- responses: Bt,
303
- response: o,
304
- nextQuestionId: E,
305
- responseId: a,
306
- studentId: bt,
307
- userType: e,
308
- ...J
333
+ responses: Tt,
334
+ response: e,
335
+ nextQuestionId: _,
336
+ responseId: o,
337
+ studentId: Lt,
338
+ userType: c,
339
+ ...rt
309
340
  }
310
341
  )
311
342
  ]
@@ -320,6 +351,6 @@ const So = Tt(
320
351
  }
321
352
  );
322
353
  export {
323
- So as default
354
+ Le as default
324
355
  };
325
356
  //# 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 { 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 appended,\n maxQuestionWidth,\n behavior,\n layout,\n actionbarHeight,\n learnosity,\n intersectionObserver,\n background = 'paper',\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 },\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\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 // 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 (!$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\n useLayoutEffect(() => {\n if (!questionsScrollable && !isHidden) {\n scrollToQuestion(responseId);\n }\n }, [isHidden, questionsScrollable, responseId, topOffset]);\n\n useEffect(() => {\n if (hintsUsed || hasStimulusReview || (solution && worksheetCompleted)) {\n learnosity.renderMath('mathjax');\n }\n }, [hasStimulusReview, hintsUsed, learnosity, solution, worksheetCompleted]);\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 />\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 responseId={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","appended","maxQuestionWidth","behavior","layout","actionbarHeight","learnosity","intersectionObserver","background","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","hasStimulusReview","isLessonOverview","isConceptIntro","isConceptIntroWidget","isSystemIntro","isIntro","responseEdited","wrapperClasses","classes","hintsUsed","validatedByTeacherOnMount","questionRef","useRef","pointerContainerRef","hints","validateResponse","showCorrectAnswers","attemptsHistory","showSolution","dropZoneDimensions","setDropZoneDimensions","onUpdateHeight","useCallback","height","useEffect","draggableElements","minWidth","minHeight","draggableElement","learnosityQuestion","$questionEl","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":";;;;;;;;;;;;;;;;;AAiCA,MAAMA,KAAiDC;AAAA,EACrD,CAAC;AAAA,IACC,UAAAC;AAAA,IACA,eAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,UAAAC;AAAA,IACA,UAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,UAAAC;AAAA,IACA,UAAAC;AAAA,IACA,WAAAC;AAAA,IACA,UAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,UAAAC;AAAA,IACA,QAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,YAAAC;AAAA,IACA,sBAAAC;AAAA,IACA,YAAAC,IAAa;AAAA,IACb,iBAAAC;AAAA,IACA,QAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,qBAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,sBAAAC;AAAA,IACA,qBAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,WAAAC;AAAA,IACA,WAAAC;AAAA,IACA,iBAAAC;AAAA,EAAA,MACI;AACJ,UAAMC,IAAaC;AAAA,MACjB,MAAOjB,MAAe,UAAUkB,GAAwB/B,CAAQ,IAAI;AAAA,MACpE,CAACa,GAAYb,CAAQ;AAAA,IAAA,GAEjB,CAACgC,GAAgBC,EAAiB,IAAIC,EAA6B,GACnE,CAACC,GAAcC,EAAe,IAAIF,EAA6B,GAC/D;AAAA,MACJ,YAAAG;AAAA,MACA,QAAAC;AAAA,MACA,iBAAAC;AAAA,MACA,mBAAAC;AAAA,MACA,0BAAAC;AAAA,MACA,gBAAAC;AAAA,IACE,IAAAlC,GACE,EAAE,mBAAAmC,IAAmB,WAAAC,IAAW,qBAAAC,EAAA,IAAwBpC,GACxD;AAAA,MACJ,MAAMqC;AAAA,MACN,aAAaC;AAAA,MACb,iBAAAC;AAAA,MACA,WAAAC;AAAA,MACA,qBAAAC;AAAA,MACA,UAAU,EAAE,OAAOC,GAAgB,UAAAC,EAAS;AAAA,IAC1C,IAAApD,GACEqD,KAAoB,CAAC,CAACL,GACtBM,IAAmBL,MAAc,YACjCM,IAAiBC,GAAqBN,EAAmB,GACzDO,IAAgBP,OAAwB,eACxCQ,KAAUH,KAAkBE,GAC5BE,KAAiB1D,KAAA,gBAAAA,EAAU,gBAC3B2D,KAAiB9B,EAAQ,MAAM;AACnC,YAAM+B,IAAU,CAAA;AAEZ,aAAAF,MAAkB9D,MAAa,aACjCgE,EAAQ,KAAK,YAAY,GAGtBvD,KACHuD,EAAQ,KAAK,QAAQ,GAGnBf,MAAiB,aACnBe,EAAQ,KAAK,wBAAwB,GAGnCvD,KAAYmC,KAA4BK,MAAiB,gBACvD,CAACS,KAAkB1D,MAAa,YAClCgE,EAAQ,KAAK,iBAAiB,IAE9BA,EAAQ,KAAK,sBAAsB,IAInCP,KACFO,EAAQ,KAAK,iBAAiB,GAG5BN,KACFM,EAAQ,KAAK,eAAe,GAG1BJ,KACFI,EAAQ,KAAK,cAAc,GAGtBA,EAAQ,KAAK,GAAG;AAAA,IAAA,GACtB;AAAA,MACDvD;AAAA,MACAiD;AAAA,MACAD;AAAA,MACAG;AAAA,MACAX;AAAA,MACAa;AAAA,MACAlB;AAAA,MACA5C;AAAA,IAAA,CACD,GAEKiE,KAAY7D,KAAA,gBAAAA,EAAU,cAAa,GACnC,CAAC8D,EAAyB,IAAI7B,GAASjC,KAAA,gBAAAA,EAAU,uBAAsB,EAAK,GAE5E+D,IAAcC,GAAuB,IAAI,GACzCC,KAAsBD,GAAuB,IAAI,GACjDE,IAAQrC,EAAQ,MAAMqB,KAAA,gBAAAA,EAAgB,MAAM,GAAGW,IAAY,CAACX,GAAgBW,CAAS,CAAC,GACtFM,KAAmBtC,EAAQ,MAC3BjC,MAAa,aAEbE,IAA2B,KAE3B,CAACE,KAED,CAACA,EAAS,YAEVA,EAAS,iBAAuB,KAE7BoC,GACN,CAACpC,GAAUJ,GAAUwC,GAAYtC,CAAkB,CAAC,GAEjDsE,KAAqBvC,EAAQ,MAAM;AACnC,UAAAjC,MAAa,UAAkB,QAAA;AAEnC,UAAIyC,GAAQ;AACV,cAAM,EAAE,iBAAAgC,EAAA,IAAoBrE,KAAY;AAGxC,iBAFgCqE,KAAA,gBAAAA,EAAiB,WAAU,MAAM/B,MAEhC,CAACC;AAAA,MACpC;AAEO,aAAA;AAAA,IAAA,GACN,CAACA,IAAmBD,IAAiBtC,GAAUqC,GAAQzC,CAAQ,CAAC,GAE7D0E,KAAezC;AAAA,MACnB,MAAMsB,KAAYrD,KAAsB,CAAC2C;AAAA,MACzC,CAACA,IAAgBU,GAAUrD,CAAkB;AAAA,IAAA,GAGzC,CAACyE,IAAoBC,EAAqB,IAAIvC,EAAS;AAAA,MAC3D,OAAO;AAAA,MACP,QAAQ;AAAA,IAAA,CACT,GAEKwC,KAAiBC,GAAY,CAACC,MAAmB;AACrD,MAAAxC,GAAgBwC,CAAM;AAAA,IACxB,GAAG,CAAE,CAAA;AAEL,WAAAC,EAAU,MAAM;AACd,MAAIb,EAAY,WACOpD,EAAA,QAAQoD,EAAY,OAAO;AAAA,IAClD,GACC,CAACpD,CAAoB,CAAC,GAEzBiE,EAAU,MAAM;AAEZ,UAAAvE,MACCN,EAAS,SAAS,sBACjBA,EAAS,SAAS,iBAClBA,EAAS,SAAS,iBACpB;AACA,cAAM8E,IAAoB,SAAS;AAAA,UACjC,WAAW9E,EAAS,WAAW;AAAA,QAAA;AAGjC,YAAI+E,IAAW,GACXC,IAAY;AAEhB,QAAAF,EAAkB,QAAQ,CAAoBG,MAAA;AAC5C,UAAAF,IAAW,KAAK,IAAIA,GAAUE,EAAiB,cAAc,EAAE,GAC/DD,IAAY,KAAK,IAAIA,GAAWC,EAAiB,eAAe,CAAC;AAAA,QAAA,CAClE,GAEqBR,GAAA;AAAA,UACpB,OAAOzE,EAAS,SAAS,gBAAgB+E,IAAW;AAAA,UACpD,QAAQC;AAAA,QAAA,CACT;AAAA,MACH;AAAA,IAAA,GACC,CAAC1E,GAAUN,EAAS,aAAaA,EAAS,IAAI,CAAC,GAElD6E,EAAU,MAAM;AACd,UAAIvE,KAAY8D,IAAkB;AAC1B,cAAAc,IAAqBvE,EAAW,SAASoC,CAAU;AAEzD,QAAImC,KACFA,EAAmB,SAAS;AAAA,UAC1B,oBAAAb;AAAA,QAAA,CACD;AAAA,MAEL;AAAA,IAAA,GACC,CAAC/D,GAAUK,GAAYoC,GAAYT,GAAQ+B,IAAoBxE,GAAUuE,EAAgB,CAAC,GAG7FS,EAAU,MAAM;AACd,YAAMM,IAAcnB,EAAY,SAE1BoB,IAAuC,CAACC,MAA+B;AACrE,cAAAC,IAAmBD,EAAW,cAAc,uBAAuB;AAEzE,YAAI,CAACC;AACI,iBAAA;AAGH,cAAAC,KAAiBF,EAAW,sBAAA,EAAwB,QACpDG,IAAwBF,EAAiB,sBAAA,EAAwB,QACjEG,IAA4B,KAAK,IAAIF,KAAiBC,CAAqB;AAEjF,eAAIC,IAA4BC,KACvBA,KAA6BD,IAG/B;AAAA,MAAA;AAGT,MAAInF,KAAY6E,KACdlD,GAAkB,CAAW0D,MAAA;;AAGrB,cAAAC,MAFsBC,KAAA7F,EAAS,aAAT,gBAAA6F,GAAmB,UAAS,uBAEb,EADtBpD,KAA4BK,MAAiB,cAE5D8B,IAASO,EAAY;AAE3B,YAAIP,MAAW;AACN,iBAAAe;AAIT,YAAI,CAACA;AACH,iBAAO,KAAK;AAAA,YACVf,KAAUgB,IAAcR,EAAqCD,CAAW,IAAI;AAAA,UAAA;AAIhF,cAAMW,KAAoB,KAAK;AAAA,UAC7BlB,KAAUgB,IAAcR,EAAqCD,CAAW,IAAI;AAAA,QAAA;AAG9E,eAAI,KAAK,IAAIW,KAAoBH,CAAO,IAAI,IACnCG,KAGFH;AAAA,MAAA,CACR;AAAA,IACH,CACD,GAEDI,GAAgB,MAAM;AAChB,MAAA,CAAClD,KAAuB,CAACzC,KAC3B4F,GAAiBjD,CAAU;AAAA,OAE5B,CAAC3C,GAAUyC,GAAqBE,GAAYH,EAAS,CAAC,GAEzDiC,EAAU,MAAM;AACV,OAAAf,KAAaT,MAAsBD,KAAYrD,MACjDY,EAAW,WAAW,SAAS;AAAA,IACjC,GACC,CAAC0C,IAAmBS,GAAWnD,GAAYyC,GAAUrD,CAAkB,CAAC,GAE3E8E,EAAU,MAAM;AACd,UACEpC,KACAvC,KACA,CAAC6D,OACD9D,KAAA,QAAAA,EAAU,qBACV;AACM,cAAAgG,IAAQ,WAAW,MAAM;AAC7B,UAAIpD,IACFmD,GAAiB9F,CAAc,IAE/BqB,EAAoBrB,CAAc;AAAA,WAEnC,GAAI;AAEP,eAAO,MAAM;AACX,uBAAa+F,CAAK;AAAA,QAAA;AAAA,MAEtB;AAAA,IAAA,GACC;AAAA,MACD/F;AAAA,MACAuC;AAAA,MACAsB;AAAA,MACAlB;AAAA,MACAtB;AAAA,MACAtB,KAAA,gBAAAA,EAAU;AAAA,IAAA,CACX,GAGC,gBAAAiG;AAAA,MAACC;AAAAA,MAAA;AAAA,QACC,oBAAkBpD;AAAA,QAClB,WAAW,UAAUA,CAAU;AAAA,QAC/B,KAAKiB;AAAA,QACL,YAAYpB;AAAA,QACZ,gBAAgBI,IAAkB,QAAQ;AAAA,QAC1C,aAAaA,IAAkB,eAAe;AAAA,QAC9C,SAAS5C;AAAA,QACT,eAAegG;AAAA,QAEd,UAAA;AAAA,UACCpD,KAAA,gBAAAqD;AAAA,YAACC;AAAAA,YAAA;AAAA,cACC,yBAAyB;AAAA,gBACvB,QAAQtD;AAAA,cACV;AAAA,YAAA;AAAA,UACF;AAAA,UAEF,gBAAAkD;AAAA,YAACK;AAAAA,YAAA;AAAA,cACC,KAAKrC;AAAA,cACL,QAAQlB,IAAkB,QAAQ,GAAGzC,CAAgB;AAAA,cACrD,YACEyB,IAAiB,KAAK,IAAIA,IAAiB,IAAIG,KAAgB,CAAC,IAAIQ;AAAA,cAEtE,WAAWxC;AAAA,cACX,aAAa0B;AAAA,cACb,UAAU1B,IAAW,IAAI;AAAA,cAExB,UAAA;AAAA,gBAAAA,KAAY,CAAC,CAACkB,KAAsB,CAAC,CAACC,KAAwBF,KAC7D,gBAAAiF;AAAA,kBAACG;AAAA,kBAAA;AAAA,oBACC,cAActC;AAAA,oBACd,WAAW7C;AAAA,oBACX,aAAaC;AAAA,oBACb,YAAAyB;AAAA,kBAAA;AAAA,gBACF;AAAA,gBAEF,gBAAAmD;AAAA,kBAACO;AAAAA,kBAAA;AAAA,oBACC,WAAW7C;AAAA,oBACX,mBAAmBY,GAAmB;AAAA,oBACtC,oBAAoBA,GAAmB;AAAA,oBAEtC,UAAA;AAAA,sBAAE,EAAAlB,KAAoBC,KAAkBE,MACvC,gBAAA4C;AAAA,wBAACK;AAAA,wBAAA;AAAA,0BACC,UAAA7G;AAAA,0BACA,UAAAG;AAAA,0BACA,UAAAC;AAAA,0BACA,UAAAO;AAAA,0BACA,QAAAC;AAAA,0BACA,YAAAoB;AAAA,0BACA,iBAAAf;AAAA,0BACA,iBAAAJ;AAAA,0BACA,iBAAAc;AAAA,0BACA,gBAAAC;AAAA,0BACA,oBAAA1B;AAAA,wBAAA;AAAA,sBACF;AAAA,sBAEDuD,KACE,gBAAA+C,EAAAM,IAAA,EAA4B,KAAKC,GAAO,wBAAwB;AAAA,sBAElErD,KAAkB1B,KAAe,gBAAAwE,EAAAQ,IAAA,EAAiB,YAAAhF,EAAwB,CAAA;AAAA,sBAC1E4B,IAEI,gBAAAyC,EAAAY,IAAA,EAAA,UAAA;AAAA,wBAAc7D,MAAA,sCAAqB8D,IAAmB,CAAA,CAAA;AAAA,wBACtD9D,MAAc,sBAAsB,gBAAAoD,EAACW,IAAqB,CAAA,CAAA;AAAA,wBAC1D/D,MAAc,iBAAiB,gBAAAoD,EAACY,IAAgB,CAAA,CAAA;AAAA,yBAChDhE,KAAA,gBAAAA,EAAW,WAAW,mCAAiBiE,IAAsB,CAAA,CAAA;AAAA,sBAAA,EAChE,CAAA,IACE;AAAA,sBACJ,gBAAAb;AAAA,wBAACc;AAAA,wBAAA;AAAA,0BACC,eAAArH;AAAA,0BACA,UAAAQ;AAAA,0BACA,UAAAN;AAAA,0BACA,UAAUC,KAAA,gBAAAA,EAAU;AAAA,0BACpB,WAAWI,KAAaF;AAAA,0BACxB,YAAAQ;AAAA,0BACA,gBAAgBd,MAAa;AAAA,0BAC7B,gBAAA0D;AAAA,wBAAA;AAAA,sBACF;AAAA,sBAEC,CAACG,MACAtC,KACAJ,KACAC,KACAe,MAAmB,UACjB,gBAAAqE,EAACe,IAAA,EAAwB,cAAclG,GACrC,UAAA,gBAAAmF;AAAA,wBAACgB;AAAA,wBAAA;AAAA,0BACC,WAAAhH;AAAA,0BACA,aAAaa,KAAuBf;AAAA,0BACpC,UAAAG;AAAA,0BACA,YAAAyC;AAAA,0BACA,OAAOxC;AAAA,0BACP,QAAQ,KAAK,IAAIyB,GAAgBG,KAAgB,CAAC;AAAA,0BAClD,gBAAAuC;AAAA,0BACA,WAAW1D;AAAA,0BACX,aAAaC;AAAA,0BACb,QAAAF;AAAA,0BACA,aAAaI,KAAA,gBAAAA,EAAqB4B;AAAA,0BAClC,UAAAlD;AAAA,wBAAA;AAAA,sBAAA,GAEJ;AAAA,sBAEH,CAAC6D,MAAWS,KAASA,EAAM,SAAS,KACnC,gBAAAkC;AAAA,wBAACiB;AAAA,wBAAA;AAAA,0BACC,aAAY;AAAA,0BACZ,UAAU;AAAA,0BACV,OAAO;AAAA,0BACP,gBAAgB;AAAA,0BAChB,cAAa;AAAA,0BAEZ,UAAMnD,EAAA,IAAI,CAACoD,GAAMC,MAChB,gBAAAnB;AAAA,4BAACoB;AAAAA,4BAAA;AAAA,8BAEC,yBAAyB;AAAA,gCACvB,QAAQ,yDACLtE,KAAA,gBAAAA,EAAgB,WAAU,KAAK,IAAI,IAAIqE,IAAQ,CAAC,KAAK,EACxD,iBAAiBD,CAAI;AAAA,8BACvB;AAAA,4BAAA;AAAA,4BALKA;AAAA,0BAAA,CAOR;AAAA,wBAAA;AAAA,sBACH;AAAA,sBAEDhD,MACC,gBAAA8B;AAAA,wBAACiB;AAAA,wBAAA;AAAA,0BACC,aAAY;AAAA,0BACZ,UAAU;AAAA,0BACV,OAAO;AAAA,0BACP,gBAAgB;AAAA,0BAChB,cAAa;AAAA,0BAEb,UAAA,gBAAAjB;AAAA,4BAACqB;AAAAA,4BAAA;AAAA,8BACC,yBAAyB;AAAA,gCACvB,QAAQ,iEAAiEtE,CAAQ;AAAA,8BACnF;AAAA,4BAAA;AAAA,0BACF;AAAA,wBAAA;AAAA,sBACF;AAAA,sBAED,CAAC,CAACxB,KACD,gBAAAyE;AAAA,wBAACsB;AAAA,wBAAA;AAAA,0BACC,WAAAhG;AAAA,0BACA,UAAA1B;AAAA,0BACA,gBAAAC;AAAA,0BACA,YAAA6C;AAAA,0BACA,WAAArB;AAAA,0BACA,UAAA7B;AAAA,0BACC,GAAG+B;AAAA,wBAAA;AAAA,sBACN;AAAA,oBAAA;AAAA,kBAAA;AAAA,gBAEJ;AAAA,cAAA;AAAA,YAAA;AAAA,UACF;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AACF;"}
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 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 } = 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 ) {\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 && element.clientWidth > 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 });\n break;\n }\n }\n\n overflowDetectedRef.current[responseId] = false;\n }\n }, [\n appended,\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 (!$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\n useLayoutEffect(() => {\n if (!questionsScrollable && !isHidden) {\n scrollToQuestion(responseId);\n }\n }, [isHidden, questionsScrollable, responseId, topOffset]);\n\n useEffect(() => {\n if (hintsUsed || hasStimulusReview || (solution && worksheetCompleted)) {\n learnosity.renderMath('mathjax');\n }\n }, [hasStimulusReview, hintsUsed, learnosity, solution, worksheetCompleted]);\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 />\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 responseId={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","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","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,4 +1,4 @@
1
- import { jsxs as N, Fragment as rt, jsx as n } from "react/jsx-runtime";
1
+ import { jsxs as A, Fragment as rt, jsx as n } from "react/jsx-runtime";
2
2
  import { captureMessage as U } from "@sentry/browser";
3
3
  import { memo as st, forwardRef as at, useMemo as J, useState as C, useCallback as y, useEffect as g, useLayoutEffect as ct } from "react";
4
4
  import lt from "../../../assets/line-icons/icons/check2.js";
@@ -46,8 +46,8 @@ const jt = (fe, he) => {
46
46
  onTeacherValidation: te,
47
47
  onOptionalItemAssignment: $e,
48
48
  onOptionalItemSkip: Ee,
49
- onExitTicketStart: A,
50
- onExitTicketSubmit: B,
49
+ onExitTicketStart: B,
50
+ onExitTicketSubmit: R,
51
51
  onSubmit: _e,
52
52
  learnosity: b,
53
53
  appendedQuestionIds: ie,
@@ -64,7 +64,7 @@ const jt = (fe, he) => {
64
64
  openQuestionFeedbackModal: De,
65
65
  summaryDescription: Ve,
66
66
  canSubmitWorksheet: He,
67
- loggerRef: R,
67
+ loggerRef: E,
68
68
  canResolveDoubt: xe,
69
69
  onResolveDoubt: Me,
70
70
  onSkip: qe,
@@ -100,7 +100,7 @@ const jt = (fe, he) => {
100
100
  userType: s
101
101
  }) : t.length - 1,
102
102
  [a, u, t, c, s]
103
- ), l = t[p], r = c[(l == null ? void 0 : l.response_id) ?? ""], { bannerBackgroundColor: Ye, label: Ze } = At(s, !!Z), [E] = C(
103
+ ), l = t[p], r = c[(l == null ? void 0 : l.response_id) ?? ""], { bannerBackgroundColor: Ye, label: Ze } = At(s, !!Z), [_] = C(
104
104
  () => kt({
105
105
  questions: t,
106
106
  initialQuestion: Fe,
@@ -113,10 +113,10 @@ const jt = (fe, he) => {
113
113
  initialResponseId: Ie,
114
114
  initialItemIndex: Se
115
115
  })
116
- ), { activeQuestionId: _, setActiveQuestionId: H, intersectionObserver: j } = St(E), d = J(
117
- () => t.findIndex((e) => e.response_id === _),
118
- [_, t]
119
- ), [f, K] = C(!1), [se, k] = C(), [ae, ce] = C(!1), le = Ct(a, c, _), et = y(
116
+ ), { activeQuestionId: k, setActiveQuestionId: H, intersectionObserver: j } = St(_), d = J(
117
+ () => t.findIndex((e) => e.response_id === k),
118
+ [k, t]
119
+ ), [f, K] = C(!1), [se, w] = C(), [ae, ce] = C(!1), le = Ct(a, c, k), et = y(
120
120
  (e, i) => {
121
121
  V((o) => {
122
122
  const m = wt(t, e);
@@ -131,8 +131,8 @@ const jt = (fe, he) => {
131
131
  });
132
132
  },
133
133
  [t]
134
- ), w = y(() => {
135
- k((e) => {
134
+ ), N = y(() => {
135
+ w((e) => {
136
136
  var i;
137
137
  if (e) {
138
138
  const o = (i = t[p]) == null ? void 0 : i.response_id;
@@ -171,33 +171,33 @@ const jt = (fe, he) => {
171
171
  q && V(q);
172
172
  }, [q]), ct(() => {
173
173
  let e;
174
- return b && E && (ut().browser_name === "Safari" ? e = setTimeout(() => {
175
- M(E);
176
- }, 400) : M(E)), () => {
174
+ return b && _ && (ut().browser_name === "Safari" ? e = setTimeout(() => {
175
+ M(_);
176
+ }, 400) : M(_)), () => {
177
177
  clearTimeout(e);
178
178
  };
179
- }, [b, E, D]), g(() => {
179
+ }, [b, _, D]), g(() => {
180
180
  if (a.teacherValidationEnabled && l) {
181
181
  const { item_type: e, instructor_stimulus: i, is_optional: o } = l;
182
- s === "TEACHER" && (e === "exit-ticket" && i !== "SystemIntro" ? r != null && r.submittedByStudent && !(r != null && r.validatedByTeacher) ? k("exit-ticket-review-available") : r != null && r.validatedByTeacher ? w() : k("exit-ticket-teacher-intervention") : o ? r != null && r.assignStatus ? w() : k("optional-items-assignment") : o || w());
182
+ s === "TEACHER" && (e === "exit-ticket" && i !== "SystemIntro" ? r != null && r.submittedByStudent && !(r != null && r.validatedByTeacher) ? w("exit-ticket-review-available") : r != null && r.validatedByTeacher ? N() : w("exit-ticket-teacher-intervention") : o ? r != null && r.assignStatus ? N() : w("optional-items-assignment") : o || N());
183
183
  }
184
184
  }, [
185
185
  a.teacherValidationEnabled,
186
- w,
186
+ N,
187
187
  l,
188
188
  r,
189
189
  s
190
190
  ]), g(() => {
191
191
  if (a.teacherValidationEnabled && l) {
192
192
  const { item_type: e, instructor_stimulus: i } = l;
193
- s === "STUDENT" && e === "exit-ticket" && i !== "SystemIntro" && (r != null && r.submittedByStudent ? B == null || B() : A == null || A());
193
+ s === "STUDENT" && e === "exit-ticket" && i !== "SystemIntro" && (r != null && r.submittedByStudent ? R == null || R() : B == null || B());
194
194
  }
195
195
  }, [
196
196
  a.teacherValidationEnabled,
197
197
  l,
198
198
  r == null ? void 0 : r.submittedByStudent,
199
- A,
200
199
  B,
200
+ R,
201
201
  s
202
202
  ]), g(() => {
203
203
  u === "CURRENT" && $.forEach(({ reference: e, questions: i }) => {
@@ -238,7 +238,7 @@ const jt = (fe, he) => {
238
238
  },
239
239
  fingerprint: [`no-valid-response-${S.widget_reference}`]
240
240
  // Add unique fingerprint
241
- }), R.current(ft.WORKSHEET_V3_QUESTION_MISSING_VALIDATION, {
241
+ }), E.current(ft.WORKSHEET_V3_QUESTION_MISSING_VALIDATION, {
242
242
  item_reference: o,
243
243
  widget_reference: S.widget_reference,
244
244
  question_type: m,
@@ -246,8 +246,8 @@ const jt = (fe, he) => {
246
246
  })));
247
247
  }
248
248
  });
249
- }, [T, R, t, G]), b ? /* @__PURE__ */ N(rt, { children: [
250
- ye && /* @__PURE__ */ N(
249
+ }, [T, E, t, G]), b ? /* @__PURE__ */ A(rt, { children: [
250
+ ye && /* @__PURE__ */ A(
251
251
  Dt,
252
252
  {
253
253
  $flexDirection: "row",
@@ -267,7 +267,7 @@ const jt = (fe, he) => {
267
267
  ]
268
268
  }
269
269
  ),
270
- /* @__PURE__ */ N(Vt, { $background: "WHITE", $width: je, children: [
270
+ /* @__PURE__ */ A(Vt, { $background: "WHITE", $width: je, children: [
271
271
  Xe === "top" && /* @__PURE__ */ n(Ht, { $topOffset: D, $height: gt, children: /* @__PURE__ */ n(xt, { children: /* @__PURE__ */ n(
272
272
  Bt,
273
273
  {
@@ -288,7 +288,7 @@ const jt = (fe, he) => {
288
288
  blocker: se,
289
289
  lastUnlockedQuestion: l,
290
290
  studentName: ge,
291
- onBlockerClose: w,
291
+ onBlockerClose: N,
292
292
  onOptionalItemAssignment: $e,
293
293
  onOptionalItemSkip: Ee,
294
294
  onTeacherValidation: te
@@ -306,7 +306,7 @@ const jt = (fe, he) => {
306
306
  }
307
307
  ),
308
308
  ae && /* @__PURE__ */ n(qt, { children: /* @__PURE__ */ n(mt, { initialPosition: bt, onClose: tt }) }),
309
- /* @__PURE__ */ N(
309
+ /* @__PURE__ */ A(
310
310
  Pt,
311
311
  {
312
312
  $marginTop: s === "TEACHER" && f ? "0" : I,
@@ -357,7 +357,7 @@ const jt = (fe, he) => {
357
357
  setResponses: V,
358
358
  getTimeSpentOnQuestion: le,
359
359
  setSummaryVisible: K,
360
- setBlocker: k,
360
+ setBlocker: w,
361
361
  setIsScribblingEnabled: Je,
362
362
  setActiveQuestionId: H,
363
363
  onItemNumberClick: x,
@@ -367,7 +367,7 @@ const jt = (fe, he) => {
367
367
  onTeacherValidation: te,
368
368
  onSubmit: _e,
369
369
  showCalculator: ae,
370
- loggerRef: R,
370
+ loggerRef: E,
371
371
  onSkip: qe,
372
372
  canToggleScribbling: Pe
373
373
  }
@@ -380,7 +380,7 @@ const jt = (fe, he) => {
380
380
  ]
381
381
  }
382
382
  ),
383
- /* @__PURE__ */ N(
383
+ /* @__PURE__ */ A(
384
384
  Lt,
385
385
  {
386
386
  $actionbarHeight: I,
@@ -401,8 +401,8 @@ const jt = (fe, he) => {
401
401
  nextQuestionId: u === "ADAPTIVE" || u === "CURRENT" ? l == null ? void 0 : l.response_id : i < p ? (X = t[i + 1]) == null ? void 0 : X.response_id : void 0,
402
402
  maxQuestionWidth: L,
403
403
  learnosity: b,
404
- isActive: o === _,
405
- isHidden: !O && o !== _ || f,
404
+ isActive: o === k,
405
+ isHidden: !O && o !== k || f,
406
406
  canRender: d > -1 && (i === d || u !== "CURRENT" && i === d + 1),
407
407
  background: ve,
408
408
  appended: ie.includes(o),
@@ -424,7 +424,8 @@ const jt = (fe, he) => {
424
424
  onResolveDoubt: Me,
425
425
  studentId: Qe,
426
426
  subjectiveProps: Ge,
427
- responses: c
427
+ responses: c,
428
+ loggerRef: E
428
429
  },
429
430
  o
430
431
  );
@@ -459,7 +460,7 @@ const jt = (fe, he) => {
459
460
  height: oe,
460
461
  actionbarHeight: I,
461
462
  openQuestionFeedbackModal: De,
462
- loggerRef: R
463
+ loggerRef: E
463
464
  }
464
465
  )
465
466
  ] })
@@ -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 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 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 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 {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 {getRenderableQuestions({ questions, lastUnlockedQuestionIndex, userType }).map(\n (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 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 />\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","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","lastUnlockedQuestion","lastUnlockedQuestionResponse","nudgeBannerBackgroundColor","nudgeBannerLabel","getWorksheetNudgeBannerInfo","initialQuestionId","getInitialQuestionId","activeQuestionId","setActiveQuestionId","intersectionObserver","useGetActiveQuestionId","activeQuestionIndex","question","summaryVisible","setSummaryVisible","blocker","setBlocker","showCalculator","setShowCalculator","getTimeSpentOnQuestion","useTimeSpentOnQuestions","handleMarkForReview","useCallback","questionId","markedForReview","prevResponses","questionMeta","getQuestionMetadata","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","Styled.NudgeBannerWrapper","WORKSHEET_NUDGE_BANNER_HEIGHT","jsx","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","getRenderableQuestions","questionIndex","responseId","assignStatus","WorksheetQuestion","WorksheetSummary","WorksheetSideBar","Worksheet","memo","forwardRef"],"mappings":"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"}
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 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 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 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 {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 {getRenderableQuestions({ questions, lastUnlockedQuestionIndex, userType }).map(\n (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 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 )}\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","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","lastUnlockedQuestion","lastUnlockedQuestionResponse","nudgeBannerBackgroundColor","nudgeBannerLabel","getWorksheetNudgeBannerInfo","initialQuestionId","getInitialQuestionId","activeQuestionId","setActiveQuestionId","intersectionObserver","useGetActiveQuestionId","activeQuestionIndex","question","summaryVisible","setSummaryVisible","blocker","setBlocker","showCalculator","setShowCalculator","getTimeSpentOnQuestion","useTimeSpentOnQuestions","handleMarkForReview","useCallback","questionId","markedForReview","prevResponses","questionMeta","getQuestionMetadata","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","Styled.NudgeBannerWrapper","WORKSHEET_NUDGE_BANNER_HEIGHT","jsx","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","getRenderableQuestions","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": "2.8.24",
3
+ "version": "2.8.25-asg2",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist"