@windward/core 0.9.2 → 0.11.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 (383) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/components/Content/Blocks/Accordion.vue +102 -45
  3. package/components/Content/Blocks/ClickableIcons.vue +13 -2
  4. package/components/Content/Blocks/FileDownload.vue +1 -1
  5. package/components/Content/Blocks/GenerateAIQuestionButton.vue +17 -22
  6. package/components/Content/Blocks/OpenResponse.vue +2 -2
  7. package/components/Content/Blocks/Tab.vue +65 -1
  8. package/components/Content/Blocks/Video.vue +113 -25
  9. package/components/Navigation/Items/CourseGlossaryToolNav.vue +15 -1
  10. package/components/Navigation/Items/GlossaryNav.vue +3 -3
  11. package/components/Settings/AccordionSettings.vue +48 -49
  12. package/components/Settings/ClickableIconsSettings.vue +13 -21
  13. package/components/Settings/TabSettings.vue +44 -3
  14. package/components/Settings/VideoSettings/SourcePicker.vue +1 -1
  15. package/components/Settings/VideoSettings.vue +22 -11
  16. package/components/utils/ContentViewer.vue +19 -0
  17. package/components/utils/TinyMCEWrapper.vue +18 -2
  18. package/components/utils/assets/tinymce/content/global.scss +10 -0
  19. package/components/utils/assets/tinymce/ui/global.scss +6 -2
  20. package/components/utils/glossary/CourseGlossary.vue +6 -3
  21. package/components/utils/glossary/GlossaryToolTip.vue +6 -6
  22. package/i18n/en-US/components/content/blocks/generate_questions.ts +21 -1
  23. package/i18n/en-US/components/content/blocks/video.ts +1 -1
  24. package/i18n/en-US/components/settings/video.ts +8 -4
  25. package/i18n/en-US/components/utils/tiny_mce_wrapper.ts +1 -0
  26. package/i18n/en-US/shared/settings.ts +1 -1
  27. package/i18n/es-ES/components/content/blocks/generate_questions.ts +24 -1
  28. package/i18n/es-ES/components/content/blocks/video.ts +1 -1
  29. package/i18n/es-ES/components/settings/video.ts +8 -4
  30. package/i18n/es-ES/components/utils/tiny_mce_wrapper.ts +1 -0
  31. package/i18n/es-ES/shared/settings.ts +1 -1
  32. package/i18n/sv-SE/components/content/blocks/generate_questions.ts +21 -1
  33. package/i18n/sv-SE/components/content/blocks/video.ts +1 -1
  34. package/i18n/sv-SE/components/settings/video.ts +8 -4
  35. package/i18n/sv-SE/components/utils/tiny_mce_wrapper.ts +1 -0
  36. package/i18n/sv-SE/shared/settings.ts +1 -1
  37. package/package.json +2 -2
  38. package/pages/glossary.vue +11 -3
  39. package/test/Components/Settings/AccordionSettings.spec.js +16 -6
  40. package/test/Components/Settings/ClickableIconsSettings.spec.js +45 -0
  41. package/test/Components/Settings/TabSettings.spec.js +26 -2
  42. package/test/__mocks__/modelMock.js +4 -0
  43. package/.idea/codeStyles/Project.xml +0 -58
  44. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  45. package/.idea/inspectionProfiles/Project_Default.xml +0 -6
  46. package/.idea/modules.xml +0 -8
  47. package/.idea/php-docker-settings.xml +0 -24
  48. package/.idea/php.xml +0 -19
  49. package/.idea/vcs.xml +0 -6
  50. package/.idea/watcherTasks.xml +0 -4
  51. package/.idea/windward-ui-plugin-core.iml +0 -8
  52. package/config/menu.config.json +0 -475
  53. package/coverage/clover.xml +0 -1474
  54. package/coverage/coverage-final.json +0 -199
  55. package/coverage/lcov-report/base.css +0 -224
  56. package/coverage/lcov-report/block-navigation.js +0 -87
  57. package/coverage/lcov-report/components/Content/Blocks/Accordion.vue.html +0 -772
  58. package/coverage/lcov-report/components/Content/Blocks/BlockQuote.vue.html +0 -625
  59. package/coverage/lcov-report/components/Content/Blocks/ClickableIcons.vue.html +0 -979
  60. package/coverage/lcov-report/components/Content/Blocks/Email.vue.html +0 -1171
  61. package/coverage/lcov-report/components/Content/Blocks/Feedback.vue.html +0 -1075
  62. package/coverage/lcov-report/components/Content/Blocks/FileDownload/FileLinks.vue.html +0 -331
  63. package/coverage/lcov-report/components/Content/Blocks/FileDownload/FileTable.vue.html +0 -403
  64. package/coverage/lcov-report/components/Content/Blocks/FileDownload/index.html +0 -131
  65. package/coverage/lcov-report/components/Content/Blocks/FileDownload.vue.html +0 -514
  66. package/coverage/lcov-report/components/Content/Blocks/Image.vue.html +0 -211
  67. package/coverage/lcov-report/components/Content/Blocks/Math.vue.html +0 -352
  68. package/coverage/lcov-report/components/Content/Blocks/OpenResponse.vue.html +0 -667
  69. package/coverage/lcov-report/components/Content/Blocks/OpenResponseCollate.vue.html +0 -643
  70. package/coverage/lcov-report/components/Content/Blocks/RichText.vue.html +0 -295
  71. package/coverage/lcov-report/components/Content/Blocks/ScenarioChoice.vue.html +0 -976
  72. package/coverage/lcov-report/components/Content/Blocks/Tab.vue.html +0 -445
  73. package/coverage/lcov-report/components/Content/Blocks/Table.vue.html +0 -667
  74. package/coverage/lcov-report/components/Content/Blocks/UserUpload/DisplayUserFilesTable.vue.html +0 -562
  75. package/coverage/lcov-report/components/Content/Blocks/UserUpload/index.html +0 -116
  76. package/coverage/lcov-report/components/Content/Blocks/UserUpload.vue.html +0 -844
  77. package/coverage/lcov-report/components/Content/Blocks/Video.vue.html +0 -1225
  78. package/coverage/lcov-report/components/Content/Blocks/index.html +0 -311
  79. package/coverage/lcov-report/components/Settings/AccordionSettings.vue.html +0 -961
  80. package/coverage/lcov-report/components/Settings/BlockQuoteSettings.vue.html +0 -673
  81. package/coverage/lcov-report/components/Settings/ClickableIconsSettings.vue.html +0 -1144
  82. package/coverage/lcov-report/components/Settings/EmailSettings.vue.html +0 -901
  83. package/coverage/lcov-report/components/Settings/FeedbackSettings.vue.html +0 -373
  84. package/coverage/lcov-report/components/Settings/FileDownloadSettings.vue.html +0 -607
  85. package/coverage/lcov-report/components/Settings/ImageSettings.vue.html +0 -310
  86. package/coverage/lcov-report/components/Settings/MathSettings.vue.html +0 -337
  87. package/coverage/lcov-report/components/Settings/OpenResponseCollateSettings.vue.html +0 -586
  88. package/coverage/lcov-report/components/Settings/OpenResponseSettings.vue.html +0 -415
  89. package/coverage/lcov-report/components/Settings/ScenarioChoiceSettings.vue.html +0 -1183
  90. package/coverage/lcov-report/components/Settings/TabSettings.vue.html +0 -751
  91. package/coverage/lcov-report/components/Settings/UserUploadSettings.vue.html +0 -535
  92. package/coverage/lcov-report/components/Settings/index.html +0 -296
  93. package/coverage/lcov-report/components/utils/ContentViewer.vue.html +0 -199
  94. package/coverage/lcov-report/components/utils/MathExpressionEditor.vue.html +0 -1120
  95. package/coverage/lcov-report/components/utils/MathLiveWrapper.vue.html +0 -415
  96. package/coverage/lcov-report/components/utils/TinyMCEWrapper.vue.html +0 -271
  97. package/coverage/lcov-report/components/utils/index.html +0 -131
  98. package/coverage/lcov-report/config/index.html +0 -116
  99. package/coverage/lcov-report/config/tinymce.config.js.html +0 -493
  100. package/coverage/lcov-report/config/tinymce.config.ts.html +0 -1051
  101. package/coverage/lcov-report/favicon.png +0 -0
  102. package/coverage/lcov-report/helpers/GlossaryHelper.ts.html +0 -577
  103. package/coverage/lcov-report/helpers/GlossaryTerm.ts.html +0 -178
  104. package/coverage/lcov-report/helpers/MathHelper.ts.html +0 -1033
  105. package/coverage/lcov-report/helpers/index.html +0 -146
  106. package/coverage/lcov-report/helpers/tinymce/index.html +0 -116
  107. package/coverage/lcov-report/helpers/tinymce/plugin.ts.html +0 -334
  108. package/coverage/lcov-report/i18n/en-US/components/content/blocks/block_quote.ts.html +0 -94
  109. package/coverage/lcov-report/i18n/en-US/components/content/blocks/email.ts.html +0 -127
  110. package/coverage/lcov-report/i18n/en-US/components/content/blocks/feedback.ts.html +0 -178
  111. package/coverage/lcov-report/i18n/en-US/components/content/blocks/file_download.ts.html +0 -100
  112. package/coverage/lcov-report/i18n/en-US/components/content/blocks/generate_questions.ts.html +0 -100
  113. package/coverage/lcov-report/i18n/en-US/components/content/blocks/image.ts.html +0 -100
  114. package/coverage/lcov-report/i18n/en-US/components/content/blocks/index.html +0 -296
  115. package/coverage/lcov-report/i18n/en-US/components/content/blocks/index.ts.html +0 -166
  116. package/coverage/lcov-report/i18n/en-US/components/content/blocks/open_response.ts.html +0 -100
  117. package/coverage/lcov-report/i18n/en-US/components/content/blocks/open_response_collate.ts.html +0 -106
  118. package/coverage/lcov-report/i18n/en-US/components/content/blocks/scenario_choice.ts.html +0 -100
  119. package/coverage/lcov-report/i18n/en-US/components/content/blocks/table.ts.html +0 -97
  120. package/coverage/lcov-report/i18n/en-US/components/content/blocks/user_upload.ts.html +0 -115
  121. package/coverage/lcov-report/i18n/en-US/components/content/blocks/video.ts.html +0 -97
  122. package/coverage/lcov-report/i18n/en-US/components/content/index.html +0 -116
  123. package/coverage/lcov-report/i18n/en-US/components/content/index.ts.html +0 -100
  124. package/coverage/lcov-report/i18n/en-US/components/index.html +0 -116
  125. package/coverage/lcov-report/i18n/en-US/components/index.ts.html +0 -118
  126. package/coverage/lcov-report/i18n/en-US/components/navigation/ask_the_expert.ts.html +0 -118
  127. package/coverage/lcov-report/i18n/en-US/components/navigation/image.ts.html +0 -97
  128. package/coverage/lcov-report/i18n/en-US/components/navigation/index.html +0 -161
  129. package/coverage/lcov-report/i18n/en-US/components/navigation/index.ts.html +0 -112
  130. package/coverage/lcov-report/i18n/en-US/components/navigation/user_upload.ts.html +0 -94
  131. package/coverage/lcov-report/i18n/en-US/components/settings/accordion.ts.html +0 -106
  132. package/coverage/lcov-report/i18n/en-US/components/settings/block_quote.ts.html +0 -130
  133. package/coverage/lcov-report/i18n/en-US/components/settings/clickable_icon.ts.html +0 -142
  134. package/coverage/lcov-report/i18n/en-US/components/settings/email.ts.html +0 -115
  135. package/coverage/lcov-report/i18n/en-US/components/settings/file_download.ts.html +0 -109
  136. package/coverage/lcov-report/i18n/en-US/components/settings/horizontal_rule.ts.html +0 -94
  137. package/coverage/lcov-report/i18n/en-US/components/settings/image.ts.html +0 -142
  138. package/coverage/lcov-report/i18n/en-US/components/settings/index.html +0 -326
  139. package/coverage/lcov-report/i18n/en-US/components/settings/index.ts.html +0 -178
  140. package/coverage/lcov-report/i18n/en-US/components/settings/open_response.ts.html +0 -100
  141. package/coverage/lcov-report/i18n/en-US/components/settings/open_response_collate.ts.html +0 -103
  142. package/coverage/lcov-report/i18n/en-US/components/settings/scenario_choice.ts.html +0 -145
  143. package/coverage/lcov-report/i18n/en-US/components/settings/tab.ts.html +0 -109
  144. package/coverage/lcov-report/i18n/en-US/components/settings/text_editor.ts.html +0 -115
  145. package/coverage/lcov-report/i18n/en-US/components/settings/user_upload.ts.html +0 -121
  146. package/coverage/lcov-report/i18n/en-US/components/settings/video.ts.html +0 -277
  147. package/coverage/lcov-report/i18n/en-US/components/utils/FillInBlank/FillInBlankInput.ts.html +0 -130
  148. package/coverage/lcov-report/i18n/en-US/components/utils/FillInBlank/FillInTheBlanksManager.ts.html +0 -118
  149. package/coverage/lcov-report/i18n/en-US/components/utils/FillInBlank/index.html +0 -146
  150. package/coverage/lcov-report/i18n/en-US/components/utils/FillInBlank/index.ts.html +0 -103
  151. package/coverage/lcov-report/i18n/en-US/components/utils/index.html +0 -146
  152. package/coverage/lcov-report/i18n/en-US/components/utils/index.ts.html +0 -109
  153. package/coverage/lcov-report/i18n/en-US/components/utils/math_expression_editor.ts.html +0 -130
  154. package/coverage/lcov-report/i18n/en-US/components/utils/tiny_mce_wrapper.ts.html +0 -175
  155. package/coverage/lcov-report/i18n/en-US/index.html +0 -116
  156. package/coverage/lcov-report/i18n/en-US/index.ts.html +0 -133
  157. package/coverage/lcov-report/i18n/en-US/modules/index.html +0 -116
  158. package/coverage/lcov-report/i18n/en-US/modules/index.ts.html +0 -100
  159. package/coverage/lcov-report/i18n/en-US/pages/glossary.ts.html +0 -106
  160. package/coverage/lcov-report/i18n/en-US/pages/index.html +0 -146
  161. package/coverage/lcov-report/i18n/en-US/pages/index.ts.html +0 -112
  162. package/coverage/lcov-report/i18n/en-US/pages/plugins/error.ts.html +0 -112
  163. package/coverage/lcov-report/i18n/en-US/pages/plugins/index.html +0 -131
  164. package/coverage/lcov-report/i18n/en-US/pages/plugins/index.ts.html +0 -100
  165. package/coverage/lcov-report/i18n/en-US/pages/user_upload.ts.html +0 -94
  166. package/coverage/lcov-report/i18n/en-US/shared/content_blocks.ts.html +0 -163
  167. package/coverage/lcov-report/i18n/en-US/shared/index.html +0 -176
  168. package/coverage/lcov-report/i18n/en-US/shared/index.ts.html +0 -118
  169. package/coverage/lcov-report/i18n/en-US/shared/menu.ts.html +0 -97
  170. package/coverage/lcov-report/i18n/en-US/shared/permission.ts.html +0 -130
  171. package/coverage/lcov-report/i18n/en-US/shared/settings.ts.html +0 -172
  172. package/coverage/lcov-report/i18n/es-ES/components/content/blocks/block_quote.ts.html +0 -94
  173. package/coverage/lcov-report/i18n/es-ES/components/content/blocks/email.ts.html +0 -127
  174. package/coverage/lcov-report/i18n/es-ES/components/content/blocks/feedback.ts.html +0 -178
  175. package/coverage/lcov-report/i18n/es-ES/components/content/blocks/file_download.ts.html +0 -100
  176. package/coverage/lcov-report/i18n/es-ES/components/content/blocks/generate_questions.ts.html +0 -100
  177. package/coverage/lcov-report/i18n/es-ES/components/content/blocks/image.ts.html +0 -100
  178. package/coverage/lcov-report/i18n/es-ES/components/content/blocks/index.html +0 -296
  179. package/coverage/lcov-report/i18n/es-ES/components/content/blocks/index.ts.html +0 -166
  180. package/coverage/lcov-report/i18n/es-ES/components/content/blocks/open_response.ts.html +0 -103
  181. package/coverage/lcov-report/i18n/es-ES/components/content/blocks/open_response_collate.ts.html +0 -106
  182. package/coverage/lcov-report/i18n/es-ES/components/content/blocks/scenario_choice.ts.html +0 -103
  183. package/coverage/lcov-report/i18n/es-ES/components/content/blocks/table.ts.html +0 -97
  184. package/coverage/lcov-report/i18n/es-ES/components/content/blocks/user_upload.ts.html +0 -118
  185. package/coverage/lcov-report/i18n/es-ES/components/content/blocks/video.ts.html +0 -100
  186. package/coverage/lcov-report/i18n/es-ES/components/content/index.html +0 -116
  187. package/coverage/lcov-report/i18n/es-ES/components/content/index.ts.html +0 -100
  188. package/coverage/lcov-report/i18n/es-ES/components/index.html +0 -116
  189. package/coverage/lcov-report/i18n/es-ES/components/index.ts.html +0 -121
  190. package/coverage/lcov-report/i18n/es-ES/components/navigation/ask_the_expert.ts.html +0 -118
  191. package/coverage/lcov-report/i18n/es-ES/components/navigation/image.ts.html +0 -97
  192. package/coverage/lcov-report/i18n/es-ES/components/navigation/index.html +0 -161
  193. package/coverage/lcov-report/i18n/es-ES/components/navigation/index.ts.html +0 -112
  194. package/coverage/lcov-report/i18n/es-ES/components/navigation/user_upload.ts.html +0 -94
  195. package/coverage/lcov-report/i18n/es-ES/components/settings/accordion.ts.html +0 -106
  196. package/coverage/lcov-report/i18n/es-ES/components/settings/block_quote.ts.html +0 -130
  197. package/coverage/lcov-report/i18n/es-ES/components/settings/clickable_icon.ts.html +0 -145
  198. package/coverage/lcov-report/i18n/es-ES/components/settings/email.ts.html +0 -115
  199. package/coverage/lcov-report/i18n/es-ES/components/settings/file_download.ts.html +0 -109
  200. package/coverage/lcov-report/i18n/es-ES/components/settings/horizontal_rule.ts.html +0 -94
  201. package/coverage/lcov-report/i18n/es-ES/components/settings/image.ts.html +0 -148
  202. package/coverage/lcov-report/i18n/es-ES/components/settings/index.html +0 -326
  203. package/coverage/lcov-report/i18n/es-ES/components/settings/index.ts.html +0 -178
  204. package/coverage/lcov-report/i18n/es-ES/components/settings/open_response.ts.html +0 -100
  205. package/coverage/lcov-report/i18n/es-ES/components/settings/open_response_collate.ts.html +0 -106
  206. package/coverage/lcov-report/i18n/es-ES/components/settings/scenario_choice.ts.html +0 -145
  207. package/coverage/lcov-report/i18n/es-ES/components/settings/tab.ts.html +0 -112
  208. package/coverage/lcov-report/i18n/es-ES/components/settings/text_editor.ts.html +0 -115
  209. package/coverage/lcov-report/i18n/es-ES/components/settings/user_upload.ts.html +0 -121
  210. package/coverage/lcov-report/i18n/es-ES/components/settings/video.ts.html +0 -283
  211. package/coverage/lcov-report/i18n/es-ES/components/utils/FillInBlank/FillInBlankInput.ts.html +0 -130
  212. package/coverage/lcov-report/i18n/es-ES/components/utils/FillInBlank/FillInTheBlanksManager.ts.html +0 -118
  213. package/coverage/lcov-report/i18n/es-ES/components/utils/FillInBlank/index.html +0 -146
  214. package/coverage/lcov-report/i18n/es-ES/components/utils/FillInBlank/index.ts.html +0 -103
  215. package/coverage/lcov-report/i18n/es-ES/components/utils/index.html +0 -146
  216. package/coverage/lcov-report/i18n/es-ES/components/utils/index.ts.html +0 -109
  217. package/coverage/lcov-report/i18n/es-ES/components/utils/math_expression_editor.ts.html +0 -130
  218. package/coverage/lcov-report/i18n/es-ES/components/utils/tiny_mce_wrapper.ts.html +0 -178
  219. package/coverage/lcov-report/i18n/es-ES/index.html +0 -116
  220. package/coverage/lcov-report/i18n/es-ES/index.ts.html +0 -133
  221. package/coverage/lcov-report/i18n/es-ES/modules/index.html +0 -116
  222. package/coverage/lcov-report/i18n/es-ES/modules/index.ts.html +0 -100
  223. package/coverage/lcov-report/i18n/es-ES/pages/glossary.ts.html +0 -106
  224. package/coverage/lcov-report/i18n/es-ES/pages/index.html +0 -146
  225. package/coverage/lcov-report/i18n/es-ES/pages/index.ts.html +0 -112
  226. package/coverage/lcov-report/i18n/es-ES/pages/plugins/error.ts.html +0 -112
  227. package/coverage/lcov-report/i18n/es-ES/pages/plugins/index.html +0 -131
  228. package/coverage/lcov-report/i18n/es-ES/pages/plugins/index.ts.html +0 -100
  229. package/coverage/lcov-report/i18n/es-ES/pages/user_upload.ts.html +0 -94
  230. package/coverage/lcov-report/i18n/es-ES/shared/content_blocks.ts.html +0 -163
  231. package/coverage/lcov-report/i18n/es-ES/shared/index.html +0 -176
  232. package/coverage/lcov-report/i18n/es-ES/shared/index.ts.html +0 -118
  233. package/coverage/lcov-report/i18n/es-ES/shared/menu.ts.html +0 -97
  234. package/coverage/lcov-report/i18n/es-ES/shared/permission.ts.html +0 -130
  235. package/coverage/lcov-report/i18n/es-ES/shared/settings.ts.html +0 -178
  236. package/coverage/lcov-report/i18n/index.html +0 -116
  237. package/coverage/lcov-report/i18n/index.ts.html +0 -118
  238. package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/block_quote.ts.html +0 -94
  239. package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/email.ts.html +0 -127
  240. package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/feedback.ts.html +0 -178
  241. package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/file_download.ts.html +0 -100
  242. package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/generate_questions.ts.html +0 -100
  243. package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/image.ts.html +0 -100
  244. package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/index.html +0 -296
  245. package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/index.ts.html +0 -166
  246. package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/open_response.ts.html +0 -103
  247. package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/open_response_collate.ts.html +0 -106
  248. package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/scenario_choice.ts.html +0 -100
  249. package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/table.ts.html +0 -97
  250. package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/user_upload.ts.html +0 -118
  251. package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/video.ts.html +0 -97
  252. package/coverage/lcov-report/i18n/sv-SE/components/content/index.html +0 -116
  253. package/coverage/lcov-report/i18n/sv-SE/components/content/index.ts.html +0 -100
  254. package/coverage/lcov-report/i18n/sv-SE/components/index.html +0 -116
  255. package/coverage/lcov-report/i18n/sv-SE/components/index.ts.html +0 -121
  256. package/coverage/lcov-report/i18n/sv-SE/components/navigation/ask_the_expert.ts.html +0 -118
  257. package/coverage/lcov-report/i18n/sv-SE/components/navigation/image.ts.html +0 -97
  258. package/coverage/lcov-report/i18n/sv-SE/components/navigation/index.html +0 -161
  259. package/coverage/lcov-report/i18n/sv-SE/components/navigation/index.ts.html +0 -112
  260. package/coverage/lcov-report/i18n/sv-SE/components/navigation/user_upload.ts.html +0 -94
  261. package/coverage/lcov-report/i18n/sv-SE/components/settings/accordion.ts.html +0 -109
  262. package/coverage/lcov-report/i18n/sv-SE/components/settings/block_quote.ts.html +0 -130
  263. package/coverage/lcov-report/i18n/sv-SE/components/settings/clickable_icon.ts.html +0 -145
  264. package/coverage/lcov-report/i18n/sv-SE/components/settings/email.ts.html +0 -115
  265. package/coverage/lcov-report/i18n/sv-SE/components/settings/file_download.ts.html +0 -109
  266. package/coverage/lcov-report/i18n/sv-SE/components/settings/horizontal_rule.ts.html +0 -94
  267. package/coverage/lcov-report/i18n/sv-SE/components/settings/image.ts.html +0 -142
  268. package/coverage/lcov-report/i18n/sv-SE/components/settings/index.html +0 -326
  269. package/coverage/lcov-report/i18n/sv-SE/components/settings/index.ts.html +0 -178
  270. package/coverage/lcov-report/i18n/sv-SE/components/settings/open_response.ts.html +0 -100
  271. package/coverage/lcov-report/i18n/sv-SE/components/settings/open_response_collate.ts.html +0 -103
  272. package/coverage/lcov-report/i18n/sv-SE/components/settings/scenario_choice.ts.html +0 -145
  273. package/coverage/lcov-report/i18n/sv-SE/components/settings/tab.ts.html +0 -109
  274. package/coverage/lcov-report/i18n/sv-SE/components/settings/text_editor.ts.html +0 -115
  275. package/coverage/lcov-report/i18n/sv-SE/components/settings/user_upload.ts.html +0 -121
  276. package/coverage/lcov-report/i18n/sv-SE/components/settings/video.ts.html +0 -277
  277. package/coverage/lcov-report/i18n/sv-SE/components/utils/FillInBlank/FillInBlankInput.ts.html +0 -130
  278. package/coverage/lcov-report/i18n/sv-SE/components/utils/FillInBlank/FillInTheBlanksManager.ts.html +0 -118
  279. package/coverage/lcov-report/i18n/sv-SE/components/utils/FillInBlank/index.html +0 -146
  280. package/coverage/lcov-report/i18n/sv-SE/components/utils/FillInBlank/index.ts.html +0 -103
  281. package/coverage/lcov-report/i18n/sv-SE/components/utils/index.html +0 -146
  282. package/coverage/lcov-report/i18n/sv-SE/components/utils/index.ts.html +0 -109
  283. package/coverage/lcov-report/i18n/sv-SE/components/utils/math_expression_editor.ts.html +0 -130
  284. package/coverage/lcov-report/i18n/sv-SE/components/utils/tiny_mce_wrapper.ts.html +0 -178
  285. package/coverage/lcov-report/i18n/sv-SE/index.html +0 -116
  286. package/coverage/lcov-report/i18n/sv-SE/index.ts.html +0 -133
  287. package/coverage/lcov-report/i18n/sv-SE/modules/index.html +0 -116
  288. package/coverage/lcov-report/i18n/sv-SE/modules/index.ts.html +0 -100
  289. package/coverage/lcov-report/i18n/sv-SE/pages/glossary.ts.html +0 -106
  290. package/coverage/lcov-report/i18n/sv-SE/pages/index.html +0 -146
  291. package/coverage/lcov-report/i18n/sv-SE/pages/index.ts.html +0 -112
  292. package/coverage/lcov-report/i18n/sv-SE/pages/plugins/error.ts.html +0 -109
  293. package/coverage/lcov-report/i18n/sv-SE/pages/plugins/index.html +0 -131
  294. package/coverage/lcov-report/i18n/sv-SE/pages/plugins/index.ts.html +0 -100
  295. package/coverage/lcov-report/i18n/sv-SE/pages/user_upload.ts.html +0 -94
  296. package/coverage/lcov-report/i18n/sv-SE/shared/content_blocks.ts.html +0 -163
  297. package/coverage/lcov-report/i18n/sv-SE/shared/index.html +0 -176
  298. package/coverage/lcov-report/i18n/sv-SE/shared/index.ts.html +0 -118
  299. package/coverage/lcov-report/i18n/sv-SE/shared/menu.ts.html +0 -97
  300. package/coverage/lcov-report/i18n/sv-SE/shared/permission.ts.html +0 -130
  301. package/coverage/lcov-report/i18n/sv-SE/shared/settings.ts.html +0 -172
  302. package/coverage/lcov-report/index.html +0 -806
  303. package/coverage/lcov-report/models/SurveyResult.ts.html +0 -109
  304. package/coverage/lcov-report/models/SurveyTemplate.ts.html +0 -109
  305. package/coverage/lcov-report/models/index.html +0 -131
  306. package/coverage/lcov-report/pages/plugins/tinymce/_plugin.vue.html +0 -322
  307. package/coverage/lcov-report/pages/plugins/tinymce/index.html +0 -116
  308. package/coverage/lcov-report/prettify.css +0 -1
  309. package/coverage/lcov-report/prettify.js +0 -2
  310. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  311. package/coverage/lcov-report/sorter.js +0 -196
  312. package/coverage/lcov-report/test/index.html +0 -131
  313. package/coverage/lcov-report/test/locales.js.html +0 -370
  314. package/coverage/lcov-report/test/mocks.js.html +0 -532
  315. package/coverage/lcov.info +0 -2753
  316. package/lib/helpers/GlossaryHelper.d.ts +0 -9
  317. package/lib/helpers/GlossaryHelper.js +0 -118
  318. package/lib/helpers/GlossaryTerm.d.ts +0 -10
  319. package/lib/helpers/GlossaryTerm.js +0 -22
  320. package/lib/helpers/MathHelper.d.ts +0 -99
  321. package/lib/helpers/MathHelper.js +0 -194
  322. package/lib/helpers/tinymce/plugin.d.ts +0 -2
  323. package/lib/helpers/tinymce/plugin.js +0 -86
  324. package/lib/i18n/en-US/components/content/blocks/image.d.ts +0 -6
  325. package/lib/i18n/en-US/components/content/blocks/image.js +0 -7
  326. package/lib/i18n/en-US/components/content/blocks/index.d.ts +0 -75
  327. package/lib/i18n/en-US/components/content/blocks/index.js +0 -14
  328. package/lib/i18n/en-US/components/content/blocks/tab.d.ts +0 -5
  329. package/lib/i18n/en-US/components/content/blocks/tab.js +0 -6
  330. package/lib/i18n/en-US/components/content/blocks/table.d.ts +0 -5
  331. package/lib/i18n/en-US/components/content/blocks/table.js +0 -6
  332. package/lib/i18n/en-US/components/content/blocks/user_upload.d.ts +0 -13
  333. package/lib/i18n/en-US/components/content/blocks/user_upload.js +0 -14
  334. package/lib/i18n/en-US/components/content/blocks/video.d.ts +0 -48
  335. package/lib/i18n/en-US/components/content/blocks/video.js +0 -49
  336. package/lib/i18n/en-US/components/content/index.d.ts +0 -77
  337. package/lib/i18n/en-US/components/content/index.js +0 -6
  338. package/lib/i18n/en-US/components/index.d.ts +0 -140
  339. package/lib/i18n/en-US/components/index.js +0 -12
  340. package/lib/i18n/en-US/components/navigation/image.d.ts +0 -5
  341. package/lib/i18n/en-US/components/navigation/image.js +0 -6
  342. package/lib/i18n/en-US/components/navigation/index.d.ts +0 -10
  343. package/lib/i18n/en-US/components/navigation/index.js +0 -8
  344. package/lib/i18n/en-US/components/navigation/user_upload.d.ts +0 -4
  345. package/lib/i18n/en-US/components/navigation/user_upload.js +0 -5
  346. package/lib/i18n/en-US/components/settings/clickable_icon.d.ts +0 -6
  347. package/lib/i18n/en-US/components/settings/clickable_icon.js +0 -7
  348. package/lib/i18n/en-US/components/settings/image.d.ts +0 -2
  349. package/lib/i18n/en-US/components/settings/image.js +0 -3
  350. package/lib/i18n/en-US/components/settings/index.d.ts +0 -39
  351. package/lib/i18n/en-US/components/settings/index.js +0 -14
  352. package/lib/i18n/en-US/components/settings/text_editor.d.ts +0 -8
  353. package/lib/i18n/en-US/components/settings/text_editor.js +0 -9
  354. package/lib/i18n/en-US/components/settings/user_upload.d.ts +0 -12
  355. package/lib/i18n/en-US/components/settings/user_upload.js +0 -13
  356. package/lib/i18n/en-US/components/settings/video.d.ts +0 -13
  357. package/lib/i18n/en-US/components/settings/video.js +0 -14
  358. package/lib/i18n/en-US/components/utils/index.d.ts +0 -15
  359. package/lib/i18n/en-US/components/utils/index.js +0 -6
  360. package/lib/i18n/en-US/components/utils/tiny_mce_wrapper.d.ts +0 -13
  361. package/lib/i18n/en-US/components/utils/tiny_mce_wrapper.js +0 -14
  362. package/lib/i18n/en-US/index.d.ts +0 -197
  363. package/lib/i18n/en-US/index.js +0 -16
  364. package/lib/i18n/en-US/modules/index.d.ts +0 -2
  365. package/lib/i18n/en-US/modules/index.js +0 -6
  366. package/lib/i18n/en-US/pages/glossary.d.ts +0 -8
  367. package/lib/i18n/en-US/pages/glossary.js +0 -9
  368. package/lib/i18n/en-US/pages/index.d.ts +0 -13
  369. package/lib/i18n/en-US/pages/index.js +0 -8
  370. package/lib/i18n/en-US/pages/user_upload.d.ts +0 -4
  371. package/lib/i18n/en-US/pages/user_upload.js +0 -5
  372. package/lib/i18n/en-US/shared/content_blocks.d.ts +0 -20
  373. package/lib/i18n/en-US/shared/content_blocks.js +0 -21
  374. package/lib/i18n/en-US/shared/index.d.ts +0 -39
  375. package/lib/i18n/en-US/shared/index.js +0 -10
  376. package/lib/i18n/en-US/shared/menu.d.ts +0 -4
  377. package/lib/i18n/en-US/shared/menu.js +0 -5
  378. package/lib/i18n/en-US/shared/settings.d.ts +0 -15
  379. package/lib/i18n/en-US/shared/settings.js +0 -16
  380. package/lib/i18n/en-US.d.ts +0 -197
  381. package/lib/i18n/en-US.js +0 -15
  382. package/lib/models/UserFileAsset.d.ts +0 -5
  383. package/lib/models/UserFileAsset.js +0 -37
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ### Release [0.11.0] created - 2025-02-05
4
+
5
+
6
+ ### Release [0.10.0] created - 2025-01-03
7
+
8
+
3
9
  ### Hotfix [0.9.1] created - 2024-12-10
