@instructure/quiz-core 22.10.2 → 22.11.1-rc.88

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 (379) hide show
  1. package/es/banks/api/bankEntries.js +1 -1
  2. package/es/banks/api/banks.js +19 -98
  3. package/es/banks/api/copyingBanksPoller.js +1 -1
  4. package/es/banks/api/tagAssociations.js +1 -1
  5. package/es/banks/components/AddBankEntryModal/presenter.js +1 -1
  6. package/es/banks/components/AddToBankModal/presenter.js +1 -1
  7. package/es/banks/components/AsyncSearch/index.js +1 -1
  8. package/es/banks/components/Bank/presenter.js +1 -1
  9. package/es/banks/components/BankEntry/presenter.js +1 -1
  10. package/es/banks/components/BankEntryRow/presenter.js +1 -1
  11. package/es/banks/components/BankSearch/presenter.js +1 -1
  12. package/es/banks/components/Banks/presenter.js +1 -1
  13. package/es/banks/components/BanksList/presenter.js +1 -1
  14. package/es/banks/components/CopyMoveBankEntryModal/presenter.js +1 -1
  15. package/es/banks/components/CreateBankModal/presenter.js +1 -1
  16. package/es/banks/components/EditBankModal/presenter.js +1 -1
  17. package/es/banks/components/HeaderBreadCrumb/index.js +1 -1
  18. package/es/banks/components/HeaderMenu/presenter.js +1 -1
  19. package/es/banks/components/NavWrapper/presenter.js +1 -1
  20. package/es/banks/components/SharingModal/RootAccountSharing.js +1 -1
  21. package/es/banks/components/SharingModal/ShareList/index.js +1 -1
  22. package/es/banks/components/SharingModal/index.js +6 -3
  23. package/es/banks/components/SharingModal/presenter.js +208 -132
  24. package/es/building/api/items.js +121 -25
  25. package/es/building/api/quizEntries.js +79 -16
  26. package/es/building/api/quizzes.js +1 -1
  27. package/es/building/api/stimuli.js +1 -1
  28. package/es/building/components/QTIImportModal/index.js +1 -1
  29. package/es/building/components/layout/Sidebar/presenter.js +1 -1
  30. package/es/building/components/layout/header/BuildingButtons/presenter.js +1 -1
  31. package/es/building/components/resources/AddToBankOptions/index.js +1 -1
  32. package/es/building/components/resources/BanksTray/presenter.js +1 -1
  33. package/es/building/components/resources/DeleteStimulusModal/presenter.js +1 -1
  34. package/es/building/components/resources/ItemFeedbackModal/presenter.js +1 -1
  35. package/es/building/components/resources/MoveImmutableModal/presenter.js +1 -1
  36. package/es/building/components/resources/quiz/editButton/EditButton.js +1 -1
  37. package/es/building/components/resources/quiz/instructions/Edit/presenter.js +1 -1
  38. package/es/building/components/resources/quiz/instructions/Instructions/presenter.js +1 -1
  39. package/es/building/components/resources/quiz/instructions/Show/index.js +1 -1
  40. package/es/building/components/resources/quiz/title/Edit/index.js +1 -1
  41. package/es/building/components/resources/quiz/title/Title/presenter.js +1 -1
  42. package/es/building/components/resources/quizEntry/QuizEntry/presenter.js +1 -1
  43. package/es/building/components/resources/quizEntry/QuizEntryBank/QuizEntryBankEdit/presenter.js +1 -1
  44. package/es/building/components/resources/quizEntry/QuizEntryBank/QuizEntryBankShow/index.js +1 -1
  45. package/es/building/components/resources/quizEntry/QuizEntryEdit/Footer/presenter.js +1 -1
  46. package/es/building/components/resources/quizEntry/QuizEntryEdit/Header/index.js +1 -1
  47. package/es/building/components/resources/quizEntry/QuizEntryEdit/presenter.js +1 -1
  48. package/es/building/components/resources/quizEntry/QuizEntryShow/presenter.js +22 -3
  49. package/es/common/actions/sharedBanks.js +13 -1
  50. package/es/common/actions/sharingModal.js +7 -0
  51. package/es/common/api/helpers.js +1 -1
  52. package/es/common/api/quizSessions.js +1 -1
  53. package/es/common/components/AccessCodeTextInput/index.js +1 -1
  54. package/es/common/components/ConfirmationModal/presenter.js +1 -1
  55. package/es/common/components/ImportModal/ImportFileSelector/index.js +1 -1
  56. package/es/common/components/ImportModal/presenter.js +1 -1
  57. package/es/common/components/Pin/presenter.js +1 -1
  58. package/es/common/components/PreviewFrame/index.js +1 -1
  59. package/es/common/components/PrintFontSizeModal/presenter.js +1 -1
  60. package/es/common/components/RceConfigProvider/rceConfigErrorMessages.js +1 -1
  61. package/es/common/components/SDKApp/index.js +1 -1
  62. package/es/common/components/alerts/presenter.js +1 -1
  63. package/es/common/components/layout/Page/index.js +1 -1
  64. package/es/common/components/layout/header/Calculator/presenter.js +1 -1
  65. package/es/common/components/layout/header/HeaderMenuButton/presenter.js +1 -1
  66. package/es/common/components/layout/header/Timer/presenter.js +1 -1
  67. package/es/common/components/layout/navbar/index.js +1 -1
  68. package/es/common/components/layout/sidebar/PositionSummary/index.js +1 -1
  69. package/es/common/components/layout/sidebar/Sidebar/Pin.js +1 -1
  70. package/es/common/components/layout/sidebar/Sidebar/index.js +1 -1
  71. package/es/common/components/layout/sidebar/SidebarItem/index.js +1 -1
  72. package/es/common/components/layout/sidebar/SidebarItem/presenter.js +1 -1
  73. package/es/common/components/layout/sidebar/Stimulus/Collection/presenter.js +1 -1
  74. package/es/common/components/layout/sidebar/Stimulus/Summary/presenter.js +1 -1
  75. package/es/common/components/layout/sidebar/Stimulus/presenter.js +1 -1
  76. package/es/common/components/resources/BankSelection/presenter.js +1 -1
  77. package/es/common/components/resources/WarningWrapper/index.js +1 -1
  78. package/es/common/components/resources/entry/EntrySave/presenter.js +1 -1
  79. package/es/common/components/resources/item/ItemEdit/presenter.js +1 -1
  80. package/es/common/components/resources/quiz/AddContent/Body/index.js +1 -1
  81. package/es/common/components/resources/quiz/AddContent/Body/presenter.js +135 -141
  82. package/es/common/components/resources/quiz/AddContent/Button/index.js +1 -1
  83. package/es/common/components/resources/quiz/AddContent/Modal/presenter.js +61 -73
  84. package/es/common/components/resources/quiz/AddContent/Popover/presenter.js +128 -119
  85. package/es/common/components/resources/quizSessionResult/Header/index.js +1 -1
  86. package/es/common/components/resources/quizSessionResult/Info/index.js +1 -1
  87. package/es/common/components/resources/sessionItemResult/ResultStimulus/index.js +1 -1
  88. package/es/common/components/resources/sessionItemResult/SessionItemResult/presenter.js +1 -1
  89. package/es/common/components/resources/sessionItemResult/SessionItemResultsList/index.js +1 -1
  90. package/es/common/components/resources/stimulus/StimulusEdit/presenter.js +1 -1
  91. package/es/common/components/resources/stimulus/StimulusEditInfo/presenter.js +1 -1
  92. package/es/common/components/resources/stimulus/StimulusShow/index.js +1 -1
  93. package/es/common/components/resources/stimulus/StimulusShowInfo/index.js +1 -1
  94. package/es/common/components/shared/FormattedDuration/index.js +1 -1
  95. package/es/common/components/shared/GenericAsyncSearch/GenericAsyncSearch.js +1 -1
  96. package/es/common/components/shared/InteractionTypes/index.js +1 -4
  97. package/es/common/components/shared/InteractionTypes/presenter.js +2 -4
  98. package/es/common/components/shared/Paginator/index.js +1 -1
  99. package/es/common/components/shared/PrintTrigger/presenter.js +1 -1
  100. package/es/common/components/shared/TagDisplay/index.js +1 -1
  101. package/es/common/components/shared/TagSelect/presenter.js +1 -1
  102. package/es/common/components/shared/TagWrapper/presenter.js +1 -1
  103. package/es/common/components/shared/TimeUnitsInput/index.js +1 -1
  104. package/es/common/components/shared/drag_and_drop/DragAndDropZone/index.js +1 -1
  105. package/es/common/components/shared/drag_and_drop/DragHandle/presenter.js +1 -1
  106. package/es/common/components/shared/return_button/ReturnButton.js +1 -1
  107. package/es/common/components/shared/spinner/Spinner.js +1 -1
  108. package/es/common/middleware/sharedBanksMiddleware.js +243 -0
  109. package/es/common/records/Bank.js +1 -1
  110. package/es/common/records/Item.js +3 -2
  111. package/es/common/records/Quiz.js +1 -1
  112. package/es/common/records/QuizAnalysis.js +1 -1
  113. package/es/common/records/QuizEntry.js +8 -1
  114. package/es/common/records/Stimulus.js +1 -1
  115. package/es/common/reducers/sharingModal.js +17 -0
  116. package/es/common/util/Fetcher.js +1 -1
  117. package/es/common/util/TimerService.js +1 -1
  118. package/es/common/util/formatTimespan.js +1 -1
  119. package/es/common/util/interactionTypeMetadata.js +1 -1
  120. package/es/common/util/interactionTypePropsHelper.js +1 -1
  121. package/es/common/util/maxContent.js +1 -1
  122. package/es/common/util/useRemoteComponent.js +127 -0
  123. package/es/common/util/warningHelpers.js +1 -1
  124. package/es/common/util/withDynamoPagination.js +13 -2
  125. package/es/configureStore.js +4 -1
  126. package/es/grading/api/quizEntryRegrades.js +1 -1
  127. package/es/index.js +5 -3
  128. package/es/moderating/api/quizSessionEvents.js +4 -2
  129. package/es/moderating/components/events/PageBlurredEvent.js +1 -1
  130. package/es/moderating/components/events/PageFocusedEvent.js +1 -1
  131. package/es/moderating/components/events/ResponseEvent.js +1 -1
  132. package/es/moderating/components/events/SessionStartEvent.js +1 -1
  133. package/es/moderating/components/events/SessionSubmitEvent.js +1 -1
  134. package/es/moderating/components/resources/AccommodationsModal/ExtraAttemptSettings/ExtraAttemptsInput/index.js +1 -1
  135. package/es/moderating/components/resources/AccommodationsModal/ExtraAttemptSettings/index.js +1 -1
  136. package/es/moderating/components/resources/AccommodationsModal/ExtraTimeMultiplier/index.js +1 -1
  137. package/es/moderating/components/resources/AccommodationsModal/ExtraTimeSettings/index.js +1 -1
  138. package/es/moderating/components/resources/AccommodationsModal/ReduceAnswerChoicesSettings/index.js +1 -1
  139. package/es/moderating/components/resources/AccommodationsModal/index.js +1 -1
  140. package/es/moderating/components/resources/ElapsedTime.js +1 -1
  141. package/es/moderating/components/resources/EventDetails.js +1 -1
  142. package/es/moderating/components/resources/ModerateTable/presenter.js +1 -1
  143. package/es/moderating/components/resources/ModerateTableRow/presenter.js +1 -1
  144. package/es/moderating/components/resources/OutstandingQuizzesModal/presenter.js +1 -1
  145. package/es/moderating/components/resources/RetryGradePassbackButton/presenter.js +1 -1
  146. package/es/moderating/components/resources/util/renderEventSummary.js +1 -1
  147. package/es/moderating/components/sidebar/ModerateTray/presenter.js +1 -1
  148. package/es/moderating/components/sidebar/ResetQuiz/presenter.js +1 -1
  149. package/es/reporting/components/MetricsListItem/index.js +1 -1
  150. package/es/reporting/components/charts/CentileDistribution/presenter.js +1 -1
  151. package/es/reporting/components/charts/Distribution/presenter.js +1 -1
  152. package/es/reporting/components/charts/QuintileDistribution/presenter.js +1 -1
  153. package/es/reporting/components/itemAnalysis/AnswerFrequencySummary/index.js +1 -1
  154. package/es/reporting/components/itemAnalysis/ItemAnalysisRow/presenter.js +1 -1
  155. package/es/reporting/components/quizAnalysis/QuizAnalysisOverview.js +1 -1
  156. package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/LegacyChoiceType/ChoiceTypeTableRow/presenter.js +1 -1
  157. package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/LegacyChoiceType/presenter.js +1 -1
  158. package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/MatchingType/CategorizationType.js +1 -1
  159. package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/MatchingType/MatchingType.js +1 -1
  160. package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/MatchingType/MatchingTypeTable/presenter.js +1 -1
  161. package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/MatchingType/OrderingType.js +1 -1
  162. package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/NumericType/ChoiceTypeWithInfo/presenter.js +1 -1
  163. package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/NumericType/presenter.js +1 -1
  164. package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/RichFillBlankType/ChoiceGroupTypeTable/presenter.js +1 -1
  165. package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/ScoreDistributionType/Table/index.js +1 -1
  166. package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/ScoreDistributionType/index.js +1 -1
  167. package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/shared/AfsTableWrapper/popoverContent.js +1 -1
  168. package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/shared/AfsTableWrapper/presenter.js +1 -1
  169. package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/shared/AggregationTable/presenter.js +1 -1
  170. package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/shared/ChoiceTypeTable/presenter.js +1 -1
  171. package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/shared/ExpandableCard/presenter.js +1 -1
  172. package/es/reporting/components/resources/NewQuizAndItemAnalysis/ExportButton/index.js +1 -1
  173. package/es/reporting/components/resources/NewQuizAndItemAnalysis/MetricPopover/presenter.js +1 -1
  174. package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/popoverContent.js +1 -1
  175. package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/presenter.js +1 -1
  176. package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewQuizAnalysis/popoverContent.js +1 -1
  177. package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewQuizAnalysis/presenter.js +1 -1
  178. package/es/reporting/components/resources/NewQuizAndItemAnalysis/ReportCard/presenter.js +1 -1
  179. package/es/reporting/components/resources/NewQuizAndItemAnalysis/charts/ScoreDistribution/presenter.js +1 -3
  180. package/es/reporting/components/resources/NewQuizAndItemAnalysis/presenter.js +1 -1
  181. package/es/reporting/components/resources/QuizAndItemAnalysis/presenter.js +1 -1
  182. package/es/reporting/components/resources/ReportCard/index.js +1 -1
  183. package/es/reporting/components/resources/ReportList/index.js +1 -1
  184. package/es/reporting/components/resources/StudentAnalysis/ReportCard/presenter.js +1 -1
  185. package/es/reporting/components/resources/common/AnalysisUpdateDate/index.js +1 -1
  186. package/es/reporting/components/resources/common/ExportButton/index.js +1 -1
  187. package/es/reporting/components/resources/common/errorMessages.js +1 -1
  188. package/es/reporting/components/resources/common/utils.js +1 -1
  189. package/es/taking/api/taking.js +1 -1
  190. package/lib/banks/api/bankEntries.js +1 -1
  191. package/lib/banks/api/banks.js +18 -97
  192. package/lib/banks/api/copyingBanksPoller.js +1 -1
  193. package/lib/banks/api/tagAssociations.js +1 -1
  194. package/lib/banks/components/AddBankEntryModal/presenter.js +1 -1
  195. package/lib/banks/components/AddToBankModal/presenter.js +1 -1
  196. package/lib/banks/components/AsyncSearch/index.js +1 -1
  197. package/lib/banks/components/Bank/presenter.js +1 -1
  198. package/lib/banks/components/BankEntry/presenter.js +1 -1
  199. package/lib/banks/components/BankEntryRow/presenter.js +1 -1
  200. package/lib/banks/components/BankSearch/presenter.js +1 -1
  201. package/lib/banks/components/Banks/presenter.js +1 -1
  202. package/lib/banks/components/BanksList/presenter.js +1 -1
  203. package/lib/banks/components/CopyMoveBankEntryModal/presenter.js +1 -1
  204. package/lib/banks/components/CreateBankModal/presenter.js +1 -1
  205. package/lib/banks/components/EditBankModal/presenter.js +1 -1
  206. package/lib/banks/components/HeaderBreadCrumb/index.js +1 -1
  207. package/lib/banks/components/HeaderMenu/presenter.js +1 -1
  208. package/lib/banks/components/NavWrapper/presenter.js +1 -1
  209. package/lib/banks/components/SharingModal/RootAccountSharing.js +1 -1
  210. package/lib/banks/components/SharingModal/ShareList/index.js +1 -1
  211. package/lib/banks/components/SharingModal/index.js +5 -2
  212. package/lib/banks/components/SharingModal/presenter.js +206 -130
  213. package/lib/building/api/items.js +121 -24
  214. package/lib/building/api/quizEntries.js +79 -15
  215. package/lib/building/api/quizzes.js +2 -2
  216. package/lib/building/api/stimuli.js +1 -1
  217. package/lib/building/components/QTIImportModal/index.js +1 -1
  218. package/lib/building/components/layout/Sidebar/presenter.js +1 -1
  219. package/lib/building/components/layout/header/BuildingButtons/presenter.js +1 -1
  220. package/lib/building/components/resources/AddToBankOptions/index.js +1 -1
  221. package/lib/building/components/resources/BanksTray/presenter.js +1 -1
  222. package/lib/building/components/resources/DeleteStimulusModal/presenter.js +1 -1
  223. package/lib/building/components/resources/ItemFeedbackModal/presenter.js +1 -1
  224. package/lib/building/components/resources/MoveImmutableModal/presenter.js +1 -1
  225. package/lib/building/components/resources/quiz/editButton/EditButton.js +1 -1
  226. package/lib/building/components/resources/quiz/instructions/Edit/presenter.js +1 -1
  227. package/lib/building/components/resources/quiz/instructions/Instructions/presenter.js +1 -1
  228. package/lib/building/components/resources/quiz/instructions/Show/index.js +1 -1
  229. package/lib/building/components/resources/quiz/title/Edit/index.js +1 -1
  230. package/lib/building/components/resources/quiz/title/Title/presenter.js +1 -1
  231. package/lib/building/components/resources/quizEntry/QuizEntry/presenter.js +1 -1
  232. package/lib/building/components/resources/quizEntry/QuizEntryBank/QuizEntryBankEdit/presenter.js +1 -1
  233. package/lib/building/components/resources/quizEntry/QuizEntryBank/QuizEntryBankShow/index.js +1 -1
  234. package/lib/building/components/resources/quizEntry/QuizEntryEdit/Footer/presenter.js +1 -1
  235. package/lib/building/components/resources/quizEntry/QuizEntryEdit/Header/index.js +1 -1
  236. package/lib/building/components/resources/quizEntry/QuizEntryEdit/presenter.js +1 -1
  237. package/lib/building/components/resources/quizEntry/QuizEntryShow/presenter.js +21 -2
  238. package/lib/common/actions/sharedBanks.js +13 -1
  239. package/lib/common/actions/sharingModal.js +13 -0
  240. package/lib/common/api/helpers.js +1 -1
  241. package/lib/common/api/quizSessions.js +1 -1
  242. package/lib/common/components/AccessCodeTextInput/index.js +1 -1
  243. package/lib/common/components/ConfirmationModal/presenter.js +1 -1
  244. package/lib/common/components/ImportModal/ImportFileSelector/index.js +1 -1
  245. package/lib/common/components/ImportModal/presenter.js +1 -1
  246. package/lib/common/components/Pin/presenter.js +1 -1
  247. package/lib/common/components/PreviewFrame/index.js +1 -1
  248. package/lib/common/components/PrintFontSizeModal/presenter.js +1 -1
  249. package/lib/common/components/RceConfigProvider/rceConfigErrorMessages.js +1 -1
  250. package/lib/common/components/SDKApp/index.js +2 -2
  251. package/lib/common/components/alerts/presenter.js +1 -1
  252. package/lib/common/components/layout/Page/index.js +1 -1
  253. package/lib/common/components/layout/header/Calculator/presenter.js +1 -1
  254. package/lib/common/components/layout/header/HeaderMenuButton/presenter.js +1 -1
  255. package/lib/common/components/layout/header/Timer/presenter.js +1 -1
  256. package/lib/common/components/layout/navbar/index.js +1 -1
  257. package/lib/common/components/layout/sidebar/PositionSummary/index.js +1 -1
  258. package/lib/common/components/layout/sidebar/Sidebar/Pin.js +1 -1
  259. package/lib/common/components/layout/sidebar/Sidebar/index.js +1 -1
  260. package/lib/common/components/layout/sidebar/SidebarItem/index.js +1 -1
  261. package/lib/common/components/layout/sidebar/SidebarItem/presenter.js +1 -1
  262. package/lib/common/components/layout/sidebar/Stimulus/Collection/presenter.js +1 -1
  263. package/lib/common/components/layout/sidebar/Stimulus/Summary/presenter.js +1 -1
  264. package/lib/common/components/layout/sidebar/Stimulus/presenter.js +1 -1
  265. package/lib/common/components/resources/BankSelection/presenter.js +1 -1
  266. package/lib/common/components/resources/WarningWrapper/index.js +1 -1
  267. package/lib/common/components/resources/entry/EntrySave/presenter.js +1 -1
  268. package/lib/common/components/resources/item/ItemEdit/presenter.js +1 -1
  269. package/lib/common/components/resources/quiz/AddContent/Body/index.js +1 -1
  270. package/lib/common/components/resources/quiz/AddContent/Body/presenter.js +138 -141
  271. package/lib/common/components/resources/quiz/AddContent/Button/index.js +1 -1
  272. package/lib/common/components/resources/quiz/AddContent/Modal/presenter.js +61 -75
  273. package/lib/common/components/resources/quiz/AddContent/Popover/presenter.js +129 -119
  274. package/lib/common/components/resources/quizSessionResult/Header/index.js +1 -1
  275. package/lib/common/components/resources/quizSessionResult/Info/index.js +1 -1
  276. package/lib/common/components/resources/sessionItemResult/ResultStimulus/index.js +1 -1
  277. package/lib/common/components/resources/sessionItemResult/SessionItemResult/presenter.js +1 -1
  278. package/lib/common/components/resources/sessionItemResult/SessionItemResultsList/index.js +1 -1
  279. package/lib/common/components/resources/stimulus/StimulusEdit/presenter.js +1 -1
  280. package/lib/common/components/resources/stimulus/StimulusEditInfo/presenter.js +1 -1
  281. package/lib/common/components/resources/stimulus/StimulusShow/index.js +1 -1
  282. package/lib/common/components/resources/stimulus/StimulusShowInfo/index.js +1 -1
  283. package/lib/common/components/shared/FormattedDuration/index.js +1 -1
  284. package/lib/common/components/shared/GenericAsyncSearch/GenericAsyncSearch.js +1 -1
  285. package/lib/common/components/shared/InteractionTypes/index.js +1 -4
  286. package/lib/common/components/shared/InteractionTypes/presenter.js +2 -4
  287. package/lib/common/components/shared/Paginator/index.js +1 -1
  288. package/lib/common/components/shared/PrintTrigger/presenter.js +1 -1
  289. package/lib/common/components/shared/TagDisplay/index.js +1 -1
  290. package/lib/common/components/shared/TagSelect/presenter.js +1 -1
  291. package/lib/common/components/shared/TagWrapper/presenter.js +1 -1
  292. package/lib/common/components/shared/TimeUnitsInput/index.js +1 -1
  293. package/lib/common/components/shared/drag_and_drop/DragAndDropZone/index.js +1 -1
  294. package/lib/common/components/shared/drag_and_drop/DragHandle/presenter.js +1 -1
  295. package/lib/common/components/shared/return_button/ReturnButton.js +1 -1
  296. package/lib/common/components/shared/spinner/Spinner.js +1 -1
  297. package/lib/common/middleware/sharedBanksMiddleware.js +250 -0
  298. package/lib/common/records/Bank.js +1 -1
  299. package/lib/common/records/Item.js +3 -2
  300. package/lib/common/records/Quiz.js +1 -1
  301. package/lib/common/records/QuizAnalysis.js +1 -1
  302. package/lib/common/records/QuizEntry.js +8 -1
  303. package/lib/common/records/Stimulus.js +1 -1
  304. package/lib/common/reducers/sharingModal.js +23 -0
  305. package/lib/common/util/Fetcher.js +1 -1
  306. package/lib/common/util/TimerService.js +1 -1
  307. package/lib/common/util/formatTimespan.js +1 -1
  308. package/lib/common/util/interactionTypeMetadata.js +1 -1
  309. package/lib/common/util/interactionTypePropsHelper.js +1 -1
  310. package/lib/common/util/maxContent.js +1 -1
  311. package/lib/common/util/useRemoteComponent.js +134 -0
  312. package/lib/common/util/warningHelpers.js +1 -1
  313. package/lib/common/util/withDynamoPagination.js +13 -2
  314. package/lib/configureStore.js +4 -1
  315. package/lib/grading/api/quizEntryRegrades.js +1 -1
  316. package/lib/index.js +37 -0
  317. package/lib/moderating/api/quizSessionEvents.js +4 -2
  318. package/lib/moderating/components/events/PageBlurredEvent.js +1 -1
  319. package/lib/moderating/components/events/PageFocusedEvent.js +1 -1
  320. package/lib/moderating/components/events/ResponseEvent.js +1 -1
  321. package/lib/moderating/components/events/SessionStartEvent.js +1 -1
  322. package/lib/moderating/components/events/SessionSubmitEvent.js +1 -1
  323. package/lib/moderating/components/resources/AccommodationsModal/ExtraAttemptSettings/ExtraAttemptsInput/index.js +1 -1
  324. package/lib/moderating/components/resources/AccommodationsModal/ExtraAttemptSettings/index.js +1 -1
  325. package/lib/moderating/components/resources/AccommodationsModal/ExtraTimeMultiplier/index.js +1 -1
  326. package/lib/moderating/components/resources/AccommodationsModal/ExtraTimeSettings/index.js +1 -1
  327. package/lib/moderating/components/resources/AccommodationsModal/ReduceAnswerChoicesSettings/index.js +1 -1
  328. package/lib/moderating/components/resources/AccommodationsModal/index.js +1 -1
  329. package/lib/moderating/components/resources/ElapsedTime.js +1 -1
  330. package/lib/moderating/components/resources/EventDetails.js +1 -1
  331. package/lib/moderating/components/resources/ModerateTable/presenter.js +1 -1
  332. package/lib/moderating/components/resources/ModerateTableRow/presenter.js +1 -1
  333. package/lib/moderating/components/resources/OutstandingQuizzesModal/presenter.js +1 -1
  334. package/lib/moderating/components/resources/RetryGradePassbackButton/presenter.js +1 -1
  335. package/lib/moderating/components/resources/util/renderEventSummary.js +1 -1
  336. package/lib/moderating/components/sidebar/ModerateTray/presenter.js +1 -1
  337. package/lib/moderating/components/sidebar/ResetQuiz/presenter.js +1 -1
  338. package/lib/reporting/components/MetricsListItem/index.js +1 -1
  339. package/lib/reporting/components/charts/CentileDistribution/presenter.js +1 -1
  340. package/lib/reporting/components/charts/Distribution/presenter.js +1 -1
  341. package/lib/reporting/components/charts/QuintileDistribution/presenter.js +1 -1
  342. package/lib/reporting/components/itemAnalysis/AnswerFrequencySummary/index.js +1 -1
  343. package/lib/reporting/components/itemAnalysis/ItemAnalysisRow/presenter.js +1 -1
  344. package/lib/reporting/components/quizAnalysis/QuizAnalysisOverview.js +1 -1
  345. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/LegacyChoiceType/ChoiceTypeTableRow/presenter.js +1 -1
  346. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/LegacyChoiceType/presenter.js +1 -1
  347. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/MatchingType/CategorizationType.js +1 -1
  348. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/MatchingType/MatchingType.js +1 -1
  349. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/MatchingType/MatchingTypeTable/presenter.js +1 -1
  350. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/MatchingType/OrderingType.js +1 -1
  351. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/NumericType/ChoiceTypeWithInfo/presenter.js +1 -1
  352. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/NumericType/presenter.js +1 -1
  353. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/RichFillBlankType/ChoiceGroupTypeTable/presenter.js +1 -1
  354. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/ScoreDistributionType/Table/index.js +1 -1
  355. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/ScoreDistributionType/index.js +1 -1
  356. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/shared/AfsTableWrapper/popoverContent.js +1 -1
  357. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/shared/AfsTableWrapper/presenter.js +1 -1
  358. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/shared/AggregationTable/presenter.js +1 -1
  359. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/shared/ChoiceTypeTable/presenter.js +1 -1
  360. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/shared/ExpandableCard/presenter.js +1 -1
  361. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/ExportButton/index.js +1 -1
  362. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/MetricPopover/presenter.js +1 -1
  363. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/popoverContent.js +1 -1
  364. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/presenter.js +1 -1
  365. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewQuizAnalysis/popoverContent.js +1 -1
  366. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewQuizAnalysis/presenter.js +1 -1
  367. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/ReportCard/presenter.js +1 -1
  368. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/charts/ScoreDistribution/presenter.js +1 -3
  369. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/presenter.js +1 -1
  370. package/lib/reporting/components/resources/QuizAndItemAnalysis/presenter.js +1 -1
  371. package/lib/reporting/components/resources/ReportCard/index.js +1 -1
  372. package/lib/reporting/components/resources/ReportList/index.js +1 -1
  373. package/lib/reporting/components/resources/StudentAnalysis/ReportCard/presenter.js +1 -1
  374. package/lib/reporting/components/resources/common/AnalysisUpdateDate/index.js +1 -1
  375. package/lib/reporting/components/resources/common/ExportButton/index.js +1 -1
  376. package/lib/reporting/components/resources/common/errorMessages.js +1 -1
  377. package/lib/reporting/components/resources/common/utils.js +1 -1
  378. package/lib/taking/api/taking.js +1 -1
  379. package/package.json +40 -32
