@cuemath/leap 3.2.29 → 3.2.30-aa0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (25) hide show
  1. package/dist/features/sheets/constants/sheet.js +12 -7
  2. package/dist/features/sheets/constants/sheet.js.map +1 -1
  3. package/dist/features/sheets/utils/is-v3-worksheet.js +17 -0
  4. package/dist/features/sheets/utils/is-v3-worksheet.js.map +1 -1
  5. package/dist/features/worksheet/worksheet/worksheet-behavior-helper.js +141 -0
  6. package/dist/features/worksheet/worksheet/worksheet-behavior-helper.js.map +1 -0
  7. package/dist/features/worksheet/worksheet/worksheet-types.js.map +1 -1
  8. package/dist/features/worksheet/worksheet/worksheet.js +318 -367
  9. package/dist/features/worksheet/worksheet/worksheet.js.map +1 -1
  10. package/dist/index.d.ts +24 -17
  11. package/dist/index.js +40 -38
  12. package/dist/index.js.map +1 -1
  13. package/dist/node_modules/uuid/dist/esm-browser/regex.js +5 -0
  14. package/dist/node_modules/uuid/dist/esm-browser/regex.js.map +1 -0
  15. package/dist/node_modules/uuid/dist/esm-browser/rng.js +2 -3
  16. package/dist/node_modules/uuid/dist/esm-browser/rng.js.map +1 -1
  17. package/dist/node_modules/uuid/dist/esm-browser/stringify.js +10 -6
  18. package/dist/node_modules/uuid/dist/esm-browser/stringify.js.map +1 -1
  19. package/dist/node_modules/uuid/dist/esm-browser/v4.js +9 -12
  20. package/dist/node_modules/uuid/dist/esm-browser/v4.js.map +1 -1
  21. package/dist/node_modules/uuid/dist/esm-browser/validate.js +8 -0
  22. package/dist/node_modules/uuid/dist/esm-browser/validate.js.map +1 -0
  23. package/package.json +1 -1
  24. package/dist/node_modules/uuid/dist/esm-browser/native.js +0 -7
  25. package/dist/node_modules/uuid/dist/esm-browser/native.js.map +0 -1
