@cuemath/leap 3.2.12 → 3.2.14-as1
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/hint-fill.js +35 -0
- package/dist/assets/line-icons/icons/hint-fill.js.map +1 -0
- package/dist/features/chapters-v2/utils/node-card-utils.js +7 -7
- package/dist/features/chapters-v2/utils/node-card-utils.js.map +1 -1
- package/dist/features/puzzles/app/puzzle-app-styled.js +81 -0
- package/dist/features/puzzles/app/puzzle-app-styled.js.map +1 -0
- package/dist/features/puzzles/app/puzzle-app-view.js +120 -0
- package/dist/features/puzzles/app/puzzle-app-view.js.map +1 -0
- package/dist/features/puzzles/app/puzzle-app.js +82 -0
- package/dist/features/puzzles/app/puzzle-app.js.map +1 -0
- package/dist/features/ui/inputs/checkbox-input/checkbox-input.js +21 -21
- package/dist/features/ui/inputs/checkbox-input/checkbox-input.js.map +1 -1
- package/dist/features/ui/inputs/checkbox-input-list/checkbox-input-list.js +5 -5
- package/dist/features/ui/inputs/checkbox-input-list/checkbox-input-list.js.map +1 -1
- package/dist/features/worksheet/worksheet/mocks/activity.js +6 -0
- package/dist/features/worksheet/worksheet/mocks/activity.js.map +1 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/assessment.js +38 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/assessment.js.map +1 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/chapter_assessment.js +38 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/chapter_assessment.js.map +1 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/diagnostic.js +38 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/diagnostic.js.map +1 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/dynamic.js +38 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/dynamic.js.map +1 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/extra_practice.js +38 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/extra_practice.js.map +1 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/index.js +95 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/index.js.map +1 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/learning-v3.js +38 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/learning-v3.js.map +1 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/learning.js +38 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/learning.js.map +1 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/legacy.js +38 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/legacy.js.map +1 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/level2.js +38 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/level2.js.map +1 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/level3.js +38 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/level3.js.map +1 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/mastery.js +41 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/mastery.js.map +1 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/practice.js +38 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/practice.js.map +1 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/puzzle-card.js +39 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/puzzle-card.js.map +1 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/puzzle_easy.js +39 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/puzzle_easy.js.map +1 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/puzzle_hard.js +39 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/puzzle_hard.js.map +1 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/puzzle_medium.js +39 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/puzzle_medium.js.map +1 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/recap.js +39 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/recap.js.map +1 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/remedial.js +39 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/remedial.js.map +1 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/revision.js +38 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/revision.js.map +1 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/sat-math-assessment.js +38 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/sat-math-assessment.js.map +1 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/sat_english_learning.js +38 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/sat_english_learning.js.map +1 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/sat_math_learning.js +38 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/sat_math_learning.js.map +1 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/sat_math_recap.js +39 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/sat_math_recap.js.map +1 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/target_practice.js +38 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/target_practice.js.map +1 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/trial-diagnostic-v2.js +38 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/trial-diagnostic-v2.js.map +1 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/trial-diagnostic.js +38 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/trial-diagnostic.js.map +1 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/turing_assessment.js +38 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/turing_assessment.js.map +1 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/turing_practice.js +38 -0
- package/dist/features/worksheet/worksheet/mocks/behaviors/turing_practice.js.map +1 -0
- package/dist/features/worksheet/worksheet/mocks/signed-requests.js +5 -0
- package/dist/features/worksheet/worksheet/mocks/signed-requests.js.map +1 -0
- package/dist/features/worksheet/worksheet/stories/use-canvas-sync-broker-story.js +57 -0
- package/dist/features/worksheet/worksheet/stories/use-canvas-sync-broker-story.js.map +1 -0
- package/dist/features/worksheet/worksheet/stories/worksheet-story-container.js +231 -0
- package/dist/features/worksheet/worksheet/stories/worksheet-story-container.js.map +1 -0
- package/dist/features/worksheet/worksheet/stories/worksheet-student.js +174 -0
- package/dist/features/worksheet/worksheet/stories/worksheet-student.js.map +1 -0
- package/dist/features/worksheet/worksheet/stories/worksheet-teacher.js +255 -0
- package/dist/features/worksheet/worksheet/stories/worksheet-teacher.js.map +1 -0
- package/dist/features/worksheet/worksheet/worksheet-helpers.js +32 -31
- package/dist/features/worksheet/worksheet/worksheet-helpers.js.map +1 -1
- package/dist/index.d.ts +9 -0
- package/dist/index.js +527 -523
- package/dist/index.js.map +1 -1
- package/dist/types/models/worksheet.js +5 -0
- package/dist/types/models/worksheet.js.map +1 -0
- package/package.json +1 -1
@@ -0,0 +1,174 @@
|
|
1
|
+
import { jsx as d, jsxs as N } from "react/jsx-runtime";
|
2
|
+
import { useRef as O, useMemo as q, useState as V, useCallback as _, useEffect as G } from "react";
|
3
|
+
import W from "styled-components";
|
4
|
+
import E from "../../../ui/layout/flex-view.js";
|
5
|
+
import w from "../../../ui/text/text.js";
|
6
|
+
import C from "../../constants/events.js";
|
7
|
+
import j from "../../worksheet-preview/hooks/use-worksheet-layout.js";
|
8
|
+
import { getActivityMockAttemptId as D } from "../mocks/activity.js";
|
9
|
+
import z from "../mocks/behaviors/index.js";
|
10
|
+
import { getMockItemsSignedRequest as Q } from "../mocks/signed-requests.js";
|
11
|
+
import F from "../worksheet-container.js";
|
12
|
+
import { isSATAssessmentNode as X } from "../worksheet-helpers.js";
|
13
|
+
import J from "./use-canvas-sync-broker-story.js";
|
14
|
+
const Z = W(E)`
|
15
|
+
position: fixed;
|
16
|
+
top: 0;
|
17
|
+
left: 0;
|
18
|
+
right: 0;
|
19
|
+
z-index: 1;
|
20
|
+
`, Y = W(E)`
|
21
|
+
padding-top: ${({ $topOffset: r }) => r}px;
|
22
|
+
border-left: ${({ $showBorder: r }) => r ? "1px solid red" : "none"};
|
23
|
+
border-right: ${({ $showBorder: r }) => r ? "1px solid red" : "none"};
|
24
|
+
position: relative;
|
25
|
+
z-index: 0;
|
26
|
+
`, ue = (r) => {
|
27
|
+
const {
|
28
|
+
nodeType: s,
|
29
|
+
isLessonV3: l,
|
30
|
+
isReview: S,
|
31
|
+
worksheetCompleted: c,
|
32
|
+
mockEnabled: u,
|
33
|
+
showHeader: k,
|
34
|
+
includeGutter: I,
|
35
|
+
questionsSignedRequest: P,
|
36
|
+
itemsSignedRequest: b
|
37
|
+
} = r, R = u ? D(s, l) : "attemptId", p = O(null), f = X(s), $ = s === "PUZZLE_CARD", x = q(() => {
|
38
|
+
const t = z({ nodeType: s, isReview: c || S, isLessonV3: l });
|
39
|
+
return {
|
40
|
+
...t,
|
41
|
+
validation: t.maximumAttempts === -1 ? c : t.validation
|
42
|
+
};
|
43
|
+
}, [l, S, s, c]), y = j({
|
44
|
+
userType: "STUDENT",
|
45
|
+
isSATAssessment: f,
|
46
|
+
nodeType: s,
|
47
|
+
topOffset: k ? 60 : 0
|
48
|
+
}), [v, A] = V(), H = O((t, e) => {
|
49
|
+
console.log("Worksheet Teacher Logger:", t, e), t === C.WORKSHEET_V3_ITEMS_FAILED && A(`Failed to load worksheet: ${JSON.stringify(e, null, 2)}`), t === C.WORKSHEET_V3_QUESTION_MISSING_VALIDATION && A(`Question missing validation: ${JSON.stringify(e, null, 2)}`);
|
50
|
+
}), h = _(() => {
|
51
|
+
}, []), L = _(
|
52
|
+
(t) => {
|
53
|
+
var m, o;
|
54
|
+
const e = (m = window.top) == null ? void 0 : m.document.querySelector(
|
55
|
+
'iframe[src*="worksheet-teacher"]'
|
56
|
+
), n = (o = e == null ? void 0 : e.contentWindow) == null ? void 0 : o.postMessage, { response: i, responseId: a } = t;
|
57
|
+
n && n({
|
58
|
+
eventName: "WORKSHEET_RESPONSE_CHANGED",
|
59
|
+
eventPayload: {
|
60
|
+
attemptId: "worksheet_attempt_id",
|
61
|
+
responseId: a,
|
62
|
+
response: i
|
63
|
+
}
|
64
|
+
});
|
65
|
+
},
|
66
|
+
[]
|
67
|
+
), M = _((t) => {
|
68
|
+
var i, a;
|
69
|
+
const e = (i = window.top) == null ? void 0 : i.document.querySelector(
|
70
|
+
'iframe[src*="worksheet-teacher"]'
|
71
|
+
), n = (a = e == null ? void 0 : e.contentWindow) == null ? void 0 : a.postMessage;
|
72
|
+
n && n({
|
73
|
+
eventName: "WORKSHEET_BULK_RESPONSES_CHANGED",
|
74
|
+
eventPayload: {
|
75
|
+
attemptId: "worksheet_attempt_id",
|
76
|
+
responses: t
|
77
|
+
}
|
78
|
+
});
|
79
|
+
}, []), { publishStrokes: K, registerCallback: B, initialStrokesData: U } = J(
|
80
|
+
"STUDENT",
|
81
|
+
void 0
|
82
|
+
);
|
83
|
+
return G(() => {
|
84
|
+
window.addEventListener(
|
85
|
+
"message",
|
86
|
+
(t) => {
|
87
|
+
var n, i, a, m;
|
88
|
+
const e = t.data;
|
89
|
+
if (e.eventName === "WORKSHEET_RESPONSE_VALIDATED") {
|
90
|
+
const {
|
91
|
+
eventPayload: { responseId: o, rating: g, skipRemainingQuestions: T }
|
92
|
+
} = e;
|
93
|
+
(n = p.current) == null || n.validateQuestion(o, g, T);
|
94
|
+
} else if (e.eventName === "WORKSHEET_OPTIONAL_ITEMS_ASSIGNED") {
|
95
|
+
const {
|
96
|
+
eventPayload: { itemType: o }
|
97
|
+
} = e;
|
98
|
+
(i = p.current) == null || i.assignOptionalItems(o);
|
99
|
+
} else if (e.eventName === "WORKSHEET_OPTIONAL_ITEMS_SKIPPED") {
|
100
|
+
const {
|
101
|
+
eventPayload: { itemType: o }
|
102
|
+
} = e;
|
103
|
+
(a = p.current) == null || a.skipOptionalItems(o);
|
104
|
+
} else if (e.eventName === "WORKSHEET_MEDIA_STATE_UPDATED_BY_TEACHER") {
|
105
|
+
const {
|
106
|
+
eventPayload: { responseId: o, mediaType: g, mediaState: T }
|
107
|
+
} = e;
|
108
|
+
(m = p.current) == null || m.updateMediaState(o, g, T);
|
109
|
+
}
|
110
|
+
},
|
111
|
+
!1
|
112
|
+
);
|
113
|
+
}, []), v ? /* @__PURE__ */ d(
|
114
|
+
E,
|
115
|
+
{
|
116
|
+
$flexDirection: "column",
|
117
|
+
$alignItems: "center",
|
118
|
+
$justifyContent: "center",
|
119
|
+
$height: "100%",
|
120
|
+
$gutterX: 4,
|
121
|
+
$gapX: 4,
|
122
|
+
children: /* @__PURE__ */ d(w, { $renderAs: "ub1-bold", $color: "RED", children: /* @__PURE__ */ d("pre", { children: /* @__PURE__ */ d("code", { children: v }) }) })
|
123
|
+
}
|
124
|
+
) : /* @__PURE__ */ N(E, { $gutterX: I ? 1 : 0, children: [
|
125
|
+
k && /* @__PURE__ */ d(
|
126
|
+
Z,
|
127
|
+
{
|
128
|
+
$background: "WHITE",
|
129
|
+
$height: 60,
|
130
|
+
$alignItems: "center",
|
131
|
+
$justifyContent: "center",
|
132
|
+
$borderColor: "BLACK_T_38",
|
133
|
+
children: /* @__PURE__ */ N(w, { $renderAs: "ah4-bold", children: [
|
134
|
+
"STUDENT: ",
|
135
|
+
s
|
136
|
+
] })
|
137
|
+
}
|
138
|
+
),
|
139
|
+
/* @__PURE__ */ d(Y, { $topOffset: y.topOffset, $showBorder: !!I, children: /* @__PURE__ */ d(
|
140
|
+
F,
|
141
|
+
{
|
142
|
+
ref: p,
|
143
|
+
userType: "STUDENT",
|
144
|
+
userId: "student_id",
|
145
|
+
studentId: "student_id",
|
146
|
+
worksheetName: $ ? "Discuss your solution in the next class" : "Worksheet Name",
|
147
|
+
attemptId: u ? D(s, l) : R,
|
148
|
+
questionsSignedRequest: P,
|
149
|
+
itemsSignedRequest: u ? Q(R) : b,
|
150
|
+
behavior: x,
|
151
|
+
layout: y,
|
152
|
+
background: f || $ ? "none" : "paper",
|
153
|
+
isCanvasEnabled: !f,
|
154
|
+
loggerRef: H,
|
155
|
+
onLoaded: h,
|
156
|
+
onErrored: h,
|
157
|
+
onResponsesChange: h,
|
158
|
+
onPublishStrokes: K,
|
159
|
+
onReceiveStrokes: B,
|
160
|
+
worksheetCompleted: c,
|
161
|
+
onResponseChange: L,
|
162
|
+
onBulkResponsesChange: M,
|
163
|
+
initialStrokesData: U
|
164
|
+
},
|
165
|
+
`${s}-${l}-${S}-${c}-${u}`
|
166
|
+
) })
|
167
|
+
] });
|
168
|
+
};
|
169
|
+
export {
|
170
|
+
Z as HeaderWrapper,
|
171
|
+
Y as WorksheetWrapper,
|
172
|
+
ue as default
|
173
|
+
};
|
174
|
+
//# sourceMappingURL=worksheet-student.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"worksheet-student.js","sources":["../../../../../src/features/worksheet/worksheet/stories/worksheet-student.tsx"],"sourcesContent":["import type { NODE_TYPES } from '../../../../types/models/worksheet';\nimport type { TInclassMessage } from '../../../communication/hooks/use-inclass-message-broker/use-inclass-message-broker-types';\nimport type { FC } from 'react';\n\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport styled from 'styled-components';\n\nimport FlexView from '../../../ui/layout/flex-view';\nimport Text from '../../../ui/text/text';\nimport EVENTS from '../../constants/events';\nimport useWorksheetLayout from '../../worksheet-preview/hooks/use-worksheet-layout';\nimport { getActivityMockAttemptId } from '../mocks/activity';\nimport getBehavior from '../mocks/behaviors';\nimport { getMockItemsSignedRequest } from '../mocks/signed-requests';\nimport WorksheetContainer from '../worksheet-container';\nimport { isSATAssessmentNode } from '../worksheet-helpers';\nimport { type IWorksheetProps, type IWorksheetRef } from '../worksheet-types';\nimport useCanvasSyncBrokerStory from './use-canvas-sync-broker-story';\n\nexport const HeaderWrapper = styled(FlexView)`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n z-index: 1;\n`;\nexport const WorksheetWrapper = styled(FlexView)<{ $topOffset: number; $showBorder: boolean }>`\n padding-top: ${({ $topOffset }) => $topOffset}px;\n border-left: ${({ $showBorder }) => ($showBorder ? '1px solid red' : 'none')};\n border-right: ${({ $showBorder }) => ($showBorder ? '1px solid red' : 'none')};\n position: relative;\n z-index: 0;\n`;\n\nexport interface IWorksheetStudentStoryProps {\n nodeType: NODE_TYPES;\n isLessonV3: boolean;\n isReview: boolean;\n worksheetCompleted: boolean;\n mockEnabled: boolean;\n showHeader: boolean;\n includeGutter: boolean;\n questionsSignedRequest: string;\n itemsSignedRequest: string;\n}\n\nconst WorksheetStudentStory: FC<IWorksheetStudentStoryProps> = props => {\n const {\n nodeType,\n isLessonV3,\n isReview,\n worksheetCompleted,\n mockEnabled,\n showHeader,\n includeGutter,\n questionsSignedRequest,\n itemsSignedRequest,\n } = props;\n const attemptId = mockEnabled ? getActivityMockAttemptId(nodeType, isLessonV3) : 'attemptId';\n const ref = useRef<IWorksheetRef>(null);\n const isSATAssessment = isSATAssessmentNode(nodeType);\n const isPuzzleWorksheet = nodeType === 'PUZZLE_CARD';\n\n const behavior = useMemo(() => {\n const config = getBehavior({ nodeType, isReview: worksheetCompleted || isReview, isLessonV3 });\n\n return {\n ...config,\n validation: config.maximumAttempts === -1 ? worksheetCompleted : config.validation,\n };\n }, [isLessonV3, isReview, nodeType, worksheetCompleted]);\n\n const layout = useWorksheetLayout({\n userType: 'STUDENT',\n isSATAssessment,\n nodeType,\n topOffset: showHeader ? 60 : 0,\n });\n const [error, setError] = useState<string>();\n const loggerRef = useRef((eventName: string, data?: Record<string, unknown>) => {\n // eslint-disable-next-line no-console\n console.log('Worksheet Teacher Logger:', eventName, data);\n\n if (eventName === EVENTS.WORKSHEET_V3_ITEMS_FAILED) {\n setError(`Failed to load worksheet: ${JSON.stringify(data, null, 2)}`);\n }\n\n if (eventName === EVENTS.WORKSHEET_V3_QUESTION_MISSING_VALIDATION) {\n setError(`Question missing validation: ${JSON.stringify(data, null, 2)}`);\n }\n });\n const fakeCallback = useCallback(() => {}, []);\n\n const handleResponseChange = useCallback<NonNullable<IWorksheetProps['onResponseChange']>>(\n options => {\n const teacherIframe = window.top?.document.querySelector(\n 'iframe[src*=\"worksheet-teacher\"]',\n ) as HTMLIFrameElement;\n\n const postMessage = teacherIframe?.contentWindow?.postMessage;\n const { response, responseId } = options;\n\n if (postMessage) {\n postMessage({\n eventName: 'WORKSHEET_RESPONSE_CHANGED',\n eventPayload: {\n attemptId: 'worksheet_attempt_id',\n responseId,\n response,\n },\n });\n }\n },\n [],\n );\n\n const handleBulkResponseChange = useCallback<\n NonNullable<IWorksheetProps['onBulkResponsesChange']>\n >(responses => {\n const teacherIframe = window.top?.document.querySelector(\n 'iframe[src*=\"worksheet-teacher\"]',\n ) as HTMLIFrameElement;\n const postMessage = teacherIframe?.contentWindow?.postMessage;\n\n if (postMessage) {\n postMessage({\n eventName: 'WORKSHEET_BULK_RESPONSES_CHANGED',\n eventPayload: {\n attemptId: 'worksheet_attempt_id',\n responses,\n },\n });\n }\n }, []);\n\n const { publishStrokes, registerCallback, initialStrokesData } = useCanvasSyncBrokerStory(\n 'STUDENT',\n undefined,\n );\n\n useEffect(() => {\n window.addEventListener(\n 'message',\n event => {\n const message = event.data as TInclassMessage;\n\n if (message.eventName === 'WORKSHEET_RESPONSE_VALIDATED') {\n const {\n eventPayload: { responseId, rating, skipRemainingQuestions },\n } = message;\n\n ref.current?.validateQuestion(responseId, rating, skipRemainingQuestions);\n } else if (message.eventName === 'WORKSHEET_OPTIONAL_ITEMS_ASSIGNED') {\n const {\n eventPayload: { itemType },\n } = message;\n\n ref.current?.assignOptionalItems(itemType);\n } else if (message.eventName === 'WORKSHEET_OPTIONAL_ITEMS_SKIPPED') {\n const {\n eventPayload: { itemType },\n } = message;\n\n ref.current?.skipOptionalItems(itemType);\n } else if (message.eventName === 'WORKSHEET_MEDIA_STATE_UPDATED_BY_TEACHER') {\n const {\n eventPayload: { responseId, mediaType, mediaState },\n } = message;\n\n ref.current?.updateMediaState(responseId, mediaType, mediaState);\n }\n },\n false,\n );\n }, []);\n\n if (error) {\n return (\n <FlexView\n $flexDirection=\"column\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $height=\"100%\"\n $gutterX={4}\n $gapX={4}\n >\n <Text $renderAs=\"ub1-bold\" $color=\"RED\">\n <pre>\n <code>{error}</code>\n </pre>\n </Text>\n </FlexView>\n );\n }\n\n return (\n <FlexView $gutterX={includeGutter ? 1 : 0}>\n {showHeader && (\n <HeaderWrapper\n $background=\"WHITE\"\n $height={60}\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $borderColor=\"BLACK_T_38\"\n >\n <Text $renderAs=\"ah4-bold\">STUDENT: {nodeType}</Text>\n </HeaderWrapper>\n )}\n <WorksheetWrapper $topOffset={layout.topOffset} $showBorder={!!includeGutter}>\n <WorksheetContainer\n key={`${nodeType}-${isLessonV3}-${isReview}-${worksheetCompleted}-${mockEnabled}`}\n ref={ref}\n userType=\"STUDENT\"\n userId=\"student_id\"\n studentId=\"student_id\"\n worksheetName={\n isPuzzleWorksheet ? 'Discuss your solution in the next class' : 'Worksheet Name'\n }\n attemptId={mockEnabled ? getActivityMockAttemptId(nodeType, isLessonV3) : attemptId}\n questionsSignedRequest={questionsSignedRequest}\n itemsSignedRequest={\n mockEnabled ? getMockItemsSignedRequest(attemptId) : itemsSignedRequest\n }\n behavior={behavior}\n layout={layout}\n background={isSATAssessment || isPuzzleWorksheet ? 'none' : 'paper'}\n isCanvasEnabled={!isSATAssessment}\n loggerRef={loggerRef}\n onLoaded={fakeCallback}\n onErrored={fakeCallback}\n onResponsesChange={fakeCallback}\n onPublishStrokes={publishStrokes}\n onReceiveStrokes={registerCallback}\n worksheetCompleted={worksheetCompleted}\n onResponseChange={handleResponseChange}\n onBulkResponsesChange={handleBulkResponseChange}\n initialStrokesData={initialStrokesData}\n />\n </WorksheetWrapper>\n </FlexView>\n );\n};\n\nexport default WorksheetStudentStory;\n"],"names":["HeaderWrapper","styled","FlexView","WorksheetWrapper","$topOffset","$showBorder","WorksheetStudentStory","props","nodeType","isLessonV3","isReview","worksheetCompleted","mockEnabled","showHeader","includeGutter","questionsSignedRequest","itemsSignedRequest","attemptId","getActivityMockAttemptId","ref","useRef","isSATAssessment","isSATAssessmentNode","isPuzzleWorksheet","behavior","useMemo","config","getBehavior","layout","useWorksheetLayout","error","setError","useState","loggerRef","eventName","data","EVENTS","fakeCallback","useCallback","handleResponseChange","options","teacherIframe","_a","postMessage","_b","response","responseId","handleBulkResponseChange","responses","publishStrokes","registerCallback","initialStrokesData","useCanvasSyncBrokerStory","useEffect","event","message","rating","skipRemainingQuestions","itemType","_c","mediaType","mediaState","_d","jsx","Text","jsxs","WorksheetContainer","getMockItemsSignedRequest"],"mappings":"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"}
|
@@ -0,0 +1,255 @@
|
|
1
|
+
import { jsx as r, jsxs as m, Fragment as se } from "react/jsx-runtime";
|
2
|
+
import { useState as T, useRef as N, useMemo as D, useCallback as n, useEffect as oe } from "react";
|
3
|
+
import S from "../../../ui/buttons/button/button.js";
|
4
|
+
import f from "../../../ui/layout/flex-view.js";
|
5
|
+
import g from "../../../ui/text/text.js";
|
6
|
+
import W from "../../constants/events.js";
|
7
|
+
import ne from "../../worksheet-preview/hooks/use-worksheet-layout.js";
|
8
|
+
import { getActivityMockAttemptId as L } from "../mocks/activity.js";
|
9
|
+
import re from "../mocks/behaviors/index.js";
|
10
|
+
import { getMockItemsSignedRequest as ae } from "../mocks/signed-requests.js";
|
11
|
+
import ie from "../worksheet-container.js";
|
12
|
+
import { isSATAssessmentNode as de } from "../worksheet-helpers.js";
|
13
|
+
import le from "./use-canvas-sync-broker-story.js";
|
14
|
+
import { HeaderWrapper as ce, WorksheetWrapper as pe } from "./worksheet-student.js";
|
15
|
+
const Oe = (P) => {
|
16
|
+
var b;
|
17
|
+
const [t, w] = T(), _ = (b = t == null ? void 0 : t.instructor_stimulus) == null ? void 0 : b.toLowerCase(), {
|
18
|
+
nodeType: o,
|
19
|
+
isLessonV3: c,
|
20
|
+
worksheetCompleted: k,
|
21
|
+
mockEnabled: E,
|
22
|
+
showHeader: C,
|
23
|
+
includeGutter: R,
|
24
|
+
questionsSignedRequest: M,
|
25
|
+
itemsSignedRequest: v
|
26
|
+
} = P, u = E ? L(o, c) : "attemptId", B = N(null), A = de(o), K = D(() => o === "PUZZLE_CARD", [o]), V = D(
|
27
|
+
() => re({ nodeType: o, isReview: !0, isLessonV3: c }),
|
28
|
+
[c, o]
|
29
|
+
), O = ne({
|
30
|
+
userType: "TEACHER",
|
31
|
+
isSATAssessment: A,
|
32
|
+
nodeType: o,
|
33
|
+
topOffset: C ? 60 : 0
|
34
|
+
}), [$, y] = T(), q = N((e, s) => {
|
35
|
+
console.log("Worksheet Teacher Logger:", e, s), e === W.WORKSHEET_V3_ITEMS_FAILED && y(`Failed to load worksheet: ${JSON.stringify(s, null, 2)}`), e === W.WORKSHEET_V3_QUESTION_MISSING_VALIDATION && y(`Question missing validation: ${JSON.stringify(s, null, 2)}`);
|
36
|
+
}), h = n(() => {
|
37
|
+
}, []), [x, H] = T(), G = n((e) => {
|
38
|
+
H(e);
|
39
|
+
}, []), { publishStrokes: z, registerCallback: F, initialStrokesData: X } = le(
|
40
|
+
"TEACHER",
|
41
|
+
void 0
|
42
|
+
), a = n((e) => {
|
43
|
+
var p, l;
|
44
|
+
const s = (p = window.top) == null ? void 0 : p.document.querySelector(
|
45
|
+
'iframe[src*="worksheet-student"]'
|
46
|
+
), i = (l = s == null ? void 0 : s.contentWindow) == null ? void 0 : l.postMessage;
|
47
|
+
i && i(e);
|
48
|
+
}, []), I = n(
|
49
|
+
(e, s) => {
|
50
|
+
a({
|
51
|
+
eventName: "WORKSHEET_RESPONSE_VALIDATED",
|
52
|
+
eventPayload: {
|
53
|
+
attemptId: "userAttemptId",
|
54
|
+
responseId: e,
|
55
|
+
rating: s ?? "E"
|
56
|
+
// change this
|
57
|
+
}
|
58
|
+
});
|
59
|
+
},
|
60
|
+
[a]
|
61
|
+
), j = n(
|
62
|
+
(e) => {
|
63
|
+
a({
|
64
|
+
eventName: "WORKSHEET_OPTIONAL_ITEMS_ASSIGNED",
|
65
|
+
eventPayload: {
|
66
|
+
attemptId: "userAttemptId",
|
67
|
+
itemType: e
|
68
|
+
}
|
69
|
+
});
|
70
|
+
},
|
71
|
+
[a]
|
72
|
+
), J = n(
|
73
|
+
(e) => {
|
74
|
+
a({
|
75
|
+
eventName: "WORKSHEET_OPTIONAL_ITEMS_SKIPPED",
|
76
|
+
eventPayload: {
|
77
|
+
attemptId: "userAttemptId",
|
78
|
+
itemType: e
|
79
|
+
}
|
80
|
+
});
|
81
|
+
},
|
82
|
+
[a]
|
83
|
+
), U = n(
|
84
|
+
(e, s, i) => {
|
85
|
+
a({
|
86
|
+
eventName: "WORKSHEET_MEDIA_STATE_UPDATED_BY_TEACHER",
|
87
|
+
eventPayload: {
|
88
|
+
attemptId: "userAttemptId",
|
89
|
+
responseId: e.response_id,
|
90
|
+
mediaType: s,
|
91
|
+
mediaState: i
|
92
|
+
}
|
93
|
+
});
|
94
|
+
},
|
95
|
+
[a]
|
96
|
+
);
|
97
|
+
oe(() => {
|
98
|
+
window.addEventListener(
|
99
|
+
"message",
|
100
|
+
(e) => {
|
101
|
+
H((s) => {
|
102
|
+
const { eventName: i, eventPayload: p } = e.data;
|
103
|
+
if (i === "WORKSHEET_RESPONSE_CHANGED") {
|
104
|
+
const { responseId: l, response: te } = p;
|
105
|
+
return {
|
106
|
+
...s,
|
107
|
+
[l]: te
|
108
|
+
};
|
109
|
+
}
|
110
|
+
if (i === "WORKSHEET_BULK_RESPONSES_CHANGED") {
|
111
|
+
const { responses: l } = p;
|
112
|
+
return {
|
113
|
+
...s,
|
114
|
+
...l
|
115
|
+
};
|
116
|
+
}
|
117
|
+
return s;
|
118
|
+
});
|
119
|
+
},
|
120
|
+
!1
|
121
|
+
);
|
122
|
+
}, []);
|
123
|
+
const d = n(
|
124
|
+
(e) => {
|
125
|
+
t != null && t.response_id && a({
|
126
|
+
eventName: "WORKSHEET_RESPONSE_VALIDATED",
|
127
|
+
eventPayload: {
|
128
|
+
attemptId: u,
|
129
|
+
responseId: t == null ? void 0 : t.response_id,
|
130
|
+
rating: e !== "H" ? e : void 0,
|
131
|
+
skipRemainingQuestions: e === "H" || e === "E"
|
132
|
+
}
|
133
|
+
});
|
134
|
+
},
|
135
|
+
[t, u, a]
|
136
|
+
), Z = n(() => d("E"), [d]), Y = n(
|
137
|
+
() => d("S"),
|
138
|
+
[d]
|
139
|
+
), Q = n(() => d("H"), [d]), ee = n(() => {
|
140
|
+
t != null && t.response_id && I(t.response_id);
|
141
|
+
}, [t == null ? void 0 : t.response_id, I]);
|
142
|
+
return $ ? /* @__PURE__ */ r(
|
143
|
+
f,
|
144
|
+
{
|
145
|
+
$flexDirection: "column",
|
146
|
+
$alignItems: "center",
|
147
|
+
$justifyContent: "center",
|
148
|
+
$height: "100%",
|
149
|
+
$gutterX: 4,
|
150
|
+
$gapX: 4,
|
151
|
+
children: /* @__PURE__ */ r(g, { $renderAs: "ub1-bold", $color: "RED", children: /* @__PURE__ */ r("pre", { children: /* @__PURE__ */ r("code", { children: $ }) }) })
|
152
|
+
}
|
153
|
+
) : /* @__PURE__ */ m(f, { $gutterX: R ? 1 : 0, children: [
|
154
|
+
C && /* @__PURE__ */ r(
|
155
|
+
ce,
|
156
|
+
{
|
157
|
+
$height: 60,
|
158
|
+
$gutterX: 3.75,
|
159
|
+
$flexDirection: "row",
|
160
|
+
$alignItems: "center",
|
161
|
+
$justifyContent: "space-between",
|
162
|
+
$background: "WHITE",
|
163
|
+
$borderColor: "BLACK_1",
|
164
|
+
children: ["TRIAL_BASIC", "TRIAL_DIAGNOSTIC"].includes(o) ? /* @__PURE__ */ m(se, { children: [
|
165
|
+
/* @__PURE__ */ m(g, { $renderAs: "ah4-black", children: [
|
166
|
+
"TEACHER: ",
|
167
|
+
o
|
168
|
+
] }),
|
169
|
+
_ !== "learn" ? /* @__PURE__ */ m(f, { $flexDirection: "row", $flexColumnGapX: 1, children: [
|
170
|
+
/* @__PURE__ */ r(
|
171
|
+
S,
|
172
|
+
{
|
173
|
+
renderAs: "primary",
|
174
|
+
label: "Too Easy",
|
175
|
+
shape: "square",
|
176
|
+
size: "small",
|
177
|
+
onClick: Z
|
178
|
+
}
|
179
|
+
),
|
180
|
+
/* @__PURE__ */ r(
|
181
|
+
S,
|
182
|
+
{
|
183
|
+
renderAs: "primary",
|
184
|
+
label: "Just right",
|
185
|
+
shape: "square",
|
186
|
+
size: "small",
|
187
|
+
onClick: Y
|
188
|
+
}
|
189
|
+
),
|
190
|
+
_ === "try" && /* @__PURE__ */ r(
|
191
|
+
S,
|
192
|
+
{
|
193
|
+
renderAs: "primary",
|
194
|
+
label: "Too Hard",
|
195
|
+
shape: "square",
|
196
|
+
size: "small",
|
197
|
+
onClick: Q
|
198
|
+
}
|
199
|
+
)
|
200
|
+
] }) : /* @__PURE__ */ r(
|
201
|
+
S,
|
202
|
+
{
|
203
|
+
renderAs: "primary",
|
204
|
+
label: "Validate",
|
205
|
+
shape: "square",
|
206
|
+
size: "small",
|
207
|
+
onClick: ee
|
208
|
+
}
|
209
|
+
)
|
210
|
+
] }) : /* @__PURE__ */ m(g, { $renderAs: "ah4-bold", children: [
|
211
|
+
"TEACHER: ",
|
212
|
+
o
|
213
|
+
] })
|
214
|
+
}
|
215
|
+
),
|
216
|
+
/* @__PURE__ */ r(pe, { $topOffset: O.topOffset, $showBorder: !!R, children: /* @__PURE__ */ r(
|
217
|
+
ie,
|
218
|
+
{
|
219
|
+
ref: B,
|
220
|
+
userType: "TEACHER",
|
221
|
+
userId: "teacher_id",
|
222
|
+
studentId: "student_id",
|
223
|
+
worksheetName: "Worksheet Name",
|
224
|
+
attemptId: E ? L(o, c) : u,
|
225
|
+
questionsSignedRequest: M,
|
226
|
+
itemsSignedRequest: E ? ae(u) : v,
|
227
|
+
behavior: V,
|
228
|
+
layout: O,
|
229
|
+
background: A || K ? "none" : "paper",
|
230
|
+
isCanvasEnabled: !A,
|
231
|
+
updatedResponses: x,
|
232
|
+
loggerRef: q,
|
233
|
+
onLoaded: h,
|
234
|
+
onErrored: h,
|
235
|
+
onActiveQuestionChange: w,
|
236
|
+
onResponsesChange: h,
|
237
|
+
onPublishStrokes: z,
|
238
|
+
onReceiveStrokes: F,
|
239
|
+
onMediaStateChange: U,
|
240
|
+
worksheetCompleted: k,
|
241
|
+
onResponsesLoaded: G,
|
242
|
+
onTeacherValidation: I,
|
243
|
+
onOptionalItemAssignment: j,
|
244
|
+
onOptionalItemSkip: J,
|
245
|
+
openQuestionFeedbackModal: h,
|
246
|
+
initialStrokesData: X
|
247
|
+
},
|
248
|
+
`${o}-${c}-${k}-${E}`
|
249
|
+
) })
|
250
|
+
] });
|
251
|
+
};
|
252
|
+
export {
|
253
|
+
Oe as default
|
254
|
+
};
|
255
|
+
//# sourceMappingURL=worksheet-teacher.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"worksheet-teacher.js","sources":["../../../../../src/features/worksheet/worksheet/stories/worksheet-teacher.tsx"],"sourcesContent":["import type { NODE_TYPES } from '../../../../types/models/worksheet';\nimport type { TInclassMessage } from '../../../communication/hooks/use-inclass-message-broker/use-inclass-message-broker-types';\nimport type {\n IWorksheetProps,\n IWorksheetQuestion,\n IWorksheetRef,\n IWorksheetResponse,\n} from '../worksheet-types';\nimport type { FC } from 'react';\n\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport Button from '../../../ui/buttons/button/button';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Text from '../../../ui/text/text';\nimport EVENTS from '../../constants/events';\nimport useWorksheetLayout from '../../worksheet-preview/hooks/use-worksheet-layout';\nimport { getActivityMockAttemptId } from '../mocks/activity';\nimport getBehavior from '../mocks/behaviors';\nimport { getMockItemsSignedRequest } from '../mocks/signed-requests';\nimport WorksheetContainer from '../worksheet-container';\nimport { isSATAssessmentNode } from '../worksheet-helpers';\nimport useCanvasSyncBrokerStory from './use-canvas-sync-broker-story';\nimport { HeaderWrapper, WorksheetWrapper } from './worksheet-student';\n\nexport interface IWorksheetTeacherStoryProps {\n nodeType: NODE_TYPES;\n isLessonV3: boolean;\n worksheetCompleted: boolean;\n mockEnabled: boolean;\n showHeader: boolean;\n includeGutter: boolean;\n questionsSignedRequest: string;\n itemsSignedRequest: string;\n}\n\nconst WorksheetTeacherStory: FC<IWorksheetTeacherStoryProps> = props => {\n const [activeQuestion, setActiveQuestion] = useState<IWorksheetQuestion | undefined>();\n const instructorStimulus = activeQuestion?.instructor_stimulus?.toLowerCase();\n\n const {\n nodeType,\n isLessonV3,\n worksheetCompleted,\n mockEnabled,\n showHeader,\n includeGutter,\n questionsSignedRequest,\n itemsSignedRequest,\n } = props;\n const attemptId = mockEnabled ? getActivityMockAttemptId(nodeType, isLessonV3) : 'attemptId';\n const ref = useRef<IWorksheetRef>(null);\n const isSATAssessment = isSATAssessmentNode(nodeType);\n const isPuzzleWorksheet = useMemo(() => nodeType === 'PUZZLE_CARD', [nodeType]);\n\n const behavior = useMemo(\n () => getBehavior({ nodeType, isReview: true, isLessonV3 }),\n [isLessonV3, nodeType],\n );\n const layout = useWorksheetLayout({\n userType: 'TEACHER',\n isSATAssessment,\n nodeType,\n topOffset: showHeader ? 60 : 0,\n });\n const [error, setError] = useState<string>();\n const loggerRef = useRef((eventName: string, data?: Record<string, unknown>) => {\n // eslint-disable-next-line no-console\n console.log('Worksheet Teacher Logger:', eventName, data);\n\n if (eventName === EVENTS.WORKSHEET_V3_ITEMS_FAILED) {\n setError(`Failed to load worksheet: ${JSON.stringify(data, null, 2)}`);\n }\n\n if (eventName === EVENTS.WORKSHEET_V3_QUESTION_MISSING_VALIDATION) {\n setError(`Question missing validation: ${JSON.stringify(data, null, 2)}`);\n }\n });\n const fakeCallback = useCallback(() => {}, []);\n\n const [responses, setResponses] = useState<Record<string, IWorksheetResponse> | undefined>();\n\n const handleResponsesChange = useCallback((rsps?: Record<string, IWorksheetResponse>) => {\n setResponses(rsps);\n }, []);\n\n const { publishStrokes, registerCallback, initialStrokesData } = useCanvasSyncBrokerStory(\n 'TEACHER',\n undefined,\n );\n\n const publishMessage = useCallback((message: TInclassMessage) => {\n const studentIframe = window.top?.document.querySelector(\n 'iframe[src*=\"worksheet-student\"]',\n ) as HTMLIFrameElement;\n const postMessage = studentIframe?.contentWindow?.postMessage;\n\n if (postMessage) {\n postMessage(message);\n }\n }, []);\n\n const handleTeacherValidation = useCallback<NonNullable<IWorksheetProps['onTeacherValidation']>>(\n (questionId, rating) => {\n publishMessage({\n eventName: 'WORKSHEET_RESPONSE_VALIDATED',\n eventPayload: {\n attemptId: 'userAttemptId',\n responseId: questionId,\n rating: rating ?? 'E', // change this\n },\n });\n },\n [publishMessage],\n );\n\n const handleOptionalItemAssignment = useCallback<\n NonNullable<IWorksheetProps['onOptionalItemAssignment']>\n >(\n itemType => {\n publishMessage({\n eventName: 'WORKSHEET_OPTIONAL_ITEMS_ASSIGNED',\n eventPayload: {\n attemptId: 'userAttemptId',\n itemType,\n },\n });\n },\n [publishMessage],\n );\n\n const handleOptionalItemSkip = useCallback<NonNullable<IWorksheetProps['onOptionalItemSkip']>>(\n itemType => {\n publishMessage({\n eventName: 'WORKSHEET_OPTIONAL_ITEMS_SKIPPED',\n eventPayload: {\n attemptId: 'userAttemptId',\n itemType,\n },\n });\n },\n [publishMessage],\n );\n\n const handleMediaStateChange = useCallback<NonNullable<IWorksheetProps['onMediaStateChange']>>(\n (question, mediaType, mediaState) => {\n publishMessage({\n eventName: 'WORKSHEET_MEDIA_STATE_UPDATED_BY_TEACHER',\n eventPayload: {\n attemptId: 'userAttemptId',\n responseId: question.response_id,\n mediaType,\n mediaState,\n },\n });\n },\n [publishMessage],\n );\n\n useEffect(() => {\n window.addEventListener(\n 'message',\n event => {\n setResponses(prevResponses => {\n const { eventName, eventPayload } = event.data as TInclassMessage;\n\n if (eventName === 'WORKSHEET_RESPONSE_CHANGED') {\n const { responseId, response } = eventPayload;\n\n return {\n ...prevResponses,\n [responseId]: response,\n };\n }\n\n if (eventName === 'WORKSHEET_BULK_RESPONSES_CHANGED') {\n const { responses: bulkResponses } = eventPayload;\n\n return {\n ...prevResponses,\n ...bulkResponses,\n };\n }\n\n return prevResponses;\n });\n },\n false,\n );\n }, []);\n\n const handleRatingChange = useCallback(\n (rating: 'E' | 'S' | 'H') => {\n if (activeQuestion?.response_id) {\n publishMessage({\n eventName: 'WORKSHEET_RESPONSE_VALIDATED',\n eventPayload: {\n attemptId: attemptId,\n responseId: activeQuestion?.response_id,\n rating: rating !== 'H' ? rating : undefined,\n skipRemainingQuestions: rating === 'H' || rating === 'E',\n },\n });\n }\n },\n [activeQuestion, attemptId, publishMessage],\n );\n\n const handleTooEasyButtonClick = useCallback(() => handleRatingChange('E'), [handleRatingChange]);\n const handleJustRightButtonClick = useCallback(\n () => handleRatingChange('S'),\n [handleRatingChange],\n );\n const handleTooHardButtonClick = useCallback(() => handleRatingChange('H'), [handleRatingChange]);\n\n const handleValidateButtonClick = useCallback(() => {\n if (activeQuestion?.response_id) {\n handleTeacherValidation(activeQuestion.response_id);\n }\n }, [activeQuestion?.response_id, handleTeacherValidation]);\n\n if (error) {\n return (\n <FlexView\n $flexDirection=\"column\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $height=\"100%\"\n $gutterX={4}\n $gapX={4}\n >\n <Text $renderAs=\"ub1-bold\" $color=\"RED\">\n <pre>\n <code>{error}</code>\n </pre>\n </Text>\n </FlexView>\n );\n }\n\n return (\n <FlexView $gutterX={includeGutter ? 1 : 0}>\n {showHeader && (\n <HeaderWrapper\n $height={60}\n $gutterX={3.75}\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $justifyContent=\"space-between\"\n $background=\"WHITE\"\n $borderColor=\"BLACK_1\"\n >\n {['TRIAL_BASIC', 'TRIAL_DIAGNOSTIC'].includes(nodeType) ? (\n <>\n <Text $renderAs=\"ah4-black\">TEACHER: {nodeType}</Text>\n {instructorStimulus !== 'learn' ? (\n <FlexView $flexDirection=\"row\" $flexColumnGapX={1}>\n <Button\n renderAs=\"primary\"\n label=\"Too Easy\"\n shape=\"square\"\n size=\"small\"\n onClick={handleTooEasyButtonClick}\n />\n <Button\n renderAs=\"primary\"\n label=\"Just right\"\n shape=\"square\"\n size=\"small\"\n onClick={handleJustRightButtonClick}\n />\n {instructorStimulus === 'try' && (\n <Button\n renderAs=\"primary\"\n label=\"Too Hard\"\n shape=\"square\"\n size=\"small\"\n onClick={handleTooHardButtonClick}\n />\n )}\n </FlexView>\n ) : (\n <Button\n renderAs=\"primary\"\n label=\"Validate\"\n shape=\"square\"\n size=\"small\"\n onClick={handleValidateButtonClick}\n />\n )}\n </>\n ) : (\n <Text $renderAs=\"ah4-bold\">TEACHER: {nodeType}</Text>\n )}\n </HeaderWrapper>\n )}\n <WorksheetWrapper $topOffset={layout.topOffset} $showBorder={!!includeGutter}>\n <WorksheetContainer\n key={`${nodeType}-${isLessonV3}-${worksheetCompleted}-${mockEnabled}`}\n ref={ref}\n userType=\"TEACHER\"\n userId=\"teacher_id\"\n studentId=\"student_id\"\n worksheetName=\"Worksheet Name\"\n attemptId={mockEnabled ? getActivityMockAttemptId(nodeType, isLessonV3) : attemptId}\n questionsSignedRequest={questionsSignedRequest}\n itemsSignedRequest={\n mockEnabled ? getMockItemsSignedRequest(attemptId) : itemsSignedRequest\n }\n behavior={behavior}\n layout={layout}\n background={isSATAssessment || isPuzzleWorksheet ? 'none' : 'paper'}\n isCanvasEnabled={!isSATAssessment}\n updatedResponses={responses}\n loggerRef={loggerRef}\n onLoaded={fakeCallback}\n onErrored={fakeCallback}\n onActiveQuestionChange={setActiveQuestion}\n onResponsesChange={fakeCallback}\n onPublishStrokes={publishStrokes}\n onReceiveStrokes={registerCallback}\n onMediaStateChange={handleMediaStateChange}\n worksheetCompleted={worksheetCompleted}\n onResponsesLoaded={handleResponsesChange}\n onTeacherValidation={handleTeacherValidation}\n onOptionalItemAssignment={handleOptionalItemAssignment}\n onOptionalItemSkip={handleOptionalItemSkip}\n openQuestionFeedbackModal={fakeCallback}\n initialStrokesData={initialStrokesData}\n />\n </WorksheetWrapper>\n </FlexView>\n );\n};\n\nexport default WorksheetTeacherStory;\n"],"names":["WorksheetTeacherStory","props","activeQuestion","setActiveQuestion","useState","instructorStimulus","_a","nodeType","isLessonV3","worksheetCompleted","mockEnabled","showHeader","includeGutter","questionsSignedRequest","itemsSignedRequest","attemptId","getActivityMockAttemptId","ref","useRef","isSATAssessment","isSATAssessmentNode","isPuzzleWorksheet","useMemo","behavior","getBehavior","layout","useWorksheetLayout","error","setError","loggerRef","eventName","data","EVENTS","fakeCallback","useCallback","responses","setResponses","handleResponsesChange","rsps","publishStrokes","registerCallback","initialStrokesData","useCanvasSyncBrokerStory","publishMessage","message","studentIframe","postMessage","_b","handleTeacherValidation","questionId","rating","handleOptionalItemAssignment","itemType","handleOptionalItemSkip","handleMediaStateChange","question","mediaType","mediaState","useEffect","event","prevResponses","eventPayload","responseId","response","bulkResponses","handleRatingChange","handleTooEasyButtonClick","handleJustRightButtonClick","handleTooHardButtonClick","handleValidateButtonClick","jsx","FlexView","Text","jsxs","HeaderWrapper","Fragment","Button","WorksheetWrapper","WorksheetContainer","getMockItemsSignedRequest"],"mappings":"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"}
|
@@ -1,10 +1,10 @@
|
|
1
|
-
import
|
2
|
-
import
|
1
|
+
import S from "../../../assets/line-icons/icons/bulb2.js";
|
2
|
+
import y from "../../../assets/line-icons/icons/edit-star.js";
|
3
3
|
import A from "../../../assets/line-icons/icons/edit2.js";
|
4
|
-
import
|
5
|
-
import
|
4
|
+
import L from "../../../assets/line-icons/icons/question-letter.js";
|
5
|
+
import O from "../../../assets/line-icons/icons/star2.js";
|
6
6
|
import b from "../constants/events.js";
|
7
|
-
import { OPTIONAL_ITEM_TYPES as
|
7
|
+
import { OPTIONAL_ITEM_TYPES as R, ACTION_BAR_HEIGHT as k, QUESTION_WIDTH as w, SPLIT_QUESTION_WIDTH as N, CLOZE_FORMULA_RESPONSE_LIMIT as x } from "./constants.js";
|
8
8
|
import { QUESTION_TAGS as E } from "./worksheet-types.js";
|
9
9
|
const Q = (e) => {
|
10
10
|
switch (e) {
|
@@ -30,7 +30,7 @@ const Q = (e) => {
|
|
30
30
|
default:
|
31
31
|
return;
|
32
32
|
}
|
33
|
-
},
|
33
|
+
}, M = (e) => {
|
34
34
|
if (!e)
|
35
35
|
return !1;
|
36
36
|
const r = e.toLowerCase();
|
@@ -44,16 +44,16 @@ const Q = (e) => {
|
|
44
44
|
}, {}), Y = (e, { sectioned: r = !1, adaptive: t = !1 }) => {
|
45
45
|
if (r)
|
46
46
|
return e.reduce((s, a, c) => {
|
47
|
-
var
|
47
|
+
var v;
|
48
48
|
let d = !1;
|
49
49
|
const { content: u, questions: i, itemType: o } = a, l = Q(o), m = s[s.length - 1], g = l === (m == null ? void 0 : m.section_name) && (m != null && m.item_display_number) ? m.item_display_number + 1 : 1, _ = u.match(/question-[^"]*/g), p = _ == null ? void 0 : _.map((f, h) => {
|
50
|
-
const
|
50
|
+
const T = i.find(
|
51
51
|
({ response_id: I }) => I === f.replace("question-", "")
|
52
52
|
);
|
53
|
-
if (!
|
53
|
+
if (!T)
|
54
54
|
throw new Error(`Question not found for the response id: ${f}`);
|
55
|
-
return d = d ||
|
56
|
-
...
|
55
|
+
return d = d || M(T.instructor_stimulus), {
|
56
|
+
...T,
|
57
57
|
// Some questions are set to limited number of attempts which can show feedback which is causing the question to be stuck in the errored state
|
58
58
|
feedback_attempts: void 0,
|
59
59
|
item_reference: a.reference,
|
@@ -61,7 +61,7 @@ const Q = (e) => {
|
|
61
61
|
item_display_number: g,
|
62
62
|
section_name: l,
|
63
63
|
item_type: r ? o : void 0,
|
64
|
-
is_optional: o ?
|
64
|
+
is_optional: o ? R.includes(o) : !1,
|
65
65
|
item_tags: a.tags ?? [],
|
66
66
|
item_tags_map: C(a.tags ?? []),
|
67
67
|
question_number: h - (d ? 1 : 0),
|
@@ -69,8 +69,8 @@ const Q = (e) => {
|
|
69
69
|
};
|
70
70
|
});
|
71
71
|
if (d = !1, p != null && p[0] && c > 0 && e.length > 0) {
|
72
|
-
const f = (
|
73
|
-
if ((h === "practice-basic" || h === "practice-regular" || h === "exit-ticket" || h === "advanced") && h !==
|
72
|
+
const f = (v = e[c - 1]) == null ? void 0 : v.itemType, h = o != null && o.startsWith("advanced-") ? "advanced" : o, T = f != null && f.startsWith("advanced-") ? "advanced" : f;
|
73
|
+
if ((h === "practice-basic" || h === "practice-regular" || h === "exit-ticket" || h === "advanced") && h !== T)
|
74
74
|
return [
|
75
75
|
...s,
|
76
76
|
{
|
@@ -186,7 +186,7 @@ const Q = (e) => {
|
|
186
186
|
}
|
187
187
|
return e.length - u;
|
188
188
|
};
|
189
|
-
function
|
189
|
+
function B(e, r) {
|
190
190
|
var n, s;
|
191
191
|
const t = Array.isArray(e) ? e.find((a) => a.response_id === r) : e;
|
192
192
|
if (!t)
|
@@ -209,7 +209,7 @@ function M(e, r) {
|
|
209
209
|
const z = (e) => e.reduce(
|
210
210
|
(r, t) => ({
|
211
211
|
...r,
|
212
|
-
[t.response_id]:
|
212
|
+
[t.response_id]: B(e, t.response_id)
|
213
213
|
}),
|
214
214
|
{}
|
215
215
|
), X = (e, r) => {
|
@@ -217,8 +217,8 @@ const z = (e) => e.reduce(
|
|
217
217
|
return {
|
218
218
|
questionsContainerWidth: !e.some(
|
219
219
|
(a) => a.questions.some((c) => c.stimulus_review)
|
220
|
-
) ?
|
221
|
-
maxQuestionWidth:
|
220
|
+
) ? w : N,
|
221
|
+
maxQuestionWidth: w,
|
222
222
|
actionbarHeight: t === "bottom" ? k : 0
|
223
223
|
};
|
224
224
|
}, Z = ({
|
@@ -346,21 +346,21 @@ const z = (e) => e.reduce(
|
|
346
346
|
}, ae = (e) => {
|
347
347
|
switch (e) {
|
348
348
|
case "learning":
|
349
|
-
return
|
349
|
+
return S;
|
350
350
|
case "practice-basic":
|
351
351
|
return A;
|
352
352
|
case "practice-regular":
|
353
|
-
return
|
353
|
+
return y;
|
354
354
|
case "exit-ticket":
|
355
|
-
return
|
355
|
+
return L;
|
356
356
|
case "advanced":
|
357
|
-
return
|
357
|
+
return O;
|
358
358
|
default:
|
359
|
-
return
|
359
|
+
return S;
|
360
360
|
}
|
361
|
-
}, ie = (e) => Array.isArray(e.value) ? e.value.some(
|
361
|
+
}, ie = (e) => e === "SAT_ENGLISH_ASSESSMENT" || e === "SAT_MATH_ASSESSMENT", se = (e) => Array.isArray(e.value) ? e.value.some(
|
362
362
|
(t) => typeof t == "string" && t.length > x
|
363
|
-
) : !1,
|
363
|
+
) : !1, ce = (e, r) => {
|
364
364
|
const t = e === "TEACHER";
|
365
365
|
return r ? {
|
366
366
|
bannerBackgroundColor: "GREEN_4",
|
@@ -369,7 +369,7 @@ const z = (e) => e.reduce(
|
|
369
369
|
bannerBackgroundColor: "ORANGE_2",
|
370
370
|
label: "Complete this with your tutor in class"
|
371
371
|
};
|
372
|
-
},
|
372
|
+
}, ue = ({
|
373
373
|
isPuzzleWorksheet: e,
|
374
374
|
isTestWorksheet: r,
|
375
375
|
imageHue: t = "BLUE"
|
@@ -387,7 +387,7 @@ const z = (e) => e.reduce(
|
|
387
387
|
textColor: "WHITE"
|
388
388
|
};
|
389
389
|
export {
|
390
|
-
|
390
|
+
se as checkIsClozeFormulaResponseInvalid,
|
391
391
|
J as getInitialQuestionId,
|
392
392
|
z as getInitialResponses,
|
393
393
|
V as getLastUnlockedQuestionIndex,
|
@@ -397,14 +397,15 @@ export {
|
|
397
397
|
ee as getPaperColorByQuestion,
|
398
398
|
te as getQuestionBackgroundImage,
|
399
399
|
re as getQuestionBorderColor,
|
400
|
-
|
400
|
+
B as getQuestionMetadata,
|
401
401
|
Y as getQuestionsFromItems,
|
402
402
|
Z as getRenderableQuestions,
|
403
403
|
X as getWorksheetDimensions,
|
404
|
-
|
405
|
-
|
406
|
-
|
404
|
+
ue as getWorksheetHeaderLayout,
|
405
|
+
ce as getWorksheetNudgeBannerInfo,
|
406
|
+
M as isConceptIntroWidget,
|
407
407
|
W as isOkayTypeQuestion,
|
408
|
+
ie as isSATAssessmentNode,
|
408
409
|
j as scrollToQuestion,
|
409
410
|
q as setMathJaxConfigInWindow
|
410
411
|
};
|