@cuemath/leap 3.5.47-gg10 → 3.5.47-gg11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,37 +1,38 @@
1
- import { jsxs as re, Fragment as ue, jsx as n } from "react/jsx-runtime";
1
+ import { jsxs as ue, Fragment as le, jsx as n } from "react/jsx-runtime";
2
2
  import { deepEqual as ae } from "../../../../../node_modules/fast-equals/dist/esm/index.js";
3
- import { memo as le, useMemo as de, useState as ce, useCallback as D, useEffect as H } from "react";
3
+ import { memo as de, useMemo as ce, useState as me, useCallback as D, useEffect as H } from "react";
4
4
  import V from "../../../../ui/arrow-tooltip/arrow-tooltip.js";
5
5
  import o from "../../../../ui/buttons/button/button.js";
6
- import { useWorksheetStore as me } from "../../hooks/use-worksheet-store.js";
7
- import { isTeacherInterventionNeeded as pe } from "../../worksheet-helpers.js";
8
- import ke from "../hooks/use-handle-check-button-click.js";
6
+ import { useWorksheetStore as pe } from "../../hooks/use-worksheet-store.js";
7
+ import { isTeacherInterventionNeeded as ke } from "../../worksheet-helpers.js";
8
+ import he from "../hooks/use-handle-check-button-click.js";
9
9
  import Be from "../hooks/use-handle-next-button-click.js";
10
10
  import be from "../hooks/use-handle-response-change.js";
