@instructure/quiz-core 17.19.2-rc.4 → 17.19.3-rc.1

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 (534) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/es/common/components/resources/item/ItemEdit/index.js +1 -0
  3. package/es/common/components/resources/item/ItemEdit/presenter.js +2 -0
  4. package/es/common/util/interactionTypePropsHelper.js +1 -0
  5. package/lib/banks/api/bankEntries.js +203 -0
  6. package/lib/banks/api/banks.js +315 -0
  7. package/lib/banks/api/tagAssociations.js +128 -0
  8. package/lib/banks/components/AddBankEntryModal/index.js +47 -0
  9. package/lib/banks/components/AddBankEntryModal/presenter.js +156 -0
  10. package/lib/banks/components/AddToBankModal/index.js +53 -0
  11. package/lib/banks/components/AddToBankModal/presenter.js +238 -0
  12. package/lib/banks/components/Bank/index.js +60 -0
  13. package/lib/banks/components/Bank/presenter.js +390 -0
  14. package/lib/banks/components/Bank/theme.js +21 -0
  15. package/lib/banks/components/BankEntriesList/index.js +30 -0
  16. package/lib/banks/components/BankEntriesList/presenter.js +93 -0
  17. package/lib/banks/components/BankEntriesList/theme.js +13 -0
  18. package/lib/banks/components/BankEntry/index.js +97 -0
  19. package/lib/banks/components/BankEntry/presenter.js +763 -0
  20. package/lib/banks/components/BankEntry/theme.js +31 -0
  21. package/lib/banks/components/BankEntryRow/BankEntryRow.examples.js +55 -0
  22. package/lib/banks/components/BankEntryRow/index.js +68 -0
  23. package/lib/banks/components/BankEntryRow/presenter.js +453 -0
  24. package/lib/banks/components/BankEntryRow/theme.js +30 -0
  25. package/lib/banks/components/BankSearch/BankSearch.stories.js +75 -0
  26. package/lib/banks/components/BankSearch/index.js +49 -0
  27. package/lib/banks/components/BankSearch/presenter.js +243 -0
  28. package/lib/banks/components/BankSearch/theme.js +16 -0
  29. package/lib/banks/components/Banks/index.js +58 -0
  30. package/lib/banks/components/Banks/noResults.svg +56 -0
  31. package/lib/banks/components/Banks/presenter.js +480 -0
  32. package/lib/banks/components/Banks/theme.js +20 -0
  33. package/lib/banks/components/BanksList/index.js +38 -0
  34. package/lib/banks/components/BanksList/presenter.js +390 -0
  35. package/lib/banks/components/BanksList/theme.js +28 -0
  36. package/lib/banks/components/CopyMoveBankEntryModal/index.js +56 -0
  37. package/lib/banks/components/CopyMoveBankEntryModal/presenter.js +264 -0
  38. package/lib/banks/components/CreateBankModal/index.js +64 -0
  39. package/lib/banks/components/CreateBankModal/presenter.js +190 -0
  40. package/lib/banks/components/CreateBankModal/theme.js +16 -0
  41. package/lib/banks/components/EditBankModal/index.js +56 -0
  42. package/lib/banks/components/EditBankModal/presenter.js +183 -0
  43. package/lib/banks/components/EditBankModal/theme.js +15 -0
  44. package/lib/banks/components/HeaderMenu/index.js +34 -0
  45. package/lib/banks/components/HeaderMenu/presenter.js +100 -0
  46. package/lib/banks/components/HeaderMenu/theme.js +15 -0
  47. package/lib/banks/components/NavWrapper/NavWrapper.examples.js +27 -0
  48. package/lib/banks/components/NavWrapper/index.js +24 -0
  49. package/lib/banks/components/NavWrapper/presenter.js +189 -0
  50. package/lib/banks/components/NavWrapper/theme.js +24 -0
  51. package/lib/banks/components/SharingModal/ContextualButton/index.js +80 -0
  52. package/lib/banks/components/SharingModal/ShareList/ShareList.examples.js +30 -0
  53. package/lib/banks/components/SharingModal/ShareList/index.js +253 -0
  54. package/lib/banks/components/SharingModal/ShareList/theme.js +10 -0
  55. package/lib/banks/components/SharingModal/asyncSearch.js +399 -0
  56. package/lib/banks/components/SharingModal/index.js +45 -0
  57. package/lib/banks/components/SharingModal/presenter.js +530 -0
  58. package/lib/banks/components/SharingModal/theme.js +17 -0
  59. package/lib/building/api/items.js +255 -0
  60. package/lib/building/api/qtiImports.js +135 -0
  61. package/lib/building/api/quizEntries.js +380 -0
  62. package/lib/building/api/quizzes.js +285 -0
  63. package/lib/building/api/stimuli.js +92 -0
  64. package/lib/building/components/QTIImportModal/index.js +54 -0
  65. package/lib/building/components/layout/Sidebar/Sidebar.examples.js +134 -0
  66. package/lib/building/components/layout/Sidebar/SidebarItem/index.js +86 -0
  67. package/lib/building/components/layout/Sidebar/SidebarItem/presenter.js +159 -0
  68. package/lib/building/components/layout/Sidebar/Stimulus/index.js +87 -0
  69. package/lib/building/components/layout/Sidebar/Stimulus/presenter.js +167 -0
  70. package/lib/building/components/layout/Sidebar/index.js +80 -0
  71. package/lib/building/components/layout/Sidebar/presenter.js +267 -0
  72. package/lib/building/components/layout/Sidebar/theme.js +13 -0
  73. package/lib/building/components/layout/header/BuildingButtons/index.js +56 -0
  74. package/lib/building/components/layout/header/BuildingButtons/presenter.js +195 -0
  75. package/lib/building/components/layout/header/BuildingButtons/theme.js +19 -0
  76. package/lib/building/components/layout/header/SDKBuildingButtons/index.js +27 -0
  77. package/lib/building/components/resources/ActionButtons/index.js +40 -0
  78. package/lib/building/components/resources/ActionButtons/presenter.js +194 -0
  79. package/lib/building/components/resources/ActionButtons/theme.js +16 -0
  80. package/lib/building/components/resources/AddToBankOptions/index.js +119 -0
  81. package/lib/building/components/resources/AddToBankOptions/theme.js +15 -0
  82. package/lib/building/components/resources/BanksTray/index.js +34 -0
  83. package/lib/building/components/resources/BanksTray/presenter.js +233 -0
  84. package/lib/building/components/resources/DeleteStimulusModal/index.js +54 -0
  85. package/lib/building/components/resources/DeleteStimulusModal/presenter.js +316 -0
  86. package/lib/building/components/resources/DeleteStimulusModal/theme.js +17 -0
  87. package/lib/building/components/resources/ItemFeedbackModal/index.js +52 -0
  88. package/lib/building/components/resources/ItemFeedbackModal/presenter.js +183 -0
  89. package/lib/building/components/resources/ItemFeedbackModal/theme.js +13 -0
  90. package/lib/building/components/resources/MoveImmutableModal/index.js +54 -0
  91. package/lib/building/components/resources/MoveImmutableModal/presenter.js +140 -0
  92. package/lib/building/components/resources/quiz/editButton/EditButton.js +89 -0
  93. package/lib/building/components/resources/quiz/instructions/Edit/index.js +22 -0
  94. package/lib/building/components/resources/quiz/instructions/Edit/presenter.js +142 -0
  95. package/lib/building/components/resources/quiz/instructions/Edit/theme.js +14 -0
  96. package/lib/building/components/resources/quiz/instructions/Instructions/Instructions.examples.js +34 -0
  97. package/lib/building/components/resources/quiz/instructions/Instructions/index.js +39 -0
  98. package/lib/building/components/resources/quiz/instructions/Instructions/presenter.js +223 -0
  99. package/lib/building/components/resources/quiz/instructions/Instructions/theme.js +20 -0
  100. package/lib/building/components/resources/quiz/instructions/Show/index.js +97 -0
  101. package/lib/building/components/resources/quiz/instructions/Show/theme.js +16 -0
  102. package/lib/building/components/resources/quiz/title/Edit/index.js +214 -0
  103. package/lib/building/components/resources/quiz/title/Edit/theme.js +24 -0
  104. package/lib/building/components/resources/quiz/title/Show/index.js +97 -0
  105. package/lib/building/components/resources/quiz/title/Show/theme.js +16 -0
  106. package/lib/building/components/resources/quiz/title/Title/Title.examples.js +51 -0
  107. package/lib/building/components/resources/quiz/title/Title/index.js +42 -0
  108. package/lib/building/components/resources/quiz/title/Title/presenter.js +217 -0
  109. package/lib/building/components/resources/quiz/title/Title/theme.js +20 -0
  110. package/lib/building/components/resources/quizEntry/QuizEntry/index.js +98 -0
  111. package/lib/building/components/resources/quizEntry/QuizEntry/presenter.js +435 -0
  112. package/lib/building/components/resources/quizEntry/QuizEntry/theme.js +19 -0
  113. package/lib/building/components/resources/quizEntry/QuizEntryBank/QuizEntryBankEdit/index.js +41 -0
  114. package/lib/building/components/resources/quizEntry/QuizEntryBank/QuizEntryBankEdit/presenter.js +291 -0
  115. package/lib/building/components/resources/quizEntry/QuizEntryBank/QuizEntryBankEdit/theme.js +28 -0
  116. package/lib/building/components/resources/quizEntry/QuizEntryBank/QuizEntryBankShow/index.js +139 -0
  117. package/lib/building/components/resources/quizEntry/QuizEntryBank/QuizEntryBankShow/theme.js +20 -0
  118. package/lib/building/components/resources/quizEntry/QuizEntryEdit/Footer/index.js +39 -0
  119. package/lib/building/components/resources/quizEntry/QuizEntryEdit/Footer/presenter.js +299 -0
  120. package/lib/building/components/resources/quizEntry/QuizEntryEdit/Footer/theme.js +17 -0
  121. package/lib/building/components/resources/quizEntry/QuizEntryEdit/Header/index.js +366 -0
  122. package/lib/building/components/resources/quizEntry/QuizEntryEdit/Header/theme.js +21 -0
  123. package/lib/building/components/resources/quizEntry/QuizEntryEdit/index.js +98 -0
  124. package/lib/building/components/resources/quizEntry/QuizEntryEdit/presenter.js +545 -0
  125. package/lib/building/components/resources/quizEntry/QuizEntryEdit/theme.js +17 -0
  126. package/lib/building/components/resources/quizEntry/QuizEntryShow/index.js +51 -0
  127. package/lib/building/components/resources/quizEntry/QuizEntryShow/presenter.js +385 -0
  128. package/lib/building/components/resources/quizEntry/QuizEntryShow/theme.js +33 -0
  129. package/lib/common/actions/addInteractionTypes.js +15 -0
  130. package/lib/common/actions/alerts.js +72 -0
  131. package/lib/common/actions/bankEntries.js +26 -0
  132. package/lib/common/actions/bankSearch.js +51 -0
  133. package/lib/common/actions/banks.js +71 -0
  134. package/lib/common/actions/config.js +23 -0
  135. package/lib/common/actions/dragAndDrop.js +15 -0
  136. package/lib/common/actions/editing.js +33 -0
  137. package/lib/common/actions/errorsShowing.js +35 -0
  138. package/lib/common/actions/features.js +23 -0
  139. package/lib/common/actions/items.js +15 -0
  140. package/lib/common/actions/modal.js +86 -0
  141. package/lib/common/actions/moderation.js +22 -0
  142. package/lib/common/actions/modifications.js +560 -0
  143. package/lib/common/actions/outcomes.js +31 -0
  144. package/lib/common/actions/postMessage.js +15 -0
  145. package/lib/common/actions/printing.js +23 -0
  146. package/lib/common/actions/qtiImports.js +22 -0
  147. package/lib/common/actions/quizEntries.js +56 -0
  148. package/lib/common/actions/quizSessionEvents.js +17 -0
  149. package/lib/common/actions/quizSessionResults.js +17 -0
  150. package/lib/common/actions/quizSessions.js +129 -0
  151. package/lib/common/actions/quizzes.js +74 -0
  152. package/lib/common/actions/regrading.js +31 -0
  153. package/lib/common/actions/reporting.js +47 -0
  154. package/lib/common/actions/scrolling.js +24 -0
  155. package/lib/common/actions/sessionItemResults.js +17 -0
  156. package/lib/common/actions/sessionItems.js +17 -0
  157. package/lib/common/actions/sharedBanks.js +38 -0
  158. package/lib/common/actions/sidebar.js +25 -0
  159. package/lib/common/actions/stimuli.js +15 -0
  160. package/lib/common/actions/tagAssociations.js +113 -0
  161. package/lib/common/actions/taking.js +160 -0
  162. package/lib/common/actions/ui.js +83 -0
  163. package/lib/common/actions/upload.js +57 -0
  164. package/lib/common/api/callHandlers.js +217 -0
  165. package/lib/common/api/camelizeHelpers.js +40 -0
  166. package/lib/common/api/features.js +27 -0
  167. package/lib/common/api/fileUpload.js +48 -0
  168. package/lib/common/api/getPersistenceActions.js +140 -0
  169. package/lib/common/api/helpers.js +197 -0
  170. package/lib/common/api/interactionTypes.js +24 -0
  171. package/lib/common/api/quizSessions.js +236 -0
  172. package/lib/common/api/quizzes.js +55 -0
  173. package/lib/common/api/schema.js +109 -0
  174. package/lib/common/components/ConfirmationModal/index.js +37 -0
  175. package/lib/common/components/ConfirmationModal/presenter.js +156 -0
  176. package/lib/common/components/ImportModal/ImportFileSelector/index.js +167 -0
  177. package/lib/common/components/ImportModal/ImportFileSelector/theme.js +23 -0
  178. package/lib/common/components/ImportModal/index.js +78 -0
  179. package/lib/common/components/ImportModal/presenter.js +442 -0
  180. package/lib/common/components/ImportModal/theme.js +13 -0
  181. package/lib/common/components/LearnosityCalculator/index.js +196 -0
  182. package/lib/common/components/Pin/Pin.examples.js +20 -0
  183. package/lib/common/components/Pin/index.js +13 -0
  184. package/lib/common/components/Pin/presenter.js +88 -0
  185. package/lib/common/components/PreviewFrame/examples.config.js +24 -0
  186. package/lib/common/components/PreviewFrame/index.js +71 -0
  187. package/lib/common/components/PrintFontSizeModal/index.js +13 -0
  188. package/lib/common/components/PrintFontSizeModal/presenter.js +204 -0
  189. package/lib/common/components/PrintFontSizeModal/theme.js +17 -0
  190. package/lib/common/components/RichContentInput/RceImageImportModal/index.js +28 -0
  191. package/lib/common/components/RichContentInput/RceImageImportModal/presenter.js +115 -0
  192. package/lib/common/components/RichContentInput/index.js +33 -0
  193. package/lib/common/components/RichContentInput/presenter.js +102 -0
  194. package/lib/common/components/SDKApp/index.js +206 -0
  195. package/lib/common/components/SDKApp/theme.js +10 -0
  196. package/lib/common/components/SDKHeaderCalculator.js +29 -0
  197. package/lib/common/components/SDKMenuButton.js +27 -0
  198. package/lib/common/components/SDKTimer.js +29 -0
  199. package/lib/common/components/alerts/index.js +33 -0
  200. package/lib/common/components/alerts/presenter.js +115 -0
  201. package/lib/common/components/alerts/theme.js +18 -0
  202. package/lib/common/components/layout/Page/index.js +102 -0
  203. package/lib/common/components/layout/Page/theme.js +17 -0
  204. package/lib/common/components/layout/header/Calculator/index.js +36 -0
  205. package/lib/common/components/layout/header/Calculator/presenter.js +84 -0
  206. package/lib/common/components/layout/header/HeaderMenuButton/index.js +39 -0
  207. package/lib/common/components/layout/header/HeaderMenuButton/presenter.js +86 -0
  208. package/lib/common/components/layout/header/HeaderMenuButton/theme.js +18 -0
  209. package/lib/common/components/layout/header/Timer/index.js +48 -0
  210. package/lib/common/components/layout/header/Timer/presenter.js +201 -0
  211. package/lib/common/components/layout/header/Timer/theme.js +25 -0
  212. package/lib/common/components/layout/sidebar/PositionSummary/index.js +81 -0
  213. package/lib/common/components/layout/sidebar/PositionSummary/theme.js +22 -0
  214. package/lib/common/components/layout/sidebar/Sidebar/Pin.js +78 -0
  215. package/lib/common/components/layout/sidebar/Sidebar/Sidebar.examples.js +46 -0
  216. package/lib/common/components/layout/sidebar/Sidebar/index.js +338 -0
  217. package/lib/common/components/layout/sidebar/Sidebar/theme.js +50 -0
  218. package/lib/common/components/layout/sidebar/SidebarItem/index.js +46 -0
  219. package/lib/common/components/layout/sidebar/SidebarItem/presenter.js +235 -0
  220. package/lib/common/components/layout/sidebar/SidebarItem/theme.js +33 -0
  221. package/lib/common/components/layout/sidebar/Stimulus/Collection/index.js +20 -0
  222. package/lib/common/components/layout/sidebar/Stimulus/Collection/presenter.js +195 -0
  223. package/lib/common/components/layout/sidebar/Stimulus/Collection/theme.js +17 -0
  224. package/lib/common/components/layout/sidebar/Stimulus/Summary/index.js +20 -0
  225. package/lib/common/components/layout/sidebar/Stimulus/Summary/presenter.js +182 -0
  226. package/lib/common/components/layout/sidebar/Stimulus/Summary/theme.js +20 -0
  227. package/lib/common/components/layout/sidebar/Stimulus/Title/index.js +89 -0
  228. package/lib/common/components/layout/sidebar/Stimulus/Title/theme.js +10 -0
  229. package/lib/common/components/layout/sidebar/Stimulus/index.js +42 -0
  230. package/lib/common/components/layout/sidebar/Stimulus/presenter.js +202 -0
  231. package/lib/common/components/layout/sidebar/Stimulus/theme.js +26 -0
  232. package/lib/common/components/resources/BankSelection/BankSelection.examples.js +26 -0
  233. package/lib/common/components/resources/BankSelection/index.js +39 -0
  234. package/lib/common/components/resources/BankSelection/presenter.js +253 -0
  235. package/lib/common/components/resources/WarningWrapper/index.js +167 -0
  236. package/lib/common/components/resources/WarningWrapper/theme.js +20 -0
  237. package/lib/common/components/resources/entry/EntrySave/index.js +40 -0
  238. package/lib/common/components/resources/entry/EntrySave/presenter.js +221 -0
  239. package/lib/common/components/resources/item/ItemEdit/index.js +92 -0
  240. package/lib/common/components/resources/item/ItemEdit/presenter.js +233 -0
  241. package/lib/common/components/resources/item/ItemOverride/index.js +55 -0
  242. package/lib/common/components/resources/item/ItemOverride/presenter.js +108 -0
  243. package/lib/common/components/resources/item/ItemShow/index.js +71 -0
  244. package/lib/common/components/resources/positionBox/PositionBox.js +78 -0
  245. package/lib/common/components/resources/positionBox/theme.js +21 -0
  246. package/lib/common/components/resources/quiz/AddContent/Body/index.js +42 -0
  247. package/lib/common/components/resources/quiz/AddContent/Body/presenter.js +207 -0
  248. package/lib/common/components/resources/quiz/AddContent/Body/theme.js +20 -0
  249. package/lib/common/components/resources/quiz/AddContent/Button/index.js +129 -0
  250. package/lib/common/components/resources/quiz/AddContent/Button/theme.js +30 -0
  251. package/lib/common/components/resources/quiz/AddContent/Modal/index.js +44 -0
  252. package/lib/common/components/resources/quiz/AddContent/Modal/presenter.js +103 -0
  253. package/lib/common/components/resources/quiz/AddContent/Popover/index.js +54 -0
  254. package/lib/common/components/resources/quiz/AddContent/Popover/presenter.js +185 -0
  255. package/lib/common/components/resources/quiz/AddContent/Popover/theme.js +15 -0
  256. package/lib/common/components/resources/quiz/info/QuizInfo.js +52 -0
  257. package/lib/common/components/resources/quiz/instructions/Instructions.js +76 -0
  258. package/lib/common/components/resources/quiz/instructions/theme.js +15 -0
  259. package/lib/common/components/resources/quiz/title/Title.js +78 -0
  260. package/lib/common/components/resources/quiz/title/theme.js +16 -0
  261. package/lib/common/components/resources/quizSessionResult/Header/index.js +119 -0
  262. package/lib/common/components/resources/quizSessionResult/Header/theme.js +17 -0
  263. package/lib/common/components/resources/quizSessionResult/Info/Info.examples.js +46 -0
  264. package/lib/common/components/resources/quizSessionResult/Info/index.js +321 -0
  265. package/lib/common/components/resources/quizSessionResult/Info/theme.js +20 -0
  266. package/lib/common/components/resources/sessionItemResult/ResultStimulus/index.js +129 -0
  267. package/lib/common/components/resources/sessionItemResult/ResultStimulus/theme.js +39 -0
  268. package/lib/common/components/resources/sessionItemResult/SessionItemResult/index.js +30 -0
  269. package/lib/common/components/resources/sessionItemResult/SessionItemResult/presenter.js +392 -0
  270. package/lib/common/components/resources/sessionItemResult/SessionItemResult/theme.js +37 -0
  271. package/lib/common/components/resources/sessionItemResult/SessionItemResultsList/index.js +123 -0
  272. package/lib/common/components/resources/sessionItemResult/SessionItemResultsList/theme.js +21 -0
  273. package/lib/common/components/resources/stimulus/Stimulus/index.js +45 -0
  274. package/lib/common/components/resources/stimulus/Stimulus/presenter.js +255 -0
  275. package/lib/common/components/resources/stimulus/Stimulus/theme.js +22 -0
  276. package/lib/common/components/resources/stimulus/StimulusEdit/index.js +81 -0
  277. package/lib/common/components/resources/stimulus/StimulusEdit/presenter.js +558 -0
  278. package/lib/common/components/resources/stimulus/StimulusEdit/theme.js +24 -0
  279. package/lib/common/components/resources/stimulus/StimulusEditInfo/index.js +39 -0
  280. package/lib/common/components/resources/stimulus/StimulusEditInfo/presenter.js +247 -0
  281. package/lib/common/components/resources/stimulus/StimulusEditInfo/theme.js +18 -0
  282. package/lib/common/components/resources/stimulus/StimulusShow/index.js +142 -0
  283. package/lib/common/components/resources/stimulus/StimulusShow/theme.js +22 -0
  284. package/lib/common/components/resources/stimulus/StimulusShowInfo/StimulusShowInfo.examples.js +22 -0
  285. package/lib/common/components/resources/stimulus/StimulusShowInfo/index.js +87 -0
  286. package/lib/common/components/shared/Card/CardContent/index.js +73 -0
  287. package/lib/common/components/shared/Card/CardContent/theme.js +24 -0
  288. package/lib/common/components/shared/Card/CardWrapper/index.js +72 -0
  289. package/lib/common/components/shared/Card/CardWrapper/theme.js +21 -0
  290. package/lib/common/components/shared/Card/index.js +46 -0
  291. package/lib/common/components/shared/ExpandButton/index.js +90 -0
  292. package/lib/common/components/shared/ExpandButton/theme.js +12 -0
  293. package/lib/common/components/shared/FormattedDuration/FormattedDuration.examples.js +27 -0
  294. package/lib/common/components/shared/FormattedDuration/index.js +126 -0
  295. package/lib/common/components/shared/IfFeature/index.js +24 -0
  296. package/lib/common/components/shared/IfFeature/presenter.js +56 -0
  297. package/lib/common/components/shared/InteractionTypes/index.js +20 -0
  298. package/lib/common/components/shared/InteractionTypes/presenter.js +197 -0
  299. package/lib/common/components/shared/InteractionTypes/theme.js +18 -0
  300. package/lib/common/components/shared/PaginatedCollection/index.js +36 -0
  301. package/lib/common/components/shared/PaginatedCollection/presenter.js +228 -0
  302. package/lib/common/components/shared/PaginatedCollection/theme.js +17 -0
  303. package/lib/common/components/shared/Paginator/index.js +90 -0
  304. package/lib/common/components/shared/Paginator/theme.js +13 -0
  305. package/lib/common/components/shared/PrintTrigger/index.js +43 -0
  306. package/lib/common/components/shared/PrintTrigger/presenter.js +151 -0
  307. package/lib/common/components/shared/TagDisplay/index.js +105 -0
  308. package/lib/common/components/shared/TagDisplay/theme.js +10 -0
  309. package/lib/common/components/shared/TagSelect/index.js +13 -0
  310. package/lib/common/components/shared/TagSelect/presenter.js +306 -0
  311. package/lib/common/components/shared/TagSuggestSelect/index.js +36 -0
  312. package/lib/common/components/shared/TagSuggestSelect/presenter.js +135 -0
  313. package/lib/common/components/shared/TagWrapper/index.js +13 -0
  314. package/lib/common/components/shared/TagWrapper/presenter.js +89 -0
  315. package/lib/common/components/shared/TimeUnitsInput/TimeUnitsInput.examples.js +25 -0
  316. package/lib/common/components/shared/TimeUnitsInput/index.js +366 -0
  317. package/lib/common/components/shared/drag_and_drop/DragAndDropZone/index.js +126 -0
  318. package/lib/common/components/shared/drag_and_drop/DragAndDropZone/theme.js +25 -0
  319. package/lib/common/components/shared/drag_and_drop/DragHandle/index.js +51 -0
  320. package/lib/common/components/shared/drag_and_drop/DragHandle/presenter.js +324 -0
  321. package/lib/common/components/shared/drag_and_drop/dragAndDropUtils.js +403 -0
  322. package/lib/common/components/shared/errors/Errors.js +81 -0
  323. package/lib/common/components/shared/errors/theme.js +16 -0
  324. package/lib/common/components/shared/file_selector/FileSelector.js +90 -0
  325. package/lib/common/components/shared/file_selector/theme.js +18 -0
  326. package/lib/common/components/shared/functionality/componentWithOutsideClick.js +94 -0
  327. package/lib/common/components/shared/functionality/disableDraggingOverride.js +22 -0
  328. package/lib/common/components/shared/functionality/makeEditable.js +152 -0
  329. package/lib/common/components/shared/functionality/makeScrollable.js +174 -0
  330. package/lib/common/components/shared/overlay/Overlay.js +95 -0
  331. package/lib/common/components/shared/overlay/theme.js +17 -0
  332. package/lib/common/components/shared/return_button/ReturnButton.js +66 -0
  333. package/lib/common/components/shared/spinner/Spinner.js +92 -0
  334. package/lib/common/components/shared/spinner/theme.js +13 -0
  335. package/lib/common/kinesis/QuizEventsLogger.js +155 -0
  336. package/lib/common/kinesis/StreamQueue.js +141 -0
  337. package/lib/common/kinesis/client.js +66 -0
  338. package/lib/common/kinesis/config.js +54 -0
  339. package/lib/common/kinesis/eventTypes.js +48 -0
  340. package/lib/common/middleware/alertTimerMiddleware.js +32 -0
  341. package/lib/common/middleware/crossDomainMessagingMiddleware.js +25 -0
  342. package/lib/common/middleware/eventLoggerMiddleware.js +42 -0
  343. package/lib/common/middleware/persistedStorageMiddleware.js +66 -0
  344. package/lib/common/react-redux.js +21 -0
  345. package/lib/common/records/Alert.js +37 -0
  346. package/lib/common/records/Bank.js +129 -0
  347. package/lib/common/records/BankEntry.js +96 -0
  348. package/lib/common/records/Item.js +151 -0
  349. package/lib/common/records/ItemAnalysis.js +177 -0
  350. package/lib/common/records/QtiImport.js +63 -0
  351. package/lib/common/records/Quiz.js +205 -0
  352. package/lib/common/records/QuizAnalysis.js +121 -0
  353. package/lib/common/records/QuizEntry.js +543 -0
  354. package/lib/common/records/QuizSession.js +219 -0
  355. package/lib/common/records/QuizSessionEvent.js +65 -0
  356. package/lib/common/records/QuizSessionResult.js +90 -0
  357. package/lib/common/records/Response.js +65 -0
  358. package/lib/common/records/SessionItem.js +150 -0
  359. package/lib/common/records/SessionItemResult.js +91 -0
  360. package/lib/common/records/Stimulus.js +101 -0
  361. package/lib/common/records/baseRecord.js +116 -0
  362. package/lib/common/records/index.js +135 -0
  363. package/lib/common/records/reduxRecord.js +46 -0
  364. package/lib/common/reducers/alerts.js +28 -0
  365. package/lib/common/reducers/bankEntries.js +38 -0
  366. package/lib/common/reducers/bankSearch.js +50 -0
  367. package/lib/common/reducers/banks.js +71 -0
  368. package/lib/common/reducers/calls.js +28 -0
  369. package/lib/common/reducers/config.js +32 -0
  370. package/lib/common/reducers/dragAndDrop.js +25 -0
  371. package/lib/common/reducers/editing.js +25 -0
  372. package/lib/common/reducers/errorsShowing.js +31 -0
  373. package/lib/common/reducers/features.js +28 -0
  374. package/lib/common/reducers/interactionTypes.js +33 -0
  375. package/lib/common/reducers/items.js +36 -0
  376. package/lib/common/reducers/modal.js +45 -0
  377. package/lib/common/reducers/moderation.js +34 -0
  378. package/lib/common/reducers/modifications.js +225 -0
  379. package/lib/common/reducers/outcomes.js +37 -0
  380. package/lib/common/reducers/printing.js +26 -0
  381. package/lib/common/reducers/qtiImports.js +39 -0
  382. package/lib/common/reducers/quizEntries.js +182 -0
  383. package/lib/common/reducers/quizSessionEvents.js +36 -0
  384. package/lib/common/reducers/quizSessionResults.js +34 -0
  385. package/lib/common/reducers/quizSessions.js +68 -0
  386. package/lib/common/reducers/quizzes.js +77 -0
  387. package/lib/common/reducers/regrading.js +39 -0
  388. package/lib/common/reducers/reporting.js +72 -0
  389. package/lib/common/reducers/scrolling.js +28 -0
  390. package/lib/common/reducers/sessionItemResults.js +34 -0
  391. package/lib/common/reducers/sessionItems.js +36 -0
  392. package/lib/common/reducers/sharedBanks.js +45 -0
  393. package/lib/common/reducers/sidebar.js +30 -0
  394. package/lib/common/reducers/stimuli.js +36 -0
  395. package/lib/common/reducers/tagAssociations.js +140 -0
  396. package/lib/common/reducers/taking.js +143 -0
  397. package/lib/common/reducers/ui.js +51 -0
  398. package/lib/common/reducers/upload.js +41 -0
  399. package/lib/common/selectors/calculator.js +39 -0
  400. package/lib/common/selectors/calls.js +14 -0
  401. package/lib/common/selectors/interactionTypes.js +45 -0
  402. package/lib/common/selectors/items.js +28 -0
  403. package/lib/common/selectors/qtiImports.js +35 -0
  404. package/lib/common/selectors/quizSessionResults.js +25 -0
  405. package/lib/common/selectors/quizSessions.js +54 -0
  406. package/lib/common/selectors/quizzes.js +146 -0
  407. package/lib/common/selectors/reporting.js +26 -0
  408. package/lib/common/selectors/sessionItemResults.js +41 -0
  409. package/lib/common/selectors/sessionItems.js +53 -0
  410. package/lib/common/selectors/taking.js +64 -0
  411. package/lib/common/selectors/ui.js +12 -0
  412. package/lib/common/util/CustomPropTypes.js +88 -0
  413. package/lib/common/util/ElementsForSelectors.js +22 -0
  414. package/lib/common/util/ExhaustivePaginatedFetcher.js +127 -0
  415. package/lib/common/util/Fetcher.js +455 -0
  416. package/lib/common/util/MultiWeakMap.js +88 -0
  417. package/lib/common/util/PaginatedFetcher.js +110 -0
  418. package/lib/common/util/ThunkQueue.js +163 -0
  419. package/lib/common/util/TimeRecordingService.js +85 -0
  420. package/lib/common/util/TimerService.js +210 -0
  421. package/lib/common/util/cachePreviousArgs.js +32 -0
  422. package/lib/common/util/callHelpers.js +48 -0
  423. package/lib/common/util/componentForItem.js +40 -0
  424. package/lib/common/util/crossDomainMessaging.js +14 -0
  425. package/lib/common/util/debounceLatestPromise.js +38 -0
  426. package/lib/common/util/featureCheck.js +58 -0
  427. package/lib/common/util/fetchHelpers.js +14 -0
  428. package/lib/common/util/formatTimespan.js +68 -0
  429. package/lib/common/util/generateDisplayPositions.js +34 -0
  430. package/lib/common/util/httpHeaders.js +28 -0
  431. package/lib/common/util/immutableHelpers.js +36 -0
  432. package/lib/common/util/instUIMessages.js +17 -0
  433. package/lib/common/util/interactionTypeMetadata.js +60 -0
  434. package/lib/common/util/interactionTypePropsHelper.js +100 -0
  435. package/lib/common/util/interactionTypeRecordForItem.js +36 -0
  436. package/lib/common/util/jsonify.js +39 -0
  437. package/lib/common/util/keyboardClickable.js +17 -0
  438. package/lib/common/util/maxContent.js +22 -0
  439. package/lib/common/util/modalHelpers.js +13 -0
  440. package/lib/common/util/noop.js +12 -0
  441. package/lib/common/util/persistedState.js +61 -0
  442. package/lib/common/util/printUtils.js +50 -0
  443. package/lib/common/util/renderAlerts.js +34 -0
  444. package/lib/common/util/serializeEvent.js +43 -0
  445. package/lib/common/util/sessionStore.js +81 -0
  446. package/lib/common/util/valMap.js +20 -0
  447. package/lib/common/util/warningHelpers.js +160 -0
  448. package/lib/common/util/windowChecks.js +27 -0
  449. package/lib/common/util/withCachedArguments.js +41 -0
  450. package/lib/common/util/withDynamoPagination.js +136 -0
  451. package/lib/common/util/withStateCache.js +63 -0
  452. package/lib/config.js +46 -0
  453. package/lib/configureStore.js +175 -0
  454. package/lib/grading/api/quizEntryRegrades.js +50 -0
  455. package/lib/grading/api/updateResults.js +50 -0
  456. package/lib/index.js +1534 -0
  457. package/lib/moderating/api/quizSessionEvents.js +28 -0
  458. package/lib/moderating/api/quizSessions.js +66 -0
  459. package/lib/moderating/components/events/Event.js +111 -0
  460. package/lib/moderating/components/events/ResponseEvent.js +143 -0
  461. package/lib/moderating/components/events/SessionStartEvent.js +70 -0
  462. package/lib/moderating/components/events/theme.js +18 -0
  463. package/lib/moderating/components/resources/AccommodationsModal/AccommodationsModal.examples.js +23 -0
  464. package/lib/moderating/components/resources/AccommodationsModal/ExtraAttemptSettings/ExtraAttemptsInput/index.js +140 -0
  465. package/lib/moderating/components/resources/AccommodationsModal/ExtraAttemptSettings/ExtraAttemptsInput/{}.examples.js +28 -0
  466. package/lib/moderating/components/resources/AccommodationsModal/ExtraAttemptSettings/index.js +133 -0
  467. package/lib/moderating/components/resources/AccommodationsModal/ExtraTimeMultiplier/index.js +172 -0
  468. package/lib/moderating/components/resources/AccommodationsModal/ExtraTimeSettings/ExtraTimeSettings.examples.js +56 -0
  469. package/lib/moderating/components/resources/AccommodationsModal/ExtraTimeSettings/index.js +173 -0
  470. package/lib/moderating/components/resources/AccommodationsModal/index.js +164 -0
  471. package/lib/moderating/components/resources/ElapsedTime.js +81 -0
  472. package/lib/moderating/components/resources/ModerateTable/index.js +62 -0
  473. package/lib/moderating/components/resources/ModerateTable/presenter.js +442 -0
  474. package/lib/moderating/components/resources/ModerateTable/theme.js +15 -0
  475. package/lib/moderating/components/resources/ModerateTableRow/ModerateTableRow.examples.js +86 -0
  476. package/lib/moderating/components/resources/ModerateTableRow/index.js +31 -0
  477. package/lib/moderating/components/resources/ModerateTableRow/presenter.js +416 -0
  478. package/lib/moderating/components/resources/ModerateTableRow/story.js +27 -0
  479. package/lib/moderating/components/resources/ModerateTableRow/theme.js +14 -0
  480. package/lib/moderating/components/resources/OutstandingQuizzesModal/OutstandingQuizzesModal.examples.js +86 -0
  481. package/lib/moderating/components/resources/OutstandingQuizzesModal/index.js +35 -0
  482. package/lib/moderating/components/resources/OutstandingQuizzesModal/presenter.js +203 -0
  483. package/lib/moderating/components/sidebar/ModerateTray/ModerateTray.examples.js +20 -0
  484. package/lib/moderating/components/sidebar/ModerateTray/index.js +28 -0
  485. package/lib/moderating/components/sidebar/ModerateTray/presenter.js +189 -0
  486. package/lib/moderating/components/sidebar/ResetQuiz/index.js +52 -0
  487. package/lib/moderating/components/sidebar/ResetQuiz/presenter.js +125 -0
  488. package/lib/package.json +1 -0
  489. package/lib/reduxStore.js +49 -0
  490. package/lib/reporting/api/itemAnalyses.js +27 -0
  491. package/lib/reporting/api/quizAnalyses.js +30 -0
  492. package/lib/reporting/components/Caption/index.js +76 -0
  493. package/lib/reporting/components/Caption/theme.js +16 -0
  494. package/lib/reporting/components/MetricsListItem/index.js +88 -0
  495. package/lib/reporting/components/MetricsListItem/theme.js +10 -0
  496. package/lib/reporting/components/charts/CentileDistribution/CentileDistribution.examples.js +32 -0
  497. package/lib/reporting/components/charts/CentileDistribution/index.js +13 -0
  498. package/lib/reporting/components/charts/CentileDistribution/presenter.js +191 -0
  499. package/lib/reporting/components/charts/CentileDistribution/theme.js +16 -0
  500. package/lib/reporting/components/charts/Distribution/CentileDistribution.js +14 -0
  501. package/lib/reporting/components/charts/Distribution/Distribution.js +14 -0
  502. package/lib/reporting/components/charts/Distribution/QuintileDistribution.js +14 -0
  503. package/lib/reporting/components/charts/Distribution/index.js +13 -0
  504. package/lib/reporting/components/charts/Distribution/presenter.js +386 -0
  505. package/lib/reporting/components/charts/Distribution/theme.js +19 -0
  506. package/lib/reporting/components/charts/Legend/index.js +94 -0
  507. package/lib/reporting/components/charts/Legend/theme.js +24 -0
  508. package/lib/reporting/components/charts/QuintileDistribution/QuintileDistribution.examples.js +16 -0
  509. package/lib/reporting/components/charts/QuintileDistribution/index.js +13 -0
  510. package/lib/reporting/components/charts/QuintileDistribution/presenter.js +175 -0
  511. package/lib/reporting/components/charts/QuintileDistribution/theme.js +16 -0
  512. package/lib/reporting/components/itemAnalysis/AnswerFrequencySummary/AnswerFrequencySummary.examples.js +45 -0
  513. package/lib/reporting/components/itemAnalysis/AnswerFrequencySummary/index.js +189 -0
  514. package/lib/reporting/components/itemAnalysis/AnswerFrequencySummary/theme.js +33 -0
  515. package/lib/reporting/components/itemAnalysis/ItemAnalysisRow/ItemAnalysisRow.examples.js +60 -0
  516. package/lib/reporting/components/itemAnalysis/ItemAnalysisRow/index.js +28 -0
  517. package/lib/reporting/components/itemAnalysis/ItemAnalysisRow/presenter.js +337 -0
  518. package/lib/reporting/components/itemAnalysis/ItemAnalysisRow/theme.js +32 -0
  519. package/lib/reporting/components/quizAnalysis/QuizAnalysisOverview.js +188 -0
  520. package/lib/reporting/components/quizAnalysis/theme.js +20 -0
  521. package/lib/reporting/components/resources/OutcomeAnalysis/index.js +30 -0
  522. package/lib/reporting/components/resources/OutcomeAnalysis/presenter.js +129 -0
  523. package/lib/reporting/components/resources/QuizAndItemAnalysis/QuizAndItemAnalysis.examples.js +190 -0
  524. package/lib/reporting/components/resources/QuizAndItemAnalysis/index.js +45 -0
  525. package/lib/reporting/components/resources/QuizAndItemAnalysis/presenter.js +340 -0
  526. package/lib/reporting/components/resources/QuizAndItemAnalysis/theme.js +20 -0
  527. package/lib/reporting/components/resources/ReportCard/index.js +89 -0
  528. package/lib/reporting/components/resources/ReportCard/theme.js +20 -0
  529. package/lib/reporting/components/resources/ReportList/index.js +84 -0
  530. package/lib/reporting/components/resources/ReportList/theme.js +17 -0
  531. package/lib/taking/api/taking.js +371 -0
  532. package/lib/taking/learnosity/index.js +195 -0
  533. package/lib/taking/learnosity/loader.js +87 -0
  534. package/package.json +11 -11
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _keyBy = _interopRequireDefault(require("lodash/keyBy"));
11
+
12
+ var _immutable = require("immutable");
13
+
14
+ var _quizCommon = require("@instructure/quiz-common");
15
+
16
+ var addStimuli = function addStimuli(state, stimuli) {
17
+ var stimuliHash = (0, _keyBy.default)(stimuli, 'id');
18
+ return state.merge((0, _immutable.fromJS)(stimuliHash));
19
+ };
20
+
21
+ var defaultState = (0, _immutable.fromJS)({});
22
+
23
+ var _default = function _default() {
24
+ var state = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : defaultState;
25
+ var action = arguments.length > 1 ? arguments[1] : void 0;
26
+
27
+ switch (action.type) {
28
+ case _quizCommon.ADD_STIMULI:
29
+ return addStimuli(state, action.payload);
30
+
31
+ default:
32
+ return state;
33
+ }
34
+ };
35
+
36
+ exports.default = _default;
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _immutable = require("immutable");
9
+
10
+ var _quizCommon = require("@instructure/quiz-common");
11
+
12
+ var addTagAssociation = function addTagAssociation(state, entityType, entityId, tagAssociation) {
13
+ return state.updateIn([entityType, entityId], function (tags) {
14
+ return tags == null ? (0, _immutable.fromJS)([tagAssociation]) : tags.push((0, _immutable.fromJS)(tagAssociation));
15
+ });
16
+ };
17
+
18
+ var removePendingAdditionTagAssociation = function removePendingAdditionTagAssociation(state, entityType, entityId, tagValue) {
19
+ var additions = state.getIn(['pendingAddition', entityType, entityId]);
20
+
21
+ if (additions != null) {
22
+ return state.setIn(['pendingAddition', entityType, entityId], additions.filterNot(function (t) {
23
+ return t.get('tag_value') === tagValue;
24
+ }));
25
+ } else {
26
+ return state;
27
+ }
28
+ };
29
+
30
+ var removePendingDeletionTagAssociation = function removePendingDeletionTagAssociation(state, entityType, entityId, tagAssociationId) {
31
+ var deletions = state.getIn(['pendingDeletion', entityType, entityId]);
32
+
33
+ if (deletions != null) {
34
+ return state.setIn(['pendingDeletion', entityType, entityId], deletions.filterNot(function (t) {
35
+ return t.get('id') === tagAssociationId;
36
+ }));
37
+ } else {
38
+ return state;
39
+ }
40
+ };
41
+
42
+ var removeTagAssociation = function removeTagAssociation(state, entityType, entityId, tagAssociationId) {
43
+ var tags = state.getIn([entityType, entityId]);
44
+
45
+ if (tags != null) {
46
+ return state.setIn([entityType, entityId], tags.filterNot(function (t) {
47
+ return t.get('id') === tagAssociationId;
48
+ }));
49
+ } else {
50
+ return state;
51
+ }
52
+ };
53
+
54
+ var setPendingAdditions = function setPendingAdditions(state, entityType, entityId, tagsToAdd) {
55
+ return state.setIn(['pendingAddition', entityType, entityId], (0, _immutable.fromJS)(tagsToAdd));
56
+ };
57
+
58
+ var setPendingDeletions = function setPendingDeletions(state, entityType, entityId, tagsToDelete) {
59
+ return state.setIn(['pendingDeletion', entityType, entityId], (0, _immutable.fromJS)(tagsToDelete));
60
+ };
61
+
62
+ var setTagAssociations = function setTagAssociations(state, entityType, entityId, tagAssociations) {
63
+ return state.setIn([entityType, entityId], (0, _immutable.fromJS)(tagAssociations));
64
+ };
65
+
66
+ var setTagInput = function setTagInput(state, entityType, entityId, tagInput) {
67
+ return state.setIn(['tagInput', entityType, entityId], tagInput);
68
+ };
69
+
70
+ var setTagSuggestions = function setTagSuggestions(state, entityType, entityId, tags, text) {
71
+ var tagInput = state.getIn(['tagInput', entityType, entityId]);
72
+
73
+ if (tagInput === text) {
74
+ return state.setIn(['tagSuggestions', entityType, entityId], (0, _immutable.fromJS)(tags));
75
+ }
76
+
77
+ return state;
78
+ };
79
+
80
+ var toTags = function toTags(tag) {
81
+ return {
82
+ id: tag.id,
83
+ tag_value: tag.tagValue,
84
+ tag_id: tag.tagId
85
+ };
86
+ };
87
+
88
+ var setTags = function setTags(state, entityType, entities) {
89
+ var newState = state;
90
+ entities.forEach(function (entity) {
91
+ if (entity.tagAssociations) {
92
+ newState = setTagAssociations(newState, entityType, entity.id, entity.tagAssociations.map(toTags));
93
+ }
94
+ });
95
+ return newState;
96
+ };
97
+
98
+ var defaultState = (0, _immutable.fromJS)({});
99
+
100
+ var _default = function _default() {
101
+ var state = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : defaultState;
102
+ var action = arguments.length > 1 ? arguments[1] : void 0;
103
+
104
+ switch (action.type) {
105
+ case _quizCommon.ADD_ITEMS:
106
+ return setTags(state, 'Item', action.payload);
107
+
108
+ case _quizCommon.ADD_STIMULI:
109
+ return setTags(state, 'Stimulus', action.payload);
110
+
111
+ case _quizCommon.ADD_TAG_ASSOCIATION:
112
+ return addTagAssociation(state, action.payload.entityType, action.payload.entityId, action.payload.tagAssociation);
113
+
114
+ case _quizCommon.REMOVE_PENDING_ADDITION_TAG_ASSOCIATION:
115
+ return removePendingAdditionTagAssociation(state, action.payload.entityType, action.payload.entityId, action.payload.tagValue);
116
+
117
+ case _quizCommon.REMOVE_PENDING_DELETION_TAG_ASSOCIATION:
118
+ return removePendingDeletionTagAssociation(state, action.payload.entityType, action.payload.entityId, action.payload.tagAssociationId);
119
+
120
+ case _quizCommon.REMOVE_TAG_ASSOCIATION:
121
+ return removeTagAssociation(state, action.payload.entityType, action.payload.entityId, action.payload.tagAssociationId);
122
+
123
+ case _quizCommon.SET_PENDING_ADDITION_TAG_ASSOCIATIONS:
124
+ return setPendingAdditions(state, action.payload.entityType, action.payload.entityId, action.payload.tags);
125
+
126
+ case _quizCommon.SET_PENDING_DELETION_TAG_ASSOCIATIONS:
127
+ return setPendingDeletions(state, action.payload.entityType, action.payload.entityId, action.payload.tags);
128
+
129
+ case _quizCommon.SET_TAG_INPUT:
130
+ return setTagInput(state, action.payload.entityType, action.payload.entityId, action.payload.tagInput);
131
+
132
+ case _quizCommon.SET_TAG_SUGGESTIONS:
133
+ return setTagSuggestions(state, action.payload.entityType, action.payload.entityId, action.payload.tags, action.payload.text);
134
+
135
+ default:
136
+ return state;
137
+ }
138
+ };
139
+
140
+ exports.default = _default;
@@ -0,0 +1,143 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _immutable = require("immutable");
9
+
10
+ var _quizCommon = require("@instructure/quiz-common");
11
+
12
+ var defaultResponse = function defaultResponse(payload) {
13
+ return (0, _immutable.Map)({
14
+ position: payload.position,
15
+ itemId: payload.itemId,
16
+ userResponse: payload.userResponse || {},
17
+ clientTimestamp: Date.now(),
18
+ invalid: payload.invalid
19
+ });
20
+ };
21
+
22
+ var cachedSessionIsCurrent = function cachedSessionIsCurrent(state, payload) {
23
+ return state.get('sessionIdForCurrentItem') === payload;
24
+ };
25
+
26
+ var activeQuizSessionChange = function activeQuizSessionChange(state, payload) {
27
+ if (cachedSessionIsCurrent(state, payload)) {
28
+ return state;
29
+ } else {
30
+ return state.clear();
31
+ }
32
+ };
33
+
34
+ var updateQuizSessionStatusOnPageLoad = function updateQuizSessionStatusOnPageLoad(state, payload) {
35
+ return state.set('quizSessionStatusOnPageLoad', payload.quizSessionStatusOnPageLoad);
36
+ };
37
+
38
+ var setCurrentSessionItemPosition = function setCurrentSessionItemPosition(state, payload) {
39
+ return state.set('currentSessionItemPosition', payload.position);
40
+ };
41
+
42
+ var previousQuestion = function previousQuestion(state, payload) {
43
+ var currentPosition = state.get('currentSessionItemPosition');
44
+ return state.set('currentSessionItemPosition', currentPosition - 1);
45
+ };
46
+
47
+ var backtrackingNextQuestion = function backtrackingNextQuestion(state, payload) {
48
+ var currentPosition = state.get('currentSessionItemPosition', 1);
49
+ return state.set('currentSessionItemPosition', currentPosition + 1);
50
+ };
51
+
52
+ var updateIsTaking = function updateIsTaking(state, payload) {
53
+ return state.set('isTaking', payload.isTaking);
54
+ };
55
+
56
+ var updateTimerInfo = function updateTimerInfo(state, payload) {
57
+ return state.mergeIn(['timerData'], payload);
58
+ };
59
+
60
+ var updateTimerMinimized = function updateTimerMinimized(state, payload) {
61
+ return state.setIn(['timerData', 'timerMinimized'], payload.timerMinimized);
62
+ };
63
+
64
+ var getResponse = function getResponse(payload, state) {
65
+ return state.getIn(['responses', payload.position]) || defaultResponse(payload);
66
+ };
67
+
68
+ var mergeModifiedResponse = function mergeModifiedResponse(state, payload) {
69
+ var responseMap = (0, _immutable.Map)([[payload.get('position'), payload]]);
70
+ return state.mergeIn(['responses'], responseMap);
71
+ };
72
+
73
+ var modifyResponse = function modifyResponse(state, payload) {
74
+ var response = getResponse(payload, state);
75
+ var responseWithMods = response.merge(payload);
76
+ return mergeModifiedResponse(state, responseWithMods);
77
+ };
78
+
79
+ var loadResponses = function loadResponses(state, payload) {
80
+ if (payload.length === 0) {
81
+ return state.set('responses', (0, _immutable.Map)());
82
+ }
83
+
84
+ return payload.reduce(modifyResponse, state);
85
+ };
86
+
87
+ var markSessionStartedIdentifier = function markSessionStartedIdentifier(state, payload) {
88
+ return state.get('browserSessionId') === payload.browserSessionId ? state : state.set('browserSessionId', payload.browserSessionId);
89
+ };
90
+
91
+ var updateQuizSubmitFlag = function updateQuizSubmitFlag(state, payload) {
92
+ return state.set('submitFlag', payload.value);
93
+ };
94
+
95
+ var _default = function _default() {
96
+ var state = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : (0, _immutable.Map)();
97
+ var action = arguments.length > 1 ? arguments[1] : void 0;
98
+
99
+ switch (action.type) {
100
+ // two types for event logging differentiation
101
+ case _quizCommon.RESPONSE:
102
+ case _quizCommon.PREVIEW_RESPONSE:
103
+ return modifyResponse(state, action.payload);
104
+
105
+ case _quizCommon.ACTIVE_QUIZ_SESSION_CHANGE:
106
+ return activeQuizSessionChange(state, action.payload);
107
+
108
+ case _quizCommon.PREVIOUS_QUESTION:
109
+ return previousQuestion(state, action.payload);
110
+
111
+ case _quizCommon.BACKTRACKING_NEXT_QUESTION:
112
+ return backtrackingNextQuestion(state, action.payload);
113
+
114
+ case _quizCommon.LOAD_RESUME_DATA:
115
+ return loadResponses(state, action.payload);
116
+
117
+ case _quizCommon.SESSION_STARTED_OR_RESUMED_EVENT:
118
+ return markSessionStartedIdentifier(state, action.payload);
119
+
120
+ case _quizCommon.UPDATE_IS_TAKING:
121
+ return updateIsTaking(state, action.payload);
122
+
123
+ case _quizCommon.UPDATE_TIMER_MINIMIZED:
124
+ return updateTimerMinimized(state, action.payload);
125
+
126
+ case _quizCommon.UPDATE_TIMER_INFO:
127
+ return updateTimerInfo(state, action.payload);
128
+
129
+ case _quizCommon.SET_CURRENT_SESSION_ITEM_POSITION:
130
+ return setCurrentSessionItemPosition(state, action.payload);
131
+
132
+ case _quizCommon.UPDATE_QUIZ_SESSION_STATUS_ON_PAGE_LOAD:
133
+ return updateQuizSessionStatusOnPageLoad(state, action.payload);
134
+
135
+ case _quizCommon.UPDATE_QUIZ_SUBMIT_FLAG:
136
+ return updateQuizSubmitFlag(state, action.payload);
137
+
138
+ default:
139
+ return state;
140
+ }
141
+ };
142
+
143
+ exports.default = _default;
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _immutable = require("immutable");
9
+
10
+ var _quizCommon = require("@instructure/quiz-common");
11
+
12
+ var toggle = function toggle(state, key) {
13
+ return state.update(key, function (value) {
14
+ return !value;
15
+ });
16
+ };
17
+
18
+ var defaultState = (0, _immutable.fromJS)({});
19
+
20
+ var _default = function _default() {
21
+ var state = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : defaultState;
22
+ var action = arguments.length > 1 ? arguments[1] : void 0;
23
+
24
+ switch (action.type) {
25
+ case _quizCommon.CLEAR_UI:
26
+ return state.delete(action.payload);
27
+
28
+ case _quizCommon.MERGE_UI:
29
+ return state.mergeDeepIn([action.payload.key], action.payload.value);
30
+
31
+ case _quizCommon.SET_UI:
32
+ return state.set(action.payload.key, action.payload.value);
33
+
34
+ case _quizCommon.TOGGLE_UI:
35
+ return toggle(state, action.payload);
36
+
37
+ case _quizCommon.OCCLUDE_QUIZ_ENTRIES:
38
+ return state.set('quizEntriesOccluded', action.payload);
39
+
40
+ case _quizCommon.ACTIVE_BANK_CHANGE:
41
+ return state.set('activeBankId', action.payload);
42
+
43
+ case _quizCommon.ACTIVE_BANK_ENTRY_CHANGE:
44
+ return state.set('activeBankEntryId', action.payload);
45
+
46
+ default:
47
+ return state;
48
+ }
49
+ };
50
+
51
+ exports.default = _default;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _immutable = require("immutable");
9
+
10
+ var _quizCommon = require("@instructure/quiz-common");
11
+
12
+ var _default = function _default() {
13
+ var state = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : (0, _immutable.fromJS)({});
14
+ var action = arguments.length > 1 ? arguments[1] : void 0;
15
+
16
+ switch (action.type) {
17
+ case _quizCommon.CLEAR_ALT_TEXT:
18
+ return state.delete('altText');
19
+
20
+ case _quizCommon.CLEAR_FILES:
21
+ return state.delete('files');
22
+
23
+ case _quizCommon.FILE_RECEIVED:
24
+ // TODO: Have an option for adding multiple files
25
+ return state.set('files', action.payload.file);
26
+
27
+ case _quizCommon.FILE_UPLOAD_CALL:
28
+ return state.set('files', action.payload.file);
29
+
30
+ case _quizCommon.FILE_UPLOAD_STATUS:
31
+ return state.set('status', action.payload.status);
32
+
33
+ case _quizCommon.SET_ALT_TEXT:
34
+ return state.set('altText', action.payload.altText);
35
+
36
+ default:
37
+ return state;
38
+ }
39
+ };
40
+
41
+ exports.default = _default;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.hasVisibleQuestionCalculator = hasVisibleQuestionCalculator;
7
+
8
+ var _featureCheck = require("../util/featureCheck.js");
9
+
10
+ var _taking = require("./taking.js");
11
+
12
+ var _sessionItems = require("./sessionItems.js");
13
+
14
+ var _quizSessions = require("../selectors/quizSessions.js");
15
+
16
+ // Helpers
17
+ function anyActiveSessionItemsHaveCalculators(state) {
18
+ var activeSessionId = state.getIn(['quizSessions', 'activeQuizSessionId']);
19
+ return state.get('sessionItems').some(function (item) {
20
+ return item.get('quizSessionId') === activeSessionId && item.get('calculatorType') !== 'none';
21
+ });
22
+ } // Exports
23
+
24
+
25
+ function hasVisibleQuestionCalculator(state) {
26
+ if (!(0, _featureCheck.featureOn)('calculator_per_question')) {
27
+ return false;
28
+ }
29
+
30
+ if ((0, _quizSessions.isOneQuestionAtATime)(state)) {
31
+ // If one question at a time, does current question have a calculator?
32
+ var position = (0, _taking.getCurrentSessionItemPosition)(state);
33
+ var currentQuestion = (0, _sessionItems.getItemByPosition)(state, position);
34
+ return currentQuestion && currentQuestion.get('calculatorType') !== 'none';
35
+ } // If multiple questions at a time, do any have a calculator?
36
+
37
+
38
+ return anyActiveSessionItemsHaveCalculators(state);
39
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.fileUploading = fileUploading;
7
+
8
+ var _quizCommon = require("@instructure/quiz-common");
9
+
10
+ var path = 'calls';
11
+
12
+ function fileUploading(state) {
13
+ return state.getIn([path, _quizCommon.FILE_UPLOAD_URL_CALL, 'requestStatus']) === 'calling' || state.getIn([path, _quizCommon.FILE_UPLOAD_CALL, 'requestStatus']) === 'calling';
14
+ }
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.getInteractionTypes = exports.getInteractionType = void 0;
9
+
10
+ var _applyDecoratedDescriptor2 = _interopRequireDefault(require("@babel/runtime/helpers/applyDecoratedDescriptor"));
11
+
12
+ var _immutable = require("immutable");
13
+
14
+ var _interactionTypeRecordForItem = _interopRequireDefault(require("../util/interactionTypeRecordForItem.js"));
15
+
16
+ var _withStateCache = _interopRequireDefault(require("../util/withStateCache.js"));
17
+
18
+ var _reduxStore = _interopRequireDefault(require("../../reduxStore.js"));
19
+
20
+ var _dec, _obj;
21
+
22
+ var getInteractionType = function getInteractionType(state, id) {
23
+ var interactionTypeData = state.getIn(['interactionTypes', id]) || (0, _immutable.Map)();
24
+ var slug = interactionTypeData.get('slug');
25
+ var IntTypeRecord = (0, _interactionTypeRecordForItem.default)(slug);
26
+ return new IntTypeRecord(interactionTypeData);
27
+ };
28
+
29
+ exports.getInteractionType = getInteractionType;
30
+ var cacheHelper = (_dec = (0, _withStateCache.default)(function () {
31
+ return [['interactionTypes']];
32
+ }), (_obj = {
33
+ // This is needed for withStateCache to work properly :-/
34
+ state: function state() {
35
+ return _reduxStore.default.getAppState();
36
+ },
37
+ interactionTypes: function interactionTypes(state) {
38
+ return state.get('interactionTypes', (0, _immutable.Map)()).map(function (intTypeData) {
39
+ return getInteractionType(state, intTypeData.get('id'));
40
+ }).valueSeq().toList();
41
+ }
42
+ }, ((0, _applyDecoratedDescriptor2.default)(_obj, "interactionTypes", [_dec], Object.getOwnPropertyDescriptor(_obj, "interactionTypes"), _obj)), _obj)); // This is a hack to continue using withStateCache until we implement reselect
43
+
44
+ var getInteractionTypes = cacheHelper.interactionTypes.bind(cacheHelper);
45
+ exports.getInteractionTypes = getInteractionTypes;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.getItemById = getItemById;
9
+ exports.getTemporaryItem = getTemporaryItem;
10
+
11
+ var _immutable = require("immutable");
12
+
13
+ var _quizCommon = require("@instructure/quiz-common");
14
+
15
+ var _Item = _interopRequireDefault(require("../records/Item.js"));
16
+
17
+ function getItemById(state, id) {
18
+ if (id === _quizCommon.TEMPORARY_ITEM_ID) {
19
+ return getTemporaryItem(state);
20
+ }
21
+
22
+ return _Item.default.create(state.getIn(['items', id]));
23
+ }
24
+
25
+ function getTemporaryItem(state) {
26
+ var temporaryItemData = state.getIn(['modifications', 'items', _quizCommon.TEMPORARY_ITEM_ID], (0, _immutable.Map)());
27
+ return _Item.default.create(temporaryItemData);
28
+ }
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.getLatestQtiImportForParentWithType = void 0;
9
+
10
+ var _QtiImport = _interopRequireDefault(require("../records/QtiImport.js"));
11
+
12
+ var _immutable = require("immutable");
13
+
14
+ var getQtiImports = function getQtiImports(state) {
15
+ return state.get('qtiImports', (0, _immutable.Map)());
16
+ };
17
+
18
+ var getQtiImportById = function getQtiImportById(state, id) {
19
+ return _QtiImport.default.create(state.getIn(['qtiImports', id]));
20
+ };
21
+
22
+ var getLatestQtiImportForParentWithType = function getLatestQtiImportForParentWithType(state, parentId, parentType) {
23
+ var allImports = getQtiImports(state);
24
+ var importsForType = allImports.valueSeq().filter(function (qtiImport) {
25
+ return qtiImport.get('parentId') === parentId && qtiImport.get('parentType') === parentType;
26
+ }); // ids are strings, so we need to parse them below for maxBy to work properly
27
+
28
+ var latestImport = importsForType.maxBy(function (i) {
29
+ return parseInt(i.get('id'));
30
+ });
31
+ var id = latestImport && latestImport.get('id');
32
+ return getQtiImportById(state, id);
33
+ };
34
+
35
+ exports.getLatestQtiImportForParentWithType = getLatestQtiImportForParentWithType;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.getQuizSessionResultsByIds = getQuizSessionResultsByIds;
9
+ exports.getQuizSessionResultById = getQuizSessionResultById;
10
+
11
+ var _immutable = require("immutable");
12
+
13
+ var _QuizSessionResult = _interopRequireDefault(require("../records/QuizSessionResult.js"));
14
+
15
+ function getQuizSessionResultsByIds(state) {
16
+ var ids = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
17
+ return ids.reduce(function (list, id) {
18
+ var sessionItem = getQuizSessionResultById(state, id);
19
+ return sessionItem ? list.push(sessionItem) : list;
20
+ }, (0, _immutable.List)());
21
+ }
22
+
23
+ function getQuizSessionResultById(state, id) {
24
+ return _QuizSessionResult.default.create(state.getIn(['quizSessionResults', id]));
25
+ }
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.isOneQuestionAtATime = exports.getBacktrackingIsAllowed = exports.getQuizSessionsByIds = exports.getQuizSessionById = exports.getActiveQuizSessionId = exports.getActiveQuizSession = void 0;
9
+
10
+ var _reselect = require("reselect");
11
+
12
+ var _QuizSession = _interopRequireDefault(require("../records/QuizSession.js"));
13
+
14
+ var _immutable = require("immutable");
15
+
16
+ // TODO: Use more reselect! Create a getQuizSessions selector that can be used for reselecting quiz sessions by id
17
+ var path = 'quizSessions';
18
+
19
+ var getActiveQuizSession = function getActiveQuizSession(state) {
20
+ return getQuizSessionById(state, getActiveQuizSessionId(state));
21
+ };
22
+
23
+ exports.getActiveQuizSession = getActiveQuizSession;
24
+
25
+ var getActiveQuizSessionId = function getActiveQuizSessionId(state) {
26
+ return state.getIn([path, 'activeQuizSessionId']);
27
+ };
28
+
29
+ exports.getActiveQuizSessionId = getActiveQuizSessionId;
30
+
31
+ var getQuizSessionById = function getQuizSessionById(state, id) {
32
+ return _QuizSession.default.create(state.getIn([path, id]));
33
+ };
34
+
35
+ exports.getQuizSessionById = getQuizSessionById;
36
+
37
+ var getQuizSessionsByIds = function getQuizSessionsByIds(state) {
38
+ var ids = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
39
+ return ids.reduce(function (list, id) {
40
+ var quizSession = getQuizSessionById(state, id);
41
+ return quizSession ? list.push(quizSession) : list;
42
+ }, (0, _immutable.List)());
43
+ }; // Reselect Selectors
44
+
45
+
46
+ exports.getQuizSessionsByIds = getQuizSessionsByIds;
47
+ var getBacktrackingIsAllowed = (0, _reselect.createSelector)(getActiveQuizSession, function (activeSession) {
48
+ return activeSession && activeSession.get('allowBacktracking');
49
+ });
50
+ exports.getBacktrackingIsAllowed = getBacktrackingIsAllowed;
51
+ var isOneQuestionAtATime = (0, _reselect.createSelector)(getActiveQuizSession, function (activeSession) {
52
+ return activeSession && activeSession.get('oneAtATimeType') === 'question';
53
+ });
54
+ exports.isOneQuestionAtATime = isOneQuestionAtATime;