4
10
 
5
11
 
@@ -46,7 +46,10 @@
46
46
  class="expansion-panel-body"
47
47
  :key="expansionPanelKey"
48
48
  >
49
- <v-container>
49
+ <v-container
50
+ class="px-0 d-flex"
51
+ :class="getTextImageContainerClass(item)"
52
+ >
50
53
  <TextViewer
51
54
  v-if="!item.expand"
52
55
  v-model="item.content"
@@ -58,27 +61,19 @@
58
61
  block.metadata.config.items[itemIndex].content
59
62
  "
60
63
  ></TextEditor>
61
- </v-container>
62
- <v-container>
63
- <v-img
64
- v-if="block.metadata.config.items[itemIndex].file"
65
- :aria-describedby="
64
+ <ImageAssetViewer
65
+ v-if="
66
66
  block.metadata.config.items[itemIndex]
67
- .ariaDescribedBy
68
- "
69
- :alt="
70
- getImageAlt(
71
- block.metadata.config.items[itemIndex].file,
72
- block.metadata.config.items[itemIndex]
73
- .altText
74
- )
67
+ .fileConfig.asset
75
68
  "
76
- :src="
77
- getImagePublicUrl(
78
- block.metadata.config.items[itemIndex].file
79
- )
69
+ v-model="
70
+ block.metadata.config.items[itemIndex]
71
+ .fileConfig
80
72
  "
