@windward/core 0.18.0 → 0.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (350) hide show
  1. package/.idea/codeStyles/Project.xml +58 -0
  2. package/.idea/codeStyles/codeStyleConfig.xml +5 -0
  3. package/.idea/inspectionProfiles/Project_Default.xml +6 -0
  4. package/.idea/misc.xml +6 -0
  5. package/.idea/modules.xml +8 -0
  6. package/.idea/php-docker-settings.xml +24 -0
  7. package/.idea/php.xml +19 -0
  8. package/.idea/vcs.xml +6 -0
  9. package/.idea/watcherTasks.xml +4 -0
  10. package/.idea/windward-ui-plugin-core.iml +8 -0
  11. package/CHANGELOG.md +3 -19
  12. package/components/Content/Blocks/Email.vue +6 -1
  13. package/components/utils/GenerateAIQuestionButton.vue +88 -16
  14. package/config/menu.config.json +475 -0
  15. package/coverage/clover.xml +1474 -0
  16. package/coverage/coverage-final.json +199 -0
  17. package/coverage/lcov-report/base.css +224 -0
  18. package/coverage/lcov-report/block-navigation.js +87 -0
  19. package/coverage/lcov-report/components/Content/Blocks/Accordion.vue.html +772 -0
  20. package/coverage/lcov-report/components/Content/Blocks/BlockQuote.vue.html +625 -0
  21. package/coverage/lcov-report/components/Content/Blocks/ClickableIcons.vue.html +979 -0
  22. package/coverage/lcov-report/components/Content/Blocks/Email.vue.html +1171 -0
  23. package/coverage/lcov-report/components/Content/Blocks/Feedback.vue.html +1075 -0
  24. package/coverage/lcov-report/components/Content/Blocks/FileDownload/FileLinks.vue.html +331 -0
  25. package/coverage/lcov-report/components/Content/Blocks/FileDownload/FileTable.vue.html +403 -0
  26. package/coverage/lcov-report/components/Content/Blocks/FileDownload/index.html +131 -0
  27. package/coverage/lcov-report/components/Content/Blocks/FileDownload.vue.html +514 -0
  28. package/coverage/lcov-report/components/Content/Blocks/Image.vue.html +211 -0
  29. package/coverage/lcov-report/components/Content/Blocks/Math.vue.html +352 -0
  30. package/coverage/lcov-report/components/Content/Blocks/OpenResponse.vue.html +667 -0
  31. package/coverage/lcov-report/components/Content/Blocks/OpenResponseCollate.vue.html +643 -0
  32. package/coverage/lcov-report/components/Content/Blocks/RichText.vue.html +295 -0
  33. package/coverage/lcov-report/components/Content/Blocks/ScenarioChoice.vue.html +976 -0
  34. package/coverage/lcov-report/components/Content/Blocks/Tab.vue.html +445 -0
  35. package/coverage/lcov-report/components/Content/Blocks/Table.vue.html +667 -0
  36. package/coverage/lcov-report/components/Content/Blocks/UserUpload/DisplayUserFilesTable.vue.html +562 -0
  37. package/coverage/lcov-report/components/Content/Blocks/UserUpload/index.html +116 -0
  38. package/coverage/lcov-report/components/Content/Blocks/UserUpload.vue.html +844 -0
  39. package/coverage/lcov-report/components/Content/Blocks/Video.vue.html +1225 -0
  40. package/coverage/lcov-report/components/Content/Blocks/index.html +311 -0
  41. package/coverage/lcov-report/components/Settings/AccordionSettings.vue.html +961 -0
  42. package/coverage/lcov-report/components/Settings/BlockQuoteSettings.vue.html +673 -0
  43. package/coverage/lcov-report/components/Settings/ClickableIconsSettings.vue.html +1144 -0
  44. package/coverage/lcov-report/components/Settings/EmailSettings.vue.html +901 -0
  45. package/coverage/lcov-report/components/Settings/FeedbackSettings.vue.html +373 -0
  46. package/coverage/lcov-report/components/Settings/FileDownloadSettings.vue.html +607 -0
  47. package/coverage/lcov-report/components/Settings/ImageSettings.vue.html +310 -0
  48. package/coverage/lcov-report/components/Settings/MathSettings.vue.html +337 -0
  49. package/coverage/lcov-report/components/Settings/OpenResponseCollateSettings.vue.html +586 -0
  50. package/coverage/lcov-report/components/Settings/OpenResponseSettings.vue.html +415 -0
  51. package/coverage/lcov-report/components/Settings/ScenarioChoiceSettings.vue.html +1183 -0
  52. package/coverage/lcov-report/components/Settings/TabSettings.vue.html +751 -0
  53. package/coverage/lcov-report/components/Settings/UserUploadSettings.vue.html +535 -0
  54. package/coverage/lcov-report/components/Settings/index.html +296 -0
  55. package/coverage/lcov-report/components/utils/ContentViewer.vue.html +199 -0
  56. package/coverage/lcov-report/components/utils/MathExpressionEditor.vue.html +1120 -0
  57. package/coverage/lcov-report/components/utils/MathLiveWrapper.vue.html +415 -0
  58. package/coverage/lcov-report/components/utils/TinyMCEWrapper.vue.html +271 -0
  59. package/coverage/lcov-report/components/utils/index.html +131 -0
  60. package/coverage/lcov-report/config/index.html +116 -0
  61. package/coverage/lcov-report/config/tinymce.config.js.html +493 -0
  62. package/coverage/lcov-report/config/tinymce.config.ts.html +1051 -0
  63. package/coverage/lcov-report/favicon.png +0 -0
  64. package/coverage/lcov-report/helpers/GlossaryHelper.ts.html +577 -0
  65. package/coverage/lcov-report/helpers/GlossaryTerm.ts.html +178 -0
  66. package/coverage/lcov-report/helpers/MathHelper.ts.html +1033 -0
  67. package/coverage/lcov-report/helpers/index.html +146 -0
  68. package/coverage/lcov-report/helpers/tinymce/index.html +116 -0
  69. package/coverage/lcov-report/helpers/tinymce/plugin.ts.html +334 -0
  70. package/coverage/lcov-report/i18n/en-US/components/content/blocks/block_quote.ts.html +94 -0
  71. package/coverage/lcov-report/i18n/en-US/components/content/blocks/email.ts.html +127 -0
  72. package/coverage/lcov-report/i18n/en-US/components/content/blocks/feedback.ts.html +178 -0
  73. package/coverage/lcov-report/i18n/en-US/components/content/blocks/file_download.ts.html +100 -0
  74. package/coverage/lcov-report/i18n/en-US/components/content/blocks/generate_questions.ts.html +100 -0
  75. package/coverage/lcov-report/i18n/en-US/components/content/blocks/image.ts.html +100 -0
  76. package/coverage/lcov-report/i18n/en-US/components/content/blocks/index.html +296 -0
  77. package/coverage/lcov-report/i18n/en-US/components/content/blocks/index.ts.html +166 -0
  78. package/coverage/lcov-report/i18n/en-US/components/content/blocks/open_response.ts.html +100 -0
  79. package/coverage/lcov-report/i18n/en-US/components/content/blocks/open_response_collate.ts.html +106 -0
  80. package/coverage/lcov-report/i18n/en-US/components/content/blocks/scenario_choice.ts.html +100 -0
  81. package/coverage/lcov-report/i18n/en-US/components/content/blocks/table.ts.html +97 -0
  82. package/coverage/lcov-report/i18n/en-US/components/content/blocks/user_upload.ts.html +115 -0
  83. package/coverage/lcov-report/i18n/en-US/components/content/blocks/video.ts.html +97 -0
  84. package/coverage/lcov-report/i18n/en-US/components/content/index.html +116 -0
  85. package/coverage/lcov-report/i18n/en-US/components/content/index.ts.html +100 -0
  86. package/coverage/lcov-report/i18n/en-US/components/index.html +116 -0
  87. package/coverage/lcov-report/i18n/en-US/components/index.ts.html +118 -0
  88. package/coverage/lcov-report/i18n/en-US/components/navigation/ask_the_expert.ts.html +118 -0
  89. package/coverage/lcov-report/i18n/en-US/components/navigation/image.ts.html +97 -0
  90. package/coverage/lcov-report/i18n/en-US/components/navigation/index.html +161 -0
  91. package/coverage/lcov-report/i18n/en-US/components/navigation/index.ts.html +112 -0
  92. package/coverage/lcov-report/i18n/en-US/components/navigation/user_upload.ts.html +94 -0
  93. package/coverage/lcov-report/i18n/en-US/components/settings/accordion.ts.html +106 -0
  94. package/coverage/lcov-report/i18n/en-US/components/settings/block_quote.ts.html +130 -0
  95. package/coverage/lcov-report/i18n/en-US/components/settings/clickable_icon.ts.html +142 -0
  96. package/coverage/lcov-report/i18n/en-US/components/settings/email.ts.html +115 -0
  97. package/coverage/lcov-report/i18n/en-US/components/settings/file_download.ts.html +109 -0
  98. package/coverage/lcov-report/i18n/en-US/components/settings/horizontal_rule.ts.html +94 -0
  99. package/coverage/lcov-report/i18n/en-US/components/settings/image.ts.html +142 -0
  100. package/coverage/lcov-report/i18n/en-US/components/settings/index.html +326 -0
  101. package/coverage/lcov-report/i18n/en-US/components/settings/index.ts.html +178 -0
  102. package/coverage/lcov-report/i18n/en-US/components/settings/open_response.ts.html +100 -0
  103. package/coverage/lcov-report/i18n/en-US/components/settings/open_response_collate.ts.html +103 -0
  104. package/coverage/lcov-report/i18n/en-US/components/settings/scenario_choice.ts.html +145 -0
  105. package/coverage/lcov-report/i18n/en-US/components/settings/tab.ts.html +109 -0
  106. package/coverage/lcov-report/i18n/en-US/components/settings/text_editor.ts.html +115 -0
  107. package/coverage/lcov-report/i18n/en-US/components/settings/user_upload.ts.html +121 -0
  108. package/coverage/lcov-report/i18n/en-US/components/settings/video.ts.html +277 -0
  109. package/coverage/lcov-report/i18n/en-US/components/utils/FillInBlank/FillInBlankInput.ts.html +130 -0
  110. package/coverage/lcov-report/i18n/en-US/components/utils/FillInBlank/FillInTheBlanksManager.ts.html +118 -0
  111. package/coverage/lcov-report/i18n/en-US/components/utils/FillInBlank/index.html +146 -0
  112. package/coverage/lcov-report/i18n/en-US/components/utils/FillInBlank/index.ts.html +103 -0
  113. package/coverage/lcov-report/i18n/en-US/components/utils/index.html +146 -0
  114. package/coverage/lcov-report/i18n/en-US/components/utils/index.ts.html +109 -0
  115. package/coverage/lcov-report/i18n/en-US/components/utils/math_expression_editor.ts.html +130 -0
  116. package/coverage/lcov-report/i18n/en-US/components/utils/tiny_mce_wrapper.ts.html +175 -0
  117. package/coverage/lcov-report/i18n/en-US/index.html +116 -0
  118. package/coverage/lcov-report/i18n/en-US/index.ts.html +133 -0
  119. package/coverage/lcov-report/i18n/en-US/modules/index.html +116 -0
  120. package/coverage/lcov-report/i18n/en-US/modules/index.ts.html +100 -0
  121. package/coverage/lcov-report/i18n/en-US/pages/glossary.ts.html +106 -0
  122. package/coverage/lcov-report/i18n/en-US/pages/index.html +146 -0
  123. package/coverage/lcov-report/i18n/en-US/pages/index.ts.html +112 -0
  124. package/coverage/lcov-report/i18n/en-US/pages/plugins/error.ts.html +112 -0
  125. package/coverage/lcov-report/i18n/en-US/pages/plugins/index.html +131 -0
  126. package/coverage/lcov-report/i18n/en-US/pages/plugins/index.ts.html +100 -0
  127. package/coverage/lcov-report/i18n/en-US/pages/user_upload.ts.html +94 -0
  128. package/coverage/lcov-report/i18n/en-US/shared/content_blocks.ts.html +163 -0
  129. package/coverage/lcov-report/i18n/en-US/shared/index.html +176 -0
  130. package/coverage/lcov-report/i18n/en-US/shared/index.ts.html +118 -0
  131. package/coverage/lcov-report/i18n/en-US/shared/menu.ts.html +97 -0
  132. package/coverage/lcov-report/i18n/en-US/shared/permission.ts.html +130 -0
  133. package/coverage/lcov-report/i18n/en-US/shared/settings.ts.html +172 -0
  134. package/coverage/lcov-report/i18n/es-ES/components/content/blocks/block_quote.ts.html +94 -0
  135. package/coverage/lcov-report/i18n/es-ES/components/content/blocks/email.ts.html +127 -0
  136. package/coverage/lcov-report/i18n/es-ES/components/content/blocks/feedback.ts.html +178 -0
  137. package/coverage/lcov-report/i18n/es-ES/components/content/blocks/file_download.ts.html +100 -0
  138. package/coverage/lcov-report/i18n/es-ES/components/content/blocks/generate_questions.ts.html +100 -0
  139. package/coverage/lcov-report/i18n/es-ES/components/content/blocks/image.ts.html +100 -0
  140. package/coverage/lcov-report/i18n/es-ES/components/content/blocks/index.html +296 -0
  141. package/coverage/lcov-report/i18n/es-ES/components/content/blocks/index.ts.html +166 -0
  142. package/coverage/lcov-report/i18n/es-ES/components/content/blocks/open_response.ts.html +103 -0
  143. package/coverage/lcov-report/i18n/es-ES/components/content/blocks/open_response_collate.ts.html +106 -0
  144. package/coverage/lcov-report/i18n/es-ES/components/content/blocks/scenario_choice.ts.html +103 -0
  145. package/coverage/lcov-report/i18n/es-ES/components/content/blocks/table.ts.html +97 -0
  146. package/coverage/lcov-report/i18n/es-ES/components/content/blocks/user_upload.ts.html +118 -0
  147. package/coverage/lcov-report/i18n/es-ES/components/content/blocks/video.ts.html +100 -0
  148. package/coverage/lcov-report/i18n/es-ES/components/content/index.html +116 -0
  149. package/coverage/lcov-report/i18n/es-ES/components/content/index.ts.html +100 -0
  150. package/coverage/lcov-report/i18n/es-ES/components/index.html +116 -0
  151. package/coverage/lcov-report/i18n/es-ES/components/index.ts.html +121 -0
  152. package/coverage/lcov-report/i18n/es-ES/components/navigation/ask_the_expert.ts.html +118 -0
  153. package/coverage/lcov-report/i18n/es-ES/components/navigation/image.ts.html +97 -0
  154. package/coverage/lcov-report/i18n/es-ES/components/navigation/index.html +161 -0
  155. package/coverage/lcov-report/i18n/es-ES/components/navigation/index.ts.html +112 -0
  156. package/coverage/lcov-report/i18n/es-ES/components/navigation/user_upload.ts.html +94 -0
  157. package/coverage/lcov-report/i18n/es-ES/components/settings/accordion.ts.html +106 -0
  158. package/coverage/lcov-report/i18n/es-ES/components/settings/block_quote.ts.html +130 -0
  159. package/coverage/lcov-report/i18n/es-ES/components/settings/clickable_icon.ts.html +145 -0
  160. package/coverage/lcov-report/i18n/es-ES/components/settings/email.ts.html +115 -0
  161. package/coverage/lcov-report/i18n/es-ES/components/settings/file_download.ts.html +109 -0
  162. package/coverage/lcov-report/i18n/es-ES/components/settings/horizontal_rule.ts.html +94 -0
  163. package/coverage/lcov-report/i18n/es-ES/components/settings/image.ts.html +148 -0
  164. package/coverage/lcov-report/i18n/es-ES/components/settings/index.html +326 -0
  165. package/coverage/lcov-report/i18n/es-ES/components/settings/index.ts.html +178 -0
  166. package/coverage/lcov-report/i18n/es-ES/components/settings/open_response.ts.html +100 -0
  167. package/coverage/lcov-report/i18n/es-ES/components/settings/open_response_collate.ts.html +106 -0
  168. package/coverage/lcov-report/i18n/es-ES/components/settings/scenario_choice.ts.html +145 -0
  169. package/coverage/lcov-report/i18n/es-ES/components/settings/tab.ts.html +112 -0
  170. package/coverage/lcov-report/i18n/es-ES/components/settings/text_editor.ts.html +115 -0
  171. package/coverage/lcov-report/i18n/es-ES/components/settings/user_upload.ts.html +121 -0
  172. package/coverage/lcov-report/i18n/es-ES/components/settings/video.ts.html +283 -0
  173. package/coverage/lcov-report/i18n/es-ES/components/utils/FillInBlank/FillInBlankInput.ts.html +130 -0
  174. package/coverage/lcov-report/i18n/es-ES/components/utils/FillInBlank/FillInTheBlanksManager.ts.html +118 -0
  175. package/coverage/lcov-report/i18n/es-ES/components/utils/FillInBlank/index.html +146 -0
  176. package/coverage/lcov-report/i18n/es-ES/components/utils/FillInBlank/index.ts.html +103 -0
  177. package/coverage/lcov-report/i18n/es-ES/components/utils/index.html +146 -0
  178. package/coverage/lcov-report/i18n/es-ES/components/utils/index.ts.html +109 -0
  179. package/coverage/lcov-report/i18n/es-ES/components/utils/math_expression_editor.ts.html +130 -0
  180. package/coverage/lcov-report/i18n/es-ES/components/utils/tiny_mce_wrapper.ts.html +178 -0
  181. package/coverage/lcov-report/i18n/es-ES/index.html +116 -0
  182. package/coverage/lcov-report/i18n/es-ES/index.ts.html +133 -0
  183. package/coverage/lcov-report/i18n/es-ES/modules/index.html +116 -0
  184. package/coverage/lcov-report/i18n/es-ES/modules/index.ts.html +100 -0
  185. package/coverage/lcov-report/i18n/es-ES/pages/glossary.ts.html +106 -0
  186. package/coverage/lcov-report/i18n/es-ES/pages/index.html +146 -0
  187. package/coverage/lcov-report/i18n/es-ES/pages/index.ts.html +112 -0
  188. package/coverage/lcov-report/i18n/es-ES/pages/plugins/error.ts.html +112 -0
  189. package/coverage/lcov-report/i18n/es-ES/pages/plugins/index.html +131 -0
  190. package/coverage/lcov-report/i18n/es-ES/pages/plugins/index.ts.html +100 -0
  191. package/coverage/lcov-report/i18n/es-ES/pages/user_upload.ts.html +94 -0
  192. package/coverage/lcov-report/i18n/es-ES/shared/content_blocks.ts.html +163 -0
  193. package/coverage/lcov-report/i18n/es-ES/shared/index.html +176 -0
  194. package/coverage/lcov-report/i18n/es-ES/shared/index.ts.html +118 -0
  195. package/coverage/lcov-report/i18n/es-ES/shared/menu.ts.html +97 -0
  196. package/coverage/lcov-report/i18n/es-ES/shared/permission.ts.html +130 -0
  197. package/coverage/lcov-report/i18n/es-ES/shared/settings.ts.html +178 -0
  198. package/coverage/lcov-report/i18n/index.html +116 -0
  199. package/coverage/lcov-report/i18n/index.ts.html +118 -0
  200. package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/block_quote.ts.html +94 -0
  201. package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/email.ts.html +127 -0
  202. package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/feedback.ts.html +178 -0
  203. package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/file_download.ts.html +100 -0
  204. package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/generate_questions.ts.html +100 -0
  205. package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/image.ts.html +100 -0
  206. package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/index.html +296 -0
  207. package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/index.ts.html +166 -0
  208. package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/open_response.ts.html +103 -0
  209. package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/open_response_collate.ts.html +106 -0
  210. package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/scenario_choice.ts.html +100 -0
  211. package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/table.ts.html +97 -0
  212. package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/user_upload.ts.html +118 -0
  213. package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/video.ts.html +97 -0
  214. package/coverage/lcov-report/i18n/sv-SE/components/content/index.html +116 -0
  215. package/coverage/lcov-report/i18n/sv-SE/components/content/index.ts.html +100 -0
  216. package/coverage/lcov-report/i18n/sv-SE/components/index.html +116 -0
  217. package/coverage/lcov-report/i18n/sv-SE/components/index.ts.html +121 -0
  218. package/coverage/lcov-report/i18n/sv-SE/components/navigation/ask_the_expert.ts.html +118 -0
  219. package/coverage/lcov-report/i18n/sv-SE/components/navigation/image.ts.html +97 -0
  220. package/coverage/lcov-report/i18n/sv-SE/components/navigation/index.html +161 -0
  221. package/coverage/lcov-report/i18n/sv-SE/components/navigation/index.ts.html +112 -0
  222. package/coverage/lcov-report/i18n/sv-SE/components/navigation/user_upload.ts.html +94 -0
  223. package/coverage/lcov-report/i18n/sv-SE/components/settings/accordion.ts.html +109 -0
  224. package/coverage/lcov-report/i18n/sv-SE/components/settings/block_quote.ts.html +130 -0
  225. package/coverage/lcov-report/i18n/sv-SE/components/settings/clickable_icon.ts.html +145 -0
  226. package/coverage/lcov-report/i18n/sv-SE/components/settings/email.ts.html +115 -0
  227. package/coverage/lcov-report/i18n/sv-SE/components/settings/file_download.ts.html +109 -0
  228. package/coverage/lcov-report/i18n/sv-SE/components/settings/horizontal_rule.ts.html +94 -0
  229. package/coverage/lcov-report/i18n/sv-SE/components/settings/image.ts.html +142 -0
  230. package/coverage/lcov-report/i18n/sv-SE/components/settings/index.html +326 -0
  231. package/coverage/lcov-report/i18n/sv-SE/components/settings/index.ts.html +178 -0
  232. package/coverage/lcov-report/i18n/sv-SE/components/settings/open_response.ts.html +100 -0
  233. package/coverage/lcov-report/i18n/sv-SE/components/settings/open_response_collate.ts.html +103 -0
  234. package/coverage/lcov-report/i18n/sv-SE/components/settings/scenario_choice.ts.html +145 -0
  235. package/coverage/lcov-report/i18n/sv-SE/components/settings/tab.ts.html +109 -0
  236. package/coverage/lcov-report/i18n/sv-SE/components/settings/text_editor.ts.html +115 -0
  237. package/coverage/lcov-report/i18n/sv-SE/components/settings/user_upload.ts.html +121 -0
  238. package/coverage/lcov-report/i18n/sv-SE/components/settings/video.ts.html +277 -0
  239. package/coverage/lcov-report/i18n/sv-SE/components/utils/FillInBlank/FillInBlankInput.ts.html +130 -0
  240. package/coverage/lcov-report/i18n/sv-SE/components/utils/FillInBlank/FillInTheBlanksManager.ts.html +118 -0
  241. package/coverage/lcov-report/i18n/sv-SE/components/utils/FillInBlank/index.html +146 -0
  242. package/coverage/lcov-report/i18n/sv-SE/components/utils/FillInBlank/index.ts.html +103 -0
  243. package/coverage/lcov-report/i18n/sv-SE/components/utils/index.html +146 -0
  244. package/coverage/lcov-report/i18n/sv-SE/components/utils/index.ts.html +109 -0
  245. package/coverage/lcov-report/i18n/sv-SE/components/utils/math_expression_editor.ts.html +130 -0
  246. package/coverage/lcov-report/i18n/sv-SE/components/utils/tiny_mce_wrapper.ts.html +178 -0
  247. package/coverage/lcov-report/i18n/sv-SE/index.html +116 -0
  248. package/coverage/lcov-report/i18n/sv-SE/index.ts.html +133 -0
  249. package/coverage/lcov-report/i18n/sv-SE/modules/index.html +116 -0
  250. package/coverage/lcov-report/i18n/sv-SE/modules/index.ts.html +100 -0
  251. package/coverage/lcov-report/i18n/sv-SE/pages/glossary.ts.html +106 -0
  252. package/coverage/lcov-report/i18n/sv-SE/pages/index.html +146 -0
  253. package/coverage/lcov-report/i18n/sv-SE/pages/index.ts.html +112 -0
  254. package/coverage/lcov-report/i18n/sv-SE/pages/plugins/error.ts.html +109 -0
  255. package/coverage/lcov-report/i18n/sv-SE/pages/plugins/index.html +131 -0
  256. package/coverage/lcov-report/i18n/sv-SE/pages/plugins/index.ts.html +100 -0
  257. package/coverage/lcov-report/i18n/sv-SE/pages/user_upload.ts.html +94 -0
  258. package/coverage/lcov-report/i18n/sv-SE/shared/content_blocks.ts.html +163 -0
  259. package/coverage/lcov-report/i18n/sv-SE/shared/index.html +176 -0
  260. package/coverage/lcov-report/i18n/sv-SE/shared/index.ts.html +118 -0
  261. package/coverage/lcov-report/i18n/sv-SE/shared/menu.ts.html +97 -0
  262. package/coverage/lcov-report/i18n/sv-SE/shared/permission.ts.html +130 -0
  263. package/coverage/lcov-report/i18n/sv-SE/shared/settings.ts.html +172 -0
  264. package/coverage/lcov-report/index.html +806 -0
  265. package/coverage/lcov-report/models/SurveyResult.ts.html +109 -0
  266. package/coverage/lcov-report/models/SurveyTemplate.ts.html +109 -0
  267. package/coverage/lcov-report/models/index.html +131 -0
  268. package/coverage/lcov-report/pages/plugins/tinymce/_plugin.vue.html +322 -0
  269. package/coverage/lcov-report/pages/plugins/tinymce/index.html +116 -0
  270. package/coverage/lcov-report/prettify.css +1 -0
  271. package/coverage/lcov-report/prettify.js +2 -0
  272. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  273. package/coverage/lcov-report/sorter.js +196 -0
  274. package/coverage/lcov-report/test/index.html +131 -0
  275. package/coverage/lcov-report/test/locales.js.html +370 -0
  276. package/coverage/lcov-report/test/mocks.js.html +532 -0
  277. package/coverage/lcov.info +2753 -0
  278. package/i18n/en-US/components/content/blocks/generate_questions.ts +4 -0
  279. package/i18n/es-ES/components/content/blocks/generate_questions.ts +4 -0
  280. package/i18n/sv-SE/components/content/blocks/generate_questions.ts +4 -0
  281. package/lib/helpers/GlossaryHelper.d.ts +9 -0
  282. package/lib/helpers/GlossaryHelper.js +118 -0
  283. package/lib/helpers/GlossaryTerm.d.ts +10 -0
  284. package/lib/helpers/GlossaryTerm.js +22 -0
  285. package/lib/helpers/MathHelper.d.ts +99 -0
  286. package/lib/helpers/MathHelper.js +194 -0
  287. package/lib/helpers/tinymce/plugin.d.ts +2 -0
  288. package/lib/helpers/tinymce/plugin.js +86 -0
  289. package/lib/i18n/en-US/components/content/blocks/image.d.ts +6 -0
  290. package/lib/i18n/en-US/components/content/blocks/image.js +7 -0
  291. package/lib/i18n/en-US/components/content/blocks/index.d.ts +75 -0
  292. package/lib/i18n/en-US/components/content/blocks/index.js +14 -0
  293. package/lib/i18n/en-US/components/content/blocks/tab.d.ts +5 -0
  294. package/lib/i18n/en-US/components/content/blocks/tab.js +6 -0
  295. package/lib/i18n/en-US/components/content/blocks/table.d.ts +5 -0
  296. package/lib/i18n/en-US/components/content/blocks/table.js +6 -0
  297. package/lib/i18n/en-US/components/content/blocks/user_upload.d.ts +13 -0
  298. package/lib/i18n/en-US/components/content/blocks/user_upload.js +14 -0
  299. package/lib/i18n/en-US/components/content/blocks/video.d.ts +48 -0
  300. package/lib/i18n/en-US/components/content/blocks/video.js +49 -0
  301. package/lib/i18n/en-US/components/content/index.d.ts +77 -0
  302. package/lib/i18n/en-US/components/content/index.js +6 -0
  303. package/lib/i18n/en-US/components/index.d.ts +140 -0
  304. package/lib/i18n/en-US/components/index.js +12 -0
  305. package/lib/i18n/en-US/components/navigation/image.d.ts +5 -0
  306. package/lib/i18n/en-US/components/navigation/image.js +6 -0
  307. package/lib/i18n/en-US/components/navigation/index.d.ts +10 -0
  308. package/lib/i18n/en-US/components/navigation/index.js +8 -0
  309. package/lib/i18n/en-US/components/navigation/user_upload.d.ts +4 -0
  310. package/lib/i18n/en-US/components/navigation/user_upload.js +5 -0
  311. package/lib/i18n/en-US/components/settings/clickable_icon.d.ts +6 -0
  312. package/lib/i18n/en-US/components/settings/clickable_icon.js +7 -0
  313. package/lib/i18n/en-US/components/settings/image.d.ts +2 -0
  314. package/lib/i18n/en-US/components/settings/image.js +3 -0
  315. package/lib/i18n/en-US/components/settings/index.d.ts +39 -0
  316. package/lib/i18n/en-US/components/settings/index.js +14 -0
  317. package/lib/i18n/en-US/components/settings/text_editor.d.ts +8 -0
  318. package/lib/i18n/en-US/components/settings/text_editor.js +9 -0
  319. package/lib/i18n/en-US/components/settings/user_upload.d.ts +12 -0
  320. package/lib/i18n/en-US/components/settings/user_upload.js +13 -0
  321. package/lib/i18n/en-US/components/settings/video.d.ts +13 -0
  322. package/lib/i18n/en-US/components/settings/video.js +14 -0
  323. package/lib/i18n/en-US/components/utils/index.d.ts +15 -0
  324. package/lib/i18n/en-US/components/utils/index.js +6 -0
  325. package/lib/i18n/en-US/components/utils/tiny_mce_wrapper.d.ts +13 -0
  326. package/lib/i18n/en-US/components/utils/tiny_mce_wrapper.js +14 -0
  327. package/lib/i18n/en-US/index.d.ts +197 -0
  328. package/lib/i18n/en-US/index.js +16 -0
  329. package/lib/i18n/en-US/modules/index.d.ts +2 -0
  330. package/lib/i18n/en-US/modules/index.js +6 -0
  331. package/lib/i18n/en-US/pages/glossary.d.ts +8 -0
  332. package/lib/i18n/en-US/pages/glossary.js +9 -0
  333. package/lib/i18n/en-US/pages/index.d.ts +13 -0
  334. package/lib/i18n/en-US/pages/index.js +8 -0
  335. package/lib/i18n/en-US/pages/user_upload.d.ts +4 -0
  336. package/lib/i18n/en-US/pages/user_upload.js +5 -0
  337. package/lib/i18n/en-US/shared/content_blocks.d.ts +20 -0
  338. package/lib/i18n/en-US/shared/content_blocks.js +21 -0
  339. package/lib/i18n/en-US/shared/index.d.ts +39 -0
  340. package/lib/i18n/en-US/shared/index.js +10 -0
  341. package/lib/i18n/en-US/shared/menu.d.ts +4 -0
  342. package/lib/i18n/en-US/shared/menu.js +5 -0
  343. package/lib/i18n/en-US/shared/settings.d.ts +15 -0
  344. package/lib/i18n/en-US/shared/settings.js +16 -0
  345. package/lib/i18n/en-US.d.ts +197 -0
  346. package/lib/i18n/en-US.js +15 -0
  347. package/lib/models/UserFileAsset.d.ts +5 -0
  348. package/lib/models/UserFileAsset.js +37 -0
  349. package/package.json +1 -1
  350. package/table_styling.scss +58 -0
