@windward/core 0.18.0 → 0.19.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 (350) hide show
  1. package/.idea/codeStyles/Project.xml +58 -0
  2. package/.idea/codeStyles/codeStyleConfig.xml +5 -0
  3. package/.idea/inspectionProfiles/Project_Default.xml +6 -0
  4. package/.idea/misc.xml +6 -0
  5. package/.idea/modules.xml +8 -0
  6. package/.idea/php-docker-settings.xml +24 -0
  7. package/.idea/php.xml +19 -0
  8. package/.idea/vcs.xml +6 -0
  9. package/.idea/watcherTasks.xml +4 -0
  10. package/.idea/windward-ui-plugin-core.iml +8 -0
  11. package/CHANGELOG.md +3 -19
  12. package/components/Content/Blocks/Email.vue +6 -1
  13. package/components/utils/GenerateAIQuestionButton.vue +88 -16
  14. package/config/menu.config.json +475 -0
  15. package/coverage/clover.xml +1474 -0
  16. package/coverage/coverage-final.json +199 -0
  17. package/coverage/lcov-report/base.css +224 -0
  18. package/coverage/lcov-report/block-navigation.js +87 -0
  19. package/coverage/lcov-report/components/Content/Blocks/Accordion.vue.html +772 -0
  20. package/coverage/lcov-report/components/Content/Blocks/BlockQuote.vue.html +625 -0
  21. package/coverage/lcov-report/components/Content/Blocks/ClickableIcons.vue.html +979 -0
  22. package/coverage/lcov-report/components/Content/Blocks/Email.vue.html +1171 -0
  23. package/coverage/lcov-report/components/Content/Blocks/Feedback.vue.html +1075 -0
  24. package/coverage/lcov-report/components/Content/Blocks/FileDownload/FileLinks.vue.html +331 -0
  25. package/coverage/lcov-report/components/Content/Blocks/FileDownload/FileTable.vue.html +403 -0
  26. package/coverage/lcov-report/components/Content/Blocks/FileDownload/index.html +131 -0
  27. package/coverage/lcov-report/components/Content/Blocks/FileDownload.vue.html +514 -0
  28. package/coverage/lcov-report/components/Content/Blocks/Image.vue.html +211 -0
  29. package/coverage/lcov-report/components/Content/Blocks/Math.vue.html +352 -0
  30. package/coverage/lcov-report/components/Content/Blocks/OpenResponse.vue.html +667 -0
  31. package/coverage/lcov-report/components/Content/Blocks/OpenResponseCollate.vue.html +643 -0
  32. package/coverage/lcov-report/components/Content/Blocks/RichText.vue.html +295 -0
  33. package/coverage/lcov-report/components/Content/Blocks/ScenarioChoice.vue.html +976 -0
  34. package/coverage/lcov-report/components/Content/Blocks/Tab.vue.html +445 -0
  35. package/coverage/lcov-report/components/Content/Blocks/Table.vue.html +667 -0
  36. package/coverage/lcov-report/components/Content/Blocks/UserUpload/DisplayUserFilesTable.vue.html +562 -0
  37. package/coverage/lcov-report/components/Content/Blocks/UserUpload/index.html +116 -0
  38. package/coverage/lcov-report/components/Content/Blocks/UserUpload.vue.html +844 -0
  39. package/coverage/lcov-report/components/Content/Blocks/Video.vue.html +1225 -0
  40. package/coverage/lcov-report/components/Content/Blocks/index.html +311 -0
  41. package/coverage/lcov-report/components/Settings/AccordionSettings.vue.html +961 -0
  42. package/coverage/lcov-report/components/Settings/BlockQuoteSettings.vue.html +673 -0
  43. package/coverage/lcov-report/components/Settings/ClickableIconsSettings.vue.html +1144 -0
  44. package/coverage/lcov-report/components/Settings/EmailSettings.vue.html +901 -0
  45. package/coverage/lcov-report/components/Settings/FeedbackSettings.vue.html +373 -0
  46. package/coverage/lcov-report/components/Settings/FileDownloadSettings.vue.html +607 -0
  47. package/coverage/lcov-report/components/Settings/ImageSettings.vue.html +310 -0
  48. package/coverage/lcov-report/components/Settings/MathSettings.vue.html +337 -0
  49. package/coverage/lcov-report/components/Settings/OpenResponseCollateSettings.vue.html +586 -0
  50. package/coverage/lcov-report/components/Settings/OpenResponseSettings.vue.html +415 -0
  51. package/coverage/lcov-report/components/Settings/ScenarioChoiceSettings.vue.html +1183 -0
  52. package/coverage/lcov-report/components/Settings/TabSettings.vue.html +751 -0
  53. package/coverage/lcov-report/components/Settings/UserUploadSettings.vue.html +535 -0
  54. package/coverage/lcov-report/components/Settings/index.html +296 -0
  55. package/coverage/lcov-report/components/utils/ContentViewer.vue.html +199 -0
  56. package/coverage/lcov-report/components/utils/MathExpressionEditor.vue.html +1120 -0
  57. package/coverage/lcov-report/components/utils/MathLiveWrapper.vue.html +415 -0
  58. package/coverage/lcov-report/components/utils/TinyMCEWrapper.vue.html +271 -0
  59. package/coverage/lcov-report/components/utils/index.html +131 -0
  60. package/coverage/lcov-report/config/index.html +116 -0
  61. package/coverage/lcov-report/config/tinymce.config.js.html +493 -0
  62. package/coverage/lcov-report/config/tinymce.config.ts.html +1051 -0
  63. package/coverage/lcov-report/favicon.png +0 -0
  64. package/coverage/lcov-report/helpers/GlossaryHelper.ts.html +577 -0
  65. package/coverage/lcov-report/helpers/GlossaryTerm.ts.html +178 -0
  66. package/coverage/lcov-report/helpers/MathHelper.ts.html +1033 -0
  67. package/coverage/lcov-report/helpers/index.html +146 -0
  68. package/coverage/lcov-report/helpers/tinymce/index.html +116 -0
  69. package/coverage/lcov-report/helpers/tinymce/plugin.ts.html +334 -0
  70. package/coverage/lcov-report/i18n/en-US/components/content/blocks/block_quote.ts.html +94 -0
  71. package/coverage/lcov-report/i18n/en-US/components/content/blocks/email.ts.html +127 -0
  72. package/coverage/lcov-report/i18n/en-US/components/content/blocks/feedback.ts.html +178 -0
  73. package/coverage/lcov-report/i18n/en-US/components/content/blocks/file_download.ts.html +100 -0
  74. package/coverage/lcov-report/i18n/en-US/components/content/blocks/generate_questions.ts.html +100 -0
  75. package/coverage/lcov-report/i18n/en-US/components/content/blocks/image.ts.html +100 -0
  76. package/coverage/lcov-report/i18n/en-US/components/content/blocks/index.html +296 -0
  77. package/coverage/lcov-report/i18n/en-US/components/content/blocks/index.ts.html +166 -0
  78. package/coverage/lcov-report/i18n/en-US/components/content/blocks/open_response.ts.html +100 -0
  79. package/coverage/lcov-report/i18n/en-US/components/content/blocks/open_response_collate.ts.html +106 -0
  80. package/coverage/lcov-report/i18n/en-US/components/content/blocks/scenario_choice.ts.html +100 -0
  81. package/coverage/lcov-report/i18n/en-US/components/content/blocks/table.ts.html +97 -0
  82. package/coverage/lcov-report/i18n/en-US/components/content/blocks/user_upload.ts.html +115 -0
  83. package/coverage/lcov-report/i18n/en-US/components/content/blocks/video.ts.html +97 -0
  84. package/coverage/lcov-report/i18n/en-US/components/content/index.html +116 -0
  85. package/coverage/lcov-report/i18n/en-US/components/content/index.ts.html +100 -0
  86. package/coverage/lcov-report/i18n/en-US/components/index.html +116 -0
  87. package/coverage/lcov-report/i18n/en-US/components/index.ts.html +118 -0
  88. package/coverage/lcov-report/i18n/en-US/components/navigation/ask_the_expert.ts.html +118 -0
  89. package/coverage/lcov-report/i18n/en-US/components/navigation/image.ts.html +97 -0
  90. package/coverage/lcov-report/i18n/en-US/components/navigation/index.html +161 -0
  91. package/coverage/lcov-report/i18n/en-US/components/navigation/index.ts.html +112 -0
  92. package/coverage/lcov-report/i18n/en-US/components/navigation/user_upload.ts.html +94 -0
  93. package/coverage/lcov-report/i18n/en-US/components/settings/accordion.ts.html +106 -0
  94. package/coverage/lcov-report/i18n/en-US/components/settings/block_quote.ts.html +130 -0
  95. package/coverage/lcov-report/i18n/en-US/components/settings/clickable_icon.ts.html +142 -0
  96. package/coverage/lcov-report/i18n/en-US/components/settings/email.ts.html +115 -0
  97. package/coverage/lcov-report/i18n/en-US/components/settings/file_download.ts.html +109 -0
  98. package/coverage/lcov-report/i18n/en-US/components/settings/horizontal_rule.ts.html +94 -0
  99. package/coverage/lcov-report/i18n/en-US/components/settings/image.ts.html +142 -0
  100. package/coverage/lcov-report/i18n/en-US/components/settings/index.html +326 -0
  101. package/coverage/lcov-report/i18n/en-US/components/settings/index.ts.html +178 -0
  102. package/coverage/lcov-report/i18n/en-US/components/settings/open_response.ts.html +100 -0
  103. package/coverage/lcov-report/i18n/en-US/components/settings/open_response_collate.ts.html +103 -0
  104. package/coverage/lcov-report/i18n/en-US/components/settings/scenario_choice.ts.html +145 -0
  105. package/coverage/lcov-report/i18n/en-US/components/settings/tab.ts.html +109 -0
  106. package/coverage/lcov-report/i18n/en-US/components/settings/text_editor.ts.html +115 -0
  107. package/coverage/lcov-report/i18n/en-US/components/settings/user_upload.ts.html +121 -0
  108. package/coverage/lcov-report/i18n/en-US/components/settings/video.ts.html +277 -0
  109. package/coverage/lcov-report/i18n/en-US/components/utils/FillInBlank/FillInBlankInput.ts.html +130 -0
  110. package/coverage/lcov-report/i18n/en-US/components/utils/FillInBlank/FillInTheBlanksManager.ts.html +118 -0
  111. package/coverage/lcov-report/i18n/en-US/components/utils/FillInBlank/index.html +146 -0
  112. package/coverage/lcov-report/i18n/en-US/components/utils/FillInBlank/index.ts.html +103 -0
  113. package/coverage/lcov-report/i18n/en-US/components/utils/index.html +146 -0
  114. package/coverage/lcov-report/i18n/en-US/components/utils/index.ts.html +109 -0
  115. package/coverage/lcov-report/i18n/en-US/components/utils/math_expression_editor.ts.html +130 -0
  116. package/coverage/lcov-report/i18n/en-US/components/utils/tiny_mce_wrapper.ts.html +175 -0
  117. package/coverage/lcov-report/i18n/en-US/index.html +116 -0
  118. package/coverage/lcov-report/i18n/en-US/index.ts.html +133 -0
  119. package/coverage/lcov-report/i18n/en-US/modules/index.html +116 -0
  120. package/coverage/lcov-report/i18n/en-US/modules/index.ts.html +100 -0
  121. package/coverage/lcov-report/i18n/en-US/pages/glossary.ts.html +106 -0
  122. package/coverage/lcov-report/i18n/en-US/pages/index.html +146 -0
  123. package/coverage/lcov-report/i18n/en-US/pages/index.ts.html +112 -0
  124. package/coverage/lcov-report/i18n/en-US/pages/plugins/error.ts.html +112 -0
  125. package/coverage/lcov-report/i18n/en-US/pages/plugins/index.html +131 -0
  126. package/coverage/lcov-report/i18n/en-US/pages/plugins/index.ts.html +100 -0
  127. package/coverage/lcov-report/i18n/en-US/pages/user_upload.ts.html +94 -0
  128. package/coverage/lcov-report/i18n/en-US/shared/content_blocks.ts.html +163 -0
  129. package/coverage/lcov-report/i18n/en-US/shared/index.html +176 -0
  130. package/coverage/lcov-report/i18n/en-US/shared/index.ts.html +118 -0
  131. package/coverage/lcov-report/i18n/en-US/shared/menu.ts.html +97 -0
  132. package/coverage/lcov-report/i18n/en-US/shared/permission.ts.html +130 -0
  133. package/coverage/lcov-report/i18n/en-US/shared/settings.ts.html +172 -0
  134. package/coverage/lcov-report/i18n/es-ES/components/content/blocks/block_quote.ts.html +94 -0
  135. package/coverage/lcov-report/i18n/es-ES/components/content/blocks/email.ts.html +127 -0
  136. package/coverage/lcov-report/i18n/es-ES/components/content/blocks/feedback.ts.html +178 -0
  137. package/coverage/lcov-report/i18n/es-ES/components/content/blocks/file_download.ts.html +100 -0
  138. package/coverage/lcov-report/i18n/es-ES/components/content/blocks/generate_questions.ts.html +100 -0
  139. package/coverage/lcov-report/i18n/es-ES/components/content/blocks/image.ts.html +100 -0
  140. package/coverage/lcov-report/i18n/es-ES/components/content/blocks/index.html +296 -0
  141. package/coverage/lcov-report/i18n/es-ES/components/content/blocks/index.ts.html +166 -0
  142. package/coverage/lcov-report/i18n/es-ES/components/content/blocks/open_response.ts.html +103 -0
  143. package/coverage/lcov-report/i18n/es-ES/components/content/blocks/open_response_collate.ts.html +106 -0
  144. package/coverage/lcov-report/i18n/es-ES/components/content/blocks/scenario_choice.ts.html +103 -0
  145. package/coverage/lcov-report/i18n/es-ES/components/content/blocks/table.ts.html +97 -0
  146. package/coverage/lcov-report/i18n/es-ES/components/content/blocks/user_upload.ts.html +118 -0
  147. package/coverage/lcov-report/i18n/es-ES/components/content/blocks/video.ts.html +100 -0
  148. package/coverage/lcov-report/i18n/es-ES/components/content/index.html +116 -0
  149. package/coverage/lcov-report/i18n/es-ES/components/content/index.ts.html +100 -0
  150. package/coverage/lcov-report/i18n/es-ES/components/index.html +116 -0
  151. package/coverage/lcov-report/i18n/es-ES/components/index.ts.html +121 -0
  152. package/coverage/lcov-report/i18n/es-ES/components/navigation/ask_the_expert.ts.html +118 -0
  153. package/coverage/lcov-report/i18n/es-ES/components/navigation/image.ts.html +97 -0
  154. package/coverage/lcov-report/i18n/es-ES/components/navigation/index.html +161 -0
  155. package/coverage/lcov-report/i18n/es-ES/components/navigation/index.ts.html +112 -0
  156. package/coverage/lcov-report/i18n/es-ES/components/navigation/user_upload.ts.html +94 -0
  157. package/coverage/lcov-report/i18n/es-ES/components/settings/accordion.ts.html +106 -0
  158. package/coverage/lcov-report/i18n/es-ES/components/settings/block_quote.ts.html +130 -0
  159. package/coverage/lcov-report/i18n/es-ES/components/settings/clickable_icon.ts.html +145 -0
  160. package/coverage/lcov-report/i18n/es-ES/components/settings/email.ts.html +115 -0
  161. package/coverage/lcov-report/i18n/es-ES/components/settings/file_download.ts.html +109 -0
  162. package/coverage/lcov-report/i18n/es-ES/components/settings/horizontal_rule.ts.html +94 -0
  163. package/coverage/lcov-report/i18n/es-ES/components/settings/image.ts.html +148 -0
  164. package/coverage/lcov-report/i18n/es-ES/components/settings/index.html +326 -0
  165. package/coverage/lcov-report/i18n/es-ES/components/settings/index.ts.html +178 -0
  166. package/coverage/lcov-report/i18n/es-ES/components/settings/open_response.ts.html +100 -0
  167. package/coverage/lcov-report/i18n/es-ES/components/settings/open_response_collate.ts.html +106 -0
  168. package/coverage/lcov-report/i18n/es-ES/components/settings/scenario_choice.ts.html +145 -0
  169. package/coverage/lcov-report/i18n/es-ES/components/settings/tab.ts.html +112 -0
  170. package/coverage/lcov-report/i18n/es-ES/components/settings/text_editor.ts.html +115 -0
  171. package/coverage/lcov-report/i18n/es-ES/components/settings/user_upload.ts.html +121 -0
  172. package/coverage/lcov-report/i18n/es-ES/components/settings/video.ts.html +283 -0
  173. package/coverage/lcov-report/i18n/es-ES/components/utils/FillInBlank/FillInBlankInput.ts.html +130 -0
  174. package/coverage/lcov-report/i18n/es-ES/components/utils/FillInBlank/FillInTheBlanksManager.ts.html +118 -0
  175. package/coverage/lcov-report/i18n/es-ES/components/utils/FillInBlank/index.html +146 -0
  176. package/coverage/lcov-report/i18n/es-ES/components/utils/FillInBlank/index.ts.html +103 -0
  177. package/coverage/lcov-report/i18n/es-ES/components/utils/index.html +146 -0
  178. package/coverage/lcov-report/i18n/es-ES/components/utils/index.ts.html +109 -0
  179. package/coverage/lcov-report/i18n/es-ES/components/utils/math_expression_editor.ts.html +130 -0
  180. package/coverage/lcov-report/i18n/es-ES/components/utils/tiny_mce_wrapper.ts.html +178 -0
  181. package/coverage/lcov-report/i18n/es-ES/index.html +116 -0
  182. package/coverage/lcov-report/i18n/es-ES/index.ts.html +133 -0
  183. package/coverage/lcov-report/i18n/es-ES/modules/index.html +116 -0
  184. package/coverage/lcov-report/i18n/es-ES/modules/index.ts.html +100 -0
  185. package/coverage/lcov-report/i18n/es-ES/pages/glossary.ts.html +106 -0
  186. package/coverage/lcov-report/i18n/es-ES/pages/index.html +146 -0
  187. package/coverage/lcov-report/i18n/es-ES/pages/index.ts.html +112 -0
  188. package/coverage/lcov-report/i18n/es-ES/pages/plugins/error.ts.html +112 -0
  189. package/coverage/lcov-report/i18n/es-ES/pages/plugins/index.html +131 -0
  190. package/coverage/lcov-report/i18n/es-ES/pages/plugins/index.ts.html +100 -0
  191. package/coverage/lcov-report/i18n/es-ES/pages/user_upload.ts.html +94 -0
  192. package/coverage/lcov-report/i18n/es-ES/shared/content_blocks.ts.html +163 -0
  193. package/coverage/lcov-report/i18n/es-ES/shared/index.html +176 -0
  194. package/coverage/lcov-report/i18n/es-ES/shared/index.ts.html +118 -0
  195. package/coverage/lcov-report/i18n/es-ES/shared/menu.ts.html +97 -0
  196. package/coverage/lcov-report/i18n/es-ES/shared/permission.ts.html +130 -0
  197. package/coverage/lcov-report/i18n/es-ES/shared/settings.ts.html +178 -0
  198. package/coverage/lcov-report/i18n/index.html +116 -0
  199. package/coverage/lcov-report/i18n/index.ts.html +118 -0
  200. package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/block_quote.ts.html +94 -0
  201. package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/email.ts.html +127 -0
  202. package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/feedback.ts.html +178 -0
  203. package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/file_download.ts.html +100 -0
  204. package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/generate_questions.ts.html +100 -0
  205. package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/image.ts.html +100 -0
  206. package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/index.html +296 -0
  207. package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/index.ts.html +166 -0
  208. package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/open_response.ts.html +103 -0
  209. package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/open_response_collate.ts.html +106 -0
  210. package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/scenario_choice.ts.html +100 -0
  211. package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/table.ts.html +97 -0
  212. package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/user_upload.ts.html +118 -0
  213. package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/video.ts.html +97 -0
  214. package/coverage/lcov-report/i18n/sv-SE/components/content/index.html +116 -0
  215. package/coverage/lcov-report/i18n/sv-SE/components/content/index.ts.html +100 -0
  216. package/coverage/lcov-report/i18n/sv-SE/components/index.html +116 -0
  217. package/coverage/lcov-report/i18n/sv-SE/components/index.ts.html +121 -0
  218. package/coverage/lcov-report/i18n/sv-SE/components/navigation/ask_the_expert.ts.html +118 -0
  219. package/coverage/lcov-report/i18n/sv-SE/components/navigation/image.ts.html +97 -0
  220. package/coverage/lcov-report/i18n/sv-SE/components/navigation/index.html +161 -0
  221. package/coverage/lcov-report/i18n/sv-SE/components/navigation/index.ts.html +112 -0
  222. package/coverage/lcov-report/i18n/sv-SE/components/navigation/user_upload.ts.html +94 -0
  223. package/coverage/lcov-report/i18n/sv-SE/components/settings/accordion.ts.html +109 -0
  224. package/coverage/lcov-report/i18n/sv-SE/components/settings/block_quote.ts.html +130 -0
  225. package/coverage/lcov-report/i18n/sv-SE/components/settings/clickable_icon.ts.html +145 -0
  226. package/coverage/lcov-report/i18n/sv-SE/components/settings/email.ts.html +115 -0
  227. package/coverage/lcov-report/i18n/sv-SE/components/settings/file_download.ts.html +109 -0
  228. package/coverage/lcov-report/i18n/sv-SE/components/settings/horizontal_rule.ts.html +94 -0
  229. package/coverage/lcov-report/i18n/sv-SE/components/settings/image.ts.html +142 -0
  230. package/coverage/lcov-report/i18n/sv-SE/components/settings/index.html +326 -0
  231. package/coverage/lcov-report/i18n/sv-SE/components/settings/index.ts.html +178 -0
  232. package/coverage/lcov-report/i18n/sv-SE/components/settings/open_response.ts.html +100 -0
  233. package/coverage/lcov-report/i18n/sv-SE/components/settings/open_response_collate.ts.html +103 -0
  234. package/coverage/lcov-report/i18n/sv-SE/components/settings/scenario_choice.ts.html +145 -0
  235. package/coverage/lcov-report/i18n/sv-SE/components/settings/tab.ts.html +109 -0
  236. package/coverage/lcov-report/i18n/sv-SE/components/settings/text_editor.ts.html +115 -0
  237. package/coverage/lcov-report/i18n/sv-SE/components/settings/user_upload.ts.html +121 -0
  238. package/coverage/lcov-report/i18n/sv-SE/components/settings/video.ts.html +277 -0
  239. package/coverage/lcov-report/i18n/sv-SE/components/utils/FillInBlank/FillInBlankInput.ts.html +130 -0
  240. package/coverage/lcov-report/i18n/sv-SE/components/utils/FillInBlank/FillInTheBlanksManager.ts.html +118 -0
  241. package/coverage/lcov-report/i18n/sv-SE/components/utils/FillInBlank/index.html +146 -0
  242. package/coverage/lcov-report/i18n/sv-SE/components/utils/FillInBlank/index.ts.html +103 -0
  243. package/coverage/lcov-report/i18n/sv-SE/components/utils/index.html +146 -0
  244. package/coverage/lcov-report/i18n/sv-SE/components/utils/index.ts.html +109 -0
  245. package/coverage/lcov-report/i18n/sv-SE/components/utils/math_expression_editor.ts.html +130 -0
  246. package/coverage/lcov-report/i18n/sv-SE/components/utils/tiny_mce_wrapper.ts.html +178 -0
  247. package/coverage/lcov-report/i18n/sv-SE/index.html +116 -0
  248. package/coverage/lcov-report/i18n/sv-SE/index.ts.html +133 -0
  249. package/coverage/lcov-report/i18n/sv-SE/modules/index.html +116 -0
  250. package/coverage/lcov-report/i18n/sv-SE/modules/index.ts.html +100 -0
  251. package/coverage/lcov-report/i18n/sv-SE/pages/glossary.ts.html +106 -0
  252. package/coverage/lcov-report/i18n/sv-SE/pages/index.html +146 -0
  253. package/coverage/lcov-report/i18n/sv-SE/pages/index.ts.html +112 -0
  254. package/coverage/lcov-report/i18n/sv-SE/pages/plugins/error.ts.html +109 -0
  255. package/coverage/lcov-report/i18n/sv-SE/pages/plugins/index.html +131 -0
  256. package/coverage/lcov-report/i18n/sv-SE/pages/plugins/index.ts.html +100 -0
  257. package/coverage/lcov-report/i18n/sv-SE/pages/user_upload.ts.html +94 -0
  258. package/coverage/lcov-report/i18n/sv-SE/shared/content_blocks.ts.html +163 -0
  259. package/coverage/lcov-report/i18n/sv-SE/shared/index.html +176 -0
  260. package/coverage/lcov-report/i18n/sv-SE/shared/index.ts.html +118 -0
  261. package/coverage/lcov-report/i18n/sv-SE/shared/menu.ts.html +97 -0
  262. package/coverage/lcov-report/i18n/sv-SE/shared/permission.ts.html +130 -0
  263. package/coverage/lcov-report/i18n/sv-SE/shared/settings.ts.html +172 -0
  264. package/coverage/lcov-report/index.html +806 -0
  265. package/coverage/lcov-report/models/SurveyResult.ts.html +109 -0
  266. package/coverage/lcov-report/models/SurveyTemplate.ts.html +109 -0
  267. package/coverage/lcov-report/models/index.html +131 -0
  268. package/coverage/lcov-report/pages/plugins/tinymce/_plugin.vue.html +322 -0
  269. package/coverage/lcov-report/pages/plugins/tinymce/index.html +116 -0
  270. package/coverage/lcov-report/prettify.css +1 -0
  271. package/coverage/lcov-report/prettify.js +2 -0
  272. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  273. package/coverage/lcov-report/sorter.js +196 -0
  274. package/coverage/lcov-report/test/index.html +131 -0
  275. package/coverage/lcov-report/test/locales.js.html +370 -0
  276. package/coverage/lcov-report/test/mocks.js.html +532 -0
  277. package/coverage/lcov.info +2753 -0
  278. package/i18n/en-US/components/content/blocks/generate_questions.ts +4 -0
  279. package/i18n/es-ES/components/content/blocks/generate_questions.ts +4 -0
  280. package/i18n/sv-SE/components/content/blocks/generate_questions.ts +4 -0
  281. package/lib/helpers/GlossaryHelper.d.ts +9 -0
  282. package/lib/helpers/GlossaryHelper.js +118 -0
  283. package/lib/helpers/GlossaryTerm.d.ts +10 -0
  284. package/lib/helpers/GlossaryTerm.js +22 -0
  285. package/lib/helpers/MathHelper.d.ts +99 -0
  286. package/lib/helpers/MathHelper.js +194 -0
  287. package/lib/helpers/tinymce/plugin.d.ts +2 -0
  288. package/lib/helpers/tinymce/plugin.js +86 -0
  289. package/lib/i18n/en-US/components/content/blocks/image.d.ts +6 -0
  290. package/lib/i18n/en-US/components/content/blocks/image.js +7 -0
  291. package/lib/i18n/en-US/components/content/blocks/index.d.ts +75 -0
  292. package/lib/i18n/en-US/components/content/blocks/index.js +14 -0
  293. package/lib/i18n/en-US/components/content/blocks/tab.d.ts +5 -0
  294. package/lib/i18n/en-US/components/content/blocks/tab.js +6 -0
  295. package/lib/i18n/en-US/components/content/blocks/table.d.ts +5 -0
  296. package/lib/i18n/en-US/components/content/blocks/table.js +6 -0
  297. package/lib/i18n/en-US/components/content/blocks/user_upload.d.ts +13 -0
  298. package/lib/i18n/en-US/components/content/blocks/user_upload.js +14 -0
  299. package/lib/i18n/en-US/components/content/blocks/video.d.ts +48 -0
  300. package/lib/i18n/en-US/components/content/blocks/video.js +49 -0
  301. package/lib/i18n/en-US/components/content/index.d.ts +77 -0
  302. package/lib/i18n/en-US/components/content/index.js +6 -0
  303. package/lib/i18n/en-US/components/index.d.ts +140 -0
  304. package/lib/i18n/en-US/components/index.js +12 -0
  305. package/lib/i18n/en-US/components/navigation/image.d.ts +5 -0
  306. package/lib/i18n/en-US/components/navigation/image.js +6 -0
  307. package/lib/i18n/en-US/components/navigation/index.d.ts +10 -0
  308. package/lib/i18n/en-US/components/navigation/index.js +8 -0
  309. package/lib/i18n/en-US/components/navigation/user_upload.d.ts +4 -0
  310. package/lib/i18n/en-US/components/navigation/user_upload.js +5 -0
  311. package/lib/i18n/en-US/components/settings/clickable_icon.d.ts +6 -0
  312. package/lib/i18n/en-US/components/settings/clickable_icon.js +7 -0
  313. package/lib/i18n/en-US/components/settings/image.d.ts +2 -0
  314. package/lib/i18n/en-US/components/settings/image.js +3 -0
  315. package/lib/i18n/en-US/components/settings/index.d.ts +39 -0
  316. package/lib/i18n/en-US/components/settings/index.js +14 -0
  317. package/lib/i18n/en-US/components/settings/text_editor.d.ts +8 -0
  318. package/lib/i18n/en-US/components/settings/text_editor.js +9 -0
  319. package/lib/i18n/en-US/components/settings/user_upload.d.ts +12 -0
  320. package/lib/i18n/en-US/components/settings/user_upload.js +13 -0
  321. package/lib/i18n/en-US/components/settings/video.d.ts +13 -0
  322. package/lib/i18n/en-US/components/settings/video.js +14 -0
  323. package/lib/i18n/en-US/components/utils/index.d.ts +15 -0
  324. package/lib/i18n/en-US/components/utils/index.js +6 -0
  325. package/lib/i18n/en-US/components/utils/tiny_mce_wrapper.d.ts +13 -0
  326. package/lib/i18n/en-US/components/utils/tiny_mce_wrapper.js +14 -0
  327. package/lib/i18n/en-US/index.d.ts +197 -0
  328. package/lib/i18n/en-US/index.js +16 -0
  329. package/lib/i18n/en-US/modules/index.d.ts +2 -0
  330. package/lib/i18n/en-US/modules/index.js +6 -0
  331. package/lib/i18n/en-US/pages/glossary.d.ts +8 -0
  332. package/lib/i18n/en-US/pages/glossary.js +9 -0
  333. package/lib/i18n/en-US/pages/index.d.ts +13 -0
  334. package/lib/i18n/en-US/pages/index.js +8 -0
  335. package/lib/i18n/en-US/pages/user_upload.d.ts +4 -0
  336. package/lib/i18n/en-US/pages/user_upload.js +5 -0
  337. package/lib/i18n/en-US/shared/content_blocks.d.ts +20 -0
  338. package/lib/i18n/en-US/shared/content_blocks.js +21 -0
  339. package/lib/i18n/en-US/shared/index.d.ts +39 -0
  340. package/lib/i18n/en-US/shared/index.js +10 -0
  341. package/lib/i18n/en-US/shared/menu.d.ts +4 -0
  342. package/lib/i18n/en-US/shared/menu.js +5 -0
  343. package/lib/i18n/en-US/shared/settings.d.ts +15 -0
  344. package/lib/i18n/en-US/shared/settings.js +16 -0
  345. package/lib/i18n/en-US.d.ts +197 -0
  346. package/lib/i18n/en-US.js +15 -0
  347. package/lib/models/UserFileAsset.d.ts +5 -0
  348. package/lib/models/UserFileAsset.js +37 -0
  349. package/package.json +1 -1
  350. package/table_styling.scss +58 -0