@@ -0,0 +1,243 @@
1
+ import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
2
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
3
+ import Fetcher from '../util/Fetcher';
4
+ import t from '@instructure/quiz-i18n/format-message';
5
+ import { handleError } from '../api/helpers';
6
+ import { handleShareBanksResponse } from '../api/callHandlers';
7
+ import { CAN_EDIT, SHARED_WITH_USER, SHARED_WITH_COURSE, SHARED_WITH_ACCOUNT, GET_SHARED_BANKS } from '@instructure/quiz-common';
8
+ import { sharedBankLoadingAction } from '../../common/actions/sharingModal';
9
+ var banksApiEndpoint = '/api/banks';
10
+ var chunkSize = 200;
11
+ function getAllinfo(_x, _x2) {
12
+ return _getAllinfo.apply(this, arguments);
13
+ }
14
+ function _getAllinfo() {
15
+ _getAllinfo = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(func, uuids) {
16
+ var info, i, nextChunk, nextData, result;
17
+ return _regeneratorRuntime.wrap(function _callee2$(_context2) {
18
+ while (1) switch (_context2.prev = _context2.next) {
19
+ case 0:
20
+ info = [];
21
+ for (i = 0; i < uuids.length; i += chunkSize) {
22
+ nextChunk = uuids.slice(i, i + chunkSize);
23
+ nextData = func(nextChunk);
24
+ info.push(nextData);
25
+ }
26
+ _context2.prev = 2;
27
+ _context2.next = 5;
28
+ return Promise.all(info);
29
+ case 5:
30
+ result = _context2.sent;
31
+ return _context2.abrupt("return", result.flat());
32
+ case 9:
33
+ _context2.prev = 9;
34
+ _context2.t0 = _context2["catch"](2);
35
+ console.error('Error fetching user info', _context2.t0);
36
+ return _context2.abrupt("return", []);
37
+ case 13:
38
+ case "end":
39
+ return _context2.stop();
40
+ }
41
+ }, _callee2, null, [[2, 9]]);
42
+ }));
43
+ return _getAllinfo.apply(this, arguments);
44
+ }
45
+ function getSharedBankUsers(_x3, _x4) {
46
+ return _getSharedBankUsers.apply(this, arguments);
47
+ }
48
+ function _getSharedBankUsers() {
49
+ _getSharedBankUsers = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3(sharedBanksInfo, getUserInfo) {
50
+ var userSharedBanks, userUuids, usersInfo;
51
+ return _regeneratorRuntime.wrap(function _callee3$(_context3) {
52
+ while (1) switch (_context3.prev = _context3.next) {
53
+ case 0:
54
+ userSharedBanks = [];
55
+ userUuids = sharedBanksInfo.filter(function (sb) {
56
+ return sb.entity_type === SHARED_WITH_USER;
57
+ }).map(function (sb) {
58
+ return sb.entity_id;
59
+ });
60
+ _context3.next = 4;
61
+ return getAllinfo(getUserInfo, userUuids);
62
+ case 4:
63
+ usersInfo = _context3.sent;
64
+ usersInfo.forEach(function (userInfo) {
65
+ var sharedBankInfo = sharedBanksInfo.find(function (sb) {
66
+ return sb.entity_type === SHARED_WITH_USER && sb.entity_id === userInfo.uuid;
67
+ });
68
+ if (sharedBankInfo) {
69
+ userSharedBanks.push({
70
+ id: sharedBankInfo.id,
71
+ entityType: sharedBankInfo.entity_type,
72
+ entityId: sharedBankInfo.entity_id,
73
+ title: userInfo.fullName,
74
+ avatar: userInfo.avatar,
75
+ permission: sharedBankInfo.permission,
76
+ bankId: sharedBankInfo.bank_id
77
+ });
78
+ }
79
+ });
80
+ return _context3.abrupt("return", userSharedBanks);
81
+ case 7:
82
+ case "end":
83
+ return _context3.stop();
84
+ }
85
+ }, _callee3);
86
+ }));
87
+ return _getSharedBankUsers.apply(this, arguments);
88
+ }
89
+ function getSharedBankCourses(_x5, _x6) {
90
+ return _getSharedBankCourses.apply(this, arguments);
91
+ }
92
+ function _getSharedBankCourses() {
93
+ _getSharedBankCourses = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee4(sharedBanksInfo, getCourseInfo) {
94
+ var courseSharedBanks, courseUuids, coursesInfo;
95
+ return _regeneratorRuntime.wrap(function _callee4$(_context4) {
96
+ while (1) switch (_context4.prev = _context4.next) {
97
+ case 0:
98
+ courseSharedBanks = [];
99
+ courseUuids = sharedBanksInfo.filter(function (sb) {
100
+ return sb.entity_type === SHARED_WITH_COURSE;
101
+ }).map(function (sb) {
102
+ return sb.entity_id;
103
+ });
104
+ _context4.next = 4;
105
+ return getAllinfo(getCourseInfo, courseUuids);
106
+ case 4:
107
+ coursesInfo = _context4.sent;
108
+ coursesInfo.forEach(function (courseInfo) {
109
+ var sharedBankInfo = sharedBanksInfo.find(function (sb) {
110
+ return sb.entity_type === SHARED_WITH_COURSE && sb.entity_id === courseInfo.uuid;
111
+ });
112
+ if (sharedBankInfo) {
113
+ courseSharedBanks.push({
114
+ id: sharedBankInfo.id,
115
+ entityType: sharedBankInfo.entity_type,
116
+ entityId: sharedBankInfo.entity_id,
117
+ title: courseInfo.title,
118
+ permission: sharedBankInfo.permission,
119
+ bankId: sharedBankInfo.bank_id
120
+ });
121
+ }
122
+ });
123
+ return _context4.abrupt("return", courseSharedBanks);
124
+ case 7:
125
+ case "end":
126
+ return _context4.stop();
127
+ }
128
+ }, _callee4);
129
+ }));
130
+ return _getSharedBankCourses.apply(this, arguments);
131
+ }
132
+ function getSharedBankAccounts(_x7, _x8) {
133
+ return _getSharedBankAccounts.apply(this, arguments);
134
+ }
135
+ function _getSharedBankAccounts() {
136
+ _getSharedBankAccounts = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee5(sharedBanksInfo, getAccountInfo) {
137
+ var accountSharedBanks, accountUuids, accountsInfo;
138
+ return _regeneratorRuntime.wrap(function _callee5$(_context5) {
139
+ while (1) switch (_context5.prev = _context5.next) {
140
+ case 0:
141
+ accountSharedBanks = [];
142
+ accountUuids = sharedBanksInfo.filter(function (sb) {
143
+ return sb.entity_type === SHARED_WITH_ACCOUNT;
144
+ }).map(function (sb) {
145
+ return sb.entity_id;
146
+ });
147
+ _context5.next = 4;
148
+ return getAllinfo(getAccountInfo, accountUuids);
149
+ case 4:
150
+ accountsInfo = _context5.sent;
151
+ accountsInfo.forEach(function (accountInfo) {
152
+ var sharedBankInfo = sharedBanksInfo.find(function (sb) {
153
+ return sb.entity_type === SHARED_WITH_ACCOUNT && sb.entity_id === accountInfo.uuid;
154
+ });
155
+ if (sharedBankInfo) {
156
+ accountSharedBanks.push({
157
+ id: sharedBankInfo.id,
158
+ entityType: sharedBankInfo.entity_type,
159
+ entityId: sharedBankInfo.entity_id,
160
+ title: accountInfo.name,
161
+ permission: sharedBankInfo.permission,
162
+ bankId: sharedBankInfo.bank_id
163
+ });
164
+ }
165
+ });
166
+ return _context5.abrupt("return", accountSharedBanks);
167
+ case 7:
168
+ case "end":
169
+ return _context5.stop();
170
+ }
171
+ }, _callee5);
172
+ }));
173
+ return _getSharedBankAccounts.apply(this, arguments);
174
+ }
175
+ export var createSharedBanksMiddleware = function createSharedBanksMiddleware() {
176
+ return function (store) {
177
+ return function (next) {
178
+ return /*#__PURE__*/function () {
179
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(action) {
180
+ var _action$payload, bank, getUserInfo, getCourseInfo, getAccountInfo, dispatch, url, startLoading, fetcher, sharedBanksInfo, users, courses, accounts, endLoading;
181
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
182
+ while (1) switch (_context.prev = _context.next) {
183
+ case 0:
184
+ if (!(action.type === GET_SHARED_BANKS)) {
185
+ _context.next = 23;
186
+ break;
187
+ }
188
+ _action$payload = action.payload, bank = _action$payload.bank, getUserInfo = _action$payload.getUserInfo, getCourseInfo = _action$payload.getCourseInfo, getAccountInfo = _action$payload.getAccountInfo;
189
+ dispatch = store.dispatch;
190
+ url = "".concat(banksApiEndpoint, "/").concat(bank.id, "/shared_banks");
191
+ startLoading = {
192
+ loading: true
193
+ };
194
+ dispatch(sharedBankLoadingAction(startLoading));
195
+ fetcher = new Fetcher({
196
+ onError: handleError(dispatch, t('Failed to fetch shared banks.'))
197
+ });
198
+ _context.next = 9;
199
+ return fetcher.get(url);
200
+ case 9:
201
+ sharedBanksInfo = _context.sent;
202
+ // Add bank creator if no data
203
+ if (sharedBanksInfo.length === 0) {
204
+ sharedBanksInfo.push({
205
+ id: '-1',
206
+ entity_type: SHARED_WITH_USER,
207
+ entity_id: bank.creator,
208
+ permission: CAN_EDIT,
209
+ bank_id: bank.id
210
+ });
211
+ }
212
+ _context.next = 13;
213
+ return getSharedBankUsers(sharedBanksInfo, getUserInfo);
214
+ case 13:
215
+ users = _context.sent;
216
+ _context.next = 16;
217
+ return getSharedBankCourses(sharedBanksInfo, getCourseInfo);
218
+ case 16:
219
+ courses = _context.sent;
220
+ _context.next = 19;
221
+ return getSharedBankAccounts(sharedBanksInfo, getAccountInfo);
222
+ case 19:
223
+ accounts = _context.sent;
224
+ dispatch(handleShareBanksResponse(users.concat(courses).concat(accounts)));
225
+ endLoading = {
226
+ loading: false
227
+ };
228
+ dispatch(sharedBankLoadingAction(endLoading));
229
+ case 23:
230
+ return _context.abrupt("return", next(action));
231
+ case 24:
232
+ case "end":
233
+ return _context.stop();
234
+ }
235
+ }, _callee);
236
+ }));
237
+ return function (_x9) {
238
+ return _ref.apply(this, arguments);
239
+ };
240
+ }();
241
+ };
242
+ };
243
+ };
@@ -20,7 +20,7 @@ function _callSuper(_this, derived, args) {
20
20
  }
