@cuemath/leap 3.0.22-aa2 → 3.0.22-aa5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/dist/assets/line-icons/icons/check.js +3 -3
  2. package/dist/assets/line-icons/icons/check.js.map +1 -1
  3. package/dist/features/cue-canvas/cue-canvas-context.js +5 -8
  4. package/dist/features/cue-canvas/cue-canvas-context.js.map +1 -1
  5. package/dist/features/cue-canvas/cue-canvas-core.js +47 -51
  6. package/dist/features/cue-canvas/cue-canvas-core.js.map +1 -1
  7. package/dist/features/cue-canvas/cue-canvas-helpers.js +25 -31
  8. package/dist/features/cue-canvas/cue-canvas-helpers.js.map +1 -1
  9. package/dist/features/cue-canvas/cue-canvas-provider.js +12 -14
  10. package/dist/features/cue-canvas/cue-canvas-provider.js.map +1 -1
  11. package/dist/features/cue-canvas/cue-canvas.js +59 -61
  12. package/dist/features/cue-canvas/cue-canvas.js.map +1 -1
  13. package/dist/features/cue-canvas/cue-cavas-styled.js +29 -29
  14. package/dist/features/cue-canvas/hooks/use-canvas-sync-broker.js +46 -50
  15. package/dist/features/cue-canvas/hooks/use-canvas-sync-broker.js.map +1 -1
  16. package/dist/features/cue-canvas/hooks/use-cue-canvas-actions.js +14 -18
  17. package/dist/features/cue-canvas/hooks/use-cue-canvas-actions.js.map +1 -1
  18. package/dist/features/hooks/use-async-error.js +16 -0
  19. package/dist/features/hooks/use-async-error.js.map +1 -0
  20. package/dist/features/ui/stepper/stepper.js +7 -7
  21. package/dist/features/worksheet/worksheet/hooks/use-s3-helper.js +19 -22
  22. package/dist/features/worksheet/worksheet/hooks/use-s3-helper.js.map +1 -1
  23. package/dist/features/worksheet/worksheet/worksheet-helpers.js +81 -66
  24. package/dist/features/worksheet/worksheet/worksheet-helpers.js.map +1 -1
  25. package/dist/features/worksheet/worksheet/worksheet-questions-controller/use-handler-callbacks.js +107 -99
  26. package/dist/features/worksheet/worksheet/worksheet-questions-controller/use-handler-callbacks.js.map +1 -1
  27. package/dist/index.d.ts +1 -38
  28. package/dist/index.js +481 -487
  29. package/dist/index.js.map +1 -1
  30. package/package.json +1 -1
  31. package/dist/assets/line-icons/icons/hw.js +0 -32
  32. package/dist/assets/line-icons/icons/hw.js.map +0 -1
  33. package/dist/assets/line-icons/icons/puzzle-icon.js +0 -51
  34. package/dist/assets/line-icons/icons/puzzle-icon.js.map +0 -1
  35. package/dist/assets/line-icons/icons/share.js +0 -48
  36. package/dist/assets/line-icons/icons/share.js.map +0 -1
  37. package/dist/assets/line-icons/icons/tile.js +0 -54
  38. package/dist/assets/line-icons/icons/tile.js.map +0 -1
  39. package/dist/features/cue-canvas/bottombar/homework-controls.js +0 -73
  40. package/dist/features/cue-canvas/bottombar/homework-controls.js.map +0 -1
  41. package/dist/features/cue-canvas/hooks/use-upload-helper.js +0 -23
  42. package/dist/features/cue-canvas/hooks/use-upload-helper.js.map +0 -1
  43. package/dist/features/cue-canvas/sidebar/homework/helper.js +0 -20
  44. package/dist/features/cue-canvas/sidebar/homework/helper.js.map +0 -1
  45. package/dist/features/cue-canvas/sidebar/homework/homework-menu.js +0 -33
  46. package/dist/features/cue-canvas/sidebar/homework/homework-menu.js.map +0 -1
  47. package/dist/features/cue-canvas/sidebar/homework/homework-request.js +0 -61
  48. package/dist/features/cue-canvas/sidebar/homework/homework-request.js.map +0 -1
  49. package/dist/features/cue-canvas/sidebar/homework/homework-styled.js +0 -25
  50. package/dist/features/cue-canvas/sidebar/homework/homework-styled.js.map +0 -1
  51. package/dist/features/cue-canvas/sidebar/homework/homework.js +0 -29
  52. package/dist/features/cue-canvas/sidebar/homework/homework.js.map +0 -1
  53. package/dist/features/cue-canvas/sidebar/puzzles/api/get-puzzles.js +0 -13
  54. package/dist/features/cue-canvas/sidebar/puzzles/api/get-puzzles.js.map +0 -1
  55. package/dist/features/cue-canvas/sidebar/puzzles/filter-selection-menu.js +0 -60
  56. package/dist/features/cue-canvas/sidebar/puzzles/filter-selection-menu.js.map +0 -1
  57. package/dist/features/cue-canvas/sidebar/puzzles/filters-section.js +0 -44
  58. package/dist/features/cue-canvas/sidebar/puzzles/filters-section.js.map +0 -1
  59. package/dist/features/cue-canvas/sidebar/puzzles/filters.js +0 -107
  60. package/dist/features/cue-canvas/sidebar/puzzles/filters.js.map +0 -1
  61. package/dist/features/cue-canvas/sidebar/puzzles/hooks/use-fetch-cue-canvas-activity.js +0 -42
  62. package/dist/features/cue-canvas/sidebar/puzzles/hooks/use-fetch-cue-canvas-activity.js.map +0 -1
  63. package/dist/features/cue-canvas/sidebar/puzzles/launch-puzzle.js +0 -84
  64. package/dist/features/cue-canvas/sidebar/puzzles/launch-puzzle.js.map +0 -1
  65. package/dist/features/cue-canvas/sidebar/puzzles/puzzle-menu-header.js +0 -36
  66. package/dist/features/cue-canvas/sidebar/puzzles/puzzle-menu-header.js.map +0 -1
  67. package/dist/features/cue-canvas/sidebar/puzzles/puzzle-menu.js +0 -133
  68. package/dist/features/cue-canvas/sidebar/puzzles/puzzle-menu.js.map +0 -1
  69. package/dist/features/cue-canvas/sidebar/puzzles/puzzles-styled.js +0 -96
  70. package/dist/features/cue-canvas/sidebar/puzzles/puzzles-styled.js.map +0 -1
  71. package/dist/features/cue-canvas/sidebar/puzzles/puzzles.js +0 -29
  72. package/dist/features/cue-canvas/sidebar/puzzles/puzzles.js.map +0 -1
  73. package/dist/features/cue-canvas/sidebar/puzzles/utils.js +0 -120
  74. package/dist/features/cue-canvas/sidebar/puzzles/utils.js.map +0 -1
  75. package/dist/features/cue-canvas/sidebar/sidebar-styled.js +0 -32
  76. package/dist/features/cue-canvas/sidebar/sidebar-styled.js.map +0 -1
  77. package/dist/features/cue-canvas/sidebar/sidebar.js +0 -29
  78. package/dist/features/cue-canvas/sidebar/sidebar.js.map +0 -1
  79. package/dist/features/cue-canvas/sidebar/tiles/tile.js +0 -16
  80. package/dist/features/cue-canvas/sidebar/tiles/tile.js.map +0 -1
  81. package/dist/features/hooks/use-debounce.js +0 -16
  82. package/dist/features/hooks/use-debounce.js.map +0 -1