@@ -0,0 +1,844 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for components/Content/Blocks/UserUpload.vue</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../../../prettify.css" />
9
+ <link rel="stylesheet" href="../../../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../../../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../../../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../../../index.html">All files</a> / <a href="index.html">components/Content/Blocks</a> UserUpload.vue</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">100% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>12/12</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">100% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>0/0</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">100% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>0/0</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">100% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>12/12</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line high'></div>
65
+ <pre><table class="coverage">
66
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
+ <a name='L2'></a><a href='#L2'>2</a>
68
+ <a name='L3'></a><a href='#L3'>3</a>
69
+ <a name='L4'></a><a href='#L4'>4</a>
70
+ <a name='L5'></a><a href='#L5'>5</a>
71
+ <a name='L6'></a><a href='#L6'>6</a>
72
+ <a name='L7'></a><a href='#L7'>7</a>
73
+ <a name='L8'></a><a href='#L8'>8</a>
74
+ <a name='L9'></a><a href='#L9'>9</a>
75
+ <a name='L10'></a><a href='#L10'>10</a>
76
+ <a name='L11'></a><a href='#L11'>11</a>
77
+ <a name='L12'></a><a href='#L12'>12</a>
78
+ <a name='L13'></a><a href='#L13'>13</a>
79
+ <a name='L14'></a><a href='#L14'>14</a>
80
+ <a name='L15'></a><a href='#L15'>15</a>
81
+ <a name='L16'></a><a href='#L16'>16</a>
82
+ <a name='L17'></a><a href='#L17'>17</a>
83
+ <a name='L18'></a><a href='#L18'>18</a>
84
+ <a name='L19'></a><a href='#L19'>19</a>
85
+ <a name='L20'></a><a href='#L20'>20</a>
86
+ <a name='L21'></a><a href='#L21'>21</a>
87
+ <a name='L22'></a><a href='#L22'>22</a>
88
+ <a name='L23'></a><a href='#L23'>23</a>
89
+ <a name='L24'></a><a href='#L24'>24</a>
90
+ <a name='L25'></a><a href='#L25'>25</a>
91
+ <a name='L26'></a><a href='#L26'>26</a>
92
+ <a name='L27'></a><a href='#L27'>27</a>
93
+ <a name='L28'></a><a href='#L28'>28</a>
94
+ <a name='L29'></a><a href='#L29'>29</a>
95
+ <a name='L30'></a><a href='#L30'>30</a>
96
+ <a name='L31'></a><a href='#L31'>31</a>
97
+ <a name='L32'></a><a href='#L32'>32</a>
98
+ <a name='L33'></a><a href='#L33'>33</a>
99
+ <a name='L34'></a><a href='#L34'>34</a>
100
+ <a name='L35'></a><a href='#L35'>35</a>
101
+ <a name='L36'></a><a href='#L36'>36</a>
102
+ <a name='L37'></a><a href='#L37'>37</a>
103
+ <a name='L38'></a><a href='#L38'>38</a>
104
+ <a name='L39'></a><a href='#L39'>39</a>
105
+ <a name='L40'></a><a href='#L40'>40</a>
106
+ <a name='L41'></a><a href='#L41'>41</a>
107
+ <a name='L42'></a><a href='#L42'>42</a>
108
+ <a name='L43'></a><a href='#L43'>43</a>
109
+ <a name='L44'></a><a href='#L44'>44</a>
110
+ <a name='L45'></a><a href='#L45'>45</a>
111
+ <a name='L46'></a><a href='#L46'>46</a>
112
+ <a name='L47'></a><a href='#L47'>47</a>
113
+ <a name='L48'></a><a href='#L48'>48</a>
114
+ <a name='L49'></a><a href='#L49'>49</a>
115
+ <a name='L50'></a><a href='#L50'>50</a>
116
+ <a name='L51'></a><a href='#L51'>51</a>
117
+ <a name='L52'></a><a href='#L52'>52</a>
118
+ <a name='L53'></a><a href='#L53'>53</a>
119
+ <a name='L54'></a><a href='#L54'>54</a>
120
+ <a name='L55'></a><a href='#L55'>55</a>
121
+ <a name='L56'></a><a href='#L56'>56</a>
122
+ <a name='L57'></a><a href='#L57'>57</a>
123
+ <a name='L58'></a><a href='#L58'>58</a>
124
+ <a name='L59'></a><a href='#L59'>59</a>
125
+ <a name='L60'></a><a href='#L60'>60</a>
126
+ <a name='L61'></a><a href='#L61'>61</a>
127
+ <a name='L62'></a><a href='#L62'>62</a>
128
+ <a name='L63'></a><a href='#L63'>63</a>
129
+ <a name='L64'></a><a href='#L64'>64</a>
130
+ <a name='L65'></a><a href='#L65'>65</a>
131
+ <a name='L66'></a><a href='#L66'>66</a>
132
+ <a name='L67'></a><a href='#L67'>67</a>
133
+ <a name='L68'></a><a href='#L68'>68</a>
134
+ <a name='L69'></a><a href='#L69'>69</a>
135
+ <a name='L70'></a><a href='#L70'>70</a>
136
+ <a name='L71'></a><a href='#L71'>71</a>
137
+ <a name='L72'></a><a href='#L72'>72</a>
138
+ <a name='L73'></a><a href='#L73'>73</a>
139
+ <a name='L74'></a><a href='#L74'>74</a>
140
+ <a name='L75'></a><a href='#L75'>75</a>
141
+ <a name='L76'></a><a href='#L76'>76</a>
142
+ <a name='L77'></a><a href='#L77'>77</a>
143
+ <a name='L78'></a><a href='#L78'>78</a>
144
+ <a name='L79'></a><a href='#L79'>79</a>
145
+ <a name='L80'></a><a href='#L80'>80</a>
146
+ <a name='L81'></a><a href='#L81'>81</a>
147
+ <a name='L82'></a><a href='#L82'>82</a>
148
+ <a name='L83'></a><a href='#L83'>83</a>
149
+ <a name='L84'></a><a href='#L84'>84</a>
150
+ <a name='L85'></a><a href='#L85'>85</a>
151
+ <a name='L86'></a><a href='#L86'>86</a>
152
+ <a name='L87'></a><a href='#L87'>87</a>
153
+ <a name='L88'></a><a href='#L88'>88</a>
154
+ <a name='L89'></a><a href='#L89'>89</a>
155
+ <a name='L90'></a><a href='#L90'>90</a>
156
+ <a name='L91'></a><a href='#L91'>91</a>
157
+ <a name='L92'></a><a href='#L92'>92</a>
158
+ <a name='L93'></a><a href='#L93'>93</a>
159
+ <a name='L94'></a><a href='#L94'>94</a>
160
+ <a name='L95'></a><a href='#L95'>95</a>
161
+ <a name='L96'></a><a href='#L96'>96</a>
162
+ <a name='L97'></a><a href='#L97'>97</a>
163
+ <a name='L98'></a><a href='#L98'>98</a>
164
+ <a name='L99'></a><a href='#L99'>99</a>
165
+ <a name='L100'></a><a href='#L100'>100</a>
166
+ <a name='L101'></a><a href='#L101'>101</a>
167
+ <a name='L102'></a><a href='#L102'>102</a>
168
+ <a name='L103'></a><a href='#L103'>103</a>
169
+ <a name='L104'></a><a href='#L104'>104</a>
170
+ <a name='L105'></a><a href='#L105'>105</a>
171
+ <a name='L106'></a><a href='#L106'>106</a>
172
+ <a name='L107'></a><a href='#L107'>107</a>
173
+ <a name='L108'></a><a href='#L108'>108</a>
174
+ <a name='L109'></a><a href='#L109'>109</a>
175
+ <a name='L110'></a><a href='#L110'>110</a>
176
+ <a name='L111'></a><a href='#L111'>111</a>
177
+ <a name='L112'></a><a href='#L112'>112</a>
178
+ <a name='L113'></a><a href='#L113'>113</a>
179
+ <a name='L114'></a><a href='#L114'>114</a>
180
+ <a name='L115'></a><a href='#L115'>115</a>
181
+ <a name='L116'></a><a href='#L116'>116</a>
182
+ <a name='L117'></a><a href='#L117'>117</a>
183
+ <a name='L118'></a><a href='#L118'>118</a>
184
+ <a name='L119'></a><a href='#L119'>119</a>
185
+ <a name='L120'></a><a href='#L120'>120</a>
186
+ <a name='L121'></a><a href='#L121'>121</a>
187
+ <a name='L122'></a><a href='#L122'>122</a>
188
+ <a name='L123'></a><a href='#L123'>123</a>
189
+ <a name='L124'></a><a href='#L124'>124</a>
190
+ <a name='L125'></a><a href='#L125'>125</a>
191
+ <a name='L126'></a><a href='#L126'>126</a>
192
+ <a name='L127'></a><a href='#L127'>127</a>
193
+ <a name='L128'></a><a href='#L128'>128</a>
194
+ <a name='L129'></a><a href='#L129'>129</a>
195
+ <a name='L130'></a><a href='#L130'>130</a>
196
+ <a name='L131'></a><a href='#L131'>131</a>
197
+ <a name='L132'></a><a href='#L132'>132</a>
198
+ <a name='L133'></a><a href='#L133'>133</a>
199
+ <a name='L134'></a><a href='#L134'>134</a>
200
+ <a name='L135'></a><a href='#L135'>135</a>
201
+ <a name='L136'></a><a href='#L136'>136</a>
202
+ <a name='L137'></a><a href='#L137'>137</a>
203
+ <a name='L138'></a><a href='#L138'>138</a>
204
+ <a name='L139'></a><a href='#L139'>139</a>
205
+ <a name='L140'></a><a href='#L140'>140</a>
206
+ <a name='L141'></a><a href='#L141'>141</a>
207
+ <a name='L142'></a><a href='#L142'>142</a>
208
+ <a name='L143'></a><a href='#L143'>143</a>
209
+ <a name='L144'></a><a href='#L144'>144</a>
210
+ <a name='L145'></a><a href='#L145'>145</a>
211
+ <a name='L146'></a><a href='#L146'>146</a>
212
+ <a name='L147'></a><a href='#L147'>147</a>
213
+ <a name='L148'></a><a href='#L148'>148</a>
214
+ <a name='L149'></a><a href='#L149'>149</a>
215
+ <a name='L150'></a><a href='#L150'>150</a>
216
+ <a name='L151'></a><a href='#L151'>151</a>
217
+ <a name='L152'></a><a href='#L152'>152</a>
218
+ <a name='L153'></a><a href='#L153'>153</a>
219
+ <a name='L154'></a><a href='#L154'>154</a>
220
+ <a name='L155'></a><a href='#L155'>155</a>
221
+ <a name='L156'></a><a href='#L156'>156</a>
222
+ <a name='L157'></a><a href='#L157'>157</a>
223
+ <a name='L158'></a><a href='#L158'>158</a>
224
+ <a name='L159'></a><a href='#L159'>159</a>
225
+ <a name='L160'></a><a href='#L160'>160</a>
226
+ <a name='L161'></a><a href='#L161'>161</a>
227
+ <a name='L162'></a><a href='#L162'>162</a>
228
+ <a name='L163'></a><a href='#L163'>163</a>
229
+ <a name='L164'></a><a href='#L164'>164</a>
230
+ <a name='L165'></a><a href='#L165'>165</a>
231
+ <a name='L166'></a><a href='#L166'>166</a>
232
+ <a name='L167'></a><a href='#L167'>167</a>
233
+ <a name='L168'></a><a href='#L168'>168</a>
234
+ <a name='L169'></a><a href='#L169'>169</a>
235
+ <a name='L170'></a><a href='#L170'>170</a>
236
+ <a name='L171'></a><a href='#L171'>171</a>
237
+ <a name='L172'></a><a href='#L172'>172</a>
238
+ <a name='L173'></a><a href='#L173'>173</a>
239
+ <a name='L174'></a><a href='#L174'>174</a>
240
+ <a name='L175'></a><a href='#L175'>175</a>
241
+ <a name='L176'></a><a href='#L176'>176</a>
242
+ <a name='L177'></a><a href='#L177'>177</a>
243
+ <a name='L178'></a><a href='#L178'>178</a>
244
+ <a name='L179'></a><a href='#L179'>179</a>
245
+ <a name='L180'></a><a href='#L180'>180</a>
246
+ <a name='L181'></a><a href='#L181'>181</a>
247
+ <a name='L182'></a><a href='#L182'>182</a>
248
+ <a name='L183'></a><a href='#L183'>183</a>
249
+ <a name='L184'></a><a href='#L184'>184</a>
250
+ <a name='L185'></a><a href='#L185'>185</a>
251
+ <a name='L186'></a><a href='#L186'>186</a>
252
+ <a name='L187'></a><a href='#L187'>187</a>
253
+ <a name='L188'></a><a href='#L188'>188</a>
254
+ <a name='L189'></a><a href='#L189'>189</a>
255
+ <a name='L190'></a><a href='#L190'>190</a>
256
+ <a name='L191'></a><a href='#L191'>191</a>
257
+ <a name='L192'></a><a href='#L192'>192</a>
258
+ <a name='L193'></a><a href='#L193'>193</a>
259
+ <a name='L194'></a><a href='#L194'>194</a>
260
+ <a name='L195'></a><a href='#L195'>195</a>
261
+ <a name='L196'></a><a href='#L196'>196</a>
262
+ <a name='L197'></a><a href='#L197'>197</a>
263
+ <a name='L198'></a><a href='#L198'>198</a>
264
+ <a name='L199'></a><a href='#L199'>199</a>
265
+ <a name='L200'></a><a href='#L200'>200</a>
266
+ <a name='L201'></a><a href='#L201'>201</a>
267
+ <a name='L202'></a><a href='#L202'>202</a>
268
+ <a name='L203'></a><a href='#L203'>203</a>
269
+ <a name='L204'></a><a href='#L204'>204</a>
270
+ <a name='L205'></a><a href='#L205'>205</a>
271
+ <a name='L206'></a><a href='#L206'>206</a>
272
+ <a name='L207'></a><a href='#L207'>207</a>
273
+ <a name='L208'></a><a href='#L208'>208</a>
274
+ <a name='L209'></a><a href='#L209'>209</a>
275
+ <a name='L210'></a><a href='#L210'>210</a>
276
+ <a name='L211'></a><a href='#L211'>211</a>
277
+ <a name='L212'></a><a href='#L212'>212</a>
278
+ <a name='L213'></a><a href='#L213'>213</a>
279
+ <a name='L214'></a><a href='#L214'>214</a>
280
+ <a name='L215'></a><a href='#L215'>215</a>
281
+ <a name='L216'></a><a href='#L216'>216</a>
282
+ <a name='L217'></a><a href='#L217'>217</a>
283
+ <a name='L218'></a><a href='#L218'>218</a>
284
+ <a name='L219'></a><a href='#L219'>219</a>
285
+ <a name='L220'></a><a href='#L220'>220</a>
286
+ <a name='L221'></a><a href='#L221'>221</a>
287
+ <a name='L222'></a><a href='#L222'>222</a>
288
+ <a name='L223'></a><a href='#L223'>223</a>
289
+ <a name='L224'></a><a href='#L224'>224</a>
290
+ <a name='L225'></a><a href='#L225'>225</a>
291
+ <a name='L226'></a><a href='#L226'>226</a>
292
+ <a name='L227'></a><a href='#L227'>227</a>
293
+ <a name='L228'></a><a href='#L228'>228</a>
294
+ <a name='L229'></a><a href='#L229'>229</a>
295
+ <a name='L230'></a><a href='#L230'>230</a>
296
+ <a name='L231'></a><a href='#L231'>231</a>
297
+ <a name='L232'></a><a href='#L232'>232</a>
298
+ <a name='L233'></a><a href='#L233'>233</a>
299
+ <a name='L234'></a><a href='#L234'>234</a>
300
+ <a name='L235'></a><a href='#L235'>235</a>
301
+ <a name='L236'></a><a href='#L236'>236</a>
302
+ <a name='L237'></a><a href='#L237'>237</a>
303
+ <a name='L238'></a><a href='#L238'>238</a>
304
+ <a name='L239'></a><a href='#L239'>239</a>
305
+ <a name='L240'></a><a href='#L240'>240</a>
306
+ <a name='L241'></a><a href='#L241'>241</a>
307
+ <a name='L242'></a><a href='#L242'>242</a>
308
+ <a name='L243'></a><a href='#L243'>243</a>
309
+ <a name='L244'></a><a href='#L244'>244</a>
310
+ <a name='L245'></a><a href='#L245'>245</a>
311
+ <a name='L246'></a><a href='#L246'>246</a>
312
+ <a name='L247'></a><a href='#L247'>247</a>
313
+ <a name='L248'></a><a href='#L248'>248</a>
314
+ <a name='L249'></a><a href='#L249'>249</a>
315
+ <a name='L250'></a><a href='#L250'>250</a>
316
+ <a name='L251'></a><a href='#L251'>251</a>
317
+ <a name='L252'></a><a href='#L252'>252</a>
318
+ <a name='L253'></a><a href='#L253'>253</a>
319
+ <a name='L254'></a><a href='#L254'>254</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
320
+ <span class="cline-any cline-neutral">&nbsp;</span>
321
+ <span class="cline-any cline-neutral">&nbsp;</span>
322
+ <span class="cline-any cline-neutral">&nbsp;</span>
323
+ <span class="cline-any cline-neutral">&nbsp;</span>
324
+ <span class="cline-any cline-neutral">&nbsp;</span>
325
+ <span class="cline-any cline-neutral">&nbsp;</span>
326
+ <span class="cline-any cline-neutral">&nbsp;</span>
327
+ <span class="cline-any cline-neutral">&nbsp;</span>
328
+ <span class="cline-any cline-neutral">&nbsp;</span>
329
+ <span class="cline-any cline-neutral">&nbsp;</span>
330
+ <span class="cline-any cline-neutral">&nbsp;</span>
331
+ <span class="cline-any cline-neutral">&nbsp;</span>
332
+ <span class="cline-any cline-neutral">&nbsp;</span>
333
+ <span class="cline-any cline-neutral">&nbsp;</span>
334
+ <span class="cline-any cline-neutral">&nbsp;</span>
335
+ <span class="cline-any cline-neutral">&nbsp;</span>
336
+ <span class="cline-any cline-neutral">&nbsp;</span>
337
+ <span class="cline-any cline-neutral">&nbsp;</span>
338
+ <span class="cline-any cline-neutral">&nbsp;</span>
339
+ <span class="cline-any cline-neutral">&nbsp;</span>
340
+ <span class="cline-any cline-neutral">&nbsp;</span>
341
+ <span class="cline-any cline-neutral">&nbsp;</span>
342
+ <span class="cline-any cline-neutral">&nbsp;</span>
343
+ <span class="cline-any cline-neutral">&nbsp;</span>
344
+ <span class="cline-any cline-neutral">&nbsp;</span>
345
+ <span class="cline-any cline-neutral">&nbsp;</span>
346
+ <span class="cline-any cline-neutral">&nbsp;</span>
347
+ <span class="cline-any cline-neutral">&nbsp;</span>
348
+ <span class="cline-any cline-neutral">&nbsp;</span>
349
+ <span class="cline-any cline-neutral">&nbsp;</span>
350
+ <span class="cline-any cline-neutral">&nbsp;</span>
351
+ <span class="cline-any cline-neutral">&nbsp;</span>
352
+ <span class="cline-any cline-neutral">&nbsp;</span>
353
+ <span class="cline-any cline-neutral">&nbsp;</span>
354
+ <span class="cline-any cline-neutral">&nbsp;</span>
355
+ <span class="cline-any cline-neutral">&nbsp;</span>
356
+ <span class="cline-any cline-neutral">&nbsp;</span>
357
+ <span class="cline-any cline-neutral">&nbsp;</span>
358
+ <span class="cline-any cline-neutral">&nbsp;</span>
359
+ <span class="cline-any cline-neutral">&nbsp;</span>
360
+ <span class="cline-any cline-neutral">&nbsp;</span>
361
+ <span class="cline-any cline-neutral">&nbsp;</span>
362
+ <span class="cline-any cline-neutral">&nbsp;</span>
363
+ <span class="cline-any cline-neutral">&nbsp;</span>
364
+ <span class="cline-any cline-neutral">&nbsp;</span>
365
+ <span class="cline-any cline-neutral">&nbsp;</span>
366
+ <span class="cline-any cline-neutral">&nbsp;</span>
367
+ <span class="cline-any cline-neutral">&nbsp;</span>
368
+ <span class="cline-any cline-neutral">&nbsp;</span>
369
+ <span class="cline-any cline-neutral">&nbsp;</span>
370
+ <span class="cline-any cline-neutral">&nbsp;</span>
371
+ <span class="cline-any cline-neutral">&nbsp;</span>
372
+ <span class="cline-any cline-neutral">&nbsp;</span>
373
+ <span class="cline-any cline-neutral">&nbsp;</span>
374
+ <span class="cline-any cline-neutral">&nbsp;</span>
375
+ <span class="cline-any cline-neutral">&nbsp;</span>
376
+ <span class="cline-any cline-neutral">&nbsp;</span>
377
+ <span class="cline-any cline-neutral">&nbsp;</span>
378
+ <span class="cline-any cline-neutral">&nbsp;</span>
379
+ <span class="cline-any cline-neutral">&nbsp;</span>
380
+ <span class="cline-any cline-neutral">&nbsp;</span>
381
+ <span class="cline-any cline-neutral">&nbsp;</span>
382
+ <span class="cline-any cline-neutral">&nbsp;</span>
383
+ <span class="cline-any cline-neutral">&nbsp;</span>
384
+ <span class="cline-any cline-neutral">&nbsp;</span>
385
+ <span class="cline-any cline-neutral">&nbsp;</span>
386
+ <span class="cline-any cline-neutral">&nbsp;</span>
387
+ <span class="cline-any cline-neutral">&nbsp;</span>
388
+ <span class="cline-any cline-neutral">&nbsp;</span>
389
+ <span class="cline-any cline-yes">1x</span>
390
+ <span class="cline-any cline-yes">1x</span>
391
+ <span class="cline-any cline-yes">1x</span>
392
+ <span class="cline-any cline-yes">1x</span>
393
+ <span class="cline-any cline-yes">1x</span>
394
+ <span class="cline-any cline-yes">1x</span>
395
+ <span class="cline-any cline-neutral">&nbsp;</span>
396
+ <span class="cline-any cline-yes">1x</span>
397
+ <span class="cline-any cline-yes">1x</span>
398
+ <span class="cline-any cline-yes">1x</span>
399
+ <span class="cline-any cline-yes">1x</span>
400
+ <span class="cline-any cline-yes">1x</span>
401
+ <span class="cline-any cline-neutral">&nbsp;</span>
402
+ <span class="cline-any cline-yes">1x</span>
403
+ <span class="cline-any cline-neutral">&nbsp;</span>
404
+ <span class="cline-any cline-neutral">&nbsp;</span>
405
+ <span class="cline-any cline-neutral">&nbsp;</span>
406
+ <span class="cline-any cline-neutral">&nbsp;</span>
407
+ <span class="cline-any cline-neutral">&nbsp;</span>
408
+ <span class="cline-any cline-neutral">&nbsp;</span>
409
+ <span class="cline-any cline-neutral">&nbsp;</span>
410
+ <span class="cline-any cline-neutral">&nbsp;</span>
411
+ <span class="cline-any cline-neutral">&nbsp;</span>
412
+ <span class="cline-any cline-neutral">&nbsp;</span>
413
+ <span class="cline-any cline-neutral">&nbsp;</span>
414
+ <span class="cline-any cline-neutral">&nbsp;</span>
415
+ <span class="cline-any cline-neutral">&nbsp;</span>
416
+ <span class="cline-any cline-neutral">&nbsp;</span>
417
+ <span class="cline-any cline-neutral">&nbsp;</span>
418
+ <span class="cline-any cline-neutral">&nbsp;</span>
419
+ <span class="cline-any cline-neutral">&nbsp;</span>
420
+ <span class="cline-any cline-neutral">&nbsp;</span>
421
+ <span class="cline-any cline-neutral">&nbsp;</span>
422
+ <span class="cline-any cline-neutral">&nbsp;</span>
423
+ <span class="cline-any cline-neutral">&nbsp;</span>
424
+ <span class="cline-any cline-neutral">&nbsp;</span>
425
+ <span class="cline-any cline-neutral">&nbsp;</span>
426
+ <span class="cline-any cline-neutral">&nbsp;</span>
427
+ <span class="cline-any cline-neutral">&nbsp;</span>
428
+ <span class="cline-any cline-neutral">&nbsp;</span>
429
+ <span class="cline-any cline-neutral">&nbsp;</span>
430
+ <span class="cline-any cline-neutral">&nbsp;</span>
431
+ <span class="cline-any cline-neutral">&nbsp;</span>
432
+ <span class="cline-any cline-neutral">&nbsp;</span>
433
+ <span class="cline-any cline-neutral">&nbsp;</span>
434
+ <span class="cline-any cline-neutral">&nbsp;</span>
435
+ <span class="cline-any cline-neutral">&nbsp;</span>
436
+ <span class="cline-any cline-neutral">&nbsp;</span>
437
+ <span class="cline-any cline-neutral">&nbsp;</span>
438
+ <span class="cline-any cline-neutral">&nbsp;</span>
439
+ <span class="cline-any cline-neutral">&nbsp;</span>
440
+ <span class="cline-any cline-neutral">&nbsp;</span>
441
+ <span class="cline-any cline-neutral">&nbsp;</span>
442
+ <span class="cline-any cline-neutral">&nbsp;</span>
443
+ <span class="cline-any cline-neutral">&nbsp;</span>
444
+ <span class="cline-any cline-neutral">&nbsp;</span>
445
+ <span class="cline-any cline-neutral">&nbsp;</span>
446
+ <span class="cline-any cline-neutral">&nbsp;</span>
447
+ <span class="cline-any cline-neutral">&nbsp;</span>
448
+ <span class="cline-any cline-neutral">&nbsp;</span>
449
+ <span class="cline-any cline-neutral">&nbsp;</span>
450
+ <span class="cline-any cline-neutral">&nbsp;</span>
451
+ <span class="cline-any cline-neutral">&nbsp;</span>
452
+ <span class="cline-any cline-neutral">&nbsp;</span>
453
+ <span class="cline-any cline-neutral">&nbsp;</span>
454
+ <span class="cline-any cline-neutral">&nbsp;</span>
455
+ <span class="cline-any cline-neutral">&nbsp;</span>
456
+ <span class="cline-any cline-neutral">&nbsp;</span>
457
+ <span class="cline-any cline-neutral">&nbsp;</span>
458
+ <span class="cline-any cline-neutral">&nbsp;</span>
459
+ <span class="cline-any cline-neutral">&nbsp;</span>
460
+ <span class="cline-any cline-neutral">&nbsp;</span>
461
+ <span class="cline-any cline-neutral">&nbsp;</span>
462
+ <span class="cline-any cline-neutral">&nbsp;</span>
463
+ <span class="cline-any cline-neutral">&nbsp;</span>
464
+ <span class="cline-any cline-neutral">&nbsp;</span>
465
+ <span class="cline-any cline-neutral">&nbsp;</span>
466
+ <span class="cline-any cline-neutral">&nbsp;</span>
467
+ <span class="cline-any cline-neutral">&nbsp;</span>
468
+ <span class="cline-any cline-neutral">&nbsp;</span>
469
+ <span class="cline-any cline-neutral">&nbsp;</span>
470
+ <span class="cline-any cline-neutral">&nbsp;</span>
471
+ <span class="cline-any cline-neutral">&nbsp;</span>
472
+ <span class="cline-any cline-neutral">&nbsp;</span>
473
+ <span class="cline-any cline-neutral">&nbsp;</span>
474
+ <span class="cline-any cline-neutral">&nbsp;</span>
475
+ <span class="cline-any cline-neutral">&nbsp;</span>
476
+ <span class="cline-any cline-neutral">&nbsp;</span>
477
+ <span class="cline-any cline-neutral">&nbsp;</span>
478
+ <span class="cline-any cline-neutral">&nbsp;</span>
479
+ <span class="cline-any cline-neutral">&nbsp;</span>
480
+ <span class="cline-any cline-neutral">&nbsp;</span>
481
+ <span class="cline-any cline-neutral">&nbsp;</span>
482
+ <span class="cline-any cline-neutral">&nbsp;</span>
483
+ <span class="cline-any cline-neutral">&nbsp;</span>
484
+ <span class="cline-any cline-neutral">&nbsp;</span>
485
+ <span class="cline-any cline-neutral">&nbsp;</span>
486
+ <span class="cline-any cline-neutral">&nbsp;</span>
487
+ <span class="cline-any cline-neutral">&nbsp;</span>
488
+ <span class="cline-any cline-neutral">&nbsp;</span>
489
+ <span class="cline-any cline-neutral">&nbsp;</span>
490
+ <span class="cline-any cline-neutral">&nbsp;</span>
491
+ <span class="cline-any cline-neutral">&nbsp;</span>
492
+ <span class="cline-any cline-neutral">&nbsp;</span>
493
+ <span class="cline-any cline-neutral">&nbsp;</span>
494
+ <span class="cline-any cline-neutral">&nbsp;</span>
495
+ <span class="cline-any cline-neutral">&nbsp;</span>
496
+ <span class="cline-any cline-neutral">&nbsp;</span>
497
+ <span class="cline-any cline-neutral">&nbsp;</span>
498
+ <span class="cline-any cline-neutral">&nbsp;</span>
499
+ <span class="cline-any cline-neutral">&nbsp;</span>
500
+ <span class="cline-any cline-neutral">&nbsp;</span>
501
+ <span class="cline-any cline-neutral">&nbsp;</span>
502
+ <span class="cline-any cline-neutral">&nbsp;</span>
503
+ <span class="cline-any cline-neutral">&nbsp;</span>
504
+ <span class="cline-any cline-neutral">&nbsp;</span>
505
+ <span class="cline-any cline-neutral">&nbsp;</span>
506
+ <span class="cline-any cline-neutral">&nbsp;</span>
507
+ <span class="cline-any cline-neutral">&nbsp;</span>
508
+ <span class="cline-any cline-neutral">&nbsp;</span>
509
+ <span class="cline-any cline-neutral">&nbsp;</span>
510
+ <span class="cline-any cline-neutral">&nbsp;</span>
511
+ <span class="cline-any cline-neutral">&nbsp;</span>
512
+ <span class="cline-any cline-neutral">&nbsp;</span>
513
+ <span class="cline-any cline-neutral">&nbsp;</span>
514
+ <span class="cline-any cline-neutral">&nbsp;</span>
515
+ <span class="cline-any cline-neutral">&nbsp;</span>
516
+ <span class="cline-any cline-neutral">&nbsp;</span>
517
+ <span class="cline-any cline-neutral">&nbsp;</span>
518
+ <span class="cline-any cline-neutral">&nbsp;</span>
519
+ <span class="cline-any cline-neutral">&nbsp;</span>
520
+ <span class="cline-any cline-neutral">&nbsp;</span>
521
+ <span class="cline-any cline-neutral">&nbsp;</span>
522
+ <span class="cline-any cline-neutral">&nbsp;</span>
523
+ <span class="cline-any cline-neutral">&nbsp;</span>
524
+ <span class="cline-any cline-neutral">&nbsp;</span>
525
+ <span class="cline-any cline-neutral">&nbsp;</span>
526
+ <span class="cline-any cline-neutral">&nbsp;</span>
527
+ <span class="cline-any cline-neutral">&nbsp;</span>
528
+ <span class="cline-any cline-neutral">&nbsp;</span>
529
+ <span class="cline-any cline-neutral">&nbsp;</span>
530
+ <span class="cline-any cline-neutral">&nbsp;</span>
531
+ <span class="cline-any cline-neutral">&nbsp;</span>
532
+ <span class="cline-any cline-neutral">&nbsp;</span>
533
+ <span class="cline-any cline-neutral">&nbsp;</span>
534
+ <span class="cline-any cline-neutral">&nbsp;</span>
535
+ <span class="cline-any cline-neutral">&nbsp;</span>
536
+ <span class="cline-any cline-neutral">&nbsp;</span>
537
+ <span class="cline-any cline-neutral">&nbsp;</span>
538
+ <span class="cline-any cline-neutral">&nbsp;</span>
539
+ <span class="cline-any cline-neutral">&nbsp;</span>
540
+ <span class="cline-any cline-neutral">&nbsp;</span>
541
+ <span class="cline-any cline-neutral">&nbsp;</span>
542
+ <span class="cline-any cline-neutral">&nbsp;</span>
543
+ <span class="cline-any cline-neutral">&nbsp;</span>
544
+ <span class="cline-any cline-neutral">&nbsp;</span>
545
+ <span class="cline-any cline-neutral">&nbsp;</span>
546
+ <span class="cline-any cline-neutral">&nbsp;</span>
547
+ <span class="cline-any cline-neutral">&nbsp;</span>
548
+ <span class="cline-any cline-neutral">&nbsp;</span>
549
+ <span class="cline-any cline-neutral">&nbsp;</span>
550
+ <span class="cline-any cline-neutral">&nbsp;</span>
551
+ <span class="cline-any cline-neutral">&nbsp;</span>
552
+ <span class="cline-any cline-neutral">&nbsp;</span>
553
+ <span class="cline-any cline-neutral">&nbsp;</span>
554
+ <span class="cline-any cline-neutral">&nbsp;</span>
555
+ <span class="cline-any cline-neutral">&nbsp;</span>
556
+ <span class="cline-any cline-neutral">&nbsp;</span>
557
+ <span class="cline-any cline-neutral">&nbsp;</span>
558
+ <span class="cline-any cline-neutral">&nbsp;</span>
559
+ <span class="cline-any cline-neutral">&nbsp;</span>
560
+ <span class="cline-any cline-neutral">&nbsp;</span>
561
+ <span class="cline-any cline-neutral">&nbsp;</span>
562
+ <span class="cline-any cline-neutral">&nbsp;</span>
563
+ <span class="cline-any cline-neutral">&nbsp;</span>
564
+ <span class="cline-any cline-neutral">&nbsp;</span>
565
+ <span class="cline-any cline-neutral">&nbsp;</span>
566
+ <span class="cline-any cline-neutral">&nbsp;</span>
567
+ <span class="cline-any cline-neutral">&nbsp;</span>
568
+ <span class="cline-any cline-neutral">&nbsp;</span>
569
+ <span class="cline-any cline-neutral">&nbsp;</span>
570
+ <span class="cline-any cline-neutral">&nbsp;</span>
571
+ <span class="cline-any cline-neutral">&nbsp;</span>
572
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">&lt;template&gt;
573
+ &lt;v-container class="pa-0"&gt;
574
+ &lt;div&gt;
575
+ &lt;h2 v-if="block.metadata.config.title" tabindex="0"&gt;
576
+ {{ block.metadata.config.title }}
577
+ &lt;/h2&gt;
578
+ &lt;v-row&gt;
579
+ &lt;v-col v-if="block.metadata.config.instructions" cols="12"&gt;
580
+ &lt;p tabindex="0" class="pt-3"&gt;
581
+ {{ block.metadata.config.instructions }}
582
+ &lt;/p&gt;
583
+ &lt;/v-col&gt;
584
+ &lt;v-col v-if="!blockExists" cols="12"&gt;
585
+ &lt;v-alert color="warning"&gt;
586
+ &lt;p&gt;
587
+ {{
588
+ $t(
589
+ 'windward.core.components.content.blocks.user_upload.must_save'
590
+ )
591
+ }}
592
+ &lt;/p&gt;
593
+ &lt;/v-alert&gt;
594
+ &lt;/v-col&gt;
595
+ &lt;/v-row&gt;
596
+ &lt;v-row&gt;
597
+ &lt;v-col cols="12"&gt;
598
+ &lt;DisplayUserFilesTable
599
+ v-model="userFileAsset"
600
+ :enrollment="enrollment"
601
+ &gt;&lt;/DisplayUserFilesTable&gt;
602
+ &lt;/v-col&gt;
603
+ &lt;v-col cols="12" v-if="showUpload"&gt;
604
+ &lt;div v-if="blockExists"&gt;
605
+ &lt;v-form
606
+ ref="form"
607
+ v-model="valid"
608
+ lazy-validation
609
+ class="pb-0"
610
+ &gt;
611
+ &lt;FileDropZone
612
+ v-model="uploadFiles"
613
+ :accept="
614
+ block.metadata.config.uploadSettings.accept
615
+ "
616
+ :multiple="
617
+ block.metadata.config.uploadSettings
618
+ .multiple
619
+ "
620
+ &gt;&lt;/FileDropZone&gt;
621
+ &nbsp;
622
+ &lt;v-container class="text-center"&gt;
623
+ &lt;v-btn
624
+ :disabled="!canUpload || loading"
625
+ color="primary"
626
+ elevation="0"
627
+ class="text-center"
628
+ @click="handleUpload"
629
+ &gt;
630
+ {{ $t('shared.forms.upload') }}
631
+ &lt;/v-btn&gt;
632
+ &lt;/v-container&gt;
633
+ &lt;/v-form&gt;
634
+ &lt;/div&gt;
635
+ &lt;/v-col&gt;
636
+ &lt;/v-row&gt;
637
+ &lt;/div&gt;
638
+ &lt;/v-container&gt;
639
+ &lt;/template&gt;
640
+ &nbsp;
641
+ &lt;script&gt;
642
+ import _ from 'lodash'
643
+ import { mapGetters } from 'vuex'
644
+ import TextViewer from '~/components/Text/TextViewer'
645
+ import TextEditor from '~/components/Text/TextEditor'
646
+ import Uuid from '~/helpers/Uuid'
647
+ import Download from '~/helpers/Download'
648
+ &nbsp;
649
+ import UserFileAsset from '../../../models/UserFileAsset'
650
+ import Enrollment from '~/models/Enrollment'
651
+ import ContentBlock from '~/models/ContentBlock'
652
+ import BaseContentBlock from '~/components/Content/Blocks/BaseContentBlock'
653
+ import FileDropZone from '~/components/Core/FileDropZone.vue'
654
+ &nbsp;
655
+ import DisplayUserFilesTable from './UserUpload/DisplayUserFilesTable.vue'
656
+ &nbsp;
657
+ export default {
658
+ name: 'UserUpload',
659
+ components: {
660
+ TextEditor,
661
+ TextViewer,
662
+ FileDropZone,
663
+ DisplayUserFilesTable,
664
+ },
665
+ extends: BaseContentBlock,
666
+ beforeMount() {
667
+ if (_.isEmpty(this.block)) {
668
+ this.block = {}
669
+ }
670
+ // Default the instructions to collapsed
671
+ this.block.__expandInstructions = false
672
+ &nbsp;
673
+ if (_.isEmpty(this.block.body)) {
674
+ this.block.body = this.$t(
675
+ 'windward.core.shared.content_blocks.title.user_upload'
676
+ )
677
+ }
678
+ if (_.isEmpty(this.block.metadata)) {
679
+ this.block.metadata = {}
680
+ }
681
+ if (_.isEmpty(this.block.metadata.config)) {
682
+ this.block.metadata.config = {}
683
+ }
684
+ if (_.isEmpty(this.block.metadata.config.instructions)) {
685
+ this.block.metadata.config.instructions = ''
686
+ }
687
+ if (_.isEmpty(this.block.metadata.config.uploadSettings)) {
688
+ this.block.metadata.config.uploadSettings = {
689
+ multiple: false,
690
+ accept: '',
691
+ }
692
+ }
693
+ },
694
+ data() {
695
+ return {
696
+ Download,
697
+ saveState: false, // Override the base block to disable state saving
698
+ valid: true,
699
+ loading: false,
700
+ uploadFiles: [],
701
+ userFileAsset: {},
702
+ studentUpload: null,
703
+ maxFileLimit: 10,
704
+ }
705
+ },
706
+ computed: {
707
+ ...mapGetters({
708
+ enrollment: 'enrollment/get',
709
+ }),
710
+ blockExists() {
711
+ return Uuid.test(this.block.id)
712
+ },
713
+ canUpload() {
714
+ if (this.valid) {
715
+ const currentFiles = _.get(
716
+ this.userFileAsset,
717
+ 'file_assets',
718
+ []
719
+ )
720
+ &nbsp;
721
+ // Multiple disabled, single file selected
722
+ if (
723
+ !Array.isArray(this.uploadFiles) &amp;&amp;
724
+ !this.block.metadata.config.uploadSettings.multiple &amp;&amp;
725
+ this.uploadFiles &amp;&amp;
726
+ currentFiles.length === 0
727
+ ) {
728
+ return true
729
+ } else if (
730
+ // Multi enabled, one or more files selected
731
+ this.block.metadata.config.uploadSettings.multiple &amp;&amp;
732
+ Array.isArray(this.uploadFiles) &amp;&amp;
733
+ this.uploadFiles.length &gt; 0 &amp;&amp;
734
+ this.uploadFiles.length + currentFiles.length &lt;=
735
+ this.maxFileLimit
736
+ ) {
737
+ return true
738
+ } else {
739
+ // No files
740
+ return false
741
+ }
742
+ }
743
+ return false
744
+ },
745
+ showUpload() {
746
+ const currentFiles = _.get(this.userFileAsset, 'file_assets', [])
747
+ &nbsp;
748
+ // Multiple disabled, confirm there's no current files
749
+ if (
750
+ !this.block.metadata.config.uploadSettings.multiple &amp;&amp;
751
+ currentFiles.length === 0
752
+ ) {
753
+ return true
754
+ } else if (
755
+ // Multi enabled, make sure we're not over our max limit
756
+ this.block.metadata.config.uploadSettings.multiple &amp;&amp;
757
+ currentFiles.length &lt; this.maxFileLimit
758
+ ) {
759
+ return true
760
+ } else {
761
+ // Hide the uploader
762
+ return false
763
+ }
764
+ },
765
+ },
766
+ mounted() {
767
+ if (this.blockExists) {
768
+ this.loadUserUploads()
769
+ }
770
+ },
771
+ methods: {
772
+ async handleUpload() {
773
+ this.loading = true
774
+ &nbsp;
775
+ let uploadFiles = this.uploadFiles
776
+ &nbsp;
777
+ // If multiple is disabled pack the file in a single array
778
+ // The API wants an array of files as an input
779
+ if (
780
+ !Array.isArray(this.uploadFiles) &amp;&amp;
781
+ !this.block.metadata.config.uploadSettings.multiple
782
+ ) {
783
+ uploadFiles = [uploadFiles]
784
+ }
785
+ &nbsp;
786
+ // Create a new UserFileAsset if we don't have an instance yet
787
+ let userFileAssetRequest = new UserFileAsset({
788
+ file: uploadFiles,
789
+ }).for(
790
+ new Enrollment(this.enrollment),
791
+ new ContentBlock({ id: this.block.id })
792
+ )
793
+ &nbsp;
794
+ // Apply the existing id if we already have an instance
795
+ if (Uuid.test(this.userFileAsset.id)) {
796
+ userFileAssetRequest.id = this.userFileAsset.id
797
+ }
798
+ &nbsp;
799
+ // Add our files to upload
800
+ userFileAssetRequest.file = uploadFiles
801
+ &nbsp;
802
+ try {
803
+ // Apply the response back to the reactive this.userFileAsset
804
+ this.userFileAsset = await userFileAssetRequest.save()
805
+ } catch (e) {
806
+ this.$toast.error(this.$t('shared.forms.errors.unknown'))
807
+ console.log(e)
808
+ }
809
+ this.loading = false
810
+ this.uploadFiles = []
811
+ },
812
+ async loadUserUploads() {
813
+ if (this.enrollment &amp;&amp; this.block.id) {
814
+ this.userFileAsset = await new UserFileAsset()
815
+ .for(
816
+ new Enrollment(this.enrollment),
817
+ new ContentBlock({ id: this.block.id })
818
+ )
819
+ .first()
820
+ }
821
+ },
822
+ },
823
+ }
824
+ &lt;/script&gt;
825
+ &nbsp;</pre></td></tr></table></pre>
826
+
827
+ <div class='push'></div><!-- for sticky footer -->
828
+ </div><!-- /wrapper -->
829
+ <div class='footer quiet pad2 space-top1 center small'>
830
+ Code coverage generated by
831
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
832
+ at Thu Dec 05 2024 15:22:58 GMT-0500 (Eastern Standard Time)
833
+ </div>
834
+ <script src="../../../prettify.js"></script>
835
+ <script>
836
+ window.onload = function () {
837
+ prettyPrint();
838
+ };
839
+ </script>
840
+ <script src="../../../sorter.js"></script>
841
+ <script src="../../../block-navigation.js"></script>
842
+ </body>
843
+ </html>
844
+