21
21
  import { Set } from 'immutable';
22
22
  import ReduxRecord from './reduxRecord';
23
- import t from '@instructure/quiz-i18n/es/format-message';
23
+ import t from '@instructure/quiz-i18n/format-message';
24
24
  import { TEMPORARY_BANK_ID, CAN_EDIT } from '@instructure/quiz-common';
25
25
  import { rule } from 'instructure-validations';
26
26
  import { presenceMessage } from '@instructure/quiz-interactions';
@@ -19,7 +19,7 @@ function _callSuper(_this, derived, args) {
19
19
  }
20
20
  import { fromJS, Map, is } from 'immutable';
21
21
  import { InteractionType as InteractionTypeRecord } from '@instructure/quiz-interactions';
22
- import t from '@instructure/quiz-i18n/es/format-message';
22
+ import t from '@instructure/quiz-i18n/format-message';
23
23
  import { rule } from 'instructure-validations';
24
24
  import { TEMPORARY_ITEM_ID, BUILD_CHAR_LIMIT, RICH_FILL_BLANK_SLUG } from '@instructure/quiz-common';
25
25
  import ReduxRecord from './reduxRecord';
@@ -142,6 +142,7 @@ export var Item = /*#__PURE__*/function (_ReduxRecord) {
142
142
  feedback: Map(),
143
143
  answerFeedback: Map(),
144
144
  stimulusId: null,
145
- calculatorType: 'none'
145
+ calculatorType: 'none',
146
+ metadata: Map()
146
147
  }));