@@ -1,105 +1,106 @@
1
- import { useCallback as c } from "react";
2
- import nt from "../../../hooks/use-audio-player.js";
3
- import it from "../../constants/events.js";
4
- import { SYSTEM_VALIDATION_AUDIO_LIST as ot } from "../constants.js";
5
- import { isOkayTypeQuestion as M, getQuestionMetadata as f, scrollToQuestion as $ } from "../worksheet-helpers.js";
6
- const dt = (y) => {
1
+ import { useCallback as r } from "react";
2
+ import { useAsyncError as ot } from "../../../hooks/use-async-error.js";
3
+ import it from "../../../hooks/use-audio-player.js";
4
+ import rt from "../../constants/events.js";
5
+ import { SYSTEM_VALIDATION_AUDIO_LIST as ct } from "../constants.js";
6
+ import { isOkayTypeQuestion as M, getQuestionMetadata as S, scrollToQuestion as z, getResetedResponseForClozeFormula as lt } from "../worksheet-helpers.js";
7
+ const kt = (B) => {
7
8
  const {
8
- behavior: K,
9
- layout: P,
10
- learnosity: l,
11
- question: q,
12
- questionIndex: k,
9
+ behavior: $,
10
+ layout: v,
11
+ learnosity: a,
12
+ question: C,
13
+ questionIndex: _,
13
14
  questions: o,
14
- getTimeSpentOnQuestion: A
15
- } = y, { setResponses: r, setSummaryVisible: I, setActiveQuestionId: S, setBlocker: d, setSkipped: N } = y, { onHelp: _, onResponseChange: n, onTeacherValidation: B, loggerRef: E } = y, { questionsScrollable: m } = P, { response_id: e, item_type: W, question_number: T, item_number: w, total_questions: x } = q, H = W === "exit-ticket", { validation: Q, teacherValidationEnabled: Y } = K, C = nt(ot), O = c(() => {
16
- const t = l.question(e);
15
+ getTimeSpentOnQuestion: q
16
+ } = B, { setResponses: u, setSummaryVisible: T, setActiveQuestionId: A, setBlocker: d, setSkipped: w } = B, { onHelp: E, onResponseChange: n, onTeacherValidation: y, loggerRef: I } = B, { questionsScrollable: p } = v, { response_id: e, item_type: K, question_number: N, item_number: x, total_questions: H } = C, O = K === "exit-ticket", { validation: Q, teacherValidationEnabled: P } = $, b = it(ct), V = ot(), U = r(() => {
17
+ const t = a.question(e);
17
18
  t && Q && !M(t.getQuestion()) && t.getScore((s) => {
18
- const { max_score: i, score: u } = s || {};
19
- i && C(i === u ? "CORRECT" : "INCORRECT");
19
+ const { max_score: i, score: c } = s || {};
20
+ i && b(i === c ? "CORRECT" : "INCORRECT");
20
21
  });
21
- }, [l, C, e, Q]), V = c(
22
- (t, s, i, u) => {
23
- const b = A(e);
24
- r((D) => {
25
- const a = D[t], h = !!u, L = {
26
- ...f(o, t),
27
- ...a,
22
+ }, [a, b, e, Q]), D = r(
23
+ (t, s, i, c) => {
24
+ const k = q(e);
25
+ u((m) => {
26
+ const l = m[t], h = !!c, F = {
27
+ ...S(o, t),
28
+ ...l,
28
29
  response: s,
29
30
  score: i,
30
31
  responseEdited: !h,
31
- attemptsHistory: h ? [...(a == null ? void 0 : a.attemptsHistory) ?? [], { response: s, score: i }] : a == null ? void 0 : a.attemptsHistory,
32
+ attemptsHistory: h ? [...(l == null ? void 0 : l.attemptsHistory) ?? [], { response: s, score: i }] : l == null ? void 0 : l.attemptsHistory,
32
33
  skipped: !s,
33
- timeSpent: b
34
+ timeSpent: k
34
35
  };
35
36
  return n == null || n({
36
37
  responseId: t,
37
- response: L,
38
- question: o.find((st) => st.response_id === t),
38
+ response: F,
39
+ question: o.find((nt) => nt.response_id === t),
39
40
  isNewAttempt: h
40
41
  }), {
41
- ...D,
42
- [t]: L
42
+ ...m,
43
+ [t]: F
43
44
  };
44
45
  });
45
46
  },
46
- [A, n, o, e, r]
47
- ), U = c(
47
+ [q, n, o, e, u]
48
+ ), L = r(
48
49
  (t, s) => {
49
- r((i) => {
50
- const u = {
51
- ...f(o, t),
50
+ u((i) => {
51
+ const c = {
52
+ ...S(o, t),
52
53
  ...i[t],
53
54
  validatedByTeacher: !0,
54
55
  rating: s
55
56
  };
56
57
  return n == null || n({
57
58
  responseId: t,
58
- response: u,
59
- question: o.find((b) => b.response_id === t),
59
+ response: c,
60
+ question: o.find((k) => k.response_id === t),
60
61
  isNewAttempt: !1
61
62
  }), {
62
63
  ...i,
63
- [t]: u
64
+ [t]: c
64
65
  };
65
66
  });
66
67
  },
67
- [n, o, r]
68
- ), j = c(() => {
69
- _ && q && _({
68
+ [n, o, u]
69
+ ), R = r(() => {
70
+ E && C && E({
70
71
  questionId: e,
71
- questionNumber: `${w + 1}${x > 1 ? String.fromCharCode(97 + T) : ""}`
72
+ questionNumber: `${x + 1}${H > 1 ? String.fromCharCode(97 + N) : ""}`
72
73
  });
73
- }, [w, _, q, T, e, x]), v = c(() => {
74
- E.current(it.WORKSHEET_V3_HINT_SEEN), r((t) => {
74
+ }, [x, E, C, N, e, H]), W = r(() => {
75
+ I.current(rt.WORKSHEET_V3_HINT_SEEN), u((t) => {
75
76
  var i;
76
77
  const s = {
77
- ...f(o, e),
78
+ ...S(o, e),
78
79
  ...t[e],
79
80
  hintsUsed: (((i = t[e]) == null ? void 0 : i.hintsUsed) ?? 0) + 1
80
81
  };
81
82
  return n == null || n({
82
83
  responseId: e,
83
84
  response: s,
84
- question: o.find((u) => u.response_id === e),
85
+ question: o.find((c) => c.response_id === e),
85
86
  isNewAttempt: !1
86
87
  }), {
87
88
  ...t,
88
89
  [e]: s
89
90
  };
90
91
  });
91
- }, [E, n, o, e, r]), z = c(() => {
92
+ }, [I, n, o, e, u]), Y = r(() => {
92
93
  var s;
93
- const t = (s = o[k - 1]) == null ? void 0 : s.response_id;
94
- t && (m ? $(t) : S(t));
95
- }, [k, o, m, S]), F = c(() => {
94
+ const t = (s = o[_ - 1]) == null ? void 0 : s.response_id;
95
+ t && (p ? z(t) : A(t));
96
+ }, [_, o, p, A]), Z = r(() => {
96
97
  var s;
97
- const t = (s = o[k + 1]) == null ? void 0 : s.response_id;
98
- t ? m ? $(t) : S(t) : I(!0);
99
- }, [k, o, m, S, I]), G = c(() => {
100
- r((t) => {
98
+ const t = (s = o[_ + 1]) == null ? void 0 : s.response_id;
99
+ t ? p ? z(t) : A(t) : T(!0);
100
+ }, [_, o, p, A, T]), j = r(() => {
101
+ u((t) => {
101
102
  const s = {
102
- ...f(o, e),
103
+ ...S(o, e),
103
104
  ...t[e],
104
105
  skipped: !0
105
106
  };
@@ -112,46 +113,53 @@ const dt = (y) => {
112
113
  ...t,
113
114
  [e]: s
114
115
  };
115
- }), N(!0);
116
- }, [n, o, e, r, N]), p = c(
116
+ }), w(!0);
117
+ }, [n, o, e, u, w]), f = r(
117
118
  (t) => {
118
- const s = l.question(e);
119
- s && s.getScore((i) => {
120
- V(
121
- e,
122
- s.getResponse(),
123
- M(s.getQuestion()) || !i ? {
124
- max_score: 0,
125
- score: 0,
126
- unscored: !i
127
- // score will be null for unscored questions
128
- } : { ...i, score: i.score ?? 0 },
129
- t
130
- );
131
- });
119
+ const s = a.question(e);
120
+ if (s) {
121
+ const i = s.getQuestion(), c = s.getResponse(), k = i.type === "clozeformula" && c && (c == null ? void 0 : c.value);
122
+ let m = {
123
+ response: c,
124
+ reportAbuse: !1
125
+ };
126
+ k && (m = lt(c)), s.getScore((l) => {
127
+ D(
128
+ e,
129
+ m.response,
130
+ M(i) || !l ? {
131
+ max_score: 0,
132
+ score: 0,
133
+ unscored: !l
134
+ // score will be null for unscored questions
135
+ } : { ...l, score: l.score ?? 0 },
136
+ t
137
+ );
138
+ }), m.reportAbuse && V(new Error("CLOZE_FORMULA_ABUSE_DETECTED"));
139
+ }
132
140
  },
133
- [l, e, V]
134
- ), J = c(() => {
135
- const t = l.question(e);
136
- t && (t.enable(), t.resetValidationUI(), p());
137
- }, [p, l, e]), g = c(() => {
138
- O(), p(!0);
139
- }, [p, O]), X = c(() => {
140
- const t = l.question(e);
141
+ [a, e, V, D]
142
+ ), G = r(() => {
143
+ const t = a.question(e);
144
+ t && (t.enable(), t.resetValidationUI(), f());
145
+ }, [f, a, e]), g = r(() => {
146
+ U(), f(!0);
147
+ }, [f, U]), J = r(() => {
148
+ const t = a.question(e);
141
149
  t && (t.disable(), t.validate(
142
150
  {
143
151
  feedbackAttempts: !0
144
152
  },
145
153
  g
146
154
  ));
147
- }, [g, l, e]), Z = c(() => {
148
- H ? d("exit-ticket-review") : B == null || B(e);
149
- }, [H, B, e, d]), R = c(() => {
150
- U(e);
151
- }, [e, U]), tt = c(() => {
152
- r((t) => {
155
+ }, [g, a, e]), X = r(() => {
156
+ O ? d("exit-ticket-review") : y == null || y(e);
157
+ }, [O, y, e, d]), tt = r(() => {
158
+ L(e);
159
+ }, [e, L]), et = r(() => {
160
+ u((t) => {
153
161
  const s = {
154
- ...f(o, e),
162
+ ...S(o, e),
155
163
  ...t[e],
156
164
  submittedByStudent: !0
157
165
  };
@@ -165,25 +173,25 @@ const dt = (y) => {
165
173
  [e]: s
166
174
  };
167
175
  }), d("exit-ticket-student-submission");
168
- }, [n, o, e, d, r]), et = c(() => {
176
+ }, [n, o, e, d, u]), st = r(() => {
169
177
  d("optional-items-skip");
170
178
  }, [d]);
171
179
  return {
172
- handleResponseChange: p,
173
- handleHelpButtonClick: _ ? j : void 0,
174
- handleHintButtonClick: v,
175
- handleBackButtonClick: !m && !Y ? z : void 0,
176
- handleNextButtonClick: F,
177
- handleRetryButtonClick: J,
178
- handleCheckButtonClick: X,
179
- handleValidateButtonClick: Z,
180
- handleStartButtonClick: R,
181
- handleReadyButtonClick: tt,
182
- handleSkipSectionButtonClick: et,
183
- handleSkipButtonClick: G
180
+ handleResponseChange: f,
181
+ handleHelpButtonClick: E ? R : void 0,
182
+ handleHintButtonClick: W,
183
+ handleBackButtonClick: !p && !P ? Y : void 0,
184
+ handleNextButtonClick: Z,
185
+ handleRetryButtonClick: G,
186
+ handleCheckButtonClick: J,
187
+ handleValidateButtonClick: X,
188
+ handleStartButtonClick: tt,
189
+ handleReadyButtonClick: et,
190
+ handleSkipSectionButtonClick: st,
191
+ handleSkipButtonClick: j
184
192
  };
185
193
  };
186
194
  export {
187
- dt as default
195
+ kt as default
188
196
  };
189
197
  //# sourceMappingURL=use-handler-callbacks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-handler-callbacks.js","sources":["../../../../../src/features/worksheet/worksheet/worksheet-questions-controller/use-handler-callbacks.ts"],"sourcesContent":["import type {\n ILearnosityQuestionResponse,\n ILearnosityQuestionScore,\n IWorksheetResponse,\n} from '../worksheet-types';\nimport type { IWorksheetQuestionsControllerProps } from './worksheet-questions-controller-types';\nimport type { Dispatch, SetStateAction } from 'react';\n\nimport { useCallback } from 'react';\n\nimport useAudioPlayer from '../../../hooks/use-audio-player';\nimport EVENTS from '../../constants/events';\nimport { SYSTEM_VALIDATION_AUDIO_LIST } from '../constants';\nimport { getQuestionMetadata, isOkayTypeQuestion, scrollToQuestion } from '../worksheet-helpers';\n\ninterface IUseHandlerCallbacks {\n (\n options: Pick<\n IWorksheetQuestionsControllerProps,\n | 'learnosity'\n | 'layout'\n | 'questionIndex'\n | 'question'\n | 'questions'\n | 'setActiveQuestionId'\n | 'setResponses'\n | 'setSummaryVisible'\n | 'setBlocker'\n | 'onHelp'\n | 'onResponseChange'\n | 'onTeacherValidation'\n | 'behavior'\n | 'loggerRef'\n | 'getTimeSpentOnQuestion'\n > & {\n setSkipped: Dispatch<SetStateAction<boolean>>;\n },\n ): {\n handleResponseChange: () => void;\n handleHelpButtonClick?: () => void;\n handleHintButtonClick: () => void;\n handleBackButtonClick?: () => void;\n handleNextButtonClick: () => void;\n handleRetryButtonClick: () => void;\n handleCheckButtonClick: () => void;\n handleValidateButtonClick: () => void;\n handleStartButtonClick: () => void;\n handleReadyButtonClick: () => void;\n handleSkipSectionButtonClick: () => void;\n handleSkipButtonClick: () => void;\n };\n}\n\nconst useHandlerCallbacks: IUseHandlerCallbacks = options => {\n const {\n behavior,\n layout,\n learnosity,\n question,\n questionIndex,\n questions,\n getTimeSpentOnQuestion,\n } = options;\n const { setResponses, setSummaryVisible, setActiveQuestionId, setBlocker, setSkipped } = options;\n const { onHelp, onResponseChange, onTeacherValidation, loggerRef } = options;\n const { questionsScrollable } = layout;\n const { response_id, item_type, question_number, item_number, total_questions } = question;\n const isExitTicket = item_type === 'exit-ticket';\n const { validation, teacherValidationEnabled } = behavior;\n const playNotifSound = useAudioPlayer(SYSTEM_VALIDATION_AUDIO_LIST);\n\n const playAudio = useCallback(() => {\n const questionInstance = learnosity.question(response_id);\n\n if (questionInstance && validation && !isOkayTypeQuestion(questionInstance.getQuestion())) {\n questionInstance.getScore(sc => {\n const { max_score: maxScore, score: currentScore } = sc || {};\n\n if (maxScore) {\n if (maxScore === currentScore) {\n playNotifSound('CORRECT');\n } else {\n playNotifSound('INCORRECT');\n }\n }\n });\n }\n }, [learnosity, playNotifSound, response_id, validation]);\n\n const updateResponse = useCallback(\n (\n questionId: string,\n response: ILearnosityQuestionResponse,\n score: ILearnosityQuestionScore,\n answerChecked?: boolean,\n ) => {\n const timeSpentOnQuestions = getTimeSpentOnQuestion(response_id);\n\n setResponses(prevResponses => {\n const prevResponse = prevResponses[questionId];\n const isNewAttempt = !!answerChecked;\n\n const newResponse = {\n ...getQuestionMetadata(questions, questionId),\n ...prevResponse,\n response,\n score,\n responseEdited: !isNewAttempt,\n attemptsHistory: isNewAttempt\n ? [...(prevResponse?.attemptsHistory ?? []), { response, score }]\n : prevResponse?.attemptsHistory,\n skipped: !response,\n timeSpent: timeSpentOnQuestions,\n };\n\n onResponseChange?.({\n responseId: questionId,\n response: newResponse,\n question: questions.find(q => q.response_id === questionId)!,\n isNewAttempt,\n });\n\n return {\n ...prevResponses,\n [questionId]: newResponse,\n };\n });\n },\n [getTimeSpentOnQuestion, onResponseChange, questions, response_id, setResponses],\n );\n\n const validateQuestion = useCallback(\n (questionId: string, rating?: number) => {\n setResponses(prevResponses => {\n const newResponse = {\n ...getQuestionMetadata(questions, questionId),\n ...prevResponses[questionId],\n validatedByTeacher: true,\n rating,\n };\n\n onResponseChange?.({\n responseId: questionId,\n response: newResponse,\n question: questions.find(q => q.response_id === questionId)!,\n isNewAttempt: false,\n });\n\n return {\n ...prevResponses,\n [questionId]: newResponse,\n };\n });\n },\n [onResponseChange, questions, setResponses],\n );\n\n const handleHelpButtonClick = useCallback(() => {\n if (onHelp && question) {\n onHelp({\n questionId: response_id,\n questionNumber: `${item_number + 1}${\n total_questions > 1 ? String.fromCharCode('a'.charCodeAt(0) + question_number) : ''\n }`,\n });\n }\n }, [item_number, onHelp, question, question_number, response_id, total_questions]);\n\n const handleHintButtonClick = useCallback(() => {\n loggerRef.current(EVENTS.WORKSHEET_V3_HINT_SEEN);\n setResponses(prevResponses => {\n const newResponse = {\n ...getQuestionMetadata(questions, response_id),\n ...prevResponses[response_id],\n hintsUsed: (prevResponses[response_id]?.hintsUsed ?? 0) + 1,\n };\n\n onResponseChange?.({\n responseId: response_id,\n response: newResponse,\n question: questions.find(q => q.response_id === response_id)!,\n isNewAttempt: false,\n });\n\n return {\n ...prevResponses,\n [response_id]: newResponse,\n };\n });\n }, [loggerRef, onResponseChange, questions, response_id, setResponses]);\n\n const handleBackButtonClick = useCallback(() => {\n const questionId = questions[questionIndex - 1]?.response_id;\n\n if (questionId) {\n if (questionsScrollable) {\n scrollToQuestion(questionId);\n } else {\n setActiveQuestionId(questionId);\n }\n }\n }, [questionIndex, questions, questionsScrollable, setActiveQuestionId]);\n\n const handleNextButtonClick = useCallback(() => {\n const questionId = questions[questionIndex + 1]?.response_id;\n\n if (questionId) {\n if (questionsScrollable) {\n scrollToQuestion(questionId);\n } else {\n setActiveQuestionId(questionId);\n }\n } else {\n setSummaryVisible(true);\n }\n }, [questionIndex, questions, questionsScrollable, setActiveQuestionId, setSummaryVisible]);\n\n const handleSkipButtonClick = useCallback(() => {\n setResponses(prevResponses => {\n const newResponse = {\n ...getQuestionMetadata(questions, response_id),\n ...prevResponses[response_id],\n skipped: true,\n };\n\n onResponseChange?.({\n responseId: response_id,\n response: newResponse,\n question: questions.find(q => q.response_id === response_id)!,\n isNewAttempt: false,\n });\n\n return {\n ...prevResponses,\n [response_id]: newResponse,\n };\n });\n setSkipped(true);\n }, [onResponseChange, questions, response_id, setResponses, setSkipped]);\n\n const handleResponseChange = useCallback(\n (answerChecked?: boolean) => {\n const questionInstance = learnosity.question(response_id);\n\n if (questionInstance) {\n questionInstance.getScore(score => {\n updateResponse(\n response_id,\n questionInstance.getResponse(),\n isOkayTypeQuestion(questionInstance.getQuestion()) || !score\n ? {\n max_score: 0,\n score: 0,\n unscored: !score, // score will be null for unscored questions\n }\n : { ...score, score: score.score ?? 0 },\n answerChecked,\n );\n });\n }\n },\n [learnosity, response_id, updateResponse],\n );\n\n const handleRetryButtonClick = useCallback(() => {\n const questionInstance = learnosity.question(response_id);\n\n if (questionInstance) {\n questionInstance.enable();\n questionInstance.resetValidationUI();\n handleResponseChange();\n }\n }, [handleResponseChange, learnosity, response_id]);\n\n const handleValidate = useCallback(() => {\n playAudio();\n handleResponseChange(true);\n }, [handleResponseChange, playAudio]);\n\n const handleCheckButtonClick = useCallback(() => {\n const questionInstance = learnosity.question(response_id);\n\n if (questionInstance) {\n questionInstance.disable();\n questionInstance.validate(\n {\n feedbackAttempts: true,\n },\n handleValidate,\n );\n }\n }, [handleValidate, learnosity, response_id]);\n\n const handleValidateButtonClick = useCallback(() => {\n if (isExitTicket) {\n setBlocker('exit-ticket-review');\n } else {\n onTeacherValidation?.(response_id);\n }\n }, [isExitTicket, onTeacherValidation, response_id, setBlocker]);\n\n const handleStartButtonClick = useCallback(() => {\n validateQuestion(response_id);\n }, [response_id, validateQuestion]);\n\n const handleReadyButtonClick = useCallback(() => {\n setResponses(prevResponses => {\n const newResponse: IWorksheetResponse = {\n ...getQuestionMetadata(questions, response_id),\n ...prevResponses[response_id],\n submittedByStudent: true,\n };\n\n onResponseChange?.({\n responseId: response_id,\n response: newResponse,\n question: questions.find(q => q.response_id === response_id)!,\n isNewAttempt: false,\n });\n\n return {\n ...prevResponses,\n [response_id]: newResponse,\n };\n });\n setBlocker('exit-ticket-student-submission');\n }, [onResponseChange, questions, response_id, setBlocker, setResponses]);\n\n const handleSkipSectionButtonClick = useCallback(() => {\n setBlocker('optional-items-skip');\n }, [setBlocker]);\n\n return {\n handleResponseChange,\n handleHelpButtonClick: onHelp ? handleHelpButtonClick : undefined,\n handleHintButtonClick,\n handleBackButtonClick:\n !questionsScrollable && !teacherValidationEnabled ? handleBackButtonClick : undefined,\n handleNextButtonClick,\n handleRetryButtonClick,\n handleCheckButtonClick,\n handleValidateButtonClick,\n handleStartButtonClick,\n handleReadyButtonClick,\n handleSkipSectionButtonClick,\n handleSkipButtonClick,\n };\n};\n\nexport default useHandlerCallbacks;\n"],"names":["useHandlerCallbacks","options","behavior","layout","learnosity","question","questionIndex","questions","getTimeSpentOnQuestion","setResponses","setSummaryVisible","setActiveQuestionId","setBlocker","setSkipped","onHelp","onResponseChange","onTeacherValidation","loggerRef","questionsScrollable","response_id","item_type","question_number","item_number","total_questions","isExitTicket","validation","teacherValidationEnabled","playNotifSound","useAudioPlayer","SYSTEM_VALIDATION_AUDIO_LIST","playAudio","useCallback","questionInstance","isOkayTypeQuestion","sc","maxScore","currentScore","updateResponse","questionId","response","score","answerChecked","timeSpentOnQuestions","prevResponses","prevResponse","isNewAttempt","newResponse","getQuestionMetadata","q","validateQuestion","rating","handleHelpButtonClick","handleHintButtonClick","EVENTS","_a","handleBackButtonClick","scrollToQuestion","handleNextButtonClick","handleSkipButtonClick","handleResponseChange","handleRetryButtonClick","handleValidate","handleCheckButtonClick","handleValidateButtonClick","handleStartButtonClick","handleReadyButtonClick","handleSkipSectionButtonClick"],"mappings":"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"}
1
+ {"version":3,"file":"use-handler-callbacks.js","sources":["../../../../../src/features/worksheet/worksheet/worksheet-questions-controller/use-handler-callbacks.ts"],"sourcesContent":["import type {\n ILearnosityQuestionResponse,\n ILearnosityQuestionScore,\n IWorksheetResponse,\n} from '../worksheet-types';\nimport type { IWorksheetQuestionsControllerProps } from './worksheet-questions-controller-types';\nimport type { Dispatch, SetStateAction } from 'react';\n\nimport { useCallback } from 'react';\n\nimport { useAsyncError } from '../../../hooks/use-async-error';\nimport useAudioPlayer from '../../../hooks/use-audio-player';\nimport EVENTS from '../../constants/events';\nimport { SYSTEM_VALIDATION_AUDIO_LIST } from '../constants';\nimport { getQuestionMetadata, isOkayTypeQuestion, scrollToQuestion } from '../worksheet-helpers';\nimport { getResetedResponseForClozeFormula } from '../worksheet-helpers';\n\ninterface IUseHandlerCallbacks {\n (\n options: Pick<\n IWorksheetQuestionsControllerProps,\n | 'learnosity'\n | 'layout'\n | 'questionIndex'\n | 'question'\n | 'questions'\n | 'setActiveQuestionId'\n | 'setResponses'\n | 'setSummaryVisible'\n | 'setBlocker'\n | 'onHelp'\n | 'onResponseChange'\n | 'onTeacherValidation'\n | 'behavior'\n | 'loggerRef'\n | 'getTimeSpentOnQuestion'\n > & {\n setSkipped: Dispatch<SetStateAction<boolean>>;\n },\n ): {\n handleResponseChange: () => void;\n handleHelpButtonClick?: () => void;\n handleHintButtonClick: () => void;\n handleBackButtonClick?: () => void;\n handleNextButtonClick: () => void;\n handleRetryButtonClick: () => void;\n handleCheckButtonClick: () => void;\n handleValidateButtonClick: () => void;\n handleStartButtonClick: () => void;\n handleReadyButtonClick: () => void;\n handleSkipSectionButtonClick: () => void;\n handleSkipButtonClick: () => void;\n };\n}\n\nconst useHandlerCallbacks: IUseHandlerCallbacks = options => {\n const {\n behavior,\n layout,\n learnosity,\n question,\n questionIndex,\n questions,\n getTimeSpentOnQuestion,\n } = options;\n const { setResponses, setSummaryVisible, setActiveQuestionId, setBlocker, setSkipped } = options;\n const { onHelp, onResponseChange, onTeacherValidation, loggerRef } = options;\n const { questionsScrollable } = layout;\n const { response_id, item_type, question_number, item_number, total_questions } = question;\n const isExitTicket = item_type === 'exit-ticket';\n const { validation, teacherValidationEnabled } = behavior;\n const playNotifSound = useAudioPlayer(SYSTEM_VALIDATION_AUDIO_LIST);\n const throwAsyncError = useAsyncError();\n\n const playAudio = useCallback(() => {\n const questionInstance = learnosity.question(response_id);\n\n if (questionInstance && validation && !isOkayTypeQuestion(questionInstance.getQuestion())) {\n questionInstance.getScore(sc => {\n const { max_score: maxScore, score: currentScore } = sc || {};\n\n if (maxScore) {\n if (maxScore === currentScore) {\n playNotifSound('CORRECT');\n } else {\n playNotifSound('INCORRECT');\n }\n }\n });\n }\n }, [learnosity, playNotifSound, response_id, validation]);\n\n const updateResponse = useCallback(\n (\n questionId: string,\n response: ILearnosityQuestionResponse,\n score: ILearnosityQuestionScore,\n answerChecked?: boolean,\n ) => {\n const timeSpentOnQuestions = getTimeSpentOnQuestion(response_id);\n\n setResponses(prevResponses => {\n const prevResponse = prevResponses[questionId];\n const isNewAttempt = !!answerChecked;\n\n const newResponse = {\n ...getQuestionMetadata(questions, questionId),\n ...prevResponse,\n response,\n score,\n responseEdited: !isNewAttempt,\n attemptsHistory: isNewAttempt\n ? [...(prevResponse?.attemptsHistory ?? []), { response, score }]\n : prevResponse?.attemptsHistory,\n skipped: !response,\n timeSpent: timeSpentOnQuestions,\n };\n\n onResponseChange?.({\n responseId: questionId,\n response: newResponse,\n question: questions.find(q => q.response_id === questionId)!,\n isNewAttempt,\n });\n\n return {\n ...prevResponses,\n [questionId]: newResponse,\n };\n });\n },\n [getTimeSpentOnQuestion, onResponseChange, questions, response_id, setResponses],\n );\n\n const validateQuestion = useCallback(\n (questionId: string, rating?: number) => {\n setResponses(prevResponses => {\n const newResponse = {\n ...getQuestionMetadata(questions, questionId),\n ...prevResponses[questionId],\n validatedByTeacher: true,\n rating,\n };\n\n onResponseChange?.({\n responseId: questionId,\n response: newResponse,\n question: questions.find(q => q.response_id === questionId)!,\n isNewAttempt: false,\n });\n\n return {\n ...prevResponses,\n [questionId]: newResponse,\n };\n });\n },\n [onResponseChange, questions, setResponses],\n );\n\n const handleHelpButtonClick = useCallback(() => {\n if (onHelp && question) {\n onHelp({\n questionId: response_id,\n questionNumber: `${item_number + 1}${\n total_questions > 1 ? String.fromCharCode('a'.charCodeAt(0) + question_number) : ''\n }`,\n });\n }\n }, [item_number, onHelp, question, question_number, response_id, total_questions]);\n\n const handleHintButtonClick = useCallback(() => {\n loggerRef.current(EVENTS.WORKSHEET_V3_HINT_SEEN);\n setResponses(prevResponses => {\n const newResponse = {\n ...getQuestionMetadata(questions, response_id),\n ...prevResponses[response_id],\n hintsUsed: (prevResponses[response_id]?.hintsUsed ?? 0) + 1,\n };\n\n onResponseChange?.({\n responseId: response_id,\n response: newResponse,\n question: questions.find(q => q.response_id === response_id)!,\n isNewAttempt: false,\n });\n\n return {\n ...prevResponses,\n [response_id]: newResponse,\n };\n });\n }, [loggerRef, onResponseChange, questions, response_id, setResponses]);\n\n const handleBackButtonClick = useCallback(() => {\n const questionId = questions[questionIndex - 1]?.response_id;\n\n if (questionId) {\n if (questionsScrollable) {\n scrollToQuestion(questionId);\n } else {\n setActiveQuestionId(questionId);\n }\n }\n }, [questionIndex, questions, questionsScrollable, setActiveQuestionId]);\n\n const handleNextButtonClick = useCallback(() => {\n const questionId = questions[questionIndex + 1]?.response_id;\n\n if (questionId) {\n if (questionsScrollable) {\n scrollToQuestion(questionId);\n } else {\n setActiveQuestionId(questionId);\n }\n } else {\n setSummaryVisible(true);\n }\n }, [questionIndex, questions, questionsScrollable, setActiveQuestionId, setSummaryVisible]);\n\n const handleSkipButtonClick = useCallback(() => {\n setResponses(prevResponses => {\n const newResponse = {\n ...getQuestionMetadata(questions, response_id),\n ...prevResponses[response_id],\n skipped: true,\n };\n\n onResponseChange?.({\n responseId: response_id,\n response: newResponse,\n question: questions.find(q => q.response_id === response_id)!,\n isNewAttempt: false,\n });\n\n return {\n ...prevResponses,\n [response_id]: newResponse,\n };\n });\n setSkipped(true);\n }, [onResponseChange, questions, response_id, setResponses, setSkipped]);\n\n const handleResponseChange = useCallback(\n (answerChecked?: boolean) => {\n const questionInstance = learnosity.question(response_id);\n\n if (questionInstance) {\n const lquestion = questionInstance.getQuestion();\n const questionResponse = questionInstance.getResponse();\n\n const shouldCheckAbuse =\n lquestion.type === 'clozeformula' && questionResponse && questionResponse?.value;\n let data = {\n response: questionResponse,\n reportAbuse: false,\n };\n\n if (shouldCheckAbuse) {\n data = getResetedResponseForClozeFormula(questionResponse);\n }\n\n questionInstance.getScore(score => {\n updateResponse(\n response_id,\n data.response,\n isOkayTypeQuestion(lquestion) || !score\n ? {\n max_score: 0,\n score: 0,\n unscored: !score, // score will be null for unscored questions\n }\n : { ...score, score: score.score ?? 0 },\n answerChecked,\n );\n });\n if (data.reportAbuse) {\n throwAsyncError(new Error('CLOZE_FORMULA_ABUSE_DETECTED'));\n }\n }\n },\n [learnosity, response_id, throwAsyncError, updateResponse],\n );\n\n const handleRetryButtonClick = useCallback(() => {\n const questionInstance = learnosity.question(response_id);\n\n if (questionInstance) {\n questionInstance.enable();\n questionInstance.resetValidationUI();\n handleResponseChange();\n }\n }, [handleResponseChange, learnosity, response_id]);\n\n const handleValidate = useCallback(() => {\n playAudio();\n handleResponseChange(true);\n }, [handleResponseChange, playAudio]);\n\n const handleCheckButtonClick = useCallback(() => {\n const questionInstance = learnosity.question(response_id);\n\n if (questionInstance) {\n questionInstance.disable();\n questionInstance.validate(\n {\n feedbackAttempts: true,\n },\n handleValidate,\n );\n }\n }, [handleValidate, learnosity, response_id]);\n\n const handleValidateButtonClick = useCallback(() => {\n if (isExitTicket) {\n setBlocker('exit-ticket-review');\n } else {\n onTeacherValidation?.(response_id);\n }\n }, [isExitTicket, onTeacherValidation, response_id, setBlocker]);\n\n const handleStartButtonClick = useCallback(() => {\n validateQuestion(response_id);\n }, [response_id, validateQuestion]);\n\n const handleReadyButtonClick = useCallback(() => {\n setResponses(prevResponses => {\n const newResponse: IWorksheetResponse = {\n ...getQuestionMetadata(questions, response_id),\n ...prevResponses[response_id],\n submittedByStudent: true,\n };\n\n onResponseChange?.({\n responseId: response_id,\n response: newResponse,\n question: questions.find(q => q.response_id === response_id)!,\n isNewAttempt: false,\n });\n\n return {\n ...prevResponses,\n [response_id]: newResponse,\n };\n });\n setBlocker('exit-ticket-student-submission');\n }, [onResponseChange, questions, response_id, setBlocker, setResponses]);\n\n const handleSkipSectionButtonClick = useCallback(() => {\n setBlocker('optional-items-skip');\n }, [setBlocker]);\n\n return {\n handleResponseChange,\n handleHelpButtonClick: onHelp ? handleHelpButtonClick : undefined,\n handleHintButtonClick,\n handleBackButtonClick:\n !questionsScrollable && !teacherValidationEnabled ? handleBackButtonClick : undefined,\n handleNextButtonClick,\n handleRetryButtonClick,\n handleCheckButtonClick,\n handleValidateButtonClick,\n handleStartButtonClick,\n handleReadyButtonClick,\n handleSkipSectionButtonClick,\n handleSkipButtonClick,\n };\n};\n\nexport default useHandlerCallbacks;\n"],"names":["useHandlerCallbacks","options","behavior","layout","learnosity","question","questionIndex","questions","getTimeSpentOnQuestion","setResponses","setSummaryVisible","setActiveQuestionId","setBlocker","setSkipped","onHelp","onResponseChange","onTeacherValidation","loggerRef","questionsScrollable","response_id","item_type","question_number","item_number","total_questions","isExitTicket","validation","teacherValidationEnabled","playNotifSound","useAudioPlayer","SYSTEM_VALIDATION_AUDIO_LIST","throwAsyncError","useAsyncError","playAudio","useCallback","questionInstance","isOkayTypeQuestion","sc","maxScore","currentScore","updateResponse","questionId","response","score","answerChecked","timeSpentOnQuestions","prevResponses","prevResponse","isNewAttempt","newResponse","getQuestionMetadata","q","validateQuestion","rating","handleHelpButtonClick","handleHintButtonClick","EVENTS","_a","handleBackButtonClick","scrollToQuestion","handleNextButtonClick","handleSkipButtonClick","handleResponseChange","lquestion","questionResponse","shouldCheckAbuse","data","getResetedResponseForClozeFormula","handleRetryButtonClick","handleValidate","handleCheckButtonClick","handleValidateButtonClick","handleStartButtonClick","handleReadyButtonClick","handleSkipSectionButtonClick"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -295,14 +295,10 @@ export declare const CueCanvas: React.FC<ICueCanvas>;
295
295
 
296
296
  export declare const CueCanvasController: React_2.FC<IToolbarProps>;
297
297
 
298
- export declare const CueCanvasHomeworkController: NamedExoticComponent<IHomeWorkControllerProps>;
299
-
300
298
  export declare const CueCanvasProvider: FC<PropsWithChildren<{
301
299
  userType: TUserTypes;
302
300
  }>>;
303
301
 
304
- export declare const CueCanvasSideBar: NamedExoticComponent<ISidebar>;
305
-
306
302
  export declare const CuemathLogo: React_2.FC<React_2.SVGProps<SVGSVGElement>>;
307
303
 
308
304
  export declare const CueRocket: React.FC<React.SVGProps<SVGSVGElement>>;
@@ -549,8 +545,6 @@ declare interface HWCardListProps extends INodeCardCallbacks {
549
545
  canStartJourney?: boolean;
550
546
  }
551
547
 
552
- export declare const HWIcon: React_2.FC<React_2.SVGProps<SVGSVGElement>>;
553
-
554
548
  declare interface IAccordionSectionProps {
555
549
  headerElement: React.ReactElement;
556
550
  bodyElement: React.ReactElement;
@@ -1484,30 +1478,6 @@ export declare interface IHomepageStartJourneyProps {
1484
1478
  userType: TUserTypes;
1485
1479
  }
1486
1480
 
1487
- declare interface IHomeWorkControllerProps {
1488
- width: number;
1489
- hwRequests?: IHomeWorkHelpRequestModel[];
1490
- onMarkAsResolved?: (homeworkId: string, onSuccess: () => void) => void;
1491
- onSendImageToChat?: (homeworkId: string, snapshot: Blob[], onSuccess: () => void) => void;
1492
- }
1493
-
1494
- export declare interface IHomeWorkHelpRequestModel {
1495
- channel_id: string;
1496
- created_on_ts: number;
1497
- homework_id: string;
1498
- id: string;
1499
- message_timestamp: string;
1500
- problem_description: string;
1501
- problem_image_urls: string[];
1502
- state: string;
1503
- student_id: string;
1504
- teacher_id: string;
1505
- }
1506
-
1507
- declare interface IHomeWorkHelpRequestModelWithStudentName extends IHomeWorkHelpRequestModel {
1508
- student_name: string;
1509
- }
1510
-
1511
1481
  declare interface IIconButtonProps extends Omit<IButtonProps, 'label' | 'shape' | 'widthX' | 'width' | 'iconPosition' | 'alignSelf' | 'analyticsLabel' | 'renderAs'>, Required<Pick<IClickableAnalyticsProps, 'analyticsLabel'>> {
1512
1482
  Icon: React.FC<React.SVGProps<SVGSVGElement>>;
1513
1483
  customBgColor?: TColorNames;
@@ -2996,11 +2966,6 @@ declare interface ISheetsListProps extends ISheetItemCallbackProps {
2996
2966
  section?: TSheetsSection;
2997
2967
  }
2998
2968
 
2999
- declare interface ISidebar {
3000
- grade?: string;
3001
- hwRequests?: IHomeWorkHelpRequestModelWithStudentName[];
3002
- }
3003
-
3004
2969
  declare interface ISignupMethodsProps {
3005
2970
  onEmailSignup: () => void;
3006
2971
  onPhoneSignup: () => void;
@@ -3369,8 +3334,6 @@ declare interface ITile {
3369
3334
  toPort?: string;
3370
3335
  toTileId: string;
3371
3336
  }[];
3372
- html?: string;
3373
- width?: number | string;
3374
3337
  }
3375
3338
 
3376
3339
  declare interface ITimeLeftTimelineProps {
@@ -5647,7 +5610,7 @@ export declare const UpIcon: React.FC<React.SVGProps<SVGSVGElement>>;
5647
5610
 
5648
5611
  export declare const useAutoPlayPermission: () => IAutoPlayPermissionContextType;
5649
5612
 
5650
- export declare const useCanvasSyncBroker: (channelId: string, logEvent: (type: string, payload?: Record<string, unknown>) => void, initialCanvasData?: Array<IChannelMessage>, type?: TRenderAs_2) => {
5613
+ export declare const useCanvasSyncBroker: (channelId: string, logEvent: (type: string, payload?: Record<string, unknown>) => void, initialCanvasData?: Array<IChannelMessage>) => {
5651
5614
  publishStrokes: ((message: unknown) => boolean) | undefined;
5652
5615
  channelStatus: ChannelStatus | undefined;
5653
5616
  closeChannel: () => void;