@cuemath/leap 3.5.48-gg1 → 3.5.48-j2

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 (249) hide show
  1. package/dist/assets/illustrations/illustrations.js +0 -3
  2. package/dist/assets/illustrations/illustrations.js.map +1 -1
  3. package/dist/assets/line-icons/icons/bulb.js +10 -10
  4. package/dist/assets/line-icons/icons/bulb.js.map +1 -1
  5. package/dist/assets/line-icons/icons/hand.js.map +1 -1
  6. package/dist/assets/line-icons/icons/scribble.js +36 -13
  7. package/dist/assets/line-icons/icons/scribble.js.map +1 -1
  8. package/dist/assets/line-icons/icons/sticker.js +9 -9
  9. package/dist/assets/line-icons/icons/sticker.js.map +1 -1
  10. package/dist/features/cue-canvas/sidebar/puzzles/api/get-puzzles.js.map +1 -1
  11. package/dist/features/journey/hooks/use-home-page-journey/home-page-homeworks-mock.js +6 -6
  12. package/dist/features/journey/hooks/use-home-page-journey/home-page-homeworks-mock.js.map +1 -1
  13. package/dist/features/journey/hooks/use-home-page-journey/recent-chapters-mock.js +2 -2
  14. package/dist/features/journey/hooks/use-home-page-journey/recent-chapters-mock.js.map +1 -1
  15. package/dist/features/journey/mocks/chapter-page-journey-mock-data.js +29 -64
  16. package/dist/features/journey/mocks/chapter-page-journey-mock-data.js.map +1 -1
  17. package/dist/features/milestone/edit/goal-drafts/goal-draft-edit-container.js +2 -2
  18. package/dist/features/milestone/edit/goal-drafts/goal-draft-edit-container.js.map +1 -1
  19. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js +107 -103
  20. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js.map +1 -1
  21. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/goals/goal-action-ctas.js +2 -2
  22. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/goals/goal-action-ctas.js.map +1 -1
  23. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs.js +104 -96
  24. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs.js.map +1 -1
  25. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget.js +134 -115
  26. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget.js.map +1 -1
  27. package/dist/features/milestone/milestone-list-container/milestone-list-container.js +95 -91
  28. package/dist/features/milestone/milestone-list-container/milestone-list-container.js.map +1 -1
  29. package/dist/features/milestone/milestone-resources/resources-assign/added-resource-and-filters.js +92 -74
  30. package/dist/features/milestone/milestone-resources/resources-assign/added-resource-and-filters.js.map +1 -1
  31. package/dist/features/milestone/milestone-resources/resources-assign/comps/filter-item/filter-item.js +28 -25
  32. package/dist/features/milestone/milestone-resources/resources-assign/comps/filter-item/filter-item.js.map +1 -1
  33. package/dist/features/milestone/milestone-resources/resources-assign/resources-assign.js +214 -170
  34. package/dist/features/milestone/milestone-resources/resources-assign/resources-assign.js.map +1 -1
  35. package/dist/features/milestone/milestone-resources/resources-assign/store/action-types.js +20 -0
  36. package/dist/features/milestone/milestone-resources/resources-assign/store/action-types.js.map +1 -0
  37. package/dist/features/milestone/milestone-resources/resources-assign/store/actions.js +55 -0
  38. package/dist/features/milestone/milestone-resources/resources-assign/store/actions.js.map +1 -0
  39. package/dist/features/milestone/milestone-resources/resources-assign/store/initial-state.js +38 -0
  40. package/dist/features/milestone/milestone-resources/resources-assign/store/initial-state.js.map +1 -0
  41. package/dist/features/milestone/milestone-resources/resources-assign/store/reducer.js +58 -0
  42. package/dist/features/milestone/milestone-resources/resources-assign/store/reducer.js.map +1 -0
  43. package/dist/features/milestone/milestone-resources/resources-list/resources-list.js +40 -39
  44. package/dist/features/milestone/milestone-resources/resources-list/resources-list.js.map +1 -1
  45. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-container.js +44 -43
  46. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-container.js.map +1 -1
  47. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/chapter-selection/chapter-selection.js +51 -42
  48. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/chapter-selection/chapter-selection.js.map +1 -1
  49. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/difficulty-and-duration-selection/difficulty-and-duration-selection.js +85 -72
  50. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/difficulty-and-duration-selection/difficulty-and-duration-selection.js.map +1 -1
  51. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/test-preview/test-preview.js +34 -25
  52. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/test-preview/test-preview.js.map +1 -1
  53. package/dist/features/milestone/milestone-tests/tests-creation/tests-creation-types.js +5 -0
  54. package/dist/features/milestone/milestone-tests/tests-creation/tests-creation-types.js.map +1 -0
  55. package/dist/features/milestone/milestone-tests/tests-creation/tests-creation.js +146 -89
  56. package/dist/features/milestone/milestone-tests/tests-creation/tests-creation.js.map +1 -1
  57. package/dist/features/puzzles/app/puzzle-app-view.js +40 -40
  58. package/dist/features/puzzles/app/puzzle-app-view.js.map +1 -1
  59. package/dist/features/trial-session/comps/learning-plan/index.js +268 -83
  60. package/dist/features/trial-session/comps/learning-plan/index.js.map +1 -1
  61. package/dist/features/trial-session/hooks/use-learning-plan-sync.js +29 -0
  62. package/dist/features/trial-session/hooks/use-learning-plan-sync.js.map +1 -0
  63. package/dist/features/trial-session/trial-session-types.js +3 -2
  64. package/dist/features/trial-session/trial-session-types.js.map +1 -1
  65. package/dist/features/ui/tabs/tabs.js +15 -15
  66. package/dist/features/ui/tabs/tabs.js.map +1 -1
  67. package/dist/features/worksheet/learnosity-preloader/learnosity-preloader.js +1 -0
  68. package/dist/features/worksheet/learnosity-preloader/learnosity-preloader.js.map +1 -1
  69. package/dist/features/worksheet/worksheet/constants.js +13 -12
  70. package/dist/features/worksheet/worksheet/constants.js.map +1 -1
  71. package/dist/features/worksheet/worksheet/hooks/use-create-imperative-handle.js +100 -123
  72. package/dist/features/worksheet/worksheet/hooks/use-create-imperative-handle.js.map +1 -1
  73. package/dist/features/worksheet/worksheet/hooks/use-worksheet-store.js +1 -1
  74. package/dist/features/worksheet/worksheet/hooks/use-worksheet-store.js.map +1 -1
  75. package/dist/features/worksheet/worksheet/question-tips.js +100 -0
  76. package/dist/features/worksheet/worksheet/question-tips.js.map +1 -0
  77. package/dist/features/worksheet/worksheet/worksheet-action-bar/worksheet-action-bar.js +109 -40
  78. package/dist/features/worksheet/worksheet/worksheet-action-bar/worksheet-action-bar.js.map +1 -1
  79. package/dist/features/worksheet/worksheet/worksheet-behavior-helper.js +46 -49
  80. package/dist/features/worksheet/worksheet/worksheet-behavior-helper.js.map +1 -1
  81. package/dist/features/worksheet/worksheet/worksheet-calculator/worksheet-calculator.js +4 -4
  82. package/dist/features/worksheet/worksheet/worksheet-calculator/worksheet-calculator.js.map +1 -1
  83. package/dist/features/worksheet/worksheet/worksheet-helpers.js +276 -129
  84. package/dist/features/worksheet/worksheet/worksheet-helpers.js.map +1 -1
  85. package/dist/features/worksheet/worksheet/worksheet-navigation/worksheet-navigation.js +25 -25
  86. package/dist/features/worksheet/worksheet/worksheet-navigation/worksheet-navigation.js.map +1 -1
  87. package/dist/features/worksheet/worksheet/worksheet-provider.js +1 -1
  88. package/dist/features/worksheet/worksheet/worksheet-provider.js.map +1 -1
  89. package/dist/features/worksheet/worksheet/worksheet-question/learnosity-question.js +25 -22
  90. package/dist/features/worksheet/worksheet/worksheet-question/learnosity-question.js.map +1 -1
  91. package/dist/features/worksheet/worksheet/worksheet-question/question-backdrop/question-backdrop-styled.js +20 -26
  92. package/dist/features/worksheet/worksheet/worksheet-question/question-backdrop/question-backdrop-styled.js.map +1 -1
  93. package/dist/features/worksheet/worksheet/worksheet-question/question-backdrop/question-backdrop.js +17 -32
  94. package/dist/features/worksheet/worksheet/worksheet-question/question-backdrop/question-backdrop.js.map +1 -1
  95. package/dist/features/worksheet/worksheet/worksheet-question/subjective-styled.js +22 -17
  96. package/dist/features/worksheet/worksheet/worksheet-question/subjective-styled.js.map +1 -1
  97. package/dist/features/worksheet/worksheet/worksheet-question/system-intros/basic-practice-intro.js +1 -1
  98. package/dist/features/worksheet/worksheet/worksheet-question/system-intros/basic-practice-intro.js.map +1 -1
  99. package/dist/features/worksheet/worksheet/worksheet-question/system-intros/regular-practice-intro.js +2 -2
  100. package/dist/features/worksheet/worksheet/worksheet-question/system-intros/regular-practice-intro.js.map +1 -1
  101. package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question-styled.js +50 -32
  102. package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question-styled.js.map +1 -1
  103. package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question.js +287 -377
  104. package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question.js.map +1 -1
  105. package/dist/features/worksheet/worksheet/worksheet-questions-controller/scribble-switch.js +53 -0
  106. package/dist/features/worksheet/worksheet/worksheet-questions-controller/scribble-switch.js.map +1 -0
  107. package/dist/features/worksheet/worksheet/worksheet-questions-controller/use-handler-callbacks.js +191 -0
  108. package/dist/features/worksheet/worksheet/worksheet-questions-controller/use-handler-callbacks.js.map +1 -0
  109. package/dist/features/worksheet/worksheet/worksheet-questions-controller/worksheet-questions-controller.js +345 -20
  110. package/dist/features/worksheet/worksheet/worksheet-questions-controller/worksheet-questions-controller.js.map +1 -1
  111. package/dist/features/worksheet/worksheet/worksheet-sidebar/navigator.js +20 -33
  112. package/dist/features/worksheet/worksheet/worksheet-sidebar/navigator.js.map +1 -1
  113. package/dist/features/worksheet/worksheet/worksheet-sidebar/question-guide.js +112 -0
  114. package/dist/features/worksheet/worksheet/worksheet-sidebar/question-guide.js.map +1 -0
  115. package/dist/features/worksheet/worksheet/worksheet-sidebar/sidebar.js +61 -0
  116. package/dist/features/worksheet/worksheet/worksheet-sidebar/sidebar.js.map +1 -0
  117. package/dist/features/worksheet/worksheet/worksheet-sidebar/worksheet-sidebar-styled.js +91 -0
  118. package/dist/features/worksheet/worksheet/worksheet-sidebar/worksheet-sidebar-styled.js.map +1 -0
  119. package/dist/features/worksheet/worksheet/worksheet-store.js +289 -0
  120. package/dist/features/worksheet/worksheet/worksheet-store.js.map +1 -0
  121. package/dist/features/worksheet/worksheet/worksheet-styled.js +83 -29
  122. package/dist/features/worksheet/worksheet/worksheet-styled.js.map +1 -1
  123. package/dist/features/worksheet/worksheet/worksheet-summary-controller/worksheet-summary-controller.js +24 -45
  124. package/dist/features/worksheet/worksheet/worksheet-summary-controller/worksheet-summary-controller.js.map +1 -1
  125. package/dist/features/worksheet/worksheet/worksheet-types.js +3 -4
  126. package/dist/features/worksheet/worksheet/worksheet-types.js.map +1 -1
  127. package/dist/features/worksheet/worksheet/worksheet-view.js +99 -88
  128. package/dist/features/worksheet/worksheet/worksheet-view.js.map +1 -1
  129. package/dist/features/worksheet/worksheet/worksheet.js +117 -126
  130. package/dist/features/worksheet/worksheet/worksheet.js.map +1 -1
  131. package/dist/features/worksheet/worksheet-preview/dynamic-worksheet-preview/dynamic-worksheet-preview.js +29 -29
  132. package/dist/features/worksheet/worksheet-preview/dynamic-worksheet-preview/dynamic-worksheet-preview.js.map +1 -1
  133. package/dist/features/worksheet/worksheet-preview/hooks/use-worksheet-layout.js +16 -16
  134. package/dist/features/worksheet/worksheet-preview/hooks/use-worksheet-layout.js.map +1 -1
  135. package/dist/features/worksheet/worksheet-preview/worksheet-preview-view.js +24 -24
  136. package/dist/features/worksheet/worksheet-preview/worksheet-preview-view.js.map +1 -1
  137. package/dist/index.d.ts +129 -68
  138. package/dist/index.js +745 -760
  139. package/dist/index.js.map +1 -1
  140. package/dist/node_modules/decode-uri-component/index.js.map +1 -0
  141. package/dist/node_modules/query-string/base.js +1 -1
  142. package/dist/node_modules/uuid/dist/esm-browser/native.js +7 -0
  143. package/dist/node_modules/uuid/dist/esm-browser/native.js.map +1 -0
  144. package/dist/node_modules/uuid/dist/esm-browser/rng.js +3 -2
  145. package/dist/node_modules/uuid/dist/esm-browser/rng.js.map +1 -1
  146. package/dist/node_modules/uuid/dist/esm-browser/stringify.js +6 -10
  147. package/dist/node_modules/uuid/dist/esm-browser/stringify.js.map +1 -1
  148. package/dist/node_modules/uuid/dist/esm-browser/v4.js +12 -9
  149. package/dist/node_modules/uuid/dist/esm-browser/v4.js.map +1 -1
  150. package/dist/types/models/worksheet.js +1 -2
  151. package/dist/types/models/worksheet.js.map +1 -1
  152. package/package.json +1 -1
  153. package/dist/assets/line-icons/icons/chevron-up.js +0 -28
  154. package/dist/assets/line-icons/icons/chevron-up.js.map +0 -1
  155. package/dist/assets/line-icons/icons/close.js +0 -28
  156. package/dist/assets/line-icons/icons/close.js.map +0 -1
  157. package/dist/assets/line-icons/icons/cursor2.js +0 -24
  158. package/dist/assets/line-icons/icons/cursor2.js.map +0 -1
  159. package/dist/assets/line-icons/icons/hints.js +0 -25
  160. package/dist/assets/line-icons/icons/hints.js.map +0 -1
  161. package/dist/assets/line-icons/icons/question-feedback.js +0 -30
  162. package/dist/assets/line-icons/icons/question-feedback.js.map +0 -1
  163. package/dist/assets/line-icons/icons/teaching-tools.js +0 -40
  164. package/dist/assets/line-icons/icons/teaching-tools.js.map +0 -1
  165. package/dist/assets/line-icons/icons/tval-question.js +0 -32
  166. package/dist/assets/line-icons/icons/tval-question.js.map +0 -1
  167. package/dist/features/trial-session/comps/learning-plan/use-learning-plan-scroll-sync.js +0 -37
  168. package/dist/features/trial-session/comps/learning-plan/use-learning-plan-scroll-sync.js.map +0 -1
  169. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-allow-retry-button-click.js +0 -15
  170. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-allow-retry-button-click.js.map +0 -1
  171. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-back-button-click.js +0 -18
  172. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-back-button-click.js.map +0 -1
  173. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-check-button-click.js +0 -21
  174. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-check-button-click.js.map +0 -1
  175. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-next-button-click.js +0 -19
  176. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-next-button-click.js.map +0 -1
  177. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-ready-button-click.js +0 -34
  178. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-ready-button-click.js.map +0 -1
  179. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-response-change.js +0 -38
  180. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-response-change.js.map +0 -1
  181. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-retry-button-click.js +0 -16
  182. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-retry-button-click.js.map +0 -1
  183. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-skip-button-click.js +0 -35
  184. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-skip-button-click.js.map +0 -1
  185. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-skip-section-button-click.js +0 -12
  186. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-skip-section-button-click.js.map +0 -1
  187. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-start-button-click.js +0 -44
  188. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-start-button-click.js.map +0 -1
  189. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-submit-quiz.js +0 -51
  190. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-submit-quiz.js.map +0 -1
  191. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-validate-button-click.js +0 -19
  192. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-validate-button-click.js.map +0 -1
  193. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-play-validation-audio.js +0 -23
  194. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-play-validation-audio.js.map +0 -1
  195. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-validate-question.js +0 -36
  196. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-validate-question.js.map +0 -1
  197. package/dist/features/worksheet/worksheet/worksheet-questions-controller/student/controller-lesson-v3.js +0 -184
  198. package/dist/features/worksheet/worksheet/worksheet-questions-controller/student/controller-lesson-v3.js.map +0 -1
  199. package/dist/features/worksheet/worksheet/worksheet-questions-controller/student/controller-lesson-v3_1.js +0 -261
  200. package/dist/features/worksheet/worksheet/worksheet-questions-controller/student/controller-lesson-v3_1.js.map +0 -1
  201. package/dist/features/worksheet/worksheet/worksheet-questions-controller/student/controller.js +0 -180
  202. package/dist/features/worksheet/worksheet/worksheet-questions-controller/student/controller.js.map +0 -1
  203. package/dist/features/worksheet/worksheet/worksheet-questions-controller/teacher/controller-lesson-v3.js +0 -77
  204. package/dist/features/worksheet/worksheet/worksheet-questions-controller/teacher/controller-lesson-v3.js.map +0 -1
  205. package/dist/features/worksheet/worksheet/worksheet-questions-controller/teacher/controller-lesson-v3_1.js +0 -103
  206. package/dist/features/worksheet/worksheet/worksheet-questions-controller/teacher/controller-lesson-v3_1.js.map +0 -1
  207. package/dist/features/worksheet/worksheet/worksheet-questions-controller/teacher/controller.js +0 -21
  208. package/dist/features/worksheet/worksheet/worksheet-questions-controller/teacher/controller.js.map +0 -1
  209. package/dist/features/worksheet/worksheet/worksheet-questions-controller/worksheet-questions-controller-view.js +0 -22
  210. package/dist/features/worksheet/worksheet/worksheet-questions-controller/worksheet-questions-controller-view.js.map +0 -1
  211. package/dist/features/worksheet/worksheet/worksheet-questions-tools/questions-toolbar/questions-toolbar-styled.js +0 -49
  212. package/dist/features/worksheet/worksheet/worksheet-questions-tools/questions-toolbar/questions-toolbar-styled.js.map +0 -1
  213. package/dist/features/worksheet/worksheet/worksheet-questions-tools/questions-toolbar/questions-toolbar.js +0 -191
  214. package/dist/features/worksheet/worksheet/worksheet-questions-tools/questions-toolbar/questions-toolbar.js.map +0 -1
  215. package/dist/features/worksheet/worksheet/worksheet-questions-tools/scribble-switch.js +0 -65
  216. package/dist/features/worksheet/worksheet/worksheet-questions-tools/scribble-switch.js.map +0 -1
  217. package/dist/features/worksheet/worksheet/worksheet-questions-tools/worksheet-questions-styled.js +0 -9
  218. package/dist/features/worksheet/worksheet/worksheet-questions-tools/worksheet-questions-styled.js.map +0 -1
  219. package/dist/features/worksheet/worksheet/worksheet-questions-tools/worksheet-questions-tools.js +0 -38
  220. package/dist/features/worksheet/worksheet/worksheet-questions-tools/worksheet-questions-tools.js.map +0 -1
  221. package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-computed-properties.js +0 -73
  222. package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-computed-properties.js.map +0 -1
  223. package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-derived-blocker.js +0 -20
  224. package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-derived-blocker.js.map +0 -1
  225. package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-last-attemptable-question-index.js +0 -69
  226. package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-last-attemptable-question-index.js.map +0 -1
  227. package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-last-unlocked-question-index.js +0 -18
  228. package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-last-unlocked-question-index.js.map +0 -1
  229. package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-merged-response-state.js +0 -19
  230. package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-merged-response-state.js.map +0 -1
  231. package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-questions-from-items.js +0 -138
  232. package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-questions-from-items.js.map +0 -1
  233. package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-renderable-questions.js +0 -9
  234. package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-renderable-questions.js.map +0 -1
  235. package/dist/features/worksheet/worksheet/worksheet-store/worksheet-store.js +0 -230
  236. package/dist/features/worksheet/worksheet/worksheet-store/worksheet-store.js.map +0 -1
  237. package/dist/features/worksheet/worksheet/worksheet-teaching-tools/worksheet-teaching-tools-styled.js +0 -19
  238. package/dist/features/worksheet/worksheet/worksheet-teaching-tools/worksheet-teaching-tools-styled.js.map +0 -1
  239. package/dist/features/worksheet/worksheet/worksheet-teaching-tools/worksheet-teaching-tools.js +0 -72
  240. package/dist/features/worksheet/worksheet/worksheet-teaching-tools/worksheet-teaching-tools.js.map +0 -1
  241. package/dist/node_modules/query-string/node_modules/decode-uri-component/index.js.map +0 -1
  242. package/dist/node_modules/uuid/dist/esm-browser/regex.js +0 -5
  243. package/dist/node_modules/uuid/dist/esm-browser/regex.js.map +0 -1
  244. package/dist/node_modules/uuid/dist/esm-browser/validate.js +0 -8
  245. package/dist/node_modules/uuid/dist/esm-browser/validate.js.map +0 -1
  246. package/dist/static/pattern-cubes.113d8dda.svg +0 -1
  247. package/dist/static/pattern-diamond.a51b202c.svg +0 -1
  248. package/dist/static/pattern-honeycomb.ed7ad26a.svg +0 -1
  249. /package/dist/node_modules/{query-string/node_modules/decode-uri-component → decode-uri-component}/index.js +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"controller-lesson-v3.js","sources":["../../../../../../src/features/worksheet/worksheet/worksheet-questions-controller/student/controller-lesson-v3.tsx"],"sourcesContent":["import { deepEqual } from 'fast-equals';\nimport { memo, useCallback, useEffect, useMemo, type FC } from 'react';\n\nimport Check2Icon from '../../../../../assets/line-icons/icons/check2';\nimport Button from '../../../../ui/buttons/button/button';\nimport IconButton from '../../../../ui/buttons/icon-button/icon-button';\nimport { useWorksheetStore } from '../../hooks/use-worksheet-store';\nimport { type IWorksheetQuestion, type IWorksheetResponse } from '../../worksheet-types';\nimport useHandleCheckButtonClick from '../hooks/use-handle-check-button-click';\nimport useHandleReadyButtonClick from '../hooks/use-handle-ready-button-click';\nimport useHandleResponseChange from '../hooks/use-handle-response-change';\nimport useHandleRetryButtonClick from '../hooks/use-handle-retry-button-click';\nimport useHandleStartButtonClick from '../hooks/use-handle-start-button-click';\nimport useHandleValidateButtonClick from '../hooks/use-handle-validate-button-click';\nimport usePlayValidationAudio from '../hooks/use-play-validation-audio';\nimport type {\n IButtonTypes,\n IWorksheetQuestionsControllerProps,\n} from '../worksheet-questions-controller-types';\n\ninterface IIsPendingTeacherValidation {\n (questions: IWorksheetQuestion[], responses: Record<string, IWorksheetResponse>): boolean;\n}\nconst isPendingTeacherValidation: IIsPendingTeacherValidation = (questions, responses) =>\n questions.some(({ response_id: questionId }) => {\n const { assignStatus, validatedByTeacher } = responses[questionId] ?? {};\n\n return assignStatus === 'skipped' ? false : validatedByTeacher !== true;\n });\n\nconst StudentControllerLessonV3: FC<IWorksheetQuestionsControllerProps> = memo(\n function StudentControllerLessonV3(props) {\n const {\n behavior,\n question,\n questions,\n response,\n responses,\n questionIndex,\n lastUnlockedQuestionIndex,\n learnosity,\n canSubmitWorksheet,\n onSubmit,\n isQuestionAppended,\n } = useWorksheetStore(store => {\n const activeQuestion = store.questions[store.activeQuestionIndex]!;\n\n return {\n behavior: store.behavior,\n question: activeQuestion,\n questions: store.questions,\n response: store.responses[activeQuestion.response_id],\n responses: store.responses,\n questionIndex: store.activeQuestionIndex,\n lastUnlockedQuestionIndex: store.lastUnlockedQuestionIndex,\n learnosity: store.learnosity,\n canSubmitWorksheet: store.canSubmitWorksheet,\n isQuestionAppended: store.appendedQuestionIds.includes(activeQuestion.response_id),\n onSubmit: store.onSubmit,\n };\n });\n const { getTimeSpentOnQuestion } = props;\n const { navigationMode, canAttempt, retryButtonLabel, validation, canTeacherValidate } =\n behavior;\n const { response_id, item_type, type, instructor_stimulus } = question;\n const isQuestionUnlocked = questionIndex <= lastUnlockedQuestionIndex;\n const isSystemIntro = instructor_stimulus === 'SystemIntro';\n const isExitTicket = item_type === 'exit-ticket';\n\n const {\n startButton,\n validateButton,\n validateButtonDisabled,\n checkButton,\n checkButtonDisabled,\n retryButton,\n readyButton,\n submitAttemptButton,\n } = useMemo<IButtonTypes>(() => {\n if (!isQuestionUnlocked || navigationMode === 'ADAPTIVE' || navigationMode === 'CURRENT')\n return {};\n\n const { validatedByTeacher } = response ?? {};\n\n if (!canAttempt)\n return {\n validateButton: validatedByTeacher,\n validateButtonDisabled: true,\n };\n\n if (validatedByTeacher)\n return {\n validateButton: true,\n validateButtonDisabled: true,\n submitAttemptButton:\n canTeacherValidate && canAttempt && canSubmitWorksheet\n ? !isPendingTeacherValidation(questions, responses)\n : false,\n };\n\n if (isSystemIntro)\n return {\n startButton: canTeacherValidate,\n };\n\n if (isExitTicket)\n return {\n readyButton: canTeacherValidate && !response?.submittedByStudent,\n };\n\n if (type !== 'clozetext') {\n if (!response || !response.response || !response.score)\n return {\n checkButton: true,\n checkButtonDisabled: true,\n };\n\n const { responseEdited, score, attemptsHistory } = response;\n\n if (responseEdited) {\n const lastAttemptResponse = attemptsHistory?.slice(-1)[0]?.response;\n\n return {\n checkButton: true,\n checkButtonDisabled: deepEqual(response.response, lastAttemptResponse),\n };\n }\n\n if ((score.score ?? 0) < score.max_score)\n return {\n retryButton: true,\n };\n }\n\n return {};\n }, [\n canTeacherValidate,\n response,\n canAttempt,\n questions,\n responses,\n navigationMode,\n isQuestionUnlocked,\n isSystemIntro,\n type,\n isExitTicket,\n canSubmitWorksheet,\n ]);\n\n const handleSheetSubmitButtonClick = useCallback(() => {\n onSubmit?.(responses, questions);\n }, [onSubmit, responses, questions]);\n\n const playValidationAudio = usePlayValidationAudio();\n const handleResponseChange = useHandleResponseChange({\n getTimeSpentOnQuestion,\n });\n const handleValidate = useCallback(() => {\n playValidationAudio();\n handleResponseChange(true);\n }, [handleResponseChange, playValidationAudio]);\n const handleCheckButtonClick = useHandleCheckButtonClick({\n handleValidate,\n });\n const handleRetryButtonClick = useHandleRetryButtonClick({\n handleResponseChange,\n });\n const handleValidateButtonClick = useHandleValidateButtonClick();\n const handleStartButtonClick = useHandleStartButtonClick();\n const handleReadyButtonClick = useHandleReadyButtonClick();\n\n const questionEnabled = canAttempt && checkButton;\n\n useEffect(() => {\n const questionInstance = isQuestionAppended ? learnosity.question(response_id) : undefined;\n\n if (questionInstance) {\n if (questionEnabled) {\n questionInstance.on('changed', handleResponseChange);\n questionInstance.enable();\n } else {\n questionInstance.disable();\n }\n }\n\n return () => {\n if (questionInstance && questionEnabled) {\n questionInstance.off('changed', handleResponseChange);\n questionInstance.disable();\n }\n };\n }, [\n handleResponseChange,\n isQuestionAppended,\n learnosity,\n questionEnabled,\n response_id,\n validation,\n ]);\n\n return (\n <>\n {retryButton && (\n <Button\n widthX={6}\n renderAs=\"primary\"\n size=\"small\"\n label={retryButtonLabel}\n disabled={!isQuestionAppended}\n onClick={handleRetryButtonClick}\n />\n )}\n {checkButton && (\n <Button\n renderAs=\"primary\"\n size=\"small\"\n label=\"Check\"\n disabled={checkButtonDisabled === true || !isQuestionAppended}\n onClick={handleCheckButtonClick}\n />\n )}\n {startButton && (\n <Button renderAs=\"primary\" size=\"small\" label=\"Start\" onClick={handleStartButtonClick} />\n )}\n {readyButton && (\n <Button renderAs=\"primary\" size=\"small\" label=\"Submit\" onClick={handleReadyButtonClick} />\n )}\n {!submitAttemptButton && validateButton && (\n <IconButton\n renderAs=\"primary\"\n Icon={Check2Icon}\n disabled={validateButtonDisabled}\n analyticsLabel=\"Validate\"\n onClick={handleValidateButtonClick}\n />\n )}\n {submitAttemptButton && (\n <Button\n renderAs=\"primary\"\n size=\"small\"\n label=\"Submit\"\n onClick={handleSheetSubmitButtonClick}\n />\n )}\n </>\n );\n },\n);\n\nexport default StudentControllerLessonV3;\n"],"names":["isPendingTeacherValidation","questions","responses","questionId","assignStatus","validatedByTeacher","StudentControllerLessonV3","memo","props","behavior","question","response","questionIndex","lastUnlockedQuestionIndex","learnosity","canSubmitWorksheet","onSubmit","isQuestionAppended","useWorksheetStore","store","activeQuestion","getTimeSpentOnQuestion","navigationMode","canAttempt","retryButtonLabel","validation","canTeacherValidate","response_id","item_type","type","instructor_stimulus","isQuestionUnlocked","isSystemIntro","isExitTicket","startButton","validateButton","validateButtonDisabled","checkButton","checkButtonDisabled","retryButton","readyButton","submitAttemptButton","useMemo","responseEdited","score","attemptsHistory","lastAttemptResponse","_a","deepEqual","handleSheetSubmitButtonClick","useCallback","playValidationAudio","usePlayValidationAudio","handleResponseChange","useHandleResponseChange","handleValidate","handleCheckButtonClick","useHandleCheckButtonClick","handleRetryButtonClick","useHandleRetryButtonClick","handleValidateButtonClick","useHandleValidateButtonClick","handleStartButtonClick","useHandleStartButtonClick","handleReadyButtonClick","useHandleReadyButtonClick","questionEnabled","useEffect","questionInstance","jsxs","Fragment","jsx","Button","IconButton","Check2Icon"],"mappings":"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"}
