@instructure/quiz-core 17.19.2 → 17.19.3-rc.0

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 (530) hide show
  1. package/lib/banks/api/bankEntries.js +203 -0
  2. package/lib/banks/api/banks.js +315 -0
  3. package/lib/banks/api/tagAssociations.js +128 -0
  4. package/lib/banks/components/AddBankEntryModal/index.js +47 -0
  5. package/lib/banks/components/AddBankEntryModal/presenter.js +156 -0
  6. package/lib/banks/components/AddToBankModal/index.js +53 -0
  7. package/lib/banks/components/AddToBankModal/presenter.js +238 -0
  8. package/lib/banks/components/Bank/index.js +60 -0
  9. package/lib/banks/components/Bank/presenter.js +390 -0
  10. package/lib/banks/components/Bank/theme.js +21 -0
  11. package/lib/banks/components/BankEntriesList/index.js +30 -0
  12. package/lib/banks/components/BankEntriesList/presenter.js +93 -0
  13. package/lib/banks/components/BankEntriesList/theme.js +13 -0
  14. package/lib/banks/components/BankEntry/index.js +97 -0
  15. package/lib/banks/components/BankEntry/presenter.js +763 -0
  16. package/lib/banks/components/BankEntry/theme.js +31 -0
  17. package/lib/banks/components/BankEntryRow/BankEntryRow.examples.js +55 -0
  18. package/lib/banks/components/BankEntryRow/index.js +68 -0
  19. package/lib/banks/components/BankEntryRow/presenter.js +453 -0
  20. package/lib/banks/components/BankEntryRow/theme.js +30 -0
  21. package/lib/banks/components/BankSearch/BankSearch.stories.js +75 -0
  22. package/lib/banks/components/BankSearch/index.js +49 -0
  23. package/lib/banks/components/BankSearch/presenter.js +243 -0
  24. package/lib/banks/components/BankSearch/theme.js +16 -0
  25. package/lib/banks/components/Banks/index.js +58 -0
  26. package/lib/banks/components/Banks/noResults.svg +56 -0
  27. package/lib/banks/components/Banks/presenter.js +480 -0
  28. package/lib/banks/components/Banks/theme.js +20 -0
  29. package/lib/banks/components/BanksList/index.js +38 -0
  30. package/lib/banks/components/BanksList/presenter.js +390 -0
  31. package/lib/banks/components/BanksList/theme.js +28 -0
  32. package/lib/banks/components/CopyMoveBankEntryModal/index.js +56 -0
  33. package/lib/banks/components/CopyMoveBankEntryModal/presenter.js +264 -0
  34. package/lib/banks/components/CreateBankModal/index.js +64 -0
  35. package/lib/banks/components/CreateBankModal/presenter.js +190 -0
  36. package/lib/banks/components/CreateBankModal/theme.js +16 -0
  37. package/lib/banks/components/EditBankModal/index.js +56 -0
  38. package/lib/banks/components/EditBankModal/presenter.js +183 -0
  39. package/lib/banks/components/EditBankModal/theme.js +15 -0
  40. package/lib/banks/components/HeaderMenu/index.js +34 -0
  41. package/lib/banks/components/HeaderMenu/presenter.js +100 -0
  42. package/lib/banks/components/HeaderMenu/theme.js +15 -0
  43. package/lib/banks/components/NavWrapper/NavWrapper.examples.js +27 -0
  44. package/lib/banks/components/NavWrapper/index.js +24 -0
  45. package/lib/banks/components/NavWrapper/presenter.js +189 -0
  46. package/lib/banks/components/NavWrapper/theme.js +24 -0
  47. package/lib/banks/components/SharingModal/ContextualButton/index.js +80 -0
  48. package/lib/banks/components/SharingModal/ShareList/ShareList.examples.js +30 -0
  49. package/lib/banks/components/SharingModal/ShareList/index.js +253 -0
  50. package/lib/banks/components/SharingModal/ShareList/theme.js +10 -0
  51. package/lib/banks/components/SharingModal/asyncSearch.js +399 -0
  52. package/lib/banks/components/SharingModal/index.js +45 -0
  53. package/lib/banks/components/SharingModal/presenter.js +530 -0
  54. package/lib/banks/components/SharingModal/theme.js +17 -0
  55. package/lib/building/api/items.js +255 -0
  56. package/lib/building/api/qtiImports.js +135 -0
  57. package/lib/building/api/quizEntries.js +380 -0
  58. package/lib/building/api/quizzes.js +285 -0
  59. package/lib/building/api/stimuli.js +92 -0
  60. package/lib/building/components/QTIImportModal/index.js +54 -0
  61. package/lib/building/components/layout/Sidebar/Sidebar.examples.js +134 -0
  62. package/lib/building/components/layout/Sidebar/SidebarItem/index.js +86 -0
  63. package/lib/building/components/layout/Sidebar/SidebarItem/presenter.js +159 -0
  64. package/lib/building/components/layout/Sidebar/Stimulus/index.js +87 -0
  65. package/lib/building/components/layout/Sidebar/Stimulus/presenter.js +167 -0
  66. package/lib/building/components/layout/Sidebar/index.js +80 -0
  67. package/lib/building/components/layout/Sidebar/presenter.js +267 -0
  68. package/lib/building/components/layout/Sidebar/theme.js +13 -0
  69. package/lib/building/components/layout/header/BuildingButtons/index.js +56 -0
  70. package/lib/building/components/layout/header/BuildingButtons/presenter.js +195 -0
  71. package/lib/building/components/layout/header/BuildingButtons/theme.js +19 -0
  72. package/lib/building/components/layout/header/SDKBuildingButtons/index.js +27 -0
  73. package/lib/building/components/resources/ActionButtons/index.js +40 -0
  74. package/lib/building/components/resources/ActionButtons/presenter.js +194 -0
  75. package/lib/building/components/resources/ActionButtons/theme.js +16 -0
  76. package/lib/building/components/resources/AddToBankOptions/index.js +119 -0
  77. package/lib/building/components/resources/AddToBankOptions/theme.js +15 -0
  78. package/lib/building/components/resources/BanksTray/index.js +34 -0
  79. package/lib/building/components/resources/BanksTray/presenter.js +233 -0
  80. package/lib/building/components/resources/DeleteStimulusModal/index.js +54 -0
  81. package/lib/building/components/resources/DeleteStimulusModal/presenter.js +316 -0
  82. package/lib/building/components/resources/DeleteStimulusModal/theme.js +17 -0
  83. package/lib/building/components/resources/ItemFeedbackModal/index.js +52 -0
  84. package/lib/building/components/resources/ItemFeedbackModal/presenter.js +183 -0
  85. package/lib/building/components/resources/ItemFeedbackModal/theme.js +13 -0
  86. package/lib/building/components/resources/MoveImmutableModal/index.js +54 -0
  87. package/lib/building/components/resources/MoveImmutableModal/presenter.js +140 -0
  88. package/lib/building/components/resources/quiz/editButton/EditButton.js +89 -0
  89. package/lib/building/components/resources/quiz/instructions/Edit/index.js +22 -0
  90. package/lib/building/components/resources/quiz/instructions/Edit/presenter.js +142 -0
  91. package/lib/building/components/resources/quiz/instructions/Edit/theme.js +14 -0
  92. package/lib/building/components/resources/quiz/instructions/Instructions/Instructions.examples.js +34 -0
  93. package/lib/building/components/resources/quiz/instructions/Instructions/index.js +39 -0
  94. package/lib/building/components/resources/quiz/instructions/Instructions/presenter.js +223 -0
  95. package/lib/building/components/resources/quiz/instructions/Instructions/theme.js +20 -0
  96. package/lib/building/components/resources/quiz/instructions/Show/index.js +97 -0
  97. package/lib/building/components/resources/quiz/instructions/Show/theme.js +16 -0
  98. package/lib/building/components/resources/quiz/title/Edit/index.js +214 -0
  99. package/lib/building/components/resources/quiz/title/Edit/theme.js +24 -0
  100. package/lib/building/components/resources/quiz/title/Show/index.js +97 -0
  101. package/lib/building/components/resources/quiz/title/Show/theme.js +16 -0
  102. package/lib/building/components/resources/quiz/title/Title/Title.examples.js +51 -0
  103. package/lib/building/components/resources/quiz/title/Title/index.js +42 -0
  104. package/lib/building/components/resources/quiz/title/Title/presenter.js +217 -0
  105. package/lib/building/components/resources/quiz/title/Title/theme.js +20 -0
  106. package/lib/building/components/resources/quizEntry/QuizEntry/index.js +98 -0
  107. package/lib/building/components/resources/quizEntry/QuizEntry/presenter.js +435 -0
  108. package/lib/building/components/resources/quizEntry/QuizEntry/theme.js +19 -0
  109. package/lib/building/components/resources/quizEntry/QuizEntryBank/QuizEntryBankEdit/index.js +41 -0
  110. package/lib/building/components/resources/quizEntry/QuizEntryBank/QuizEntryBankEdit/presenter.js +291 -0
  111. package/lib/building/components/resources/quizEntry/QuizEntryBank/QuizEntryBankEdit/theme.js +28 -0
  112. package/lib/building/components/resources/quizEntry/QuizEntryBank/QuizEntryBankShow/index.js +139 -0
  113. package/lib/building/components/resources/quizEntry/QuizEntryBank/QuizEntryBankShow/theme.js +20 -0
  114. package/lib/building/components/resources/quizEntry/QuizEntryEdit/Footer/index.js +39 -0
  115. package/lib/building/components/resources/quizEntry/QuizEntryEdit/Footer/presenter.js +299 -0
  116. package/lib/building/components/resources/quizEntry/QuizEntryEdit/Footer/theme.js +17 -0
  117. package/lib/building/components/resources/quizEntry/QuizEntryEdit/Header/index.js +366 -0
  118. package/lib/building/components/resources/quizEntry/QuizEntryEdit/Header/theme.js +21 -0
  119. package/lib/building/components/resources/quizEntry/QuizEntryEdit/index.js +98 -0
  120. package/lib/building/components/resources/quizEntry/QuizEntryEdit/presenter.js +545 -0
  121. package/lib/building/components/resources/quizEntry/QuizEntryEdit/theme.js +17 -0
  122. package/lib/building/components/resources/quizEntry/QuizEntryShow/index.js +51 -0
  123. package/lib/building/components/resources/quizEntry/QuizEntryShow/presenter.js +385 -0
  124. package/lib/building/components/resources/quizEntry/QuizEntryShow/theme.js +33 -0
  125. package/lib/common/actions/addInteractionTypes.js +15 -0
  126. package/lib/common/actions/alerts.js +72 -0
  127. package/lib/common/actions/bankEntries.js +26 -0
  128. package/lib/common/actions/bankSearch.js +51 -0
  129. package/lib/common/actions/banks.js +71 -0
  130. package/lib/common/actions/config.js +23 -0
  131. package/lib/common/actions/dragAndDrop.js +15 -0
  132. package/lib/common/actions/editing.js +33 -0
  133. package/lib/common/actions/errorsShowing.js +35 -0
  134. package/lib/common/actions/features.js +23 -0
  135. package/lib/common/actions/items.js +15 -0
  136. package/lib/common/actions/modal.js +86 -0
  137. package/lib/common/actions/moderation.js +22 -0
  138. package/lib/common/actions/modifications.js +560 -0
  139. package/lib/common/actions/outcomes.js +31 -0
  140. package/lib/common/actions/postMessage.js +15 -0
  141. package/lib/common/actions/printing.js +23 -0
  142. package/lib/common/actions/qtiImports.js +22 -0
  143. package/lib/common/actions/quizEntries.js +56 -0
  144. package/lib/common/actions/quizSessionEvents.js +17 -0
  145. package/lib/common/actions/quizSessionResults.js +17 -0
  146. package/lib/common/actions/quizSessions.js +129 -0
  147. package/lib/common/actions/quizzes.js +74 -0
  148. package/lib/common/actions/regrading.js +31 -0
  149. package/lib/common/actions/reporting.js +47 -0
  150. package/lib/common/actions/scrolling.js +24 -0
  151. package/lib/common/actions/sessionItemResults.js +17 -0
  152. package/lib/common/actions/sessionItems.js +17 -0
  153. package/lib/common/actions/sharedBanks.js +38 -0
  154. package/lib/common/actions/sidebar.js +25 -0
  155. package/lib/common/actions/stimuli.js +15 -0
  156. package/lib/common/actions/tagAssociations.js +113 -0
  157. package/lib/common/actions/taking.js +160 -0
  158. package/lib/common/actions/ui.js +83 -0
  159. package/lib/common/actions/upload.js +57 -0
  160. package/lib/common/api/callHandlers.js +217 -0
  161. package/lib/common/api/camelizeHelpers.js +40 -0
  162. package/lib/common/api/features.js +27 -0
  163. package/lib/common/api/fileUpload.js +48 -0
  164. package/lib/common/api/getPersistenceActions.js +140 -0
  165. package/lib/common/api/helpers.js +197 -0
  166. package/lib/common/api/interactionTypes.js +24 -0
  167. package/lib/common/api/quizSessions.js +236 -0
  168. package/lib/common/api/quizzes.js +55 -0
  169. package/lib/common/api/schema.js +109 -0
  170. package/lib/common/components/ConfirmationModal/index.js +37 -0
  171. package/lib/common/components/ConfirmationModal/presenter.js +156 -0
  172. package/lib/common/components/ImportModal/ImportFileSelector/index.js +167 -0
  173. package/lib/common/components/ImportModal/ImportFileSelector/theme.js +23 -0
  174. package/lib/common/components/ImportModal/index.js +78 -0
  175. package/lib/common/components/ImportModal/presenter.js +442 -0
  176. package/lib/common/components/ImportModal/theme.js +13 -0
  177. package/lib/common/components/LearnosityCalculator/index.js +196 -0
  178. package/lib/common/components/Pin/Pin.examples.js +20 -0
  179. package/lib/common/components/Pin/index.js +13 -0
  180. package/lib/common/components/Pin/presenter.js +88 -0
  181. package/lib/common/components/PreviewFrame/examples.config.js +24 -0
  182. package/lib/common/components/PreviewFrame/index.js +71 -0
  183. package/lib/common/components/PrintFontSizeModal/index.js +13 -0
  184. package/lib/common/components/PrintFontSizeModal/presenter.js +204 -0
  185. package/lib/common/components/PrintFontSizeModal/theme.js +17 -0
  186. package/lib/common/components/RichContentInput/RceImageImportModal/index.js +28 -0
  187. package/lib/common/components/RichContentInput/RceImageImportModal/presenter.js +115 -0
  188. package/lib/common/components/RichContentInput/index.js +33 -0
  189. package/lib/common/components/RichContentInput/presenter.js +102 -0
  190. package/lib/common/components/SDKApp/index.js +206 -0
  191. package/lib/common/components/SDKApp/theme.js +10 -0
  192. package/lib/common/components/SDKHeaderCalculator.js +29 -0
  193. package/lib/common/components/SDKMenuButton.js +27 -0
  194. package/lib/common/components/SDKTimer.js +29 -0
  195. package/lib/common/components/alerts/index.js +33 -0
  196. package/lib/common/components/alerts/presenter.js +115 -0
  197. package/lib/common/components/alerts/theme.js +18 -0
  198. package/lib/common/components/layout/Page/index.js +102 -0
  199. package/lib/common/components/layout/Page/theme.js +17 -0
  200. package/lib/common/components/layout/header/Calculator/index.js +36 -0
  201. package/lib/common/components/layout/header/Calculator/presenter.js +84 -0
  202. package/lib/common/components/layout/header/HeaderMenuButton/index.js +39 -0
  203. package/lib/common/components/layout/header/HeaderMenuButton/presenter.js +86 -0
  204. package/lib/common/components/layout/header/HeaderMenuButton/theme.js +18 -0
  205. package/lib/common/components/layout/header/Timer/index.js +48 -0
  206. package/lib/common/components/layout/header/Timer/presenter.js +201 -0
  207. package/lib/common/components/layout/header/Timer/theme.js +25 -0
  208. package/lib/common/components/layout/sidebar/PositionSummary/index.js +81 -0
  209. package/lib/common/components/layout/sidebar/PositionSummary/theme.js +22 -0
  210. package/lib/common/components/layout/sidebar/Sidebar/Pin.js +78 -0
  211. package/lib/common/components/layout/sidebar/Sidebar/Sidebar.examples.js +46 -0
  212. package/lib/common/components/layout/sidebar/Sidebar/index.js +338 -0
  213. package/lib/common/components/layout/sidebar/Sidebar/theme.js +50 -0
  214. package/lib/common/components/layout/sidebar/SidebarItem/index.js +46 -0
  215. package/lib/common/components/layout/sidebar/SidebarItem/presenter.js +235 -0
  216. package/lib/common/components/layout/sidebar/SidebarItem/theme.js +33 -0
  217. package/lib/common/components/layout/sidebar/Stimulus/Collection/index.js +20 -0
  218. package/lib/common/components/layout/sidebar/Stimulus/Collection/presenter.js +195 -0
  219. package/lib/common/components/layout/sidebar/Stimulus/Collection/theme.js +17 -0
  220. package/lib/common/components/layout/sidebar/Stimulus/Summary/index.js +20 -0
  221. package/lib/common/components/layout/sidebar/Stimulus/Summary/presenter.js +182 -0
  222. package/lib/common/components/layout/sidebar/Stimulus/Summary/theme.js +20 -0
  223. package/lib/common/components/layout/sidebar/Stimulus/Title/index.js +89 -0
  224. package/lib/common/components/layout/sidebar/Stimulus/Title/theme.js +10 -0
  225. package/lib/common/components/layout/sidebar/Stimulus/index.js +42 -0
  226. package/lib/common/components/layout/sidebar/Stimulus/presenter.js +202 -0
  227. package/lib/common/components/layout/sidebar/Stimulus/theme.js +26 -0
  228. package/lib/common/components/resources/BankSelection/BankSelection.examples.js +26 -0
  229. package/lib/common/components/resources/BankSelection/index.js +39 -0
  230. package/lib/common/components/resources/BankSelection/presenter.js +253 -0
  231. package/lib/common/components/resources/WarningWrapper/index.js +167 -0
  232. package/lib/common/components/resources/WarningWrapper/theme.js +20 -0
  233. package/lib/common/components/resources/entry/EntrySave/index.js +40 -0
  234. package/lib/common/components/resources/entry/EntrySave/presenter.js +221 -0
  235. package/lib/common/components/resources/item/ItemEdit/index.js +91 -0
  236. package/lib/common/components/resources/item/ItemEdit/presenter.js +231 -0
  237. package/lib/common/components/resources/item/ItemOverride/index.js +55 -0
  238. package/lib/common/components/resources/item/ItemOverride/presenter.js +108 -0
  239. package/lib/common/components/resources/item/ItemShow/index.js +71 -0
  240. package/lib/common/components/resources/positionBox/PositionBox.js +78 -0
  241. package/lib/common/components/resources/positionBox/theme.js +21 -0
  242. package/lib/common/components/resources/quiz/AddContent/Body/index.js +42 -0
  243. package/lib/common/components/resources/quiz/AddContent/Body/presenter.js +207 -0
  244. package/lib/common/components/resources/quiz/AddContent/Body/theme.js +20 -0
  245. package/lib/common/components/resources/quiz/AddContent/Button/index.js +129 -0
  246. package/lib/common/components/resources/quiz/AddContent/Button/theme.js +30 -0
  247. package/lib/common/components/resources/quiz/AddContent/Modal/index.js +44 -0
  248. package/lib/common/components/resources/quiz/AddContent/Modal/presenter.js +103 -0
  249. package/lib/common/components/resources/quiz/AddContent/Popover/index.js +54 -0
  250. package/lib/common/components/resources/quiz/AddContent/Popover/presenter.js +185 -0
  251. package/lib/common/components/resources/quiz/AddContent/Popover/theme.js +15 -0
  252. package/lib/common/components/resources/quiz/info/QuizInfo.js +52 -0
  253. package/lib/common/components/resources/quiz/instructions/Instructions.js +76 -0
  254. package/lib/common/components/resources/quiz/instructions/theme.js +15 -0
  255. package/lib/common/components/resources/quiz/title/Title.js +78 -0
  256. package/lib/common/components/resources/quiz/title/theme.js +16 -0
  257. package/lib/common/components/resources/quizSessionResult/Header/index.js +119 -0
  258. package/lib/common/components/resources/quizSessionResult/Header/theme.js +17 -0
  259. package/lib/common/components/resources/quizSessionResult/Info/Info.examples.js +46 -0
  260. package/lib/common/components/resources/quizSessionResult/Info/index.js +321 -0
  261. package/lib/common/components/resources/quizSessionResult/Info/theme.js +20 -0
  262. package/lib/common/components/resources/sessionItemResult/ResultStimulus/index.js +129 -0
  263. package/lib/common/components/resources/sessionItemResult/ResultStimulus/theme.js +39 -0
  264. package/lib/common/components/resources/sessionItemResult/SessionItemResult/index.js +30 -0
  265. package/lib/common/components/resources/sessionItemResult/SessionItemResult/presenter.js +392 -0
  266. package/lib/common/components/resources/sessionItemResult/SessionItemResult/theme.js +37 -0
  267. package/lib/common/components/resources/sessionItemResult/SessionItemResultsList/index.js +123 -0
  268. package/lib/common/components/resources/sessionItemResult/SessionItemResultsList/theme.js +21 -0
  269. package/lib/common/components/resources/stimulus/Stimulus/index.js +45 -0
  270. package/lib/common/components/resources/stimulus/Stimulus/presenter.js +255 -0
  271. package/lib/common/components/resources/stimulus/Stimulus/theme.js +22 -0
  272. package/lib/common/components/resources/stimulus/StimulusEdit/index.js +81 -0
  273. package/lib/common/components/resources/stimulus/StimulusEdit/presenter.js +558 -0
  274. package/lib/common/components/resources/stimulus/StimulusEdit/theme.js +24 -0
  275. package/lib/common/components/resources/stimulus/StimulusEditInfo/index.js +39 -0
  276. package/lib/common/components/resources/stimulus/StimulusEditInfo/presenter.js +247 -0
  277. package/lib/common/components/resources/stimulus/StimulusEditInfo/theme.js +18 -0
  278. package/lib/common/components/resources/stimulus/StimulusShow/index.js +142 -0
  279. package/lib/common/components/resources/stimulus/StimulusShow/theme.js +22 -0
  280. package/lib/common/components/resources/stimulus/StimulusShowInfo/StimulusShowInfo.examples.js +22 -0
  281. package/lib/common/components/resources/stimulus/StimulusShowInfo/index.js +87 -0
  282. package/lib/common/components/shared/Card/CardContent/index.js +73 -0
  283. package/lib/common/components/shared/Card/CardContent/theme.js +24 -0
  284. package/lib/common/components/shared/Card/CardWrapper/index.js +72 -0
  285. package/lib/common/components/shared/Card/CardWrapper/theme.js +21 -0
  286. package/lib/common/components/shared/Card/index.js +46 -0
  287. package/lib/common/components/shared/ExpandButton/index.js +90 -0
  288. package/lib/common/components/shared/ExpandButton/theme.js +12 -0
  289. package/lib/common/components/shared/FormattedDuration/FormattedDuration.examples.js +27 -0
  290. package/lib/common/components/shared/FormattedDuration/index.js +126 -0
  291. package/lib/common/components/shared/IfFeature/index.js +24 -0
  292. package/lib/common/components/shared/IfFeature/presenter.js +56 -0
  293. package/lib/common/components/shared/InteractionTypes/index.js +20 -0
  294. package/lib/common/components/shared/InteractionTypes/presenter.js +197 -0
  295. package/lib/common/components/shared/InteractionTypes/theme.js +18 -0
  296. package/lib/common/components/shared/PaginatedCollection/index.js +36 -0
  297. package/lib/common/components/shared/PaginatedCollection/presenter.js +228 -0
  298. package/lib/common/components/shared/PaginatedCollection/theme.js +17 -0
  299. package/lib/common/components/shared/Paginator/index.js +90 -0
  300. package/lib/common/components/shared/Paginator/theme.js +13 -0
  301. package/lib/common/components/shared/PrintTrigger/index.js +43 -0
  302. package/lib/common/components/shared/PrintTrigger/presenter.js +151 -0
  303. package/lib/common/components/shared/TagDisplay/index.js +105 -0
  304. package/lib/common/components/shared/TagDisplay/theme.js +10 -0
  305. package/lib/common/components/shared/TagSelect/index.js +13 -0
  306. package/lib/common/components/shared/TagSelect/presenter.js +306 -0
  307. package/lib/common/components/shared/TagSuggestSelect/index.js +36 -0
  308. package/lib/common/components/shared/TagSuggestSelect/presenter.js +135 -0
  309. package/lib/common/components/shared/TagWrapper/index.js +13 -0
  310. package/lib/common/components/shared/TagWrapper/presenter.js +89 -0
  311. package/lib/common/components/shared/TimeUnitsInput/TimeUnitsInput.examples.js +25 -0
  312. package/lib/common/components/shared/TimeUnitsInput/index.js +366 -0
  313. package/lib/common/components/shared/drag_and_drop/DragAndDropZone/index.js +126 -0
  314. package/lib/common/components/shared/drag_and_drop/DragAndDropZone/theme.js +25 -0
  315. package/lib/common/components/shared/drag_and_drop/DragHandle/index.js +51 -0
  316. package/lib/common/components/shared/drag_and_drop/DragHandle/presenter.js +324 -0
  317. package/lib/common/components/shared/drag_and_drop/dragAndDropUtils.js +403 -0
  318. package/lib/common/components/shared/errors/Errors.js +81 -0
  319. package/lib/common/components/shared/errors/theme.js +16 -0
  320. package/lib/common/components/shared/file_selector/FileSelector.js +90 -0
  321. package/lib/common/components/shared/file_selector/theme.js +18 -0
  322. package/lib/common/components/shared/functionality/componentWithOutsideClick.js +94 -0
  323. package/lib/common/components/shared/functionality/disableDraggingOverride.js +22 -0
  324. package/lib/common/components/shared/functionality/makeEditable.js +152 -0
  325. package/lib/common/components/shared/functionality/makeScrollable.js +174 -0
  326. package/lib/common/components/shared/overlay/Overlay.js +95 -0
  327. package/lib/common/components/shared/overlay/theme.js +17 -0
  328. package/lib/common/components/shared/return_button/ReturnButton.js +66 -0
  329. package/lib/common/components/shared/spinner/Spinner.js +92 -0
  330. package/lib/common/components/shared/spinner/theme.js +13 -0
  331. package/lib/common/kinesis/QuizEventsLogger.js +155 -0
  332. package/lib/common/kinesis/StreamQueue.js +141 -0
  333. package/lib/common/kinesis/client.js +66 -0
  334. package/lib/common/kinesis/config.js +54 -0
  335. package/lib/common/kinesis/eventTypes.js +48 -0
  336. package/lib/common/middleware/alertTimerMiddleware.js +32 -0
  337. package/lib/common/middleware/crossDomainMessagingMiddleware.js +25 -0
  338. package/lib/common/middleware/eventLoggerMiddleware.js +42 -0
  339. package/lib/common/middleware/persistedStorageMiddleware.js +66 -0
  340. package/lib/common/react-redux.js +21 -0
  341. package/lib/common/records/Alert.js +37 -0
  342. package/lib/common/records/Bank.js +129 -0
  343. package/lib/common/records/BankEntry.js +96 -0
  344. package/lib/common/records/Item.js +151 -0
  345. package/lib/common/records/ItemAnalysis.js +177 -0
  346. package/lib/common/records/QtiImport.js +63 -0
  347. package/lib/common/records/Quiz.js +205 -0
  348. package/lib/common/records/QuizAnalysis.js +121 -0
  349. package/lib/common/records/QuizEntry.js +543 -0
  350. package/lib/common/records/QuizSession.js +219 -0
  351. package/lib/common/records/QuizSessionEvent.js +65 -0
  352. package/lib/common/records/QuizSessionResult.js +90 -0
  353. package/lib/common/records/Response.js +65 -0
  354. package/lib/common/records/SessionItem.js +150 -0
  355. package/lib/common/records/SessionItemResult.js +91 -0
  356. package/lib/common/records/Stimulus.js +101 -0
  357. package/lib/common/records/baseRecord.js +116 -0
  358. package/lib/common/records/index.js +135 -0
  359. package/lib/common/records/reduxRecord.js +46 -0
  360. package/lib/common/reducers/alerts.js +28 -0
  361. package/lib/common/reducers/bankEntries.js +38 -0
  362. package/lib/common/reducers/bankSearch.js +50 -0
  363. package/lib/common/reducers/banks.js +71 -0
  364. package/lib/common/reducers/calls.js +28 -0
  365. package/lib/common/reducers/config.js +32 -0
  366. package/lib/common/reducers/dragAndDrop.js +25 -0
  367. package/lib/common/reducers/editing.js +25 -0
  368. package/lib/common/reducers/errorsShowing.js +31 -0
  369. package/lib/common/reducers/features.js +28 -0
  370. package/lib/common/reducers/interactionTypes.js +33 -0
  371. package/lib/common/reducers/items.js +36 -0
  372. package/lib/common/reducers/modal.js +45 -0
  373. package/lib/common/reducers/moderation.js +34 -0
  374. package/lib/common/reducers/modifications.js +225 -0
  375. package/lib/common/reducers/outcomes.js +37 -0
  376. package/lib/common/reducers/printing.js +26 -0
  377. package/lib/common/reducers/qtiImports.js +39 -0
  378. package/lib/common/reducers/quizEntries.js +182 -0
  379. package/lib/common/reducers/quizSessionEvents.js +36 -0
  380. package/lib/common/reducers/quizSessionResults.js +34 -0
  381. package/lib/common/reducers/quizSessions.js +68 -0
  382. package/lib/common/reducers/quizzes.js +77 -0
  383. package/lib/common/reducers/regrading.js +39 -0
  384. package/lib/common/reducers/reporting.js +72 -0
  385. package/lib/common/reducers/scrolling.js +28 -0
  386. package/lib/common/reducers/sessionItemResults.js +34 -0
  387. package/lib/common/reducers/sessionItems.js +36 -0
  388. package/lib/common/reducers/sharedBanks.js +45 -0
  389. package/lib/common/reducers/sidebar.js +30 -0
  390. package/lib/common/reducers/stimuli.js +36 -0
  391. package/lib/common/reducers/tagAssociations.js +140 -0
  392. package/lib/common/reducers/taking.js +143 -0
  393. package/lib/common/reducers/ui.js +51 -0
  394. package/lib/common/reducers/upload.js +41 -0
  395. package/lib/common/selectors/calculator.js +39 -0
  396. package/lib/common/selectors/calls.js +14 -0
  397. package/lib/common/selectors/interactionTypes.js +45 -0
  398. package/lib/common/selectors/items.js +28 -0
  399. package/lib/common/selectors/qtiImports.js +35 -0
  400. package/lib/common/selectors/quizSessionResults.js +25 -0
  401. package/lib/common/selectors/quizSessions.js +54 -0
  402. package/lib/common/selectors/quizzes.js +146 -0
  403. package/lib/common/selectors/reporting.js +26 -0
  404. package/lib/common/selectors/sessionItemResults.js +41 -0
  405. package/lib/common/selectors/sessionItems.js +53 -0
  406. package/lib/common/selectors/taking.js +64 -0
  407. package/lib/common/selectors/ui.js +12 -0
  408. package/lib/common/util/CustomPropTypes.js +88 -0
  409. package/lib/common/util/ElementsForSelectors.js +22 -0
  410. package/lib/common/util/ExhaustivePaginatedFetcher.js +127 -0
  411. package/lib/common/util/Fetcher.js +455 -0
  412. package/lib/common/util/MultiWeakMap.js +88 -0
  413. package/lib/common/util/PaginatedFetcher.js +110 -0
  414. package/lib/common/util/ThunkQueue.js +163 -0
  415. package/lib/common/util/TimeRecordingService.js +85 -0
  416. package/lib/common/util/TimerService.js +210 -0
  417. package/lib/common/util/cachePreviousArgs.js +32 -0
  418. package/lib/common/util/callHelpers.js +48 -0
  419. package/lib/common/util/componentForItem.js +40 -0
  420. package/lib/common/util/crossDomainMessaging.js +14 -0
  421. package/lib/common/util/debounceLatestPromise.js +38 -0
  422. package/lib/common/util/featureCheck.js +58 -0
  423. package/lib/common/util/fetchHelpers.js +14 -0
  424. package/lib/common/util/formatTimespan.js +68 -0
  425. package/lib/common/util/generateDisplayPositions.js +34 -0
  426. package/lib/common/util/httpHeaders.js +28 -0
  427. package/lib/common/util/immutableHelpers.js +36 -0
  428. package/lib/common/util/instUIMessages.js +17 -0
  429. package/lib/common/util/interactionTypeMetadata.js +60 -0
  430. package/lib/common/util/interactionTypePropsHelper.js +99 -0
  431. package/lib/common/util/interactionTypeRecordForItem.js +36 -0
  432. package/lib/common/util/jsonify.js +39 -0
  433. package/lib/common/util/keyboardClickable.js +17 -0
  434. package/lib/common/util/maxContent.js +22 -0
  435. package/lib/common/util/modalHelpers.js +13 -0
  436. package/lib/common/util/noop.js +12 -0
  437. package/lib/common/util/persistedState.js +61 -0
  438. package/lib/common/util/printUtils.js +50 -0
  439. package/lib/common/util/renderAlerts.js +34 -0
  440. package/lib/common/util/serializeEvent.js +43 -0
  441. package/lib/common/util/sessionStore.js +81 -0
  442. package/lib/common/util/valMap.js +20 -0
  443. package/lib/common/util/warningHelpers.js +160 -0
  444. package/lib/common/util/windowChecks.js +27 -0
  445. package/lib/common/util/withCachedArguments.js +41 -0
  446. package/lib/common/util/withDynamoPagination.js +136 -0
  447. package/lib/common/util/withStateCache.js +63 -0
  448. package/lib/config.js +46 -0
  449. package/lib/configureStore.js +175 -0
  450. package/lib/grading/api/quizEntryRegrades.js +50 -0
  451. package/lib/grading/api/updateResults.js +50 -0
  452. package/lib/index.js +1534 -0
  453. package/lib/moderating/api/quizSessionEvents.js +28 -0
  454. package/lib/moderating/api/quizSessions.js +66 -0
  455. package/lib/moderating/components/events/Event.js +111 -0
  456. package/lib/moderating/components/events/ResponseEvent.js +143 -0
  457. package/lib/moderating/components/events/SessionStartEvent.js +70 -0
  458. package/lib/moderating/components/events/theme.js +18 -0
  459. package/lib/moderating/components/resources/AccommodationsModal/AccommodationsModal.examples.js +23 -0
  460. package/lib/moderating/components/resources/AccommodationsModal/ExtraAttemptSettings/ExtraAttemptsInput/index.js +140 -0
  461. package/lib/moderating/components/resources/AccommodationsModal/ExtraAttemptSettings/ExtraAttemptsInput/{}.examples.js +28 -0
  462. package/lib/moderating/components/resources/AccommodationsModal/ExtraAttemptSettings/index.js +133 -0
  463. package/lib/moderating/components/resources/AccommodationsModal/ExtraTimeMultiplier/index.js +172 -0
  464. package/lib/moderating/components/resources/AccommodationsModal/ExtraTimeSettings/ExtraTimeSettings.examples.js +56 -0
  465. package/lib/moderating/components/resources/AccommodationsModal/ExtraTimeSettings/index.js +173 -0
  466. package/lib/moderating/components/resources/AccommodationsModal/index.js +164 -0
  467. package/lib/moderating/components/resources/ElapsedTime.js +81 -0
  468. package/lib/moderating/components/resources/ModerateTable/index.js +62 -0
  469. package/lib/moderating/components/resources/ModerateTable/presenter.js +442 -0
  470. package/lib/moderating/components/resources/ModerateTable/theme.js +15 -0
  471. package/lib/moderating/components/resources/ModerateTableRow/ModerateTableRow.examples.js +86 -0
  472. package/lib/moderating/components/resources/ModerateTableRow/index.js +31 -0
  473. package/lib/moderating/components/resources/ModerateTableRow/presenter.js +416 -0
  474. package/lib/moderating/components/resources/ModerateTableRow/story.js +27 -0
  475. package/lib/moderating/components/resources/ModerateTableRow/theme.js +14 -0
  476. package/lib/moderating/components/resources/OutstandingQuizzesModal/OutstandingQuizzesModal.examples.js +86 -0
  477. package/lib/moderating/components/resources/OutstandingQuizzesModal/index.js +35 -0
  478. package/lib/moderating/components/resources/OutstandingQuizzesModal/presenter.js +203 -0
  479. package/lib/moderating/components/sidebar/ModerateTray/ModerateTray.examples.js +20 -0
  480. package/lib/moderating/components/sidebar/ModerateTray/index.js +28 -0
  481. package/lib/moderating/components/sidebar/ModerateTray/presenter.js +189 -0
  482. package/lib/moderating/components/sidebar/ResetQuiz/index.js +52 -0
  483. package/lib/moderating/components/sidebar/ResetQuiz/presenter.js +125 -0
  484. package/lib/package.json +1 -0
  485. package/lib/reduxStore.js +49 -0
  486. package/lib/reporting/api/itemAnalyses.js +27 -0
  487. package/lib/reporting/api/quizAnalyses.js +30 -0
  488. package/lib/reporting/components/Caption/index.js +76 -0
  489. package/lib/reporting/components/Caption/theme.js +16 -0
  490. package/lib/reporting/components/MetricsListItem/index.js +88 -0
  491. package/lib/reporting/components/MetricsListItem/theme.js +10 -0
  492. package/lib/reporting/components/charts/CentileDistribution/CentileDistribution.examples.js +32 -0
  493. package/lib/reporting/components/charts/CentileDistribution/index.js +13 -0
  494. package/lib/reporting/components/charts/CentileDistribution/presenter.js +191 -0
  495. package/lib/reporting/components/charts/CentileDistribution/theme.js +16 -0
  496. package/lib/reporting/components/charts/Distribution/CentileDistribution.js +14 -0
  497. package/lib/reporting/components/charts/Distribution/Distribution.js +14 -0
  498. package/lib/reporting/components/charts/Distribution/QuintileDistribution.js +14 -0
  499. package/lib/reporting/components/charts/Distribution/index.js +13 -0
  500. package/lib/reporting/components/charts/Distribution/presenter.js +386 -0
  501. package/lib/reporting/components/charts/Distribution/theme.js +19 -0
  502. package/lib/reporting/components/charts/Legend/index.js +94 -0
  503. package/lib/reporting/components/charts/Legend/theme.js +24 -0
  504. package/lib/reporting/components/charts/QuintileDistribution/QuintileDistribution.examples.js +16 -0
  505. package/lib/reporting/components/charts/QuintileDistribution/index.js +13 -0
  506. package/lib/reporting/components/charts/QuintileDistribution/presenter.js +175 -0
  507. package/lib/reporting/components/charts/QuintileDistribution/theme.js +16 -0
  508. package/lib/reporting/components/itemAnalysis/AnswerFrequencySummary/AnswerFrequencySummary.examples.js +45 -0
  509. package/lib/reporting/components/itemAnalysis/AnswerFrequencySummary/index.js +189 -0
  510. package/lib/reporting/components/itemAnalysis/AnswerFrequencySummary/theme.js +33 -0
  511. package/lib/reporting/components/itemAnalysis/ItemAnalysisRow/ItemAnalysisRow.examples.js +60 -0
  512. package/lib/reporting/components/itemAnalysis/ItemAnalysisRow/index.js +28 -0
  513. package/lib/reporting/components/itemAnalysis/ItemAnalysisRow/presenter.js +337 -0
  514. package/lib/reporting/components/itemAnalysis/ItemAnalysisRow/theme.js +32 -0
  515. package/lib/reporting/components/quizAnalysis/QuizAnalysisOverview.js +188 -0
  516. package/lib/reporting/components/quizAnalysis/theme.js +20 -0
  517. package/lib/reporting/components/resources/OutcomeAnalysis/index.js +30 -0
  518. package/lib/reporting/components/resources/OutcomeAnalysis/presenter.js +129 -0
  519. package/lib/reporting/components/resources/QuizAndItemAnalysis/QuizAndItemAnalysis.examples.js +190 -0
  520. package/lib/reporting/components/resources/QuizAndItemAnalysis/index.js +45 -0
  521. package/lib/reporting/components/resources/QuizAndItemAnalysis/presenter.js +340 -0
  522. package/lib/reporting/components/resources/QuizAndItemAnalysis/theme.js +20 -0
  523. package/lib/reporting/components/resources/ReportCard/index.js +89 -0
  524. package/lib/reporting/components/resources/ReportCard/theme.js +20 -0
  525. package/lib/reporting/components/resources/ReportList/index.js +84 -0
  526. package/lib/reporting/components/resources/ReportList/theme.js +17 -0
  527. package/lib/taking/api/taking.js +371 -0
  528. package/lib/taking/learnosity/index.js +195 -0
  529. package/lib/taking/learnosity/loader.js +87 -0
  530. package/package.json +11 -11
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.serializeEvent = serializeEvent;
7
+ exports.default = void 0;
8
+
9
+ var _quizCommon = require("@instructure/quiz-common");
10
+
11
+ var _taking = require("../selectors/taking.js");
12
+
13
+ var _quizSessions = require("../selectors/quizSessions.js");
14
+
15
+ var whitelist = [_quizCommon.QUIZ_SUBMISSION_EVENT, _quizCommon.RESPONSE, _quizCommon.SESSION_STARTED_OR_RESUMED_EVENT];
16
+
17
+ function serializeEvent(action, store) {
18
+ var type = action.type;
19
+
20
+ if (!whitelist.includes(type)) {
21
+ return false;
22
+ }
23
+
24
+ var state = store.getState();
25
+ var quizSession = (0, _quizSessions.getActiveQuizSession)(state);
26
+ var defaultEventData = {
27
+ browserSessionId: (0, _taking.getBrowserSessionId)(state),
28
+ clientTimestamp: new Date()
29
+ };
30
+ var authoritativeData = {
31
+ accountUuid: quizSession.accountUuid,
32
+ eventCreationToken: quizSession.eventCreationToken,
33
+ eventType: type,
34
+ quizSessionId: quizSession.id,
35
+ rootAccountUuid: quizSession.rootAccountUuid
36
+ };
37
+ return Object.assign({
38
+ eventData: Object.assign({}, action.payload, defaultEventData)
39
+ }, authoritativeData);
40
+ }
41
+
42
+ var _default = serializeEvent;
43
+ exports.default = _default;
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.sessionStore = exports.SessionStore = void 0;
9
+
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+
12
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
+
14
+ /**
15
+ * A store that behaves like https://github.com/marcuswestin/store.js but writes
16
+ * to sessionStorage instead of localStorage, because some things you want to be
17
+ * accessible to only a single browser window/tab.
18
+ */
19
+ var SessionStore = /*#__PURE__*/function () {
20
+ function SessionStore(storage) {
21
+ (0, _classCallCheck2.default)(this, SessionStore);
22
+ var newStorage = storage;
23
+
24
+ if (newStorage === void 0) {
25
+ // Chrome raises a DOMException when trying to access sessionStorage if
26
+ // it has been disabled
27
+ try {
28
+ newStorage = window.sessionStorage;
29
+ } catch (e) {// continue regardless of error
30
+ }
31
+ }
32
+
33
+ this.storage = newStorage;
34
+ this.enabled = this.checkStorageEnabled();
35
+ }
36
+
37
+ (0, _createClass2.default)(SessionStore, [{
38
+ key: "checkStorageEnabled",
39
+ value: function checkStorageEnabled() {
40
+ if (!this.storage) {
41
+ return false;
42
+ }
43
+
44
+ var testKey = 'storageCheck';
45
+ var testValue = 'just checking';
46
+ var result;
47
+
48
+ try {
49
+ this.set(testKey, testValue);
50
+ result = this.get(testKey);
51
+ } catch (e) {// continue regardless of error
52
+ }
53
+
54
+ return result === testValue;
55
+ }
56
+ }, {
57
+ key: "get",
58
+ value: function get(key) {
59
+ return this.storage.getItem(key);
60
+ }
61
+ }, {
62
+ key: "set",
63
+ value: function set(key, value) {
64
+ if (value) {
65
+ return this.storage.setItem(key, value);
66
+ } else {
67
+ return this.remove(key);
68
+ }
69
+ }
70
+ }, {
71
+ key: "remove",
72
+ value: function remove(key) {
73
+ return this.storage.removeItem(key);
74
+ }
75
+ }]);
76
+ return SessionStore;
77
+ }();
78
+
79
+ exports.SessionStore = SessionStore;
80
+ var newSessionStore = new SessionStore();
81
+ exports.sessionStore = newSessionStore;
@@ -0,0 +1,20 @@
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 _reduce = _interopRequireDefault(require("lodash/reduce"));
11
+
12
+ var _default = function _default(obj, func) {
13
+ return (0, _reduce.default)(obj, function (memo, val, key) {
14
+ var output = memo;
15
+ output[key] = func(val);
16
+ return output;
17
+ }, {});
18
+ };
19
+
20
+ exports.default = _default;
@@ -0,0 +1,160 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.propsForBankEntryUnauthorizedEdit = exports.propsForStimulusBankEntryEditPrompt = exports.propsForItemBankEntryEditPrompt = exports.propsForBankEntryEditPrompt = exports.propsForBankEntryVersioningWrapper = exports.propsForStimulusVersioningWrapper = exports.propsForItemVersioningWrapper = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _partial = _interopRequireDefault(require("lodash/partial"));
13
+
14
+ var _uiText = require("@instructure/ui-text");
15
+
16
+ var _formatMessage = _interopRequireDefault(require("@instructure/quiz-i18n/es/format-message"));
17
+
18
+ var immutableItemDescription = /*#__PURE__*/_react.default.createElement(_uiText.Text, {
19
+ color: "primary"
20
+ }, /*#__PURE__*/_react.default.createElement("b", null, (0, _formatMessage.default)('Some students have already submitted answers for this item!')), "\xA0", (0, _formatMessage.default)('You can apply your edits to a copy of this item' + ' which will only be seen by students that have not taken the assessment.'));
21
+
22
+ var itemCopyDescription = /*#__PURE__*/_react.default.createElement(_uiText.Text, {
23
+ color: "primary"
24
+ }, /*#__PURE__*/_react.default.createElement("b", null, (0, _formatMessage.default)('Editing a copy.')), "\xA0", (0, _formatMessage.default)('Item statistics from this new copy will appear separate from the previous version of this question.'));
25
+
26
+ var immutableStimulusDescription = /*#__PURE__*/_react.default.createElement(_uiText.Text, {
27
+ color: "primary"
28
+ }, /*#__PURE__*/_react.default.createElement("b", null, (0, _formatMessage.default)('Some students have already submitted answers for this stimulus!')), "\xA0", (0, _formatMessage.default)('You can apply your edits to a copy of this stimulus' + ' which will only be seen by students that have not taken the assessment.' + ' Attached items will be copied as well.'));
29
+
30
+ var stimulusCopyDescription = /*#__PURE__*/_react.default.createElement(_uiText.Text, {
31
+ color: "primary"
32
+ }, /*#__PURE__*/_react.default.createElement("b", null, (0, _formatMessage.default)('Editing a copy.')), "\xA0", (0, _formatMessage.default)('Stimulus statistics from this new copy will appear separate from the previous version.'));
33
+
34
+ var itemBankEntryEditDescription = /*#__PURE__*/_react.default.createElement(_uiText.Text, {
35
+ color: "primary"
36
+ }, /*#__PURE__*/_react.default.createElement("b", null, (0, _formatMessage.default)('Banked Item.')), "\xA0", (0, _formatMessage.default)('Some options and the points value can be changed here but editing must take place within the bank.'));
37
+
38
+ var stimulusBankEntryEditDescription = /*#__PURE__*/_react.default.createElement(_uiText.Text, {
39
+ "data-automation": "sdk-editInBanks-warning"
40
+ }, /*#__PURE__*/_react.default.createElement("b", null, (0, _formatMessage.default)('Banked Stimulus.')), "\xA0", (0, _formatMessage.default)('Editing of this stimulus must take place within the bank.'));
41
+
42
+ var bankEntryUnauthorizedEditDescription = /*#__PURE__*/_react.default.createElement(_uiText.Text, {
43
+ color: "primary"
44
+ }, /*#__PURE__*/_react.default.createElement("b", null, (0, _formatMessage.default)('Banked Item.')), "\xA0", (0, _formatMessage.default)("You don't have the needed permissions to edit."));
45
+
46
+ var archivedBankEntryDescription = /*#__PURE__*/_react.default.createElement(_uiText.Text, {
47
+ color: "primary"
48
+ }, (0, _formatMessage.default)('This item has been deleted from the item bank. Students will still see it on future attempts. To edit, make a copy of the item.'));
49
+
50
+ var propsForVersioningWrapper = function propsForVersioningWrapper(copyDescription, immutableDescription, isImmutable, shouldClone, setShouldClone, switchOffEditing, isEditing) {
51
+ var alertType = arguments.length > 7 && arguments[7] !== void 0 ? arguments[7] : 'warning';
52
+ var defaultProps = {
53
+ disableChildren: false,
54
+ showAlert: false
55
+ };
56
+ if (!isEditing) return {
57
+ showAlert: false
58
+ };
59
+
60
+ if (isImmutable && shouldClone) {
61
+ Object.assign(defaultProps, {
62
+ description: copyDescription,
63
+ hideActions: true,
64
+ showAlert: true
65
+ });
66
+ } else if (isImmutable) {
67
+ Object.assign(defaultProps, {
68
+ alertType: alertType,
69
+ cancelActionCallback: switchOffEditing,
70
+ defaultActionCallback: (0, _partial.default)(setShouldClone, true),
71
+ defaultActionText: (0, _formatMessage.default)('Edit a Copy'),
72
+ description: immutableDescription,
73
+ disableChildren: true,
74
+ showAlert: true
75
+ });
76
+ }
77
+
78
+ return defaultProps;
79
+ };
80
+
81
+ var propsForItemVersioningWrapper = function propsForItemVersioningWrapper() {
82
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
83
+ args[_key] = arguments[_key];
84
+ }
85
+
86
+ return propsForVersioningWrapper.apply(void 0, [itemCopyDescription, immutableItemDescription].concat(args));
87
+ };
88
+
89
+ exports.propsForItemVersioningWrapper = propsForItemVersioningWrapper;
90
+
91
+ var propsForStimulusVersioningWrapper = function propsForStimulusVersioningWrapper() {
92
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
93
+ args[_key2] = arguments[_key2];
94
+ }
95
+
96
+ return propsForVersioningWrapper.apply(void 0, [stimulusCopyDescription, immutableStimulusDescription].concat(args));
97
+ };
98
+
99
+ exports.propsForStimulusVersioningWrapper = propsForStimulusVersioningWrapper;
100
+
101
+ var propsForBankEntryVersioningWrapper = function propsForBankEntryVersioningWrapper() {
102
+ for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
103
+ args[_key3] = arguments[_key3];
104
+ }
105
+
106
+ return propsForVersioningWrapper.apply(void 0, [itemCopyDescription, archivedBankEntryDescription].concat(args));
107
+ };
108
+
109
+ exports.propsForBankEntryVersioningWrapper = propsForBankEntryVersioningWrapper;
110
+
111
+ var propsForBankEntryEditPrompt = function propsForBankEntryEditPrompt(isEditing, switchOffEditing, defaultActionCallback, description) {
112
+ if (!isEditing) return {
113
+ showAlert: false
114
+ };
115
+ return {
116
+ cancelActionCallback: switchOffEditing,
117
+ disableChildren: true,
118
+ description: description,
119
+ defaultActionCallback: defaultActionCallback,
120
+ defaultActionText: (0, _formatMessage.default)('Edit in Bank'),
121
+ showAlert: true
122
+ };
123
+ };
124
+
125
+ exports.propsForBankEntryEditPrompt = propsForBankEntryEditPrompt;
126
+
127
+ var propsForItemBankEntryEditPrompt = function propsForItemBankEntryEditPrompt() {
128
+ for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
129
+ args[_key4] = arguments[_key4];
130
+ }
131
+
132
+ return propsForBankEntryEditPrompt.apply(void 0, args.concat([itemBankEntryEditDescription]));
133
+ };
134
+
135
+ exports.propsForItemBankEntryEditPrompt = propsForItemBankEntryEditPrompt;
136
+
137
+ var propsForStimulusBankEntryEditPrompt = function propsForStimulusBankEntryEditPrompt() {
138
+ for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
139
+ args[_key5] = arguments[_key5];
140
+ }
141
+
142
+ return propsForBankEntryEditPrompt.apply(void 0, args.concat([stimulusBankEntryEditDescription]));
143
+ };
144
+
145
+ exports.propsForStimulusBankEntryEditPrompt = propsForStimulusBankEntryEditPrompt;
146
+
147
+ var propsForBankEntryUnauthorizedEdit = function propsForBankEntryUnauthorizedEdit(isEditing) {
148
+ if (!isEditing) return {
149
+ showAlert: false
150
+ };
151
+ return {
152
+ alertType: 'warning',
153
+ disableChildren: true,
154
+ description: bankEntryUnauthorizedEditDescription,
155
+ hideActions: true,
156
+ showAlert: true
157
+ };
158
+ };
159
+
160
+ exports.propsForBankEntryUnauthorizedEdit = propsForBankEntryUnauthorizedEdit;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.onTablet = exports.onPhone = exports.media = void 0;
7
+ var media = {
8
+ 'phone-break-point': 'only screen and (max-width: 48rem)',
9
+ 'tablet-break-point': 'only screen and (max-width: 64rem)'
10
+ };
11
+ exports.media = media;
12
+
13
+ var onPhone = function onPhone() {
14
+ var windowObj = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : window;
15
+ var mediaQueryString = media['phone-break-point'];
16
+ return windowObj.matchMedia(mediaQueryString).matches;
17
+ };
18
+
19
+ exports.onPhone = onPhone;
20
+
21
+ var onTablet = function onTablet() {
22
+ var windowObj = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : window;
23
+ var mediaQueryString = media['tablet-break-point'];
24
+ return !onPhone(windowObj) && windowObj.matchMedia(mediaQueryString).matches;
25
+ };
26
+
27
+ exports.onTablet = onTablet;
@@ -0,0 +1,41 @@
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 _MultiWeakMap = _interopRequireDefault(require("./MultiWeakMap.js"));
11
+
12
+ /* eslint "no-param-reassign": "warn" */
13
+ // Method decorator that uses a MultiWeakMap to cache the results of calls
14
+ // for argument combinations previously seen before. See tests for examples.
15
+ var _default = function _default(target, name, descriptor) {
16
+ var decoratedMethod = descriptor.value;
17
+ var arity = decoratedMethod.length;
18
+ var cache = new _MultiWeakMap.default(arity);
19
+
20
+ descriptor.value = function () {
21
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
22
+ args[_key] = arguments[_key];
23
+ }
24
+
25
+ if (args.length !== arity) {
26
+ throw new Error("@withCachedArguments-decorated function expected ".concat(arity, " args but got ").concat(args.length));
27
+ }
28
+
29
+ if (cache.has(args)) {
30
+ return cache.get(args);
31
+ }
32
+
33
+ var result = decoratedMethod.apply(this, args);
34
+ cache.set(args, result);
35
+ return result;
36
+ };
37
+
38
+ return descriptor;
39
+ };
40
+
41
+ exports.default = _default;
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.withDynamoPagination = withDynamoPagination;
9
+ exports.default = void 0;
10
+
11
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
12
+
13
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
14
+
15
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
16
+
17
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
18
+
19
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
20
+
21
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
22
+
23
+ var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
24
+
25
+ function withDynamoPagination(Fetcher) {
26
+ return /*#__PURE__*/function (_Fetcher) {
27
+ (0, _inherits2.default)(_class, _Fetcher);
28
+
29
+ var _super = (0, _createSuper2.default)(_class);
30
+
31
+ function _class() {
32
+ var _this;
33
+
34
+ (0, _classCallCheck2.default)(this, _class);
35
+
36
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
37
+ args[_key] = arguments[_key];
38
+ }
39
+
40
+ _this = _super.call.apply(_super, [this].concat(args)); // just pass thru the entire fetch Response object
41
+
42
+ _this.asyncResponseHandler = function (response) {
43
+ return response;
44
+ };
45
+
46
+ return _this;
47
+ }
48
+
49
+ (0, _createClass2.default)(_class, [{
50
+ key: "paginatedGet",
51
+ value: function () {
52
+ var _paginatedGet = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(url) {
53
+ var _this2 = this;
54
+
55
+ var _ref,
56
+ actionCreator,
57
+ lastEvaluatedHashKey,
58
+ lastEvaluatedRangeKey,
59
+ responses,
60
+ ancillary,
61
+ response,
62
+ resolvedResponses,
63
+ _args = arguments;
64
+
65
+ return _regenerator.default.wrap(function _callee$(_context) {
66
+ while (1) {
67
+ switch (_context.prev = _context.next) {
68
+ case 0:
69
+ _ref = _args.length > 1 && _args[1] !== void 0 ? _args[1] : {}, actionCreator = _ref.actionCreator;
70
+ responses = [];
71
+ ancillary = [];
72
+
73
+ case 3:
74
+ _context.next = 5;
75
+ return this.get(url, {
76
+ lastEvaluatedHashKey: lastEvaluatedHashKey,
77
+ lastEvaluatedRangeKey: lastEvaluatedRangeKey
78
+ });
79
+
80
+ case 5:
81
+ response = _context.sent;
82
+ responses.push(response); // we handle the json parsing and dispatching asynchronously so that
83
+ // we can keep making network requests until pagination is exhausted
84
+
85
+ ancillary.push(actionCreator ? response.json().then(function (json) {
86
+ return _this2.dispatch(actionCreator(json));
87
+ }) : response.json());
88
+ lastEvaluatedHashKey = response.headers.get('X-Last-Evaluated-Hash-Key');
89
+ lastEvaluatedRangeKey = response.headers.get('X-Last-Evaluated-Range-Key');
90
+
91
+ case 10:
92
+ if (lastEvaluatedHashKey && lastEvaluatedRangeKey) {
93
+ _context.next = 3;
94
+ break;
95
+ }
96
+
97
+ case 11:
98
+ _context.next = 13;
99
+ return Promise.all(ancillary);
100
+
101
+ case 13:
102
+ resolvedResponses = _context.sent;
103
+
104
+ if (!actionCreator) {
105
+ _context.next = 18;
106
+ break;
107
+ }
108
+
109
+ return _context.abrupt("return", responses);
110
+
111
+ case 18:
112
+ return _context.abrupt("return", resolvedResponses.reduce(function (res, acc) {
113
+ return [].concat((0, _toConsumableArray2.default)(res), (0, _toConsumableArray2.default)(acc));
114
+ }, []));
115
+
116
+ case 19:
117
+ case "end":
118
+ return _context.stop();
119
+ }
120
+ }
121
+ }, _callee, this);
122
+ }));
123
+
124
+ function paginatedGet(_x) {
125
+ return _paginatedGet.apply(this, arguments);
126
+ }
127
+
128
+ return paginatedGet;
129
+ }()
130
+ }]);
131
+ return _class;
132
+ }(Fetcher);
133
+ }
134
+
135
+ var _default = withDynamoPagination;
136
+ exports.default = _default;
@@ -0,0 +1,63 @@
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 _every = _interopRequireDefault(require("lodash/every"));
13
+
14
+ var _isObject = _interopRequireDefault(require("lodash/isObject"));
15
+
16
+ var _MultiWeakMap = _interopRequireDefault(require("./MultiWeakMap.js"));
17
+
18
+ /* eslint "no-param-reassign": "warn" */
19
+ // This is a method decorator that helps selectors perform caching via
20
+ // WeakMaps. It accepts a function which returns a list of paths to pieces of
21
+ // the global Redux store, e.g., ['quizEntries']. It then looks up the value
22
+ // being stored in this path and checks to see if the decorated method has been
23
+ // called before with the same value, and if so, returns the cached result.
24
+ var _default = function _default(fnToGetPaths) {
25
+ return function (target, name, descriptor) {
26
+ var decoratedMethod = descriptor.value;
27
+ var cache;
28
+
29
+ descriptor.value = function () {
30
+ var paths = fnToGetPaths(this);
31
+ cache = cache || new _MultiWeakMap.default(paths.length + 1);
32
+ var state = this.state();
33
+ var fields = paths.map(function (path) {
34
+ return state.getIn(path, (0, _immutable.Map)());
35
+ });
36
+ var keys = [this].concat(fields);
37
+
38
+ if (cache.has(keys)) {
39
+ return cache.get(keys);
40
+ }
41
+
42
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
43
+ args[_key] = arguments[_key];
44
+ }
45
+
46
+ var result = decoratedMethod.apply(this, args);
47
+
48
+ if (allAreObjects(fields)) {
49
+ cache.set(keys, result);
50
+ }
51
+
52
+ return result;
53
+ };
54
+
55
+ return descriptor;
56
+ };
57
+ };
58
+
59
+ exports.default = _default;
60
+
61
+ var allAreObjects = function allAreObjects(values) {
62
+ return (0, _every.default)(values, _isObject.default);
63
+ };
package/lib/config.js ADDED
@@ -0,0 +1,46 @@
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 = exports.environment = void 0;
9
+
10
+ var _store = _interopRequireDefault(require("store"));
11
+
12
+ // NOTE: Configuration from environment variables is deprecated.
13
+ // Pass configuration as props instead.
14
+ // TODO: figure out if any consumers are still passing in quizzes_vars - (don't think so)
15
+ var quizzesVars = process.quizzes_vars || process.env || {};
16
+ var environment = {
17
+ nodeEnv: quizzesVars.NODE_ENV || 'development',
18
+ rceHost: quizzesVars.RCE_HOST || 'dvgcns7dz7zc.cloudfront.net/rce_service/versions'
19
+ };
20
+ exports.environment = environment;
21
+
22
+ environment.inDevelopment = function () {
23
+ return environment.nodeEnv === 'development';
24
+ };
25
+
26
+ var langParam = window.location.search.match(/[&?]lang=([^&]*)/);
27
+ environment.lang = langParam && langParam[1] || _store.default.enabled && _store.default.get('lang') || void 0;
28
+
29
+ if (_store.default.enabled) {
30
+ _store.default.set('lang', environment.lang);
31
+ }
32
+ /* eslint-disable no-undef */
33
+
34
+
35
+ if (typeof NODE_ENV !== 'undefined' && (NODE_ENV === 'development' || NODE_ENV === 'test')) {
36
+ if (typeof CONFIG !== 'undefined') {
37
+ Object.assign(environment, CONFIG);
38
+ }
39
+
40
+ window.ENV = environment;
41
+ }
42
+ /* eslint-enable no-undef */
43
+
44
+
45
+ var _default = environment;
46
+ exports.default = _default;