@instructure/quiz-core 17.19.2-rc.5 → 17.19.3-rc.2

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,182 @@
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 _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
12
+ var _immutable = require("immutable");
13
+
14
+ var _keyBy = _interopRequireDefault(require("lodash/keyBy"));
15
+
16
+ var _isArrayLike = _interopRequireDefault(require("lodash/isArrayLike"));
17
+
18
+ var _quizCommon = require("@instructure/quiz-common");
19
+
20
+ var addQuizEntries = function addQuizEntries(state, quizEntries) {
21
+ var quizEntriesHash = (0, _keyBy.default)(quizEntries, 'id');
22
+ return (0, _immutable.fromJS)(quizEntriesHash);
23
+ };
24
+
25
+ var addQuizEntry = function addQuizEntry(state, quizEntry) {
26
+ // This is sad, but because of how we handle our data in the
27
+ // getPersistenceActions/CallHandlers all of our data will be
28
+ // arrays coming in to the store from fetcher, even if it
29
+ // _should_ be a single object.
30
+ var qe = (0, _isArrayLike.default)(quizEntry) ? (0, _keyBy.default)(quizEntry, 'id') : (0, _defineProperty2.default)({}, quizEntry.id, quizEntry);
31
+ return state.mergeDeep((0, _immutable.fromJS)(qe));
32
+ };
33
+
34
+ var deleteQuizEntry = function deleteQuizEntry(state, _ref2) {
35
+ var id = _ref2.id;
36
+ var deletedEntry = state.get(id);
37
+ var stateWithoutDeletedEntry = state.delete(id); // Adjust the positions of subsequent quiz entries, to fill in the gap left
38
+ // by the one we're deleting.
39
+
40
+ var moved = stateWithoutDeletedEntry.filter(function (entry) {
41
+ return entry.get('position') > deletedEntry.get('position');
42
+ }).map(function (entry) {
43
+ return entry.set('position', entry.get('position') - 1);
44
+ });
45
+ return stateWithoutDeletedEntry.merge(moved);
46
+ };
47
+
48
+ var deleteStimulusEntry = function deleteStimulusEntry(state, _ref3) {
49
+ var id = _ref3.id,
50
+ _ref3$childQuizEntryI = _ref3.childQuizEntryIds,
51
+ childQuizEntryIds = _ref3$childQuizEntryI === void 0 ? [] : _ref3$childQuizEntryI;
52
+ var stimulusEntry = state.get(id); // TODO: use deleteAll here after upgrading to immutable 4:
53
+ // http://facebook.github.io/immutable-js/docs/#/Map/deleteAll
54
+
55
+ var stateWithoutDeletedEntries = childQuizEntryIds.reduce(function (reduced, childQuizEntryId) {
56
+ return reduced.delete(childQuizEntryId);
57
+ }, state.delete(id)); // Disassociate any quiz entries that were associated with the stimulus, but
58
+ // not deleted along with it.
59
+
60
+ var disassociated = stateWithoutDeletedEntries.map(function (entry) {
61
+ return entry.get('stimulusQuizEntryId') === id ? entry.set('stimulusQuizEntryId', '') : entry;
62
+ }); // Adjust the positions of all the quiz entries that were associated with the
63
+ // removed stimulus and were not deleted along with it, as well as all
64
+ // subsequent entries, to fill in the gap left by the removed stimulus.
65
+
66
+ var moved = disassociated.valueSeq().filter(function (entry) {
67
+ return entry.get('position') > stimulusEntry.get('position');
68
+ }).sortBy(function (entry) {
69
+ return entry.get('position');
70
+ }).map(function (entry, index) {
71
+ return entry.set('position', stimulusEntry.get('position') + index);
72
+ }).reduce(function (entries, entry) {
73
+ return entries.set(entry.get('id'), entry);
74
+ }, (0, _immutable.Map)());
75
+ return disassociated.merge(moved);
76
+ };
77
+
78
+ var moveQuizEntry = function moveQuizEntry(state, _ref4) {
79
+ var id = _ref4.id,
80
+ position = _ref4.position,
81
+ stimulusQuizEntryId = _ref4.stimulusQuizEntryId;
82
+ var originalQuizEntry = state.get(id);
83
+ var originalPosition = originalQuizEntry.get('position');
84
+ var originalIsStimulus = originalQuizEntry.get('entryType') === 'Stimulus'; // We shouldn't be trying to move a stimulus into itself, this should
85
+ // not happen, but let's be safe.
86
+
87
+ if (originalIsStimulus && stimulusQuizEntryId.length != 0) {
88
+ return state;
89
+ }
90
+
91
+ var updatedQuizEntry = originalQuizEntry.merge({
92
+ stimulusQuizEntryId: stimulusQuizEntryId
93
+ });
94
+ var updatedState = state.set(id, updatedQuizEntry); // If the position hasn't changed, we might still be moving the entry into or
95
+ // out of a stimulus.
96
+
97
+ if (position === originalPosition) {
98
+ return updatedState;
99
+ } // Now we need to rearrange positions to account for the move
100
+ // If the quizEntry is a stimulus, we'll need to move its children as well
101
+
102
+
103
+ var nestedEntries = updatedQuizEntry.get('entryType') === 'Stimulus' ? updatedState.filter(function (entry) {
104
+ return entry.get('stimulusQuizEntryId') === id;
105
+ }) : (0, _immutable.Map)();
106
+ var movedEntries = nestedEntries.set(id, updatedQuizEntry);
107
+ var maxOriginalPosition = movedEntries.map(function (entry) {
108
+ return entry.get('position');
109
+ }).max();
110
+
111
+ if (position > originalPosition && position <= maxOriginalPosition) {
112
+ // trying to move to a position currently inside itself
113
+ // and we can't do that
114
+ return updatedState;
115
+ } // We're really just interested in the affected range:
116
+ // ..., (a, b, c), x, y, ...
117
+ // ..., x, y, (a, b, c), ...
118
+ // where (a, b, c) are the entries we're trying to *move*, and x, y are the entries
119
+ // that are *displaced*
120
+ // - The moved entries increase their index by the number of entries that are displaced
121
+ // - The displaced entries decrease their index by the number of entries that are moved
122
+ // The operation is symmetric (just swap increase/decrease in the lines above)
123
+ // Ranges
124
+ // - moving farther to the right in the list:
125
+ // moved: [originalPosition, maxOriginalPosition]
126
+ // displaced: [maxOriginalPosition + 1, position]
127
+ // affected: [originalPosition, position]
128
+ // - moving farther to the left the list:
129
+ // moved: [originalPosition, maxOriginalPosition]
130
+ // displaced: [position, originalPosition - 1]
131
+ // affected: [position, maxOriginalPosition]
132
+
133
+
134
+ var start = Math.min(originalPosition, position);
135
+ var end = Math.max(maxOriginalPosition, position);
136
+ var numMoved = maxOriginalPosition - originalPosition + 1;
137
+ var numDisplaced = end - start - numMoved + 1;
138
+ var direction = position > originalPosition ? 1 : -1;
139
+ return updatedState.map(function (entry) {
140
+ var pos = entry.get('position');
141
+
142
+ if (pos >= start && pos <= end) {
143
+ if (pos >= originalPosition && pos <= maxOriginalPosition) {
144
+ // moved entries
145
+ return entry.set('position', pos + numDisplaced * direction);
146
+ } else {
147
+ // displaced entries
148
+ return entry.set('position', pos - numMoved * direction);
149
+ }
150
+ } else {
151
+ // out of range entries
152
+ return entry;
153
+ }
154
+ });
155
+ };
156
+
157
+ var _default = function _default() {
158
+ var state = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : (0, _immutable.Map)();
159
+ var action = arguments.length > 1 ? arguments[1] : void 0;
160
+
161
+ switch (action.type) {
162
+ case _quizCommon.ADD_QUIZ_ENTRIES:
163
+ return addQuizEntries(state, action.payload);
164
+
165
+ case _quizCommon.ADD_QUIZ_ENTRY:
166
+ return addQuizEntry(state, action.payload);
167
+
168
+ case _quizCommon.DELETE_QUIZ_ENTRY:
169
+ return deleteQuizEntry(state, action.payload);
170
+
171
+ case _quizCommon.DELETE_STIMULUS_ENTRY:
172
+ return deleteStimulusEntry(state, action.payload);
173
+
174
+ case _quizCommon.MOVE_QUIZ_ENTRY:
175
+ return moveQuizEntry(state, action.payload);
176
+
177
+ default:
178
+ return state;
179
+ }
180
+ };
181
+
182
+ exports.default = _default;
@@ -0,0 +1,36 @@
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
+ function addQuizSessionEvents(state, quizSessionEvents) {
13
+ // in practice all events will share the same quizSessionId for now
14
+ var quizSessionId = quizSessionEvents[0].quizSessionId; // add a new list or concat with a preexisting list
15
+
16
+ return state.updateIn([quizSessionId], (0, _immutable.List)(), function (events) {
17
+ return events.concat((0, _immutable.fromJS)(quizSessionEvents));
18
+ });
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_QUIZ_SESSION_EVENTS:
29
+ return addQuizSessionEvents(state, action.payload);
30
+
31
+ default:
32
+ return state;
33
+ }
34
+ };
35
+
36
+ exports.default = _default;
@@ -0,0 +1,34 @@
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 _immutable = require("immutable");
11
+
12
+ var _keyBy = _interopRequireDefault(require("lodash/keyBy"));
13
+
14
+ var _quizCommon = require("@instructure/quiz-common");
15
+
16
+ var addQuizSessionResults = function addQuizSessionResults(state, action) {
17
+ var quizSessionResultsHash = (0, _keyBy.default)(action.payload, 'id');
18
+ return state.mergeDeep(quizSessionResultsHash);
19
+ };
20
+
21
+ var _default = function _default() {
22
+ var state = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : (0, _immutable.fromJS)({});
23
+ var action = arguments.length > 1 ? arguments[1] : void 0;
24
+
25
+ switch (action.type) {
26
+ case _quizCommon.ADD_QUIZ_SESSION_RESULTS:
27
+ return addQuizSessionResults(state, action);
28
+
29
+ default:
30
+ return state;
31
+ }
32
+ };
33
+
34
+ exports.default = _default;
@@ -0,0 +1,68 @@
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 _uniq = _interopRequireDefault(require("lodash/uniq"));
13
+
14
+ var _immutable = require("immutable");
15
+
16
+ var _quizCommon = require("@instructure/quiz-common");
17
+
18
+ var updateQuizSessionSessionItemReferences = function updateQuizSessionSessionItemReferences(state, sessionItems) {
19
+ var reducer = function reducer(tempState, sessionItem) {
20
+ return tempState.updateIn([sessionItem.quizSessionId, 'sessionItems'], function (items) {
21
+ return (items || (0, _immutable.fromJS)([])).push(sessionItem.id);
22
+ });
23
+ };
24
+
25
+ var uniqifySessionItems = function uniqifySessionItems(quizSession) {
26
+ if (!(quizSession instanceof _immutable.Map)) {
27
+ return quizSession;
28
+ }
29
+
30
+ return quizSession.updateIn(['sessionItems'], function (items) {
31
+ var jsItems = items ? items.toJS() : [];
32
+ return (0, _immutable.fromJS)((0, _uniq.default)(jsItems));
33
+ });
34
+ };
35
+
36
+ return sessionItems.reduce(reducer, state).map(uniqifySessionItems);
37
+ };
38
+
39
+ var addQuizSessions = function addQuizSessions(state, quizSessions) {
40
+ var keyedQuizSessions = (0, _keyBy.default)(quizSessions, 'id');
41
+ return state.mergeWith( // to avoid replacing Lists with null (sessionItems)
42
+ function (oldValue, newValue) {
43
+ return oldValue.merge ? oldValue.merge(newValue) : newValue;
44
+ }, (0, _immutable.fromJS)(keyedQuizSessions));
45
+ };
46
+
47
+ var defaultState = (0, _immutable.fromJS)({});
48
+
49
+ var _default = function _default() {
50
+ var state = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : defaultState;
51
+ var action = arguments.length > 1 ? arguments[1] : void 0;
52
+
53
+ switch (action.type) {
54
+ case _quizCommon.ADD_QUIZ_SESSIONS:
55
+ return addQuizSessions(state, action.payload);
56
+
57
+ case _quizCommon.ADD_SESSION_ITEMS:
58
+ return updateQuizSessionSessionItemReferences(state, action.payload);
59
+
60
+ case _quizCommon.ACTIVE_QUIZ_SESSION_CHANGE:
61
+ return state.set('activeQuizSessionId', action.payload);
62
+
63
+ default:
64
+ return state;
65
+ }
66
+ };
67
+
68
+ exports.default = _default;
@@ -0,0 +1,77 @@
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 _immutable = require("immutable");
11
+
12
+ var _isArrayLike = _interopRequireDefault(require("lodash/isArrayLike"));
13
+
14
+ var _keyBy = _interopRequireDefault(require("lodash/keyBy"));
15
+
16
+ var _map = _interopRequireDefault(require("lodash/map"));
17
+
18
+ var _quizCommon = require("@instructure/quiz-common");
19
+
20
+ var assocQuizEntry = function assocQuizEntry(state, quizId, quizEntries) {
21
+ var quizEntryIds = (0, _immutable.List)((0, _map.default)(quizEntries, 'id'));
22
+ return state.setIn([quizId, 'quizEntries'], quizEntryIds);
23
+ };
24
+
25
+ var dissocQuizEntry = function dissocQuizEntry(state, quizId, quizEntryId) {
26
+ return state.updateIn([quizId, 'quizEntries'], function (quizEntriesList) {
27
+ return quizEntriesList.filter(function (item) {
28
+ return item !== quizEntryId;
29
+ });
30
+ });
31
+ };
32
+
33
+ var assocItemAnalysis = function assocItemAnalysis(state, quizId, itemAnalyses) {
34
+ var itemAnalysisIds = (0, _immutable.List)((0, _map.default)(itemAnalyses, 'item_id'));
35
+ return state.setIn([quizId, 'itemAnalyses'], itemAnalysisIds);
36
+ };
37
+
38
+ var assocQuizAnalysis = function assocQuizAnalysis(state, quizId, quizAnalysis) {
39
+ return state.setIn([quizId, 'quizAnalysis'], quizAnalysis.quiz_id);
40
+ };
41
+
42
+ var addQuizzes = function addQuizzes(state, quizzes) {
43
+ var quizHash = (0, _isArrayLike.default)(quizzes) ? (0, _keyBy.default)(quizzes, 'id') : quizzes;
44
+ return state.mergeDeep((0, _immutable.fromJS)(quizHash));
45
+ };
46
+
47
+ var defaultState = (0, _immutable.fromJS)({});
48
+
49
+ var _default = function _default() {
50
+ var state = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : defaultState;
51
+ var action = arguments.length > 1 ? arguments[1] : void 0;
52
+
53
+ switch (action.type) {
54
+ case _quizCommon.DISASSOCIATE_QUIZ_ENTRY:
55
+ return dissocQuizEntry(state, "".concat(action.payload.quizId), action.payload.quizEntryId);
56
+
57
+ case _quizCommon.ASSOCIATE_QUIZ_ENTRIES:
58
+ return assocQuizEntry(state, "".concat(action.payload.quizId), action.payload.quizEntries);
59
+
60
+ case _quizCommon.ASSOCIATE_ITEM_ANALYSES:
61
+ return assocItemAnalysis(state, "".concat(action.payload.quizId), action.payload.itemAnalyses);
62
+
63
+ case _quizCommon.ASSOCIATE_QUIZ_ANALYSIS:
64
+ return assocQuizAnalysis(state, "".concat(action.payload.quizId), action.payload.quizAnalysis);
65
+
66
+ case _quizCommon.ADD_QUIZZES:
67
+ return addQuizzes(state, action.payload);
68
+
69
+ case _quizCommon.ACTIVE_QUIZ_CHANGE:
70
+ return state.set('activeQuizId', action.payload);
71
+
72
+ default:
73
+ return state;
74
+ }
75
+ };
76
+
77
+ exports.default = _default;
@@ -0,0 +1,39 @@
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 defaultState = (0, _immutable.fromJS)({
13
+ scoreReconciliation: 'new_score'
14
+ });
15
+
16
+ var _default = function _default() {
17
+ var state = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : defaultState;
18
+ var action = arguments.length > 1 ? arguments[1] : void 0;
19
+
20
+ switch (action.type) {
21
+ case _quizCommon.REGRADE_TOGGLE_REGRADING_EDIT_MODE:
22
+ if (state.get('regradeEditModeKey') === action.payload) {
23
+ return state.remove('regradeEditModeKey');
24
+ } else {
25
+ return state.set('regradeEditModeKey', action.payload);
26
+ }
27
+
28
+ case _quizCommon.REGRADE_SET_SCORE_RECONCILIATION:
29
+ return state.set('scoreReconciliation', action.payload);
30
+
31
+ case _quizCommon.REGRADE_SET_PAYLOAD:
32
+ return state.set('regradingPayload', action.payload);
33
+
34
+ default:
35
+ return state;
36
+ }
37
+ };
38
+
39
+ exports.default = _default;
@@ -0,0 +1,72 @@
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 addItemAnalyses = function addItemAnalyses(state, itemAnalyses) {
17
+ return state.setIn(['item_analysis'], (0, _immutable.fromJS)((0, _keyBy.default)(itemAnalyses, 'itemId')));
18
+ };
19
+
20
+ var addQuizAnalysis = function addQuizAnalysis(state, quizAnalyses) {
21
+ var quizAnalysis = quizAnalyses[0];
22
+ return state.setIn(['quiz_analysis', quizAnalysis.quizId], (0, _immutable.fromJS)(quizAnalysis));
23
+ };
24
+
25
+ var markQuizAnalysisNotFound = function markQuizAnalysisNotFound(state, quizId) {
26
+ return state.setIn(['quiz_analysis', quizId], (0, _immutable.fromJS)({
27
+ quizId: quizId,
28
+ notFound: true
29
+ }));
30
+ };
31
+
32
+ var markItemAnalysisNotFound = function markItemAnalysisNotFound(state, itemId) {
33
+ return state.setIn(['item_analysis', itemId], (0, _immutable.fromJS)({
34
+ itemId: itemId,
35
+ notFound: true
36
+ }));
37
+ };
38
+
39
+ var toggleItemAnalysisRow = function toggleItemAnalysisRow(state, itemId) {
40
+ return state.updateIn(['item_analysis_row_open', itemId], false, function (isOpen) {
41
+ return !isOpen;
42
+ });
43
+ };
44
+
45
+ var defaultState = (0, _immutable.fromJS)({});
46
+
47
+ var _default = function _default() {
48
+ var state = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : defaultState;
49
+ var action = arguments.length > 1 ? arguments[1] : void 0;
50
+
51
+ switch (action.type) {
52
+ case _quizCommon.ADD_ITEM_ANALYSES:
53
+ return addItemAnalyses(state, action.payload);
54
+
55
+ case _quizCommon.ADD_QUIZ_ANALYSIS:
56
+ return addQuizAnalysis(state, action.payload);
57
+
58
+ case _quizCommon.QUIZ_ANALYSIS_NOT_FOUND:
59
+ return markQuizAnalysisNotFound(state, action.payload);
60
+
61
+ case _quizCommon.ITEM_ANALYSIS_NOT_FOUND:
62
+ return markItemAnalysisNotFound(state, action.payload);
63
+
64
+ case _quizCommon.TOGGLE_ITEM_ANALYSIS_EXPANDED:
65
+ return toggleItemAnalysisRow(state, action.payload);
66
+
67
+ default:
68
+ return state;
69
+ }
70
+ };
71
+
72
+ exports.default = _default;
@@ -0,0 +1,28 @@
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.Map)({});
14
+ var action = arguments.length > 1 ? arguments[1] : void 0;
15
+
16
+ switch (action.type) {
17
+ case _quizCommon.SCROLL_TO_COMPONENT:
18
+ return state.set('scrolledComponentKey', action.payload).set('scrollingFocus', action.scrollingFocus);
19
+
20
+ case _quizCommon.CLEAR_SCROLLED_COMPONENT:
21
+ return state.set('scrolledComponentKey', null).set('scrollingFocus', null);
22
+
23
+ default:
24
+ return state;
25
+ }
26
+ };
27
+
28
+ exports.default = _default;
@@ -0,0 +1,34 @@
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 _immutable = require("immutable");
11
+
12
+ var _keyBy = _interopRequireDefault(require("lodash/keyBy"));
13
+
14
+ var _quizCommon = require("@instructure/quiz-common");
15
+
16
+ var addSessionItemResults = function addSessionItemResults(state, sessionItemResults) {
17
+ var sessionItemResultsHash = (0, _keyBy.default)(sessionItemResults, 'id');
18
+ return state.merge((0, _immutable.fromJS)(sessionItemResultsHash));
19
+ };
20
+
21
+ var _default = function _default() {
22
+ var state = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : (0, _immutable.Map)();
23
+ var action = arguments.length > 1 ? arguments[1] : void 0;
24
+
25
+ switch (action.type) {
26
+ case _quizCommon.ADD_SESSION_ITEM_RESULTS:
27
+ return addSessionItemResults(state, action.payload);
28
+
29
+ default:
30
+ return state;
31
+ }
32
+ };
33
+
34
+ exports.default = _default;
@@ -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 addSessionItems = function addSessionItems(state, sessionItems) {
17
+ var sessionItemsHash = (0, _keyBy.default)(sessionItems, 'id');
18
+ return state.mergeDeep((0, _immutable.fromJS)(sessionItemsHash));
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_SESSION_ITEMS:
29
+ return addSessionItems(state, action.payload);
30
+
31
+ default:
32
+ return state;
33
+ }
34
+ };
35
+
36
+ exports.default = _default;
@@ -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.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 addShareBanks = function addShareBanks(state, sharedBank) {
17
+ return state.mergeDeep((0, _immutable.fromJS)((0, _keyBy.default)(sharedBank, 'id')));
18
+ };
19
+
20
+ var updateSharedBankPermission = function updateSharedBankPermission(state, _ref) {
21
+ var sharedBankId = _ref.sharedBankId,
22
+ permission = _ref.permission;
23
+ return state.setIn([sharedBankId, 'permission'], permission);
24
+ };
25
+
26
+ var _default = function _default() {
27
+ var state = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : (0, _immutable.fromJS)({});
28
+ var action = arguments.length > 1 ? arguments[1] : void 0;
29
+
30
+ switch (action.type) {
31
+ case _quizCommon.ADD_SHARED_BANKS:
32
+ return addShareBanks(state, action.payload);
33
+
34
+ case _quizCommon.UPDATE_SHARED_BANK_PERMISSION:
35
+ return updateSharedBankPermission(state, action.payload);
36
+
37
+ case _quizCommon.REMOVE_SHARED_BANK:
38
+ return state.remove(action.payload);
39
+
40
+ default:
41
+ return state;
42
+ }
43
+ };
44
+
45
+ exports.default = _default;
@@ -0,0 +1,30 @@
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.Map)({
14
+ isOpen: false
15
+ });
16
+ var action = arguments.length > 1 ? arguments[1] : void 0;
17
+
18
+ switch (action.type) {
19
+ case _quizCommon.TOGGLE_SIDEBAR:
20
+ return state.set('isOpen', !state.get('isOpen'));
21
+
22
+ case _quizCommon.SET_SIDEBAR_STIMULUS_IS_SHOWING:
23
+ return state.set(action.payload.stimulusId, action.payload.bool);
24
+
25
+ default:
26
+ return state;
27
+ }
28
+ };
29
+
30
+ exports.default = _default;