@cuemath/leap 3.5.46 → 3.5.47-gg10
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.
- package/dist/assets/line-icons/icons/bulb.js +10 -10
- package/dist/assets/line-icons/icons/bulb.js.map +1 -1
- package/dist/assets/line-icons/icons/chevron-up.js +28 -0
- package/dist/assets/line-icons/icons/chevron-up.js.map +1 -0
- package/dist/assets/line-icons/icons/close.js +28 -0
- package/dist/assets/line-icons/icons/close.js.map +1 -0
- package/dist/assets/line-icons/icons/cursor2.js +24 -0
- package/dist/assets/line-icons/icons/cursor2.js.map +1 -0
- package/dist/assets/line-icons/icons/hand.js.map +1 -1
- package/dist/assets/line-icons/icons/hints.js +25 -0
- package/dist/assets/line-icons/icons/hints.js.map +1 -0
- package/dist/assets/line-icons/icons/question-feedback.js +30 -0
- package/dist/assets/line-icons/icons/question-feedback.js.map +1 -0
- package/dist/assets/line-icons/icons/scribble.js +13 -36
- package/dist/assets/line-icons/icons/scribble.js.map +1 -1
- package/dist/assets/line-icons/icons/sticker.js +9 -9
- package/dist/assets/line-icons/icons/sticker.js.map +1 -1
- package/dist/assets/line-icons/icons/teaching-tools.js +40 -0
- package/dist/assets/line-icons/icons/teaching-tools.js.map +1 -0
- package/dist/assets/line-icons/icons/tval-question.js +32 -0
- package/dist/assets/line-icons/icons/tval-question.js.map +1 -0
- package/dist/features/circle-games/hooks/use-circle-sounds/constants.js +4 -7
- package/dist/features/circle-games/hooks/use-circle-sounds/constants.js.map +1 -1
- package/dist/features/circle-games/hooks/use-circle-sounds/helper.js +19 -0
- package/dist/features/circle-games/hooks/use-circle-sounds/helper.js.map +1 -0
- package/dist/features/circle-games/hooks/use-circle-sounds/use-circle-sounds.js +110 -51
- package/dist/features/circle-games/hooks/use-circle-sounds/use-circle-sounds.js.map +1 -1
- package/dist/features/cue-canvas/sidebar/puzzles/api/get-puzzles.js.map +1 -1
- package/dist/features/hooks/use-audio-player.js +54 -0
- package/dist/features/hooks/use-audio-player.js.map +1 -0
- package/dist/features/journey/hooks/use-home-page-journey/home-page-homeworks-mock.js +6 -6
- package/dist/features/journey/hooks/use-home-page-journey/home-page-homeworks-mock.js.map +1 -1
- package/dist/features/journey/hooks/use-home-page-journey/recent-chapters-mock.js +2 -2
- package/dist/features/journey/hooks/use-home-page-journey/recent-chapters-mock.js.map +1 -1
- package/dist/features/journey/mocks/chapter-page-journey-mock-data.js +64 -29
- package/dist/features/journey/mocks/chapter-page-journey-mock-data.js.map +1 -1
- package/dist/features/milestone/milestone-tests/tests-creation/test-stages/test-preview/test-preview.js +9 -9
- package/dist/features/milestone/milestone-tests/tests-creation/test-stages/test-preview/test-preview.js.map +1 -1
- package/dist/features/puzzles/app/puzzle-app-view.js +40 -40
- package/dist/features/puzzles/app/puzzle-app-view.js.map +1 -1
- package/dist/features/ui/tabs/tabs.js +15 -15
- package/dist/features/ui/tabs/tabs.js.map +1 -1
- package/dist/features/worksheet/learnosity-preloader/learnosity-preloader.js +0 -1
- package/dist/features/worksheet/learnosity-preloader/learnosity-preloader.js.map +1 -1
- package/dist/features/worksheet/worksheet/constants.js +12 -13
- package/dist/features/worksheet/worksheet/constants.js.map +1 -1
- package/dist/features/worksheet/worksheet/hooks/use-create-imperative-handle.js +120 -101
- package/dist/features/worksheet/worksheet/hooks/use-create-imperative-handle.js.map +1 -1
- package/dist/features/worksheet/worksheet/hooks/use-worksheet-store.js +1 -1
- package/dist/features/worksheet/worksheet/hooks/use-worksheet-store.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-action-bar/worksheet-action-bar.js +40 -109
- package/dist/features/worksheet/worksheet/worksheet-action-bar/worksheet-action-bar.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-behavior-helper.js +49 -46
- package/dist/features/worksheet/worksheet/worksheet-behavior-helper.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-calculator/worksheet-calculator.js +4 -4
- package/dist/features/worksheet/worksheet/worksheet-calculator/worksheet-calculator.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-helpers.js +127 -274
- package/dist/features/worksheet/worksheet/worksheet-helpers.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-navigation/worksheet-navigation.js +25 -25
- package/dist/features/worksheet/worksheet/worksheet-navigation/worksheet-navigation.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-provider.js +1 -1
- package/dist/features/worksheet/worksheet/worksheet-provider.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-question/subjective-styled.js +17 -22
- package/dist/features/worksheet/worksheet/worksheet-question/subjective-styled.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question-styled.js +25 -29
- package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question-styled.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question.js +319 -259
- package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-allow-retry-button-click.js +15 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-allow-retry-button-click.js.map +1 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-back-button-click.js +18 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-back-button-click.js.map +1 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-check-button-click.js +21 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-check-button-click.js.map +1 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-next-button-click.js +19 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-next-button-click.js.map +1 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-ready-button-click.js +34 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-ready-button-click.js.map +1 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-response-change.js +38 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-response-change.js.map +1 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-retry-button-click.js +16 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-retry-button-click.js.map +1 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-skip-button-click.js +35 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-skip-button-click.js.map +1 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-skip-section-button-click.js +12 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-skip-section-button-click.js.map +1 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-start-button-click.js +44 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-start-button-click.js.map +1 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-submit-quiz.js +51 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-submit-quiz.js.map +1 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-validate-button-click.js +19 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-validate-button-click.js.map +1 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-play-validation-audio.js +23 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-play-validation-audio.js.map +1 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-validate-question.js +36 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-validate-question.js.map +1 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/student/controller-lesson-v3.js +184 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/student/controller-lesson-v3.js.map +1 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/student/controller-lesson-v3_1.js +258 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/student/controller-lesson-v3_1.js.map +1 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/student/controller.js +180 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/student/controller.js.map +1 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/teacher/controller-lesson-v3.js +77 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/teacher/controller-lesson-v3.js.map +1 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/teacher/controller-lesson-v3_1.js +103 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/teacher/controller-lesson-v3_1.js.map +1 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/teacher/controller.js +21 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/teacher/controller.js.map +1 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/worksheet-questions-controller-view.js +22 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/worksheet-questions-controller-view.js.map +1 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/worksheet-questions-controller.js +20 -345
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/worksheet-questions-controller.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-questions-tools/questions-toolbar/questions-toolbar-styled.js +49 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-tools/questions-toolbar/questions-toolbar-styled.js.map +1 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-tools/questions-toolbar/questions-toolbar.js +184 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-tools/questions-toolbar/questions-toolbar.js.map +1 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-tools/scribble-switch.js +65 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-tools/scribble-switch.js.map +1 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-tools/worksheet-questions-styled.js +9 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-tools/worksheet-questions-styled.js.map +1 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-tools/worksheet-questions-tools.js +38 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-tools/worksheet-questions-tools.js.map +1 -0
- package/dist/features/worksheet/worksheet/worksheet-sidebar/navigator.js +33 -20
- package/dist/features/worksheet/worksheet/worksheet-sidebar/navigator.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-computed-properties.js +73 -0
- package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-computed-properties.js.map +1 -0
- package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-derived-blocker.js +20 -0
- package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-derived-blocker.js.map +1 -0
- package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-last-attemptable-question-index.js +69 -0
- package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-last-attemptable-question-index.js.map +1 -0
- package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-last-unlocked-question-index.js +18 -0
- package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-last-unlocked-question-index.js.map +1 -0
- package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-merged-response-state.js +19 -0
- package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-merged-response-state.js.map +1 -0
- package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-questions-from-items.js +138 -0
- package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-questions-from-items.js.map +1 -0
- package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-renderable-questions.js +9 -0
- package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-renderable-questions.js.map +1 -0
- package/dist/features/worksheet/worksheet/worksheet-store/worksheet-store.js +230 -0
- package/dist/features/worksheet/worksheet/worksheet-store/worksheet-store.js.map +1 -0
- package/dist/features/worksheet/worksheet/worksheet-styled.js +29 -83
- package/dist/features/worksheet/worksheet/worksheet-styled.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-summary-controller/worksheet-summary-controller.js +45 -24
- package/dist/features/worksheet/worksheet/worksheet-summary-controller/worksheet-summary-controller.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-teaching-tools/worksheet-teaching-tools-styled.js +19 -0
- package/dist/features/worksheet/worksheet/worksheet-teaching-tools/worksheet-teaching-tools-styled.js.map +1 -0
- package/dist/features/worksheet/worksheet/worksheet-teaching-tools/worksheet-teaching-tools.js +66 -0
- package/dist/features/worksheet/worksheet/worksheet-teaching-tools/worksheet-teaching-tools.js.map +1 -0
- package/dist/features/worksheet/worksheet/worksheet-types.js +3 -2
- package/dist/features/worksheet/worksheet/worksheet-types.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-view.js +89 -100
- package/dist/features/worksheet/worksheet/worksheet-view.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet.js +126 -117
- package/dist/features/worksheet/worksheet/worksheet.js.map +1 -1
- package/dist/features/worksheet/worksheet-preview/dynamic-worksheet-preview/dynamic-worksheet-preview.js +29 -29
- package/dist/features/worksheet/worksheet-preview/dynamic-worksheet-preview/dynamic-worksheet-preview.js.map +1 -1
- package/dist/features/worksheet/worksheet-preview/hooks/use-worksheet-layout.js +16 -16
- package/dist/features/worksheet/worksheet-preview/hooks/use-worksheet-layout.js.map +1 -1
- package/dist/features/worksheet/worksheet-preview/worksheet-preview-view.js +24 -24
- package/dist/features/worksheet/worksheet-preview/worksheet-preview-view.js.map +1 -1
- package/dist/index.d.ts +67 -28
- package/dist/index.js +760 -745
- package/dist/index.js.map +1 -1
- package/dist/types/models/worksheet.js +2 -1
- package/dist/types/models/worksheet.js.map +1 -1
- package/package.json +2 -2
- package/dist/features/hooks/use-audio-player/use-audio-player.js +0 -164
- package/dist/features/hooks/use-audio-player/use-audio-player.js.map +0 -1
- package/dist/features/worksheet/worksheet/question-tips.js +0 -100
- package/dist/features/worksheet/worksheet/question-tips.js.map +0 -1
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/scribble-switch.js +0 -53
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/scribble-switch.js.map +0 -1
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/use-handler-callbacks.js +0 -195
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/use-handler-callbacks.js.map +0 -1
- package/dist/features/worksheet/worksheet/worksheet-sidebar/question-guide.js +0 -112
- package/dist/features/worksheet/worksheet/worksheet-sidebar/question-guide.js.map +0 -1
- package/dist/features/worksheet/worksheet/worksheet-sidebar/sidebar.js +0 -61
- package/dist/features/worksheet/worksheet/worksheet-sidebar/sidebar.js.map +0 -1
- package/dist/features/worksheet/worksheet/worksheet-sidebar/worksheet-sidebar-styled.js +0 -91
- package/dist/features/worksheet/worksheet/worksheet-sidebar/worksheet-sidebar-styled.js.map +0 -1
- package/dist/features/worksheet/worksheet/worksheet-store.js +0 -289
- package/dist/features/worksheet/worksheet/worksheet-store.js.map +0 -1
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import { jsxs as _, jsx as i } from "react/jsx-runtime";
|
|
2
|
+
import { memo as q, useState as V, useMemo as M, useCallback as C, useEffect as J } from "react";
|
|
3
|
+
import P from "../../../../../assets/line-icons/icons/hints.js";
|
|
4
|
+
import T from "../../../../ui/buttons/clickable/clickable.js";
|
|
5
|
+
import X from "../../../constants/events.js";
|
|
6
|
+
import { useWorksheetStore as Y } from "../../hooks/use-worksheet-store.js";
|
|
7
|
+
import { getQuestionMetadata as Z } from "../../worksheet-helpers.js";
|
|
8
|
+
import { EActiveQuestionTool as p } from "../../worksheet-types.js";
|
|
9
|
+
import { WorksheetQuestionsToolbarContainer as ee, IconContainer as f, HintsIconContainer as ie, HintsNumberContainer as te, HintsNumber as oe, TickMark as ne } from "./questions-toolbar-styled.js";
|
|
10
|
+
import { ILLUSTRATIONS as se } from "../../../../../assets/illustrations/illustrations.js";
|
|
11
|
+
import le from "../../../../../assets/line-icons/icons/hand.js";
|
|
12
|
+
import re from "../../../../../assets/line-icons/icons/question-feedback.js";
|
|
13
|
+
import ce from "../../../../../assets/line-icons/icons/teaching-tools.js";
|
|
14
|
+
import x from "../../../../../assets/line-icons/icons/close.js";
|
|
15
|
+
import ae from "../../../../../assets/line-icons/icons/solution.js";
|
|
16
|
+
import de from "../../../../../assets/line-icons/icons/calculator.js";
|
|
17
|
+
const he = ({
|
|
18
|
+
behavior: l,
|
|
19
|
+
question: t,
|
|
20
|
+
response: s,
|
|
21
|
+
hintsTimerFinished: n
|
|
22
|
+
}) => {
|
|
23
|
+
var c;
|
|
24
|
+
if (!l.hints)
|
|
25
|
+
return { visible: !1 };
|
|
26
|
+
const r = ((c = t.metadata.hints) == null ? void 0 : c.length) ?? 0;
|
|
27
|
+
if (r === 0)
|
|
28
|
+
return { visible: !1 };
|
|
29
|
+
const a = (s == null ? void 0 : s.hintsUsed) ?? 0;
|
|
30
|
+
return {
|
|
31
|
+
visible: !0,
|
|
32
|
+
disabled: l.hintsTimer && !n || a >= r,
|
|
33
|
+
nextHintnumber: a + 1,
|
|
34
|
+
allHintsUtilized: a >= r
|
|
35
|
+
};
|
|
36
|
+
}, U = ({
|
|
37
|
+
response: l,
|
|
38
|
+
behavior: t
|
|
39
|
+
}) => {
|
|
40
|
+
if (!l || !l.response || !l.score)
|
|
41
|
+
return !1;
|
|
42
|
+
const { responseEdited: s, score: n, attemptsHistory: r } = l, { maximumAttempts: a, canExceedAttempts: c } = t;
|
|
43
|
+
return ((r == null ? void 0 : r.length) ?? 0) >= a && !c ? !0 : s ? !1 : (n.score ?? 0) === n.max_score;
|
|
44
|
+
}, ue = ({
|
|
45
|
+
hintOptions: l,
|
|
46
|
+
response: t,
|
|
47
|
+
behavior: s,
|
|
48
|
+
canAskForHelp: n
|
|
49
|
+
}) => n && (!l.visible || l.allHintsUtilized) && !U({ response: t, behavior: s }) ? { visible: !0 } : { visible: !1 }, we = q(function() {
|
|
50
|
+
const {
|
|
51
|
+
question: t,
|
|
52
|
+
response: s,
|
|
53
|
+
behavior: n,
|
|
54
|
+
loggerRef: r,
|
|
55
|
+
setResponses: a,
|
|
56
|
+
onResponseChange: c,
|
|
57
|
+
onHelp: m,
|
|
58
|
+
userType: g,
|
|
59
|
+
openQuestionFeedbackModal: H,
|
|
60
|
+
activeQuestionTool: b,
|
|
61
|
+
setActiveQuestionTool: k,
|
|
62
|
+
unsetActiveQuestionTool: v,
|
|
63
|
+
worksheetCompleted: Q,
|
|
64
|
+
toggleCalculator: F
|
|
65
|
+
} = Y((e) => {
|
|
66
|
+
const o = e.questions[e.activeQuestionIndex], d = e.responses[o.response_id];
|
|
67
|
+
return {
|
|
68
|
+
behavior: e.behavior,
|
|
69
|
+
question: o,
|
|
70
|
+
response: d,
|
|
71
|
+
loggerRef: e.loggerRef,
|
|
72
|
+
setResponses: e.setResponses,
|
|
73
|
+
onResponseChange: e.onResponseChange,
|
|
74
|
+
onHelp: e.onHelp,
|
|
75
|
+
userType: e.userType,
|
|
76
|
+
openQuestionFeedbackModal: e.openQuestionFeedbackModal,
|
|
77
|
+
activeQuestionTool: e.activeQuestionTool,
|
|
78
|
+
setActiveQuestionTool: e.setActiveQuestionTool,
|
|
79
|
+
unsetActiveQuestionTool: e.unsetActiveQuestionTool,
|
|
80
|
+
worksheetCompleted: e.worksheetCompleted,
|
|
81
|
+
toggleCalculator: e.toggleCalculator
|
|
82
|
+
};
|
|
83
|
+
}), { response_id: h } = t, { hintsTimer: A } = n, [S, L] = V(!1), { hints: u, solution: E, askTeacher: $, questionFeedback: y, teachingTools: I } = M(() => {
|
|
84
|
+
var w, N, R;
|
|
85
|
+
const e = he({
|
|
86
|
+
behavior: n,
|
|
87
|
+
question: t,
|
|
88
|
+
response: s,
|
|
89
|
+
hintsTimerFinished: S
|
|
90
|
+
}), o = t == null ? void 0 : t.metadata, d = ((w = o == null ? void 0 : o.teacher_tips) == null ? void 0 : w.length) ?? 0, O = ((N = o == null ? void 0 : o.solution) == null ? void 0 : N.length) ?? 0, W = ((R = o == null ? void 0 : o.hints) == null ? void 0 : R.length) ?? 0, j = d + O + W > 0;
|
|
91
|
+
return {
|
|
92
|
+
hints: e,
|
|
93
|
+
askTeacher: ue({
|
|
94
|
+
behavior: n,
|
|
95
|
+
response: s,
|
|
96
|
+
hintOptions: e,
|
|
97
|
+
canAskForHelp: !!m
|
|
98
|
+
}),
|
|
99
|
+
questionFeedback: { visible: g === "TEACHER" },
|
|
100
|
+
teachingTools: { visible: g === "TEACHER", disabled: !j },
|
|
101
|
+
solution: {
|
|
102
|
+
visible: n.solutionHidden || !n.validation ? !1 : g === "STUDENT" && O > 0,
|
|
103
|
+
disabled: Q ? !1 : !U({ response: s, behavior: n })
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
}, [n, t, s, S, m, g, Q]), z = C(() => {
|
|
107
|
+
r.current(X.WORKSHEET_V3_HINT_SEEN), a((e) => {
|
|
108
|
+
var d;
|
|
109
|
+
const o = {
|
|
110
|
+
...Z(t),
|
|
111
|
+
...e[h],
|
|
112
|
+
hintsUsed: (((d = e[h]) == null ? void 0 : d.hintsUsed) ?? 0) + 1
|
|
113
|
+
};
|
|
114
|
+
return c == null || c({
|
|
115
|
+
responseId: h,
|
|
116
|
+
response: o,
|
|
117
|
+
question: t,
|
|
118
|
+
isNewAttempt: !1
|
|
119
|
+
}), {
|
|
120
|
+
...e,
|
|
121
|
+
[h]: o
|
|
122
|
+
};
|
|
123
|
+
});
|
|
124
|
+
}, [r, c, t, h, a]), B = C(() => {
|
|
125
|
+
H && H(t.item_reference);
|
|
126
|
+
}, [H, t]), D = C(() => {
|
|
127
|
+
b !== p.TEACHING_TOOLS ? k(p.TEACHING_TOOLS) : v();
|
|
128
|
+
}, [k, v, b]), G = C(() => {
|
|
129
|
+
b !== p.SOLUTION ? k(p.SOLUTION) : v();
|
|
130
|
+
}, [k, v, b]), K = C(() => {
|
|
131
|
+
if (m && t) {
|
|
132
|
+
const { item_number: e, question_number: o, total_questions: d } = t;
|
|
133
|
+
m({
|
|
134
|
+
questionId: h,
|
|
135
|
+
questionNumber: `${e + 1}${d > 1 ? String.fromCharCode(97 + o) : ""}`
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
}, [m, t, h]);
|
|
139
|
+
return J(() => {
|
|
140
|
+
if (A) {
|
|
141
|
+
const e = setTimeout(() => {
|
|
142
|
+
L(!0);
|
|
143
|
+
}, A * 1e3);
|
|
144
|
+
return () => clearTimeout(e);
|
|
145
|
+
}
|
|
146
|
+
}, [A]), /* @__PURE__ */ _(
|
|
147
|
+
ee,
|
|
148
|
+
{
|
|
149
|
+
$showBorder: n.canvasEnabled == !0,
|
|
150
|
+
$flexDirection: "row",
|
|
151
|
+
children: [
|
|
152
|
+
u.visible && /* @__PURE__ */ i(T, { label: "Hint", disabled: u.disabled, onClick: z, children: /* @__PURE__ */ i(f, { children: /* @__PURE__ */ _(ie, { children: [
|
|
153
|
+
/* @__PURE__ */ i(P, { width: 24, height: 24, opacity: u.disabled ? 0.38 : 1 }),
|
|
154
|
+
!u.allHintsUtilized && u.nextHintnumber > 1 && /* @__PURE__ */ i(te, { children: /* @__PURE__ */ i(oe, { $renderAs: "ab4-black", $color: "BLACK", children: u.nextHintnumber }) }),
|
|
155
|
+
u.allHintsUtilized && /* @__PURE__ */ i(ne, { src: se.TICK_GREEN })
|
|
156
|
+
] }) }) }),
|
|
157
|
+
E.visible && /* @__PURE__ */ i(T, { label: "Solution", disabled: E.disabled, onClick: G, children: /* @__PURE__ */ i(f, { children: b === p.SOLUTION ? /* @__PURE__ */ i(x, { width: 24, height: 24 }) : /* @__PURE__ */ i(ae, { width: 24, height: 24, opacity: E.disabled ? 0.38 : 1 }) }) }),
|
|
158
|
+
$.visible && /* @__PURE__ */ i(T, { label: "Ask for help", onClick: K, children: /* @__PURE__ */ i(f, { children: /* @__PURE__ */ i(le, { width: 24, height: 24 }) }) }),
|
|
159
|
+
y.visible && /* @__PURE__ */ i(T, { label: "Question Feedback", onClick: B, children: /* @__PURE__ */ i(f, { children: /* @__PURE__ */ i(re, { width: 24, height: 24 }) }) }),
|
|
160
|
+
n.canShowDesmosCalc && /* @__PURE__ */ i(T, { label: "Desmos Calculator", onClick: F, children: /* @__PURE__ */ i(f, { children: /* @__PURE__ */ i(de, { width: 24, height: 24 }) }) }),
|
|
161
|
+
I.visible && /* @__PURE__ */ i(
|
|
162
|
+
T,
|
|
163
|
+
{
|
|
164
|
+
label: "Teaching Tools",
|
|
165
|
+
disabled: I.disabled,
|
|
166
|
+
onClick: D,
|
|
167
|
+
children: /* @__PURE__ */ i(f, { children: b === p.TEACHING_TOOLS ? /* @__PURE__ */ i(x, { width: 24, height: 24 }) : /* @__PURE__ */ i(
|
|
168
|
+
ce,
|
|
169
|
+
{
|
|
170
|
+
width: 24,
|
|
171
|
+
height: 24,
|
|
172
|
+
opacity: I.disabled ? 0.38 : 1
|
|
173
|
+
}
|
|
174
|
+
) })
|
|
175
|
+
}
|
|
176
|
+
)
|
|
177
|
+
]
|
|
178
|
+
}
|
|
179
|
+
);
|
|
180
|
+
});
|
|
181
|
+
export {
|
|
182
|
+
we as default
|
|
183
|
+
};
|
|
184
|
+
//# sourceMappingURL=questions-toolbar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"questions-toolbar.js","sources":["../../../../../../src/features/worksheet/worksheet/worksheet-questions-tools/questions-toolbar/questions-toolbar.tsx"],"sourcesContent":["import { memo, useCallback, useEffect, useMemo, useState } from 'react';\n\nimport HintsIcon from '../../../../../assets/line-icons/icons/hints';\nimport Clickable from '../../../../ui/buttons/clickable/clickable';\nimport EVENTS from '../../../constants/events';\nimport { useWorksheetStore } from '../../hooks/use-worksheet-store';\nimport { getQuestionMetadata } from '../../worksheet-helpers';\nimport {\n EActiveQuestionTool,\n type IWorksheetBehavior,\n type IWorksheetQuestion,\n type IWorksheetResponse,\n} from '../../worksheet-types';\nimport * as Styled from './questions-toolbar-styled';\nimport { ILLUSTRATIONS } from '../../../../../assets/illustrations/illustrations';\nimport HandIcon from '../../../../../assets/line-icons/icons/hand';\nimport QuestionFeedbackIcon from '../../../../../assets/line-icons/icons/question-feedback';\nimport TeachingToolsIcon from '../../../../../assets/line-icons/icons/teaching-tools';\nimport CloseIcon from '../../../../../assets/line-icons/icons/close';\nimport SolutionIcon from '../../../../../assets/line-icons/icons/solution';\nimport CalculatorIcon from '../../../../../assets/line-icons/icons/calculator';\n\ninterface IQuestionToolbarOptions {\n hints:\n | {\n visible: false;\n }\n | {\n visible: true;\n disabled: boolean;\n nextHintnumber: number;\n allHintsUtilized: boolean;\n };\n solution: {\n visible: boolean;\n disabled: boolean;\n };\n teachingTools: {\n visible: boolean;\n disabled: boolean;\n };\n stickers?: {\n visible: boolean;\n };\n askTeacher: {\n visible: boolean;\n };\n questionFeedback: {\n visible: boolean;\n };\n}\n\ninterface IGetHintsOptions {\n (options: {\n behavior: IWorksheetBehavior;\n question: IWorksheetQuestion;\n response?: IWorksheetResponse;\n hintsTimerFinished: boolean;\n }): IQuestionToolbarOptions['hints'];\n}\n\nconst getHintsOptions: IGetHintsOptions = ({\n behavior,\n question,\n response,\n hintsTimerFinished,\n}) => {\n if (!behavior.hints) {\n return { visible: false };\n }\n\n const hintsAvailable = question.metadata.hints?.length ?? 0;\n\n if (hintsAvailable === 0) {\n return { visible: false };\n }\n\n const hintsUsed = response?.hintsUsed ?? 0;\n\n return {\n visible: true,\n disabled: (behavior.hintsTimer && !hintsTimerFinished) || hintsUsed >= hintsAvailable,\n nextHintnumber: hintsUsed + 1,\n allHintsUtilized: hintsUsed >= hintsAvailable,\n };\n};\n\ninterface IIsResponseCompletedOrExhausted {\n (options: { response?: IWorksheetResponse; behavior: IWorksheetBehavior }): boolean;\n}\n\nconst isResponseCompletedOrExhausted: IIsResponseCompletedOrExhausted = ({\n response,\n behavior,\n}) => {\n if (!response || !response.response || !response.score) {\n return false;\n }\n\n const { responseEdited, score, attemptsHistory } = response;\n\n const { maximumAttempts, canExceedAttempts } = behavior;\n const maximumAttemptsReached = (attemptsHistory?.length ?? 0) >= maximumAttempts;\n\n if (maximumAttemptsReached && !canExceedAttempts) return true;\n\n if (responseEdited) return false;\n\n if ((score.score ?? 0) === score.max_score) return true;\n\n return false;\n};\n\ninterface IGetAskTeacherOptions {\n (options: {\n canAskForHelp: boolean;\n hintOptions: IQuestionToolbarOptions['hints'];\n behavior: IWorksheetBehavior;\n response?: IWorksheetResponse;\n }): IQuestionToolbarOptions['askTeacher'];\n}\n\nconst getAskTeacherOptions: IGetAskTeacherOptions = ({\n hintOptions,\n response,\n behavior,\n canAskForHelp,\n}) => {\n if (\n canAskForHelp &&\n (!hintOptions.visible || hintOptions.allHintsUtilized) &&\n !isResponseCompletedOrExhausted({ response, behavior })\n ) {\n return { visible: true };\n }\n\n return { visible: false };\n};\n\nconst QuestionsToolbar = memo(function QuestionsToolbar() {\n const {\n question,\n response,\n behavior,\n loggerRef,\n setResponses,\n onResponseChange,\n onHelp,\n userType,\n openQuestionFeedbackModal,\n activeQuestionTool,\n setActiveQuestionTool,\n unsetActiveQuestionTool,\n worksheetCompleted,\n toggleCalculator,\n } = useWorksheetStore(store => {\n const activeQuestion = store.questions[store.activeQuestionIndex]!;\n const activeQuesttionResponse = store.responses[activeQuestion.response_id];\n\n return {\n behavior: store.behavior,\n question: activeQuestion,\n response: activeQuesttionResponse,\n loggerRef: store.loggerRef,\n setResponses: store.setResponses,\n onResponseChange: store.onResponseChange,\n onHelp: store.onHelp,\n userType: store.userType,\n openQuestionFeedbackModal: store.openQuestionFeedbackModal,\n activeQuestionTool: store.activeQuestionTool,\n setActiveQuestionTool: store.setActiveQuestionTool,\n unsetActiveQuestionTool: store.unsetActiveQuestionTool,\n worksheetCompleted: store.worksheetCompleted,\n toggleCalculator: store.toggleCalculator,\n };\n });\n const { response_id: responseId } = question;\n const { hintsTimer } = behavior;\n const [hintsTimerFinished, setHintsTimerFinished] = useState(false);\n const { hints, solution, askTeacher, questionFeedback, teachingTools } =\n useMemo<IQuestionToolbarOptions>(() => {\n const hintsOptions = getHintsOptions({\n behavior,\n question,\n response,\n hintsTimerFinished,\n });\n const questionMetadata = question?.metadata;\n const teacherTipsCount = questionMetadata?.teacher_tips?.length ?? 0;\n const solutionsCount = questionMetadata?.solution?.length ?? 0;\n const hintsCount = questionMetadata?.hints?.length ?? 0;\n const teachingToolEnabled = teacherTipsCount + solutionsCount + hintsCount > 0;\n\n return {\n hints: hintsOptions,\n askTeacher: getAskTeacherOptions({\n behavior,\n response,\n hintOptions: hintsOptions,\n canAskForHelp: !!onHelp,\n }),\n questionFeedback: { visible: userType === 'TEACHER' },\n teachingTools: { visible: userType === 'TEACHER', disabled: !teachingToolEnabled },\n solution: {\n visible:\n behavior.solutionHidden || !behavior.validation\n ? false\n : userType === 'STUDENT' && solutionsCount > 0,\n disabled: worksheetCompleted\n ? false\n : !isResponseCompletedOrExhausted({ response, behavior }),\n },\n };\n }, [behavior, question, response, hintsTimerFinished, onHelp, userType, worksheetCompleted]);\n\n const handleHintButtonClick = useCallback(() => {\n loggerRef.current(EVENTS.WORKSHEET_V3_HINT_SEEN);\n setResponses(prevResponses => {\n const newResponse = {\n ...getQuestionMetadata(question),\n ...prevResponses[responseId],\n hintsUsed: (prevResponses[responseId]?.hintsUsed ?? 0) + 1,\n };\n\n onResponseChange?.({\n responseId,\n response: newResponse,\n question,\n isNewAttempt: false,\n });\n\n return {\n ...prevResponses,\n [responseId]: newResponse,\n };\n });\n }, [loggerRef, onResponseChange, question, responseId, setResponses]);\n\n const handleQuestionFeedbackClick = useCallback(() => {\n if (openQuestionFeedbackModal) {\n openQuestionFeedbackModal(question.item_reference);\n }\n }, [openQuestionFeedbackModal, question]);\n\n const handleTeachingToolsClick = useCallback(() => {\n if (activeQuestionTool !== EActiveQuestionTool.TEACHING_TOOLS) {\n setActiveQuestionTool(EActiveQuestionTool.TEACHING_TOOLS);\n } else {\n unsetActiveQuestionTool();\n }\n }, [setActiveQuestionTool, unsetActiveQuestionTool, activeQuestionTool]);\n\n const handleSolutionClick = useCallback(() => {\n if (activeQuestionTool !== EActiveQuestionTool.SOLUTION) {\n setActiveQuestionTool(EActiveQuestionTool.SOLUTION);\n } else {\n unsetActiveQuestionTool();\n }\n }, [setActiveQuestionTool, unsetActiveQuestionTool, activeQuestionTool]);\n\n const handleHelpButtonClick = useCallback(() => {\n if (onHelp && question) {\n const { item_number, question_number, total_questions } = question;\n\n onHelp({\n questionId: responseId,\n questionNumber: `${item_number + 1}${\n total_questions > 1 ? String.fromCharCode('a'.charCodeAt(0) + question_number) : ''\n }`,\n });\n }\n }, [onHelp, question, responseId]);\n\n useEffect(() => {\n if (hintsTimer) {\n const timeoutId = setTimeout(() => {\n setHintsTimerFinished(true);\n }, hintsTimer * 1000);\n\n return () => clearTimeout(timeoutId);\n }\n }, [hintsTimer]);\n\n return (\n <Styled.WorksheetQuestionsToolbarContainer\n $showBorder={behavior.canvasEnabled == true}\n $flexDirection=\"row\"\n >\n {hints.visible && (\n <Clickable label=\"Hint\" disabled={hints.disabled} onClick={handleHintButtonClick}>\n <Styled.IconContainer>\n <Styled.HintsIconContainer>\n <HintsIcon width={24} height={24} opacity={hints.disabled ? 0.38 : 1} />\n {!hints.allHintsUtilized && hints.nextHintnumber > 1 && (\n <Styled.HintsNumberContainer>\n <Styled.HintsNumber $renderAs=\"ab4-black\" $color=\"BLACK\">\n {hints.nextHintnumber}\n </Styled.HintsNumber>\n </Styled.HintsNumberContainer>\n )}\n {hints.allHintsUtilized && <Styled.TickMark src={ILLUSTRATIONS.TICK_GREEN} />}\n </Styled.HintsIconContainer>\n </Styled.IconContainer>\n </Clickable>\n )}\n {solution.visible && (\n <Clickable label=\"Solution\" disabled={solution.disabled} onClick={handleSolutionClick}>\n <Styled.IconContainer>\n {activeQuestionTool === EActiveQuestionTool.SOLUTION ? (\n <CloseIcon width={24} height={24} />\n ) : (\n <SolutionIcon width={24} height={24} opacity={solution.disabled ? 0.38 : 1} />\n )}\n </Styled.IconContainer>\n </Clickable>\n )}\n {askTeacher.visible && (\n <Clickable label=\"Ask for help\" onClick={handleHelpButtonClick}>\n <Styled.IconContainer>\n <HandIcon width={24} height={24} />\n </Styled.IconContainer>\n </Clickable>\n )}\n {questionFeedback.visible && (\n <Clickable label=\"Question Feedback\" onClick={handleQuestionFeedbackClick}>\n <Styled.IconContainer>\n <QuestionFeedbackIcon width={24} height={24} />\n </Styled.IconContainer>\n </Clickable>\n )}\n {behavior.canShowDesmosCalc && (\n <Clickable label=\"Desmos Calculator\" onClick={toggleCalculator}>\n <Styled.IconContainer>\n <CalculatorIcon width={24} height={24} />\n </Styled.IconContainer>\n </Clickable>\n )}\n {teachingTools.visible && (\n <Clickable\n label=\"Teaching Tools\"\n disabled={teachingTools.disabled}\n onClick={handleTeachingToolsClick}\n >\n <Styled.IconContainer>\n {activeQuestionTool === EActiveQuestionTool.TEACHING_TOOLS ? (\n <CloseIcon width={24} height={24} />\n ) : (\n <TeachingToolsIcon\n width={24}\n height={24}\n opacity={teachingTools.disabled ? 0.38 : 1}\n />\n )}\n </Styled.IconContainer>\n </Clickable>\n )}\n </Styled.WorksheetQuestionsToolbarContainer>\n );\n});\n\nexport default QuestionsToolbar;\n"],"names":["getHintsOptions","behavior","question","response","hintsTimerFinished","hintsAvailable","_a","hintsUsed","isResponseCompletedOrExhausted","responseEdited","score","attemptsHistory","maximumAttempts","canExceedAttempts","getAskTeacherOptions","hintOptions","canAskForHelp","QuestionsToolbar","memo","loggerRef","setResponses","onResponseChange","onHelp","userType","openQuestionFeedbackModal","activeQuestionTool","setActiveQuestionTool","unsetActiveQuestionTool","worksheetCompleted","toggleCalculator","useWorksheetStore","store","activeQuestion","activeQuesttionResponse","responseId","hintsTimer","setHintsTimerFinished","useState","hints","solution","askTeacher","questionFeedback","teachingTools","useMemo","hintsOptions","questionMetadata","teacherTipsCount","solutionsCount","_b","hintsCount","_c","teachingToolEnabled","handleHintButtonClick","useCallback","EVENTS","prevResponses","newResponse","getQuestionMetadata","handleQuestionFeedbackClick","handleTeachingToolsClick","EActiveQuestionTool","handleSolutionClick","handleHelpButtonClick","item_number","question_number","total_questions","useEffect","timeoutId","jsxs","Styled.WorksheetQuestionsToolbarContainer","jsx","Clickable","Styled.IconContainer","Styled.HintsIconContainer","HintsIcon","Styled.HintsNumberContainer","Styled.HintsNumber","Styled.TickMark","ILLUSTRATIONS","CloseIcon","SolutionIcon","HandIcon","QuestionFeedbackIcon","CalculatorIcon","TeachingToolsIcon"],"mappings":"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"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { jsx as o, jsxs as s } from "react/jsx-runtime";
|
|
2
|
+
import { memo as a, useEffect as g } from "react";
|
|
3
|
+
import t from "styled-components";
|
|
4
|
+
import d from "../../../../assets/line-icons/icons/scribble.js";
|
|
5
|
+
import p from "../../../ui/buttons/clickable/clickable.js";
|
|
6
|
+
import m from "../../../ui/layout/flex-view.js";
|
|
7
|
+
import f from "../../constants/events.js";
|
|
8
|
+
import { useWorksheetStore as h } from "../hooks/use-worksheet-store.js";
|
|
9
|
+
import S from "../../../../assets/line-icons/icons/cursor2.js";
|
|
10
|
+
const u = t(m)(
|
|
11
|
+
({ theme: r }) => `
|
|
12
|
+
position: relative;
|
|
13
|
+
height: 32px;
|
|
14
|
+
border-radius: 40px;
|
|
15
|
+
background-color: ${r.colors.WHITE_4};
|
|
16
|
+
`
|
|
17
|
+
), n = t.div(
|
|
18
|
+
({ $active: r, theme: e }) => `
|
|
19
|
+
z-index: 1;
|
|
20
|
+
color: ${r ? e.colors.BLACK : e.colors.BLACK_T_38};
|
|
21
|
+
`
|
|
22
|
+
), x = t.div(
|
|
23
|
+
({ $active: r, theme: e }) => `
|
|
24
|
+
position: absolute;
|
|
25
|
+
top: 4px;
|
|
26
|
+
left: 0;
|
|
27
|
+
width: 24px;
|
|
28
|
+
height: 24px;
|
|
29
|
+
border-radius: 50%;
|
|
30
|
+
background-color: ${e.colors.WHITE};
|
|
31
|
+
transform: translateX(${r ? 4 : 32}px);
|
|
32
|
+
transition: transform 0.3s ease;
|
|
33
|
+
z-index: 0;
|
|
34
|
+
`
|
|
35
|
+
), C = a(function() {
|
|
36
|
+
const { toggleScribble: e, scribblingEnabled: i, canToggleScribbling: b, loggerRef: c } = h(
|
|
37
|
+
(l) => ({
|
|
38
|
+
scribblingEnabled: l.scribblingEnabled,
|
|
39
|
+
toggleScribble: l.toggleScribble,
|
|
40
|
+
canToggleScribbling: l.behavior.canScribble ?? !0,
|
|
41
|
+
loggerRef: l.loggerRef
|
|
42
|
+
})
|
|
43
|
+
);
|
|
44
|
+
return g(() => {
|
|
45
|
+
c.current(f.WORKSHEET_V3_SCRIBBLE_TOGGLE, {
|
|
46
|
+
scribbling_enabled: i
|
|
47
|
+
});
|
|
48
|
+
}, [i, c]), /* @__PURE__ */ o(
|
|
49
|
+
p,
|
|
50
|
+
{
|
|
51
|
+
label: "ScribbleSwitch Toggled",
|
|
52
|
+
onClick: e,
|
|
53
|
+
disabled: !b,
|
|
54
|
+
children: /* @__PURE__ */ s(u, { $flexDirection: "row", $gutter: 4, $flexGap: 4, $alignItems: "center", children: [
|
|
55
|
+
/* @__PURE__ */ o(x, { $active: i }),
|
|
56
|
+
/* @__PURE__ */ o(n, { $active: i, children: /* @__PURE__ */ o(d, { width: 24, height: 24 }) }),
|
|
57
|
+
/* @__PURE__ */ o(n, { $active: !i, children: /* @__PURE__ */ o(S, { width: 24, height: 24 }) })
|
|
58
|
+
] })
|
|
59
|
+
}
|
|
60
|
+
);
|
|
61
|
+
});
|
|
62
|
+
export {
|
|
63
|
+
C as default
|
|
64
|
+
};
|
|
65
|
+
//# sourceMappingURL=scribble-switch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scribble-switch.js","sources":["../../../../../src/features/worksheet/worksheet/worksheet-questions-tools/scribble-switch.tsx"],"sourcesContent":["import { memo, useEffect, type FC } from 'react';\nimport styled from 'styled-components';\n\nimport ScribbleIcon from '../../../../assets/line-icons/icons/scribble';\nimport Clickable from '../../../ui/buttons/clickable/clickable';\nimport FlexView from '../../../ui/layout/flex-view';\nimport EVENTS from '../../constants/events';\nimport { useWorksheetStore } from '../hooks/use-worksheet-store';\nimport Cursor2Icon from '../../../../assets/line-icons/icons/cursor2';\n\nconst IconsWrapper = styled(FlexView)(\n ({ theme }) => `\n position: relative;\n height: 32px;\n border-radius: 40px;\n background-color: ${theme.colors.WHITE_4};\n`,\n);\n\ninterface IWhiteMaskProps {\n $active: boolean;\n}\n\nconst IconWrapper = styled.div<IWhiteMaskProps>(\n ({ $active, theme }) => ` \n z-index: 1;\n color: ${$active ? theme.colors.BLACK : theme.colors.BLACK_T_38};\n`,\n);\n\nconst WhiteMask = styled.div<IWhiteMaskProps>(\n ({ $active, theme }) => `\n position: absolute;\n top: 4px;\n left: 0;\n width: 24px;\n height: 24px;\n border-radius: 50%;\n background-color: ${theme.colors.WHITE};\n transform: translateX(${$active ? 4 : 32}px);\n transition: transform 0.3s ease;\n z-index: 0;\n`,\n);\n\nconst ScribbleSwitch: FC = memo(function ScribbleSwitch() {\n const { toggleScribble, scribblingEnabled, canToggleScribbling, loggerRef } = useWorksheetStore(\n store => ({\n scribblingEnabled: store.scribblingEnabled,\n toggleScribble: store.toggleScribble,\n canToggleScribbling: store.behavior.canScribble ?? true,\n loggerRef: store.loggerRef,\n }),\n );\n\n useEffect(() => {\n loggerRef.current(EVENTS.WORKSHEET_V3_SCRIBBLE_TOGGLE, {\n scribbling_enabled: scribblingEnabled,\n });\n }, [scribblingEnabled, loggerRef]);\n\n return (\n <Clickable\n label=\"ScribbleSwitch Toggled\"\n onClick={toggleScribble}\n disabled={!canToggleScribbling}\n >\n <IconsWrapper $flexDirection=\"row\" $gutter={4} $flexGap={4} $alignItems=\"center\">\n <WhiteMask $active={scribblingEnabled} />\n <IconWrapper $active={scribblingEnabled}>\n <ScribbleIcon width={24} height={24} />\n </IconWrapper>\n <IconWrapper $active={!scribblingEnabled}>\n <Cursor2Icon width={24} height={24} />\n </IconWrapper>\n </IconsWrapper>\n </Clickable>\n );\n});\n\nexport default ScribbleSwitch;\n"],"names":["IconsWrapper","styled","FlexView","theme","IconWrapper","$active","WhiteMask","ScribbleSwitch","memo","toggleScribble","scribblingEnabled","canToggleScribbling","loggerRef","useWorksheetStore","store","useEffect","EVENTS","jsx","Clickable","jsxs","ScribbleIcon","Cursor2Icon"],"mappings":";;;;;;;;;AAUA,MAAMA,IAAeC,EAAOC,CAAQ;AAAA,EAClC,CAAC,EAAE,OAAAC,EAAA,MAAY;AAAA;AAAA;AAAA;AAAA,sBAIKA,EAAM,OAAO,OAAO;AAAA;AAE1C,GAMMC,IAAcH,EAAO;AAAA,EACzB,CAAC,EAAE,SAAAI,GAAS,OAAAF,EAAA,MAAY;AAAA;AAAA,WAEfE,IAAUF,EAAM,OAAO,QAAQA,EAAM,OAAO,UAAU;AAAA;AAEjE,GAEMG,IAAYL,EAAO;AAAA,EACvB,CAAC,EAAE,SAAAI,GAAS,OAAAF,EAAA,MAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAOJA,EAAM,OAAO,KAAK;AAAA,0BACdE,IAAU,IAAI,EAAE;AAAA;AAAA;AAAA;AAI1C,GAEME,IAAqBC,EAAK,WAA0B;AACxD,QAAM,EAAE,gBAAAC,GAAgB,mBAAAC,GAAmB,qBAAAC,GAAqB,WAAAC,EAAc,IAAAC;AAAA,IAC5E,CAAUC,OAAA;AAAA,MACR,mBAAmBA,EAAM;AAAA,MACzB,gBAAgBA,EAAM;AAAA,MACtB,qBAAqBA,EAAM,SAAS,eAAe;AAAA,MACnD,WAAWA,EAAM;AAAA,IAAA;AAAA,EACnB;AAGF,SAAAC,EAAU,MAAM;AACJ,IAAAH,EAAA,QAAQI,EAAO,8BAA8B;AAAA,MACrD,oBAAoBN;AAAA,IAAA,CACrB;AAAA,EAAA,GACA,CAACA,GAAmBE,CAAS,CAAC,GAG/B,gBAAAK;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,OAAM;AAAA,MACN,SAAST;AAAA,MACT,UAAU,CAACE;AAAA,MAEX,UAAA,gBAAAQ,EAACnB,KAAa,gBAAe,OAAM,SAAS,GAAG,UAAU,GAAG,aAAY,UACtE,UAAA;AAAA,QAAC,gBAAAiB,EAAAX,GAAA,EAAU,SAASI,EAAmB,CAAA;AAAA,QACvC,gBAAAO,EAACb,GAAY,EAAA,SAASM,GACpB,UAAA,gBAAAO,EAACG,KAAa,OAAO,IAAI,QAAQ,GAAA,CAAI,EACvC,CAAA;AAAA,QACA,gBAAAH,EAACb,GAAY,EAAA,SAAS,CAACM,GACrB,UAAC,gBAAAO,EAAAI,GAAA,EAAY,OAAO,IAAI,QAAQ,GAAA,CAAI,EACtC,CAAA;AAAA,MAAA,GACF;AAAA,IAAA;AAAA,EAAA;AAGN,CAAC;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worksheet-questions-styled.js","sources":["../../../../../src/features/worksheet/worksheet/worksheet-questions-tools/worksheet-questions-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nimport FlexView from '../../../ui/layout/flex-view';\n\nconst WorksheetQuestionsToolsContainer = styled(FlexView)`\n pointer-events: auto;\n`;\n\nexport { WorksheetQuestionsToolsContainer };\n"],"names":["WorksheetQuestionsToolsContainer","styled","FlexView"],"mappings":";;AAIM,MAAAA,IAAmCC,EAAOC,CAAQ;AAAA;AAAA;"}
|
package/dist/features/worksheet/worksheet/worksheet-questions-tools/worksheet-questions-tools.js
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { jsxs as t, jsx as r } from "react/jsx-runtime";
|
|
2
|
+
import { memo as a } from "react";
|
|
3
|
+
import b from "./scribble-switch.js";
|
|
4
|
+
import { WorksheetQuestionsToolsContainer as l } from "./worksheet-questions-styled.js";
|
|
5
|
+
import { useWorksheetStore as c } from "../hooks/use-worksheet-store.js";
|
|
6
|
+
import m from "../../../cue-canvas/toolbar/toolbar.js";
|
|
7
|
+
import u from "./questions-toolbar/questions-toolbar.js";
|
|
8
|
+
const k = a(function() {
|
|
9
|
+
const { actionbarHeight: e, isCanvasEnabled: i, scribblingEnabled: s, userType: n } = c(
|
|
10
|
+
(o) => ({
|
|
11
|
+
actionbarHeight: o.actionbarHeight,
|
|
12
|
+
isCanvasEnabled: !!o.behavior.canvasEnabled,
|
|
13
|
+
scribblingEnabled: o.scribblingEnabled,
|
|
14
|
+
userType: o.userType
|
|
15
|
+
})
|
|
16
|
+
);
|
|
17
|
+
return /* @__PURE__ */ t(
|
|
18
|
+
l,
|
|
19
|
+
{
|
|
20
|
+
$flexDirection: "row",
|
|
21
|
+
$height: e,
|
|
22
|
+
$borderRadius: 48,
|
|
23
|
+
$background: "WHITE",
|
|
24
|
+
$borderColor: "BLACK_T_15",
|
|
25
|
+
$gutter: 4,
|
|
26
|
+
$alignItems: "center",
|
|
27
|
+
children: [
|
|
28
|
+
i && /* @__PURE__ */ r(b, {}),
|
|
29
|
+
s && /* @__PURE__ */ r(m, { userType: n, renderAs: "canvas" }),
|
|
30
|
+
/* @__PURE__ */ r(u, {})
|
|
31
|
+
]
|
|
32
|
+
}
|
|
33
|
+
);
|
|
34
|
+
});
|
|
35
|
+
export {
|
|
36
|
+
k as default
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=worksheet-questions-tools.js.map
|
package/dist/features/worksheet/worksheet/worksheet-questions-tools/worksheet-questions-tools.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worksheet-questions-tools.js","sources":["../../../../../src/features/worksheet/worksheet/worksheet-questions-tools/worksheet-questions-tools.tsx"],"sourcesContent":["import { memo } from 'react';\n\nimport ScribbleSwitch from './scribble-switch';\nimport * as Styled from './worksheet-questions-styled';\nimport { useWorksheetStore } from '../hooks/use-worksheet-store';\nimport Toolbar from '../../../cue-canvas/toolbar/toolbar';\nimport QuestionsToolbar from './questions-toolbar/questions-toolbar';\n\nconst WorksheetQuestionsTools = memo(function WorksheetQuestionsTools() {\n const { actionbarHeight, isCanvasEnabled, scribblingEnabled, userType } = useWorksheetStore(\n store => ({\n actionbarHeight: store.actionbarHeight,\n isCanvasEnabled: !!store.behavior.canvasEnabled,\n scribblingEnabled: store.scribblingEnabled,\n userType: store.userType,\n }),\n );\n\n return (\n <Styled.WorksheetQuestionsToolsContainer\n $flexDirection=\"row\"\n $height={actionbarHeight}\n $borderRadius={48}\n $background=\"WHITE\"\n $borderColor=\"BLACK_T_15\"\n $gutter={4}\n $alignItems=\"center\"\n >\n {isCanvasEnabled && <ScribbleSwitch />}\n {scribblingEnabled && <Toolbar userType={userType} renderAs=\"canvas\" />}\n <QuestionsToolbar />\n </Styled.WorksheetQuestionsToolsContainer>\n );\n});\n\nexport default WorksheetQuestionsTools;\n"],"names":["WorksheetQuestionsTools","memo","actionbarHeight","isCanvasEnabled","scribblingEnabled","userType","useWorksheetStore","store","jsxs","Styled.WorksheetQuestionsToolsContainer","ScribbleSwitch","jsx","Toolbar","QuestionsToolbar"],"mappings":";;;;;;;AAQM,MAAAA,IAA0BC,EAAK,WAAmC;AACtE,QAAM,EAAE,iBAAAC,GAAiB,iBAAAC,GAAiB,mBAAAC,GAAmB,UAAAC,EAAa,IAAAC;AAAA,IACxE,CAAUC,OAAA;AAAA,MACR,iBAAiBA,EAAM;AAAA,MACvB,iBAAiB,CAAC,CAACA,EAAM,SAAS;AAAA,MAClC,mBAAmBA,EAAM;AAAA,MACzB,UAAUA,EAAM;AAAA,IAAA;AAAA,EAClB;AAIA,SAAA,gBAAAC;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,gBAAe;AAAA,MACf,SAASP;AAAA,MACT,eAAe;AAAA,MACf,aAAY;AAAA,MACZ,cAAa;AAAA,MACb,SAAS;AAAA,MACT,aAAY;AAAA,MAEX,UAAA;AAAA,QAAAC,uBAAoBO,GAAe,EAAA;AAAA,QACnCN,KAAqB,gBAAAO,EAACC,GAAQ,EAAA,UAAAP,GAAoB,UAAS,UAAS;AAAA,0BACpEQ,GAAiB,EAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGxB,CAAC;"}
|
|
@@ -1,25 +1,38 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import { useCallback as
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
top: i === "up" ? -100 : 100,
|
|
1
|
+
import { jsxs as m, jsx as o } from "react/jsx-runtime";
|
|
2
|
+
import { memo as h, useCallback as n } from "react";
|
|
3
|
+
import p from "../../../../assets/line-icons/icons/chevron-down.js";
|
|
4
|
+
import f from "../../../../assets/line-icons/icons/chevron-up.js";
|
|
5
|
+
import c from "../../../ui/buttons/clickable/clickable.js";
|
|
6
|
+
import r from "../../../ui/layout/flex-view.js";
|
|
7
|
+
const v = h(function() {
|
|
8
|
+
const e = n((d) => {
|
|
9
|
+
const l = document.getElementById("live-sheet-scroll-wrapper"), i = document.getElementById("tab-content-container"), t = {
|
|
10
|
+
top: d === "up" ? -250 : 250,
|
|
12
11
|
behavior: "smooth"
|
|
13
12
|
};
|
|
14
|
-
l ? l.scrollBy(
|
|
15
|
-
}, [])
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
13
|
+
l ? l.scrollBy(t) : i ? i.scrollBy(t) : window.scrollBy(t);
|
|
14
|
+
}, []), s = n(() => {
|
|
15
|
+
e("up");
|
|
16
|
+
}, [e]), a = n(() => {
|
|
17
|
+
e("down");
|
|
18
|
+
}, [e]);
|
|
19
|
+
return /* @__PURE__ */ m(
|
|
20
|
+
r,
|
|
21
|
+
{
|
|
22
|
+
$background: "WHITE",
|
|
23
|
+
$borderRadius: 48,
|
|
24
|
+
$gutter: 8,
|
|
25
|
+
$flexGap: 8,
|
|
26
|
+
$flexDirection: "row",
|
|
27
|
+
$borderColor: "BLACK_T_15",
|
|
28
|
+
children: [
|
|
29
|
+
/* @__PURE__ */ o(c, { label: "up", onClick: s, children: /* @__PURE__ */ o(r, { $height: 38, $justifyContent: "center", children: /* @__PURE__ */ o(f, {}) }) }),
|
|
30
|
+
/* @__PURE__ */ o(c, { label: "down", onClick: a, children: /* @__PURE__ */ o(r, { $height: 38, $justifyContent: "center", children: /* @__PURE__ */ o(p, {}) }) })
|
|
31
|
+
]
|
|
32
|
+
}
|
|
33
|
+
);
|
|
34
|
+
});
|
|
22
35
|
export {
|
|
23
|
-
|
|
36
|
+
v as default
|
|
24
37
|
};
|
|
25
38
|
//# sourceMappingURL=navigator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigator.js","sources":["../../../../../src/features/worksheet/worksheet/worksheet-sidebar/navigator.tsx"],"sourcesContent":["import { useCallback, type FC } from 'react';\n\nimport
|
|
1
|
+
{"version":3,"file":"navigator.js","sources":["../../../../../src/features/worksheet/worksheet/worksheet-sidebar/navigator.tsx"],"sourcesContent":["import { memo, useCallback, type FC } from 'react';\n\nimport ChevronDownIcon from '../../../../assets/line-icons/icons/chevron-down';\nimport ChevronUpIcon from '../../../../assets/line-icons/icons/chevron-up';\nimport Clickable from '../../../ui/buttons/clickable/clickable';\nimport FlexView from '../../../ui/layout/flex-view';\n\nconst Navigator: FC = memo(function Navigator() {\n const handleClick = useCallback((val: 'up' | 'down') => {\n const liveScrollView = document.getElementById('live-sheet-scroll-wrapper');\n const tabScrollView = document.getElementById('tab-content-container');\n const position = {\n top: val === 'up' ? -250 : 250,\n behavior: 'smooth',\n } as const;\n\n if (liveScrollView) {\n liveScrollView.scrollBy(position);\n } else if (tabScrollView) {\n tabScrollView.scrollBy(position);\n } else {\n window.scrollBy(position);\n }\n }, []);\n\n const handleUpClick = useCallback(() => {\n handleClick('up');\n }, [handleClick]);\n\n const handleDownClick = useCallback(() => {\n handleClick('down');\n }, [handleClick]);\n\n return (\n <FlexView\n $background=\"WHITE\"\n $borderRadius={48}\n $gutter={8}\n $flexGap={8}\n $flexDirection=\"row\"\n $borderColor=\"BLACK_T_15\"\n >\n <Clickable label=\"up\" onClick={handleUpClick}>\n <FlexView $height={38} $justifyContent=\"center\">\n <ChevronUpIcon />\n </FlexView>\n </Clickable>\n <Clickable label=\"down\" onClick={handleDownClick}>\n <FlexView $height={38} $justifyContent=\"center\">\n <ChevronDownIcon />\n </FlexView>\n </Clickable>\n </FlexView>\n );\n});\n\nexport default Navigator;\n"],"names":["Navigator","memo","handleClick","useCallback","val","liveScrollView","tabScrollView","position","handleUpClick","handleDownClick","jsxs","FlexView","jsx","Clickable","ChevronUpIcon","ChevronDownIcon"],"mappings":";;;;;;AAOM,MAAAA,IAAgBC,EAAK,WAAqB;AACxC,QAAAC,IAAcC,EAAY,CAACC,MAAuB;AAChD,UAAAC,IAAiB,SAAS,eAAe,2BAA2B,GACpEC,IAAgB,SAAS,eAAe,uBAAuB,GAC/DC,IAAW;AAAA,MACf,KAAKH,MAAQ,OAAO,OAAO;AAAA,MAC3B,UAAU;AAAA,IAAA;AAGZ,IAAIC,IACFA,EAAe,SAASE,CAAQ,IACvBD,IACTA,EAAc,SAASC,CAAQ,IAE/B,OAAO,SAASA,CAAQ;AAAA,EAE5B,GAAG,CAAE,CAAA,GAECC,IAAgBL,EAAY,MAAM;AACtC,IAAAD,EAAY,IAAI;AAAA,EAAA,GACf,CAACA,CAAW,CAAC,GAEVO,IAAkBN,EAAY,MAAM;AACxC,IAAAD,EAAY,MAAM;AAAA,EAAA,GACjB,CAACA,CAAW,CAAC;AAGd,SAAA,gBAAAQ;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,aAAY;AAAA,MACZ,eAAe;AAAA,MACf,SAAS;AAAA,MACT,UAAU;AAAA,MACV,gBAAe;AAAA,MACf,cAAa;AAAA,MAEb,UAAA;AAAA,QAAA,gBAAAC,EAACC,GAAU,EAAA,OAAM,MAAK,SAASL,GAC7B,UAAC,gBAAAI,EAAAD,GAAA,EAAS,SAAS,IAAI,iBAAgB,UACrC,UAAC,gBAAAC,EAAAE,GAAA,CAAA,CAAc,EACjB,CAAA,GACF;AAAA,QACC,gBAAAF,EAAAC,GAAA,EAAU,OAAM,QAAO,SAASJ,GAC/B,UAAA,gBAAAG,EAACD,GAAS,EAAA,SAAS,IAAI,iBAAgB,UACrC,UAAC,gBAAAC,EAAAG,GAAA,CAAA,CAAgB,EACnB,CAAA,GACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN,CAAC;"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { getInitialResponses as k, getInitialQuestionId as v, getWorksheetDimensions as r } from "../../worksheet-helpers.js";
|
|
2
|
+
import { getLastAttemptableQuestionIndex as x } from "./get-last-attemptable-question-index.js";
|
|
3
|
+
import { getQuestionsFromItems as C } from "./get-questions-from-items.js";
|
|
4
|
+
import { getLastUnlockedQuestionIndex as h } from "./get-last-unlocked-question-index.js";
|
|
5
|
+
import { getDerivedBlocker as R } from "./get-derived-blocker.js";
|
|
6
|
+
import { getRenderableQuestions as T } from "./get-renderable-questions.js";
|
|
7
|
+
const D = (n, e) => {
|
|
8
|
+
var m;
|
|
9
|
+
const {
|
|
10
|
+
learnosityItems: d,
|
|
11
|
+
learnosityResponses: b,
|
|
12
|
+
updatedResponses: I,
|
|
13
|
+
layout: Q,
|
|
14
|
+
behavior: s,
|
|
15
|
+
userType: a,
|
|
16
|
+
initialResponseId: p,
|
|
17
|
+
initialItemIndex: g
|
|
18
|
+
} = n, { initialQuestion: y } = s, i = (e == null ? void 0 : e.questions) ?? C(d, {
|
|
19
|
+
nodeType: n.nodeType,
|
|
20
|
+
activityType: n.activityType
|
|
21
|
+
}), l = I ?? (e == null ? void 0 : e.responses) ?? b ?? k(i), t = h({
|
|
22
|
+
questions: i,
|
|
23
|
+
responses: l,
|
|
24
|
+
behavior: s,
|
|
25
|
+
userType: a,
|
|
26
|
+
inClass: !!n.inClass
|
|
27
|
+
}), c = (e == null ? void 0 : e.initialQuestionId) ?? v({
|
|
28
|
+
questions: i,
|
|
29
|
+
initialQuestion: y,
|
|
30
|
+
lastUnlockedQuestionIndex: t,
|
|
31
|
+
lastAttemptableQuestionIndex: x({
|
|
32
|
+
questions: i,
|
|
33
|
+
responses: l,
|
|
34
|
+
behavior: s,
|
|
35
|
+
userType: a,
|
|
36
|
+
inClass: !!n.inClass
|
|
37
|
+
}),
|
|
38
|
+
initialResponseId: p,
|
|
39
|
+
initialItemIndex: g
|
|
40
|
+
}), u = (e == null ? void 0 : e.activeQuestionId) ?? c, o = i.findIndex(
|
|
41
|
+
(f) => f.response_id === u
|
|
42
|
+
);
|
|
43
|
+
return setTimeout(() => {
|
|
44
|
+
!e && i[o] && n.onActiveQuestionChange && n.onActiveQuestionChange(i[o]);
|
|
45
|
+
}, 0), {
|
|
46
|
+
questions: i,
|
|
47
|
+
renderableQuestions: T({
|
|
48
|
+
questions: i,
|
|
49
|
+
userType: a,
|
|
50
|
+
lastUnlockedQuestionIndex: t
|
|
51
|
+
}),
|
|
52
|
+
responses: l,
|
|
53
|
+
lastUnlockedQuestionIndex: t,
|
|
54
|
+
initialQuestionId: c,
|
|
55
|
+
activeQuestionId: u,
|
|
56
|
+
activeQuestionIndex: o,
|
|
57
|
+
summaryVisible: e ? e.summaryVisible : !1,
|
|
58
|
+
calculatorVisible: e ? e.calculatorVisible : !1,
|
|
59
|
+
scribblingEnabled: e ? e.scribblingEnabled : !1,
|
|
60
|
+
blocker: R({
|
|
61
|
+
currentBlocker: e == null ? void 0 : e.blocker,
|
|
62
|
+
teacherValidationEnabled: s.teacherValidationEnabled,
|
|
63
|
+
userType: a,
|
|
64
|
+
lastUnlockedQuestion: i[t],
|
|
65
|
+
lastUnlockedQuestionResponse: l[((m = i[t]) == null ? void 0 : m.response_id) ?? ""]
|
|
66
|
+
}),
|
|
67
|
+
...r(d, Q)
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
export {
|
|
71
|
+
D as getComputedProperties
|
|
72
|
+
};
|
|
73
|
+
//# sourceMappingURL=get-computed-properties.js.map
|
package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-computed-properties.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-computed-properties.js","sources":["../../../../../../src/features/worksheet/worksheet/worksheet-store/helpers/get-computed-properties.ts"],"sourcesContent":["import {\n getInitialQuestionId,\n getInitialResponses,\n getWorksheetDimensions,\n} from '../../worksheet-helpers';\nimport { getLastAttemptableQuestionIndex } from './get-last-attemptable-question-index';\nimport { getQuestionsFromItems } from './get-questions-from-items';\nimport { getLastUnlockedQuestionIndex } from './get-last-unlocked-question-index';\nimport type {\n IWorksheetStore,\n IWorksheetStoreState,\n TWorksheetStoreProps,\n} from '../../worksheet-types';\nimport { getDerivedBlocker } from './get-derived-blocker';\nimport { getRenderableQuestions } from './get-renderable-questions';\n\ninterface IGetComputedProperties {\n (props: TWorksheetStoreProps, store?: IWorksheetStore): IWorksheetStoreState;\n}\nexport const getComputedProperties: IGetComputedProperties = (props, store) => {\n const {\n learnosityItems,\n learnosityResponses,\n updatedResponses,\n layout,\n behavior,\n userType,\n initialResponseId,\n initialItemIndex,\n } = props;\n const { initialQuestion } = behavior;\n const questions =\n store?.questions ??\n getQuestionsFromItems(learnosityItems, {\n nodeType: props.nodeType,\n activityType: props.activityType,\n });\n const responses =\n updatedResponses ?? store?.responses ?? learnosityResponses ?? getInitialResponses(questions);\n const lastUnlockedQuestionIndex = getLastUnlockedQuestionIndex({\n questions,\n responses,\n behavior,\n userType,\n inClass: !!props.inClass,\n });\n const initialQuestionId =\n store?.initialQuestionId ??\n getInitialQuestionId({\n questions,\n initialQuestion,\n lastUnlockedQuestionIndex,\n lastAttemptableQuestionIndex: getLastAttemptableQuestionIndex({\n questions,\n responses,\n behavior,\n userType,\n inClass: !!props.inClass,\n }),\n initialResponseId,\n initialItemIndex,\n });\n\n const activeQuestionId = store?.activeQuestionId ?? initialQuestionId;\n const activeQuestionIndex = questions.findIndex(\n question => question.response_id === activeQuestionId,\n );\n\n setTimeout(() => {\n if (!store && questions[activeQuestionIndex] && props.onActiveQuestionChange) {\n props.onActiveQuestionChange(questions[activeQuestionIndex]);\n }\n }, 0);\n\n return {\n questions,\n renderableQuestions: getRenderableQuestions({\n questions,\n userType,\n lastUnlockedQuestionIndex,\n }),\n responses,\n lastUnlockedQuestionIndex,\n initialQuestionId,\n activeQuestionId,\n activeQuestionIndex,\n summaryVisible: store ? store.summaryVisible : false,\n calculatorVisible: store ? store.calculatorVisible : false,\n scribblingEnabled: store ? store.scribblingEnabled : false,\n blocker: getDerivedBlocker({\n currentBlocker: store?.blocker,\n teacherValidationEnabled: behavior.teacherValidationEnabled,\n userType,\n lastUnlockedQuestion: questions[lastUnlockedQuestionIndex]!,\n lastUnlockedQuestionResponse:\n responses[questions[lastUnlockedQuestionIndex]?.response_id ?? ''],\n }),\n ...getWorksheetDimensions(learnosityItems, layout),\n };\n};\n"],"names":["getComputedProperties","props","store","learnosityItems","learnosityResponses","updatedResponses","layout","behavior","userType","initialResponseId","initialItemIndex","initialQuestion","questions","getQuestionsFromItems","responses","getInitialResponses","lastUnlockedQuestionIndex","getLastUnlockedQuestionIndex","initialQuestionId","getInitialQuestionId","getLastAttemptableQuestionIndex","activeQuestionId","activeQuestionIndex","question","getRenderableQuestions","getDerivedBlocker","_a","getWorksheetDimensions"],"mappings":";;;;;;AAmBa,MAAAA,IAAgD,CAACC,GAAOC,MAAU;;AACvE,QAAA;AAAA,IACJ,iBAAAC;AAAA,IACA,qBAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,QAAAC;AAAA,IACA,UAAAC;AAAA,IACA,UAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,kBAAAC;AAAA,EACE,IAAAT,GACE,EAAE,iBAAAU,EAAoB,IAAAJ,GACtBK,KACJV,KAAA,gBAAAA,EAAO,cACPW,EAAsBV,GAAiB;AAAA,IACrC,UAAUF,EAAM;AAAA,IAChB,cAAcA,EAAM;AAAA,EAAA,CACrB,GACGa,IACJT,MAAoBH,KAAA,gBAAAA,EAAO,cAAaE,KAAuBW,EAAoBH,CAAS,GACxFI,IAA4BC,EAA6B;AAAA,IAC7D,WAAAL;AAAA,IACA,WAAAE;AAAA,IACA,UAAAP;AAAA,IACA,UAAAC;AAAA,IACA,SAAS,CAAC,CAACP,EAAM;AAAA,EAAA,CAClB,GACKiB,KACJhB,KAAA,gBAAAA,EAAO,sBACPiB,EAAqB;AAAA,IACnB,WAAAP;AAAA,IACA,iBAAAD;AAAA,IACA,2BAAAK;AAAA,IACA,8BAA8BI,EAAgC;AAAA,MAC5D,WAAAR;AAAA,MACA,WAAAE;AAAA,MACA,UAAAP;AAAA,MACA,UAAAC;AAAA,MACA,SAAS,CAAC,CAACP,EAAM;AAAA,IAAA,CAClB;AAAA,IACD,mBAAAQ;AAAA,IACA,kBAAAC;AAAA,EAAA,CACD,GAEGW,KAAmBnB,KAAA,gBAAAA,EAAO,qBAAoBgB,GAC9CI,IAAsBV,EAAU;AAAA,IACpC,CAAAW,MAAYA,EAAS,gBAAgBF;AAAA,EAAA;AAGvC,oBAAW,MAAM;AACf,IAAI,CAACnB,KAASU,EAAUU,CAAmB,KAAKrB,EAAM,0BAC9CA,EAAA,uBAAuBW,EAAUU,CAAmB,CAAC;AAAA,KAE5D,CAAC,GAEG;AAAA,IACL,WAAAV;AAAA,IACA,qBAAqBY,EAAuB;AAAA,MAC1C,WAAAZ;AAAA,MACA,UAAAJ;AAAA,MACA,2BAAAQ;AAAA,IAAA,CACD;AAAA,IACD,WAAAF;AAAA,IACA,2BAAAE;AAAA,IACA,mBAAAE;AAAA,IACA,kBAAAG;AAAA,IACA,qBAAAC;AAAA,IACA,gBAAgBpB,IAAQA,EAAM,iBAAiB;AAAA,IAC/C,mBAAmBA,IAAQA,EAAM,oBAAoB;AAAA,IACrD,mBAAmBA,IAAQA,EAAM,oBAAoB;AAAA,IACrD,SAASuB,EAAkB;AAAA,MACzB,gBAAgBvB,KAAA,gBAAAA,EAAO;AAAA,MACvB,0BAA0BK,EAAS;AAAA,MACnC,UAAAC;AAAA,MACA,sBAAsBI,EAAUI,CAAyB;AAAA,MACzD,8BACEF,IAAUY,IAAAd,EAAUI,CAAyB,MAAnC,gBAAAU,EAAsC,gBAAe,EAAE;AAAA,IAAA,CACpE;AAAA,IACD,GAAGC,EAAuBxB,GAAiBG,CAAM;AAAA,EAAA;AAErD;"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
const B = ({
|
|
2
|
+
teacherValidationEnabled: i,
|
|
3
|
+
userType: v,
|
|
4
|
+
lastUnlockedQuestion: f,
|
|
5
|
+
lastUnlockedQuestionResponse: r
|
|
6
|
+
}) => {
|
|
7
|
+
if (i) {
|
|
8
|
+
const { item_type: m, instructor_stimulus: y, is_optional: x } = f;
|
|
9
|
+
if (v === "TEACHER") {
|
|
10
|
+
if (m === "exit-ticket" && y !== "SystemIntro")
|
|
11
|
+
return r != null && r.submittedByStudent && !(r != null && r.validatedByTeacher) ? "exit-ticket-review-available" : r != null && r.validatedByTeacher ? void 0 : "exit-ticket-teacher-intervention";
|
|
12
|
+
if (x)
|
|
13
|
+
return r != null && r.assignStatus ? void 0 : "optional-items-assignment";
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
export {
|
|
18
|
+
B as getDerivedBlocker
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=get-derived-blocker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-derived-blocker.js","sources":["../../../../../../src/features/worksheet/worksheet/worksheet-store/helpers/get-derived-blocker.ts"],"sourcesContent":["import type {\n IWorksheetQuestion,\n IWorksheetResponse,\n IWorksheetStore,\n} from '../../worksheet-types';\n\ninterface IGetDerivedBlocker {\n (options: {\n currentBlocker?: IWorksheetStore['blocker'];\n teacherValidationEnabled: IWorksheetStore['behavior']['teacherValidationEnabled'];\n userType: IWorksheetStore['userType'];\n lastUnlockedQuestion: IWorksheetQuestion;\n lastUnlockedQuestionResponse?: IWorksheetResponse;\n }): IWorksheetStore['blocker'] | undefined;\n}\n\nexport const getDerivedBlocker: IGetDerivedBlocker = ({\n teacherValidationEnabled,\n userType,\n lastUnlockedQuestion,\n lastUnlockedQuestionResponse,\n}) => {\n if (teacherValidationEnabled) {\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 return 'exit-ticket-review-available';\n }\n\n if (!lastUnlockedQuestionResponse?.validatedByTeacher) {\n return 'exit-ticket-teacher-intervention';\n }\n\n return undefined;\n }\n\n if (is_optional) {\n if (!lastUnlockedQuestionResponse?.assignStatus) {\n return 'optional-items-assignment';\n }\n\n return undefined;\n }\n }\n }\n\n return undefined;\n};\n"],"names":["getDerivedBlocker","teacherValidationEnabled","userType","lastUnlockedQuestion","lastUnlockedQuestionResponse","item_type","instructor_stimulus","is_optional"],"mappings":"AAgBO,MAAMA,IAAwC,CAAC;AAAA,EACpD,0BAAAC;AAAA,EACA,UAAAC;AAAA,EACA,sBAAAC;AAAA,EACA,8BAAAC;AACF,MAAM;AACJ,MAAIH,GAA0B;AAC5B,UAAM,EAAE,WAAAI,GAAW,qBAAAC,GAAqB,aAAAC,EAAA,IAAgBJ;AAExD,QAAID,MAAa,WAAW;AACtB,UAAAG,MAAc,iBAAiBC,MAAwB;AACzD,eACEF,KAAA,QAAAA,EAA8B,sBAC9B,EAACA,KAAA,QAAAA,EAA8B,sBAExB,iCAGJA,KAAA,QAAAA,EAA8B,qBAI5B,SAHE;AAMX,UAAIG;AACE,eAACH,KAAA,QAAAA,EAA8B,eAI5B,SAHE;AAAA,IAKb;AAAA,EACF;AAGF;"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { isTeacherInterventionNeeded as l } from "../../worksheet-helpers.js";
|
|
2
|
+
const m = ({
|
|
3
|
+
questions: e,
|
|
4
|
+
responses: c,
|
|
5
|
+
userType: s
|
|
6
|
+
}) => {
|
|
7
|
+
const d = [...e].reverse().findIndex((i) => {
|
|
8
|
+
const r = c[i.response_id], { validatedByTeacher: t, assignStatus: n } = r ?? {};
|
|
9
|
+
return !!(t || n === "skipped");
|
|
10
|
+
});
|
|
11
|
+
if (d === -1)
|
|
12
|
+
return 0;
|
|
13
|
+
if (d === 0) {
|
|
14
|
+
const i = [...e].reverse().findIndex((r) => {
|
|
15
|
+
var t;
|
|
16
|
+
return ((t = c[r.response_id]) == null ? void 0 : t.assignStatus) !== "skipped";
|
|
17
|
+
});
|
|
18
|
+
return e.length - i - 1;
|
|
19
|
+
}
|
|
20
|
+
if (s === "STUDENT") {
|
|
21
|
+
const i = e.length - d, r = e[i], { assignStatus: t } = c[r.response_id] ?? {};
|
|
22
|
+
return r.is_optional && !t ? i - 1 : i;
|
|
23
|
+
}
|
|
24
|
+
return e.length - d;
|
|
25
|
+
}, x = ({
|
|
26
|
+
questions: e,
|
|
27
|
+
responses: c,
|
|
28
|
+
behavior: s,
|
|
29
|
+
inClass: d
|
|
30
|
+
}) => {
|
|
31
|
+
const { attemptsAfterTeacherInterventionNeeded: i } = s, r = e.findIndex((t) => {
|
|
32
|
+
var u;
|
|
33
|
+
const n = c[t.response_id], { attemptsHistory: a } = n ?? {};
|
|
34
|
+
if (t.is_non_question)
|
|
35
|
+
return (n == null ? void 0 : n.responseGiven) !== !0;
|
|
36
|
+
if (t.item_type === "exit-ticket")
|
|
37
|
+
return (n == null ? void 0 : n.skipped) !== !0 && (n == null ? void 0 : n.response) === void 0;
|
|
38
|
+
const o = (u = a == null ? void 0 : a.slice(-1)[0]) == null ? void 0 : u.score;
|
|
39
|
+
return o ? (o.score ?? 0) === o.max_score ? !!(d && t.metadata.acknowledgements && !(n != null && n.validatedByTeacher)) : l({
|
|
40
|
+
attemptsAfterTeacherInterventionNeeded: i,
|
|
41
|
+
attemptsHistory: a
|
|
42
|
+
}) ? d : !0 : !0;
|
|
43
|
+
});
|
|
44
|
+
return r === -1 ? e.length - 1 : r === 0 ? 0 : r;
|
|
45
|
+
}, I = ({
|
|
46
|
+
questions: e,
|
|
47
|
+
responses: c,
|
|
48
|
+
behavior: s
|
|
49
|
+
}) => {
|
|
50
|
+
const { maximumAttempts: d, validation: i, navigationMode: r } = s, t = [...e].reverse().findIndex((n) => {
|
|
51
|
+
var f;
|
|
52
|
+
const a = c[n.response_id], { attemptsHistory: o } = a ?? {}, u = (f = o == null ? void 0 : o.slice(-1)[0]) == null ? void 0 : f.score;
|
|
53
|
+
return u ? (u.score ?? 0) === u.max_score || ((o == null ? void 0 : o.length) ?? 0) >= d : !!(!i && r === "LINEAR" && (a != null && a.response || a != null && a.skipped));
|
|
54
|
+
});
|
|
55
|
+
return t === -1 ? 0 : t === 0 ? e.length - 1 : e.length - t;
|
|
56
|
+
}, p = ({
|
|
57
|
+
questions: e,
|
|
58
|
+
responses: c,
|
|
59
|
+
behavior: s,
|
|
60
|
+
userType: d,
|
|
61
|
+
inClass: i
|
|
62
|
+
}) => {
|
|
63
|
+
const { teacherValidationEnabled: r, teacherDiscussionEnabled: t } = s;
|
|
64
|
+
return r ? m({ questions: e, responses: c, userType: d }) : t ? x({ questions: e, responses: c, behavior: s, inClass: i }) : I({ questions: e, responses: c, behavior: s });
|
|
65
|
+
};
|
|
66
|
+
export {
|
|
67
|
+
p as getLastAttemptableQuestionIndex
|
|
68
|
+
};
|
|
69
|
+
//# sourceMappingURL=get-last-attemptable-question-index.js.map
|