147
148
  export default Item;
@@ -22,7 +22,7 @@ function _callSuper(_this, derived, args) {
22
22
  import { List, Map } from 'immutable';
23
23
  import { rule } from 'instructure-validations';
24
24
  import { presenceMessage } from '@instructure/quiz-interactions';
25
- import t from '@instructure/quiz-i18n/es/format-message';
25
+ import t from '@instructure/quiz-i18n/format-message';
26
26
  import QuizAnalysis from './QuizAnalysis';
27
27
  import ReduxRecord from './reduxRecord';
28
28
  import withStateCache from '../util/withStateCache';
@@ -18,7 +18,7 @@ function _callSuper(_this, derived, args) {
18
18
  return _possibleConstructorReturn(_this, isNativeReflectConstruct() ? Reflect.construct(derived, args || [], _getPrototypeOf(_this).constructor) : derived.apply(_this, args));
19
19
  }
20
20
  import ReduxRecord from './reduxRecord';
21
- import t from '@instructure/quiz-i18n/es/format-message';
21
+ import t from '@instructure/quiz-i18n/format-message';
22
22
  export var QuizAnalysis = /*#__PURE__*/function (_ReduxRecord) {
23
23
  function QuizAnalysis() {
24
24
  _classCallCheck(this, QuizAnalysis);
@@ -32,7 +32,7 @@ import _BankEntry from './BankEntry';
32
32
  import { TEMPORARY_ITEM_ID, TEMPORARY_STIMULUS_ID, TEMPORARY_QUIZ_ENTRY_ID, REMOVE, MOVE, EDIT, COPY } from '@instructure/quiz-common';
33
33
  import { mergeDeepOnlyMaps } from '../util/immutableHelpers';
34
34
  import withStateCache from '../util/withStateCache';
35
- import t from '@instructure/quiz-i18n/es/format-message';
35
+ import t from '@instructure/quiz-i18n/format-message';
36
36
  var acceptedVerbs = [REMOVE, MOVE, EDIT, COPY];
37
37
  export var QuizEntry = (_dec = withStateCache(function () {
38
38
  return [['quizEntries'], ['modifications', 'quizEntries']];
@@ -307,6 +307,13 @@ export var QuizEntry = (_dec = withStateCache(function () {
307
307
  get: function get() {
308
308
  return !isNaN(parseInt(this.stimulusQuizEntryId, 10));
309
309
  }
310
+ }, {
311
+ key: "isAiGenerated",
312
+ get: function get() {
313
+ var _this$getEntry;
314
+ var tags = ((_this$getEntry = this.getEntry()) === null || _this$getEntry === void 0 || (_this$getEntry = _this$getEntry.metadata) === null || _this$getEntry === void 0 ? void 0 : _this$getEntry.get('tags', List())) || List();
315
+ return tags.includes('ai-generated');
316
+ }
310
317
  }, {
311
318
  key: "isTemporary",
312
319
  get: function get() {
@@ -20,7 +20,7 @@ function _callSuper(_this, derived, args) {
20
20
  import { is } from 'immutable';
21
21
  import ReduxRecord from './reduxRecord';
22
22
  import { TEMPORARY_STIMULUS_ID } from '@instructure/quiz-common';
23
- import t from '@instructure/quiz-i18n/es/format-message';
23
+ import t from '@instructure/quiz-i18n/format-message';
24
24
  import { rule } from 'instructure-validations';
25
25
  import { presenceMessage } from '@instructure/quiz-interactions';
26
26
  export var Stimulus = /*#__PURE__*/function (_ReduxRecord) {
@@ -0,0 +1,17 @@
1
+ import { fromJS } from 'immutable';
2
+ import { CHANGE_MODAL_LOADING } from '@instructure/quiz-common';
3
+ var changeLoading = function changeLoading(state, payload) {
4
+ return state.merge({
5
+ loading: payload.loading !== undefined ? payload.loading : state.loading
6
+ });
7
+ };
8
+ export default (function () {
9
+ var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : fromJS({});
10
+ var action = arguments.length > 1 ? arguments[1] : undefined;
11
+ switch (action.type) {
12
+ case CHANGE_MODAL_LOADING:
13
+ return changeLoading(state, action.payload);
14
+ default:
15
+ return state;
16
+ }
17
+ });
@@ -8,7 +8,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
8
8
  import { decamelizeKeys } from 'humps';
9
9
  import queryString from 'query-string';
10
10
  import fetch from 'isomorphic-fetch';
11
- import t from '@instructure/quiz-i18n/es/format-message';
11
+ import t from '@instructure/quiz-i18n/format-message';
12
12
  import jsonify from './jsonify';
13
13
  import { httpHeaders, jwtHeader } from './httpHeaders';
14
14
  import store from '../../reduxStore';
@@ -1,7 +1,7 @@
1
1
  import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
2
2
  import _createClass from "@babel/runtime/helpers/esm/createClass";
3
3
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
4
- import t from '@instructure/quiz-i18n/es/format-message';
4
+ import t from '@instructure/quiz-i18n/format-message';
5
5
  import reduxStore from '../../reduxStore';
6
6
  export var MAX_SETTIMEOUT_IN_MILLISECONDS = 20 * 24 * 3600 * 1000; // ms of 20 days
7
7
  export var TimerService = /*#__PURE__*/function () {
@@ -1,4 +1,4 @@
1
- import t from '@instructure/quiz-i18n/es/format-message';
1
+ import t from '@instructure/quiz-i18n/format-message';
2
2
  import { DateTime } from 'luxon';
3
3
  var minuteDuration = 60;
4
4
  var hourDuration = 3600;
@@ -7,7 +7,7 @@
7
7
  // import { FillBlankIcon } from '@instructure/ui-icons'
8
8
  // import { EssayIcon } from '@instructure/ui-icons'
9
9
  import { IconPlusLine } from '@instructure/ui-icons';
10
- import t from '@instructure/quiz-i18n/es/format-message';
10
+ import t from '@instructure/quiz-i18n/format-message';
11
11
  var interactionTypesIconDictionary = function interactionTypesIconDictionary(intType) {
12
12
  return {
13
13
  // TODO: Uncomment when we have the icons imported
@@ -1,5 +1,5 @@
1
1
  import { RichContentInput } from '@instructure/quiz-rce';
2
- import t from '@instructure/quiz-i18n/es/format-message';
2
+ import t from '@instructure/quiz-i18n/format-message';
3
3
  import { featureOn } from './featureCheck';
4
4
  export var propsForInteractionEdit = function propsForInteractionEdit(props, additionalOptions) {
5
5
  var item = props.workingItem.toJS();
@@ -1,4 +1,4 @@
1
- import t from '@instructure/quiz-i18n/es/format-message';
1
+ import t from '@instructure/quiz-i18n/format-message';
2
2
  import { BUILD_CHAR_LIMIT } from '@instructure/quiz-common';
3
3
  export default (function (val, options) {
4
4
  var limit = options.limit || BUILD_CHAR_LIMIT;
@@ -0,0 +1,127 @@
1
+ import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
2
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
3
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
4
+ // @ts-check
5
+ import { useCallback, useEffect, useRef, useState } from 'react';
6
+ import t from '@instructure/quiz-i18n/format-message';
7
+
8
+ /**
9
+ * Custom hook to load and render a remote component asynchronously.
10
+ *
11
+ * @param {() => Promise<{
12
+ * render: (container: HTMLElement, props: unknown) => void,
13
+ * unmount?: () => void
14
+ * }>} loadRemoteModule - A function that returns a promise resolving to the remote component module
15
+ * @param {unknown | undefined} props - Props to pass to the remote component when rendering
16
+ * @param {boolean} enabled - Whether the remote component should be loaded and rendered
17
+ *
18
+ * @returns {{
19
+ * containerRef: React.MutableRefObject<HTMLDivElement | null>,
20
+ * componentActivityState: 'idle' | 'pending' | 'success' | 'error',
21
+ * componentError: Error | null,
22
+ * unmount: () => void
23
+ * }} An object containing the container ref and unmount function
24
+ */
25
+ export function useRemoteComponent(loadRemoteModule, props) {
26
+ var enabled = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
27
+ var mountCancelled = useRef(false);
28
+ var _useState = useState(/** @type {'idle' | 'pending' | 'success' | 'error'} */'idle'),
29
+ _useState2 = _slicedToArray(_useState, 2),
30
+ componentActivityState = _useState2[0],
31
+ setComponentActivityState = _useState2[1];
32
+ var _useState3 = useState(/** @type {Error | null} */null),
33
+ _useState4 = _slicedToArray(_useState3, 2),
34
+ componentError = _useState4[0],
35
+ setComponentError = _useState4[1];
36
+
37
+ /**
38
+ * @type {React.MutableRefObject<{
39
+ * render: (container: HTMLElement, props: unknown) => void,
40
+ * unmount?: () => void
41
+ * } | null>}
42
+ */
43
+ var remoteModuleRef = useRef(null);
44
+
45
+ /**
46
+ * @type {React.MutableRefObject<HTMLDivElement | null>}
47
+ */
48
+ var containerRef = useRef(null);
49
+
50
+ // Note: This workflow can be converted to a TanStack Query hook in the future.
51
+ useEffect(function () {
52
+ if (loadRemoteModule == null || !enabled || componentActivityState === 'error') {
53
+ return;
54
+ }
55
+ mountCancelled.current = false;
56
+ setComponentActivityState('idle');
57
+ function loadModule() {
58
+ return _loadModule.apply(this, arguments);
59
+ }
60
+ function _loadModule() {
61
+ _loadModule = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
62
+ var module;
63
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
64
+ while (1) switch (_context.prev = _context.next) {
65
+ case 0:
66
+ _context.prev = 0;
67
+ if (!remoteModuleRef.current) {
68
+ _context.next = 4;
69
+ break;
70
+ }
71
+ setComponentActivityState('success');
72
+ return _context.abrupt("return", remoteModuleRef.current);
73
+ case 4:
74
+ setComponentActivityState('pending');
75
+ _context.next = 7;
76
+ return loadRemoteModule();
77
+ case 7:
78
+ module = _context.sent;
79
+ setComponentActivityState('success');
80
+ return _context.abrupt("return", module);
81
+ case 12:
82
+ _context.prev = 12;
83
+ _context.t0 = _context["catch"](0);
84
+ setComponentActivityState('error');
85
+ setComponentError(new Error(t('Failed to load remote module: {error}', {
86
+ error: _context.t0
87
+ })));
88
+ case 16:
89
+ case "end":
90
+ return _context.stop();
91
+ }
92
+ }, _callee, null, [[0, 12]]);
93
+ }));
94
+ return _loadModule.apply(this, arguments);
95
+ }
96
+ loadModule().then(function (module) {
97
+ if (module) {
98
+ remoteModuleRef.current = module;
99
+ }
100
+ var container = containerRef.current;
101
+ if (container == null || module == null || mountCancelled.current) {
102
+ return;
103
+ }
104
+ module.render(container, props);
105
+ });
106
+ return function () {
107
+ mountCancelled.current = true;
108
+ };
109
+ }, [loadRemoteModule, props, enabled]);
110
+ var unmount = useCallback(function () {
111
+ var _module$unmount;
112
+ if (mountCancelled.current || !containerRef.current) {
113
+ return;
114
+ }
115
+ var module = remoteModuleRef.current;
116
+ if (!module) {
117
+ return;
118
+ }
119
+ (_module$unmount = module.unmount) === null || _module$unmount === void 0 || _module$unmount.call(module);
120
+ }, []);
121
+ return {
122
+ containerRef: containerRef,
123
+ componentActivityState: componentActivityState,
124
+ componentError: componentError,
125
+ unmount: unmount
126
+ };
127
+ }
@@ -3,7 +3,7 @@ import React from 'react';
3
3
  import partial from 'lodash/partial';
4
4
  import { Text } from '@instructure/ui-text';
5
5
  import { View } from '@instructure/ui-view';
6
- import t from '@instructure/quiz-i18n/es/format-message';
6
+ import t from '@instructure/quiz-i18n/format-message';
7
7
  var propsForVersioningWrapper = function propsForVersioningWrapper(copyDescription, immutableDescription, isImmutable, shouldClone, setShouldClone, switchOffEditing, isEditing) {
8
8
  var alertType = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 'warning';
9
9
  var defaultProps = {
@@ -1,4 +1,5 @@
1
1
  import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
2
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
3
  import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
3
4
  import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
4
5
  import _createClass from "@babel/runtime/helpers/esm/createClass";
@@ -6,6 +7,8 @@ import _possibleConstructorReturn from "@babel/runtime/helpers/esm/possibleConst
6
7
  import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf";
7
8
  import _inherits from "@babel/runtime/helpers/esm/inherits";
8
9
  import _regeneratorRuntime from "@babel/runtime/regenerator";
10
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
11
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
9
12
  function _callSuper(_this, derived, args) {
10
13
  function isNativeReflectConstruct() {
11
14
  if (typeof Reflect === "undefined" || !Reflect.construct) return false;
@@ -20,7 +23,15 @@ function _callSuper(_this, derived, args) {
20
23
  derived = _getPrototypeOf(derived);
21
24
  return _possibleConstructorReturn(_this, isNativeReflectConstruct() ? Reflect.construct(derived, args || [], _getPrototypeOf(_this).constructor) : derived.apply(_this, args));
22
25
  }
26
+ /**
27
+ * Returns a class that extends the Fetcher class to handle DynamoDB pagination.
28
+ *
29
+ * @param {Function} Fetcher - The Fetcher class to extend
30
+ * @param {Object.<string, any>} optionalParams - Optional query parameters to pass to the request
31
+ * @returns {Function} - A new class that extends Fetcher with pagination capabilities
32
+ */
23
33
  export function withDynamoPagination(Fetcher) {
34
+ var optionalParams = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
24
35
  return /*#__PURE__*/function (_Fetcher) {
25
36
  function _class() {
26
37
  var _this2;
@@ -58,10 +69,10 @@ export function withDynamoPagination(Fetcher) {
58
69
  ancillary = [];
59
70
  case 3:
60
71
  _context.next = 5;
61
- return this.get(url, {
72
+ return this.get(url, _objectSpread({
62
73
  lastEvaluatedHashKey: lastEvaluatedHashKey,
63
74
  lastEvaluatedRangeKey: lastEvaluatedRangeKey
64
- });
75
+ }, optionalParams));
65
76
  case 5:
66
77
  response = _context.sent;
67
78
  responses.push(response);
@@ -11,6 +11,7 @@ import alertTimerMiddleware from './common/middleware/alertTimerMiddleware';
11
11
  import crossDomainMessagingMiddleware from './common/middleware/crossDomainMessagingMiddleware';
12
12
  import eventLoggerMiddlewareCreator from './common/middleware/eventLoggerMiddleware';
13
13
  import { createQuizTimerWebSocketMiddleware } from './common/middleware/quizTimerWebSocketMiddleware';
14
+ import { createSharedBanksMiddleware } from './common/middleware/sharedBanksMiddleware';
14
15
 
15
16
  // reducers
16
17
  import alerts from './common/reducers/alerts';
@@ -50,6 +51,7 @@ import qtiImports from './common/reducers/qtiImports';
50
51
  import printing from './common/reducers/printing';
51
52
  import rce from './common/reducers/rce';
52
53
  import analyses from './common/reducers/analyses';
54
+ import sharingModal from './common/reducers/sharingModal';
53
55
  import dragAndDrop from './common/reducers/dragAndDrop';
54
56
  import sharedBanks from './common/reducers/sharedBanks';
55
57
  export function configureStore(_ref) {
@@ -77,7 +79,7 @@ export function configureStore(_ref) {
77
79
  var getMiddleware = function getMiddleware(implementation, override) {
78
80
  return isTest && override ? override : implementation;
79
81
  };
80
- var middlewares = [getMiddleware(alertTimerMiddleware, middlewareOverrides.alertTimerMiddleware), getMiddleware(crossDomainMessagingMiddleware, middlewareOverrides.crossDomainMessagingMiddleware), getMiddleware(multi, middlewareOverrides.multiMiddleware), getMiddleware(eventLoggerMiddlewareCreator(), middlewareOverrides.kinesisMiddleware), getMiddleware(thunkMiddleware, middlewareOverrides.thunkMiddleware), getMiddleware(createQuizTimerWebSocketMiddleware(), middlewareOverrides.websocketMiddleware)];
82
+ var middlewares = [getMiddleware(alertTimerMiddleware, middlewareOverrides.alertTimerMiddleware), getMiddleware(crossDomainMessagingMiddleware, middlewareOverrides.crossDomainMessagingMiddleware), getMiddleware(multi, middlewareOverrides.multiMiddleware), getMiddleware(eventLoggerMiddlewareCreator(), middlewareOverrides.kinesisMiddleware), getMiddleware(thunkMiddleware, middlewareOverrides.thunkMiddleware), getMiddleware(createQuizTimerWebSocketMiddleware(), middlewareOverrides.websocketMiddleware), getMiddleware(createSharedBanksMiddleware(), middlewareOverrides.sharedBanksMiddleware)];
81
83
  var devMiddleware = [getMiddleware(loggerMiddleware, middlewareOverrides.logger)];
82
84
  if (inDevelopment) {
83
85
  middlewares.push.apply(middlewares, devMiddleware);
@@ -98,6 +100,7 @@ export function configureStore(_ref) {
98
100
  banks: banks,
99
101
  bankEntries: bankEntries,
100
102
  sharedBanks: sharedBanks,
103
+ sharingModal: sharingModal,
101
104
  calls: calls,
102
105
  config: configReducer,
103
106
  editing: editing,
@@ -2,7 +2,7 @@ import { CREATE_QUIZ_ENTRY_REGRADE, REGRADE_MODAL } from '@instructure/quiz-comm
2
2
  import { closeModal } from '../../common/actions/modal';
3
3
  import Fetcher from '../../common/util/Fetcher';
4
4
  import { processApiError, getOnErrorWithDelayedValidationMessage } from '../../common/api/helpers';
5
- import t from '@instructure/quiz-i18n/es/format-message';
5
+ import t from '@instructure/quiz-i18n/format-message';
6
6
  export function createQuizEntryRegrade(quizId, payload) {
7
7
  var url = "/api/quizzes/".concat(quizId, "/quiz_entry_regrades");
8
8
  var params = {