81
- ></v-img>
73
+ :class="getImageOrder(item)"
74
+ :assets="block.assets"
75
+ :max-width="getImageWidth(item)"
76
+ ></ImageAssetViewer>
82
77
  </v-container>
83
78
  </v-expansion-panel-content>
84
79
  </v-expansion-panel>
@@ -89,6 +84,7 @@
89
84
  <script>
90
85
  import _ from 'lodash'
91
86
  import Crypto from '~/helpers/Crypto'
87
+ import ImageAssetViewer from '~/components/Content/ImageAssetViewer.vue'
92
88
  import TextEditor from '~/components/Text/TextEditor'
93
89
  import TextViewer from '~/components/Text/TextViewer'
94
90
  import BaseContentBlock from '~/components/Content/Blocks/BaseContentBlock'
@@ -98,6 +94,7 @@ export default {
98
94
  components: {
99
95
  TextEditor,
100
96
  TextViewer,
97
+ ImageAssetViewer,
101
98
  },
102
99
  extends: BaseContentBlock,
103
100
  beforeMount() {
@@ -118,9 +115,14 @@ export default {
118
115
  header: '',
119
116
  expand: false,
120
117
  content: '',
121
- file: null,
122
- altText: '',
123
- ariaDescribedBy: '',
118
+ fileConfig: {
119
+ display: {
120
+ width: 100,
121
+ margin: '',
122
+ padding: '',
123
+ },
124
+ hideBackground: true,
125
+ },
124
126
  }
125
127
  this.block.metadata.config.items = []
126
128
  this.block.metadata.config.items.push(defaultObject)
@@ -134,36 +136,42 @@ export default {
134
136
  expansionPanelKey: '0',
135
137
  editingInContentItem: false,
136
138
  selectedPanels: null,
139
+ fullWidth: true,
137
140
  }
138
141
  },
139
142
  watch: {
140
- value(newValue) {
141
- if (
142
- !this.render &&
143
- this.selectedPanels !== newValue.metadata.config.selectedPanels
144
- ) {
145
- // update editing content block
146
- this.selectedPanels = newValue.metadata.config.selectedPanels
147
- this.expansionPanelKey = Crypto.id()
148
- }
149
-
150
- const length = newValue.metadata.config.items.length
151
- let counter = 0
152
- newValue.metadata.config.items.forEach((element) => {
143
+ value: {
144
+ deep: true,
145
+ handler(newValue) {
153
146
  if (
154
- element.expand === true &&
155
- this.editingInContentItem !== true
147
+ !this.render &&
148
+ this.selectedPanels !==
149
+ newValue.metadata.config.selectedPanels
156
150
  ) {
157
- this.editingInContentItem = true
151
+ // update editing content block
152
+ this.selectedPanels =
153
+ newValue.metadata.config.selectedPanels
158
154
  this.expansionPanelKey = Crypto.id()
159
155
  }
160
- if (element.expand === false) {
161
- counter = counter + 1
162
- }
163
- if (counter === length) {
164
- this.editingInContentItem = false
165
- }
166
- })
156
+
157
+ const length = newValue.metadata.config.items.length
158
+ let counter = 0
159
+ newValue.metadata.config.items.forEach((element) => {
160
+ if (
161
+ element.expand === true &&
162
+ this.editingInContentItem !== true
163
+ ) {
164
+ this.editingInContentItem = true
165
+ this.expansionPanelKey = Crypto.id()
166
+ }
167
+ if (element.expand === false) {
168
+ counter = counter + 1
169
+ }
170
+ if (counter === length) {
171
+ this.editingInContentItem = false
172
+ }
173
+ })
174
+ },
167
175
  },
168
176
  render() {
169
177
  if (this.render === true) {
@@ -206,6 +214,55 @@ export default {
206
214
  const foundAsset = this.resolveAsset(asset)
207
215
  return _.get(foundAsset, 'asset.metadata.props.alt', null)
208
216
  },
217
+ getImageWidth(item) {
218
+ if (item.fileConfig.display) {
219
+ return String(item.fileConfig.display.width) + '%'
220
+ }
221
+ },
222
+ getTextImageContainerClass(item) {
223
+ const { margin, width } = item.fileConfig.display
224
+
225
+ if (width === 100) {
226
+ return margin === 'top'
227
+ ? 'flex-column-reverse '
228
+ : 'flex-column '
229
+ }
230
+
231
+ // If no display items have been set, keep the image in its own row
232
+ if (!margin) {
233
+ return 'flex-column '
234
+ }
235
+
236
+ switch (margin) {
237
+ case 'top':
238
+ return 'flex-column-reverse '
239
+ case 'right':
240
+ return _.isEmpty(item.content)
241
+ ? 'justify-end'
242
+ : 'justify-space-between'
243
+ case 'left':
244
+ return ''
245
+ default:
246
+ return 'flex-column '
247
+ }
248
+
249
+ },
250
+ getImageOrder(item) {
251
+ const margin = item.fileConfig.display?.margin
252
+ if (margin) {
253
+ switch (margin) {
254
+ case 'left':
255
+ return 'order-first pr-1 '
256
+ case 'right':
257
+ return ''
258
+ default:
259
+ return 'align-self-center '
260
+ }
261
+ } else {
262
+ // if adjusting size and margin hasn't been set yet keep centered here
263
+ return 'align-self-center '
264
+ }
265
+ },
209
266
  async onBeforeSave() {
210
267
  this.block.metadata.config.items.forEach((element) => {
211
268
  element.expand = false
@@ -27,7 +27,7 @@
27
27
  @click="item.active = !item.active"
28
28
  >
29
29
  <v-avatar
30
- v-if="item.iconImage && item.icon"
30
+ v-if="item.iconImage && item.fileConfig"
31
31
  class="clickable--image"
32
32
  :rounded="
33
33
  block.metadata.config.display.round_icon
@@ -36,7 +36,12 @@
36
36
  "
37
37
  size="100%"
38
38
  >
39
- <v-img :src="getImagePublicUrl(item.iconAsset)" />
39
+ <ImageAssetViewer
40
+ v-model="item.fileConfig"
41
+ :assets="block.assets"
42
+ class="image-asset-viewer"
43
+ :inherit-sizing="true"
44
+ ></ImageAssetViewer>
40
45
  </v-avatar>
41
46
  <v-icon
42
47
  v-else-if="isIcon(item.icon)"
@@ -77,11 +82,13 @@ import _ from 'lodash'
77
82
  import he from 'he'
78
83
  import BaseContentBlock from '~/components/Content/Blocks/BaseContentBlock'
79
84
  import TextViewer from '~/components/Text/TextViewer'
85
+ import ImageAssetViewer from '~/components/Content/ImageAssetViewer.vue'
80
86
 
81
87
  export default {
82
88
  name: 'ClickableIcons',
83
89
  components: {
84
90
  TextViewer,
91
+ ImageAssetViewer,
85
92
  },
86
93
  extends: BaseContentBlock,
87
94
  beforeMount() {
@@ -295,4 +302,8 @@ button.button-icon.button-icon--rounded {
295
302
  font-size: 2.5rem;
296
303
  }
297
304
  }
305
+ .image-asset-viewer {
306
+ height: inherit;
307
+ width: inherit;
308
+ }
298
309
  </style>
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <v-container>
2
+ <v-container class="pa-0">
3
3
  <h2>
4
4
  {{
5
5
  block.metadata.config.title ||
@@ -10,19 +10,10 @@
10
10
  :disabled="isLoading"
11
11
  @click="generateAIQuestion"
12
12
  >
13
- <v-icon class="pr-1" v-if="!isLoading"
14
- >mdi-magic-staff</v-icon
15
- >
16
- {{
17
- this.$t(
18
- 'windward.core.components.content.blocks.generate_questions.button_label'
19
- )
20
- }}
13
+ <v-icon class="pr-1" v-if="!isLoading">mdi-magic-staff</v-icon>
14
+ {{ $t('windward.core.components.content.blocks.generate_questions.button_label') }}
21
15
  <template v-slot:loader>
22
- <v-progress-circular
23
- indeterminate
24
- size="23"
25
- ></v-progress-circular>
16
+ <v-progress-circular indeterminate size="23"></v-progress-circular>
26
17
  </template>
27
18
  </v-btn>
28
19
  </v-col>
@@ -34,11 +25,7 @@
34
25
  outlined
35
26
  hide-details
36
27
  dense
37
- :label="
38
- $t(
39
- 'windward.core.components.content.blocks.generate_questions.selected_pages'
40
- )
41
- "
28
+ :label="$t('windward.core.components.content.blocks.generate_questions.selected_pages')"
42
29
  item-text="content.name"
43
30
  return-object
44
31
  ></v-select>
@@ -116,11 +103,18 @@ export default {
116
103
  this.$emit('click:generate', generatedQuestion)
117
104
  }
118
105
  } catch (error) {
119
- console.error(error)
106
+ const errorType = error.response?.data?.errors?.detail?.split('.').pop() || 'default'
107
+ const basePath = 'windward.core.components.content.blocks.generate_questions.error'
108
+
120
109
  this.$dialog.error(
121
- this.$t(
122
- 'windward.core.components.content.blocks.generate_questions.error'
123
- )
110
+ this.$t(`${basePath}.${errorType}`) + '\n\n' +
111
+ this.$t(`${basePath}.${errorType}_support`),
112
+ {
113
+ duration: 5000,
114
+ keepOnHover: true,
115
+ singleton: true,
116
+ type: 'error'
117
+ }
124
118
  )
125
119
  } finally {
126
120
  this.isLoading = false
@@ -129,8 +123,9 @@ export default {
129
123
  },
130
124
  }
131
125
  </script>
126
+
132
127
  <style scoped>
133
128
  .btn-selector {
134
129
  width: 100%;
135
130
  }
136
- </style>
131
+ </style>
@@ -27,7 +27,7 @@
27
27
  :height="200"
28
28
  menubar=""
29
29
  ></TextEditor>
30
- <p class="pa-3 text-center blue-grey lighten-5">
30
+ <p class="pa-3 text-center">
31
31
  <v-btn
32
32
  color="primary"
33
33
  elevation="0"
@@ -66,7 +66,7 @@
66
66
  ></TextViewer>
67
67
  </v-alert>
68
68
  </div>
69
- <p class="pa-3 text-center blue-grey lighten-5">
69
+ <p class="pa-3 text-center">
70
70
  <v-btn
71
71
  elevation="0"
72
72
  color="primary"
@@ -37,7 +37,10 @@
37
37
  .config.items"
38
38
  :key="'tabContent ' + tabContentIndex"
39
39
  >
40
- <v-container>
40
+ <v-container
41
+ class="d-flex"
42
+ :class="getTextImageContainerClass(tabContent)"
43
+ >
41
44
  <TextViewer
42
45
  v-if="!tabContent.expand"
43
46
  v-model="tabContent.content"
@@ -54,6 +57,8 @@
54
57
  "
55
58
  v-model="tabContent.imageAsset"
56
59
  :assets="block.assets"
60
+ :class="getImageOrder(tabContent)"
61
+ :max-width="getImageWidth(tabContent)"
57
62
  ></ImageAssetViewer>
58
63
  </v-container>
59
64
  </v-tab-item>
@@ -86,6 +91,14 @@ export default {
86
91
  tabHeader: '',
87
92
  expand: false,
88
93
  content: '',
94
+ imageAsset: {
95
+ display: {
96
+ width: 100,
97
+ margin: '',
98
+ padding: '',
99
+ },
100
+ hideBackground: true,
101
+ },
89
102
  }
90
103
  this.block.metadata.config.items = []
91
104
  this.block.metadata.config.items.push(defaultObject)
@@ -113,6 +126,57 @@ export default {
113
126
  })
114
127
  this.block.metadata.config.currentTab = null
115
128
  },
129
+ getImageWidth(item) {
130
+ if (item.imageAsset?.display) {
131
+ return String(item.imageAsset.display.width) + '%'
132
+ }
133
+ },
134
+ getTextImageContainerClass(item) {
135
+ const { margin, width } = item.imageAsset.display
136
+ // if full width set container to column
137
+ if (width === 100) {
138
+ return margin === 'top'
139
+ ? 'flex-column-reverse '
140
+ : 'flex-column '
141
+ }
142
+
143
+ // If no display items have been set, keep the image in its own row
144
+ if (!margin) {
145
+ return 'flex-column '
146
+ }
147
+
148
+ switch (margin) {
149
+ case 'top':
150
+ return 'flex-column-reverse '
151
+ case 'right':
152
+ return _.isEmpty(item.content)
153
+ ? 'justify-end'
154
+ : 'justify-space-between'
155
+ case 'left':
156
+ return ''
157
+ default:
158
+ return 'flex-column '
159
+ }
160
+ },
161
+ getImageOrder(item) {
162
+ const margin = item.imageAsset.display?.margin
163
+ // filter out tab blocks that were created before custom
164
+ // spacing was added to image asset settings
165
+ if (margin) {
166
+ // if top or bottom image will always be centered
167
+ switch (margin) {
168
+ case 'left':
169
+ return 'order-first pr-1 '
170
+ case 'right':
171
+ return ''
172
+ default:
173
+ return 'align-self-center '
174
+ }
175
+ } else {
176
+ // if adjusting size and margin hasn't been set yet keep centered here
177
+ return 'align-self-center '
178
+ }
179
+ },
116
180
  },
117
181
  }
118
182
  </script>
@@ -7,30 +7,9 @@
7
7
  {{ block.metadata.config.description }}
8
8
  </p>
9
9
 
10
- <v-card v-if="render && !hasSource">
11
- <v-card-title>
12
- <v-icon class="mr-2">mdi-cloud-question</v-icon>
13
- {{
14
- $t(
15
- 'windward.core.components.content.blocks.video.not_configured_title'
16
- )
17
- }}
18
- </v-card-title>
19
- <v-card-text>{{
20
- $t('windward.core.components.content.blocks.video.edit_prompt')
21
- }}</v-card-text>
22
- </v-card>
23
-
24
- <v-skeleton-loader
25
- v-if="!render && !hasSource"
26
- type="image, image, list-item-avatar"
27
- class="reload-skeleton"
28
- ></v-skeleton-loader>
29
-
30
10
  <VuetifyPlayer
31
- v-if="hasSource"
32
11
  :language="$i18n && $i18n.locale ? $i18n.locale : 'en-US'"
33
- :type="block.metadata.config.type"
12
+ type="auto"
34
13
  :playlist="linkedPlaylist"
35
14
  :autoplay="block.metadata.config.attributes.autoplay"
36
15
  :autopictureinpicture="
@@ -50,6 +29,8 @@
50
29
  :rewind="block.metadata.config.attributes.rewind"
51
30
  :loop="block.metadata.config.attributes.loop"
52
31
  :muted="block.metadata.config.attributes.muted"
32
+ :volume.sync="volume"
33
+ :cc.sync="ccVisible"
53
34
  :playsinline="block.metadata.config.attributes.playsinline"
54
35
  :poster="linkedPosterPublicUrl"
55
36
  :preload="block.metadata.config.attributes.preload"
@@ -59,9 +40,31 @@
59
40
  block.metadata.config.attributes.playlistautoadvance
60
41
  "
61
42
  :playbackrates="block.metadata.config.attributes.playbackrates"
43
+ :captions-autoscroll.sync="captionsAutoscroll"
44
+ :captions-paragraph-view.sync="captionsParagraphView"
45
+ :captions-visible.sync="captionsVisible"
46
+ flat
62
47
  @seeking="onSeeking"
63
48
  @timeupdate="onTimeupdate"
64
- />
49
+ >
50
+ <template #no-source>
51
+ <v-card>
52
+ <v-card-title class="justify-center">
53
+ <v-icon class="mr-2">mdi-cloud-question</v-icon>
54
+ {{
55
+ $t(
56
+ 'windward.core.components.content.blocks.video.not_configured_title'
57
+ )
58
+ }}
59
+ </v-card-title>
60
+ <v-card-text>{{
61
+ $t(
62
+ 'windward.core.components.content.blocks.video.edit_prompt'
63
+ )
64
+ }}</v-card-text>
65
+ </v-card>
66
+ </template>
67
+ </VuetifyPlayer>
65
68
  <!-- display first note in the playlist for now -->
66
69
  <v-alert
67
70
  v-if="notes.length > 0"
@@ -78,10 +81,11 @@
78
81
 
79
82
  <script>
80
83
  import _ from 'lodash'
84
+ import he from 'he'
81
85
  import VuetifyPlayer from '@mindedge/vuetify-player'
86
+ import AuthUserRepository from '~/models/repositories/AuthUserRepository'
82
87
  import BaseContentBlock from '~/components/Content/Blocks/BaseContentBlock'
83
88
  import TextViewer from '~/components/Text/TextViewer'
84
- import he from 'he'
85
89
 
86
90
  export default {
87
91
  name: 'ContentBlockVideo',
@@ -214,6 +218,90 @@ export default {
214
218
  })
215
219
  return playlist
216
220
  },
221
+ captionsAutoscroll: {
222
+ get() {
223
+ const user = new AuthUserRepository(this.$nuxt)
224
+
225
+ return user.getPreference('video.captions-autoscroll', true)
226
+ },
227
+ set(v) {
228
+ try {
229
+ const user = new AuthUserRepository(this.$nuxt)
230
+ user.setPreference('video.captions-autoscroll', v)
231
+ user.save()
232
+ } catch (e) {
233
+ console.error('Could not save user video preference!')
234
+ console.error(e)
235
+ }
236
+ },
237
+ },
238
+ captionsParagraphView: {
239
+ get() {
240
+ const user = new AuthUserRepository(this.$nuxt)
241
+ return user.getPreference(
242
+ 'video.captions-paragraph-view',
243
+ false
244
+ )
245
+ },
246
+ set(v) {
247
+ try {
248
+ const user = new AuthUserRepository(this.$nuxt)
249
+ user.setPreference('video.captions-paragraph-view', v)
250
+ user.save()
251
+ } catch (e) {
252
+ console.error('Could not save user video preference!')
253
+ console.error(e)
254
+ }
255
+ },
256
+ },
257
+ captionsVisible: {
258
+ get() {
259
+ const user = new AuthUserRepository(this.$nuxt)
260
+ return user.getPreference('video.captions-visible', false)
261
+ },
262
+ set(v) {
263
+ try {
264
+ const user = new AuthUserRepository(this.$nuxt)
265
+ user.setPreference('video.captions-visible', v)
266
+ user.save()
267
+ } catch (e) {
268
+ console.error('Could not save user video preference!')
269
+ console.error(e)
270
+ }
271
+ },
272
+ },
273
+ ccVisible: {
274
+ get() {
275
+ const user = new AuthUserRepository(this.$nuxt)
276
+ return user.getPreference('video.cc-visible', false)
277
+ },
278
+ set(v) {
279
+ try {
280
+ const user = new AuthUserRepository(this.$nuxt)
281
+ user.setPreference('video.cc-visible', v)
282
+ user.save()
283
+ } catch (e) {
284
+ console.error('Could not save user video preference!')
285
+ console.error(e)
286
+ }
287
+ },
288
+ },
289
+ volume: {
290
+ get() {
291
+ const user = new AuthUserRepository(this.$nuxt)
292
+ return user.getPreference('video.volume', 0.5)
293
+ },
294
+ set(v) {
295
+ try {
296
+ const user = new AuthUserRepository(this.$nuxt)
297
+ user.setPreference('video.volume', v)
298
+ user.save()
299
+ } catch (e) {
300
+ console.error('Could not save user video preference!')
301
+ console.error(e)
302
+ }
303
+ },
304
+ },
217
305
  },
218
306
  data() {
219
307
  return {
@@ -224,7 +312,7 @@ export default {
224
312
  description: '',
225
313
  // Default settings for new blocks
226
314
  // This will be overridden in beforeMount()
227
- type: 'video', // Allowed video|audio. In audio mode the player has a max-height of 40px
315
+ type: 'auto', // Allowed auto|video|audio. In audio mode the player has a max-height of 40px. Auto will switch between the other types when needed
228
316
  attributes: {
229
317
  autoplay: false, // Autoplay on load. It's in the spec but DON'T USE THIS
230
318
  autopictureinpicture: false, // Start with picture in picture mode
@@ -9,7 +9,21 @@
9
9
  <template #title>{{ $t(config.i18n) }}</template>
10
10
  <template #form="{ on, attrs }">
11
11
  <div v-bind="attrs" v-on="on">
12
- <CourseGlossary />
12
+ <v-alert
13
+ v-if="!$ContextService.courseInSourceOrganization()"
14
+ type="warning"
15
+ >
16
+ {{
17
+ $t(
18
+ 'shared.forms.source_organization_course_lock'
19
+ )
20
+ }}
21
+ </v-alert>
22
+ <CourseGlossary
23
+ :disabled="
24
+ !$ContextService.courseInSourceOrganization()
25
+ "
26
+ />
13
27
  </div>
14
28
  </template>
15
29
  </DialogBox>
@@ -3,12 +3,12 @@
3
3
  <template #activator="{ on, attrs }">
4
4
  <v-list-item
5
5
  :class="color"
6
- v-on="on"
7
- v-bind="attrs"
8
6
  :to="'/course/' + course.id + '/glossary'"
7
+ v-bind="attrs"
8
+ v-on="on"
9
9
  >
10
10
  <v-list-item-action>
11
- <v-icon v-on="on" v-bind="attrs"
11
+ <v-icon v-bind="attrs" v-on="on"
12
12
  >mdi-comment-text-multiple</v-icon
13
13
  >
14
14
  </v-list-item-action>