@@ -1,261 +0,0 @@
1
- import { jsxs as ue, Fragment as le, jsx as n } from "react/jsx-runtime";
2
- import { deepEqual as ae } from "../../../../../node_modules/fast-equals/dist/esm/index.js";
3
- import { memo as de, useMemo as ce, useState as me, useCallback as H, useEffect as V } from "react";
4
- import R from "../../../../ui/arrow-tooltip/arrow-tooltip.js";
5
- import o from "../../../../ui/buttons/button/button.js";
6
- import { useWorksheetStore as pe } from "../../hooks/use-worksheet-store.js";
7
- import { isTeacherInterventionNeeded as ke } from "../../worksheet-helpers.js";
8
- import he from "../hooks/use-handle-check-button-click.js";
9
- import Be from "../hooks/use-handle-next-button-click.js";
10
- import be from "../hooks/use-handle-response-change.js";
11
- import fe from "../hooks/use-handle-retry-button-click.js";
12
- import ye from "../hooks/use-play-validation-audio.js";
13
- import Ce from "../hooks/use-handle-start-button-click.js";
14
- import xe from "../hooks/use-handle-skip-button-click.js";
15
- import Ae from "../hooks/use-handle-submit-quiz.js";
16
- const Se = (x, B) => B.filter(
17
- (r) => r.item_type === "exit-ticket" && !r.is_non_question
18
- ).every((r) => {
19
- var s;
20
- return ((s = x[r.response_id]) == null ? void 0 : s.validatedByTeacher) === !0;
21
- }), Re = de(
22
- function(B) {
23
- const {
24
- behavior: A,
25
- question: r,
26
- questions: s,
27
- response: e,
28
- responses: a,
29
- learnosity: S,
30
- isQuestionAppended: d,
31
- inClass: b,
32
- isLastQuestion: c,
33
- onSubmit: m,
34
- worksheetCompleted: v
35
- } = pe((t) => {
36
- const i = t.questions[t.activeQuestionIndex];
37
- return {
38
- behavior: t.behavior,
39
- question: i,
40
- questions: t.questions,
41
- response: t.responses[i.response_id],
42
- responses: t.responses,
43
- learnosity: t.learnosity,
44
- isQuestionAppended: t.appendedQuestionIds.includes(i.response_id),
45
- inClass: t.inClass,
46
- isLastQuestion: t.activeQuestionIndex === t.questions.length - 1,
47
- onSubmit: t.onSubmit,
48
- worksheetCompleted: t.worksheetCompleted
49
- };
50
- }), { getTimeSpentOnQuestion: X } = B, {
51
- canAttempt: u,
52
- checkButtonLabel: j,
53
- retryButtonLabel: M,
54
- teacherDiscussionEnabled: Q,
55
- attemptsAfterTeacherInterventionNeeded: T
56
- } = A, { response_id: _, metadata: q, is_non_question: z, item_type: f } = r, y = f === "exit-ticket", {
57
- startButton: F,
58
- checkButton: w,
59
- checkButtonDisabled: G,
60
- retryButton: O,
61
- retryButtonDisabled: I,
62
- nextButton: P,
63
- nextButtonDisabled: W,
64
- nextButtonTooltip: N,
65
- moveButton: J,
66
- skipButton: K,
67
- skipButtonLabel: U,
68
- submitQuizButton: Y,
69
- submitAttemptButton: Z
70
- } = ce(() => {
71
- var D;
72
- if (z)
73
- return {
74
- startButton: u && !(e != null && e.responseGiven)
75
- };
76
- if (y) {
77
- const { submittedByStudent: h } = e || {};
78
- if (!h)
79
- return c ? {
80
- submitQuizButton: !0
81
- } : e != null && e.skipped || e != null && e.response ? {
82
- nextButton: !0
83
- } : {
84
- skipButton: !0,
85
- skipButtonLabel: "Next"
86
- };
87
- if (c && Se(a, s))
88
- return {
89
- submitAttemptButton: !v
90
- };
91
- }
92
- if (!e || !e.response || !e.score)
93
- return {
94
- checkButton: u,
95
- checkButtonDisabled: u
96
- };
97
- const { responseEdited: t, score: i, attemptsHistory: k, retryEnabled: re } = e;
98
- if (t) {
99
- const h = (D = k == null ? void 0 : k.slice(-1)[0]) == null ? void 0 : D.response;
100
- return {
101
- checkButton: u || e.retryEnabled,
102
- checkButtonDisabled: ae(e.response, h)
103
- };
104
- }
105
- if ((i.score ?? 0) < i.max_score)
106
- return ke({
107
- attemptsAfterTeacherInterventionNeeded: f === "exit-ticket" ? 1 : T,
108
- attemptsHistory: k
109
- }) ? b ? {
110
- retryButton: !0,
111
- retryButtonDisabled: re !== !0
112
- } : {
113
- moveButton: !0
114
- } : {
115
- retryButton: u
116
- };
117
- if ((i.score ?? 0) === i.max_score) {
118
- if (b && Q && q.acknowledgements && !(e != null && e.validatedByTeacher))
119
- return {
120
- nextButton: !0,
121
- nextButtonDisabled: !0,
122
- nextButtonTooltip: "Tutor approval is required"
123
- };
124
- if (!c)
125
- return {
126
- nextButton: !0
127
- };
128
- }
129
- return {};
130
- }, [
131
- z,
132
- u,
133
- e,
134
- y,
135
- c,
136
- a,
137
- s,
138
- v,
139
- f,
140
- T,
141
- b,
142
- Q,
143
- q.acknowledgements
144
- ]), g = ye(), l = be({
145
- getTimeSpentOnQuestion: X
146
- }), p = Be(), [E, L] = me(!1), $ = xe({
147
- setSkipped: L
148
- }), ee = H(() => {
149
- g(), l(!0);
150
- }, [l, g]), te = he({
151
- handleValidate: ee
152
- }), ne = fe({
153
- handleResponseChange: l
154
- }), ie = Ce(), oe = Ae(), se = H(() => {
155
- m == null || m(a, s);
156
- }, [m, a, s]), C = w || y && !(e != null && e.submittedByStudent);
157
- return V(() => {
158
- E && (L(!1), p());
159
- }, [p, E]), V(() => {
160
- const t = d ? S.question(_) : void 0;
161
- return t && (C ? (t.on("changed", l), t.enable()) : t.disable()), () => {
162
- t && C && (t.off("changed", l), t.disable());
163
- };
164
- }, [l, d, S, C, _]), /* @__PURE__ */ ue(le, { children: [
165
- P && /* @__PURE__ */ n(
166
- R,
167
- {
168
- position: "top",
169
- renderAs: "primary",
170
- hidden: !N,
171
- tooltipItem: N ?? "",
172
- children: /* @__PURE__ */ n(
173
- o,
174
- {
175
- widthX: 6,
176
- renderAs: "primary",
177
- size: "small",
178
- label: "Next",
179
- onClick: p,
180
- disabled: W === !0
181
- }
182
- )
183
- }
184
- ),
185
- K && /* @__PURE__ */ n(
186
- o,
187
- {
188
- widthX: 6,
189
- renderAs: "primary",
190
- size: "small",
191
- label: U ?? "Skip",
192
- onClick: $
193
- }
194
- ),
195
- J && /* @__PURE__ */ n(
196
- o,
197
- {
198
- widthX: 8.5,
199
- renderAs: "primary",
200
- size: "small",
201
- label: "Move ahead",
202
- onClick: p
203
- }
204
- ),
205
- O && /* @__PURE__ */ n(
206
- R,
207
- {
208
- position: "top",
209
- renderAs: "primary",
210
- hidden: !I,
211
- tooltipItem: "Tutor will help, then enable retry",
212
- children: /* @__PURE__ */ n(
213
- o,
214
- {
215
- widthX: 6,
216
- renderAs: "primary",
217
- size: "small",
218
- label: M,
219
- disabled: !d || I,
220
- onClick: ne
221
- }
222
- )
223
- }
224
- ),
225
- w && /* @__PURE__ */ n(
226
- o,
227
- {
228
- renderAs: "primary",
229
- size: "small",
230
- label: j,
231
- disabled: G === !0 || !d,
232
- onClick: te
233
- }
234
- ),
235
- F && /* @__PURE__ */ n(o, { renderAs: "primary", size: "small", label: "Start", onClick: ie }),
236
- Y && /* @__PURE__ */ n(
237
- o,
238
- {
239
- renderAs: "primary",
240
- size: "small",
241
- label: "Submit",
242
- analyticsLabel: "Submit Quiz",
243
- onClick: oe
244
- }
245
- ),
246
- Z && /* @__PURE__ */ n(
247
- o,
248
- {
249
- renderAs: "primary",
250
- size: "small",
251
- label: "Submit",
252
- onClick: se
253
- }
254
- )
255
- ] });
256
- }
257
- );
258
- export {
259
- Re as default
260
- };
261
- //# sourceMappingURL=controller-lesson-v3_1.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"controller-lesson-v3_1.js","sources":["../../../../../../src/features/worksheet/worksheet/worksheet-questions-controller/student/controller-lesson-v3_1.tsx"],"sourcesContent":["import { deepEqual } from 'fast-equals';\nimport { memo, useCallback, useEffect, useMemo, useState, type FC } from 'react';\n\nimport ArrowTooltip from '../../../../ui/arrow-tooltip/arrow-tooltip';\nimport Button from '../../../../ui/buttons/button/button';\nimport { useWorksheetStore } from '../../hooks/use-worksheet-store';\nimport { isTeacherInterventionNeeded } from '../../worksheet-helpers';\nimport useHandleCheckButtonClick from '../hooks/use-handle-check-button-click';\nimport useHandleNextButtonClick from '../hooks/use-handle-next-button-click';\nimport useHandleResponseChange from '../hooks/use-handle-response-change';\nimport useHandleRetryButtonClick from '../hooks/use-handle-retry-button-click';\nimport usePlayValidationAudio from '../hooks/use-play-validation-audio';\nimport type {\n IButtonTypes,\n IWorksheetQuestionsControllerProps,\n} from '../worksheet-questions-controller-types';\nimport useHandleStartButtonClick from '../hooks/use-handle-start-button-click';\nimport useHandleSkipButtonClick from '../hooks/use-handle-skip-button-click';\nimport useHandleSubmitQuiz from '../hooks/use-handle-submit-quiz';\nimport { type IWorksheetQuestion, type IWorksheetResponse } from '../../worksheet-types';\n\ninterface IAreAllExitTicketQuestionsValidated {\n (responses: Record<string, IWorksheetResponse>, questions: IWorksheetQuestion[]): boolean;\n}\n\nconst areAllExitTicketQuestionsValidated: IAreAllExitTicketQuestionsValidated = (\n responses,\n questions,\n) => {\n const exitTicketQuestions = questions.filter(\n q => q.item_type === 'exit-ticket' && !q.is_non_question,\n );\n\n return exitTicketQuestions.every(q => responses[q.response_id]?.validatedByTeacher === true);\n};\n\nconst StudentControllerLessonV3_1: FC<IWorksheetQuestionsControllerProps> = memo(\n function StudentControllerLessonV3_1(props) {\n const {\n behavior,\n question,\n questions,\n response,\n responses,\n learnosity,\n isQuestionAppended,\n inClass,\n isLastQuestion,\n onSubmit,\n worksheetCompleted,\n } = useWorksheetStore(store => {\n const activeQuestion = store.questions[store.activeQuestionIndex]!;\n\n return {\n behavior: store.behavior,\n question: activeQuestion,\n questions: store.questions,\n response: store.responses[activeQuestion.response_id],\n responses: store.responses,\n learnosity: store.learnosity,\n isQuestionAppended: store.appendedQuestionIds.includes(activeQuestion.response_id),\n inClass: store.inClass,\n isLastQuestion: store.activeQuestionIndex === store.questions.length - 1,\n onSubmit: store.onSubmit,\n worksheetCompleted: store.worksheetCompleted,\n };\n });\n const { getTimeSpentOnQuestion } = props;\n const {\n canAttempt,\n checkButtonLabel,\n retryButtonLabel,\n teacherDiscussionEnabled,\n attemptsAfterTeacherInterventionNeeded,\n } = behavior;\n const { response_id, metadata, is_non_question: isNonQuestion, item_type } = question;\n const isExitTicket = item_type === 'exit-ticket';\n const {\n startButton,\n checkButton,\n checkButtonDisabled,\n retryButton,\n retryButtonDisabled,\n nextButton,\n nextButtonDisabled,\n nextButtonTooltip,\n moveButton,\n skipButton,\n skipButtonLabel,\n submitQuizButton,\n submitAttemptButton,\n } = useMemo<IButtonTypes>(() => {\n if (isNonQuestion)\n return {\n startButton: canAttempt && !response?.responseGiven,\n };\n\n if (isExitTicket) {\n const { submittedByStudent } = response || {};\n\n if (!submittedByStudent) {\n if (isLastQuestion)\n return {\n submitQuizButton: true,\n };\n\n if (response?.skipped || response?.response)\n return {\n nextButton: true,\n };\n\n return {\n skipButton: true,\n skipButtonLabel: 'Next',\n };\n }\n\n if (isLastQuestion && areAllExitTicketQuestionsValidated(responses, questions)) {\n return {\n submitAttemptButton: !worksheetCompleted,\n };\n }\n }\n\n if (!response || !response.response || !response.score)\n return {\n checkButton: canAttempt,\n checkButtonDisabled: canAttempt,\n };\n\n const { responseEdited, score, attemptsHistory, retryEnabled } = response;\n\n if (responseEdited) {\n const lastAttemptResponse = attemptsHistory?.slice(-1)[0]?.response;\n\n return {\n checkButton: canAttempt || response.retryEnabled,\n checkButtonDisabled: deepEqual(response.response, lastAttemptResponse),\n };\n }\n\n if ((score.score ?? 0) < score.max_score) {\n const teacherInterventionNeeded = isTeacherInterventionNeeded({\n attemptsAfterTeacherInterventionNeeded:\n item_type === 'exit-ticket' ? 1 : attemptsAfterTeacherInterventionNeeded,\n attemptsHistory,\n });\n\n if (!teacherInterventionNeeded)\n return {\n retryButton: canAttempt,\n };\n\n if (inClass)\n return {\n retryButton: true,\n retryButtonDisabled: retryEnabled !== true,\n };\n\n return {\n moveButton: true,\n };\n }\n\n if ((score.score ?? 0) === score.max_score) {\n if (\n inClass &&\n teacherDiscussionEnabled &&\n metadata.acknowledgements &&\n !response?.validatedByTeacher\n ) {\n return {\n nextButton: true,\n nextButtonDisabled: true,\n nextButtonTooltip: 'Tutor approval is required',\n };\n }\n\n if (!isLastQuestion)\n return {\n nextButton: true,\n };\n }\n\n return {};\n }, [\n isNonQuestion,\n canAttempt,\n response,\n isExitTicket,\n isLastQuestion,\n responses,\n questions,\n worksheetCompleted,\n item_type,\n attemptsAfterTeacherInterventionNeeded,\n inClass,\n teacherDiscussionEnabled,\n metadata.acknowledgements,\n ]);\n\n const playValidationAudio = usePlayValidationAudio();\n const handleResponseChange = useHandleResponseChange({\n getTimeSpentOnQuestion,\n });\n const handleNextButtonClick = useHandleNextButtonClick();\n const [skipped, setSkipped] = useState(false);\n const handleSkipButtonClick = useHandleSkipButtonClick({\n setSkipped,\n });\n const handleValidate = useCallback(() => {\n playValidationAudio();\n handleResponseChange(true);\n }, [handleResponseChange, playValidationAudio]);\n const handleCheckButtonClick = useHandleCheckButtonClick({\n handleValidate,\n });\n const handleRetryButtonClick = useHandleRetryButtonClick({\n handleResponseChange,\n });\n const handleStartButtonClick = useHandleStartButtonClick();\n const handleSubmitQuiz = useHandleSubmitQuiz();\n const handleSheetSubmitButtonClick = useCallback(() => {\n onSubmit?.(responses, questions);\n }, [onSubmit, responses, questions]);\n\n const questionEnabled = checkButton || (isExitTicket && !response?.submittedByStudent);\n\n useEffect(() => {\n if (skipped) {\n setSkipped(false);\n handleNextButtonClick();\n }\n }, [handleNextButtonClick, skipped]);\n\n useEffect(() => {\n const questionInstance = isQuestionAppended ? learnosity.question(response_id) : undefined;\n\n if (questionInstance) {\n if (questionEnabled) {\n questionInstance.on('changed', handleResponseChange);\n questionInstance.enable();\n } else {\n questionInstance.disable();\n }\n }\n\n return () => {\n if (questionInstance && questionEnabled) {\n questionInstance.off('changed', handleResponseChange);\n questionInstance.disable();\n }\n };\n }, [handleResponseChange, isQuestionAppended, learnosity, questionEnabled, response_id]);\n\n return (\n <>\n {nextButton && (\n <ArrowTooltip\n position=\"top\"\n renderAs=\"primary\"\n hidden={!nextButtonTooltip}\n tooltipItem={nextButtonTooltip ?? ''}\n >\n <Button\n widthX={6}\n renderAs=\"primary\"\n size=\"small\"\n label=\"Next\"\n onClick={handleNextButtonClick}\n disabled={nextButtonDisabled === true}\n />\n </ArrowTooltip>\n )}\n {skipButton && (\n <Button\n widthX={6}\n renderAs=\"primary\"\n size=\"small\"\n label={skipButtonLabel ?? 'Skip'}\n onClick={handleSkipButtonClick}\n />\n )}\n {moveButton && (\n <Button\n widthX={8.5}\n renderAs=\"primary\"\n size=\"small\"\n label=\"Move ahead\"\n onClick={handleNextButtonClick}\n />\n )}\n {retryButton && (\n <ArrowTooltip\n position=\"top\"\n renderAs=\"primary\"\n hidden={!retryButtonDisabled}\n tooltipItem=\"Tutor will help, then enable retry\"\n >\n <Button\n widthX={6}\n renderAs=\"primary\"\n size=\"small\"\n label={retryButtonLabel}\n disabled={!isQuestionAppended || retryButtonDisabled}\n onClick={handleRetryButtonClick}\n />\n </ArrowTooltip>\n )}\n {checkButton && (\n <Button\n renderAs=\"primary\"\n size=\"small\"\n label={checkButtonLabel}\n disabled={checkButtonDisabled === true || !isQuestionAppended}\n onClick={handleCheckButtonClick}\n />\n )}\n {startButton && (\n <Button renderAs=\"primary\" size=\"small\" label=\"Start\" onClick={handleStartButtonClick} />\n )}\n {submitQuizButton && (\n <Button\n renderAs=\"primary\"\n size=\"small\"\n label=\"Submit\"\n analyticsLabel=\"Submit Quiz\"\n onClick={handleSubmitQuiz}\n />\n )}\n {submitAttemptButton && (\n <Button\n renderAs=\"primary\"\n size=\"small\"\n label=\"Submit\"\n onClick={handleSheetSubmitButtonClick}\n />\n )}\n </>\n );\n },\n);\n\nexport default StudentControllerLessonV3_1;\n"],"names":["areAllExitTicketQuestionsValidated","responses","questions","q","_a","StudentControllerLessonV3_1","memo","props","behavior","question","response","learnosity","isQuestionAppended","inClass","isLastQuestion","onSubmit","worksheetCompleted","useWorksheetStore","store","activeQuestion","getTimeSpentOnQuestion","canAttempt","checkButtonLabel","retryButtonLabel","teacherDiscussionEnabled","attemptsAfterTeacherInterventionNeeded","response_id","metadata","isNonQuestion","item_type","isExitTicket","startButton","checkButton","checkButtonDisabled","retryButton","retryButtonDisabled","nextButton","nextButtonDisabled","nextButtonTooltip","moveButton","skipButton","skipButtonLabel","submitQuizButton","submitAttemptButton","useMemo","submittedByStudent","responseEdited","score","attemptsHistory","retryEnabled","lastAttemptResponse","deepEqual","isTeacherInterventionNeeded","playValidationAudio","usePlayValidationAudio","handleResponseChange","useHandleResponseChange","handleNextButtonClick","useHandleNextButtonClick","skipped","setSkipped","useState","handleSkipButtonClick","useHandleSkipButtonClick","handleValidate","useCallback","handleCheckButtonClick","useHandleCheckButtonClick","handleRetryButtonClick","useHandleRetryButtonClick","handleStartButtonClick","useHandleStartButtonClick","handleSubmitQuiz","useHandleSubmitQuiz","handleSheetSubmitButtonClick","questionEnabled","useEffect","questionInstance","jsxs","Fragment","jsx","ArrowTooltip","Button"],"mappings":"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"}
@@ -1,180 +0,0 @@
1
- import { jsxs as P, Fragment as T, jsx as r } from "react/jsx-runtime";
2
- import { deepEqual as W } from "../../../../../node_modules/fast-equals/dist/esm/index.js";
3
- import { memo as G, useState as J, useMemo as K, useCallback as U, useEffect as g } from "react";
4
- import u from "../../../../ui/buttons/button/button.js";
5
- import { useWorksheetStore as Y } from "../../hooks/use-worksheet-store.js";
6
- import Z from "../hooks/use-handle-back-button-click.js";
7
- import $ from "../hooks/use-handle-check-button-click.js";
8
- import ee from "../hooks/use-handle-next-button-click.js";
9
- import te from "../hooks/use-handle-response-change.js";
10
- import ne from "../hooks/use-handle-retry-button-click.js";
11
- import oe from "../hooks/use-handle-skip-button-click.js";
12
- import ie from "../hooks/use-play-validation-audio.js";
13
- const be = G(
14
- function(Q) {
15
- const {
16
- behavior: l,
17
- layout: R,
18
- question: s,
19
- response: t,
20
- isFirstQuestion: E,
21
- learnosity: b,
22
- onSkip: c,
23
- isQuestionAppended: a
24
- } = Y((e) => {
25
- const n = e.questions[e.activeQuestionIndex];
26
- return {
27
- behavior: e.behavior,
28
- layout: e.layout,
29
- question: n,
30
- response: e.responses[n.response_id],
31
- isFirstQuestion: e.activeQuestionIndex === 0,
32
- learnosity: e.learnosity,
33
- onSkip: e.onSkip,
34
- isQuestionAppended: e.appendedQuestionIds.includes(n.response_id)
35
- };
36
- }), { getTimeSpentOnQuestion: z } = Q, {
37
- canAttempt: d,
38
- checkButtonLabel: D,
39
- retryButtonLabel: I,
40
- validation: p,
41
- maximumAttempts: m,
42
- canExceedAttempts: x,
43
- skippable: C
44
- } = l, { response_id: y } = s, [A, S] = J(!1), {
45
- checkButton: _,
46
- checkButtonDisabled: w,
47
- retryButton: k,
48
- nextButton: N,
49
- nextButtonDisabled: X,
50
- skipButton: F
51
- } = K(() => {
52
- var v;
53
- if (!d || m === -2) return {};
54
- if (!p)
55
- return l.navigationMode === "LINEAR" ? {
56
- nextButton: !0,
57
- nextButtonDisabled: t != null && t.skipped ? !1 : !(t != null && t.response),
58
- skipButton: C && !(t != null && t.response) && !(t != null && t.skipped)
59
- } : {
60
- nextButton: !0
61
- };
62
- if (!t || !t.response || !t.score)
63
- return {
64
- checkButton: !0,
65
- checkButtonDisabled: !0
66
- };
67
- const { responseEdited: e, score: n, attemptsHistory: i } = t, h = ((i == null ? void 0 : i.length) ?? 0) >= m;
68
- if (h && !x)
69
- return {
70
- nextButton: !0
71
- };
72
- if (e) {
73
- const O = (v = i == null ? void 0 : i.slice(-1)[0]) == null ? void 0 : v.response;
74
- return {
75
- nextButton: h,
76
- checkButton: !0,
77
- checkButtonDisabled: W(t.response, O)
78
- };
79
- }
80
- return (n.score ?? 0) < n.max_score ? {
81
- nextButton: h,
82
- retryButton: !0
83
- } : (n.score ?? 0) === n.max_score ? {
84
- nextButton: !0
85
- } : {};
86
- }, [
87
- t,
88
- m,
89
- d,
90
- p,
91
- l.navigationMode,
92
- x,
93
- C
94
- ]), q = ie(), o = te({
95
- getTimeSpentOnQuestion: z
96
- }), H = Z(), B = ee(), L = U(() => {
97
- q(), o(!0);
98
- }, [o, q]), M = $({
99
- handleValidate: L
100
- }), V = ne({
101
- handleResponseChange: o
102
- }), j = oe({
103
- setSkipped: S
104
- });
105
- g(() => {
106
- A && (S(!1), B(), c && c(s.item_display_number, s.question_number));
107
- }, [
108
- B,
109
- c,
110
- s.item_display_number,
111
- s.question_number,
112
- A
113
- ]);
114
- const f = d && (!p || _);
115
- return g(() => {
116
- const e = a ? b.question(y) : void 0;
117
- return e && (f ? (e.on("changed", o), e.enable()) : e.disable()), () => {
118
- e && f && (e.off("changed", o), e.disable());
119
- };
120
- }, [o, a, b, f, y]), /* @__PURE__ */ P(T, { children: [
121
- !R.questionsScrollable && /* @__PURE__ */ r(
122
- u,
123
- {
124
- widthX: 6,
125
- renderAs: "secondary",
126
- size: "small",
127
- label: "Back",
128
- disabled: E,
129
- onClick: H
130
- }
131
- ),
132
- F && /* @__PURE__ */ r(
133
- u,
134
- {
135
- widthX: 6,
136
- renderAs: k ? "secondary" : "primary",
137
- size: "small",
138
- label: "Skip",
139
- onClick: j
140
- }
141
- ),
142
- N && /* @__PURE__ */ r(
143
- u,
144
- {
145
- widthX: 6,
146
- renderAs: k ? "secondary" : "primary",
147
- size: "small",
148
- label: "Next",
149
- onClick: B,
150
- disabled: X === !0
151
- }
152
- ),
153
- k && /* @__PURE__ */ r(
154
- u,
155
- {
156
- widthX: 6,
157
- renderAs: "primary",
158
- size: "small",
159
- label: I,
160
- disabled: !a,
161
- onClick: V
162
- }
163
- ),
164
- _ && /* @__PURE__ */ r(
165
- u,
166
- {
167
- renderAs: "primary",
168
- size: "small",
169
- label: D,
170
- disabled: w === !0 || !a,
171
- onClick: M
172
- }
173
- )
174
- ] });
175
- }
176
- );
177
- export {
178
- be as default
179
- };
180
- //# sourceMappingURL=controller.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"controller.js","sources":["../../../../../../src/features/worksheet/worksheet/worksheet-questions-controller/student/controller.tsx"],"sourcesContent":["import { deepEqual } from 'fast-equals';\nimport { memo, useCallback, useEffect, useMemo, useState, type FC } from 'react';\n\nimport Button from '../../../../ui/buttons/button/button';\nimport { useWorksheetStore } from '../../hooks/use-worksheet-store';\nimport useHandleBackButtonClick from '../hooks/use-handle-back-button-click';\nimport useHandleCheckButtonClick from '../hooks/use-handle-check-button-click';\nimport useHandleNextButtonClick from '../hooks/use-handle-next-button-click';\nimport useHandleResponseChange from '../hooks/use-handle-response-change';\nimport useHandleRetryButtonClick from '../hooks/use-handle-retry-button-click';\nimport useHandleSkipButtonClick from '../hooks/use-handle-skip-button-click';\nimport usePlayValidationAudio from '../hooks/use-play-validation-audio';\nimport type {\n IButtonTypes,\n IWorksheetQuestionsControllerProps,\n} from '../worksheet-questions-controller-types';\n\nconst StudentController: FC<IWorksheetQuestionsControllerProps> = memo(\n function StudentController(props) {\n const {\n behavior,\n layout,\n question,\n response,\n isFirstQuestion,\n learnosity,\n onSkip,\n isQuestionAppended,\n } = useWorksheetStore(store => {\n const activeQuestion = store.questions[store.activeQuestionIndex]!;\n\n return {\n behavior: store.behavior,\n layout: store.layout,\n question: activeQuestion,\n response: store.responses[activeQuestion.response_id],\n isFirstQuestion: store.activeQuestionIndex === 0,\n learnosity: store.learnosity,\n onSkip: store.onSkip,\n isQuestionAppended: store.appendedQuestionIds.includes(activeQuestion.response_id),\n };\n });\n const { getTimeSpentOnQuestion } = props;\n const {\n canAttempt,\n checkButtonLabel,\n retryButtonLabel,\n validation,\n maximumAttempts,\n canExceedAttempts,\n skippable,\n } = behavior;\n const { response_id } = question;\n const [skipped, setSkipped] = useState(false);\n\n const {\n checkButton,\n checkButtonDisabled,\n retryButton,\n nextButton,\n nextButtonDisabled,\n skipButton,\n } = useMemo<IButtonTypes>(() => {\n // maxAttemps = -2; This is a puzzle card\n if (!canAttempt || maximumAttempts === -2) return {};\n\n if (!validation) {\n if (behavior.navigationMode === 'LINEAR')\n return {\n nextButton: true,\n nextButtonDisabled: response?.skipped ? false : !response?.response,\n skipButton: skippable && !response?.response && !response?.skipped,\n };\n\n return {\n nextButton: true,\n };\n }\n\n if (!response || !response.response || !response.score)\n return {\n checkButton: true,\n checkButtonDisabled: true,\n };\n\n const { responseEdited, score, attemptsHistory } = response;\n const maximumAttemptsReached = (attemptsHistory?.length ?? 0) >= maximumAttempts;\n\n if (maximumAttemptsReached && !canExceedAttempts)\n return {\n nextButton: true,\n };\n\n if (responseEdited) {\n const lastAttemptResponse = attemptsHistory?.slice(-1)[0]?.response;\n\n return {\n nextButton: maximumAttemptsReached,\n checkButton: true,\n checkButtonDisabled: deepEqual(response.response, lastAttemptResponse),\n };\n }\n\n if ((score.score ?? 0) < score.max_score)\n return {\n nextButton: maximumAttemptsReached,\n retryButton: true,\n };\n\n if ((score.score ?? 0) === score.max_score)\n return {\n nextButton: true,\n };\n\n return {};\n }, [\n response,\n maximumAttempts,\n canAttempt,\n validation,\n behavior.navigationMode,\n canExceedAttempts,\n skippable,\n ]);\n\n const playValidationAudio = usePlayValidationAudio();\n const handleResponseChange = useHandleResponseChange({\n getTimeSpentOnQuestion,\n });\n const handleBackButtonClick = useHandleBackButtonClick();\n const handleNextButtonClick = useHandleNextButtonClick();\n const handleValidate = useCallback(() => {\n playValidationAudio();\n handleResponseChange(true);\n }, [handleResponseChange, playValidationAudio]);\n const handleCheckButtonClick = useHandleCheckButtonClick({\n handleValidate,\n });\n const handleRetryButtonClick = useHandleRetryButtonClick({\n handleResponseChange,\n });\n const handleSkipButtonClick = useHandleSkipButtonClick({\n setSkipped,\n });\n\n useEffect(() => {\n if (skipped) {\n setSkipped(false);\n handleNextButtonClick();\n if (onSkip) {\n onSkip(question.item_display_number, question.question_number);\n }\n }\n }, [\n handleNextButtonClick,\n onSkip,\n question.item_display_number,\n question.question_number,\n skipped,\n ]);\n\n const questionEnabled = canAttempt && (!validation || checkButton);\n\n useEffect(() => {\n const questionInstance = isQuestionAppended ? learnosity.question(response_id) : undefined;\n\n if (questionInstance) {\n if (questionEnabled) {\n questionInstance.on('changed', handleResponseChange);\n questionInstance.enable();\n } else {\n questionInstance.disable();\n }\n }\n\n return () => {\n if (questionInstance && questionEnabled) {\n questionInstance.off('changed', handleResponseChange);\n questionInstance.disable();\n }\n };\n }, [handleResponseChange, isQuestionAppended, learnosity, questionEnabled, response_id]);\n\n return (\n <>\n {!layout.questionsScrollable && (\n <Button\n widthX={6}\n renderAs=\"secondary\"\n size=\"small\"\n label=\"Back\"\n disabled={isFirstQuestion}\n onClick={handleBackButtonClick}\n />\n )}\n {skipButton && (\n <Button\n widthX={6}\n renderAs={retryButton ? 'secondary' : 'primary'}\n size=\"small\"\n label=\"Skip\"\n onClick={handleSkipButtonClick}\n />\n )}\n {nextButton && (\n <Button\n widthX={6}\n renderAs={retryButton ? 'secondary' : 'primary'}\n size=\"small\"\n label=\"Next\"\n onClick={handleNextButtonClick}\n disabled={nextButtonDisabled === true}\n />\n )}\n {retryButton && (\n <Button\n widthX={6}\n renderAs=\"primary\"\n size=\"small\"\n label={retryButtonLabel}\n disabled={!isQuestionAppended}\n onClick={handleRetryButtonClick}\n />\n )}\n {checkButton && (\n <Button\n renderAs=\"primary\"\n size=\"small\"\n label={checkButtonLabel}\n disabled={checkButtonDisabled === true || !isQuestionAppended}\n onClick={handleCheckButtonClick}\n />\n )}\n </>\n );\n },\n);\n\nexport default StudentController;\n"],"names":["StudentController","memo","props","behavior","layout","question","response","isFirstQuestion","learnosity","onSkip","isQuestionAppended","useWorksheetStore","store","activeQuestion","getTimeSpentOnQuestion","canAttempt","checkButtonLabel","retryButtonLabel","validation","maximumAttempts","canExceedAttempts","skippable","response_id","skipped","setSkipped","useState","checkButton","checkButtonDisabled","retryButton","nextButton","nextButtonDisabled","skipButton","useMemo","responseEdited","score","attemptsHistory","maximumAttemptsReached","lastAttemptResponse","_a","deepEqual","playValidationAudio","usePlayValidationAudio","handleResponseChange","useHandleResponseChange","handleBackButtonClick","useHandleBackButtonClick","handleNextButtonClick","useHandleNextButtonClick","handleValidate","useCallback","handleCheckButtonClick","useHandleCheckButtonClick","handleRetryButtonClick","useHandleRetryButtonClick","handleSkipButtonClick","useHandleSkipButtonClick","useEffect","questionEnabled","questionInstance","jsxs","Fragment","jsx","Button"],"mappings":"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"}
@@ -1,77 +0,0 @@
1
- import { jsxs as x, Fragment as y, jsx as l } from "react/jsx-runtime";
2
- import { memo as C, useMemo as b } from "react";
3
- import T from "../../../../../assets/line-icons/icons/check2.js";
4
- import V from "../../../../../assets/line-icons/icons/skip.js";
5
- import d from "../../../../ui/buttons/icon-button/icon-button.js";
6
- import { useWorksheetStore as Q } from "../../hooks/use-worksheet-store.js";
7
- import _ from "../hooks/use-handle-skip-section-button-click.js";
8
- import g from "../hooks/use-handle-validate-button-click.js";
9
- const R = C(function() {
10
- const { behavior: m, question: p, response: t, isQuestionUnlocked: i } = Q((e) => {
11
- const o = e.questions[e.activeQuestionIndex];
12
- return {
13
- behavior: e.behavior,
14
- question: o,
15
- response: e.responses[o.response_id],
16
- isQuestionUnlocked: e.activeQuestionIndex <= e.lastUnlockedQuestionIndex
17
- };
18
- }), { navigationMode: n, canTeacherValidate: r } = m, { item_type: k, type: s, instructor_stimulus: B, is_optional: a } = p, c = B === "SystemIntro", u = k === "exit-ticket", { validateButton: S, validateButtonDisabled: f, skipSectionButton: v } = b(() => {
19
- if (!i || n === "ADAPTIVE" || n === "CURRENT")
20
- return {};
21
- const { validatedByTeacher: e } = t ?? {};
22
- if (e)
23
- return {
24
- validateButton: !0,
25
- validateButtonDisabled: !0
26
- };
27
- if (!r) return {};
28
- const o = a && (t == null ? void 0 : t.assignStatus) === "assigned";
29
- return c ? {
30
- skipSectionButton: o
31
- } : u ? {
32
- validateButton: t == null ? void 0 : t.submittedByStudent
33
- } : s !== "clozetext" ? t && !t.responseEdited && t.score && t.score.score === t.score.max_score ? {
34
- skipSectionButton: o,
35
- validateButton: !0
36
- } : {
37
- skipSectionButton: o
38
- } : {
39
- skipSectionButton: o,
40
- validateButton: !0
41
- };
42
- }, [
43
- r,
44
- a,
45
- t,
46
- n,
47
- i,
48
- c,
49
- s,
50
- u
51
- ]), h = g(), I = _();
52
- return /* @__PURE__ */ x(y, { children: [
53
- v && /* @__PURE__ */ l(
54
- d,
55
- {
56
- renderAs: "primary",
57
- Icon: V,
58
- analyticsLabel: "Skip Section",
59
- onClick: I
60
- }
61
- ),
62
- S && /* @__PURE__ */ l(
63
- d,
64
- {
65
- renderAs: "primary",
66
- Icon: T,
67
- disabled: f,
68
- analyticsLabel: "Validate",
69
- onClick: h
70
- }
71
- )
72
- ] });
73
- });
74
- export {
75
- R as default
76
- };
77
- //# sourceMappingURL=controller-lesson-v3.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"controller-lesson-v3.js","sources":["../../../../../../src/features/worksheet/worksheet/worksheet-questions-controller/teacher/controller-lesson-v3.tsx"],"sourcesContent":["import { memo, useMemo, type FC } from 'react';\n\nimport Check2Icon from '../../../../../assets/line-icons/icons/check2';\nimport SkipIcon from '../../../../../assets/line-icons/icons/skip';\nimport IconButton from '../../../../ui/buttons/icon-button/icon-button';\nimport { useWorksheetStore } from '../../hooks/use-worksheet-store';\nimport useHandleSkipSectionButtonClick from '../hooks/use-handle-skip-section-button-click';\nimport useHandleValidateButtonClick from '../hooks/use-handle-validate-button-click';\nimport type { IButtonTypes } from '../worksheet-questions-controller-types';\n\nconst TeacherControllerLessonV3: FC = memo(function TeacherControllerLessonV3() {\n const { behavior, question, response, isQuestionUnlocked } = useWorksheetStore(store => {\n const activeQuestion = store.questions[store.activeQuestionIndex]!;\n\n return {\n behavior: store.behavior,\n question: activeQuestion,\n response: store.responses[activeQuestion.response_id],\n isQuestionUnlocked: store.activeQuestionIndex <= store.lastUnlockedQuestionIndex,\n };\n });\n const { navigationMode, canTeacherValidate } = behavior;\n const { item_type, type, instructor_stimulus, is_optional } = question;\n const isSystemIntro = instructor_stimulus === 'SystemIntro';\n const isExitTicket = item_type === 'exit-ticket';\n\n const { validateButton, validateButtonDisabled, skipSectionButton } =\n useMemo<IButtonTypes>(() => {\n if (!isQuestionUnlocked || navigationMode === 'ADAPTIVE' || navigationMode === 'CURRENT')\n return {};\n\n const { validatedByTeacher } = response ?? {};\n\n if (validatedByTeacher)\n return {\n validateButton: true,\n validateButtonDisabled: true,\n };\n\n if (!canTeacherValidate) return {};\n\n const showSkipSectionButton = is_optional && response?.assignStatus === 'assigned';\n\n if (isSystemIntro)\n return {\n skipSectionButton: showSkipSectionButton,\n };\n\n if (isExitTicket)\n return {\n validateButton: response?.submittedByStudent,\n };\n\n if (type !== 'clozetext') {\n if (\n response &&\n !response.responseEdited &&\n response.score &&\n response.score.score === response.score.max_score\n ) {\n return {\n skipSectionButton: showSkipSectionButton,\n validateButton: true,\n };\n }\n\n return {\n skipSectionButton: showSkipSectionButton,\n };\n }\n\n return {\n skipSectionButton: showSkipSectionButton,\n validateButton: true,\n };\n }, [\n canTeacherValidate,\n is_optional,\n response,\n navigationMode,\n isQuestionUnlocked,\n isSystemIntro,\n type,\n isExitTicket,\n ]);\n\n const handleValidateButtonClick = useHandleValidateButtonClick();\n const handleSkipSectionButtonClick = useHandleSkipSectionButtonClick();\n\n return (\n <>\n {skipSectionButton && (\n <IconButton\n renderAs=\"primary\"\n Icon={SkipIcon}\n analyticsLabel=\"Skip Section\"\n onClick={handleSkipSectionButtonClick}\n />\n )}\n {validateButton && (\n <IconButton\n renderAs=\"primary\"\n Icon={Check2Icon}\n disabled={validateButtonDisabled}\n analyticsLabel=\"Validate\"\n onClick={handleValidateButtonClick}\n />\n )}\n </>\n );\n});\n\nexport default TeacherControllerLessonV3;\n"],"names":["TeacherControllerLessonV3","memo","behavior","question","response","isQuestionUnlocked","useWorksheetStore","store","activeQuestion","navigationMode","canTeacherValidate","item_type","type","instructor_stimulus","is_optional","isSystemIntro","isExitTicket","validateButton","validateButtonDisabled","skipSectionButton","useMemo","validatedByTeacher","showSkipSectionButton","handleValidateButtonClick","useHandleValidateButtonClick","handleSkipSectionButtonClick","useHandleSkipSectionButtonClick","jsxs","Fragment","jsx","IconButton","SkipIcon","Check2Icon"],"mappings":";;;;;;;;AAUM,MAAAA,IAAgCC,EAAK,WAAqC;AAC9E,QAAM,EAAE,UAAAC,GAAU,UAAAC,GAAU,UAAAC,GAAU,oBAAAC,MAAuBC,EAAkB,CAASC,MAAA;AACtF,UAAMC,IAAiBD,EAAM,UAAUA,EAAM,mBAAmB;AAEzD,WAAA;AAAA,MACL,UAAUA,EAAM;AAAA,MAChB,UAAUC;AAAA,MACV,UAAUD,EAAM,UAAUC,EAAe,WAAW;AAAA,MACpD,oBAAoBD,EAAM,uBAAuBA,EAAM;AAAA,IAAA;AAAA,EACzD,CACD,GACK,EAAE,gBAAAE,GAAgB,oBAAAC,EAAuB,IAAAR,GACzC,EAAE,WAAAS,GAAW,MAAAC,GAAM,qBAAAC,GAAqB,aAAAC,MAAgBX,GACxDY,IAAgBF,MAAwB,eACxCG,IAAeL,MAAc,eAE7B,EAAE,gBAAAM,GAAgB,wBAAAC,GAAwB,mBAAAC,EAAkB,IAChEC,EAAsB,MAAM;AAC1B,QAAI,CAACf,KAAsBI,MAAmB,cAAcA,MAAmB;AAC7E,aAAO;AAET,UAAM,EAAE,oBAAAY,EAAA,IAAuBjB,KAAY;AAEvC,QAAAiB;AACK,aAAA;AAAA,QACL,gBAAgB;AAAA,QAChB,wBAAwB;AAAA,MAAA;AAGxB,QAAA,CAACX,EAAoB,QAAO;AAE1B,UAAAY,IAAwBR,MAAeV,KAAA,gBAAAA,EAAU,kBAAiB;AAEpE,WAAAW,IACK;AAAA,MACL,mBAAmBO;AAAA,IAAA,IAGnBN,IACK;AAAA,MACL,gBAAgBZ,KAAA,gBAAAA,EAAU;AAAA,IAAA,IAG1BQ,MAAS,cAETR,KACA,CAACA,EAAS,kBACVA,EAAS,SACTA,EAAS,MAAM,UAAUA,EAAS,MAAM,YAEjC;AAAA,MACL,mBAAmBkB;AAAA,MACnB,gBAAgB;AAAA,IAAA,IAIb;AAAA,MACL,mBAAmBA;AAAA,IAAA,IAIhB;AAAA,MACL,mBAAmBA;AAAA,MACnB,gBAAgB;AAAA,IAAA;AAAA,EAClB,GACC;AAAA,IACDZ;AAAA,IACAI;AAAA,IACAV;AAAA,IACAK;AAAA,IACAJ;AAAA,IACAU;AAAA,IACAH;AAAA,IACAI;AAAA,EAAA,CACD,GAEGO,IAA4BC,KAC5BC,IAA+BC;AAErC,SAEK,gBAAAC,EAAAC,GAAA,EAAA,UAAA;AAAA,IACCT,KAAA,gBAAAU;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,UAAS;AAAA,QACT,MAAMC;AAAA,QACN,gBAAe;AAAA,QACf,SAASN;AAAA,MAAA;AAAA,IACX;AAAA,IAEDR,KACC,gBAAAY;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,UAAS;AAAA,QACT,MAAME;AAAA,QACN,UAAUd;AAAA,QACV,gBAAe;AAAA,QACf,SAASK;AAAA,MAAA;AAAA,IACX;AAAA,EAEJ,EAAA,CAAA;AAEJ,CAAC;"}