@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
@@ -98,53 +98,18 @@
98
98
  )
99
99
  }}
100
100
  </h4>
101
- <v-text-field
102
- v-model="
103
- block.metadata.config.items[index].altText
104
- "
105
- class="pt-3 pb-3"
106
- :hide-details="true"
107
- dense
108
- outlined
109
- :label="
110
- $t(
111
- 'windward.core.shared.settings.alt_image'
112
- )
113
- "
114
- :disabled="render"
115
- ></v-text-field>
116
- <v-text-field
101
+ <ImageAssetSettings
117
102
  v-model="
118
103
  block.metadata.config.items[index]
119
- .ariaDescribedBy
120
- "
121
- class="pt-3 pb-3"
122
- :hide-details="true"
123
- dense
124
- outlined
125
- :label="
126
- $t(
127
- 'windward.core.shared.settings.aria_described'
128
- )
129
- "
130
- :disabled="render"
131
- ></v-text-field>
132
- <ContentBlockAsset
133
- v-model="
134
- block.metadata.config.items[index].file
104
+ .fileConfig
135
105
  "
136
- mimes="image/png,image/jpeg"
137
106
  :assets.sync="block.assets"
138
- outlined
139
- >
140
- <template #title>
141
- {{
142
- $t(
143
- 'windward.core.components.settings.image.place_image'
144
- )
145
- }}
146
- </template>
147
- </ContentBlockAsset>
107
+ :disabled="render"
108
+ hide-background
109
+ hide-decorative
110
+ hide-modal
111
+ show-spacing
112
+ ></ImageAssetSettings>
148
113
  </v-container>
149
114
  </v-container>
150
115
  </template>
@@ -181,12 +146,14 @@ import BaseContentSettings from '~/components/Content/Settings/BaseContentSettin
181
146
  import TextEditor from '~/components/Text/TextEditor'
182
147
  import SortableExpansionPanel from '~/components/Core/SortableExpansionPanel.vue'
183
148
  import Uuid from '~/helpers/Uuid'
149
+ import ImageAssetSettings from '~/components/Content/Settings/ImageAssetSettings.vue'
184
150
 