@@ -0,0 +1,1225 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for components/Content/Blocks/Video.vue</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../../../prettify.css" />
9
+ <link rel="stylesheet" href="../../../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../../../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../../../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../../../index.html">All files</a> / <a href="index.html">components/Content/Blocks</a> Video.vue</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">100% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>5/5</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">100% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>0/0</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">100% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>0/0</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">100% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>5/5</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line high'></div>
65
+ <pre><table class="coverage">
66
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
+ <a name='L2'></a><a href='#L2'>2</a>
68
+ <a name='L3'></a><a href='#L3'>3</a>
69
+ <a name='L4'></a><a href='#L4'>4</a>
70
+ <a name='L5'></a><a href='#L5'>5</a>
71
+ <a name='L6'></a><a href='#L6'>6</a>
72
+ <a name='L7'></a><a href='#L7'>7</a>
73
+ <a name='L8'></a><a href='#L8'>8</a>
74
+ <a name='L9'></a><a href='#L9'>9</a>
75
+ <a name='L10'></a><a href='#L10'>10</a>
76
+ <a name='L11'></a><a href='#L11'>11</a>
77
+ <a name='L12'></a><a href='#L12'>12</a>
78
+ <a name='L13'></a><a href='#L13'>13</a>
79
+ <a name='L14'></a><a href='#L14'>14</a>
80
+ <a name='L15'></a><a href='#L15'>15</a>
81
+ <a name='L16'></a><a href='#L16'>16</a>
82
+ <a name='L17'></a><a href='#L17'>17</a>
83
+ <a name='L18'></a><a href='#L18'>18</a>
84
+ <a name='L19'></a><a href='#L19'>19</a>
85
+ <a name='L20'></a><a href='#L20'>20</a>
86
+ <a name='L21'></a><a href='#L21'>21</a>
87
+ <a name='L22'></a><a href='#L22'>22</a>
88
+ <a name='L23'></a><a href='#L23'>23</a>
89
+ <a name='L24'></a><a href='#L24'>24</a>
90
+ <a name='L25'></a><a href='#L25'>25</a>
91
+ <a name='L26'></a><a href='#L26'>26</a>
92
+ <a name='L27'></a><a href='#L27'>27</a>
93
+ <a name='L28'></a><a href='#L28'>28</a>
94
+ <a name='L29'></a><a href='#L29'>29</a>
95
+ <a name='L30'></a><a href='#L30'>30</a>
96
+ <a name='L31'></a><a href='#L31'>31</a>
97
+ <a name='L32'></a><a href='#L32'>32</a>
98
+ <a name='L33'></a><a href='#L33'>33</a>
99
+ <a name='L34'></a><a href='#L34'>34</a>
100
+ <a name='L35'></a><a href='#L35'>35</a>
101
+ <a name='L36'></a><a href='#L36'>36</a>
102
+ <a name='L37'></a><a href='#L37'>37</a>
103
+ <a name='L38'></a><a href='#L38'>38</a>
104
+ <a name='L39'></a><a href='#L39'>39</a>
105
+ <a name='L40'></a><a href='#L40'>40</a>
106
+ <a name='L41'></a><a href='#L41'>41</a>
107
+ <a name='L42'></a><a href='#L42'>42</a>
108
+ <a name='L43'></a><a href='#L43'>43</a>
109
+ <a name='L44'></a><a href='#L44'>44</a>
110
+ <a name='L45'></a><a href='#L45'>45</a>
111
+ <a name='L46'></a><a href='#L46'>46</a>
112
+ <a name='L47'></a><a href='#L47'>47</a>
113
+ <a name='L48'></a><a href='#L48'>48</a>
114
+ <a name='L49'></a><a href='#L49'>49</a>
115
+ <a name='L50'></a><a href='#L50'>50</a>
116
+ <a name='L51'></a><a href='#L51'>51</a>
117
+ <a name='L52'></a><a href='#L52'>52</a>
118
+ <a name='L53'></a><a href='#L53'>53</a>
119
+ <a name='L54'></a><a href='#L54'>54</a>
120
+ <a name='L55'></a><a href='#L55'>55</a>
121
+ <a name='L56'></a><a href='#L56'>56</a>
122
+ <a name='L57'></a><a href='#L57'>57</a>
123
+ <a name='L58'></a><a href='#L58'>58</a>
124
+ <a name='L59'></a><a href='#L59'>59</a>
125
+ <a name='L60'></a><a href='#L60'>60</a>
126
+ <a name='L61'></a><a href='#L61'>61</a>
127
+ <a name='L62'></a><a href='#L62'>62</a>
128
+ <a name='L63'></a><a href='#L63'>63</a>
129
+ <a name='L64'></a><a href='#L64'>64</a>
130
+ <a name='L65'></a><a href='#L65'>65</a>
131
+ <a name='L66'></a><a href='#L66'>66</a>
132
+ <a name='L67'></a><a href='#L67'>67</a>
133
+ <a name='L68'></a><a href='#L68'>68</a>
134
+ <a name='L69'></a><a href='#L69'>69</a>
135
+ <a name='L70'></a><a href='#L70'>70</a>
136
+ <a name='L71'></a><a href='#L71'>71</a>
137
+ <a name='L72'></a><a href='#L72'>72</a>
138
+ <a name='L73'></a><a href='#L73'>73</a>
139
+ <a name='L74'></a><a href='#L74'>74</a>
140
+ <a name='L75'></a><a href='#L75'>75</a>
141
+ <a name='L76'></a><a href='#L76'>76</a>
142
+ <a name='L77'></a><a href='#L77'>77</a>
143
+ <a name='L78'></a><a href='#L78'>78</a>
144
+ <a name='L79'></a><a href='#L79'>79</a>
145
+ <a name='L80'></a><a href='#L80'>80</a>
146
+ <a name='L81'></a><a href='#L81'>81</a>
147
+ <a name='L82'></a><a href='#L82'>82</a>
148
+ <a name='L83'></a><a href='#L83'>83</a>
149
+ <a name='L84'></a><a href='#L84'>84</a>
150
+ <a name='L85'></a><a href='#L85'>85</a>
151
+ <a name='L86'></a><a href='#L86'>86</a>
152
+ <a name='L87'></a><a href='#L87'>87</a>
153
+ <a name='L88'></a><a href='#L88'>88</a>
154
+ <a name='L89'></a><a href='#L89'>89</a>
155
+ <a name='L90'></a><a href='#L90'>90</a>
156
+ <a name='L91'></a><a href='#L91'>91</a>
157
+ <a name='L92'></a><a href='#L92'>92</a>
158
+ <a name='L93'></a><a href='#L93'>93</a>
159
+ <a name='L94'></a><a href='#L94'>94</a>
160
+ <a name='L95'></a><a href='#L95'>95</a>
161
+ <a name='L96'></a><a href='#L96'>96</a>
162
+ <a name='L97'></a><a href='#L97'>97</a>
163
+ <a name='L98'></a><a href='#L98'>98</a>
164
+ <a name='L99'></a><a href='#L99'>99</a>
165
+ <a name='L100'></a><a href='#L100'>100</a>
166
+ <a name='L101'></a><a href='#L101'>101</a>
167
+ <a name='L102'></a><a href='#L102'>102</a>
168
+ <a name='L103'></a><a href='#L103'>103</a>
169
+ <a name='L104'></a><a href='#L104'>104</a>
170
+ <a name='L105'></a><a href='#L105'>105</a>
171
+ <a name='L106'></a><a href='#L106'>106</a>
172
+ <a name='L107'></a><a href='#L107'>107</a>
173
+ <a name='L108'></a><a href='#L108'>108</a>
174
+ <a name='L109'></a><a href='#L109'>109</a>
175
+ <a name='L110'></a><a href='#L110'>110</a>
176
+ <a name='L111'></a><a href='#L111'>111</a>
177
+ <a name='L112'></a><a href='#L112'>112</a>
178
+ <a name='L113'></a><a href='#L113'>113</a>
179
+ <a name='L114'></a><a href='#L114'>114</a>
180
+ <a name='L115'></a><a href='#L115'>115</a>
181
+ <a name='L116'></a><a href='#L116'>116</a>
182
+ <a name='L117'></a><a href='#L117'>117</a>
183
+ <a name='L118'></a><a href='#L118'>118</a>
184
+ <a name='L119'></a><a href='#L119'>119</a>
185
+ <a name='L120'></a><a href='#L120'>120</a>
186
+ <a name='L121'></a><a href='#L121'>121</a>
187
+ <a name='L122'></a><a href='#L122'>122</a>
188
+ <a name='L123'></a><a href='#L123'>123</a>
189
+ <a name='L124'></a><a href='#L124'>124</a>
190
+ <a name='L125'></a><a href='#L125'>125</a>
191
+ <a name='L126'></a><a href='#L126'>126</a>
192
+ <a name='L127'></a><a href='#L127'>127</a>
193
+ <a name='L128'></a><a href='#L128'>128</a>
194
+ <a name='L129'></a><a href='#L129'>129</a>
195
+ <a name='L130'></a><a href='#L130'>130</a>
196
+ <a name='L131'></a><a href='#L131'>131</a>
197
+ <a name='L132'></a><a href='#L132'>132</a>
198
+ <a name='L133'></a><a href='#L133'>133</a>
199
+ <a name='L134'></a><a href='#L134'>134</a>
200
+ <a name='L135'></a><a href='#L135'>135</a>
201
+ <a name='L136'></a><a href='#L136'>136</a>
202
+ <a name='L137'></a><a href='#L137'>137</a>
203
+ <a name='L138'></a><a href='#L138'>138</a>
204
+ <a name='L139'></a><a href='#L139'>139</a>
205
+ <a name='L140'></a><a href='#L140'>140</a>
206
+ <a name='L141'></a><a href='#L141'>141</a>
207
+ <a name='L142'></a><a href='#L142'>142</a>
208
+ <a name='L143'></a><a href='#L143'>143</a>
209
+ <a name='L144'></a><a href='#L144'>144</a>
210
+ <a name='L145'></a><a href='#L145'>145</a>
211
+ <a name='L146'></a><a href='#L146'>146</a>
212
+ <a name='L147'></a><a href='#L147'>147</a>
213
+ <a name='L148'></a><a href='#L148'>148</a>
214
+ <a name='L149'></a><a href='#L149'>149</a>
215
+ <a name='L150'></a><a href='#L150'>150</a>
216
+ <a name='L151'></a><a href='#L151'>151</a>
217
+ <a name='L152'></a><a href='#L152'>152</a>
218
+ <a name='L153'></a><a href='#L153'>153</a>
219
+ <a name='L154'></a><a href='#L154'>154</a>
220
+ <a name='L155'></a><a href='#L155'>155</a>
221
+ <a name='L156'></a><a href='#L156'>156</a>
222
+ <a name='L157'></a><a href='#L157'>157</a>
223
+ <a name='L158'></a><a href='#L158'>158</a>
224
+ <a name='L159'></a><a href='#L159'>159</a>
225
+ <a name='L160'></a><a href='#L160'>160</a>
226
+ <a name='L161'></a><a href='#L161'>161</a>
227
+ <a name='L162'></a><a href='#L162'>162</a>
228
+ <a name='L163'></a><a href='#L163'>163</a>
229
+ <a name='L164'></a><a href='#L164'>164</a>
230
+ <a name='L165'></a><a href='#L165'>165</a>
231
+ <a name='L166'></a><a href='#L166'>166</a>
232
+ <a name='L167'></a><a href='#L167'>167</a>
233
+ <a name='L168'></a><a href='#L168'>168</a>
234
+ <a name='L169'></a><a href='#L169'>169</a>
235
+ <a name='L170'></a><a href='#L170'>170</a>
236
+ <a name='L171'></a><a href='#L171'>171</a>
237
+ <a name='L172'></a><a href='#L172'>172</a>
238
+ <a name='L173'></a><a href='#L173'>173</a>
239
+ <a name='L174'></a><a href='#L174'>174</a>
240
+ <a name='L175'></a><a href='#L175'>175</a>
241
+ <a name='L176'></a><a href='#L176'>176</a>
242
+ <a name='L177'></a><a href='#L177'>177</a>
243
+ <a name='L178'></a><a href='#L178'>178</a>
244
+ <a name='L179'></a><a href='#L179'>179</a>
245
+ <a name='L180'></a><a href='#L180'>180</a>
246
+ <a name='L181'></a><a href='#L181'>181</a>
247
+ <a name='L182'></a><a href='#L182'>182</a>
248
+ <a name='L183'></a><a href='#L183'>183</a>
249
+ <a name='L184'></a><a href='#L184'>184</a>
250
+ <a name='L185'></a><a href='#L185'>185</a>
251
+ <a name='L186'></a><a href='#L186'>186</a>
252
+ <a name='L187'></a><a href='#L187'>187</a>
253
+ <a name='L188'></a><a href='#L188'>188</a>
254
+ <a name='L189'></a><a href='#L189'>189</a>
255
+ <a name='L190'></a><a href='#L190'>190</a>
256
+ <a name='L191'></a><a href='#L191'>191</a>
257
+ <a name='L192'></a><a href='#L192'>192</a>
258
+ <a name='L193'></a><a href='#L193'>193</a>
259
+ <a name='L194'></a><a href='#L194'>194</a>
260
+ <a name='L195'></a><a href='#L195'>195</a>
261
+ <a name='L196'></a><a href='#L196'>196</a>
262
+ <a name='L197'></a><a href='#L197'>197</a>
263
+ <a name='L198'></a><a href='#L198'>198</a>
264
+ <a name='L199'></a><a href='#L199'>199</a>
265
+ <a name='L200'></a><a href='#L200'>200</a>
266
+ <a name='L201'></a><a href='#L201'>201</a>
267
+ <a name='L202'></a><a href='#L202'>202</a>
268
+ <a name='L203'></a><a href='#L203'>203</a>
269
+ <a name='L204'></a><a href='#L204'>204</a>
270
+ <a name='L205'></a><a href='#L205'>205</a>
271
+ <a name='L206'></a><a href='#L206'>206</a>
272
+ <a name='L207'></a><a href='#L207'>207</a>
273
+ <a name='L208'></a><a href='#L208'>208</a>
274
+ <a name='L209'></a><a href='#L209'>209</a>
275
+ <a name='L210'></a><a href='#L210'>210</a>
276
+ <a name='L211'></a><a href='#L211'>211</a>
277
+ <a name='L212'></a><a href='#L212'>212</a>
278
+ <a name='L213'></a><a href='#L213'>213</a>
279
+ <a name='L214'></a><a href='#L214'>214</a>
280
+ <a name='L215'></a><a href='#L215'>215</a>
281
+ <a name='L216'></a><a href='#L216'>216</a>
282
+ <a name='L217'></a><a href='#L217'>217</a>
283
+ <a name='L218'></a><a href='#L218'>218</a>
284
+ <a name='L219'></a><a href='#L219'>219</a>
285
+ <a name='L220'></a><a href='#L220'>220</a>
286
+ <a name='L221'></a><a href='#L221'>221</a>
287
+ <a name='L222'></a><a href='#L222'>222</a>
288
+ <a name='L223'></a><a href='#L223'>223</a>
289
+ <a name='L224'></a><a href='#L224'>224</a>
290
+ <a name='L225'></a><a href='#L225'>225</a>
291
+ <a name='L226'></a><a href='#L226'>226</a>
292
+ <a name='L227'></a><a href='#L227'>227</a>
293
+ <a name='L228'></a><a href='#L228'>228</a>
294
+ <a name='L229'></a><a href='#L229'>229</a>
295
+ <a name='L230'></a><a href='#L230'>230</a>
296
+ <a name='L231'></a><a href='#L231'>231</a>
297
+ <a name='L232'></a><a href='#L232'>232</a>
298
+ <a name='L233'></a><a href='#L233'>233</a>
299
+ <a name='L234'></a><a href='#L234'>234</a>
300
+ <a name='L235'></a><a href='#L235'>235</a>
301
+ <a name='L236'></a><a href='#L236'>236</a>
302
+ <a name='L237'></a><a href='#L237'>237</a>
303
+ <a name='L238'></a><a href='#L238'>238</a>
304
+ <a name='L239'></a><a href='#L239'>239</a>
305
+ <a name='L240'></a><a href='#L240'>240</a>
306
+ <a name='L241'></a><a href='#L241'>241</a>
307
+ <a name='L242'></a><a href='#L242'>242</a>
308
+ <a name='L243'></a><a href='#L243'>243</a>
309
+ <a name='L244'></a><a href='#L244'>244</a>
310
+ <a name='L245'></a><a href='#L245'>245</a>
311
+ <a name='L246'></a><a href='#L246'>246</a>
312
+ <a name='L247'></a><a href='#L247'>247</a>
313
+ <a name='L248'></a><a href='#L248'>248</a>
314
+ <a name='L249'></a><a href='#L249'>249</a>
315
+ <a name='L250'></a><a href='#L250'>250</a>
316
+ <a name='L251'></a><a href='#L251'>251</a>
317
+ <a name='L252'></a><a href='#L252'>252</a>
318
+ <a name='L253'></a><a href='#L253'>253</a>
319
+ <a name='L254'></a><a href='#L254'>254</a>
320
+ <a name='L255'></a><a href='#L255'>255</a>
321
+ <a name='L256'></a><a href='#L256'>256</a>
322
+ <a name='L257'></a><a href='#L257'>257</a>
323
+ <a name='L258'></a><a href='#L258'>258</a>
324
+ <a name='L259'></a><a href='#L259'>259</a>
325
+ <a name='L260'></a><a href='#L260'>260</a>
326
+ <a name='L261'></a><a href='#L261'>261</a>
327
+ <a name='L262'></a><a href='#L262'>262</a>
328
+ <a name='L263'></a><a href='#L263'>263</a>
329
+ <a name='L264'></a><a href='#L264'>264</a>
330
+ <a name='L265'></a><a href='#L265'>265</a>
331
+ <a name='L266'></a><a href='#L266'>266</a>
332
+ <a name='L267'></a><a href='#L267'>267</a>
333
+ <a name='L268'></a><a href='#L268'>268</a>
334
+ <a name='L269'></a><a href='#L269'>269</a>
335
+ <a name='L270'></a><a href='#L270'>270</a>
336
+ <a name='L271'></a><a href='#L271'>271</a>
337
+ <a name='L272'></a><a href='#L272'>272</a>
338
+ <a name='L273'></a><a href='#L273'>273</a>
339
+ <a name='L274'></a><a href='#L274'>274</a>
340
+ <a name='L275'></a><a href='#L275'>275</a>
341
+ <a name='L276'></a><a href='#L276'>276</a>
342
+ <a name='L277'></a><a href='#L277'>277</a>
343
+ <a name='L278'></a><a href='#L278'>278</a>
344
+ <a name='L279'></a><a href='#L279'>279</a>
345
+ <a name='L280'></a><a href='#L280'>280</a>
346
+ <a name='L281'></a><a href='#L281'>281</a>
347
+ <a name='L282'></a><a href='#L282'>282</a>
348
+ <a name='L283'></a><a href='#L283'>283</a>
349
+ <a name='L284'></a><a href='#L284'>284</a>
350
+ <a name='L285'></a><a href='#L285'>285</a>
351
+ <a name='L286'></a><a href='#L286'>286</a>
352
+ <a name='L287'></a><a href='#L287'>287</a>
353
+ <a name='L288'></a><a href='#L288'>288</a>
354
+ <a name='L289'></a><a href='#L289'>289</a>
355
+ <a name='L290'></a><a href='#L290'>290</a>
356
+ <a name='L291'></a><a href='#L291'>291</a>
357
+ <a name='L292'></a><a href='#L292'>292</a>
358
+ <a name='L293'></a><a href='#L293'>293</a>
359
+ <a name='L294'></a><a href='#L294'>294</a>
360
+ <a name='L295'></a><a href='#L295'>295</a>
361
+ <a name='L296'></a><a href='#L296'>296</a>
362
+ <a name='L297'></a><a href='#L297'>297</a>
363
+ <a name='L298'></a><a href='#L298'>298</a>
364
+ <a name='L299'></a><a href='#L299'>299</a>
365
+ <a name='L300'></a><a href='#L300'>300</a>
366
+ <a name='L301'></a><a href='#L301'>301</a>
367
+ <a name='L302'></a><a href='#L302'>302</a>
368
+ <a name='L303'></a><a href='#L303'>303</a>
369
+ <a name='L304'></a><a href='#L304'>304</a>
370
+ <a name='L305'></a><a href='#L305'>305</a>
371
+ <a name='L306'></a><a href='#L306'>306</a>
372
+ <a name='L307'></a><a href='#L307'>307</a>
373
+ <a name='L308'></a><a href='#L308'>308</a>
374
+ <a name='L309'></a><a href='#L309'>309</a>
375
+ <a name='L310'></a><a href='#L310'>310</a>
376
+ <a name='L311'></a><a href='#L311'>311</a>
377
+ <a name='L312'></a><a href='#L312'>312</a>
378
+ <a name='L313'></a><a href='#L313'>313</a>
379
+ <a name='L314'></a><a href='#L314'>314</a>
380
+ <a name='L315'></a><a href='#L315'>315</a>
381
+ <a name='L316'></a><a href='#L316'>316</a>
382
+ <a name='L317'></a><a href='#L317'>317</a>
383
+ <a name='L318'></a><a href='#L318'>318</a>
384
+ <a name='L319'></a><a href='#L319'>319</a>
385
+ <a name='L320'></a><a href='#L320'>320</a>
386
+ <a name='L321'></a><a href='#L321'>321</a>
387
+ <a name='L322'></a><a href='#L322'>322</a>
388
+ <a name='L323'></a><a href='#L323'>323</a>
389
+ <a name='L324'></a><a href='#L324'>324</a>
390
+ <a name='L325'></a><a href='#L325'>325</a>
391
+ <a name='L326'></a><a href='#L326'>326</a>
392
+ <a name='L327'></a><a href='#L327'>327</a>
393
+ <a name='L328'></a><a href='#L328'>328</a>
394
+ <a name='L329'></a><a href='#L329'>329</a>
395
+ <a name='L330'></a><a href='#L330'>330</a>
396
+ <a name='L331'></a><a href='#L331'>331</a>
397
+ <a name='L332'></a><a href='#L332'>332</a>
398
+ <a name='L333'></a><a href='#L333'>333</a>
399
+ <a name='L334'></a><a href='#L334'>334</a>
400
+ <a name='L335'></a><a href='#L335'>335</a>
401
+ <a name='L336'></a><a href='#L336'>336</a>
402
+ <a name='L337'></a><a href='#L337'>337</a>
403
+ <a name='L338'></a><a href='#L338'>338</a>
404
+ <a name='L339'></a><a href='#L339'>339</a>
405
+ <a name='L340'></a><a href='#L340'>340</a>
406
+ <a name='L341'></a><a href='#L341'>341</a>
407
+ <a name='L342'></a><a href='#L342'>342</a>
408
+ <a name='L343'></a><a href='#L343'>343</a>
409
+ <a name='L344'></a><a href='#L344'>344</a>
410
+ <a name='L345'></a><a href='#L345'>345</a>
411
+ <a name='L346'></a><a href='#L346'>346</a>
412
+ <a name='L347'></a><a href='#L347'>347</a>
413
+ <a name='L348'></a><a href='#L348'>348</a>
414
+ <a name='L349'></a><a href='#L349'>349</a>
415
+ <a name='L350'></a><a href='#L350'>350</a>
416
+ <a name='L351'></a><a href='#L351'>351</a>
417
+ <a name='L352'></a><a href='#L352'>352</a>
418
+ <a name='L353'></a><a href='#L353'>353</a>
419
+ <a name='L354'></a><a href='#L354'>354</a>
420
+ <a name='L355'></a><a href='#L355'>355</a>
421
+ <a name='L356'></a><a href='#L356'>356</a>
422
+ <a name='L357'></a><a href='#L357'>357</a>
423
+ <a name='L358'></a><a href='#L358'>358</a>
424
+ <a name='L359'></a><a href='#L359'>359</a>
425
+ <a name='L360'></a><a href='#L360'>360</a>
426
+ <a name='L361'></a><a href='#L361'>361</a>
427
+ <a name='L362'></a><a href='#L362'>362</a>
428
+ <a name='L363'></a><a href='#L363'>363</a>
429
+ <a name='L364'></a><a href='#L364'>364</a>
430
+ <a name='L365'></a><a href='#L365'>365</a>
431
+ <a name='L366'></a><a href='#L366'>366</a>
432
+ <a name='L367'></a><a href='#L367'>367</a>
433
+ <a name='L368'></a><a href='#L368'>368</a>
434
+ <a name='L369'></a><a href='#L369'>369</a>
435
+ <a name='L370'></a><a href='#L370'>370</a>
436
+ <a name='L371'></a><a href='#L371'>371</a>
437
+ <a name='L372'></a><a href='#L372'>372</a>
438
+ <a name='L373'></a><a href='#L373'>373</a>
439
+ <a name='L374'></a><a href='#L374'>374</a>
440
+ <a name='L375'></a><a href='#L375'>375</a>
441
+ <a name='L376'></a><a href='#L376'>376</a>
442
+ <a name='L377'></a><a href='#L377'>377</a>
443
+ <a name='L378'></a><a href='#L378'>378</a>
444
+ <a name='L379'></a><a href='#L379'>379</a>
445
+ <a name='L380'></a><a href='#L380'>380</a>
446
+ <a name='L381'></a><a href='#L381'>381</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
447
+ <span class="cline-any cline-neutral">&nbsp;</span>
448
+ <span class="cline-any cline-neutral">&nbsp;</span>
449
+ <span class="cline-any cline-neutral">&nbsp;</span>
450
+ <span class="cline-any cline-neutral">&nbsp;</span>
451
+ <span class="cline-any cline-neutral">&nbsp;</span>
452
+ <span class="cline-any cline-neutral">&nbsp;</span>
453
+ <span class="cline-any cline-neutral">&nbsp;</span>
454
+ <span class="cline-any cline-neutral">&nbsp;</span>
455
+ <span class="cline-any cline-neutral">&nbsp;</span>
456
+ <span class="cline-any cline-neutral">&nbsp;</span>
457
+ <span class="cline-any cline-neutral">&nbsp;</span>
458
+ <span class="cline-any cline-neutral">&nbsp;</span>
459
+ <span class="cline-any cline-neutral">&nbsp;</span>
460
+ <span class="cline-any cline-neutral">&nbsp;</span>
461
+ <span class="cline-any cline-neutral">&nbsp;</span>
462
+ <span class="cline-any cline-neutral">&nbsp;</span>
463
+ <span class="cline-any cline-neutral">&nbsp;</span>
464
+ <span class="cline-any cline-neutral">&nbsp;</span>
465
+ <span class="cline-any cline-neutral">&nbsp;</span>
466
+ <span class="cline-any cline-neutral">&nbsp;</span>
467
+ <span class="cline-any cline-neutral">&nbsp;</span>
468
+ <span class="cline-any cline-neutral">&nbsp;</span>
469
+ <span class="cline-any cline-neutral">&nbsp;</span>
470
+ <span class="cline-any cline-neutral">&nbsp;</span>
471
+ <span class="cline-any cline-neutral">&nbsp;</span>
472
+ <span class="cline-any cline-neutral">&nbsp;</span>
473
+ <span class="cline-any cline-neutral">&nbsp;</span>
474
+ <span class="cline-any cline-neutral">&nbsp;</span>
475
+ <span class="cline-any cline-neutral">&nbsp;</span>
476
+ <span class="cline-any cline-neutral">&nbsp;</span>
477
+ <span class="cline-any cline-neutral">&nbsp;</span>
478
+ <span class="cline-any cline-neutral">&nbsp;</span>
479
+ <span class="cline-any cline-neutral">&nbsp;</span>
480
+ <span class="cline-any cline-neutral">&nbsp;</span>
481
+ <span class="cline-any cline-neutral">&nbsp;</span>
482
+ <span class="cline-any cline-neutral">&nbsp;</span>
483
+ <span class="cline-any cline-neutral">&nbsp;</span>
484
+ <span class="cline-any cline-neutral">&nbsp;</span>
485
+ <span class="cline-any cline-neutral">&nbsp;</span>
486
+ <span class="cline-any cline-neutral">&nbsp;</span>
487
+ <span class="cline-any cline-neutral">&nbsp;</span>
488
+ <span class="cline-any cline-neutral">&nbsp;</span>
489
+ <span class="cline-any cline-neutral">&nbsp;</span>
490
+ <span class="cline-any cline-neutral">&nbsp;</span>
491
+ <span class="cline-any cline-neutral">&nbsp;</span>
492
+ <span class="cline-any cline-neutral">&nbsp;</span>
493
+ <span class="cline-any cline-neutral">&nbsp;</span>
494
+ <span class="cline-any cline-neutral">&nbsp;</span>
495
+ <span class="cline-any cline-neutral">&nbsp;</span>
496
+ <span class="cline-any cline-neutral">&nbsp;</span>
497
+ <span class="cline-any cline-neutral">&nbsp;</span>
498
+ <span class="cline-any cline-neutral">&nbsp;</span>
499
+ <span class="cline-any cline-neutral">&nbsp;</span>
500
+ <span class="cline-any cline-neutral">&nbsp;</span>
501
+ <span class="cline-any cline-neutral">&nbsp;</span>
502
+ <span class="cline-any cline-neutral">&nbsp;</span>
503
+ <span class="cline-any cline-neutral">&nbsp;</span>
504
+ <span class="cline-any cline-neutral">&nbsp;</span>
505
+ <span class="cline-any cline-neutral">&nbsp;</span>
506
+ <span class="cline-any cline-neutral">&nbsp;</span>
507
+ <span class="cline-any cline-neutral">&nbsp;</span>
508
+ <span class="cline-any cline-neutral">&nbsp;</span>
509
+ <span class="cline-any cline-neutral">&nbsp;</span>
510
+ <span class="cline-any cline-neutral">&nbsp;</span>
511
+ <span class="cline-any cline-neutral">&nbsp;</span>
512
+ <span class="cline-any cline-neutral">&nbsp;</span>
513
+ <span class="cline-any cline-neutral">&nbsp;</span>
514
+ <span class="cline-any cline-neutral">&nbsp;</span>
515
+ <span class="cline-any cline-neutral">&nbsp;</span>
516
+ <span class="cline-any cline-neutral">&nbsp;</span>
517
+ <span class="cline-any cline-neutral">&nbsp;</span>
518
+ <span class="cline-any cline-neutral">&nbsp;</span>
519
+ <span class="cline-any cline-neutral">&nbsp;</span>
520
+ <span class="cline-any cline-neutral">&nbsp;</span>
521
+ <span class="cline-any cline-neutral">&nbsp;</span>
522
+ <span class="cline-any cline-neutral">&nbsp;</span>
523
+ <span class="cline-any cline-neutral">&nbsp;</span>
524
+ <span class="cline-any cline-neutral">&nbsp;</span>
525
+ <span class="cline-any cline-yes">1x</span>
526
+ <span class="cline-any cline-yes">1x</span>
527
+ <span class="cline-any cline-yes">1x</span>
528
+ <span class="cline-any cline-yes">1x</span>
529
+ <span class="cline-any cline-yes">1x</span>
530
+ <span class="cline-any cline-neutral">&nbsp;</span>
531
+ <span class="cline-any cline-neutral">&nbsp;</span>
532
+ <span class="cline-any cline-neutral">&nbsp;</span>
533
+ <span class="cline-any cline-neutral">&nbsp;</span>
534
+ <span class="cline-any cline-neutral">&nbsp;</span>
535
+ <span class="cline-any cline-neutral">&nbsp;</span>
536
+ <span class="cline-any cline-neutral">&nbsp;</span>
537
+ <span class="cline-any cline-neutral">&nbsp;</span>
538
+ <span class="cline-any cline-neutral">&nbsp;</span>
539
+ <span class="cline-any cline-neutral">&nbsp;</span>
540
+ <span class="cline-any cline-neutral">&nbsp;</span>
541
+ <span class="cline-any cline-neutral">&nbsp;</span>
542
+ <span class="cline-any cline-neutral">&nbsp;</span>
543
+ <span class="cline-any cline-neutral">&nbsp;</span>
544
+ <span class="cline-any cline-neutral">&nbsp;</span>
545
+ <span class="cline-any cline-neutral">&nbsp;</span>
546
+ <span class="cline-any cline-neutral">&nbsp;</span>
547
+ <span class="cline-any cline-neutral">&nbsp;</span>
548
+ <span class="cline-any cline-neutral">&nbsp;</span>
549
+ <span class="cline-any cline-neutral">&nbsp;</span>
550
+ <span class="cline-any cline-neutral">&nbsp;</span>
551
+ <span class="cline-any cline-neutral">&nbsp;</span>
552
+ <span class="cline-any cline-neutral">&nbsp;</span>
553
+ <span class="cline-any cline-neutral">&nbsp;</span>
554
+ <span class="cline-any cline-neutral">&nbsp;</span>
555
+ <span class="cline-any cline-neutral">&nbsp;</span>
556
+ <span class="cline-any cline-neutral">&nbsp;</span>
557
+ <span class="cline-any cline-neutral">&nbsp;</span>
558
+ <span class="cline-any cline-neutral">&nbsp;</span>
559
+ <span class="cline-any cline-neutral">&nbsp;</span>
560
+ <span class="cline-any cline-neutral">&nbsp;</span>
561
+ <span class="cline-any cline-neutral">&nbsp;</span>
562
+ <span class="cline-any cline-neutral">&nbsp;</span>
563
+ <span class="cline-any cline-neutral">&nbsp;</span>
564
+ <span class="cline-any cline-neutral">&nbsp;</span>
565
+ <span class="cline-any cline-neutral">&nbsp;</span>
566
+ <span class="cline-any cline-neutral">&nbsp;</span>
567
+ <span class="cline-any cline-neutral">&nbsp;</span>
568
+ <span class="cline-any cline-neutral">&nbsp;</span>
569
+ <span class="cline-any cline-neutral">&nbsp;</span>
570
+ <span class="cline-any cline-neutral">&nbsp;</span>
571
+ <span class="cline-any cline-neutral">&nbsp;</span>
572
+ <span class="cline-any cline-neutral">&nbsp;</span>
573
+ <span class="cline-any cline-neutral">&nbsp;</span>
574
+ <span class="cline-any cline-neutral">&nbsp;</span>
575
+ <span class="cline-any cline-neutral">&nbsp;</span>
576
+ <span class="cline-any cline-neutral">&nbsp;</span>
577
+ <span class="cline-any cline-neutral">&nbsp;</span>
578
+ <span class="cline-any cline-neutral">&nbsp;</span>
579
+ <span class="cline-any cline-neutral">&nbsp;</span>
580
+ <span class="cline-any cline-neutral">&nbsp;</span>
581
+ <span class="cline-any cline-neutral">&nbsp;</span>
582
+ <span class="cline-any cline-neutral">&nbsp;</span>
583
+ <span class="cline-any cline-neutral">&nbsp;</span>
584
+ <span class="cline-any cline-neutral">&nbsp;</span>
585
+ <span class="cline-any cline-neutral">&nbsp;</span>
586
+ <span class="cline-any cline-neutral">&nbsp;</span>
587
+ <span class="cline-any cline-neutral">&nbsp;</span>
588
+ <span class="cline-any cline-neutral">&nbsp;</span>
589
+ <span class="cline-any cline-neutral">&nbsp;</span>
590
+ <span class="cline-any cline-neutral">&nbsp;</span>
591
+ <span class="cline-any cline-neutral">&nbsp;</span>
592
+ <span class="cline-any cline-neutral">&nbsp;</span>
593
+ <span class="cline-any cline-neutral">&nbsp;</span>
594
+ <span class="cline-any cline-neutral">&nbsp;</span>
595
+ <span class="cline-any cline-neutral">&nbsp;</span>
596
+ <span class="cline-any cline-neutral">&nbsp;</span>
597
+ <span class="cline-any cline-neutral">&nbsp;</span>
598
+ <span class="cline-any cline-neutral">&nbsp;</span>
599
+ <span class="cline-any cline-neutral">&nbsp;</span>
600
+ <span class="cline-any cline-neutral">&nbsp;</span>
601
+ <span class="cline-any cline-neutral">&nbsp;</span>
602
+ <span class="cline-any cline-neutral">&nbsp;</span>
603
+ <span class="cline-any cline-neutral">&nbsp;</span>
604
+ <span class="cline-any cline-neutral">&nbsp;</span>
605
+ <span class="cline-any cline-neutral">&nbsp;</span>
606
+ <span class="cline-any cline-neutral">&nbsp;</span>
607
+ <span class="cline-any cline-neutral">&nbsp;</span>
608
+ <span class="cline-any cline-neutral">&nbsp;</span>
609
+ <span class="cline-any cline-neutral">&nbsp;</span>
610
+ <span class="cline-any cline-neutral">&nbsp;</span>
611
+ <span class="cline-any cline-neutral">&nbsp;</span>
612
+ <span class="cline-any cline-neutral">&nbsp;</span>
613
+ <span class="cline-any cline-neutral">&nbsp;</span>
614
+ <span class="cline-any cline-neutral">&nbsp;</span>
615
+ <span class="cline-any cline-neutral">&nbsp;</span>
616
+ <span class="cline-any cline-neutral">&nbsp;</span>
617
+ <span class="cline-any cline-neutral">&nbsp;</span>
618
+ <span class="cline-any cline-neutral">&nbsp;</span>
619
+ <span class="cline-any cline-neutral">&nbsp;</span>
620
+ <span class="cline-any cline-neutral">&nbsp;</span>
621
+ <span class="cline-any cline-neutral">&nbsp;</span>
622
+ <span class="cline-any cline-neutral">&nbsp;</span>
623
+ <span class="cline-any cline-neutral">&nbsp;</span>
624
+ <span class="cline-any cline-neutral">&nbsp;</span>
625
+ <span class="cline-any cline-neutral">&nbsp;</span>
626
+ <span class="cline-any cline-neutral">&nbsp;</span>
627
+ <span class="cline-any cline-neutral">&nbsp;</span>
628
+ <span class="cline-any cline-neutral">&nbsp;</span>
629
+ <span class="cline-any cline-neutral">&nbsp;</span>
630
+ <span class="cline-any cline-neutral">&nbsp;</span>
631
+ <span class="cline-any cline-neutral">&nbsp;</span>
632
+ <span class="cline-any cline-neutral">&nbsp;</span>
633
+ <span class="cline-any cline-neutral">&nbsp;</span>
634
+ <span class="cline-any cline-neutral">&nbsp;</span>
635
+ <span class="cline-any cline-neutral">&nbsp;</span>
636
+ <span class="cline-any cline-neutral">&nbsp;</span>
637
+ <span class="cline-any cline-neutral">&nbsp;</span>
638
+ <span class="cline-any cline-neutral">&nbsp;</span>
639
+ <span class="cline-any cline-neutral">&nbsp;</span>
640
+ <span class="cline-any cline-neutral">&nbsp;</span>
641
+ <span class="cline-any cline-neutral">&nbsp;</span>
642
+ <span class="cline-any cline-neutral">&nbsp;</span>
643
+ <span class="cline-any cline-neutral">&nbsp;</span>
644
+ <span class="cline-any cline-neutral">&nbsp;</span>
645
+ <span class="cline-any cline-neutral">&nbsp;</span>
646
+ <span class="cline-any cline-neutral">&nbsp;</span>
647
+ <span class="cline-any cline-neutral">&nbsp;</span>
648
+ <span class="cline-any cline-neutral">&nbsp;</span>
649
+ <span class="cline-any cline-neutral">&nbsp;</span>
650
+ <span class="cline-any cline-neutral">&nbsp;</span>
651
+ <span class="cline-any cline-neutral">&nbsp;</span>
652
+ <span class="cline-any cline-neutral">&nbsp;</span>
653
+ <span class="cline-any cline-neutral">&nbsp;</span>
654
+ <span class="cline-any cline-neutral">&nbsp;</span>
655
+ <span class="cline-any cline-neutral">&nbsp;</span>
656
+ <span class="cline-any cline-neutral">&nbsp;</span>
657
+ <span class="cline-any cline-neutral">&nbsp;</span>
658
+ <span class="cline-any cline-neutral">&nbsp;</span>
659
+ <span class="cline-any cline-neutral">&nbsp;</span>
660
+ <span class="cline-any cline-neutral">&nbsp;</span>
661
+ <span class="cline-any cline-neutral">&nbsp;</span>
662
+ <span class="cline-any cline-neutral">&nbsp;</span>
663
+ <span class="cline-any cline-neutral">&nbsp;</span>
664
+ <span class="cline-any cline-neutral">&nbsp;</span>
665
+ <span class="cline-any cline-neutral">&nbsp;</span>
666
+ <span class="cline-any cline-neutral">&nbsp;</span>
667
+ <span class="cline-any cline-neutral">&nbsp;</span>
668
+ <span class="cline-any cline-neutral">&nbsp;</span>
669
+ <span class="cline-any cline-neutral">&nbsp;</span>
670
+ <span class="cline-any cline-neutral">&nbsp;</span>
671
+ <span class="cline-any cline-neutral">&nbsp;</span>
672
+ <span class="cline-any cline-neutral">&nbsp;</span>
673
+ <span class="cline-any cline-neutral">&nbsp;</span>
674
+ <span class="cline-any cline-neutral">&nbsp;</span>
675
+ <span class="cline-any cline-neutral">&nbsp;</span>
676
+ <span class="cline-any cline-neutral">&nbsp;</span>
677
+ <span class="cline-any cline-neutral">&nbsp;</span>
678
+ <span class="cline-any cline-neutral">&nbsp;</span>
679
+ <span class="cline-any cline-neutral">&nbsp;</span>
680
+ <span class="cline-any cline-neutral">&nbsp;</span>
681
+ <span class="cline-any cline-neutral">&nbsp;</span>
682
+ <span class="cline-any cline-neutral">&nbsp;</span>
683
+ <span class="cline-any cline-neutral">&nbsp;</span>
684
+ <span class="cline-any cline-neutral">&nbsp;</span>
685
+ <span class="cline-any cline-neutral">&nbsp;</span>
686
+ <span class="cline-any cline-neutral">&nbsp;</span>
687
+ <span class="cline-any cline-neutral">&nbsp;</span>
688
+ <span class="cline-any cline-neutral">&nbsp;</span>
689
+ <span class="cline-any cline-neutral">&nbsp;</span>
690
+ <span class="cline-any cline-neutral">&nbsp;</span>
691
+ <span class="cline-any cline-neutral">&nbsp;</span>
692
+ <span class="cline-any cline-neutral">&nbsp;</span>
693
+ <span class="cline-any cline-neutral">&nbsp;</span>
694
+ <span class="cline-any cline-neutral">&nbsp;</span>
695
+ <span class="cline-any cline-neutral">&nbsp;</span>
696
+ <span class="cline-any cline-neutral">&nbsp;</span>
697
+ <span class="cline-any cline-neutral">&nbsp;</span>
698
+ <span class="cline-any cline-neutral">&nbsp;</span>
699
+ <span class="cline-any cline-neutral">&nbsp;</span>
700
+ <span class="cline-any cline-neutral">&nbsp;</span>
701
+ <span class="cline-any cline-neutral">&nbsp;</span>
702
+ <span class="cline-any cline-neutral">&nbsp;</span>
703
+ <span class="cline-any cline-neutral">&nbsp;</span>
704
+ <span class="cline-any cline-neutral">&nbsp;</span>
705
+ <span class="cline-any cline-neutral">&nbsp;</span>
706
+ <span class="cline-any cline-neutral">&nbsp;</span>
707
+ <span class="cline-any cline-neutral">&nbsp;</span>
708
+ <span class="cline-any cline-neutral">&nbsp;</span>
709
+ <span class="cline-any cline-neutral">&nbsp;</span>
710
+ <span class="cline-any cline-neutral">&nbsp;</span>
711
+ <span class="cline-any cline-neutral">&nbsp;</span>
712
+ <span class="cline-any cline-neutral">&nbsp;</span>
713
+ <span class="cline-any cline-neutral">&nbsp;</span>
714
+ <span class="cline-any cline-neutral">&nbsp;</span>
715
+ <span class="cline-any cline-neutral">&nbsp;</span>
716
+ <span class="cline-any cline-neutral">&nbsp;</span>
717
+ <span class="cline-any cline-neutral">&nbsp;</span>
718
+ <span class="cline-any cline-neutral">&nbsp;</span>
719
+ <span class="cline-any cline-neutral">&nbsp;</span>
720
+ <span class="cline-any cline-neutral">&nbsp;</span>
721
+ <span class="cline-any cline-neutral">&nbsp;</span>
722
+ <span class="cline-any cline-neutral">&nbsp;</span>
723
+ <span class="cline-any cline-neutral">&nbsp;</span>
724
+ <span class="cline-any cline-neutral">&nbsp;</span>
725
+ <span class="cline-any cline-neutral">&nbsp;</span>
726
+ <span class="cline-any cline-neutral">&nbsp;</span>
727
+ <span class="cline-any cline-neutral">&nbsp;</span>
728
+ <span class="cline-any cline-neutral">&nbsp;</span>
729
+ <span class="cline-any cline-neutral">&nbsp;</span>
730
+ <span class="cline-any cline-neutral">&nbsp;</span>
731
+ <span class="cline-any cline-neutral">&nbsp;</span>
732
+ <span class="cline-any cline-neutral">&nbsp;</span>
733
+ <span class="cline-any cline-neutral">&nbsp;</span>
734
+ <span class="cline-any cline-neutral">&nbsp;</span>
735
+ <span class="cline-any cline-neutral">&nbsp;</span>
736
+ <span class="cline-any cline-neutral">&nbsp;</span>
737
+ <span class="cline-any cline-neutral">&nbsp;</span>
738
+ <span class="cline-any cline-neutral">&nbsp;</span>
739
+ <span class="cline-any cline-neutral">&nbsp;</span>
740
+ <span class="cline-any cline-neutral">&nbsp;</span>
741
+ <span class="cline-any cline-neutral">&nbsp;</span>
742
+ <span class="cline-any cline-neutral">&nbsp;</span>
743
+ <span class="cline-any cline-neutral">&nbsp;</span>
744
+ <span class="cline-any cline-neutral">&nbsp;</span>
745
+ <span class="cline-any cline-neutral">&nbsp;</span>
746
+ <span class="cline-any cline-neutral">&nbsp;</span>
747
+ <span class="cline-any cline-neutral">&nbsp;</span>
748
+ <span class="cline-any cline-neutral">&nbsp;</span>
749
+ <span class="cline-any cline-neutral">&nbsp;</span>
750
+ <span class="cline-any cline-neutral">&nbsp;</span>
751
+ <span class="cline-any cline-neutral">&nbsp;</span>
752
+ <span class="cline-any cline-neutral">&nbsp;</span>
753
+ <span class="cline-any cline-neutral">&nbsp;</span>
754
+ <span class="cline-any cline-neutral">&nbsp;</span>
755
+ <span class="cline-any cline-neutral">&nbsp;</span>
756
+ <span class="cline-any cline-neutral">&nbsp;</span>
757
+ <span class="cline-any cline-neutral">&nbsp;</span>
758
+ <span class="cline-any cline-neutral">&nbsp;</span>
759
+ <span class="cline-any cline-neutral">&nbsp;</span>
760
+ <span class="cline-any cline-neutral">&nbsp;</span>
761
+ <span class="cline-any cline-neutral">&nbsp;</span>
762
+ <span class="cline-any cline-neutral">&nbsp;</span>
763
+ <span class="cline-any cline-neutral">&nbsp;</span>
764
+ <span class="cline-any cline-neutral">&nbsp;</span>
765
+ <span class="cline-any cline-neutral">&nbsp;</span>
766
+ <span class="cline-any cline-neutral">&nbsp;</span>
767
+ <span class="cline-any cline-neutral">&nbsp;</span>
768
+ <span class="cline-any cline-neutral">&nbsp;</span>
769
+ <span class="cline-any cline-neutral">&nbsp;</span>
770
+ <span class="cline-any cline-neutral">&nbsp;</span>
771
+ <span class="cline-any cline-neutral">&nbsp;</span>
772
+ <span class="cline-any cline-neutral">&nbsp;</span>
773
+ <span class="cline-any cline-neutral">&nbsp;</span>
774
+ <span class="cline-any cline-neutral">&nbsp;</span>
775
+ <span class="cline-any cline-neutral">&nbsp;</span>
776
+ <span class="cline-any cline-neutral">&nbsp;</span>
777
+ <span class="cline-any cline-neutral">&nbsp;</span>
778
+ <span class="cline-any cline-neutral">&nbsp;</span>
779
+ <span class="cline-any cline-neutral">&nbsp;</span>
780
+ <span class="cline-any cline-neutral">&nbsp;</span>
781
+ <span class="cline-any cline-neutral">&nbsp;</span>
782
+ <span class="cline-any cline-neutral">&nbsp;</span>
783
+ <span class="cline-any cline-neutral">&nbsp;</span>
784
+ <span class="cline-any cline-neutral">&nbsp;</span>
785
+ <span class="cline-any cline-neutral">&nbsp;</span>
786
+ <span class="cline-any cline-neutral">&nbsp;</span>
787
+ <span class="cline-any cline-neutral">&nbsp;</span>
788
+ <span class="cline-any cline-neutral">&nbsp;</span>
789
+ <span class="cline-any cline-neutral">&nbsp;</span>
790
+ <span class="cline-any cline-neutral">&nbsp;</span>
791
+ <span class="cline-any cline-neutral">&nbsp;</span>
792
+ <span class="cline-any cline-neutral">&nbsp;</span>
793
+ <span class="cline-any cline-neutral">&nbsp;</span>
794
+ <span class="cline-any cline-neutral">&nbsp;</span>
795
+ <span class="cline-any cline-neutral">&nbsp;</span>
796
+ <span class="cline-any cline-neutral">&nbsp;</span>
797
+ <span class="cline-any cline-neutral">&nbsp;</span>
798
+ <span class="cline-any cline-neutral">&nbsp;</span>
799
+ <span class="cline-any cline-neutral">&nbsp;</span>
800
+ <span class="cline-any cline-neutral">&nbsp;</span>
801
+ <span class="cline-any cline-neutral">&nbsp;</span>
802
+ <span class="cline-any cline-neutral">&nbsp;</span>
803
+ <span class="cline-any cline-neutral">&nbsp;</span>
804
+ <span class="cline-any cline-neutral">&nbsp;</span>
805
+ <span class="cline-any cline-neutral">&nbsp;</span>
806
+ <span class="cline-any cline-neutral">&nbsp;</span>
807
+ <span class="cline-any cline-neutral">&nbsp;</span>
808
+ <span class="cline-any cline-neutral">&nbsp;</span>
809
+ <span class="cline-any cline-neutral">&nbsp;</span>
810
+ <span class="cline-any cline-neutral">&nbsp;</span>
811
+ <span class="cline-any cline-neutral">&nbsp;</span>
812
+ <span class="cline-any cline-neutral">&nbsp;</span>
813
+ <span class="cline-any cline-neutral">&nbsp;</span>
814
+ <span class="cline-any cline-neutral">&nbsp;</span>
815
+ <span class="cline-any cline-neutral">&nbsp;</span>
816
+ <span class="cline-any cline-neutral">&nbsp;</span>
817
+ <span class="cline-any cline-neutral">&nbsp;</span>
818
+ <span class="cline-any cline-neutral">&nbsp;</span>
819
+ <span class="cline-any cline-neutral">&nbsp;</span>
820
+ <span class="cline-any cline-neutral">&nbsp;</span>
821
+ <span class="cline-any cline-neutral">&nbsp;</span>
822
+ <span class="cline-any cline-neutral">&nbsp;</span>
823
+ <span class="cline-any cline-neutral">&nbsp;</span>
824
+ <span class="cline-any cline-neutral">&nbsp;</span>
825
+ <span class="cline-any cline-neutral">&nbsp;</span>
826
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">&lt;template&gt;
827
+ &lt;div&gt;
828
+ &lt;h2 v-if="block.metadata.config.title" tabindex="0"&gt;
829
+ {{ block.metadata.config.title }}
830
+ &lt;/h2&gt;
831
+ &lt;p v-if="block.metadata.config.description" tabindex="0" class="pt-3"&gt;
832
+ {{ block.metadata.config.description }}
833
+ &lt;/p&gt;
834
+ &nbsp;
835
+ &lt;v-card v-if="render &amp;&amp; !hasSource"&gt;
836
+ &lt;v-card-title&gt;
837
+ &lt;v-icon class="mr-2"&gt;mdi-cloud-question&lt;/v-icon&gt;
838
+ {{
839
+ $t(
840
+ 'windward.core.components.content.blocks.video.not_configured_title'
841
+ )
842
+ }}
843
+ &lt;/v-card-title&gt;
844
+ &lt;v-card-text&gt;{{
845
+ $t('windward.core.components.content.blocks.video.edit_prompt')
846
+ }}&lt;/v-card-text&gt;
847
+ &lt;/v-card&gt;
848
+ &nbsp;
849
+ &lt;v-skeleton-loader
850
+ v-if="!render &amp;&amp; !hasSource"
851
+ type="image, image, list-item-avatar"
852
+ class="reload-skeleton"
853
+ &gt;&lt;/v-skeleton-loader&gt;
854
+ &nbsp;
855
+ &lt;VuetifyPlayer
856
+ v-if="hasSource"
857
+ :language="$i18n &amp;&amp; $i18n.locale ? $i18n.locale : 'en-US'"
858
+ :type="block.metadata.config.type"
859
+ :playlist="linkedPlaylist"
860
+ :autoplay="block.metadata.config.attributes.autoplay"
861
+ :autopictureinpicture="
862
+ block.metadata.config.attributes.autopictureinpicture
863
+ "
864
+ :controls="block.metadata.config.attributes.controls"
865
+ :controlslist="block.metadata.config.attributes.controlslist"
866
+ :crossorigin="block.metadata.config.attributes.crossorigin"
867
+ :disablepictureinpicture="
868
+ block.metadata.config.attributes.disablepictureinpicture
869
+ "
870
+ :disableremoteplayback="
871
+ block.metadata.config.attributes.disableremoteplayback
872
+ "
873
+ :height="block.metadata.config.attributes.height"
874
+ :width="block.metadata.config.attributes.width"
875
+ :rewind="block.metadata.config.attributes.rewind"
876
+ :loop="block.metadata.config.attributes.loop"
877
+ :muted="block.metadata.config.attributes.muted"
878
+ :playsinline="block.metadata.config.attributes.playsinline"
879
+ :poster="linkedPosterPublicUrl"
880
+ :preload="block.metadata.config.attributes.preload"
881
+ :captionsmenu="block.metadata.config.attributes.captionsmenu"
882
+ :playlistmenu="block.metadata.config.attributes.playlistmenu"
883
+ :playlistautoadvance="
884
+ block.metadata.config.attributes.playlistautoadvance
885
+ "
886
+ :playbackrates="block.metadata.config.attributes.playbackrates"
887
+ @seeking="onSeeking"
888
+ @timeupdate="onTimeupdate"
889
+ /&gt;
890
+ &lt;!-- display first note in the playlist for now --&gt;
891
+ &lt;v-alert
892
+ v-if="notes.length &gt; 0"
893
+ :color="
894
+ $vuetify.theme.isDark
895
+ ? 'v-navigation-drawer'
896
+ : 'blue-grey lighten-5'
897
+ "
898
+ &gt;
899
+ &lt;TextViewer v-model="notes[0]"&gt;&lt;/TextViewer&gt;
900
+ &lt;/v-alert&gt;
901
+ &lt;/div&gt;
902
+ &lt;/template&gt;
903
+ &nbsp;
904
+ &lt;script&gt;
905
+ import _ from 'lodash'
906
+ import VuetifyPlayer from '@mindedge/vuetify-player'
907
+ import BaseContentBlock from '~/components/Content/Blocks/BaseContentBlock'
908
+ import TextViewer from '~/components/Text/TextViewer'
909
+ import he from 'he'
910
+ &nbsp;
911
+ export default {
912
+ name: 'ContentBlockVideo',
913
+ components: {
914
+ TextViewer,
915
+ VuetifyPlayer,
916
+ },
917
+ extends: BaseContentBlock,
918
+ computed: {
919
+ hasSource() {
920
+ // __isDirty is used to communicate from the settings panel that a source / caption
921
+ // has changed and to reload the video player
922
+ if (this.block.metadata.config.__isDirty) {
923
+ return false
924
+ }
925
+ &nbsp;
926
+ return !_.isEmpty(
927
+ _.get(
928
+ this.block.metadata.config,
929
+ 'playlist[0].sources[0]',
930
+ null
931
+ )
932
+ )
933
+ },
934
+ linkedPosterPublicUrl() {
935
+ const file = this.resolveAsset(
936
+ _.get(this.block, 'metadata.config.attributes.poster', null)
937
+ )
938
+ return _.get(file, 'asset.public_url')
939
+ },
940
+ notes() {
941
+ const playlist = this.block.metadata.config.playlist
942
+ let result = []
943
+ for (const index in playlist) {
944
+ for (const sourceIndex in playlist[index].sources) {
945
+ let file = this.resolveAsset(
946
+ playlist[index].sources[sourceIndex]
947
+ )
948
+ if (
949
+ !_.isEmpty(_.get(file, 'asset.metadata.notes')) &amp;&amp;
950
+ //check the file notes are actually text and not an empty div
951
+ this.hasWords(_.get(file, 'asset.metadata.notes'))
952
+ ) {
953
+ result.push(_.get(file, 'asset.metadata.notes'))
954
+ }
955
+ }
956
+ }
957
+ return result
958
+ },
959
+ /**
960
+ * Resolve assets to their playlist items
961
+ */
962
+ linkedPlaylist() {
963
+ const playlist = _.cloneDeep(this.block.metadata.config.playlist)
964
+ for (const index in playlist) {
965
+ for (const sourceIndex in playlist[index].sources) {
966
+ let file = this.resolveAsset(
967
+ playlist[index].sources[sourceIndex]
968
+ )
969
+ &nbsp;
970
+ playlist[index].sources[sourceIndex] = {
971
+ src: _.get(file, 'asset.public_url', ''),
972
+ type: _.get(file, 'asset.metadata.mime', ''),
973
+ }
974
+ &nbsp;
975
+ // If there's linked captions and there's no hard-set captions
976
+ // Fallback to the linked captions
977
+ const linkedCaptions = this.getLinkedCaptions(file)
978
+ if (playlist[index].tracks.length === 0 &amp;&amp; linkedCaptions) {
979
+ playlist[index].tracks.push(linkedCaptions)
980
+ }
981
+ }
982
+ &nbsp;
983
+ for (const trackIndex in playlist[index].tracks) {
984
+ let file = this.resolveAsset(
985
+ playlist[index].tracks[trackIndex]
986
+ )
987
+ &nbsp;
988
+ playlist[index].tracks[trackIndex] = {
989
+ src: _.get(file, 'asset.public_url', ''),
990
+ kind: 'captions',
991
+ srclang: 'en-US',
992
+ default: true,
993
+ }
994
+ }
995
+ for (const adIndex in playlist[index].ads) {
996
+ for (const adSourceIndex in playlist[index].ads[adIndex]
997
+ .sources) {
998
+ let file = this.resolveAsset(
999
+ playlist[index].ads[adIndex].sources[adSourceIndex]
1000
+ )
1001
+ &nbsp;
1002
+ playlist[index].ads[adIndex].sources[adSourceIndex] = {
1003
+ src: _.get(file, 'asset.public_url', ''),
1004
+ type: _.get(file, 'asset.metadata.mime', ''),
1005
+ }
1006
+ &nbsp;
1007
+ // If there's linked captions and there's no hard-set captions
1008
+ // Fallback to the linked captions
1009
+ const linkedCaptions = this.getLinkedCaptions(file)
1010
+ if (
1011
+ playlist[index].ads[adIndex].tracks.length === 0 &amp;&amp;
1012
+ linkedCaptions
1013
+ ) {
1014
+ playlist[index].ads[adIndex].tracks.push(
1015
+ linkedCaptions
1016
+ )
1017
+ }
1018
+ }
1019
+ &nbsp;
1020
+ for (const adTrackIndex in playlist[index].ads[adIndex]
1021
+ .tracks) {
1022
+ let file = this.resolveAsset(
1023
+ playlist[index].ads[adIndex].tracks[adTrackIndex]
1024
+ )
1025
+ &nbsp;
1026
+ playlist[index].ads[adIndex].tracks[adTrackIndex] = {
1027
+ src: _.get(file, 'asset.public_url', ''),
1028
+ kind: 'captions',
1029
+ srclang: 'en-US',
1030
+ default: true,
1031
+ }
1032
+ }
1033
+ }
1034
+ }
1035
+ // reset adds to empty array as we aren't using these right now
1036
+ // left code above in case we want to implement later
1037
+ playlist.forEach((element) =&gt; {
1038
+ element.ads = []
1039
+ })
1040
+ return playlist
1041
+ },
1042
+ },
1043
+ data() {
1044
+ return {
1045
+ fileTab: null,
1046
+ // Default config settings
1047
+ defaultConfig: {
1048
+ title: '',
1049
+ description: '',
1050
+ // Default settings for new blocks
1051
+ // This will be overridden in beforeMount()
1052
+ type: 'video', // Allowed video|audio. In audio mode the player has a max-height of 40px
1053
+ attributes: {
1054
+ autoplay: false, // Autoplay on load. It's in the spec but DON'T USE THIS
1055
+ autopictureinpicture: false, // Start with picture in picture mode
1056
+ controls: true, // Show video controls. When false only play/pause allowed but clicking on the video itself
1057
+ controlslist: 'nodownload noremoteplayback', // Space separated string per &lt;video&gt;. Allowed 'nodownload nofullscreen noremoteplayback'
1058
+ crossorigin: 'anonymous',
1059
+ disablepictureinpicture: true, // Shows the picture in picture button
1060
+ disableremoteplayback: true, // Shows the remote playback button but functionality does not exist when clicked
1061
+ height: 'auto',
1062
+ width: '100%',
1063
+ rewind: true, // Enabled the rewind 10s button
1064
+ loop: false, // Loop the video on completion
1065
+ muted: false, // Start the video muted
1066
+ playsinline: false, // Force inline &amp; disable fullscreen
1067
+ poster: '', // Overridden with the playlist.poster if one is set there
1068
+ preload: '',
1069
+ captionsmenu: true, // Show the captions below the video
1070
+ playlistmenu: true, // Show the playlist menu if there's multiple videos
1071
+ playlistautoadvance: true, // Play the next source group
1072
+ playbackrates: [0.5, 1, 1.5, 2], // Default playback speeds
1073
+ },
1074
+ playlist: [
1075
+ /*{
1076
+ name: '', // The video name to appear on playlists
1077
+ poster: '', // A video specific poster in the playlist
1078
+ ads: [
1079
+ {
1080
+ play_at_percent: 0,
1081
+ sources: [
1082
+ {
1083
+ src: "https://domain.test/ad_example.mp4",
1084
+ type: "video/mp4",
1085
+ },
1086
+ ],
1087
+ tracks: [
1088
+ {
1089
+ src: "https://domain.test/ad_example-US.vtt",
1090
+ kind: "captions",
1091
+ srclang: "en-US",
1092
+ default: true,
1093
+ },
1094
+ ],
1095
+ },
1096
+ ],
1097
+ sources: [
1098
+ {
1099
+ src: "https://domain.test/example.mp4",
1100
+ type: "video/mp4",
1101
+ },
1102
+ ],
1103
+ tracks: [
1104
+ {
1105
+ src: "https://domain.test/example_en-US.vtt",
1106
+ kind: "captions",
1107
+ srclang: "en-US",
1108
+ default: true,
1109
+ },
1110
+ ],
1111
+ },*/
1112
+ ],
1113
+ },
1114
+ tracking: {
1115
+ hasSkipped: false,
1116
+ percentComplete: 0,
1117
+ },
1118
+ }
1119
+ },
1120
+ beforeMount() {
1121
+ // Apply the default config
1122
+ if (_.isEmpty(this.block.metadata.config)) {
1123
+ this.block.metadata.config = this.defaultConfig
1124
+ }
1125
+ // If no playback rates were set then re-init it as an array with the rate 1 or normal only
1126
+ if (
1127
+ _.isEmpty(
1128
+ _.get(this.block, 'metadata.config.attributes.playbackrates')
1129
+ )
1130
+ ) {
1131
+ this.block.metadata.config.attributes.playbackrates = [1]
1132
+ }
1133
+ if (_.isEmpty(this.block.assets)) {
1134
+ this.$set(this.block, 'assets', [])
1135
+ }
1136
+ },
1137
+ methods: {
1138
+ onSeeking(e) {
1139
+ this.tracking.hasSkipped = true
1140
+ },
1141
+ onTimeupdate(e) {
1142
+ // If you were seeking / skipped parts only "resume" if you start back from where you left off
1143
+ if (e.current_percent &lt;= this.tracking.percentComplete) {
1144
+ this.tracking.hasSkipped = false
1145
+ }
1146
+ &nbsp;
1147
+ if (!this.tracking.hasSkipped) {
1148
+ if (e.current_percent &gt;= this.tracking.percentComplete) {
1149
+ this.tracking.percentComplete = e.current_percent
1150
+ }
1151
+ &nbsp;
1152
+ if (!this.completed &amp;&amp; this.tracking.percentComplete &gt;= 90) {
1153
+ this.emitCompleted()
1154
+ }
1155
+ }
1156
+ },
1157
+ async onBeforeSave() {
1158
+ this.block.body = 'video'
1159
+ },
1160
+ getLinkedCaptions(file) {
1161
+ // Check to see if the video source has a linked asset and it's a vtt file
1162
+ const linkedCaption = _.find(
1163
+ _.get(file, 'asset.linked_assets', []),
1164
+ function (f) {
1165
+ return _.get(f, 'asset.metadata.extension', '') === 'vtt'
1166
+ }
1167
+ )
1168
+ &nbsp;
1169
+ if (linkedCaption) {
1170
+ const foundAsset = this.block.assets.find((a) =&gt; {
1171
+ return a.file_asset_id === linkedCaption.file_asset_id
1172
+ })
1173
+ &nbsp;
1174
+ // The linked captions aren't part of the block.assets
1175
+ // Add it so the block knows how to properly load it
1176
+ if (!foundAsset) {
1177
+ this.block.assets.push(_.cloneDeep(linkedCaption))
1178
+ }
1179
+ }
1180
+ &nbsp;
1181
+ return linkedCaption || null
1182
+ },
1183
+ &nbsp;
1184
+ /**
1185
+ * Check if the given text has words, omitting HTML tags and HTML entities
1186
+ * @param {string} text - The text to check
1187
+ * @returns {boolean} - True if the text has words, false otherwise
1188
+ */
1189
+ hasWords(text) {
1190
+ const strippedText = he
1191
+ .decode(text)
1192
+ .replace(/&lt;\/?[^&gt;]+(&gt;|$)/g, '') // Remove HTML tags
1193
+ .trim()
1194
+ return /\b\w+\b/.test(strippedText) // Check if there are any words
1195
+ },
1196
+ },
1197
+ }
1198
+ &lt;/script&gt;
1199
+ &nbsp;
1200
+ &lt;style scoped&gt;
1201
+ .reload-skeleton {
1202
+ aspect-ratio: 16 / 9;
1203
+ overflow: hidden;
1204
+ }
1205
+ &lt;/style&gt;
1206
+ &nbsp;</pre></td></tr></table></pre>
1207
+
1208
+ <div class='push'></div><!-- for sticky footer -->
1209
+ </div><!-- /wrapper -->
1210
+ <div class='footer quiet pad2 space-top1 center small'>
1211
+ Code coverage generated by
1212
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1213
+ at Thu Dec 05 2024 15:22:58 GMT-0500 (Eastern Standard Time)
1214
+ </div>
1215
+ <script src="../../../prettify.js"></script>
1216
+ <script>
1217
+ window.onload = function () {
1218
+ prettyPrint();
1219
+ };
1220
+ </script>
1221
+ <script src="../../../sorter.js"></script>
1222
+ <script src="../../../block-navigation.js"></script>
1223
+ </body>
1224
+ </html>
1225
+