@cuemath/leap 3.2.30-aa2 → 3.2.30-aa4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,23 +1,23 @@
1
- import { jsx as e, jsxs as b, Fragment as R } from "react/jsx-runtime";
2
- import { memo as Y, useState as Z, useCallback as r } from "react";
3
- import ee from "../../../../assets/line-icons/icons/calculator.js";
4
- import oe from "../../../../assets/line-icons/icons/down.js";
5
- import ne from "../../../../assets/line-icons/icons/up.js";
6
- import te from "../../../cue-canvas/toolbar/toolbar.js";
7
- import se from "../../../ui/buttons/button/button.js";
8
- import ie from "../../../ui/layout/flex-view.js";
9
- import { scrollToQuestion as re } from "../worksheet-helpers.js";
10
- import ae from "../worksheet-questions-controller/scribble-switch.js";
11
- import le from "../worksheet-questions-controller/worksheet-questions-controller.js";
12
- import me from "../worksheet-questions-summary/worksheet-questions-summary.js";
13
- import { IconContainer as ce, SummaryWrapper as ue } from "../worksheet-styled.js";
14
- import de from "../worksheet-summary-controller/worksheet-summary-controller.js";
15
- const Be = Y(($) => {
1
+ import { jsx as e, jsxs as b, Fragment as $ } from "react/jsx-runtime";
2
+ import { memo as K, useState as L, useCallback as r } from "react";
3
+ import M from "../../../../assets/line-icons/icons/calculator.js";
4
+ import Y from "../../../../assets/line-icons/icons/down.js";
5
+ import Z from "../../../../assets/line-icons/icons/up.js";
6
+ import ee from "../../../cue-canvas/toolbar/toolbar.js";
7
+ import oe from "../../../ui/buttons/button/button.js";
8
+ import ne from "../../../ui/layout/flex-view.js";
9
+ import { scrollToQuestion as te } from "../worksheet-helpers.js";
10
+ import se from "../worksheet-questions-controller/scribble-switch.js";
11
+ import ie from "../worksheet-questions-controller/worksheet-questions-controller.js";
12
+ import re from "../worksheet-questions-summary/worksheet-questions-summary.js";
13
+ import { IconContainer as ae, SummaryWrapper as le } from "../worksheet-styled.js";
14
+ import me from "../worksheet-summary-controller/worksheet-summary-controller.js";
15
+ const we = K((A) => {
16
16
  const {
17
17
  userType: m,
18
18
  layout: f,
19
19
  behavior: t,
20
- worksheetName: A,
20
+ worksheetName: R,
21
21
  questions: o,
22
22
  responses: s,
23
23
  activeQuestionIndex: i,
@@ -33,110 +33,107 @@ const Be = Y(($) => {
33
33
  setBlocker: j,
34
34
  setSummaryVisible: u,
35
35
  showCalculator: F,
36
- onItemNumberClick: C,
36
+ onItemNumberClick: g,
37
37
  onTeacherValidation: G,
38
- onGoToReview: I,
38
+ onGoToReview: C,
39
39
  onResponseChange: N,
40
- onHelp: U,
40
+ onHelp: D,
41
41
  onSubmit: a,
42
- onCalculatorOpen: D,
43
- canSubmitWorksheet: g,
42
+ onCalculatorOpen: U,
43
+ canSubmitWorksheet: I,
44
44
  loggerRef: y,
45
45
  onSkip: _,
46
- onUnassign: z,
47
- onReview: H,
48
- canToggleScribbling: P,
49
46
  actionBarRightElement: v
50
- } = $, { navigationBar: X, questionsScrollable: w } = f, d = o[i], { response_id: l } = d ?? {}, [Q, p] = Z(!1), J = l ? W.includes(l) : !1, K = r(
47
+ } = A, { navigationBar: z, questionsScrollable: w } = f, d = o[i], { response_id: l } = d ?? {}, [Q, p] = L(!1), H = l ? W.includes(l) : !1, P = r(
51
48
  (n) => {
52
- p(!1), C(n);
49
+ p(!1), g(n);
53
50
  },
54
- [C]
55
- ), L = r(() => {
56
- p(!1), I();
57
- }, [I]), x = r(() => {
51
+ [g]
52
+ ), X = r(() => {
53
+ p(!1), C();
54
+ }, [C]), T = r(() => {
58
55
  p((n) => !n);
59
- }, []), M = r(() => {
60
- var T;
56
+ }, []), J = r(() => {
57
+ var B;
61
58
  u(!1);
62
- const n = (T = o[o.length - 1]) == null ? void 0 : T.response_id;
63
- n && (w ? requestAnimationFrame(() => re(n)) : c(n));
64
- }, [o, w, c, u]), B = r(() => {
59
+ const n = (B = o[o.length - 1]) == null ? void 0 : B.response_id;
60
+ n && (w ? requestAnimationFrame(() => te(n)) : c(n));
61
+ }, [o, w, c, u]), x = r(() => {
65
62
  a == null || a(s);
66
63
  }, [a, s]);
67
64
  return k ? /* @__PURE__ */ e(
68
- de,
65
+ me,
69
66
  {
70
- onBack: M,
67
+ onBack: J,
71
68
  behavior: t,
72
- onSubmit: B,
73
- canSubmitWorksheet: !!g
69
+ onSubmit: x,
70
+ canSubmitWorksheet: !!I
74
71
  }
75
- ) : /* @__PURE__ */ b(R, { children: [
76
- /* @__PURE__ */ b(ie, { $flexDirection: "row", $flexGap: 12, children: [
72
+ ) : /* @__PURE__ */ b($, { children: [
73
+ /* @__PURE__ */ b(ne, { $flexDirection: "row", $flexGap: 12, children: [
77
74
  /* @__PURE__ */ e(
78
- ae,
75
+ se,
79
76
  {
80
77
  isScribblingEnabled: S,
81
78
  setIsScribblingEnabled: E,
82
79
  isCanvasEnabled: !!t.canvasEnabled,
83
80
  loggerRef: y,
84
- canToggleScribbling: P
81
+ canToggleScribbling: t.canToggleScribbling
85
82
  }
86
83
  ),
87
84
  t.canShowDesmosCalc && /* @__PURE__ */ e(
88
- ce,
85
+ ae,
89
86
  {
90
87
  $active: F,
91
88
  $alignItems: "center",
92
89
  $justifyContent: "space-between",
93
- onClick: D,
94
- children: /* @__PURE__ */ e(ee, {})
90
+ onClick: U,
91
+ children: /* @__PURE__ */ e(M, {})
95
92
  }
96
93
  )
97
94
  ] }),
98
- S && /* @__PURE__ */ e(te, { userType: m, renderAs: "canvas" }),
99
- X === "bottom" && /* @__PURE__ */ b(R, { children: [
100
- Q && /* @__PURE__ */ e(ue, { $alignItems: "center", children: /* @__PURE__ */ e(
101
- me,
95
+ S && /* @__PURE__ */ e(ee, { userType: m, renderAs: "canvas" }),
96
+ z === "bottom" && /* @__PURE__ */ b($, { children: [
97
+ Q && /* @__PURE__ */ e(le, { $alignItems: "center", children: /* @__PURE__ */ e(
98
+ re,
102
99
  {
103
100
  activeQuestionIndex: i,
104
101
  lastUnlockedQuestionIndex: h,
105
- onItemNumberClick: K,
102
+ onItemNumberClick: P,
106
103
  questions: o,
107
104
  responses: s,
108
- worksheetName: A,
105
+ worksheetName: R,
109
106
  behavior: t,
110
107
  userType: m,
111
- onClose: x,
112
- onGoToReview: L,
108
+ onClose: T,
109
+ onGoToReview: X,
113
110
  summaryVisible: k
114
111
  }
115
112
  ) }),
116
113
  /* @__PURE__ */ e(
117
- se,
114
+ oe,
118
115
  {
119
116
  renderAs: "secondary",
120
117
  widthX: 13.25,
121
118
  label: `Question ${i + 1} of ${o.length}`,
122
119
  size: "small",
123
- Icon: Q ? oe : ne,
120
+ Icon: Q ? Y : Z,
124
121
  iconPosition: "right",
125
122
  justifyContent: "space-between",
126
- onClick: x
123
+ onClick: T
127
124
  }
128
125
  )
129
126
  ] }),
130
127
  d && l && /* @__PURE__ */ e(
131
- le,
128
+ ie,
132
129
  {
133
130
  learnosity: q,
134
131
  question: d,
135
132
  questions: o,
136
133
  responses: s,
137
- canSubmitWorksheet: g,
134
+ canSubmitWorksheet: I,
138
135
  questionIndex: i,
139
- isQuestionAppended: J,
136
+ isQuestionAppended: H,
140
137
  isQuestionUnlocked: i <= h,
141
138
  response: s[l],
142
139
  behavior: t,
@@ -144,10 +141,8 @@ const Be = Y(($) => {
144
141
  layout: f,
145
142
  onResponseChange: N,
146
143
  onTeacherValidation: G,
147
- onHelp: U,
148
- onSubmit: B,
149
- onUnassign: z,
150
- onReview: H,
144
+ onHelp: D,
145
+ onSubmit: x,
151
146
  setActiveQuestionId: c,
152
147
  setBlocker: j,
153
148
  setSummaryVisible: u,
@@ -161,6 +156,6 @@ const Be = Y(($) => {
161
156
  ] });
162
157
  });
163
158
  export {
164
- Be as default
159
+ we as default
165
160
  };
166
161
  //# sourceMappingURL=worksheet-action-bar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"worksheet-action-bar.js","sources":["../../../../../src/features/worksheet/worksheet/worksheet-action-bar/worksheet-action-bar.tsx"],"sourcesContent":["import type { IWorksheetActionBarProps } from './worksheet-action-bar-types';\nimport type { FC } from 'react';\n\nimport { memo, useCallback, useState } from 'react';\n\nimport CalculatorIcon from '../../../../assets/line-icons/icons/calculator';\nimport DownIcon from '../../../../assets/line-icons/icons/down';\nimport UpIcon from '../../../../assets/line-icons/icons/up';\nimport Toolbar from '../../../cue-canvas/toolbar/toolbar';\nimport Button from '../../../ui/buttons/button/button';\nimport FlexView from '../../../ui/layout/flex-view';\nimport { scrollToQuestion } from '../worksheet-helpers';\nimport ScribbleSwitch from '../worksheet-questions-controller/scribble-switch';\nimport WorksheetQuestionsController from '../worksheet-questions-controller/worksheet-questions-controller';\nimport WorksheetQuestionsSummary from '../worksheet-questions-summary/worksheet-questions-summary';\nimport * as Styled from '../worksheet-styled';\nimport WorksheetSummaryController from '../worksheet-summary-controller/worksheet-summary-controller';\n\nconst WorksheetActionBar: FC<IWorksheetActionBarProps> = memo(props => {\n const {\n userType,\n layout,\n behavior,\n worksheetName,\n questions,\n responses,\n activeQuestionIndex,\n lastUnlockedQuestionIndex,\n appendedQuestionIds,\n learnosity,\n isScribblingEnabled,\n isSummaryVisible,\n setIsScribblingEnabled,\n setActiveQuestionId,\n setResponses,\n getTimeSpentOnQuestion,\n setBlocker,\n setSummaryVisible,\n showCalculator,\n onItemNumberClick,\n onTeacherValidation,\n onGoToReview,\n onResponseChange,\n onHelp,\n onSubmit,\n onCalculatorOpen,\n canSubmitWorksheet,\n loggerRef,\n onSkip,\n onUnassign,\n onReview,\n canToggleScribbling,\n actionBarRightElement,\n } = props;\n const { navigationBar, questionsScrollable } = layout;\n const activeQuestion = questions[activeQuestionIndex];\n const { response_id: activeQuestionId } = activeQuestion ?? {};\n const [isSummaryOpened, setIsSummaryOpened] = useState(false);\n const isAppended = activeQuestionId ? appendedQuestionIds.includes(activeQuestionId) : false;\n\n const handleItemNumberClick = useCallback(\n (questionId: string) => {\n setIsSummaryOpened(false);\n onItemNumberClick(questionId);\n },\n [onItemNumberClick],\n );\n\n const handleOnGoToReview = useCallback(() => {\n setIsSummaryOpened(false);\n onGoToReview();\n }, [onGoToReview]);\n\n const handleSummaryButtonClick = useCallback(() => {\n setIsSummaryOpened(prev => !prev);\n }, []);\n\n const handleBackFromSummary = useCallback(() => {\n setSummaryVisible(false);\n\n const questionId = questions[questions.length - 1]?.response_id;\n\n if (questionId) {\n if (questionsScrollable) {\n requestAnimationFrame(() => scrollToQuestion(questionId));\n } else {\n setActiveQuestionId(questionId);\n }\n }\n }, [questions, questionsScrollable, setActiveQuestionId, setSummaryVisible]);\n\n const handleSheetSubmitButtonClick = useCallback(() => {\n onSubmit?.(responses);\n }, [onSubmit, responses]);\n\n if (isSummaryVisible) {\n return (\n <WorksheetSummaryController\n onBack={handleBackFromSummary}\n behavior={behavior}\n onSubmit={handleSheetSubmitButtonClick}\n canSubmitWorksheet={!!canSubmitWorksheet}\n />\n );\n }\n\n return (\n <>\n <FlexView $flexDirection=\"row\" $flexGap={12}>\n <ScribbleSwitch\n isScribblingEnabled={isScribblingEnabled}\n setIsScribblingEnabled={setIsScribblingEnabled}\n isCanvasEnabled={!!behavior.canvasEnabled}\n loggerRef={loggerRef}\n canToggleScribbling={canToggleScribbling}\n />\n {behavior.canShowDesmosCalc && (\n <Styled.IconContainer\n $active={showCalculator}\n $alignItems=\"center\"\n $justifyContent=\"space-between\"\n onClick={onCalculatorOpen}\n >\n <CalculatorIcon />\n </Styled.IconContainer>\n )}\n </FlexView>\n {isScribblingEnabled && <Toolbar userType={userType} renderAs=\"canvas\" />}\n {navigationBar === 'bottom' && (\n <>\n {isSummaryOpened && (\n <Styled.SummaryWrapper $alignItems=\"center\">\n <WorksheetQuestionsSummary\n activeQuestionIndex={activeQuestionIndex}\n lastUnlockedQuestionIndex={lastUnlockedQuestionIndex}\n onItemNumberClick={handleItemNumberClick}\n questions={questions}\n responses={responses}\n worksheetName={worksheetName}\n behavior={behavior}\n userType={userType}\n onClose={handleSummaryButtonClick}\n onGoToReview={handleOnGoToReview}\n summaryVisible={isSummaryVisible}\n />\n </Styled.SummaryWrapper>\n )}\n <Button\n renderAs=\"secondary\"\n widthX={13.25}\n label={`Question ${activeQuestionIndex + 1} of ${questions.length}`}\n size=\"small\"\n Icon={isSummaryOpened ? DownIcon : UpIcon}\n iconPosition=\"right\"\n justifyContent=\"space-between\"\n onClick={handleSummaryButtonClick}\n />\n </>\n )}\n {activeQuestion && activeQuestionId && (\n <WorksheetQuestionsController\n learnosity={learnosity}\n question={activeQuestion}\n questions={questions}\n responses={responses}\n canSubmitWorksheet={canSubmitWorksheet}\n questionIndex={activeQuestionIndex}\n isQuestionAppended={isAppended}\n isQuestionUnlocked={activeQuestionIndex <= lastUnlockedQuestionIndex}\n response={responses[activeQuestionId]}\n behavior={behavior}\n userType={userType}\n layout={layout}\n onResponseChange={onResponseChange}\n onTeacherValidation={onTeacherValidation}\n onHelp={onHelp}\n onSubmit={handleSheetSubmitButtonClick}\n onUnassign={onUnassign}\n onReview={onReview}\n setActiveQuestionId={setActiveQuestionId}\n setBlocker={setBlocker}\n setSummaryVisible={setSummaryVisible}\n setResponses={setResponses}\n getTimeSpentOnQuestion={getTimeSpentOnQuestion}\n loggerRef={loggerRef}\n onSkip={onSkip}\n />\n )}\n {actionBarRightElement && actionBarRightElement}\n </>\n );\n});\n\nexport default WorksheetActionBar;\n"],"names":["WorksheetActionBar","memo","props","userType","layout","behavior","worksheetName","questions","responses","activeQuestionIndex","lastUnlockedQuestionIndex","appendedQuestionIds","learnosity","isScribblingEnabled","isSummaryVisible","setIsScribblingEnabled","setActiveQuestionId","setResponses","getTimeSpentOnQuestion","setBlocker","setSummaryVisible","showCalculator","onItemNumberClick","onTeacherValidation","onGoToReview","onResponseChange","onHelp","onSubmit","onCalculatorOpen","canSubmitWorksheet","loggerRef","onSkip","onUnassign","onReview","canToggleScribbling","actionBarRightElement","navigationBar","questionsScrollable","activeQuestion","activeQuestionId","isSummaryOpened","setIsSummaryOpened","useState","isAppended","handleItemNumberClick","useCallback","questionId","handleOnGoToReview","handleSummaryButtonClick","prev","handleBackFromSummary","_a","scrollToQuestion","handleSheetSubmitButtonClick","jsx","WorksheetSummaryController","jsxs","Fragment","FlexView","ScribbleSwitch","Styled.IconContainer","CalculatorIcon","Toolbar","Styled.SummaryWrapper","WorksheetQuestionsSummary","Button","DownIcon","UpIcon","WorksheetQuestionsController"],"mappings":"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"}
1
+ {"version":3,"file":"worksheet-action-bar.js","sources":["../../../../../src/features/worksheet/worksheet/worksheet-action-bar/worksheet-action-bar.tsx"],"sourcesContent":["import type { IWorksheetActionBarProps } from './worksheet-action-bar-types';\nimport type { FC } from 'react';\n\nimport { memo, useCallback, useState } from 'react';\n\nimport CalculatorIcon from '../../../../assets/line-icons/icons/calculator';\nimport DownIcon from '../../../../assets/line-icons/icons/down';\nimport UpIcon from '../../../../assets/line-icons/icons/up';\nimport Toolbar from '../../../cue-canvas/toolbar/toolbar';\nimport Button from '../../../ui/buttons/button/button';\nimport FlexView from '../../../ui/layout/flex-view';\nimport { scrollToQuestion } from '../worksheet-helpers';\nimport ScribbleSwitch from '../worksheet-questions-controller/scribble-switch';\nimport WorksheetQuestionsController from '../worksheet-questions-controller/worksheet-questions-controller';\nimport WorksheetQuestionsSummary from '../worksheet-questions-summary/worksheet-questions-summary';\nimport * as Styled from '../worksheet-styled';\nimport WorksheetSummaryController from '../worksheet-summary-controller/worksheet-summary-controller';\n\nconst WorksheetActionBar: FC<IWorksheetActionBarProps> = memo(props => {\n const {\n userType,\n layout,\n behavior,\n worksheetName,\n questions,\n responses,\n activeQuestionIndex,\n lastUnlockedQuestionIndex,\n appendedQuestionIds,\n learnosity,\n isScribblingEnabled,\n isSummaryVisible,\n setIsScribblingEnabled,\n setActiveQuestionId,\n setResponses,\n getTimeSpentOnQuestion,\n setBlocker,\n setSummaryVisible,\n showCalculator,\n onItemNumberClick,\n onTeacherValidation,\n onGoToReview,\n onResponseChange,\n onHelp,\n onSubmit,\n onCalculatorOpen,\n canSubmitWorksheet,\n loggerRef,\n onSkip,\n actionBarRightElement,\n } = props;\n const { navigationBar, questionsScrollable } = layout;\n const activeQuestion = questions[activeQuestionIndex];\n const { response_id: activeQuestionId } = activeQuestion ?? {};\n const [isSummaryOpened, setIsSummaryOpened] = useState(false);\n const isAppended = activeQuestionId ? appendedQuestionIds.includes(activeQuestionId) : false;\n\n const handleItemNumberClick = useCallback(\n (questionId: string) => {\n setIsSummaryOpened(false);\n onItemNumberClick(questionId);\n },\n [onItemNumberClick],\n );\n\n const handleOnGoToReview = useCallback(() => {\n setIsSummaryOpened(false);\n onGoToReview();\n }, [onGoToReview]);\n\n const handleSummaryButtonClick = useCallback(() => {\n setIsSummaryOpened(prev => !prev);\n }, []);\n\n const handleBackFromSummary = useCallback(() => {\n setSummaryVisible(false);\n\n const questionId = questions[questions.length - 1]?.response_id;\n\n if (questionId) {\n if (questionsScrollable) {\n requestAnimationFrame(() => scrollToQuestion(questionId));\n } else {\n setActiveQuestionId(questionId);\n }\n }\n }, [questions, questionsScrollable, setActiveQuestionId, setSummaryVisible]);\n\n const handleSheetSubmitButtonClick = useCallback(() => {\n onSubmit?.(responses);\n }, [onSubmit, responses]);\n\n if (isSummaryVisible) {\n return (\n <WorksheetSummaryController\n onBack={handleBackFromSummary}\n behavior={behavior}\n onSubmit={handleSheetSubmitButtonClick}\n canSubmitWorksheet={!!canSubmitWorksheet}\n />\n );\n }\n\n return (\n <>\n <FlexView $flexDirection=\"row\" $flexGap={12}>\n <ScribbleSwitch\n isScribblingEnabled={isScribblingEnabled}\n setIsScribblingEnabled={setIsScribblingEnabled}\n isCanvasEnabled={!!behavior.canvasEnabled}\n loggerRef={loggerRef}\n canToggleScribbling={behavior.canToggleScribbling}\n />\n {behavior.canShowDesmosCalc && (\n <Styled.IconContainer\n $active={showCalculator}\n $alignItems=\"center\"\n $justifyContent=\"space-between\"\n onClick={onCalculatorOpen}\n >\n <CalculatorIcon />\n </Styled.IconContainer>\n )}\n </FlexView>\n {isScribblingEnabled && <Toolbar userType={userType} renderAs=\"canvas\" />}\n {navigationBar === 'bottom' && (\n <>\n {isSummaryOpened && (\n <Styled.SummaryWrapper $alignItems=\"center\">\n <WorksheetQuestionsSummary\n activeQuestionIndex={activeQuestionIndex}\n lastUnlockedQuestionIndex={lastUnlockedQuestionIndex}\n onItemNumberClick={handleItemNumberClick}\n questions={questions}\n responses={responses}\n worksheetName={worksheetName}\n behavior={behavior}\n userType={userType}\n onClose={handleSummaryButtonClick}\n onGoToReview={handleOnGoToReview}\n summaryVisible={isSummaryVisible}\n />\n </Styled.SummaryWrapper>\n )}\n <Button\n renderAs=\"secondary\"\n widthX={13.25}\n label={`Question ${activeQuestionIndex + 1} of ${questions.length}`}\n size=\"small\"\n Icon={isSummaryOpened ? DownIcon : UpIcon}\n iconPosition=\"right\"\n justifyContent=\"space-between\"\n onClick={handleSummaryButtonClick}\n />\n </>\n )}\n {activeQuestion && activeQuestionId && (\n <WorksheetQuestionsController\n learnosity={learnosity}\n question={activeQuestion}\n questions={questions}\n responses={responses}\n canSubmitWorksheet={canSubmitWorksheet}\n questionIndex={activeQuestionIndex}\n isQuestionAppended={isAppended}\n isQuestionUnlocked={activeQuestionIndex <= lastUnlockedQuestionIndex}\n response={responses[activeQuestionId]}\n behavior={behavior}\n userType={userType}\n layout={layout}\n onResponseChange={onResponseChange}\n onTeacherValidation={onTeacherValidation}\n onHelp={onHelp}\n onSubmit={handleSheetSubmitButtonClick}\n setActiveQuestionId={setActiveQuestionId}\n setBlocker={setBlocker}\n setSummaryVisible={setSummaryVisible}\n setResponses={setResponses}\n getTimeSpentOnQuestion={getTimeSpentOnQuestion}\n loggerRef={loggerRef}\n onSkip={onSkip}\n />\n )}\n {actionBarRightElement && actionBarRightElement}\n </>\n );\n});\n\nexport default WorksheetActionBar;\n"],"names":["WorksheetActionBar","memo","props","userType","layout","behavior","worksheetName","questions","responses","activeQuestionIndex","lastUnlockedQuestionIndex","appendedQuestionIds","learnosity","isScribblingEnabled","isSummaryVisible","setIsScribblingEnabled","setActiveQuestionId","setResponses","getTimeSpentOnQuestion","setBlocker","setSummaryVisible","showCalculator","onItemNumberClick","onTeacherValidation","onGoToReview","onResponseChange","onHelp","onSubmit","onCalculatorOpen","canSubmitWorksheet","loggerRef","onSkip","actionBarRightElement","navigationBar","questionsScrollable","activeQuestion","activeQuestionId","isSummaryOpened","setIsSummaryOpened","useState","isAppended","handleItemNumberClick","useCallback","questionId","handleOnGoToReview","handleSummaryButtonClick","prev","handleBackFromSummary","_a","scrollToQuestion","handleSheetSubmitButtonClick","jsx","WorksheetSummaryController","jsxs","Fragment","FlexView","ScribbleSwitch","Styled.IconContainer","CalculatorIcon","Toolbar","Styled.SummaryWrapper","WorksheetQuestionsSummary","Button","DownIcon","UpIcon","WorksheetQuestionsController"],"mappings":"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"}
@@ -1,30 +1,31 @@
1
1
  import { TRIAL_V3_NODE_TYPES as u, ASSESSMENT_NODE_TYPES as T } from "../../sheets/utils/is-v3-worksheet.js";
2
2
  const o = ({
3
3
  nodeType: t,
4
- inClass: c,
4
+ inClass: E,
5
5
  isLessonV3Enabled: i,
6
- isDesmosEnabled: r = !1,
7
- userType: n,
8
- mode: s,
6
+ isDesmosEnabled: m = !1,
7
+ userType: c,
8
+ mode: n,
9
9
  worksheetCompleted: A
10
10
  }) => {
11
- const E = u.includes(t), m = T.includes(t), e = s === "resume", a = {
11
+ const s = u.includes(t), r = T.includes(t), e = n === "resume", a = {
12
12
  hints: e,
13
13
  navigationMode: "OPEN",
14
14
  initialQuestion: e ? "CURRENT" : "FIRST",
15
- maximumAttempts: m ? -1 : 99999,
15
+ maximumAttempts: r ? -1 : 99999,
16
16
  minimumAccuracy: 100,
17
- teacherValidationEnabled: i || E,
18
- canTeacherValidate: !!c && (i || E),
19
- validation: !(n === "STUDENT" && m),
17
+ teacherValidationEnabled: i || s,
18
+ canTeacherValidate: !!E && (i || s),
19
+ validation: !(c === "STUDENT" && r),
20
20
  review: !e,
21
- canAttempt: n === "STUDENT" ? e : !1,
21
+ canAttempt: c === "STUDENT" ? e : !1,
22
22
  canExceedAttempts: !0,
23
23
  checkButtonLabel: "Check",
24
24
  retryButtonLabel: "Retry",
25
25
  canMarkForReview: !1,
26
- canShowDesmosCalc: r,
27
- canvasEnabled: s !== "preview"
26
+ canShowDesmosCalc: m,
27
+ canvasEnabled: n !== "preview",
28
+ canToggleScribbling: n !== "preview"
28
29
  };
29
30
  switch (t) {
30
31
  case "LEARNING":
@@ -32,7 +33,7 @@ const o = ({
32
33
  case "SAT_ENGLISH_LEARNING":
33
34
  return {
34
35
  ...a,
35
- navigationMode: i && e && !c ? "OPEN" : "LINEAR"
36
+ navigationMode: i && e && !E ? "OPEN" : "LINEAR"
36
37
  };
37
38
  case "GENERAL":
38
39
  case "REMEDIAL":
@@ -99,7 +100,8 @@ const o = ({
99
100
  skippableTime: 90,
100
101
  validation: !1,
101
102
  solutionHidden: !A,
102
- minimumAccuracy: 0
103
+ minimumAccuracy: 0,
104
+ canToggleScribbling: c === "TEACHER" ? A : !0
103
105
  };
104
106
  case "SUBJECTIVE":
105
107
  case "TURING_SUBJECTIVE":
@@ -1 +1 @@
1
- {"version":3,"file":"worksheet-behavior-helper.js","sources":["../../../../src/features/worksheet/worksheet/worksheet-behavior-helper.ts"],"sourcesContent":["import type { TNodeTypes } from '../../../types/models/worksheet';\nimport type { TUserTypes } from '../../ui/types';\nimport type { IWorksheetBehavior } from './worksheet-types';\n\nimport { ASSESSMENT_NODE_TYPES, TRIAL_V3_NODE_TYPES } from '../../sheets/utils/is-v3-worksheet';\n\nexport const getWorksheetBehaviour = ({\n nodeType,\n inClass,\n isLessonV3Enabled,\n isDesmosEnabled = false,\n userType,\n mode,\n worksheetCompleted,\n}: {\n nodeType: TNodeTypes;\n inClass?: boolean;\n isLessonV3Enabled: boolean;\n isDesmosEnabled?: boolean;\n canStartJourney?: boolean;\n userType: TUserTypes;\n mode?: 'resume' | 'review' | 'preview';\n worksheetCompleted?: boolean;\n}): IWorksheetBehavior => {\n const isTrialV3 = TRIAL_V3_NODE_TYPES.includes(nodeType);\n const isAssessment = ASSESSMENT_NODE_TYPES.includes(nodeType);\n const canAttempt = mode === 'resume';\n\n const baseBehavior: IWorksheetBehavior = {\n hints: canAttempt,\n navigationMode: 'OPEN',\n initialQuestion: canAttempt ? 'CURRENT' : 'FIRST',\n maximumAttempts: isAssessment ? -1 : 99999,\n minimumAccuracy: 100,\n teacherValidationEnabled: isLessonV3Enabled || isTrialV3,\n canTeacherValidate: !!inClass && (isLessonV3Enabled || isTrialV3),\n validation: userType === 'STUDENT' && isAssessment ? false : true,\n review: !canAttempt,\n canAttempt: userType === 'STUDENT' ? canAttempt : false,\n canExceedAttempts: true,\n checkButtonLabel: 'Check',\n retryButtonLabel: 'Retry',\n canMarkForReview: false,\n canShowDesmosCalc: isDesmosEnabled,\n canvasEnabled: mode !== 'preview',\n };\n\n switch (nodeType) {\n // LEARNING SHEETS\n case 'LEARNING':\n case 'SAT_MATH_LEARNING':\n case 'SAT_ENGLISH_LEARNING':\n return {\n ...baseBehavior,\n navigationMode: isLessonV3Enabled && canAttempt && !inClass ? 'OPEN' : 'LINEAR',\n };\n\n // RECAP SHEETS\n case 'GENERAL':\n case 'REMEDIAL':\n case 'RECAP':\n case 'SAT_MATH_RECAP':\n return {\n ...baseBehavior,\n maximumAttempts: 1,\n navigationMode: 'LINEAR',\n };\n\n // PRACTICE SHEETS\n case 'EXTRA_PRACTICE':\n case 'TARGET_PRACTICE':\n case 'PRACTICE':\n return { ...baseBehavior, maximumAttempts: 1 };\n\n case 'TURING_PRACTICE':\n return { ...baseBehavior, maximumAttempts: 1 };\n\n //PUZZLE SHEETS\n case 'PUZZLE_CARD':\n return {\n ...baseBehavior,\n navigationMode: 'LINEAR',\n maximumAttempts: -2,\n solutionHidden: true,\n validation: false,\n minimumAccuracy: 0,\n };\n\n case 'PUZZLE_EASY':\n case 'PUZZLE_MEDIUM':\n case 'PUZZLE_HARD':\n return { ...baseBehavior, navigationMode: 'LINEAR' };\n\n // TRIAL SHEETS\n case 'TRIAL_DIAGNOSTIC':\n return { ...baseBehavior, navigationMode: 'ADAPTIVE' };\n\n case 'TRIAL_BASIC':\n case 'TRIAL_INTERMEDIATE':\n case 'TRIAL_ADVANCED':\n return {\n ...baseBehavior,\n navigationMode: 'CURRENT',\n };\n\n // ASSESSMENT SHEETS\n case 'ASSESSMENT':\n case 'CHAPTER_ASSESSMENT':\n case 'DIAGNOSTIC':\n case 'DYNAMIC':\n case 'TURING_ASSESSMENT':\n return {\n ...baseBehavior,\n validation: false,\n minimumAccuracy: 0,\n };\n\n case 'SAT_MATH_ASSESSMENT':\n case 'SAT_ENGLISH_ASSESSMENT':\n return {\n ...baseBehavior,\n validation: false,\n canMarkForReview: true,\n minimumAccuracy: 0,\n canvasEnabled: false,\n };\n\n case 'MASTERY':\n return {\n ...baseBehavior,\n hintsTimer: 90,\n navigationMode: 'LINEAR',\n skippable: true,\n skippableTime: 90,\n validation: false,\n solutionHidden: !worksheetCompleted,\n minimumAccuracy: 0,\n };\n\n // SUBJECTIVE SHEETS\n case 'SUBJECTIVE':\n case 'TURING_SUBJECTIVE':\n return {\n ...baseBehavior,\n maximumAttempts: 1,\n minimumAccuracy: 0,\n validation: false,\n navigationMode: 'LINEAR',\n solutionHidden: !worksheetCompleted,\n };\n\n // REVISION SHEETS\n case 'LEGACY':\n case 'LEVEL2':\n case 'LEVEL3':\n case 'REVISION':\n return {\n ...baseBehavior,\n maximumAttempts: 2,\n canExceedAttempts: false,\n };\n\n default:\n return {\n ...baseBehavior,\n maximumAttempts: 1,\n navigationMode: 'LINEAR',\n };\n }\n\n return baseBehavior;\n};\n"],"names":["getWorksheetBehaviour","nodeType","inClass","isLessonV3Enabled","isDesmosEnabled","userType","mode","worksheetCompleted","isTrialV3","TRIAL_V3_NODE_TYPES","isAssessment","ASSESSMENT_NODE_TYPES","canAttempt","baseBehavior"],"mappings":"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"}
1
+ {"version":3,"file":"worksheet-behavior-helper.js","sources":["../../../../src/features/worksheet/worksheet/worksheet-behavior-helper.ts"],"sourcesContent":["import type { TNodeTypes } from '../../../types/models/worksheet';\nimport type { TUserTypes } from '../../ui/types';\nimport type { IWorksheetBehavior } from './worksheet-types';\n\nimport { ASSESSMENT_NODE_TYPES, TRIAL_V3_NODE_TYPES } from '../../sheets/utils/is-v3-worksheet';\n\nexport const getWorksheetBehaviour = ({\n nodeType,\n inClass,\n isLessonV3Enabled,\n isDesmosEnabled = false,\n userType,\n mode,\n worksheetCompleted,\n}: {\n nodeType: TNodeTypes;\n inClass?: boolean;\n isLessonV3Enabled: boolean;\n isDesmosEnabled?: boolean;\n canStartJourney?: boolean;\n userType: TUserTypes;\n mode?: 'resume' | 'review' | 'preview';\n worksheetCompleted?: boolean;\n}): IWorksheetBehavior => {\n const isTrialV3 = TRIAL_V3_NODE_TYPES.includes(nodeType);\n const isAssessment = ASSESSMENT_NODE_TYPES.includes(nodeType);\n const canAttempt = mode === 'resume';\n\n const baseBehavior: IWorksheetBehavior = {\n hints: canAttempt,\n navigationMode: 'OPEN',\n initialQuestion: canAttempt ? 'CURRENT' : 'FIRST',\n maximumAttempts: isAssessment ? -1 : 99999,\n minimumAccuracy: 100,\n teacherValidationEnabled: isLessonV3Enabled || isTrialV3,\n canTeacherValidate: !!inClass && (isLessonV3Enabled || isTrialV3),\n validation: userType === 'STUDENT' && isAssessment ? false : true,\n review: !canAttempt,\n canAttempt: userType === 'STUDENT' ? canAttempt : false,\n canExceedAttempts: true,\n checkButtonLabel: 'Check',\n retryButtonLabel: 'Retry',\n canMarkForReview: false,\n canShowDesmosCalc: isDesmosEnabled,\n canvasEnabled: mode !== 'preview',\n canToggleScribbling: mode !== 'preview',\n };\n\n switch (nodeType) {\n // LEARNING SHEETS\n case 'LEARNING':\n case 'SAT_MATH_LEARNING':\n case 'SAT_ENGLISH_LEARNING':\n return {\n ...baseBehavior,\n navigationMode: isLessonV3Enabled && canAttempt && !inClass ? 'OPEN' : 'LINEAR',\n };\n\n // RECAP SHEETS\n case 'GENERAL':\n case 'REMEDIAL':\n case 'RECAP':\n case 'SAT_MATH_RECAP':\n return {\n ...baseBehavior,\n maximumAttempts: 1,\n navigationMode: 'LINEAR',\n };\n\n // PRACTICE SHEETS\n case 'EXTRA_PRACTICE':\n case 'TARGET_PRACTICE':\n case 'PRACTICE':\n return { ...baseBehavior, maximumAttempts: 1 };\n\n case 'TURING_PRACTICE':\n return { ...baseBehavior, maximumAttempts: 1 };\n\n //PUZZLE SHEETS\n case 'PUZZLE_CARD':\n return {\n ...baseBehavior,\n navigationMode: 'LINEAR',\n maximumAttempts: -2,\n solutionHidden: true,\n validation: false,\n minimumAccuracy: 0,\n };\n\n case 'PUZZLE_EASY':\n case 'PUZZLE_MEDIUM':\n case 'PUZZLE_HARD':\n return { ...baseBehavior, navigationMode: 'LINEAR' };\n\n // TRIAL SHEETS\n case 'TRIAL_DIAGNOSTIC':\n return { ...baseBehavior, navigationMode: 'ADAPTIVE' };\n\n case 'TRIAL_BASIC':\n case 'TRIAL_INTERMEDIATE':\n case 'TRIAL_ADVANCED':\n return {\n ...baseBehavior,\n navigationMode: 'CURRENT',\n };\n\n // ASSESSMENT SHEETS\n case 'ASSESSMENT':\n case 'CHAPTER_ASSESSMENT':\n case 'DIAGNOSTIC':\n case 'DYNAMIC':\n case 'TURING_ASSESSMENT':\n return {\n ...baseBehavior,\n validation: false,\n minimumAccuracy: 0,\n };\n\n case 'SAT_MATH_ASSESSMENT':\n case 'SAT_ENGLISH_ASSESSMENT':\n return {\n ...baseBehavior,\n validation: false,\n canMarkForReview: true,\n minimumAccuracy: 0,\n canvasEnabled: false,\n };\n\n case 'MASTERY':\n return {\n ...baseBehavior,\n hintsTimer: 90,\n navigationMode: 'LINEAR',\n skippable: true,\n skippableTime: 90,\n validation: false,\n solutionHidden: !worksheetCompleted,\n minimumAccuracy: 0,\n canToggleScribbling: userType === 'TEACHER' ? worksheetCompleted : true,\n };\n\n // SUBJECTIVE SHEETS\n case 'SUBJECTIVE':\n case 'TURING_SUBJECTIVE':\n return {\n ...baseBehavior,\n maximumAttempts: 1,\n minimumAccuracy: 0,\n validation: false,\n navigationMode: 'LINEAR',\n solutionHidden: !worksheetCompleted,\n };\n\n // REVISION SHEETS\n case 'LEGACY':\n case 'LEVEL2':\n case 'LEVEL3':\n case 'REVISION':\n return {\n ...baseBehavior,\n maximumAttempts: 2,\n canExceedAttempts: false,\n };\n\n default:\n return {\n ...baseBehavior,\n maximumAttempts: 1,\n navigationMode: 'LINEAR',\n };\n }\n\n return baseBehavior;\n};\n"],"names":["getWorksheetBehaviour","nodeType","inClass","isLessonV3Enabled","isDesmosEnabled","userType","mode","worksheetCompleted","isTrialV3","TRIAL_V3_NODE_TYPES","isAssessment","ASSESSMENT_NODE_TYPES","canAttempt","baseBehavior"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"worksheet-types.js","sources":["../../../../src/features/worksheet/worksheet/worksheet-types.ts"],"sourcesContent":["import type { TNodeTypes } from '../../../types/models/worksheet';\nimport type { IActionData, TPublish, TSubscribe } from '../../cue-canvas/types/cue-canvas';\nimport type { TPublishMouseMove, TSubscribeMouseMove } from '../../pointer-sync/pointer-types';\nimport type { TColorNames, THueNames, TUserTypes } from '../../ui/types';\nimport type { IFile } from './worksheet-question/subjective-review';\nimport type { MutableRefObject, ReactElement } from 'react';\n\nexport enum QUESTION_TAGS {\n TRIAL_TOPIC = 'trial-topic',\n QUESTION_CODE = 'question code',\n}\n\nexport enum QUESTIONS_RATING {\n E = 3,\n S = 2, // Just right\n H = 1,\n}\n\nexport interface ILearnosityError {\n code: number;\n consumerKey: string;\n detail: string;\n errorUI: string;\n msg: string;\n}\n\ninterface ILearnosityQuestionMetadata {\n widget_reference: string;\n sheet_reference: string;\n hints?: string[];\n solution?: string[];\n teacher_tips?: string[];\n valid_response_count: number;\n source: {\n organisation_id: number;\n };\n}\n\nexport type TInstructorStimulus =\n | 'SystemIntro' // lesson v3\n | 'Intro' // lesson v3\n | 'Concept-Intro' // lesson v3\n | 'Instruction' // lesson v3\n | 'Task' // lesson v3\n | 'Try' // trial v3\n | 'Learn' // trial v3\n | 'Apply'; // trial v3\nexport type TItemType =\n | 'overview'\n | 'learning-we-do'\n | 'learning-your-turn'\n | 'learning-explore'\n | 'practice-basic'\n | 'practice-basic-optional'\n | 'practice-regular'\n | 'practice-regular-optional'\n | 'exit-ticket'\n | 'advanced-we-do'\n | 'advanced-your-turn'\n | 'advanced-explore'\n | 'advanced-practice';\n\nexport type TSectionName =\n | 'overview'\n | 'learning'\n | 'practice-basic'\n | 'practice-regular'\n | 'exit-ticket'\n | 'advanced';\n\nexport interface IQuestionValidResponse {\n score: number;\n value: unknown[];\n}\n\nexport interface ISheetNudgeBannerInfo {\n bannerBackgroundColor: TColorNames;\n label: string;\n}\n\nexport interface ILearnosityQuestion {\n response_id: string;\n instructor_stimulus?: TInstructorStimulus;\n metadata: ILearnosityQuestionMetadata;\n instant_feedback?: boolean;\n math_renderer?: string;\n template?: string;\n tokenization?: string;\n numberPad?: string[];\n symbols?: unknown[];\n response_container?: Record<string, unknown>;\n ui_style?: Record<string, unknown>;\n shuffle_options?: boolean;\n // for custom type question validation is undefined.\n validation?: {\n scoring_type?: string;\n unscored?: boolean;\n valid_response?: IQuestionValidResponse;\n alt_responses?: IQuestionValidResponse[];\n penalty?: number;\n min_score_if_attempted?: number;\n };\n is_math?: boolean;\n labels?: Record<string, unknown>;\n line?: Record<string, unknown>;\n points?: string[];\n snap_to_ticks?: boolean;\n ticks?: Record<string, unknown>;\n max_length?: number;\n type:\n | 'hotspot'\n | 'tokenhighlight'\n | 'numberline'\n | 'clozeassociation'\n | 'clozetext'\n | 'association'\n | 'classification'\n | 'clozedropdown'\n | 'clozeformula'\n | 'mcq'\n | 'choicematrix'\n | 'plaintext'\n | 'drawing';\n case_sensitive?: boolean;\n show_copy?: boolean;\n show_cut?: boolean;\n show_paste?: boolean;\n spellcheck?: boolean;\n stimulus?: string;\n stimulus_review?: string;\n stimulus_list?: string[];\n image?: Record<string, unknown>;\n areas?: unknown[];\n area_attributes?: Record<string, unknown>;\n possible_responses?: string[][] | string[];\n duplicate_responses?: boolean;\n response_containers?: unknown[];\n options?: Record<string, unknown>[] | string[];\n feedback_attempts?: number;\n stems?: string[];\n multiple_responses?: boolean;\n}\n\nexport interface ILearnosityItem {\n reference: string;\n questions: ILearnosityQuestion[];\n source: Record<string, unknown>;\n content: string;\n metadata: Record<string, unknown> | unknown[];\n workflow: unknown[];\n response_ids: string[];\n feature_ids: unknown[];\n features: unknown[];\n itemType?: TItemType;\n tags?: string[];\n}\n\nexport interface IWorksheetQuestion extends ILearnosityQuestion {\n item_reference: string;\n item_type?: TItemType;\n section_name?: TSectionName;\n is_optional?: boolean;\n item_tags: string[];\n item_tags_map: Record<string, string>;\n item_number: number;\n item_display_number: number;\n question_number: number;\n total_questions: number;\n}\n\nexport interface ILearnosityQuestionScore {\n score?: number | null;\n max_score: number;\n unscored?: boolean;\n}\n\nexport interface ILearnosityQuestionResponse {\n value: unknown;\n responses?: unknown;\n type: unknown;\n updatedFormat?: boolean;\n wordCount?: number;\n apiVersion: string;\n revision: number;\n feedbackAttemptsCount?: number;\n}\n\nexport interface IAttempt {\n response: ILearnosityQuestionResponse;\n score: ILearnosityQuestionScore;\n}\n\ninterface ITeacherReview {\n reviewComment?: string;\n images?: string[];\n}\nexport interface IWorksheetResponse {\n widgetReference: string;\n itemReference: string;\n itemPosition: number; // 0 based\n questionPosition: number; // 0 based\n isOkayTypeQuestion: boolean;\n response?: ILearnosityQuestionResponse;\n simState?: Record<string, unknown>;\n score?: ILearnosityQuestionScore;\n responseEdited?: boolean;\n hintsUsed?: number;\n markedForReview?: boolean;\n attemptsHistory?: IAttempt[];\n validatedByTeacher?: boolean;\n submittedByStudent?: boolean;\n assignStatus?: 'assigned' | 'skipped';\n rating?: number;\n skipped?: boolean;\n doubtResolved?: boolean;\n teacherReview?: ITeacherReview;\n tags?: Record<string, string>;\n timeSpent?: number;\n}\n\ntype TMathRenderer = 'mathjax' | 'mathquill';\nexport interface ILearnosity {\n ready: () => void;\n questions: () => Record<string, unknown>;\n question: (responseId: string) =>\n | {\n enable: () => boolean;\n disable: () => boolean;\n getQuestion: () => ILearnosityQuestion;\n getMetadata: () => ILearnosityQuestionMetadata;\n getResponse: () => ILearnosityQuestionResponse;\n getScore: (\n callback?: (score: ILearnosityQuestionScore | null) => void,\n ) => ILearnosityQuestionScore;\n validate: (\n options?: { showCorrectAnswers?: boolean; feedbackAttempts?: boolean },\n callback?: () => void,\n ) => void;\n resetValidationUI: () => void;\n on: (eventName: 'changed', callback: () => void) => void;\n off: (eventName: 'changed', callback?: () => void) => void;\n }\n | undefined;\n append: (toAppend: {\n questions: ILearnosityQuestion[];\n responses?: Record<string, unknown>;\n }) => void;\n appendQuestion: (toAppend: {\n questions: ILearnosityQuestion[];\n responses?: Record<string, unknown>;\n }) => void;\n reset: () => void;\n renderMath: (renderer: TMathRenderer) => void;\n}\n\nexport interface IWorksheetBehavior {\n /**\n * If true, Opens the worksheet in resume mode.\n * - If false, Opens the worksheet in review mode.\n */\n canAttempt: boolean;\n /**\n * If true, the user can mark the question for review. Depreacte this\n */\n canMarkForReview: boolean;\n /**\n * The mode of navigation for the worksheet.\n * - `OPEN` mode allows the user to navigate to any question in the worksheet.\n * - `LINEAR` mode allows the user to navigate to the next question only.\n * - `ADAPTIVE` mode allows the user to navigate future questions based on the rating of the current question.\n * - `CURRENT` mode allows the user to navigate to the current question only. Back and forth not allowed.\n */\n navigationMode: 'OPEN' | 'LINEAR' | 'ADAPTIVE' | 'CURRENT';\n /**\n * The initial question to display when the worksheet is loaded.\n * - `FIRST` mode displays the first question in the worksheet.\n * - `CURRENT` mode displays the question that the user was last on.\n */\n initialQuestion: 'FIRST' | 'CURRENT';\n /**\n * If hints are available, on clicking the help button, first availble hint will be shown.\n * Clicking again will show the next hint.\n * If no more hints are available, onHelp will be called.\n */\n hints: boolean;\n /**\n * The time in seconds after which the hints button will be shown.\n */\n hintsTimer?: number; // in seconds\n /**\n * If true, the user can skip the question without attempting it.\n * Skip button will be shown only after the hints are exausted and skipTimer is reached.\n */\n skippable?: boolean;\n /**\n * The time in seconds after which the user can skip the question.\n */\n skippableTime?: number; // in seconds\n /**\n * If true, teacher validation is needed for the question to proceed\n */\n teacherValidationEnabled: boolean;\n /**\n * If worksheet is attempting outside the class setting\n * This needs teacherValidationEnabled to be true\n * TODO-ANTIL: Accept only validation which can be 'system' or 'teacher' or undefined\n */\n canTeacherValidate: boolean;\n /**\n * If true, questions will be validated and feedback will be shown.\n */\n validation: boolean;\n /**\n * If true, solution wont be shown to the user.\n */\n solutionHidden?: boolean;\n /**\n * If true, questions will be validated and feedback will be shown along with the correct answer.\n */\n review: boolean;\n /**\n * The maximum number of attempts allowed for each question.\n * 0 means unlimited attempts.\n * -1 means attempts will not be validated, hence not pushed to attempt history.\n * -2 means the sheet is a puzzle sheet\n * After reaching the maximum number of attempts, the user cannot attempt the question anymore.\n * If maxAtttmpts reached and canExceedAttempts is true, the user can still attempt the question\n * , also user will have the option to move to next question\n */\n maximumAttempts: number;\n /**\n * If true, the user can exceed the maximum number of attempts.\n */\n canExceedAttempts: boolean;\n /**\n * If the worksheet minimumAccuracy is not met, on clicking the final submit button, onMinimumAccuracyNotMet will be called.\n */\n minimumAccuracy: number;\n /**\n * Label for the check button\n * For example,\n * - \"Check\" for Checking the answer\n * - \"Submit\" for Submitting the answer when doing assessment\n */\n checkButtonLabel: string;\n /**\n * If attempt is incorrect, we show retry button, this is the label for the retry button\n * For example,\n * - 'Try Again' for retrying the question\n */\n retryButtonLabel: string;\n /**\n * If true show demos calculator https://www.desmos.com/calculator\n */\n canShowDesmosCalc: boolean;\n\n // If true, canvas is enabled and user can use canvas to scribble on the worksheet by toggling the scribble button\n canvasEnabled?: boolean;\n}\n\nexport type TWORKSHHET_QUESTION_MEDIA_TYPE = 'SIMULATION' | 'VIDEO' | 'AUDIO';\n\nexport interface IWorksheetCallbackProps {\n onResponseChange?: (options: {\n responseId: string;\n response: IWorksheetResponse;\n isNewAttempt: boolean;\n question: IWorksheetQuestion;\n }) => void;\n onBulkResponsesChange?: (responses: Record<string, IWorksheetResponse>) => void;\n onResponsesChange?: (responses: Record<string, IWorksheetResponse>) => void;\n onMediaStateChange?: (\n question: IWorksheetQuestion,\n mediaType: TWORKSHHET_QUESTION_MEDIA_TYPE,\n mediaState: Record<string, unknown>,\n ) => void;\n onTeacherValidation?: (questionId: string, rating?: keyof typeof QUESTIONS_RATING) => void;\n onOptionalItemAssignment?: (itemType: TItemType) => void;\n onOptionalItemSkip?: (itemType: TItemType) => void;\n onHelp?: (options: { questionId: string; questionNumber: string }) => void;\n onMinimumAccuracyNotMet?: (accuracy: number) => void;\n onExitTicketStart?: () => void;\n onExitTicketSubmit?: () => void;\n onSubmit?: (responses: Record<string, IWorksheetResponse>) => void;\n onUnassign?: () => void;\n onReview?: () => void;\n loggerRef: MutableRefObject<(eventName: string, data?: Record<string, unknown>) => void>;\n}\n\nexport interface ICueCanvasCallbackProps {\n onPublishStrokes?: TPublish;\n onReceiveStrokes?: TSubscribe;\n}\n\nexport interface ICueCanvasProps {\n initialStrokesData?: Record<string, IActionData[]>;\n canToggleScribbling?: boolean;\n}\n\nexport interface IPointerSyncCallbackProps {\n onPublishMouseMove?: TPublishMouseMove;\n onSubscribeMouseMove?: TSubscribeMouseMove;\n}\n\nexport interface IWorksheetLayout {\n containerStyle: 'none' | 'card';\n navigationBar: 'none' | 'top' | 'bottom';\n actionBar: 'none' | 'bottom';\n containerWidth: string;\n topOffset: number; // Offset from the top of the screen, for eg: height of the header\n questionsScrollable: boolean;\n minQuestionHeight: string | number;\n minSummaryHeight: string | number;\n renderSideBar: boolean;\n showUserPointer?: boolean;\n renderQuestionHeader?: boolean;\n imageHue?: THueNames;\n background?: 'none' | 'paper';\n}\n\nexport interface ISubjectiveSheetProps {\n onAddReviewComment?: (\n responseId: string,\n commentData: {\n score: ILearnosityQuestionScore;\n teacherReview: ITeacherReview;\n },\n ) => void;\n openImagesReviewModal?: (props: IOpenImageReviewModalProps) => void;\n handleReviewSubmit?: () => void;\n isSubmittingReview?: boolean;\n isReviewPending?: boolean;\n}\n\ninterface IBaseWorksheetProps {\n userType: TUserTypes;\n userId: string;\n studentId: string;\n studentName?: string;\n worksheetName: string;\n layout: IWorksheetLayout;\n behavior: IWorksheetBehavior;\n initialResponseId?: string;\n initialItemIndex?: number;\n updatedResponses?: Record<string, IWorksheetResponse>;\n worksheetCompleted: boolean;\n showNudgeBanner?: boolean;\n markedAsCompleted?: boolean;\n onResolveDoubt?: (responseId: string) => void;\n onActiveQuestionChange?: (question: IWorksheetQuestion) => void;\n canResolveDoubt?: boolean;\n onSkip?: (itemIndex: number, widgetIndex: number) => void;\n canShowActionBar?: boolean;\n actionBarRightElement?: ReactElement; // Extra Elements to be rendered in the action bar\n}\n\nexport interface IWorksheetProps\n extends IBaseWorksheetProps,\n IWorksheetCallbackProps,\n ICueCanvasProps,\n ICueCanvasCallbackProps,\n IPointerSyncCallbackProps {\n learnosityActivityRef?: string;\n learnosityItems: ILearnosityItem[];\n learnosityResponses?: Record<string, IWorksheetResponse>;\n learnosity: ILearnosity;\n appendedQuestionIds: string[];\n questionsSignedRequest: string;\n openQuestionFeedbackModal?: (itemRef: string) => void;\n summaryDescription?: ReactElement | null;\n canSubmitWorksheet?: boolean;\n studentId: string;\n attemptId?: string;\n subjectiveProps?: ISubjectiveSheetProps;\n}\n\nexport interface IUpdateImages {\n filteredImages: string[];\n newImages: IFile[];\n}\nexport interface IOpenImageReviewModalProps {\n isReviewed?: boolean;\n disableScoreForm?: boolean;\n imageUrls?: string[];\n filteredImageUrls?: (props: IUpdateImages) => void;\n uploadedImages?: (IFile | string)[];\n image?: string;\n}\n\nexport interface IWorksheetContainerProps\n extends Omit<IBaseWorksheetProps, 'behavior'>,\n IWorksheetCallbackProps,\n ICueCanvasProps,\n ICueCanvasCallbackProps,\n IPointerSyncCallbackProps {\n studentId: string;\n attemptId?: string;\n itemsSignedRequest: string;\n questionsSignedRequest: string;\n onLoaded: () => void;\n onErrored: (error: { code?: number; message: string }) => void;\n onResponsesLoaded?: (responses: Record<string, IWorksheetResponse>) => void;\n openQuestionFeedbackModal?: (itemRef: string) => void;\n summaryDescription?: ReactElement | null;\n canSubmitWorksheet?: boolean;\n subjectiveProps?: ISubjectiveSheetProps;\n inClass?: boolean; // If true, the worksheet is rendered inside class\n isLessonV3Enabled?: boolean; // If true, the worksheet is rendered in lesson v3 mode\n isDesmosEnabled?: boolean; // If true, the worksheet can show desmos calculator\n canStartJourney?: boolean; // If true, the worksheet can start journey\n nodeType: TNodeTypes; // NodeType of the worksheet\n mode: 'resume' | 'review' | 'preview'; // mode of the worksheet\n}\n\nexport interface IWorksheetRef {\n validateQuestion: (\n responseId: string,\n rating?: keyof typeof QUESTIONS_RATING,\n skipRemainingQuestions?: boolean,\n ) => void;\n assignOptionalItems: (itemType: TItemType) => void;\n skipOptionalItems: (itemType: TItemType) => void;\n updateMediaState: (\n responseId: string,\n mediaType: TWORKSHHET_QUESTION_MEDIA_TYPE,\n mediaState: Record<string, unknown>,\n ) => void;\n}\n\ninterface IWorksheetHeaderLayoutArgs {\n isPuzzleWorksheet?: boolean;\n isTestWorksheet?: boolean;\n imageHue?: THueNames;\n}\n\nexport interface IWorksheetHeaderLayoutProps {\n (args: IWorksheetHeaderLayoutArgs): {\n bgColor: TColorNames;\n borderColor?: TColorNames;\n textColor?: TColorNames;\n };\n}\n"],"names":["QUESTION_TAGS","QUESTIONS_RATING"],"mappings":"AAOY,IAAAA,sBAAAA,OACVA,EAAA,cAAc,eACdA,EAAA,gBAAgB,iBAFNA,IAAAA,KAAA,CAAA,CAAA,GAKAC,sBAAAA,OACVA,EAAAA,EAAA,IAAI,CAAJ,IAAA,KACAA,EAAAA,EAAA,IAAI,CAAJ,IAAA,KACAA,EAAAA,EAAA,IAAI,CAAJ,IAAA,KAHUA,IAAAA,KAAA,CAAA,CAAA;"}
1
+ {"version":3,"file":"worksheet-types.js","sources":["../../../../src/features/worksheet/worksheet/worksheet-types.ts"],"sourcesContent":["import type { TNodeTypes } from '../../../types/models/worksheet';\nimport type { IActionData, TPublish, TSubscribe } from '../../cue-canvas/types/cue-canvas';\nimport type { TPublishMouseMove, TSubscribeMouseMove } from '../../pointer-sync/pointer-types';\nimport type { TColorNames, THueNames, TUserTypes } from '../../ui/types';\nimport type { IFile } from './worksheet-question/subjective-review';\nimport type { MutableRefObject, ReactElement } from 'react';\n\nexport enum QUESTION_TAGS {\n TRIAL_TOPIC = 'trial-topic',\n QUESTION_CODE = 'question code',\n}\n\nexport enum QUESTIONS_RATING {\n E = 3,\n S = 2, // Just right\n H = 1,\n}\n\nexport interface ILearnosityError {\n code: number;\n consumerKey: string;\n detail: string;\n errorUI: string;\n msg: string;\n}\n\ninterface ILearnosityQuestionMetadata {\n widget_reference: string;\n sheet_reference: string;\n hints?: string[];\n solution?: string[];\n teacher_tips?: string[];\n valid_response_count: number;\n source: {\n organisation_id: number;\n };\n}\n\nexport type TInstructorStimulus =\n | 'SystemIntro' // lesson v3\n | 'Intro' // lesson v3\n | 'Concept-Intro' // lesson v3\n | 'Instruction' // lesson v3\n | 'Task' // lesson v3\n | 'Try' // trial v3\n | 'Learn' // trial v3\n | 'Apply'; // trial v3\nexport type TItemType =\n | 'overview'\n | 'learning-we-do'\n | 'learning-your-turn'\n | 'learning-explore'\n | 'practice-basic'\n | 'practice-basic-optional'\n | 'practice-regular'\n | 'practice-regular-optional'\n | 'exit-ticket'\n | 'advanced-we-do'\n | 'advanced-your-turn'\n | 'advanced-explore'\n | 'advanced-practice';\n\nexport type TSectionName =\n | 'overview'\n | 'learning'\n | 'practice-basic'\n | 'practice-regular'\n | 'exit-ticket'\n | 'advanced';\n\nexport interface IQuestionValidResponse {\n score: number;\n value: unknown[];\n}\n\nexport interface ISheetNudgeBannerInfo {\n bannerBackgroundColor: TColorNames;\n label: string;\n}\n\nexport interface ILearnosityQuestion {\n response_id: string;\n instructor_stimulus?: TInstructorStimulus;\n metadata: ILearnosityQuestionMetadata;\n instant_feedback?: boolean;\n math_renderer?: string;\n template?: string;\n tokenization?: string;\n numberPad?: string[];\n symbols?: unknown[];\n response_container?: Record<string, unknown>;\n ui_style?: Record<string, unknown>;\n shuffle_options?: boolean;\n // for custom type question validation is undefined.\n validation?: {\n scoring_type?: string;\n unscored?: boolean;\n valid_response?: IQuestionValidResponse;\n alt_responses?: IQuestionValidResponse[];\n penalty?: number;\n min_score_if_attempted?: number;\n };\n is_math?: boolean;\n labels?: Record<string, unknown>;\n line?: Record<string, unknown>;\n points?: string[];\n snap_to_ticks?: boolean;\n ticks?: Record<string, unknown>;\n max_length?: number;\n type:\n | 'hotspot'\n | 'tokenhighlight'\n | 'numberline'\n | 'clozeassociation'\n | 'clozetext'\n | 'association'\n | 'classification'\n | 'clozedropdown'\n | 'clozeformula'\n | 'mcq'\n | 'choicematrix'\n | 'plaintext'\n | 'drawing';\n case_sensitive?: boolean;\n show_copy?: boolean;\n show_cut?: boolean;\n show_paste?: boolean;\n spellcheck?: boolean;\n stimulus?: string;\n stimulus_review?: string;\n stimulus_list?: string[];\n image?: Record<string, unknown>;\n areas?: unknown[];\n area_attributes?: Record<string, unknown>;\n possible_responses?: string[][] | string[];\n duplicate_responses?: boolean;\n response_containers?: unknown[];\n options?: Record<string, unknown>[] | string[];\n feedback_attempts?: number;\n stems?: string[];\n multiple_responses?: boolean;\n}\n\nexport interface ILearnosityItem {\n reference: string;\n questions: ILearnosityQuestion[];\n source: Record<string, unknown>;\n content: string;\n metadata: Record<string, unknown> | unknown[];\n workflow: unknown[];\n response_ids: string[];\n feature_ids: unknown[];\n features: unknown[];\n itemType?: TItemType;\n tags?: string[];\n}\n\nexport interface IWorksheetQuestion extends ILearnosityQuestion {\n item_reference: string;\n item_type?: TItemType;\n section_name?: TSectionName;\n is_optional?: boolean;\n item_tags: string[];\n item_tags_map: Record<string, string>;\n item_number: number;\n item_display_number: number;\n question_number: number;\n total_questions: number;\n}\n\nexport interface ILearnosityQuestionScore {\n score?: number | null;\n max_score: number;\n unscored?: boolean;\n}\n\nexport interface ILearnosityQuestionResponse {\n value: unknown;\n responses?: unknown;\n type: unknown;\n updatedFormat?: boolean;\n wordCount?: number;\n apiVersion: string;\n revision: number;\n feedbackAttemptsCount?: number;\n}\n\nexport interface IAttempt {\n response: ILearnosityQuestionResponse;\n score: ILearnosityQuestionScore;\n}\n\ninterface ITeacherReview {\n reviewComment?: string;\n images?: string[];\n}\nexport interface IWorksheetResponse {\n widgetReference: string;\n itemReference: string;\n itemPosition: number; // 0 based\n questionPosition: number; // 0 based\n isOkayTypeQuestion: boolean;\n response?: ILearnosityQuestionResponse;\n simState?: Record<string, unknown>;\n score?: ILearnosityQuestionScore;\n responseEdited?: boolean;\n hintsUsed?: number;\n markedForReview?: boolean;\n attemptsHistory?: IAttempt[];\n validatedByTeacher?: boolean;\n submittedByStudent?: boolean;\n assignStatus?: 'assigned' | 'skipped';\n rating?: number;\n skipped?: boolean;\n doubtResolved?: boolean;\n teacherReview?: ITeacherReview;\n tags?: Record<string, string>;\n timeSpent?: number;\n}\n\ntype TMathRenderer = 'mathjax' | 'mathquill';\nexport interface ILearnosity {\n ready: () => void;\n questions: () => Record<string, unknown>;\n question: (responseId: string) =>\n | {\n enable: () => boolean;\n disable: () => boolean;\n getQuestion: () => ILearnosityQuestion;\n getMetadata: () => ILearnosityQuestionMetadata;\n getResponse: () => ILearnosityQuestionResponse;\n getScore: (\n callback?: (score: ILearnosityQuestionScore | null) => void,\n ) => ILearnosityQuestionScore;\n validate: (\n options?: { showCorrectAnswers?: boolean; feedbackAttempts?: boolean },\n callback?: () => void,\n ) => void;\n resetValidationUI: () => void;\n on: (eventName: 'changed', callback: () => void) => void;\n off: (eventName: 'changed', callback?: () => void) => void;\n }\n | undefined;\n append: (toAppend: {\n questions: ILearnosityQuestion[];\n responses?: Record<string, unknown>;\n }) => void;\n appendQuestion: (toAppend: {\n questions: ILearnosityQuestion[];\n responses?: Record<string, unknown>;\n }) => void;\n reset: () => void;\n renderMath: (renderer: TMathRenderer) => void;\n}\n\nexport interface IWorksheetBehavior {\n /**\n * If true, Opens the worksheet in resume mode.\n * - If false, Opens the worksheet in review mode.\n */\n canAttempt: boolean;\n /**\n * If true, the user can mark the question for review. Depreacte this\n */\n canMarkForReview: boolean;\n /**\n * The mode of navigation for the worksheet.\n * - `OPEN` mode allows the user to navigate to any question in the worksheet.\n * - `LINEAR` mode allows the user to navigate to the next question only.\n * - `ADAPTIVE` mode allows the user to navigate future questions based on the rating of the current question.\n * - `CURRENT` mode allows the user to navigate to the current question only. Back and forth not allowed.\n */\n navigationMode: 'OPEN' | 'LINEAR' | 'ADAPTIVE' | 'CURRENT';\n /**\n * The initial question to display when the worksheet is loaded.\n * - `FIRST` mode displays the first question in the worksheet.\n * - `CURRENT` mode displays the question that the user was last on.\n */\n initialQuestion: 'FIRST' | 'CURRENT';\n /**\n * If hints are available, on clicking the help button, first availble hint will be shown.\n * Clicking again will show the next hint.\n * If no more hints are available, onHelp will be called.\n */\n hints: boolean;\n /**\n * The time in seconds after which the hints button will be shown.\n */\n hintsTimer?: number; // in seconds\n /**\n * If true, the user can skip the question without attempting it.\n * Skip button will be shown only after the hints are exausted and skipTimer is reached.\n */\n skippable?: boolean;\n /**\n * The time in seconds after which the user can skip the question.\n */\n skippableTime?: number; // in seconds\n /**\n * If true, teacher validation is needed for the question to proceed\n */\n teacherValidationEnabled: boolean;\n /**\n * If worksheet is attempting outside the class setting\n * This needs teacherValidationEnabled to be true\n * TODO-ANTIL: Accept only validation which can be 'system' or 'teacher' or undefined\n */\n canTeacherValidate: boolean;\n /**\n * If true, questions will be validated and feedback will be shown.\n */\n validation: boolean;\n /**\n * If true, solution wont be shown to the user.\n */\n solutionHidden?: boolean;\n /**\n * If true, questions will be validated and feedback will be shown along with the correct answer.\n */\n review: boolean;\n /**\n * The maximum number of attempts allowed for each question.\n * 0 means unlimited attempts.\n * -1 means attempts will not be validated, hence not pushed to attempt history.\n * -2 means the sheet is a puzzle sheet\n * After reaching the maximum number of attempts, the user cannot attempt the question anymore.\n * If maxAtttmpts reached and canExceedAttempts is true, the user can still attempt the question\n * , also user will have the option to move to next question\n */\n maximumAttempts: number;\n /**\n * If true, the user can exceed the maximum number of attempts.\n */\n canExceedAttempts: boolean;\n /**\n * If the worksheet minimumAccuracy is not met, on clicking the final submit button, onMinimumAccuracyNotMet will be called.\n */\n minimumAccuracy: number;\n /**\n * Label for the check button\n * For example,\n * - \"Check\" for Checking the answer\n * - \"Submit\" for Submitting the answer when doing assessment\n */\n checkButtonLabel: string;\n /**\n * If attempt is incorrect, we show retry button, this is the label for the retry button\n * For example,\n * - 'Try Again' for retrying the question\n */\n retryButtonLabel: string;\n /**\n * If true show demos calculator https://www.desmos.com/calculator\n */\n canShowDesmosCalc: boolean;\n\n // If true, canvas is enabled and user can use canvas to scribble on the worksheet by toggling the scribble button\n canvasEnabled?: boolean;\n\n // If true, the user can toggle scribbling on and off. For this canvasEnabled should be true\n canToggleScribbling?: boolean;\n}\n\nexport type TWORKSHHET_QUESTION_MEDIA_TYPE = 'SIMULATION' | 'VIDEO' | 'AUDIO';\n\nexport interface IWorksheetCallbackProps {\n onResponseChange?: (options: {\n responseId: string;\n response: IWorksheetResponse;\n isNewAttempt: boolean;\n question: IWorksheetQuestion;\n }) => void;\n onBulkResponsesChange?: (responses: Record<string, IWorksheetResponse>) => void;\n onResponsesChange?: (responses: Record<string, IWorksheetResponse>) => void;\n onMediaStateChange?: (\n question: IWorksheetQuestion,\n mediaType: TWORKSHHET_QUESTION_MEDIA_TYPE,\n mediaState: Record<string, unknown>,\n ) => void;\n onTeacherValidation?: (questionId: string, rating?: keyof typeof QUESTIONS_RATING) => void;\n onOptionalItemAssignment?: (itemType: TItemType) => void;\n onOptionalItemSkip?: (itemType: TItemType) => void;\n onHelp?: (options: { questionId: string; questionNumber: string }) => void;\n onMinimumAccuracyNotMet?: (accuracy: number) => void;\n onExitTicketStart?: () => void;\n onExitTicketSubmit?: () => void;\n onSubmit?: (responses: Record<string, IWorksheetResponse>) => void;\n loggerRef: MutableRefObject<(eventName: string, data?: Record<string, unknown>) => void>;\n}\n\nexport interface ICueCanvasCallbackProps {\n onPublishStrokes?: TPublish;\n onReceiveStrokes?: TSubscribe;\n}\n\nexport interface ICueCanvasProps {\n initialStrokesData?: Record<string, IActionData[]>;\n}\n\nexport interface IPointerSyncCallbackProps {\n onPublishMouseMove?: TPublishMouseMove;\n onSubscribeMouseMove?: TSubscribeMouseMove;\n}\n\nexport interface IWorksheetLayout {\n containerStyle: 'none' | 'card';\n navigationBar: 'none' | 'top' | 'bottom';\n actionBar: 'none' | 'bottom';\n containerWidth: string;\n topOffset: number; // Offset from the top of the screen, for eg: height of the header\n questionsScrollable: boolean;\n minQuestionHeight: string | number;\n minSummaryHeight: string | number;\n renderSideBar: boolean;\n showUserPointer?: boolean;\n renderQuestionHeader?: boolean;\n imageHue?: THueNames;\n background?: 'none' | 'paper';\n}\n\nexport interface ISubjectiveSheetProps {\n onAddReviewComment?: (\n responseId: string,\n commentData: {\n score: ILearnosityQuestionScore;\n teacherReview: ITeacherReview;\n },\n ) => void;\n openImagesReviewModal?: (props: IOpenImageReviewModalProps) => void;\n handleReviewSubmit?: () => void;\n isSubmittingReview?: boolean;\n isReviewPending?: boolean;\n}\n\ninterface IBaseWorksheetProps {\n userType: TUserTypes;\n userId: string;\n studentId: string;\n studentName?: string;\n worksheetName: string;\n layout: IWorksheetLayout;\n behavior: IWorksheetBehavior;\n initialResponseId?: string;\n initialItemIndex?: number;\n updatedResponses?: Record<string, IWorksheetResponse>;\n worksheetCompleted: boolean;\n showNudgeBanner?: boolean;\n markedAsCompleted?: boolean;\n onResolveDoubt?: (responseId: string) => void;\n onActiveQuestionChange?: (question: IWorksheetQuestion) => void;\n canResolveDoubt?: boolean;\n onSkip?: (itemIndex: number, widgetIndex: number) => void;\n canShowActionBar?: boolean;\n actionBarRightElement?: ReactElement; // Extra Elements to be rendered in the action bar\n}\n\nexport interface IWorksheetProps\n extends IBaseWorksheetProps,\n IWorksheetCallbackProps,\n ICueCanvasProps,\n ICueCanvasCallbackProps,\n IPointerSyncCallbackProps {\n learnosityActivityRef?: string;\n learnosityItems: ILearnosityItem[];\n learnosityResponses?: Record<string, IWorksheetResponse>;\n learnosity: ILearnosity;\n appendedQuestionIds: string[];\n questionsSignedRequest: string;\n openQuestionFeedbackModal?: (itemRef: string) => void;\n summaryDescription?: ReactElement | null;\n canSubmitWorksheet?: boolean;\n studentId: string;\n attemptId?: string;\n subjectiveProps?: ISubjectiveSheetProps;\n}\n\nexport interface IUpdateImages {\n filteredImages: string[];\n newImages: IFile[];\n}\nexport interface IOpenImageReviewModalProps {\n isReviewed?: boolean;\n disableScoreForm?: boolean;\n imageUrls?: string[];\n filteredImageUrls?: (props: IUpdateImages) => void;\n uploadedImages?: (IFile | string)[];\n image?: string;\n}\n\nexport interface IWorksheetContainerProps\n extends Omit<IBaseWorksheetProps, 'behavior'>,\n IWorksheetCallbackProps,\n ICueCanvasProps,\n ICueCanvasCallbackProps,\n IPointerSyncCallbackProps {\n studentId: string;\n attemptId?: string;\n itemsSignedRequest: string;\n questionsSignedRequest: string;\n onLoaded: () => void;\n onErrored: (error: { code?: number; message: string }) => void;\n onResponsesLoaded?: (responses: Record<string, IWorksheetResponse>) => void;\n openQuestionFeedbackModal?: (itemRef: string) => void;\n summaryDescription?: ReactElement | null;\n canSubmitWorksheet?: boolean;\n subjectiveProps?: ISubjectiveSheetProps;\n inClass?: boolean; // If true, the worksheet is rendered inside class\n isLessonV3Enabled?: boolean; // If true, the worksheet is rendered in lesson v3 mode\n isDesmosEnabled?: boolean; // If true, the worksheet can show desmos calculator\n canStartJourney?: boolean; // If true, the worksheet can start journey\n nodeType: TNodeTypes; // NodeType of the worksheet\n mode: 'resume' | 'review' | 'preview'; // mode of the worksheet\n}\n\nexport interface IWorksheetRef {\n validateQuestion: (\n responseId: string,\n rating?: keyof typeof QUESTIONS_RATING,\n skipRemainingQuestions?: boolean,\n ) => void;\n assignOptionalItems: (itemType: TItemType) => void;\n skipOptionalItems: (itemType: TItemType) => void;\n updateMediaState: (\n responseId: string,\n mediaType: TWORKSHHET_QUESTION_MEDIA_TYPE,\n mediaState: Record<string, unknown>,\n ) => void;\n}\n\ninterface IWorksheetHeaderLayoutArgs {\n isPuzzleWorksheet?: boolean;\n isTestWorksheet?: boolean;\n imageHue?: THueNames;\n}\n\nexport interface IWorksheetHeaderLayoutProps {\n (args: IWorksheetHeaderLayoutArgs): {\n bgColor: TColorNames;\n borderColor?: TColorNames;\n textColor?: TColorNames;\n };\n}\n"],"names":["QUESTION_TAGS","QUESTIONS_RATING"],"mappings":"AAOY,IAAAA,sBAAAA,OACVA,EAAA,cAAc,eACdA,EAAA,gBAAgB,iBAFNA,IAAAA,KAAA,CAAA,CAAA,GAKAC,sBAAAA,OACVA,EAAAA,EAAA,IAAI,CAAJ,IAAA,KACAA,EAAAA,EAAA,IAAI,CAAJ,IAAA,KACAA,EAAAA,EAAA,IAAI,CAAJ,IAAA,KAHUA,IAAAA,KAAA,CAAA,CAAA;"}