185
151
  export default {
186
152
  name: 'AccordionSettings',
187
153
  components: {
188
154
  TextEditor,
189
155
  SortableExpansionPanel,
156
+ ImageAssetSettings,
190
157
  },
191
158
  extends: BaseContentSettings,
192
159
  beforeMount() {
@@ -219,9 +186,14 @@ export default {
219
186
  header: '',
220
187
  expand: false,
221
188
  content: '',
222
- file: null,
223
- altText: '',
224
- ariaDescribedBy: '',
189
+ fileConfig: {
190
+ display: {
191
+ width: 100,
192
+ margin: '',
193
+ padding: '',
194
+ },
195
+ hideBackground: true,
196
+ },
225
197
  }
226
198
  this.block.metadata.config.items = []
227
199
  this.block.metadata.config.items.push(defaultObject)
@@ -243,8 +215,30 @@ export default {
243
215
  },
244
216
  mounted() {
245
217
  this.block.metadata.config.selectedPanels = 0
218
+ this.checkForCustomSpacing()
246
219
  },
247
220
  methods: {
221
+ checkForCustomSpacing() {
222
+ // check if block has items set up already and if they were created before the display key was added to image asset object
223
+ if (
224
+ this.block.metadata.config.items.length >= 1 &&
225
+ _.isEmpty(
226
+ this.block.metadata.config.items[0].fileConfig.display
227
+ )
228
+ ) {
229
+ // need to add display.margin ect. for custom spacing component so that changes are tracked reactively
230
+ this.block.metadata.config.items.forEach((item) => {
231
+ if (!item.fileConfig.display) {
232
+ item.fileConfig.display = {
233
+ width: 100,
234
+ margin: '',
235
+ padding: '',
236
+ }
237
+ item.fileConfig.hideBackground = true
238
+ }
239
+ })
240
+ }
241
+ },
248
242
  onUpdatePanel($event) {
249
243
  if ($event !== this.block.metadata.config.selectedPanels) {
250
244
  //catch click event to open selected panel to edit
@@ -260,9 +254,14 @@ export default {
260
254
  header: '',
261
255
  expand: false,
262
256
  content: '',
263
- file: null,
264
- altText: '',
265
- ariaDescribedBy: '',
257
+ fileConfig: {
258
+ display: {
259
+ width: 100,
260
+ margin: '',
261
+ padding: '',
262
+ },
263
+ hideBackground: true,
264
+ },
266
265
  }
267
266
  this.block.metadata.config.items.push(default_item)
268
267
  this.block.metadata.config.selectedPanels =
@@ -87,8 +87,8 @@
87
87
  @click:close="onRemoveElement"
88
88
  >
89
89
  <template #header="{ item }">
90
- <v-avatar v-if="item.iconImage && item.iconAsset">
91
- <v-img :src="getImagePublicUrl(item.iconAsset)" />
90
+ <v-avatar v-if="item.iconImage && item.fileConfig">
91
+ <v-img :src="getImagePublicUrl(item.fileConfig.asset)" />
92
92
  </v-avatar>
93
93
  <v-icon
94
94
  v-else-if="
@@ -146,29 +146,19 @@
146
146
  :rules="validation.iconRules"
147
147
  :disabled="render"
148
148
  ></TextIconPicker>
149
-
150
- <ContentBlockAsset
149
+ <ImageAssetSettings
151
150
  v-if="
152
151
  block.metadata.config.items[index].iconImage
153
152
  "
154
153
  v-model="
155
- block.metadata.config.items[index].iconAsset
154
+ block.metadata.config.items[index]
155
+ .fileConfig
156
156
  "
157
157
  :assets.sync="block.assets"
158
- class="mb-4"
159
- mimes="image/jpeg,image/png,image/gif"
160
- :disabled="render"
161
- outlined
162
- @click:file="onFileSelect($event, index)"
163
- >
164
- <template #title>
165
- {{
166
- $t(
167
- 'windward.core.components.settings.image.place_image'
168
- )
169
- }}
170
- </template>
171
- </ContentBlockAsset>
158
+ hide-background
159
+ hide-decorative
160
+ hide-modal
161
+ ></ImageAssetSettings>
172
162
  <v-text-field
173
163
  v-model="
174
164
  block.metadata.config.items[index].title
@@ -234,6 +224,7 @@ import TextIconPicker from '~/components/Core/TextIconPicker.vue'
234
224
  import ColorPicker from '~/components/Core/ColorPicker.vue'
235
225
  import SortableExpansionPanel from '~/components/Core/SortableExpansionPanel.vue'
236
226
  import ContentBlockAsset from '~/components/Content/ContentBlockAsset.vue'
227
+ import ImageAssetSettings from '~/components/Content/Settings/ImageAssetSettings.vue'
237
228
 
238
229
  export default {
239
230
  name: 'ClickableIconsSettings',
@@ -243,6 +234,7 @@ export default {
243
234
  TextIconPicker,
244
235
  ColorPicker,
245
236
  ContentBlockAsset,
237
+ ImageAssetSettings,
246
238
  },
247
239
  extends: BaseContentSettings,
248
240
  data() {
@@ -311,7 +303,7 @@ export default {
311
303
  onAddElement() {
312
304
  const defaultObject = {
313
305
  icon: '',
314
- iconAsset: null,
306
+ fileConfig: {},
315
307
  iconImage: false,
316
308
  title: '',
317
309
  body: '<p></p>',
@@ -336,7 +328,7 @@ export default {
336
328
  onClickToggleIconImage(index) {
337
329
  // We're switching between images / text. Clear the relevant fields
338
330
  this.block.metadata.config.items[index].icon = ''
339
- this.block.metadata.config.items[index].iconAsset = null
331
+ this.block.metadata.config.items[index].fileConfig = null
340
332
  },
341
333
  onFileSelect(file, index) {
342
334
  // file = null when you remove a file
@@ -76,13 +76,18 @@
76
76
  ></TextEditor>
77
77
 
78
78
  <v-card class="mt-2">
79
- <v-card-text>
79
+ <v-card-text class="pa-0">
80
80
  <ImageAssetSettings
81
81
  v-model="
82
82
  block.metadata.config.items[index]
83
83
  .imageAsset
84
84
  "
85
85
  :assets.sync="block.assets"
86
+ :disabled="render"
87
+ hide-background
88
+ hide-decorative
89
+ hide-modal
90
+ show-spacing
86
91
  >
87
92
  </ImageAssetSettings>
88
93
  </v-card-text>
@@ -160,7 +165,14 @@ export default {
160
165
  tabHeader: '',
161
166
  expand: false,
162
167
  content: '',
163
- imageAsset: null,
168
+ imageAsset: {
169
+ display: {
170
+ width: 100,
171
+ margin: '',
172
+ padding: '',
173
+ },
174
+ hideBackground: true,
175
+ },
164
176
  }
165
177
  this.block.metadata.config.items = []
166
178
  this.block.metadata.config.items.push(defaultObject)
@@ -178,6 +190,7 @@ export default {
178
190
  if (this.block.metadata.config.items.length <= 0) {
179
191
  this.onAddElement()
180
192
  }
193
+ this.checkForCustomSpacing()
181
194
  },
182
195
  beforeDestroy() {
183
196
  if (this.debouncer) {
@@ -185,12 +198,40 @@ export default {
185
198
  }
186
199
  },
187
200
  methods: {
201
+ checkForCustomSpacing() {
202
+ // check if block has items set up already and if they were created before the dispaly key was added to image asset object
203
+ if (
204
+ this.block.metadata.config.items.length >= 1 &&
205
+ _.isEmpty(
206
+ this.block.metadata.config.items[0].imageAsset.display
207
+ )
208
+ ) {
209
+ // need to add display.margin ect. for custom spacing component so that changes are tracked reactively
210
+ this.block.metadata.config.items.forEach((item) => {
211
+ if (!item.imageAsset.display) {
212
+ item.imageAsset.display = {
213
+ width: 100,
214
+ margin: '',
215
+ padding: '',
216
+ }
217
+ item.imageAsset.hideBackground = true
218
+ }
219
+ })
220
+ }
221
+ },
188
222
  onAddElement() {
189
223
  const defaultObject = {
190
224
  tabHeader: '',
191
225
  expand: false,
192
226
  content: '',
193
- imageAsset: null,
227
+ imageAsset: {
228
+ display: {
229
+ width: 100,
230
+ margin: '',
231
+ padding: '',
232
+ },
233
+ hideBackground: true,
234
+ },
194
235
  }
195
236
  this.block.metadata.config.items.push(defaultObject)
196
237
  this.block.metadata.config.currentTab =
@@ -21,7 +21,7 @@
21
21
  {{
22
22
  sourceDescription ||
23
23
  $t(
24
- 'windward.core.components.settings.video.video.configure_blurb'
24
+ 'windward.core.components.settings.video.media.configure_blurb'
25
25
  )
26
26
  }}
27
27
  </template>
@@ -123,7 +123,10 @@
123
123
  (file, rawFile) =>
124
124
  onAdSourceSelect(file, rawFile, 0)
125
125
  "
126
- @change:track="onAdTrackSelect($event, 0)"
126
+ @change:track="
127
+ (file, rawFile) =>
128
+ onAdTrackSelect(file, rawFile, 0)
129
+ "
127
130
  ></SourcePicker>
128
131
  </v-tab-item>
129
132
 
@@ -146,9 +149,12 @@
146
149
  :disabled="render"
147
150
  @change:source="
148
151
  (file, rawFile) =>
149
- onAdSourceSelect(file, rawFile, 0)
152
+ onAdSourceSelect(file, rawFile, 100)
153
+ "
154
+ @change:track="
155
+ (file, rawFile) =>
156
+ onAdTrackSelect(file, rawFile, 100)
150
157
  "
151
- @change:track="onAdTrackSelect($event, 0)"
152
158
  ></SourcePicker>
153
159
  </v-tab-item>
154
160
  </v-tabs-items>
@@ -575,6 +581,11 @@ export default {
575
581
  return ads.length
576
582
  },
577
583
  onRemovePlaylistItem() {
584
+ // If there's still items in the playlist then decrement it down to the previous item
585
+ if (this.playlistIndex > 0) {
586
+ this.playlistPaginator--
587
+ }
588
+
578
589
  if (this.block.metadata.config.playlist.length > 1) {
579
590
  this.block.metadata.config.playlist.splice(
580
591
  this.playlistIndex,
@@ -621,7 +632,7 @@ export default {
621
632
 
622
633
  this.reloadVideo()
623
634
  },
624
- onSourceSelect(file, rawFile) {
635
+ onSourceSelect(file, _rawFile) {
625
636
  // No file, clear the selection
626
637
  if (_.isEmpty(file)) {
627
638
  delete this.block.metadata.config.playlist[this.playlistIndex]
@@ -632,7 +643,7 @@ export default {
632
643
 
633
644
  // Clear out any associated captions
634
645
  this.media.track = null
635
- this.onTrackSelect(null)
646
+ this.onTrackSelect()
636
647
 
637
648
  this.showVideo = false
638
649
  } else {
@@ -652,11 +663,11 @@ export default {
652
663
 
653
664
  // Clear the tracks. it will either be inherited via linked captions or be hard-set by the user
654
665
  this.media.track = null
655
- this.onTrackSelect(null)
666
+ this.onTrackSelect()
656
667
  }
657
668
  this.reloadVideo()
658
669
  },
659
- onTrackSelect(file) {
670
+ onTrackSelect(file = null, _rawFile = null) {
660
671
  if (_.isEmpty(file)) {
661
672
  this.block.metadata.config.playlist[this.playlistIndex].tracks =
662
673
  []
@@ -667,7 +678,7 @@ export default {
667
678
  }
668
679
  this.reloadVideo()
669
680
  },
670
- onAdSourceSelect(file, rawFile, playAtPercent) {
681
+ onAdSourceSelect(file, _rawFile, playAtPercent) {
671
682
  const adIndex = this.getAdSlot(playAtPercent)
672
683
 
673
684
  // Prep in case the ad slot isn't setup yet
@@ -688,11 +699,11 @@ export default {
688
699
 
689
700
  // Clear the tracks. it will either be inherited via linked captions or be hard-set by the user
690
701
  this.media.ads[playAtPercent].track = null
691
- this.onAdTrackSelect(null, playAtPercent)
702
+ this.onAdTrackSelect(null, null, playAtPercent)
692
703
  }
693
704
  this.reloadVideo()
694
705
  },
695
- onAdTrackSelect(file, playAtPercent) {
706
+ onAdTrackSelect(file, _rawFile, playAtPercent) {
696
707
  const adIndex = this.getAdSlot(playAtPercent)
697
708
 
698
709
  if (_.isEmpty(file)) {
@@ -710,7 +721,7 @@ export default {
710
721
  }
711
722
  this.reloadVideo()
712
723
  },
713
- onPlaybackChange(e) {
724
+ onPlaybackChange(_e) {
714
725
  // Sort the list so we don't get instances of 2, 1, 0.25, 3
715
726
  this.block.metadata.config.attributes.playbackrates.sort()
716
727
  },
@@ -54,6 +54,21 @@ export default {
54
54
  content =
55
55
  FillInBlankHelper.renderFillInTHeBlankHtml(content)
56
56
  }
57
+ // finds any underscores grouped together of any length over 2
58
+ let regex = /(_{2,})/g
59
+ if (content.match(regex)) {
60
+ content = content.replace(regex, (match) => {
61
+ return (
62
+ '<span role="img" aria-label="' +
63
+ this.$t(
64
+ 'windward.core.components.utils.tiny_mce_wrapper.blank'
65
+ ) +
66
+ '">' +
67
+ match +
68
+ '</span>'
69
+ )
70
+ })
71
+ }
57
72
  }
58
73
  return Vue.compile('<div>' + content + '</div>')
59
74
  },
@@ -84,4 +99,8 @@ img {
84
99
  font-size: 1rem;
85
100
  line-height: 1.75em;
86
101
  }
102
+ caption {
103
+ color: var(--v-primary-base);
104
+ text-align: left;
105
+ }
87
106
  </style>
@@ -11,7 +11,7 @@
11
11
  <label v-if="label" class="editor-label">{{ label }}</label>
12
12
  </slot>
13
13
  <Editor
14
- :id="id"
14
+ :id="editorId"
15
15
  :key="seed + (isDarkTheme ? '-theme-dark' : '-theme-light')"
16
16
  v-model="text"
17
17
  initial-value=""
@@ -121,6 +121,7 @@ export default {
121
121
  props: {
122
122
  value: { type: String, required: true, default: '' },
123
123
  id: { type: String, required: false, default: '' },
124
+ dataKey: { type: String, required: false, default: '' }, // used as a unique key for testing
124
125
  height: { type: Number, required: false, default: null },
125
126
  menubar: {
126
127
  type: String,
@@ -152,12 +153,26 @@ export default {
152
153
  computed: {
153
154
  dataCy() {
154
155
  return (
156
+ this.dataKey ||
155
157
  this.id ||
156
158
  this.label.toLowerCase().replaceAll(/[^a-z0-9]/g, '-') ||
157
159
  this.hint.toLowerCase().replaceAll(/[^a-z0-9]/g, '-') ||
158
160
  _.get(this, '$parent.$parent.$options.name', '')
159
161
  )
160
162
  },
163
+ editorId() {
164
+ // If the id is not empty then make sure it's unique
165
+ // TinyMCE fails to load if an id is duplicated. Also duplicate ids are just bad in general
166
+ if (this.id) {
167
+ const duplicates = document.querySelectorAll(`#${this.id}`)
168
+
169
+ return duplicates.length === 0
170
+ ? this.id
171
+ : this.id + '-' + this.seed
172
+ } else {
173
+ return ''
174
+ }
175
+ },
161
176
  isDarkTheme() {
162
177
  return this.$vuetify.theme.isDark
163
178
  },
@@ -194,7 +209,7 @@ export default {
194
209
  },
195
210
  autoresize_min_height: 100,
196
211
  autoresize_max_height: 1000,
197
- autoresize_bottom_margin: 0,
212
+ autoresize_bottom_margin: 1,
198
213
  plugins: [
199
214
  'autoresize',
200
215
  'advlist',
@@ -425,6 +440,7 @@ export default {
425
440
  ' color: #1a1d1e;' +
426
441
  '}',
427
442
  importcss_append: true,
443
+ link_default_target: '_blank',
428
444
  }
429
445
  },
430
446
  elementBody() {
@@ -9,7 +9,17 @@ table {
9
9
  border: 1px solid var(--v-primary-base);
10
10
  padding: 3px;
11
11
  }
12
+
13
+ // Define styles for floating buttons and behavior in small screens
14
+ @media (max-width: 600px) {
15
+ // Ensure table is scrollable horizontally
16
+ display: block;
17
+ white-space: nowrap;
18
+ overflow-x: auto;
19
+ position: relative;
20
+ }
12
21
  }
22
+
13
23
  table {
14
24
  &.windward-table-default {
15
25
  color: black;
@@ -1,8 +1,12 @@
1
1
  table {
2
- border: 1px solid black !important;
2
+ border: var(--v-primary-base);
3
3
  th,
4
4
  td {
5
- border: 1px solid black !important;
5
+ border: var(--v-primary-base);
6
+ }
7
+ caption {
8
+ text-align: left;
9
+ color: var(--v-primary-base);
6
10
  }
7
11
  }
8
12
 
@@ -33,6 +33,7 @@
33
33
  'writable'
34
34
  )
35
35
  "
36
+ :disabled="disabled"
36
37
  @click:save="save"
37
38
  @click:save-new="saveNew"
38
39
  @click:trigger="addTerm"
@@ -108,6 +109,7 @@
108
109
  <SpeedDial
109
110
  direction="left"
110
111
  transition="slide-x-reverse-transition"
112
+ :disabled="disabled"
111
113
  >
112
114
  <v-btn
113
115
  color="error"
@@ -142,7 +144,7 @@
142
144
  >
143
145
  {{ $t('shared.forms.edit') }}
144
146
  <span class="sr-only">{{
145
- $t('forms.edit')
147
+ $t('shared.forms.edit')
146
148
  }}</span>
147
149
  </v-btn>
148
150
  </SpeedDial>
@@ -171,8 +173,9 @@ export default {
171
173
  components: { DialogBox, CourseGlossaryForm, SpeedDial, TextViewer },
172
174
  layout: 'course',
173
175
  middleware: ['auth'],
174
- props: {},
175
-
176
+ props: {
177
+ disabled: { type: Boolean, required: false, default: false },
178
+ },
176
179
  data() {
177
180
  return {
178
181
  dialog: false,
@@ -1,25 +1,25 @@
1
1
  <template>
2
2
  <div
3
+ v-click-outside="onClickOutside"
3
4
  class="glossary-word"
4
5
  :class="{ active: show }"
5
- v-click-outside="onClickOutside"
6
6
  @click="show = !show"
7
7
  >
8
8
  <v-tooltip
9
- top
10
9
  v-model="show"
10
+ top
11
11
  :open-on-hover="false"
12
12
  color="primary"
13
13
  max-width="768px"
14
14
  z-index="10"
15
15
  >
16
16
  <template #activator="{ on }">
17
- <span v-on="on">
17
+ <span tabindex="0" v-on="on">
18
18
  <slot name="term"></slot>
19
19
  </span>
20
20
  </template>
21
21
  <div>
22
- <div v-if="this.$slots['definition']">
22
+ <div v-if="$slots['definition']">
23
23
  <h6 class="text-capitalize">
24
24
  <slot name="term"></slot>
25
25
  {{
@@ -33,7 +33,7 @@
33
33
  <slot name="definition"></slot>
34
34
  </p>
35
35
  </div>
36
- <div v-if="this.$slots['alternate_forms']">
36
+ <div v-if="$slots['alternate_forms']">
37
37
  <h4 class="text-capitalize">
38
38
  <slot name="term"></slot>
39
39
  {{
@@ -46,7 +46,7 @@
46
46
  <p><slot name="alternate_forms"></slot></p>
47
47
  </div>
48
48
 
49
- <div v-if="this.$slots['related_terms']">
49
+ <div v-if="$slots['related_terms']">
50
50
  <h4 class="text-capitalize">
51
51
  {{
52
52
  $t(
@@ -1,5 +1,25 @@
1
1
  export default {
2
- error: 'Could not generate question from provided content.',
2
+ error: {
3
+ default: 'Could not generate question from provided content.',
4
+ default_support:
5
+ 'Please try again or contact support if the issue persists.',
6
+
7
+ insufficient_content: 'More content needed to generate questions.',
8
+ insufficient_content_support:
9
+ 'Please add more text, examples, or explanations to this section. We recommend at least 2-3 paragraphs of content.',
10
+
11
+ content_mismatch: "Content doesn't match question type.",
12
+ content_mismatch_support:
13
+ "The current content isn't suitable for this type of question. Consider adding more specific examples or comparable items.",
14
+
15
+ llm_unavailable: 'Question generation temporarily unavailable.',
16
+ llm_unavailable_support:
17
+ "We're unable to connect to our AI service at the moment. Please try again in a few minutes.",
18
+
19
+ technical: 'Unable to process request.',
20
+ technical_support:
21
+ 'Something went wrong. Please try again or contact support if this continues.',
22
+ },
3
23
  button_label: 'Generate Question',
4
24
  selected_pages: 'Selected Page',
5
25
  }
@@ -1,4 +1,4 @@
1
1
  export default {
2
- not_configured_title: 'Video not configured',
2
+ not_configured_title: 'Media not configured',
3
3
  edit_prompt: 'Edit this block to get started',
4
4
  }