@@ -1,5 +1,5 @@
1
- import { REWARD_BADGE as I } from "../../../constants/reward-badge.js";
2
- const { TETRA: A, HEXO: S, OCTO: R, DODA: C, CHATVA: N, COSA: _, ASHTA: P, ZODASA: O, DVI: D, EKA: L } = I, U = [A, S, R, C, _], M = [L, D, N, P, O], V = [...U, ...M], E = {
1
+ import { REWARD_BADGE as A } from "../../../constants/reward-badge.js";
2
+ const { TETRA: S, HEXO: I, OCTO: R, DODA: N, CHATVA: C, COSA: _, ASHTA: P, ZODASA: O, DVI: D, EKA: L } = A, U = [S, I, R, N, _], M = [L, D, C, P, O], V = [...U, ...M], E = {
3
3
  NOT_STARTED: "NOT_STARTED",
4
4
  LOCKED: "LOCKED",
5
5
  FAMILIAR: "FAMILIAR",
@@ -46,7 +46,7 @@ const { TETRA: A, HEXO: S, OCTO: R, DODA: C, CHATVA: N, COSA: _, ASHTA: P, ZODAS
46
46
  PPT_BASIC: "PPT_BASIC",
47
47
  PPT_CONTENT: "PPT_CONTENT",
48
48
  PPT_VIVA: "PPT_VIVA"
49
- }, W = {
49
+ }, B = {
50
50
  ASSESSMENT: "ASSESSMENT",
51
51
  CHAPTER_ASSESSMENT: "CHAPTER_ASSESSMENT",
52
52
  DECK: "DECK",
@@ -85,8 +85,13 @@ const { TETRA: A, HEXO: S, OCTO: R, DODA: C, CHATVA: N, COSA: _, ASHTA: P, ZODAS
85
85
  TARGET_PRACTICE: "TARGET_PRACTICE",
86
86
  MASTERY: "MASTERY",
87
87
  TRIAL_DIAGNOSTIC: "TRIAL_DIAGNOSTIC",
88
- PDF: "PDF"
89
- }, B = {
88
+ PDF: "PDF",
89
+ TRIAL_BASIC: "TRIAL_BASIC",
90
+ TRIAL_INTERMEDIATE: "TRIAL_INTERMEDIATE",
91
+ TRIAL_ADVANCED: "TRIAL_ADVANCED",
92
+ SAT_ENGLISH_ASSESSMENT: "SAT_ENGLISH_ASSESSMENT",
93
+ SAT_MATH_ASSESSMENT: "SAT_MATH_ASSESSMENT"
94
+ }, W = {
90
95
  CORE: "CORE",
91
96
  TESTS: "TESTS",
92
97
  CATCH_UP: "CATCH_UP",
@@ -122,8 +127,8 @@ const { TETRA: A, HEXO: S, OCTO: R, DODA: C, CHATVA: N, COSA: _, ASHTA: P, ZODAS
122
127
  export {
123
128
  H as COMPLETED_SHEET_STATE,
124
129
  Y as NODE_LABELS,
125
- B as NODE_SUB_GROUP,
126
- W as NODE_TYPE,
130
+ W as NODE_SUB_GROUP,
131
+ B as NODE_TYPE,
127
132
  Z as PYTHON_NODE_TYPES,
128
133
  V as REWARDS_LIST,
129
134
  s as SHEET_ACTIONS,
@@ -1 +1 @@
1
- {"version":3,"file":"sheet.js","sources":["../../../../src/features/sheets/constants/sheet.ts"],"sourcesContent":["import type {\n TSheetAttemptLocation,\n TSheetStateProps,\n} from '../sheets-list/sheet-item/sheet-item-types';\n\nimport { REWARD_BADGE } from '../../../constants/reward-badge';\n\nconst { TETRA, HEXO, OCTO, DODA, CHATVA, COSA, ASHTA, ZODASA, DVI, EKA } = REWARD_BADGE;\n\nconst MATH_REWARDS = [TETRA, HEXO, OCTO, DODA, COSA];\n\nconst INSTRUCTION_REWARDS = [EKA, DVI, CHATVA, ASHTA, ZODASA];\n\nconst REWARDS_LIST = [...MATH_REWARDS, ...INSTRUCTION_REWARDS];\n\nconst SHEET_STATE: Record<TSheetStateProps, TSheetStateProps> = {\n NOT_STARTED: 'NOT_STARTED',\n LOCKED: 'LOCKED',\n FAMILIAR: 'FAMILIAR',\n IN_PROGRESS: 'IN_PROGRESS',\n PROFICIENT: 'PROFICIENT',\n MASTERED: 'MASTERED',\n RE_ATTEMPT: 'RE_ATTEMPT',\n COMPLETED: 'COMPLETED',\n WAIT_FOR_REVIEW: 'WAIT_FOR_REVIEW',\n};\n\nconst COMPLETED_SHEET_STATE = [\n SHEET_STATE.FAMILIAR,\n SHEET_STATE.MASTERED,\n SHEET_STATE.PROFICIENT,\n SHEET_STATE.COMPLETED,\n];\n\nconst NODE_LABELS = {\n ASSESSMENT: 'ASSESSMENT',\n CHAPTER_ASSESSMENT: 'ASSESSMENT',\n DIAGNOSTIC: 'READINESS',\n EXTRA_PRACTICE: 'EXTRA PRACTICE',\n LEARNING: 'LEARNING',\n LEVEL2: 'ADVANCED',\n LEVEL3: 'ADVANCED',\n PPT_BASIC: 'PRESENTATION',\n PPT_CONTENT: 'PRESENTATION',\n PPT_VIVA: 'PRESENTATION',\n PRACTICE: 'PRACTICE',\n PUZZLE: 'PUZZLE',\n PYTHON_BASIC: 'CODING ACTIVITY',\n PYTHON_VISUAL: 'CODING ACTIVITY',\n RECAP: 'RECAP',\n REMEDIAL: 'BRUSH UP',\n REVISION: 'REVISION',\n SUBJECTIVE: 'SUBJECTIVE',\n TEST_SERIES: 'TEST SERIES',\n TURING_ASSESSMENT: 'CODING ASSESSMENT',\n TURING_BASIC: 'CODING ACTIVITY',\n TURING_LINK: 'CODING ACTIVITY',\n TURING_PRACTICE: 'CODING PRACTICE',\n TURING_SHARE: 'CODING ACTIVITY',\n TURING_SUBJECTIVE: 'CODING SUBJECTIVE',\n TEST: 'TEST',\n TARGET_PRACTICE: 'TARGET PRACTICE',\n} as const;\n\nconst PYTHON_NODE_TYPES = {\n PPT_BASIC: 'PPT_BASIC',\n PPT_CONTENT: 'PPT_CONTENT',\n PPT_VIVA: 'PPT_VIVA',\n} as const;\n\nconst NODE_TYPE = {\n ASSESSMENT: 'ASSESSMENT',\n CHAPTER_ASSESSMENT: 'CHAPTER_ASSESSMENT',\n DECK: 'DECK',\n DIAGNOSTIC: 'DIAGNOSTIC',\n DYNAMIC: 'DYNAMIC',\n EXTRA_PRACTICE: 'EXTRA_PRACTICE',\n GENERAL: 'GENERAL',\n HIDDEN_BASIC: 'HIDDEN_BASIC',\n LEARNING: 'LEARNING',\n LEGACY: 'LEGACY',\n LEVEL2: 'LEVEL2',\n LEVEL3: 'LEVEL3',\n NOTE: 'NOTE',\n PRACTICE: 'PRACTICE',\n PUZZLE_EASY: 'PUZZLE_EASY',\n PUZZLE_HARD: 'PUZZLE_HARD',\n PUZZLE_MEDIUM: 'PUZZLE_MEDIUM',\n PUZZLE: 'PUZZLE',\n PUZZLE_CARD: 'PUZZLE_CARD',\n PYTHON_BASIC: 'PYTHON_BASIC',\n PYTHON_VISUAL: 'PYTHON_VISUAL',\n RECAP: 'RECAP',\n REMEDIAL: 'REMEDIAL',\n REVISION: 'REVISION',\n SIMULATION: 'SIMULATION',\n SUBJECTIVE: 'SUBJECTIVE',\n TEST_SERIES: 'TEST_SERIES',\n TEST: 'TEST',\n TURING_ASSESSMENT: 'TURING_ASSESSMENT',\n TURING_BASIC: 'TURING_BASIC',\n TURING_LINK: 'TURING_LINK',\n TURING_PRACTICE: 'TURING_PRACTICE',\n TURING_SHARE: 'TURING_SHARE',\n TURING_SUBJECTIVE: 'TURING_SUBJECTIVE',\n VIDEO: 'VIDEO',\n TARGET_PRACTICE: 'TARGET_PRACTICE',\n MASTERY: 'MASTERY',\n TRIAL_DIAGNOSTIC: 'TRIAL_DIAGNOSTIC',\n PDF: 'PDF',\n} as const;\n\nexport const NODE_SUB_GROUP = {\n CORE: 'CORE',\n TESTS: 'TESTS',\n CATCH_UP: 'CATCH_UP',\n STEP_UP: 'STEP_UP',\n PUZZLE: 'PUZZLE',\n PRACTICE: 'PRACTICE',\n} as const;\n\nconst SHEET_ATTEMPT_STATE = {\n COMPLETED: 'COMPLETED',\n IN_PROGRESS: 'IN_PROGRESS',\n IN_REVIEW: 'IN_REVIEW',\n NO_JUSTIFY: 'NO_JUSTIFY',\n REJECTED: 'REJECTED',\n REVIEWED: 'REVIEWED',\n SKIPPED: 'SKIPPED',\n WAIT_FOR_END_REVIEW: 'WAIT_FOR_END_REVIEW',\n WAIT_FOR_REVIEW: 'WAIT_FOR_REVIEW',\n} as const;\n\nconst SHEET_ATTEMPT_LOCATION = {\n INCLASS: 'INCLASS',\n ATHOME: 'ATHOME',\n ANY: 'ANY',\n} as const;\n\nconst SHEET_ACTIONS = {\n START: 'START',\n RESUME: 'RESUME',\n RE_ATTEMPT: 'RE_ATTEMPT',\n} as const;\n\nconst SHEET_ATTEMPT_LOCATION_MAP: Record<TSheetAttemptLocation, string> = {\n [SHEET_ATTEMPT_LOCATION.INCLASS]: 'CW',\n [SHEET_ATTEMPT_LOCATION.ATHOME]: 'HW',\n [SHEET_ATTEMPT_LOCATION.ANY]: 'CW/HW',\n};\n\nconst SHEET_DATA_TYPE = {\n LESSON: 'lesson',\n SUPPLEMENTARY: 'supplementary-sheets-grouped',\n} as const;\n\nexport {\n COMPLETED_SHEET_STATE,\n NODE_TYPE,\n REWARDS_LIST,\n SHEET_ACTIONS,\n SHEET_ATTEMPT_LOCATION,\n SHEET_ATTEMPT_STATE,\n SHEET_STATE,\n SHEET_ATTEMPT_LOCATION_MAP,\n SHEET_DATA_TYPE,\n NODE_LABELS,\n PYTHON_NODE_TYPES,\n};\n"],"names":["TETRA","HEXO","OCTO","DODA","CHATVA","COSA","ASHTA","ZODASA","DVI","EKA","REWARD_BADGE","MATH_REWARDS","INSTRUCTION_REWARDS","REWARDS_LIST","SHEET_STATE","COMPLETED_SHEET_STATE","NODE_LABELS","PYTHON_NODE_TYPES","NODE_TYPE","NODE_SUB_GROUP","SHEET_ATTEMPT_STATE","SHEET_ATTEMPT_LOCATION","SHEET_ACTIONS","SHEET_ATTEMPT_LOCATION_MAP","SHEET_DATA_TYPE"],"mappings":"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"}
1
+ {"version":3,"file":"sheet.js","sources":["../../../../src/features/sheets/constants/sheet.ts"],"sourcesContent":["import type {\n TSheetAttemptLocation,\n TSheetStateProps,\n} from '../sheets-list/sheet-item/sheet-item-types';\n\nimport { REWARD_BADGE } from '../../../constants/reward-badge';\n\nconst { TETRA, HEXO, OCTO, DODA, CHATVA, COSA, ASHTA, ZODASA, DVI, EKA } = REWARD_BADGE;\n\nconst MATH_REWARDS = [TETRA, HEXO, OCTO, DODA, COSA];\n\nconst INSTRUCTION_REWARDS = [EKA, DVI, CHATVA, ASHTA, ZODASA];\n\nconst REWARDS_LIST = [...MATH_REWARDS, ...INSTRUCTION_REWARDS];\n\nconst SHEET_STATE: Record<TSheetStateProps, TSheetStateProps> = {\n NOT_STARTED: 'NOT_STARTED',\n LOCKED: 'LOCKED',\n FAMILIAR: 'FAMILIAR',\n IN_PROGRESS: 'IN_PROGRESS',\n PROFICIENT: 'PROFICIENT',\n MASTERED: 'MASTERED',\n RE_ATTEMPT: 'RE_ATTEMPT',\n COMPLETED: 'COMPLETED',\n WAIT_FOR_REVIEW: 'WAIT_FOR_REVIEW',\n};\n\nconst COMPLETED_SHEET_STATE = [\n SHEET_STATE.FAMILIAR,\n SHEET_STATE.MASTERED,\n SHEET_STATE.PROFICIENT,\n SHEET_STATE.COMPLETED,\n];\n\nconst NODE_LABELS = {\n ASSESSMENT: 'ASSESSMENT',\n CHAPTER_ASSESSMENT: 'ASSESSMENT',\n DIAGNOSTIC: 'READINESS',\n EXTRA_PRACTICE: 'EXTRA PRACTICE',\n LEARNING: 'LEARNING',\n LEVEL2: 'ADVANCED',\n LEVEL3: 'ADVANCED',\n PPT_BASIC: 'PRESENTATION',\n PPT_CONTENT: 'PRESENTATION',\n PPT_VIVA: 'PRESENTATION',\n PRACTICE: 'PRACTICE',\n PUZZLE: 'PUZZLE',\n PYTHON_BASIC: 'CODING ACTIVITY',\n PYTHON_VISUAL: 'CODING ACTIVITY',\n RECAP: 'RECAP',\n REMEDIAL: 'BRUSH UP',\n REVISION: 'REVISION',\n SUBJECTIVE: 'SUBJECTIVE',\n TEST_SERIES: 'TEST SERIES',\n TURING_ASSESSMENT: 'CODING ASSESSMENT',\n TURING_BASIC: 'CODING ACTIVITY',\n TURING_LINK: 'CODING ACTIVITY',\n TURING_PRACTICE: 'CODING PRACTICE',\n TURING_SHARE: 'CODING ACTIVITY',\n TURING_SUBJECTIVE: 'CODING SUBJECTIVE',\n TEST: 'TEST',\n TARGET_PRACTICE: 'TARGET PRACTICE',\n} as const;\n\nconst PYTHON_NODE_TYPES = {\n PPT_BASIC: 'PPT_BASIC',\n PPT_CONTENT: 'PPT_CONTENT',\n PPT_VIVA: 'PPT_VIVA',\n} as const;\n\nconst NODE_TYPE = {\n ASSESSMENT: 'ASSESSMENT',\n CHAPTER_ASSESSMENT: 'CHAPTER_ASSESSMENT',\n DECK: 'DECK',\n DIAGNOSTIC: 'DIAGNOSTIC',\n DYNAMIC: 'DYNAMIC',\n EXTRA_PRACTICE: 'EXTRA_PRACTICE',\n GENERAL: 'GENERAL',\n HIDDEN_BASIC: 'HIDDEN_BASIC',\n LEARNING: 'LEARNING',\n LEGACY: 'LEGACY',\n LEVEL2: 'LEVEL2',\n LEVEL3: 'LEVEL3',\n NOTE: 'NOTE',\n PRACTICE: 'PRACTICE',\n PUZZLE_EASY: 'PUZZLE_EASY',\n PUZZLE_HARD: 'PUZZLE_HARD',\n PUZZLE_MEDIUM: 'PUZZLE_MEDIUM',\n PUZZLE: 'PUZZLE',\n PUZZLE_CARD: 'PUZZLE_CARD',\n PYTHON_BASIC: 'PYTHON_BASIC',\n PYTHON_VISUAL: 'PYTHON_VISUAL',\n RECAP: 'RECAP',\n REMEDIAL: 'REMEDIAL',\n REVISION: 'REVISION',\n SIMULATION: 'SIMULATION',\n SUBJECTIVE: 'SUBJECTIVE',\n TEST_SERIES: 'TEST_SERIES',\n TEST: 'TEST',\n TURING_ASSESSMENT: 'TURING_ASSESSMENT',\n TURING_BASIC: 'TURING_BASIC',\n TURING_LINK: 'TURING_LINK',\n TURING_PRACTICE: 'TURING_PRACTICE',\n TURING_SHARE: 'TURING_SHARE',\n TURING_SUBJECTIVE: 'TURING_SUBJECTIVE',\n VIDEO: 'VIDEO',\n TARGET_PRACTICE: 'TARGET_PRACTICE',\n MASTERY: 'MASTERY',\n TRIAL_DIAGNOSTIC: 'TRIAL_DIAGNOSTIC',\n PDF: 'PDF',\n TRIAL_BASIC: 'TRIAL_BASIC',\n TRIAL_INTERMEDIATE: 'TRIAL_INTERMEDIATE',\n TRIAL_ADVANCED: 'TRIAL_ADVANCED',\n SAT_ENGLISH_ASSESSMENT: 'SAT_ENGLISH_ASSESSMENT',\n SAT_MATH_ASSESSMENT: 'SAT_MATH_ASSESSMENT',\n} as const;\n\nexport const NODE_SUB_GROUP = {\n CORE: 'CORE',\n TESTS: 'TESTS',\n CATCH_UP: 'CATCH_UP',\n STEP_UP: 'STEP_UP',\n PUZZLE: 'PUZZLE',\n PRACTICE: 'PRACTICE',\n} as const;\n\nconst SHEET_ATTEMPT_STATE = {\n COMPLETED: 'COMPLETED',\n IN_PROGRESS: 'IN_PROGRESS',\n IN_REVIEW: 'IN_REVIEW',\n NO_JUSTIFY: 'NO_JUSTIFY',\n REJECTED: 'REJECTED',\n REVIEWED: 'REVIEWED',\n SKIPPED: 'SKIPPED',\n WAIT_FOR_END_REVIEW: 'WAIT_FOR_END_REVIEW',\n WAIT_FOR_REVIEW: 'WAIT_FOR_REVIEW',\n} as const;\n\nconst SHEET_ATTEMPT_LOCATION = {\n INCLASS: 'INCLASS',\n ATHOME: 'ATHOME',\n ANY: 'ANY',\n} as const;\n\nconst SHEET_ACTIONS = {\n START: 'START',\n RESUME: 'RESUME',\n RE_ATTEMPT: 'RE_ATTEMPT',\n} as const;\n\nconst SHEET_ATTEMPT_LOCATION_MAP: Record<TSheetAttemptLocation, string> = {\n [SHEET_ATTEMPT_LOCATION.INCLASS]: 'CW',\n [SHEET_ATTEMPT_LOCATION.ATHOME]: 'HW',\n [SHEET_ATTEMPT_LOCATION.ANY]: 'CW/HW',\n};\n\nconst SHEET_DATA_TYPE = {\n LESSON: 'lesson',\n SUPPLEMENTARY: 'supplementary-sheets-grouped',\n} as const;\n\nexport {\n COMPLETED_SHEET_STATE,\n NODE_TYPE,\n REWARDS_LIST,\n SHEET_ACTIONS,\n SHEET_ATTEMPT_LOCATION,\n SHEET_ATTEMPT_STATE,\n SHEET_STATE,\n SHEET_ATTEMPT_LOCATION_MAP,\n SHEET_DATA_TYPE,\n NODE_LABELS,\n PYTHON_NODE_TYPES,\n};\n"],"names":["TETRA","HEXO","OCTO","DODA","CHATVA","COSA","ASHTA","ZODASA","DVI","EKA","REWARD_BADGE","MATH_REWARDS","INSTRUCTION_REWARDS","REWARDS_LIST","SHEET_STATE","COMPLETED_SHEET_STATE","NODE_LABELS","PYTHON_NODE_TYPES","NODE_TYPE","NODE_SUB_GROUP","SHEET_ATTEMPT_STATE","SHEET_ATTEMPT_LOCATION","SHEET_ACTIONS","SHEET_ATTEMPT_LOCATION_MAP","SHEET_DATA_TYPE"],"mappings":"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"}
@@ -31,8 +31,25 @@ const S = [
31
31
  E.DIAGNOSTIC,
32
32
  E.SUBJECTIVE,
33
33
  E.TURING_SUBJECTIVE
34
+ ], _ = [
35
+ E.SAT_ENGLISH_ASSESSMENT,
36
+ E.SAT_MATH_ASSESSMENT,
37
+ E.ASSESSMENT,
38
+ E.CHAPTER_ASSESSMENT,
39
+ E.MASTERY,
40
+ E.TURING_ASSESSMENT,
41
+ E.DYNAMIC,
42
+ E.DIAGNOSTIC,
43
+ E.TURING_ASSESSMENT
44
+ ], N = [
45
+ E.TRIAL_BASIC,
46
+ E.TRIAL_INTERMEDIATE,
47
+ E.TRIAL_ADVANCED,
48
+ E.TRIAL_DIAGNOSTIC
34
49
  ];
35
50
  export {
51
+ _ as ASSESSMENT_NODE_TYPES,
52
+ N as TRIAL_V3_NODE_TYPES,
36
53
  T as WORKSHEET_V3_NODE_TYPES
37
54
  };
38
55
  //# sourceMappingURL=is-v3-worksheet.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"is-v3-worksheet.js","sources":["../../../../src/features/sheets/utils/is-v3-worksheet.ts"],"sourcesContent":["import type { TNodeTypeProps } from '../sheets-list/sheet-item/sheet-item-types';\n\nimport { NODE_TYPE } from '../constants/sheet';\n\nconst SAT_V3_NODE_TYPES: TNodeTypeProps[] = [\n 'SAT_MATH_ASSESSMENT',\n 'SAT_ENGLISH_ASSESSMENT',\n 'SAT_MATH_RECAP',\n 'SAT_MATH_LEARNING',\n 'SAT_ENGLISH_LEARNING',\n];\nconst WORKSHEET_V3_NODE_TYPES: TNodeTypeProps[] = [\n ...SAT_V3_NODE_TYPES,\n NODE_TYPE.REMEDIAL,\n NODE_TYPE.LEGACY,\n NODE_TYPE.RECAP,\n NODE_TYPE.GENERAL,\n NODE_TYPE.LEVEL3,\n NODE_TYPE.LEVEL2,\n NODE_TYPE.REVISION,\n NODE_TYPE.TARGET_PRACTICE,\n NODE_TYPE.EXTRA_PRACTICE,\n NODE_TYPE.PRACTICE,\n NODE_TYPE.LEARNING,\n NODE_TYPE.PUZZLE_EASY,\n NODE_TYPE.PUZZLE_MEDIUM,\n NODE_TYPE.PUZZLE_HARD,\n NODE_TYPE.CHAPTER_ASSESSMENT,\n NODE_TYPE.ASSESSMENT,\n NODE_TYPE.MASTERY,\n NODE_TYPE.TRIAL_DIAGNOSTIC,\n NODE_TYPE.DYNAMIC,\n NODE_TYPE.TURING_ASSESSMENT,\n NODE_TYPE.TURING_PRACTICE,\n NODE_TYPE.DIAGNOSTIC,\n NODE_TYPE.SUBJECTIVE,\n NODE_TYPE.TURING_SUBJECTIVE,\n];\n\nexport { WORKSHEET_V3_NODE_TYPES };\n"],"names":["SAT_V3_NODE_TYPES","WORKSHEET_V3_NODE_TYPES","NODE_TYPE"],"mappings":";AAIA,MAAMA,IAAsC;AAAA,EAC1C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GACMC,IAA4C;AAAA,EAChD,GAAGD;AAAA,EACHE,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AACZ;"}
1
+ {"version":3,"file":"is-v3-worksheet.js","sources":["../../../../src/features/sheets/utils/is-v3-worksheet.ts"],"sourcesContent":["import type { TNodeTypes } from '../../../types/models/worksheet';\nimport type { TNodeTypeProps } from '../sheets-list/sheet-item/sheet-item-types';\n\nimport { NODE_TYPE } from '../constants/sheet';\n\nconst SAT_V3_NODE_TYPES: TNodeTypeProps[] = [\n 'SAT_MATH_ASSESSMENT',\n 'SAT_ENGLISH_ASSESSMENT',\n 'SAT_MATH_RECAP',\n 'SAT_MATH_LEARNING',\n 'SAT_ENGLISH_LEARNING',\n];\nconst WORKSHEET_V3_NODE_TYPES: TNodeTypeProps[] = [\n ...SAT_V3_NODE_TYPES,\n NODE_TYPE.REMEDIAL,\n NODE_TYPE.LEGACY,\n NODE_TYPE.RECAP,\n NODE_TYPE.GENERAL,\n NODE_TYPE.LEVEL3,\n NODE_TYPE.LEVEL2,\n NODE_TYPE.REVISION,\n NODE_TYPE.TARGET_PRACTICE,\n NODE_TYPE.EXTRA_PRACTICE,\n NODE_TYPE.PRACTICE,\n NODE_TYPE.LEARNING,\n NODE_TYPE.PUZZLE_EASY,\n NODE_TYPE.PUZZLE_MEDIUM,\n NODE_TYPE.PUZZLE_HARD,\n NODE_TYPE.CHAPTER_ASSESSMENT,\n NODE_TYPE.ASSESSMENT,\n NODE_TYPE.MASTERY,\n NODE_TYPE.TRIAL_DIAGNOSTIC,\n NODE_TYPE.DYNAMIC,\n NODE_TYPE.TURING_ASSESSMENT,\n NODE_TYPE.TURING_PRACTICE,\n NODE_TYPE.DIAGNOSTIC,\n NODE_TYPE.SUBJECTIVE,\n NODE_TYPE.TURING_SUBJECTIVE,\n];\n\nexport const ASSESSMENT_NODE_TYPES: TNodeTypes[] = [\n NODE_TYPE.SAT_ENGLISH_ASSESSMENT,\n NODE_TYPE.SAT_MATH_ASSESSMENT,\n NODE_TYPE.ASSESSMENT,\n NODE_TYPE.CHAPTER_ASSESSMENT,\n NODE_TYPE.MASTERY,\n NODE_TYPE.TURING_ASSESSMENT,\n NODE_TYPE.DYNAMIC,\n NODE_TYPE.DIAGNOSTIC,\n NODE_TYPE.TURING_ASSESSMENT,\n];\n\nexport const TRIAL_V3_NODE_TYPES: TNodeTypes[] = [\n NODE_TYPE.TRIAL_BASIC,\n NODE_TYPE.TRIAL_INTERMEDIATE,\n NODE_TYPE.TRIAL_ADVANCED,\n NODE_TYPE.TRIAL_DIAGNOSTIC,\n];\n\nexport { WORKSHEET_V3_NODE_TYPES };\n"],"names":["SAT_V3_NODE_TYPES","WORKSHEET_V3_NODE_TYPES","NODE_TYPE","ASSESSMENT_NODE_TYPES","TRIAL_V3_NODE_TYPES"],"mappings":";AAKA,MAAMA,IAAsC;AAAA,EAC1C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GACMC,IAA4C;AAAA,EAChD,GAAGD;AAAA,EACHE,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AACZ,GAEaC,IAAsC;AAAA,EACjDD,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AACZ,GAEaE,IAAoC;AAAA,EAC/CF,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AACZ;"}
@@ -0,0 +1,141 @@
1
+ import { TRIAL_V3_NODE_TYPES as r, ASSESSMENT_NODE_TYPES as R } from "../../sheets/utils/is-v3-worksheet.js";
2
+ const I = ({
3
+ nodeType: i,
4
+ inClass: c,
5
+ isLessonV3Enabled: E,
6
+ isDesmosEnabled: n = !1,
7
+ canStartJourney: T = !1,
8
+ canAttempt: e,
9
+ userType: A,
10
+ attemptState: s
11
+ }) => {
12
+ const t = r.includes(i), m = R.includes(i), o = {
13
+ hints: e,
14
+ navigationMode: "OPEN",
15
+ initialQuestion: e ? "CURRENT" : "FIRST",
16
+ maximumAttempts: m ? -1 : 99999,
17
+ minimumAccuracy: 100,
18
+ teacherValidationEnabled: E || t,
19
+ canTeacherValidate: !!c && (E || t),
20
+ validation: !(A === "STUDENT" && m),
21
+ review: !e,
22
+ canAttempt: A === "STUDENT" ? e : !1,
23
+ canExceedAttempts: !0,
24
+ checkButtonLabel: "Check",
25
+ retryButtonLabel: "Retry",
26
+ canMarkForReview: !1,
27
+ canShowDesmosCalc: n,
28
+ canStartJourney: T,
29
+ state: s
30
+ };
31
+ let a = {};
32
+ switch (i) {
33
+ case "LEARNING":
34
+ case "SAT_MATH_LEARNING":
35
+ case "SAT_ENGLISH_LEARNING":
36
+ a = E && e && !c ? { navigationMode: "OPEN" } : { navigationMode: "LINEAR" };
37
+ break;
38
+ case "GENERAL":
39
+ case "REMEDIAL":
40
+ case "RECAP":
41
+ case "SAT_MATH_RECAP":
42
+ a = {
43
+ maximumAttempts: 1,
44
+ navigationMode: "LINEAR"
45
+ };
46
+ break;
47
+ case "EXTRA_PRACTICE":
48
+ case "TARGET_PRACTICE":
49
+ case "PRACTICE":
50
+ a = { maximumAttempts: 1 };
51
+ break;
52
+ case "TURING_PRACTICE":
53
+ a = { maximumAttempts: 1 };
54
+ break;
55
+ case "PUZZLE_CARD":
56
+ a = {
57
+ navigationMode: "CURRENT",
58
+ maximumAttempts: -2,
59
+ solutionHidden: !0,
60
+ validation: !1,
61
+ minimumAccuracy: 0
62
+ };
63
+ break;
64
+ case "PUZZLE_EASY":
65
+ case "PUZZLE_MEDIUM":
66
+ case "PUZZLE_HARD":
67
+ a = { navigationMode: "LINEAR" };
68
+ break;
69
+ case "TRIAL_DIAGNOSTIC":
70
+ a = { navigationMode: "ADAPTIVE" };
71
+ break;
72
+ case "TRIAL_BASIC":
73
+ case "TRIAL_INTERMEDIATE":
74
+ case "TRIAL_ADVANCED":
75
+ a = {
76
+ navigationMode: "CURRENT"
77
+ };
78
+ break;
79
+ case "ASSESSMENT":
80
+ case "CHAPTER_ASSESSMENT":
81
+ case "DIAGNOSTIC":
82
+ case "DYNAMIC":
83
+ case "TURING_ASSESSMENT":
84
+ a = {
85
+ validation: !1,
86
+ minimumAccuracy: 0
87
+ };
88
+ break;
89
+ case "SAT_MATH_ASSESSMENT":
90
+ case "SAT_ENGLISH_ASSESSMENT":
91
+ a = {
92
+ validation: !1,
93
+ canMarkForReview: !0,
94
+ minimumAccuracy: 0
95
+ };
96
+ break;
97
+ case "MASTERY":
98
+ a = {
99
+ hintsTimer: 90,
100
+ navigationMode: "LINEAR",
101
+ skippable: !0,
102
+ skippableTime: 90,
103
+ validation: !1,
104
+ solutionHidden: s !== "COMPLETED",
105
+ minimumAccuracy: 0
106
+ };
107
+ break;
108
+ case "SUBJECTIVE":
109
+ case "TURING_SUBJECTIVE":
110
+ a = {
111
+ maximumAttempts: 1,
112
+ minimumAccuracy: 0,
113
+ validation: !1,
114
+ navigationMode: "LINEAR",
115
+ solutionHidden: s !== "COMPLETED"
116
+ };
117
+ break;
118
+ case "LEGACY":
119
+ case "LEVEL2":
120
+ case "LEVEL3":
121
+ case "REVISION":
122
+ a = {
123
+ maximumAttempts: 2,
124
+ canExceedAttempts: !1
125
+ };
126
+ break;
127
+ default:
128
+ a = {
129
+ maximumAttempts: 1,
130
+ navigationMode: "LINEAR"
131
+ };
132
+ }
133
+ return {
134
+ ...o,
135
+ ...a
136
+ };
137
+ };
138
+ export {
139
+ I as getWorksheetBehaviour
140
+ };
141
+ //# sourceMappingURL=worksheet-behavior-helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worksheet-behavior-helper.js","sources":["../../../../src/features/worksheet/worksheet/worksheet-behavior-helper.ts"],"sourcesContent":["import type { IReviewWorksheetModel, 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 canStartJourney = false,\n canAttempt,\n userType,\n attemptState,\n}: {\n nodeType: TNodeTypes;\n inClass?: boolean;\n isLessonV3Enabled: boolean;\n isDesmosEnabled?: boolean;\n canStartJourney?: boolean;\n canAttempt: boolean;\n userType: TUserTypes;\n attemptState?: IReviewWorksheetModel['attempt']['state'];\n}): IWorksheetBehavior => {\n const isTrialV3 = TRIAL_V3_NODE_TYPES.includes(nodeType);\n const isAssessment = ASSESSMENT_NODE_TYPES.includes(nodeType);\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 canStartJourney: canStartJourney,\n state: attemptState,\n };\n let overrides: Partial<IWorksheetBehavior> = {};\n\n switch (nodeType) {\n // LEARNING SHEETS\n case 'LEARNING':\n case 'SAT_MATH_LEARNING':\n case 'SAT_ENGLISH_LEARNING':\n overrides =\n isLessonV3Enabled && canAttempt && !inClass\n ? { navigationMode: 'OPEN' }\n : { navigationMode: 'LINEAR' };\n break;\n\n // RECAP SHEETS\n case 'GENERAL':\n case 'REMEDIAL':\n case 'RECAP':\n case 'SAT_MATH_RECAP':\n overrides = {\n maximumAttempts: 1,\n navigationMode: 'LINEAR',\n };\n break;\n\n // PRACTICE SHEETS\n case 'EXTRA_PRACTICE':\n case 'TARGET_PRACTICE':\n case 'PRACTICE':\n overrides = { maximumAttempts: 1 };\n break;\n case 'TURING_PRACTICE':\n overrides = { maximumAttempts: 1 };\n break;\n\n //PUZZLE SHEETS\n case 'PUZZLE_CARD':\n overrides = {\n navigationMode: 'CURRENT',\n maximumAttempts: -2,\n solutionHidden: true,\n validation: false,\n minimumAccuracy: 0,\n };\n\n break;\n case 'PUZZLE_EASY':\n case 'PUZZLE_MEDIUM':\n case 'PUZZLE_HARD':\n overrides = { navigationMode: 'LINEAR' };\n break;\n\n // TRIAL SHEETS\n case 'TRIAL_DIAGNOSTIC':\n overrides = { navigationMode: 'ADAPTIVE' };\n break;\n case 'TRIAL_BASIC':\n case 'TRIAL_INTERMEDIATE':\n case 'TRIAL_ADVANCED':\n overrides = {\n navigationMode: 'CURRENT',\n };\n break;\n\n // ASSESSMENT SHEETS\n case 'ASSESSMENT':\n case 'CHAPTER_ASSESSMENT':\n case 'DIAGNOSTIC':\n case 'DYNAMIC':\n case 'TURING_ASSESSMENT':\n overrides = {\n validation: false,\n minimumAccuracy: 0,\n };\n break;\n\n case 'SAT_MATH_ASSESSMENT':\n case 'SAT_ENGLISH_ASSESSMENT':\n overrides = {\n validation: false,\n canMarkForReview: true,\n minimumAccuracy: 0,\n };\n break;\n\n case 'MASTERY':\n overrides = {\n hintsTimer: 90,\n navigationMode: 'LINEAR',\n skippable: true,\n skippableTime: 90,\n validation: false,\n solutionHidden: attemptState !== 'COMPLETED',\n minimumAccuracy: 0,\n };\n break;\n\n // SUBJECTIVE SHEETS\n case 'SUBJECTIVE':\n case 'TURING_SUBJECTIVE':\n overrides = {\n maximumAttempts: 1,\n minimumAccuracy: 0,\n validation: false,\n navigationMode: 'LINEAR',\n solutionHidden: attemptState !== 'COMPLETED',\n };\n break;\n\n // REVISION SHEETS\n case 'LEGACY':\n case 'LEVEL2':\n case 'LEVEL3':\n case 'REVISION':\n overrides = {\n maximumAttempts: 2,\n canExceedAttempts: false,\n };\n break;\n\n default:\n overrides = {\n maximumAttempts: 1,\n navigationMode: 'LINEAR',\n };\n }\n\n return {\n ...baseBehavior,\n ...overrides,\n };\n};\n"],"names":["getWorksheetBehaviour","nodeType","inClass","isLessonV3Enabled","isDesmosEnabled","canStartJourney","canAttempt","userType","attemptState","isTrialV3","TRIAL_V3_NODE_TYPES","isAssessment","ASSESSMENT_NODE_TYPES","baseBehavior","overrides"],"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 { 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.\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 * * In case of puzzle worksheet.\n * * If true,\n * For student we show tooltip with 'Discuss with tutor in class'.\n * For teacher we show review cta.\n * * If false,\n * For student we show tooltip with 'Already solved'.\n * For teacher we don't show review cta.\n */\n canTeacherValidate: boolean;\n /**\n * * In case of puzzle worksheet for teacher\n * * If true,\n * Teacher validation button will be disabled.\n * * If false,\n * Teacher validation button will be active.\n */\n canTeacherValidateDisabled?: boolean;\n /**\n * If true, questions will be validated and feedback will be shown.\n */\n validation: boolean;\n /**\n * If true, questions will be validated and feedback will be shown along with the correct answer.\n */\n solutionHidden?: boolean;\n /**\n * If true, solution will be hidden.\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, the user can unassign the sheet.\n */\n canUnAssign?: boolean;\n /**\n * If true, journey will be started.\n */\n canStartJourney?: 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 isCanvasEnabled: boolean;\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}\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 background?: 'none' | 'paper';\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}\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 IBaseWorksheetProps,\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}\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":"AAMY,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 { TLPARSheetAttemptState } from '../../chapters/lpar-chapter/block-section/sheet-item/sheet-item-type';\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.\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, the user can unassign the sheet.\n */\n canUnAssign?: boolean;\n /**\n * If true, journey will be started.\n */\n canStartJourney?: boolean;\n /**\n * the state of attempt of worksheet\n */\n state?: TLPARSheetAttemptState;\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 isCanvasEnabled: boolean;\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}\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 background?: 'none' | 'paper';\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}\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 IBaseWorksheetProps,\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}\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;"}