11
- import he from "../hooks/use-handle-retry-button-click.js";
12
- import fe from "../hooks/use-play-validation-audio.js";
13
- import ye from "../hooks/use-handle-start-button-click.js";
14
- import Ce from "../hooks/use-handle-skip-button-click.js";
15
- import xe from "../hooks/use-handle-submit-quiz.js";
16
- const Ae = (x, b) => b.filter(
11
+ import fe from "../hooks/use-handle-retry-button-click.js";
12
+ import ye from "../hooks/use-play-validation-audio.js";
13
+ import Ce from "../hooks/use-handle-start-button-click.js";
14
+ import xe from "../hooks/use-handle-skip-button-click.js";
15
+ import Ae from "../hooks/use-handle-submit-quiz.js";
16
+ const Se = (x, B) => B.filter(
17
17
  (r) => r.item_type === "exit-ticket" && !r.is_non_question
18
18
  ).every((r) => {
19
19
  var s;
20
20
  return ((s = x[r.response_id]) == null ? void 0 : s.validatedByTeacher) === !0;
21
- }), Ve = le(
22
- function(b) {
21
+ }), Re = de(
22
+ function(B) {
23
23
  const {
24
24
  behavior: A,
25
25
  question: r,
26
26
  questions: s,
27
27
  response: e,
28
- responses: l,
28
+ responses: a,
29
29
  learnosity: S,
30
30
  isQuestionAppended: d,
31
- inClass: h,
31
+ inClass: b,
32
32
  isLastQuestion: c,
33
- onSubmit: m
34
- } = me((t) => {
33
+ onSubmit: m,
34
+ worksheetCompleted: R
35
+ } = pe((t) => {
35
36
  const i = t.questions[t.activeQuestionIndex];
36
37
  return {
37
38
  behavior: t.behavior,
@@ -43,37 +44,38 @@ const Ae = (x, b) => b.filter(
43
44
  isQuestionAppended: t.appendedQuestionIds.includes(i.response_id),
44
45
  inClass: t.inClass,
45
46
  isLastQuestion: t.activeQuestionIndex === t.questions.length - 1,
46
- onSubmit: t.onSubmit
47
+ onSubmit: t.onSubmit,
48
+ worksheetCompleted: t.worksheetCompleted
47
49
  };
48
- }), { getTimeSpentOnQuestion: R } = b, {
50
+ }), { getTimeSpentOnQuestion: X } = B, {
49
51
  canAttempt: u,
50
- checkButtonLabel: X,
51
- retryButtonLabel: j,
52
+ checkButtonLabel: j,
53
+ retryButtonLabel: M,
52
54
  teacherDiscussionEnabled: v,
53
55
  attemptsAfterTeacherInterventionNeeded: Q
54
56
  } = A, { response_id: T, metadata: _, is_non_question: q, item_type: f } = r, y = f === "exit-ticket", {
55
- startButton: M,
57
+ startButton: F,
56
58
  checkButton: z,
57
- checkButtonDisabled: F,
58
- retryButton: G,
59
- retryButtonDisabled: I,
60
- nextButton: O,
61
- nextButtonDisabled: P,
62
- nextButtonTooltip: N,
63
- moveButton: W,
64
- skipButton: J,
65
- skipButtonLabel: K,
66
- submitQuizButton: U,
67
- submitAttemptButton: Y
68
- } = de(() => {
69
- var w;
59
+ checkButtonDisabled: G,
60
+ retryButton: O,
61
+ retryButtonDisabled: w,
62
+ nextButton: P,
63
+ nextButtonDisabled: W,
64
+ nextButtonTooltip: I,
65
+ moveButton: J,
66
+ skipButton: K,
67
+ skipButtonLabel: U,
68
+ submitQuizButton: Y,
69
+ submitAttemptButton: Z
70
+ } = ce(() => {
71
+ var L;
70
72
  if (q)
71
73
  return {
72
74
  startButton: u && !(e != null && e.responseGiven)
73
75
  };
74
76
  if (y) {
75
- const { submittedByStudent: B } = e || {};
76
- if (!B)
77
+ const { submittedByStudent: h } = e || {};
78
+ if (!h)
77
79
  return c ? {
78
80
  submitQuizButton: !0
79
81
  } : e != null && e.skipped || e != null && e.response ? {
@@ -82,9 +84,9 @@ const Ae = (x, b) => b.filter(
82
84
  skipButton: !0,
83
85
  skipButtonLabel: "Next"
84
86
  };
85
- if (c && Ae(l, s))
87
+ if (c && Se(a, s))
86
88
  return {
87
- submitAttemptButton: !0
89
+ submitAttemptButton: !R
88
90
  };
89
91
  }
90
92
  if (!e || !e.response || !e.score)
@@ -92,28 +94,28 @@ const Ae = (x, b) => b.filter(
92
94
  checkButton: u,
93
95
  checkButtonDisabled: u
94
96
  };
95
- const { responseEdited: t, score: i, attemptsHistory: k, retryEnabled: se } = e;
97
+ const { responseEdited: t, score: i, attemptsHistory: k, retryEnabled: re } = e;
96
98
  if (t) {
97
- const B = (w = k == null ? void 0 : k.slice(-1)[0]) == null ? void 0 : w.response;
99
+ const h = (L = k == null ? void 0 : k.slice(-1)[0]) == null ? void 0 : L.response;
98
100
  return {
99
101
  checkButton: u || e.retryEnabled,
100
- checkButtonDisabled: ae(e.response, B)
102
+ checkButtonDisabled: ae(e.response, h)
101
103
  };
102
104
  }
103
105
  if ((i.score ?? 0) < i.max_score)
104
- return pe({
106
+ return ke({
105
107
  attemptsAfterTeacherInterventionNeeded: f === "exit-ticket" ? 1 : Q,
106
108
  attemptsHistory: k
107
- }) ? h ? {
109
+ }) ? b ? {
108
110
  retryButton: !0,
109
- retryButtonDisabled: se !== !0
111
+ retryButtonDisabled: re !== !0
110
112
  } : {
111
113
  moveButton: !0
112
114
  } : {
113
115
  retryButton: u
114
116
  };
115
117
  if ((i.score ?? 0) === i.max_score) {
116
- if (h && v && _.acknowledgements && !(e != null && e.validatedByTeacher))
118
+ if (b && v && _.acknowledgements && !(e != null && e.validatedByTeacher))
117
119
  return {
118
120
  nextButton: !0,
119
121
  nextButtonDisabled: !0,
@@ -131,41 +133,41 @@ const Ae = (x, b) => b.filter(
131
133
  q,
132
134
  y,
133
135
  c,
134
- l,
136
+ a,
135
137
  s,
136
138
  f,
137
139
  Q,
138
- h,
140
+ b,
139
141
  v,
140
142
  _.acknowledgements
141
- ]), g = fe(), a = be({
142
- getTimeSpentOnQuestion: R
143
- }), p = Be(), [E, L] = ce(!1), Z = Ce({
144
- setSkipped: L
145
- }), $ = D(() => {
146
- g(), a(!0);
147
- }, [a, g]), ee = ke({
148
- handleValidate: $
149
- }), te = he({
150
- handleResponseChange: a
151
- }), ne = ye(), ie = xe(), oe = D(() => {
152
- m == null || m(l, s);
153
- }, [m, l, s]), C = z || y && !(e != null && e.submittedByStudent);
143
+ ]), N = ye(), l = be({
144
+ getTimeSpentOnQuestion: X
145
+ }), p = Be(), [g, E] = me(!1), $ = xe({
146
+ setSkipped: E
147
+ }), ee = D(() => {
148
+ N(), l(!0);
149
+ }, [l, N]), te = he({
150
+ handleValidate: ee
151
+ }), ne = fe({
152
+ handleResponseChange: l
153
+ }), ie = Ce(), oe = Ae(), se = D(() => {
154
+ m == null || m(a, s);
155
+ }, [m, a, s]), C = z || y && !(e != null && e.submittedByStudent);
154
156
  return H(() => {
155
- E && (L(!1), p());
156
- }, [p, E]), H(() => {
157
+ g && (E(!1), p());
158
+ }, [p, g]), H(() => {
157
159
  const t = d ? S.question(T) : void 0;
158
- return t && (C ? (t.on("changed", a), t.enable()) : t.disable()), () => {
159
- t && C && (t.off("changed", a), t.disable());
160
+ return t && (C ? (t.on("changed", l), t.enable()) : t.disable()), () => {
161
+ t && C && (t.off("changed", l), t.disable());
160
162
  };
161
- }, [a, d, S, C, T]), /* @__PURE__ */ re(ue, { children: [
162
- O && /* @__PURE__ */ n(
163
+ }, [l, d, S, C, T]), /* @__PURE__ */ ue(le, { children: [
164
+ P && /* @__PURE__ */ n(
163
165
  V,
164
166
  {
165
167
  position: "top",
166
168
  renderAs: "primary",
167
- hidden: !N,
168
- tooltipItem: N ?? "",
169
+ hidden: !I,
170
+ tooltipItem: I ?? "",
169
171
  children: /* @__PURE__ */ n(
170
172
  o,
171
173
  {
@@ -174,22 +176,22 @@ const Ae = (x, b) => b.filter(
174
176
  size: "small",
175
177
  label: "Next",
176
178
  onClick: p,
177
- disabled: P === !0
179
+ disabled: W === !0
178
180
  }
179
181
  )
180
182
  }
181
183
  ),
182
- J && /* @__PURE__ */ n(
184
+ K && /* @__PURE__ */ n(
183
185
  o,
184
186
  {
185
187
  widthX: 6,
186
188
  renderAs: "primary",
187
189
  size: "small",
188
- label: K ?? "Skip",
189
- onClick: Z
190
+ label: U ?? "Skip",
191
+ onClick: $
190
192
  }
191
193
  ),
192
- W && /* @__PURE__ */ n(
194
+ J && /* @__PURE__ */ n(
193
195
  o,
194
196
  {
195
197
  widthX: 8.5,
@@ -199,12 +201,12 @@ const Ae = (x, b) => b.filter(
199
201
  onClick: p
200
202
  }
201
203
  ),
202
- G && /* @__PURE__ */ n(
204
+ O && /* @__PURE__ */ n(
203
205
  V,
204
206
  {
205
207
  position: "top",
206
208
  renderAs: "primary",
207
- hidden: !I,
209
+ hidden: !w,
208
210
  tooltipItem: "Tutor will help, then enable retry",
209
211
  children: /* @__PURE__ */ n(
210
212
  o,
@@ -212,9 +214,9 @@ const Ae = (x, b) => b.filter(
212
214
  widthX: 6,
213
215
  renderAs: "primary",
214
216
  size: "small",
215
- label: j,
216
- disabled: !d || I,
217
- onClick: te
217
+ label: M,
218
+ disabled: !d || w,
219
+ onClick: ne
218
220
  }
219
221
  )
220
222
  }
@@ -224,35 +226,35 @@ const Ae = (x, b) => b.filter(
224
226
  {
225
227
  renderAs: "primary",
226
228
  size: "small",
227
- label: X,
228
- disabled: F === !0 || !d,
229
- onClick: ee
229
+ label: j,
230
+ disabled: G === !0 || !d,
231
+ onClick: te
230
232
  }
231
233
  ),
232
- M && /* @__PURE__ */ n(o, { renderAs: "primary", size: "small", label: "Start", onClick: ne }),
233
- U && /* @__PURE__ */ n(
234
+ F && /* @__PURE__ */ n(o, { renderAs: "primary", size: "small", label: "Start", onClick: ie }),
235
+ Y && /* @__PURE__ */ n(
234
236
  o,
235
237
  {
236
238
  renderAs: "primary",
237
239
  size: "small",
238
240
  label: "Submit",
239
241
  analyticsLabel: "Submit Quiz",
240
- onClick: ie
242
+ onClick: oe
241
243
  }
242
244
  ),
243
- Y && /* @__PURE__ */ n(
245
+ Z && /* @__PURE__ */ n(
244
246
  o,
245
247
  {
246
248
  renderAs: "primary",
247
249
  size: "small",
248
250
  label: "Submit",
249
- onClick: oe
251
+ onClick: se
250
252
  }
251
253
  )
252
254
  ] });
253
255
  }
254
256
  );
255
257
  export {
256
- Ve as default
258
+ Re as default
257
259
  };
258
260
  //# sourceMappingURL=controller-lesson-v3_1.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"controller-lesson-v3_1.js","sources":["../../../../../../src/features/worksheet/worksheet/worksheet-questions-controller/student/controller-lesson-v3_1.tsx"],"sourcesContent":["import { deepEqual } from 'fast-equals';\nimport { memo, useCallback, useEffect, useMemo, useState, type FC } from 'react';\n\nimport ArrowTooltip from '../../../../ui/arrow-tooltip/arrow-tooltip';\nimport Button from '../../../../ui/buttons/button/button';\nimport { useWorksheetStore } from '../../hooks/use-worksheet-store';\nimport { isTeacherInterventionNeeded } from '../../worksheet-helpers';\nimport useHandleCheckButtonClick from '../hooks/use-handle-check-button-click';\nimport useHandleNextButtonClick from '../hooks/use-handle-next-button-click';\nimport useHandleResponseChange from '../hooks/use-handle-response-change';\nimport useHandleRetryButtonClick from '../hooks/use-handle-retry-button-click';\nimport usePlayValidationAudio from '../hooks/use-play-validation-audio';\nimport type {\n IButtonTypes,\n IWorksheetQuestionsControllerProps,\n} from '../worksheet-questions-controller-types';\nimport useHandleStartButtonClick from '../hooks/use-handle-start-button-click';\nimport useHandleSkipButtonClick from '../hooks/use-handle-skip-button-click';\nimport useHandleSubmitQuiz from '../hooks/use-handle-submit-quiz';\nimport { type IWorksheetQuestion, type IWorksheetResponse } from '../../worksheet-types';\n\ninterface IAreAllExitTicketQuestionsValidated {\n (responses: Record<string, IWorksheetResponse>, questions: IWorksheetQuestion[]): boolean;\n}\n\nconst areAllExitTicketQuestionsValidated: IAreAllExitTicketQuestionsValidated = (\n responses,\n questions,\n) => {\n const exitTicketQuestions = questions.filter(\n q => q.item_type === 'exit-ticket' && !q.is_non_question,\n );\n\n return exitTicketQuestions.every(q => responses[q.response_id]?.validatedByTeacher === true);\n};\n\nconst StudentControllerLessonV3_1: FC<IWorksheetQuestionsControllerProps> = memo(\n function StudentControllerLessonV3_1(props) {\n const {\n behavior,\n question,\n questions,\n response,\n responses,\n learnosity,\n isQuestionAppended,\n inClass,\n isLastQuestion,\n onSubmit,\n } = useWorksheetStore(store => {\n const activeQuestion = store.questions[store.activeQuestionIndex]!;\n\n return {\n behavior: store.behavior,\n question: activeQuestion,\n questions: store.questions,\n response: store.responses[activeQuestion.response_id],\n responses: store.responses,\n learnosity: store.learnosity,\n isQuestionAppended: store.appendedQuestionIds.includes(activeQuestion.response_id),\n inClass: store.inClass,\n isLastQuestion: store.activeQuestionIndex === store.questions.length - 1,\n onSubmit: store.onSubmit,\n };\n });\n const { getTimeSpentOnQuestion } = props;\n const {\n canAttempt,\n checkButtonLabel,\n retryButtonLabel,\n teacherDiscussionEnabled,\n attemptsAfterTeacherInterventionNeeded,\n } = behavior;\n const { response_id, metadata, is_non_question: isNonQuestion, item_type } = question;\n const isExitTicket = item_type === 'exit-ticket';\n const {\n startButton,\n checkButton,\n checkButtonDisabled,\n retryButton,\n retryButtonDisabled,\n nextButton,\n nextButtonDisabled,\n nextButtonTooltip,\n moveButton,\n skipButton,\n skipButtonLabel,\n submitQuizButton,\n submitAttemptButton,\n } = useMemo<IButtonTypes>(() => {\n if (isNonQuestion)\n return {\n startButton: canAttempt && !response?.responseGiven,\n };\n\n if (isExitTicket) {\n const { submittedByStudent } = response || {};\n\n if (!submittedByStudent) {\n if (isLastQuestion)\n return {\n submitQuizButton: true,\n };\n\n if (response?.skipped || response?.response)\n return {\n nextButton: true,\n };\n\n return {\n skipButton: true,\n skipButtonLabel: 'Next',\n };\n }\n\n if (isLastQuestion && areAllExitTicketQuestionsValidated(responses, questions))\n return {\n submitAttemptButton: true,\n };\n }\n\n if (!response || !response.response || !response.score)\n return {\n checkButton: canAttempt,\n checkButtonDisabled: canAttempt,\n };\n\n const { responseEdited, score, attemptsHistory, retryEnabled } = response;\n\n if (responseEdited) {\n const lastAttemptResponse = attemptsHistory?.slice(-1)[0]?.response;\n\n return {\n checkButton: canAttempt || response.retryEnabled,\n checkButtonDisabled: deepEqual(response.response, lastAttemptResponse),\n };\n }\n\n if ((score.score ?? 0) < score.max_score) {\n const teacherInterventionNeeded = isTeacherInterventionNeeded({\n attemptsAfterTeacherInterventionNeeded:\n item_type === 'exit-ticket' ? 1 : attemptsAfterTeacherInterventionNeeded,\n attemptsHistory,\n });\n\n if (!teacherInterventionNeeded)\n return {\n retryButton: canAttempt,\n };\n\n if (inClass)\n return {\n retryButton: true,\n retryButtonDisabled: retryEnabled !== true,\n };\n\n return {\n moveButton: true,\n };\n }\n\n if ((score.score ?? 0) === score.max_score) {\n if (\n inClass &&\n teacherDiscussionEnabled &&\n metadata.acknowledgements &&\n !response?.validatedByTeacher\n ) {\n return {\n nextButton: true,\n nextButtonDisabled: true,\n nextButtonTooltip: 'Tutor approval is required',\n };\n }\n\n if (!isLastQuestion)\n return {\n nextButton: true,\n };\n }\n\n return {};\n }, [\n canAttempt,\n response,\n isNonQuestion,\n isExitTicket,\n isLastQuestion,\n responses,\n questions,\n item_type,\n attemptsAfterTeacherInterventionNeeded,\n inClass,\n teacherDiscussionEnabled,\n metadata.acknowledgements,\n ]);\n\n const playValidationAudio = usePlayValidationAudio();\n const handleResponseChange = useHandleResponseChange({\n getTimeSpentOnQuestion,\n });\n const handleNextButtonClick = useHandleNextButtonClick();\n const [skipped, setSkipped] = useState(false);\n const handleSkipButtonClick = useHandleSkipButtonClick({\n setSkipped,\n });\n const handleValidate = useCallback(() => {\n playValidationAudio();\n handleResponseChange(true);\n }, [handleResponseChange, playValidationAudio]);\n const handleCheckButtonClick = useHandleCheckButtonClick({\n handleValidate,\n });\n const handleRetryButtonClick = useHandleRetryButtonClick({\n handleResponseChange,\n });\n const handleStartButtonClick = useHandleStartButtonClick();\n const handleSubmitQuiz = useHandleSubmitQuiz();\n const handleSheetSubmitButtonClick = useCallback(() => {\n onSubmit?.(responses, questions);\n }, [onSubmit, responses, questions]);\n\n const questionEnabled = checkButton || (isExitTicket && !response?.submittedByStudent);\n\n useEffect(() => {\n if (skipped) {\n setSkipped(false);\n handleNextButtonClick();\n }\n }, [handleNextButtonClick, skipped]);\n\n useEffect(() => {\n const questionInstance = isQuestionAppended ? learnosity.question(response_id) : undefined;\n\n if (questionInstance) {\n if (questionEnabled) {\n questionInstance.on('changed', handleResponseChange);\n questionInstance.enable();\n } else {\n questionInstance.disable();\n }\n }\n\n return () => {\n if (questionInstance && questionEnabled) {\n questionInstance.off('changed', handleResponseChange);\n questionInstance.disable();\n }\n };\n }, [handleResponseChange, isQuestionAppended, learnosity, questionEnabled, response_id]);\n\n return (\n <>\n {nextButton && (\n <ArrowTooltip\n position=\"top\"\n renderAs=\"primary\"\n hidden={!nextButtonTooltip}\n tooltipItem={nextButtonTooltip ?? ''}\n >\n <Button\n widthX={6}\n renderAs=\"primary\"\n size=\"small\"\n label=\"Next\"\n onClick={handleNextButtonClick}\n disabled={nextButtonDisabled === true}\n />\n </ArrowTooltip>\n )}\n {skipButton && (\n <Button\n widthX={6}\n renderAs=\"primary\"\n size=\"small\"\n label={skipButtonLabel ?? 'Skip'}\n onClick={handleSkipButtonClick}\n />\n )}\n {moveButton && (\n <Button\n widthX={8.5}\n renderAs=\"primary\"\n size=\"small\"\n label=\"Move ahead\"\n onClick={handleNextButtonClick}\n />\n )}\n {retryButton && (\n <ArrowTooltip\n position=\"top\"\n renderAs=\"primary\"\n hidden={!retryButtonDisabled}\n tooltipItem=\"Tutor will help, then enable retry\"\n >\n <Button\n widthX={6}\n renderAs=\"primary\"\n size=\"small\"\n label={retryButtonLabel}\n disabled={!isQuestionAppended || retryButtonDisabled}\n onClick={handleRetryButtonClick}\n />\n </ArrowTooltip>\n )}\n {checkButton && (\n <Button\n renderAs=\"primary\"\n size=\"small\"\n label={checkButtonLabel}\n disabled={checkButtonDisabled === true || !isQuestionAppended}\n onClick={handleCheckButtonClick}\n />\n )}\n {startButton && (\n <Button renderAs=\"primary\" size=\"small\" label=\"Start\" onClick={handleStartButtonClick} />\n )}\n {submitQuizButton && (\n <Button\n renderAs=\"primary\"\n size=\"small\"\n label=\"Submit\"\n analyticsLabel=\"Submit Quiz\"\n onClick={handleSubmitQuiz}\n />\n )}\n {submitAttemptButton && (\n <Button\n renderAs=\"primary\"\n size=\"small\"\n label=\"Submit\"\n onClick={handleSheetSubmitButtonClick}\n />\n )}\n </>\n );\n },\n);\n\nexport default StudentControllerLessonV3_1;\n"],"names":["areAllExitTicketQuestionsValidated","responses","questions","q","_a","StudentControllerLessonV3_1","memo","props","behavior","question","response","learnosity","isQuestionAppended","inClass","isLastQuestion","onSubmit","useWorksheetStore","store","activeQuestion","getTimeSpentOnQuestion","canAttempt","checkButtonLabel","retryButtonLabel","teacherDiscussionEnabled","attemptsAfterTeacherInterventionNeeded","response_id","metadata","isNonQuestion","item_type","isExitTicket","startButton","checkButton","checkButtonDisabled","retryButton","retryButtonDisabled","nextButton","nextButtonDisabled","nextButtonTooltip","moveButton","skipButton","skipButtonLabel","submitQuizButton","submitAttemptButton","useMemo","submittedByStudent","responseEdited","score","attemptsHistory","retryEnabled","lastAttemptResponse","deepEqual","isTeacherInterventionNeeded","playValidationAudio","usePlayValidationAudio","handleResponseChange","useHandleResponseChange","handleNextButtonClick","useHandleNextButtonClick","skipped","setSkipped","useState","handleSkipButtonClick","useHandleSkipButtonClick","handleValidate","useCallback","handleCheckButtonClick","useHandleCheckButtonClick","handleRetryButtonClick","useHandleRetryButtonClick","handleStartButtonClick","useHandleStartButtonClick","handleSubmitQuiz","useHandleSubmitQuiz","handleSheetSubmitButtonClick","questionEnabled","useEffect","questionInstance","jsxs","Fragment","jsx","ArrowTooltip","Button"],"mappings":"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"}
1
+ {"version":3,"file":"controller-lesson-v3_1.js","sources":["../../../../../../src/features/worksheet/worksheet/worksheet-questions-controller/student/controller-lesson-v3_1.tsx"],"sourcesContent":["import { deepEqual } from 'fast-equals';\nimport { memo, useCallback, useEffect, useMemo, useState, type FC } from 'react';\n\nimport ArrowTooltip from '../../../../ui/arrow-tooltip/arrow-tooltip';\nimport Button from '../../../../ui/buttons/button/button';\nimport { useWorksheetStore } from '../../hooks/use-worksheet-store';\nimport { isTeacherInterventionNeeded } from '../../worksheet-helpers';\nimport useHandleCheckButtonClick from '../hooks/use-handle-check-button-click';\nimport useHandleNextButtonClick from '../hooks/use-handle-next-button-click';\nimport useHandleResponseChange from '../hooks/use-handle-response-change';\nimport useHandleRetryButtonClick from '../hooks/use-handle-retry-button-click';\nimport usePlayValidationAudio from '../hooks/use-play-validation-audio';\nimport type {\n IButtonTypes,\n IWorksheetQuestionsControllerProps,\n} from '../worksheet-questions-controller-types';\nimport useHandleStartButtonClick from '../hooks/use-handle-start-button-click';\nimport useHandleSkipButtonClick from '../hooks/use-handle-skip-button-click';\nimport useHandleSubmitQuiz from '../hooks/use-handle-submit-quiz';\nimport { type IWorksheetQuestion, type IWorksheetResponse } from '../../worksheet-types';\n\ninterface IAreAllExitTicketQuestionsValidated {\n (responses: Record<string, IWorksheetResponse>, questions: IWorksheetQuestion[]): boolean;\n}\n\nconst areAllExitTicketQuestionsValidated: IAreAllExitTicketQuestionsValidated = (\n responses,\n questions,\n) => {\n const exitTicketQuestions = questions.filter(\n q => q.item_type === 'exit-ticket' && !q.is_non_question,\n );\n\n return exitTicketQuestions.every(q => responses[q.response_id]?.validatedByTeacher === true);\n};\n\nconst StudentControllerLessonV3_1: FC<IWorksheetQuestionsControllerProps> = memo(\n function StudentControllerLessonV3_1(props) {\n const {\n behavior,\n question,\n questions,\n response,\n responses,\n learnosity,\n isQuestionAppended,\n inClass,\n isLastQuestion,\n onSubmit,\n worksheetCompleted,\n } = useWorksheetStore(store => {\n const activeQuestion = store.questions[store.activeQuestionIndex]!;\n\n return {\n behavior: store.behavior,\n question: activeQuestion,\n questions: store.questions,\n response: store.responses[activeQuestion.response_id],\n responses: store.responses,\n learnosity: store.learnosity,\n isQuestionAppended: store.appendedQuestionIds.includes(activeQuestion.response_id),\n inClass: store.inClass,\n isLastQuestion: store.activeQuestionIndex === store.questions.length - 1,\n onSubmit: store.onSubmit,\n worksheetCompleted: store.worksheetCompleted,\n };\n });\n const { getTimeSpentOnQuestion } = props;\n const {\n canAttempt,\n checkButtonLabel,\n retryButtonLabel,\n teacherDiscussionEnabled,\n attemptsAfterTeacherInterventionNeeded,\n } = behavior;\n const { response_id, metadata, is_non_question: isNonQuestion, item_type } = question;\n const isExitTicket = item_type === 'exit-ticket';\n const {\n startButton,\n checkButton,\n checkButtonDisabled,\n retryButton,\n retryButtonDisabled,\n nextButton,\n nextButtonDisabled,\n nextButtonTooltip,\n moveButton,\n skipButton,\n skipButtonLabel,\n submitQuizButton,\n submitAttemptButton,\n } = useMemo<IButtonTypes>(() => {\n if (isNonQuestion)\n return {\n startButton: canAttempt && !response?.responseGiven,\n };\n\n if (isExitTicket) {\n const { submittedByStudent } = response || {};\n\n if (!submittedByStudent) {\n if (isLastQuestion)\n return {\n submitQuizButton: true,\n };\n\n if (response?.skipped || response?.response)\n return {\n nextButton: true,\n };\n\n return {\n skipButton: true,\n skipButtonLabel: 'Next',\n };\n }\n\n if (isLastQuestion && areAllExitTicketQuestionsValidated(responses, questions)) {\n return {\n submitAttemptButton: !worksheetCompleted,\n };\n }\n }\n\n if (!response || !response.response || !response.score)\n return {\n checkButton: canAttempt,\n checkButtonDisabled: canAttempt,\n };\n\n const { responseEdited, score, attemptsHistory, retryEnabled } = response;\n\n if (responseEdited) {\n const lastAttemptResponse = attemptsHistory?.slice(-1)[0]?.response;\n\n return {\n checkButton: canAttempt || response.retryEnabled,\n checkButtonDisabled: deepEqual(response.response, lastAttemptResponse),\n };\n }\n\n if ((score.score ?? 0) < score.max_score) {\n const teacherInterventionNeeded = isTeacherInterventionNeeded({\n attemptsAfterTeacherInterventionNeeded:\n item_type === 'exit-ticket' ? 1 : attemptsAfterTeacherInterventionNeeded,\n attemptsHistory,\n });\n\n if (!teacherInterventionNeeded)\n return {\n retryButton: canAttempt,\n };\n\n if (inClass)\n return {\n retryButton: true,\n retryButtonDisabled: retryEnabled !== true,\n };\n\n return {\n moveButton: true,\n };\n }\n\n if ((score.score ?? 0) === score.max_score) {\n if (\n inClass &&\n teacherDiscussionEnabled &&\n metadata.acknowledgements &&\n !response?.validatedByTeacher\n ) {\n return {\n nextButton: true,\n nextButtonDisabled: true,\n nextButtonTooltip: 'Tutor approval is required',\n };\n }\n\n if (!isLastQuestion)\n return {\n nextButton: true,\n };\n }\n\n return {};\n }, [\n canAttempt,\n response,\n isNonQuestion,\n isExitTicket,\n isLastQuestion,\n responses,\n questions,\n item_type,\n attemptsAfterTeacherInterventionNeeded,\n inClass,\n teacherDiscussionEnabled,\n metadata.acknowledgements,\n ]);\n\n const playValidationAudio = usePlayValidationAudio();\n const handleResponseChange = useHandleResponseChange({\n getTimeSpentOnQuestion,\n });\n const handleNextButtonClick = useHandleNextButtonClick();\n const [skipped, setSkipped] = useState(false);\n const handleSkipButtonClick = useHandleSkipButtonClick({\n setSkipped,\n });\n const handleValidate = useCallback(() => {\n playValidationAudio();\n handleResponseChange(true);\n }, [handleResponseChange, playValidationAudio]);\n const handleCheckButtonClick = useHandleCheckButtonClick({\n handleValidate,\n });\n const handleRetryButtonClick = useHandleRetryButtonClick({\n handleResponseChange,\n });\n const handleStartButtonClick = useHandleStartButtonClick();\n const handleSubmitQuiz = useHandleSubmitQuiz();\n const handleSheetSubmitButtonClick = useCallback(() => {\n onSubmit?.(responses, questions);\n }, [onSubmit, responses, questions]);\n\n const questionEnabled = checkButton || (isExitTicket && !response?.submittedByStudent);\n\n useEffect(() => {\n if (skipped) {\n setSkipped(false);\n handleNextButtonClick();\n }\n }, [handleNextButtonClick, skipped]);\n\n useEffect(() => {\n const questionInstance = isQuestionAppended ? learnosity.question(response_id) : undefined;\n\n if (questionInstance) {\n if (questionEnabled) {\n questionInstance.on('changed', handleResponseChange);\n questionInstance.enable();\n } else {\n questionInstance.disable();\n }\n }\n\n return () => {\n if (questionInstance && questionEnabled) {\n questionInstance.off('changed', handleResponseChange);\n questionInstance.disable();\n }\n };\n }, [handleResponseChange, isQuestionAppended, learnosity, questionEnabled, response_id]);\n\n return (\n <>\n {nextButton && (\n <ArrowTooltip\n position=\"top\"\n renderAs=\"primary\"\n hidden={!nextButtonTooltip}\n tooltipItem={nextButtonTooltip ?? ''}\n >\n <Button\n widthX={6}\n renderAs=\"primary\"\n size=\"small\"\n label=\"Next\"\n onClick={handleNextButtonClick}\n disabled={nextButtonDisabled === true}\n />\n </ArrowTooltip>\n )}\n {skipButton && (\n <Button\n widthX={6}\n renderAs=\"primary\"\n size=\"small\"\n label={skipButtonLabel ?? 'Skip'}\n onClick={handleSkipButtonClick}\n />\n )}\n {moveButton && (\n <Button\n widthX={8.5}\n renderAs=\"primary\"\n size=\"small\"\n label=\"Move ahead\"\n onClick={handleNextButtonClick}\n />\n )}\n {retryButton && (\n <ArrowTooltip\n position=\"top\"\n renderAs=\"primary\"\n hidden={!retryButtonDisabled}\n tooltipItem=\"Tutor will help, then enable retry\"\n >\n <Button\n widthX={6}\n renderAs=\"primary\"\n size=\"small\"\n label={retryButtonLabel}\n disabled={!isQuestionAppended || retryButtonDisabled}\n onClick={handleRetryButtonClick}\n />\n </ArrowTooltip>\n )}\n {checkButton && (\n <Button\n renderAs=\"primary\"\n size=\"small\"\n label={checkButtonLabel}\n disabled={checkButtonDisabled === true || !isQuestionAppended}\n onClick={handleCheckButtonClick}\n />\n )}\n {startButton && (\n <Button renderAs=\"primary\" size=\"small\" label=\"Start\" onClick={handleStartButtonClick} />\n )}\n {submitQuizButton && (\n <Button\n renderAs=\"primary\"\n size=\"small\"\n label=\"Submit\"\n analyticsLabel=\"Submit Quiz\"\n onClick={handleSubmitQuiz}\n />\n )}\n {submitAttemptButton && (\n <Button\n renderAs=\"primary\"\n size=\"small\"\n label=\"Submit\"\n onClick={handleSheetSubmitButtonClick}\n />\n )}\n </>\n );\n },\n);\n\nexport default StudentControllerLessonV3_1;\n"],"names":["areAllExitTicketQuestionsValidated","responses","questions","q","_a","StudentControllerLessonV3_1","memo","props","behavior","question","response","learnosity","isQuestionAppended","inClass","isLastQuestion","onSubmit","worksheetCompleted","useWorksheetStore","store","activeQuestion","getTimeSpentOnQuestion","canAttempt","checkButtonLabel","retryButtonLabel","teacherDiscussionEnabled","attemptsAfterTeacherInterventionNeeded","response_id","metadata","isNonQuestion","item_type","isExitTicket","startButton","checkButton","checkButtonDisabled","retryButton","retryButtonDisabled","nextButton","nextButtonDisabled","nextButtonTooltip","moveButton","skipButton","skipButtonLabel","submitQuizButton","submitAttemptButton","useMemo","submittedByStudent","responseEdited","score","attemptsHistory","retryEnabled","lastAttemptResponse","deepEqual","isTeacherInterventionNeeded","playValidationAudio","usePlayValidationAudio","handleResponseChange","useHandleResponseChange","handleNextButtonClick","useHandleNextButtonClick","skipped","setSkipped","useState","handleSkipButtonClick","useHandleSkipButtonClick","handleValidate","useCallback","handleCheckButtonClick","useHandleCheckButtonClick","handleRetryButtonClick","useHandleRetryButtonClick","handleStartButtonClick","useHandleStartButtonClick","handleSubmitQuiz","useHandleSubmitQuiz","handleSheetSubmitButtonClick","questionEnabled","useEffect","questionInstance","jsxs","Fragment","jsx","ArrowTooltip","Button"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cuemath/leap",
3
- "version": "3.5.47-gg10",
3
+ "version": "3.5.47-gg11",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist"