@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,1033 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for helpers/MathHelper.ts</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">helpers</a> MathHelper.ts</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'>94/94</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'>12/12</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'>25/25</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'>91/91</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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">3x</span>
383
+ <span class="cline-any cline-yes">3x</span>
384
+ <span class="cline-any cline-yes">3x</span>
385
+ <span class="cline-any cline-yes">3x</span>
386
+ <span class="cline-any cline-neutral">&nbsp;</span>
387
+ <span class="cline-any cline-neutral">&nbsp;</span>
388
+ <span class="cline-any cline-neutral">&nbsp;</span>
389
+ <span class="cline-any cline-yes">3x</span>
390
+ <span class="cline-any cline-neutral">&nbsp;</span>
391
+ <span class="cline-any cline-neutral">&nbsp;</span>
392
+ <span class="cline-any cline-neutral">&nbsp;</span>
393
+ <span class="cline-any cline-neutral">&nbsp;</span>
394
+ <span class="cline-any cline-neutral">&nbsp;</span>
395
+ <span class="cline-any cline-neutral">&nbsp;</span>
396
+ <span class="cline-any cline-neutral">&nbsp;</span>
397
+ <span class="cline-any cline-neutral">&nbsp;</span>
398
+ <span class="cline-any cline-yes">3x</span>
399
+ <span class="cline-any cline-yes">2x</span>
400
+ <span class="cline-any cline-neutral">&nbsp;</span>
401
+ <span class="cline-any cline-yes">2x</span>
402
+ <span class="cline-any cline-neutral">&nbsp;</span>
403
+ <span class="cline-any cline-neutral">&nbsp;</span>
404
+ <span class="cline-any cline-neutral">&nbsp;</span>
405
+ <span class="cline-any cline-neutral">&nbsp;</span>
406
+ <span class="cline-any cline-neutral">&nbsp;</span>
407
+ <span class="cline-any cline-neutral">&nbsp;</span>
408
+ <span class="cline-any cline-neutral">&nbsp;</span>
409
+ <span class="cline-any cline-neutral">&nbsp;</span>
410
+ <span class="cline-any cline-neutral">&nbsp;</span>
411
+ <span class="cline-any cline-yes">3x</span>
412
+ <span class="cline-any cline-yes">2x</span>
413
+ <span class="cline-any cline-neutral">&nbsp;</span>
414
+ <span class="cline-any cline-yes">2x</span>
415
+ <span class="cline-any cline-neutral">&nbsp;</span>
416
+ <span class="cline-any cline-neutral">&nbsp;</span>
417
+ <span class="cline-any cline-neutral">&nbsp;</span>
418
+ <span class="cline-any cline-neutral">&nbsp;</span>
419
+ <span class="cline-any cline-neutral">&nbsp;</span>
420
+ <span class="cline-any cline-neutral">&nbsp;</span>
421
+ <span class="cline-any cline-neutral">&nbsp;</span>
422
+ <span class="cline-any cline-neutral">&nbsp;</span>
423
+ <span class="cline-any cline-neutral">&nbsp;</span>
424
+ <span class="cline-any cline-yes">3x</span>
425
+ <span class="cline-any cline-yes">2x</span>
426
+ <span class="cline-any cline-neutral">&nbsp;</span>
427
+ <span class="cline-any cline-yes">2x</span>
428
+ <span class="cline-any cline-neutral">&nbsp;</span>
429
+ <span class="cline-any cline-neutral">&nbsp;</span>
430
+ <span class="cline-any cline-neutral">&nbsp;</span>
431
+ <span class="cline-any cline-neutral">&nbsp;</span>
432
+ <span class="cline-any cline-neutral">&nbsp;</span>
433
+ <span class="cline-any cline-neutral">&nbsp;</span>
434
+ <span class="cline-any cline-neutral">&nbsp;</span>
435
+ <span class="cline-any cline-neutral">&nbsp;</span>
436
+ <span class="cline-any cline-yes">3x</span>
437
+ <span class="cline-any cline-yes">5x</span>
438
+ <span class="cline-any cline-yes">5x</span>
439
+ <span class="cline-any cline-yes">5x</span>
440
+ <span class="cline-any cline-yes">2x</span>
441
+ <span class="cline-any cline-yes">2x</span>
442
+ <span class="cline-any cline-neutral">&nbsp;</span>
443
+ <span class="cline-any cline-neutral">&nbsp;</span>
444
+ <span class="cline-any cline-neutral">&nbsp;</span>
445
+ <span class="cline-any cline-neutral">&nbsp;</span>
446
+ <span class="cline-any cline-neutral">&nbsp;</span>
447
+ <span class="cline-any cline-neutral">&nbsp;</span>
448
+ <span class="cline-any cline-yes">5x</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-yes">3x</span>
461
+ <span class="cline-any cline-yes">3x</span>
462
+ <span class="cline-any cline-yes">3x</span>
463
+ <span class="cline-any cline-yes">2x</span>
464
+ <span class="cline-any cline-neutral">&nbsp;</span>
465
+ <span class="cline-any cline-yes">3x</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-yes">3x</span>
477
+ <span class="cline-any cline-yes">4x</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-yes">15x</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-yes">3x</span>
492
+ <span class="cline-any cline-yes">3x</span>
493
+ <span class="cline-any cline-yes">3x</span>
494
+ <span class="cline-any cline-neutral">&nbsp;</span>
495
+ <span class="cline-any cline-yes">3x</span>
496
+ <span class="cline-any cline-yes">3x</span>
497
+ <span class="cline-any cline-yes">4x</span>
498
+ <span class="cline-any cline-yes">4x</span>
499
+ <span class="cline-any cline-yes">3x</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-yes">3x</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-yes">3x</span>
513
+ <span class="cline-any cline-neutral">&nbsp;</span>
514
+ <span class="cline-any cline-yes">1x</span>
515
+ <span class="cline-any cline-neutral">&nbsp;</span>
516
+ <span class="cline-any cline-yes">1x</span>
517
+ <span class="cline-any cline-neutral">&nbsp;</span>
518
+ <span class="cline-any cline-neutral">&nbsp;</span>
519
+ <span class="cline-any cline-neutral">&nbsp;</span>
520
+ <span class="cline-any cline-neutral">&nbsp;</span>
521
+ <span class="cline-any cline-neutral">&nbsp;</span>
522
+ <span class="cline-any cline-neutral">&nbsp;</span>
523
+ <span class="cline-any cline-neutral">&nbsp;</span>
524
+ <span class="cline-any cline-neutral">&nbsp;</span>
525
+ <span class="cline-any cline-neutral">&nbsp;</span>
526
+ <span class="cline-any cline-yes">3x</span>
527
+ <span class="cline-any cline-yes">3x</span>
528
+ <span class="cline-any cline-neutral">&nbsp;</span>
529
+ <span class="cline-any cline-yes">3x</span>
530
+ <span class="cline-any cline-yes">3x</span>
531
+ <span class="cline-any cline-yes">2x</span>
532
+ <span class="cline-any cline-yes">3x</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-yes">3x</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-yes">3x</span>
554
+ <span class="cline-any cline-yes">2x</span>
555
+ <span class="cline-any cline-neutral">&nbsp;</span>
556
+ <span class="cline-any cline-yes">2x</span>
557
+ <span class="cline-any cline-yes">2x</span>
558
+ <span class="cline-any cline-yes">1x</span>
559
+ <span class="cline-any cline-yes">1x</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-yes">2x</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-yes">3x</span>
577
+ <span class="cline-any cline-yes">3x</span>
578
+ <span class="cline-any cline-neutral">&nbsp;</span>
579
+ <span class="cline-any cline-yes">3x</span>
580
+ <span class="cline-any cline-yes">3x</span>
581
+ <span class="cline-any cline-yes">2x</span>
582
+ <span class="cline-any cline-yes">2x</span>
583
+ <span class="cline-any cline-yes">2x</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-yes">3x</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-yes">3x</span>
606
+ <span class="cline-any cline-yes">2x</span>
607
+ <span class="cline-any cline-neutral">&nbsp;</span>
608
+ <span class="cline-any cline-yes">2x</span>
609
+ <span class="cline-any cline-yes">2x</span>
610
+ <span class="cline-any cline-yes">1x</span>
611
+ <span class="cline-any cline-yes">1x</span>
612
+ <span class="cline-any cline-yes">1x</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-yes">2x</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-yes">3x</span>
630
+ <span class="cline-any cline-yes">2x</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-yes">3x</span>
644
+ <span class="cline-any cline-yes">2x</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-yes">3x</span>
658
+ <span class="cline-any cline-yes">1x</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-yes">3x</span>
669
+ <span class="cline-any cline-yes">2x</span>
670
+ <span class="cline-any cline-neutral">&nbsp;</span>
671
+ <span class="cline-any cline-yes">2x</span>
672
+ <span class="cline-any cline-yes">2x</span>
673
+ <span class="cline-any cline-yes">1x</span>
674
+ <span class="cline-any cline-yes">1x</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-yes">1x</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-yes">3x</span>
688
+ <span class="cline-any cline-yes">2x</span>
689
+ <span class="cline-any cline-neutral">&nbsp;</span>
690
+ <span class="cline-any cline-yes">2x</span>
691
+ <span class="cline-any cline-yes">2x</span>
692
+ <span class="cline-any cline-yes">1x</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-yes">1x</span>
696
+ <span class="cline-any cline-neutral">&nbsp;</span>
697
+ <span class="cline-any cline-yes">3x</span>
698
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import * as mathLiveObject from 'mathlive'
699
+ import * as _ from 'lodash'
700
+ import { MathMLToLaTeX } from 'mathml-to-latex'
701
+ export default class MathHelper {
702
+ /**
703
+ * expose mathlive object
704
+ */
705
+ public static Mathlive = mathLiveObject
706
+ &nbsp;
707
+ /**
708
+ * containsMathML
709
+ * @param content
710
+ * checks is string contains mathml
711
+ * @return boolean
712
+ *
713
+ */
714
+ public static containsMathML(content: string): boolean {
715
+ const regex = /\&lt;math.*?&gt;.*?&lt;\/math&gt;/s
716
+ &nbsp;
717
+ return regex.exec(content) !== null
718
+ }
719
+ &nbsp;
720
+ /**
721
+ * containsLatex
722
+ * @param content
723
+ * checks is string contains latex
724
+ * @return boolean
725
+ *
726
+ */
727
+ public static containsLatex(content: string): boolean {
728
+ const regex = /\$\$.*?\$\$/g
729
+ &nbsp;
730
+ return regex.exec(content) !== null
731
+ }
732
+ &nbsp;
733
+ /**
734
+ * containSREnhancedLatex
735
+ * @param content
736
+ * checks is string contains latex
737
+ * @return boolean
738
+ *
739
+ */
740
+ public static containSREnhancedLatex(content: string): boolean {
741
+ const regex = /\*\*.*?\*\*/g
742
+ &nbsp;
743
+ return regex.exec(content) !== null
744
+ }
745
+ &nbsp;
746
+ /**
747
+ * convertMathMLToLatex
748
+ * @param content
749
+ * attempts to find mml in content string and replace it with latex equivalent
750
+ * @return string
751
+ */
752
+ public static convertContentMathMLtoLatex(content: string): string {
753
+ const regex = /\&lt;math.*?&gt;.*?&lt;\/math&gt;/g
754
+ const matches = content.match(regex)
755
+ if (matches) {
756
+ matches.forEach((match) =&gt; {
757
+ content = content.replace(
758
+ match,
759
+ `$$$` + MathMLToLaTeX.convert(match) + '$$$'
760
+ )
761
+ })
762
+ }
763
+ &nbsp;
764
+ return content
765
+ }
766
+ &nbsp;
767
+ &nbsp;
768
+ /**
769
+ * Wraps math content.
770
+ *
771
+ * @param {string} match - The matched string to be wrapped.
772
+ * @param {string} content - The content to be replaced.
773
+ * @param {string} temp - The temporary string.
774
+ * @return {string} - The replaced content with wrapped math content.
775
+ */
776
+ private static wrapMathContentMatch(match : string, content: string, temp: string): string {
777
+ let wrapped = `&lt;span class ='windward-math-content'&gt;${match}&lt;/span&gt; &amp;nbsp;`;
778
+ if (match.match(/\$\$.*?\$\$/g) !== null &amp;&amp; temp !== '') {
779
+ wrapped = `&lt;span class ='windward-math-content'&gt;$$$${temp}$$$&lt;/span&gt; &amp;nbsp;`;
780
+ }
781
+ return content.replaceAll(match, wrapped);
782
+ }
783
+ &nbsp;
784
+ /**
785
+ * Checks if the given content already has a specific template wrapped around it.
786
+ *
787
+ * @param {string} content - The original content to be checked.
788
+ * @param {string} match - The template string to be compared against.
789
+ * @param {string} temp - The temp string to be compared against for final template.
790
+ * @return {boolean} - True if the content already contains the specified template, false otherwise.
791
+ */
792
+ private static contentAlreadyWrapped(content: string, match: string, temp: string): boolean {
793
+ const wrappedTemplates = [
794
+ `&lt;span class=\"windward-math-content\" contenteditable=\"true\"&gt;$$${temp}$$&lt;/span&gt;`,
795
+ `&lt;span class='windward-math-content'&gt;$$${temp}$$&lt;/span&gt;`,
796
+ `&lt;span class ='windward-math-content'&gt;$$${temp}$$&lt;/span&gt;`,
797
+ `&lt;span class=\"windward-math-content\"&gt;$$${temp}$$&lt;/span&gt;`];
798
+ return _.some(wrappedTemplates, template =&gt; _.includes(content, template));
799
+ }
800
+ &nbsp;
801
+ /**
802
+ * Wraps math content for TinyMCE.
803
+ *
804
+ * @param {string} content - The content to be wrapped.
805
+ * @returns {string} - The wrapped content.
806
+ */
807
+ public static wrapMathContentForTinyMCE(content: string): string {
808
+ const regex = /(\*\*|\$\$)(.*?)\1/g;
809
+ const matches = content.match(regex);
810
+ &nbsp;
811
+ if (matches) {
812
+ matches.forEach((match) =&gt; {
813
+ const temp = match.replace(/\$\$/g, '');
814
+ if (!this.contentAlreadyWrapped(content, match, temp)) {
815
+ content = this.wrapMathContentMatch(match, content, temp);
816
+ }
817
+ });
818
+ }
819
+ return content;
820
+ }
821
+ &nbsp;
822
+ /**
823
+ * check Math Content Wrapped For TMCE
824
+ * @param content
825
+ * checks all content
826
+ * @return string
827
+ */
828
+ public static checkMathContentWrappedForTMCE(content: string): boolean {
829
+ const regex =
830
+ /&lt;span\s+class.*?=.*?(windward-math-content).*?&gt;(.*?)&lt;\/span&gt;/g
831
+ &nbsp;
832
+ return regex.exec(content) !== null
833
+ }
834
+ &nbsp;
835
+ /**
836
+ * convertContentLatexToHtml
837
+ * @param content
838
+ * attempts to find latex in content string and replace it with latex equivalent
839
+ * @return string
840
+ *
841
+ */
842
+ public static convertContentLatexToHtml(content: string): string {
843
+ const regex = /\$\$.*?\$\$/g
844
+ &nbsp;
845
+ const matches = content.match(regex)
846
+ if (matches) {
847
+ matches.forEach((match) =&gt; {
848
+ content = content.replace(
849
+ match,
850
+ '&lt;span tabindex="0" aria-label="' +
851
+ // @ts-ignore
852
+ mathLiveObject.convertLatexToSpeakableText(match) +
853
+ '"&gt; &lt;span tabindex="-1" &gt;' +
854
+ mathLiveObject.convertLatexToMarkup(_.unescape(match)) +
855
+ '&lt;/span&gt;&lt;/span&gt;'
856
+ )
857
+ })
858
+ }
859
+ &nbsp;
860
+ return content
861
+ }
862
+ &nbsp;
863
+ /**
864
+ * Converts LaTeX content to speakable text.
865
+ *
866
+ * @param {string} content - The LaTeX content to be converted.
867
+ * @return {string}
868
+ */
869
+ private static convertContentLatexToSpeakableText(content : string): string {
870
+ const regex = /\$\$.*?\$\$/g
871
+ &nbsp;
872
+ const matches = content.match(regex)
873
+ if (matches) {
874
+ matches.forEach((match) =&gt; {
875
+ content = content.replace(
876
+ match,
877
+ mathLiveObject.convertLatexToSpeakableText(match)
878
+ )
879
+ })
880
+ }
881
+ &nbsp;
882
+ return content
883
+ }
884
+ &nbsp;
885
+ /**
886
+ * convertContentSREnhancedLatexToHtml
887
+ * @param content
888
+ * attempts to find latex in content string and place custom SR text on renderer math div
889
+ * @return string
890
+ *
891
+ */
892
+ public static convertContentSREnhancedLatexToHtml(content: string): string {
893
+ const regex = /\*\*.*?\*\*/g
894
+ &nbsp;
895
+ const matches = content.match(regex)
896
+ if (matches) {
897
+ matches.forEach((match: any) =&gt; {
898
+ const mathObject = JSON.parse(match.replace(/\*\*/g, ''))
899
+ content = content.replace(
900
+ match,
901
+ '&lt;span tabindex="0" aria-label="' +
902
+ mathObject.sr_text +
903
+ '"&gt; &lt;span tabindex="-1" &gt;' +
904
+ mathLiveObject.convertLatexToMarkup(
905
+ '$$' + _.unescape(mathObject.latex) + '$$'
906
+ ) +
907
+ '&lt;/span&gt;&lt;/span&gt;'
908
+ )
909
+ })
910
+ }
911
+ &nbsp;
912
+ return content
913
+ }
914
+ &nbsp;
915
+ /**
916
+ * Converts enhanced LaTeX content to speakable text.
917
+ *
918
+ * @param {string} content - The enhanced LaTeX content to convert.
919
+ * @return {string}
920
+ */
921
+ private static convertContentSREnhancedLatexToSpeakableText(content: string): string {
922
+ const regex = /\*\*.*?\*\*/g
923
+ &nbsp;
924
+ const matches = content.match(regex)
925
+ if (matches) {
926
+ matches.forEach((match: any) =&gt; {
927
+ const mathObject = JSON.parse(match.replace(/\*\*/g, ''))
928
+ content = content.replace(
929
+ match,
930
+ mathObject.sr_text
931
+ )
932
+ })
933
+ }
934
+ &nbsp;
935
+ return content
936
+ }
937
+ &nbsp;
938
+ /**
939
+ * convertMathContentToHtml
940
+ * @param content
941
+ * attempts to find any math format in content string and convert it to HTML
942
+ * @return string
943
+ *
944
+ */
945
+ public static convertMathContentToHtml(content: string): string {
946
+ return MathHelper.convertContentSREnhancedLatexToHtml(
947
+ MathHelper.convertContentLatexToHtml(
948
+ MathHelper.convertContentMathMLtoLatex(content)
949
+ )
950
+ ).replace(/contenteditable="true"/g, '')
951
+ }
952
+ &nbsp;
953
+ /**
954
+ * Converts math content to speakable text.
955
+ *
956
+ * @param {string} content - The math content to be converted.
957
+ * @return {string} .
958
+ */
959
+ public static convertMathContentToSpeakableText(content: string): string {
960
+ return MathHelper.convertContentSREnhancedLatexToSpeakableText(
961
+ MathHelper.convertContentLatexToSpeakableText(
962
+ MathHelper.convertContentMathMLtoLatex(content)
963
+ )
964
+ ).replace(/contenteditable="true"/g, '')
965
+ }
966
+ &nbsp;
967
+ /**
968
+ * convertMathMLToLatex
969
+ * @param content
970
+ * converts mml to latex
971
+ *
972
+ */
973
+ public static convertMathMLToLatex(content: string): string {
974
+ return MathMLToLaTeX.convert(content)
975
+ }
976
+ &nbsp;
977
+ /**
978
+ * parseSREnhancedLatexString
979
+ * @param content
980
+ * parse SR enhanced latex string and return Object
981
+ * @return Object
982
+ *
983
+ */
984
+ public static parseSREnhancedLatexString(content: string): object {
985
+ const regex = /\*\*.*?\*\*/g
986
+ &nbsp;
987
+ const matches = content.match(regex)
988
+ if (matches) {
989
+ const mathobject = JSON.parse(matches[0].replace(/\*\*/g, ''))
990
+ return mathobject
991
+ }
992
+ &nbsp;
993
+ return {}
994
+ }
995
+ &nbsp;
996
+ /**
997
+ * parseSRLatex
998
+ * @param content
999
+ * parse latex expression from string
1000
+ * @return any
1001
+ *
1002
+ */
1003
+ public static parseLatexString(content: string): string {
1004
+ const regex = /\$\$.*?\$\$/g
1005
+ &nbsp;
1006
+ const matches = content.match(regex)
1007
+ if (matches) {
1008
+ return matches[0].replace(/\$\$/g, '')
1009
+ }
1010
+ &nbsp;
1011
+ return ''
1012
+ }
1013
+ }
1014
+ &nbsp;</pre></td></tr></table></pre>
1015
+
1016
+ <div class='push'></div><!-- for sticky footer -->
1017
+ </div><!-- /wrapper -->
1018
+ <div class='footer quiet pad2 space-top1 center small'>
1019
+ Code coverage generated by
1020
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1021
+ at Thu Dec 05 2024 15:22:58 GMT-0500 (Eastern Standard Time)
1022
+ </div>
1023
+ <script src="../prettify.js"></script>
1024
+ <script>
1025
+ window.onload = function () {
1026
+ prettyPrint();
1027
+ };
1028
+ </script>
1029
+ <script src="../sorter.js"></script>
1030
+ <script src="../block-navigation.js"></script>
1031
+ </body>
1032
+ </html>
1033
+