@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.
- package/.idea/codeStyles/Project.xml +58 -0
- package/.idea/codeStyles/codeStyleConfig.xml +5 -0
- package/.idea/inspectionProfiles/Project_Default.xml +6 -0
- package/.idea/misc.xml +6 -0
- package/.idea/modules.xml +8 -0
- package/.idea/php-docker-settings.xml +24 -0
- package/.idea/php.xml +19 -0
- package/.idea/vcs.xml +6 -0
- package/.idea/watcherTasks.xml +4 -0
- package/.idea/windward-ui-plugin-core.iml +8 -0
- package/CHANGELOG.md +3 -19
- package/components/Content/Blocks/Email.vue +6 -1
- package/components/utils/GenerateAIQuestionButton.vue +88 -16
- package/config/menu.config.json +475 -0
- package/coverage/clover.xml +1474 -0
- package/coverage/coverage-final.json +199 -0
- package/coverage/lcov-report/base.css +224 -0
- package/coverage/lcov-report/block-navigation.js +87 -0
- package/coverage/lcov-report/components/Content/Blocks/Accordion.vue.html +772 -0
- package/coverage/lcov-report/components/Content/Blocks/BlockQuote.vue.html +625 -0
- package/coverage/lcov-report/components/Content/Blocks/ClickableIcons.vue.html +979 -0
- package/coverage/lcov-report/components/Content/Blocks/Email.vue.html +1171 -0
- package/coverage/lcov-report/components/Content/Blocks/Feedback.vue.html +1075 -0
- package/coverage/lcov-report/components/Content/Blocks/FileDownload/FileLinks.vue.html +331 -0
- package/coverage/lcov-report/components/Content/Blocks/FileDownload/FileTable.vue.html +403 -0
- package/coverage/lcov-report/components/Content/Blocks/FileDownload/index.html +131 -0
- package/coverage/lcov-report/components/Content/Blocks/FileDownload.vue.html +514 -0
- package/coverage/lcov-report/components/Content/Blocks/Image.vue.html +211 -0
- package/coverage/lcov-report/components/Content/Blocks/Math.vue.html +352 -0
- package/coverage/lcov-report/components/Content/Blocks/OpenResponse.vue.html +667 -0
- package/coverage/lcov-report/components/Content/Blocks/OpenResponseCollate.vue.html +643 -0
- package/coverage/lcov-report/components/Content/Blocks/RichText.vue.html +295 -0
- package/coverage/lcov-report/components/Content/Blocks/ScenarioChoice.vue.html +976 -0
- package/coverage/lcov-report/components/Content/Blocks/Tab.vue.html +445 -0
- package/coverage/lcov-report/components/Content/Blocks/Table.vue.html +667 -0
- package/coverage/lcov-report/components/Content/Blocks/UserUpload/DisplayUserFilesTable.vue.html +562 -0
- package/coverage/lcov-report/components/Content/Blocks/UserUpload/index.html +116 -0
- package/coverage/lcov-report/components/Content/Blocks/UserUpload.vue.html +844 -0
- package/coverage/lcov-report/components/Content/Blocks/Video.vue.html +1225 -0
- package/coverage/lcov-report/components/Content/Blocks/index.html +311 -0
- package/coverage/lcov-report/components/Settings/AccordionSettings.vue.html +961 -0
- package/coverage/lcov-report/components/Settings/BlockQuoteSettings.vue.html +673 -0
- package/coverage/lcov-report/components/Settings/ClickableIconsSettings.vue.html +1144 -0
- package/coverage/lcov-report/components/Settings/EmailSettings.vue.html +901 -0
- package/coverage/lcov-report/components/Settings/FeedbackSettings.vue.html +373 -0
- package/coverage/lcov-report/components/Settings/FileDownloadSettings.vue.html +607 -0
- package/coverage/lcov-report/components/Settings/ImageSettings.vue.html +310 -0
- package/coverage/lcov-report/components/Settings/MathSettings.vue.html +337 -0
- package/coverage/lcov-report/components/Settings/OpenResponseCollateSettings.vue.html +586 -0
- package/coverage/lcov-report/components/Settings/OpenResponseSettings.vue.html +415 -0
- package/coverage/lcov-report/components/Settings/ScenarioChoiceSettings.vue.html +1183 -0
- package/coverage/lcov-report/components/Settings/TabSettings.vue.html +751 -0
- package/coverage/lcov-report/components/Settings/UserUploadSettings.vue.html +535 -0
- package/coverage/lcov-report/components/Settings/index.html +296 -0
- package/coverage/lcov-report/components/utils/ContentViewer.vue.html +199 -0
- package/coverage/lcov-report/components/utils/MathExpressionEditor.vue.html +1120 -0
- package/coverage/lcov-report/components/utils/MathLiveWrapper.vue.html +415 -0
- package/coverage/lcov-report/components/utils/TinyMCEWrapper.vue.html +271 -0
- package/coverage/lcov-report/components/utils/index.html +131 -0
- package/coverage/lcov-report/config/index.html +116 -0
- package/coverage/lcov-report/config/tinymce.config.js.html +493 -0
- package/coverage/lcov-report/config/tinymce.config.ts.html +1051 -0
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/helpers/GlossaryHelper.ts.html +577 -0
- package/coverage/lcov-report/helpers/GlossaryTerm.ts.html +178 -0
- package/coverage/lcov-report/helpers/MathHelper.ts.html +1033 -0
- package/coverage/lcov-report/helpers/index.html +146 -0
- package/coverage/lcov-report/helpers/tinymce/index.html +116 -0
- package/coverage/lcov-report/helpers/tinymce/plugin.ts.html +334 -0
- package/coverage/lcov-report/i18n/en-US/components/content/blocks/block_quote.ts.html +94 -0
- package/coverage/lcov-report/i18n/en-US/components/content/blocks/email.ts.html +127 -0
- package/coverage/lcov-report/i18n/en-US/components/content/blocks/feedback.ts.html +178 -0
- package/coverage/lcov-report/i18n/en-US/components/content/blocks/file_download.ts.html +100 -0
- package/coverage/lcov-report/i18n/en-US/components/content/blocks/generate_questions.ts.html +100 -0
- package/coverage/lcov-report/i18n/en-US/components/content/blocks/image.ts.html +100 -0
- package/coverage/lcov-report/i18n/en-US/components/content/blocks/index.html +296 -0
- package/coverage/lcov-report/i18n/en-US/components/content/blocks/index.ts.html +166 -0
- package/coverage/lcov-report/i18n/en-US/components/content/blocks/open_response.ts.html +100 -0
- package/coverage/lcov-report/i18n/en-US/components/content/blocks/open_response_collate.ts.html +106 -0
- package/coverage/lcov-report/i18n/en-US/components/content/blocks/scenario_choice.ts.html +100 -0
- package/coverage/lcov-report/i18n/en-US/components/content/blocks/table.ts.html +97 -0
- package/coverage/lcov-report/i18n/en-US/components/content/blocks/user_upload.ts.html +115 -0
- package/coverage/lcov-report/i18n/en-US/components/content/blocks/video.ts.html +97 -0
- package/coverage/lcov-report/i18n/en-US/components/content/index.html +116 -0
- package/coverage/lcov-report/i18n/en-US/components/content/index.ts.html +100 -0
- package/coverage/lcov-report/i18n/en-US/components/index.html +116 -0
- package/coverage/lcov-report/i18n/en-US/components/index.ts.html +118 -0
- package/coverage/lcov-report/i18n/en-US/components/navigation/ask_the_expert.ts.html +118 -0
- package/coverage/lcov-report/i18n/en-US/components/navigation/image.ts.html +97 -0
- package/coverage/lcov-report/i18n/en-US/components/navigation/index.html +161 -0
- package/coverage/lcov-report/i18n/en-US/components/navigation/index.ts.html +112 -0
- package/coverage/lcov-report/i18n/en-US/components/navigation/user_upload.ts.html +94 -0
- package/coverage/lcov-report/i18n/en-US/components/settings/accordion.ts.html +106 -0
- package/coverage/lcov-report/i18n/en-US/components/settings/block_quote.ts.html +130 -0
- package/coverage/lcov-report/i18n/en-US/components/settings/clickable_icon.ts.html +142 -0
- package/coverage/lcov-report/i18n/en-US/components/settings/email.ts.html +115 -0
- package/coverage/lcov-report/i18n/en-US/components/settings/file_download.ts.html +109 -0
- package/coverage/lcov-report/i18n/en-US/components/settings/horizontal_rule.ts.html +94 -0
- package/coverage/lcov-report/i18n/en-US/components/settings/image.ts.html +142 -0
- package/coverage/lcov-report/i18n/en-US/components/settings/index.html +326 -0
- package/coverage/lcov-report/i18n/en-US/components/settings/index.ts.html +178 -0
- package/coverage/lcov-report/i18n/en-US/components/settings/open_response.ts.html +100 -0
- package/coverage/lcov-report/i18n/en-US/components/settings/open_response_collate.ts.html +103 -0
- package/coverage/lcov-report/i18n/en-US/components/settings/scenario_choice.ts.html +145 -0
- package/coverage/lcov-report/i18n/en-US/components/settings/tab.ts.html +109 -0
- package/coverage/lcov-report/i18n/en-US/components/settings/text_editor.ts.html +115 -0
- package/coverage/lcov-report/i18n/en-US/components/settings/user_upload.ts.html +121 -0
- package/coverage/lcov-report/i18n/en-US/components/settings/video.ts.html +277 -0
- package/coverage/lcov-report/i18n/en-US/components/utils/FillInBlank/FillInBlankInput.ts.html +130 -0
- package/coverage/lcov-report/i18n/en-US/components/utils/FillInBlank/FillInTheBlanksManager.ts.html +118 -0
- package/coverage/lcov-report/i18n/en-US/components/utils/FillInBlank/index.html +146 -0
- package/coverage/lcov-report/i18n/en-US/components/utils/FillInBlank/index.ts.html +103 -0
- package/coverage/lcov-report/i18n/en-US/components/utils/index.html +146 -0
- package/coverage/lcov-report/i18n/en-US/components/utils/index.ts.html +109 -0
- package/coverage/lcov-report/i18n/en-US/components/utils/math_expression_editor.ts.html +130 -0
- package/coverage/lcov-report/i18n/en-US/components/utils/tiny_mce_wrapper.ts.html +175 -0
- package/coverage/lcov-report/i18n/en-US/index.html +116 -0
- package/coverage/lcov-report/i18n/en-US/index.ts.html +133 -0
- package/coverage/lcov-report/i18n/en-US/modules/index.html +116 -0
- package/coverage/lcov-report/i18n/en-US/modules/index.ts.html +100 -0
- package/coverage/lcov-report/i18n/en-US/pages/glossary.ts.html +106 -0
- package/coverage/lcov-report/i18n/en-US/pages/index.html +146 -0
- package/coverage/lcov-report/i18n/en-US/pages/index.ts.html +112 -0
- package/coverage/lcov-report/i18n/en-US/pages/plugins/error.ts.html +112 -0
- package/coverage/lcov-report/i18n/en-US/pages/plugins/index.html +131 -0
- package/coverage/lcov-report/i18n/en-US/pages/plugins/index.ts.html +100 -0
- package/coverage/lcov-report/i18n/en-US/pages/user_upload.ts.html +94 -0
- package/coverage/lcov-report/i18n/en-US/shared/content_blocks.ts.html +163 -0
- package/coverage/lcov-report/i18n/en-US/shared/index.html +176 -0
- package/coverage/lcov-report/i18n/en-US/shared/index.ts.html +118 -0
- package/coverage/lcov-report/i18n/en-US/shared/menu.ts.html +97 -0
- package/coverage/lcov-report/i18n/en-US/shared/permission.ts.html +130 -0
- package/coverage/lcov-report/i18n/en-US/shared/settings.ts.html +172 -0
- package/coverage/lcov-report/i18n/es-ES/components/content/blocks/block_quote.ts.html +94 -0
- package/coverage/lcov-report/i18n/es-ES/components/content/blocks/email.ts.html +127 -0
- package/coverage/lcov-report/i18n/es-ES/components/content/blocks/feedback.ts.html +178 -0
- package/coverage/lcov-report/i18n/es-ES/components/content/blocks/file_download.ts.html +100 -0
- package/coverage/lcov-report/i18n/es-ES/components/content/blocks/generate_questions.ts.html +100 -0
- package/coverage/lcov-report/i18n/es-ES/components/content/blocks/image.ts.html +100 -0
- package/coverage/lcov-report/i18n/es-ES/components/content/blocks/index.html +296 -0
- package/coverage/lcov-report/i18n/es-ES/components/content/blocks/index.ts.html +166 -0
- package/coverage/lcov-report/i18n/es-ES/components/content/blocks/open_response.ts.html +103 -0
- package/coverage/lcov-report/i18n/es-ES/components/content/blocks/open_response_collate.ts.html +106 -0
- package/coverage/lcov-report/i18n/es-ES/components/content/blocks/scenario_choice.ts.html +103 -0
- package/coverage/lcov-report/i18n/es-ES/components/content/blocks/table.ts.html +97 -0
- package/coverage/lcov-report/i18n/es-ES/components/content/blocks/user_upload.ts.html +118 -0
- package/coverage/lcov-report/i18n/es-ES/components/content/blocks/video.ts.html +100 -0
- package/coverage/lcov-report/i18n/es-ES/components/content/index.html +116 -0
- package/coverage/lcov-report/i18n/es-ES/components/content/index.ts.html +100 -0
- package/coverage/lcov-report/i18n/es-ES/components/index.html +116 -0
- package/coverage/lcov-report/i18n/es-ES/components/index.ts.html +121 -0
- package/coverage/lcov-report/i18n/es-ES/components/navigation/ask_the_expert.ts.html +118 -0
- package/coverage/lcov-report/i18n/es-ES/components/navigation/image.ts.html +97 -0
- package/coverage/lcov-report/i18n/es-ES/components/navigation/index.html +161 -0
- package/coverage/lcov-report/i18n/es-ES/components/navigation/index.ts.html +112 -0
- package/coverage/lcov-report/i18n/es-ES/components/navigation/user_upload.ts.html +94 -0
- package/coverage/lcov-report/i18n/es-ES/components/settings/accordion.ts.html +106 -0
- package/coverage/lcov-report/i18n/es-ES/components/settings/block_quote.ts.html +130 -0
- package/coverage/lcov-report/i18n/es-ES/components/settings/clickable_icon.ts.html +145 -0
- package/coverage/lcov-report/i18n/es-ES/components/settings/email.ts.html +115 -0
- package/coverage/lcov-report/i18n/es-ES/components/settings/file_download.ts.html +109 -0
- package/coverage/lcov-report/i18n/es-ES/components/settings/horizontal_rule.ts.html +94 -0
- package/coverage/lcov-report/i18n/es-ES/components/settings/image.ts.html +148 -0
- package/coverage/lcov-report/i18n/es-ES/components/settings/index.html +326 -0
- package/coverage/lcov-report/i18n/es-ES/components/settings/index.ts.html +178 -0
- package/coverage/lcov-report/i18n/es-ES/components/settings/open_response.ts.html +100 -0
- package/coverage/lcov-report/i18n/es-ES/components/settings/open_response_collate.ts.html +106 -0
- package/coverage/lcov-report/i18n/es-ES/components/settings/scenario_choice.ts.html +145 -0
- package/coverage/lcov-report/i18n/es-ES/components/settings/tab.ts.html +112 -0
- package/coverage/lcov-report/i18n/es-ES/components/settings/text_editor.ts.html +115 -0
- package/coverage/lcov-report/i18n/es-ES/components/settings/user_upload.ts.html +121 -0
- package/coverage/lcov-report/i18n/es-ES/components/settings/video.ts.html +283 -0
- package/coverage/lcov-report/i18n/es-ES/components/utils/FillInBlank/FillInBlankInput.ts.html +130 -0
- package/coverage/lcov-report/i18n/es-ES/components/utils/FillInBlank/FillInTheBlanksManager.ts.html +118 -0
- package/coverage/lcov-report/i18n/es-ES/components/utils/FillInBlank/index.html +146 -0
- package/coverage/lcov-report/i18n/es-ES/components/utils/FillInBlank/index.ts.html +103 -0
- package/coverage/lcov-report/i18n/es-ES/components/utils/index.html +146 -0
- package/coverage/lcov-report/i18n/es-ES/components/utils/index.ts.html +109 -0
- package/coverage/lcov-report/i18n/es-ES/components/utils/math_expression_editor.ts.html +130 -0
- package/coverage/lcov-report/i18n/es-ES/components/utils/tiny_mce_wrapper.ts.html +178 -0
- package/coverage/lcov-report/i18n/es-ES/index.html +116 -0
- package/coverage/lcov-report/i18n/es-ES/index.ts.html +133 -0
- package/coverage/lcov-report/i18n/es-ES/modules/index.html +116 -0
- package/coverage/lcov-report/i18n/es-ES/modules/index.ts.html +100 -0
- package/coverage/lcov-report/i18n/es-ES/pages/glossary.ts.html +106 -0
- package/coverage/lcov-report/i18n/es-ES/pages/index.html +146 -0
- package/coverage/lcov-report/i18n/es-ES/pages/index.ts.html +112 -0
- package/coverage/lcov-report/i18n/es-ES/pages/plugins/error.ts.html +112 -0
- package/coverage/lcov-report/i18n/es-ES/pages/plugins/index.html +131 -0
- package/coverage/lcov-report/i18n/es-ES/pages/plugins/index.ts.html +100 -0
- package/coverage/lcov-report/i18n/es-ES/pages/user_upload.ts.html +94 -0
- package/coverage/lcov-report/i18n/es-ES/shared/content_blocks.ts.html +163 -0
- package/coverage/lcov-report/i18n/es-ES/shared/index.html +176 -0
- package/coverage/lcov-report/i18n/es-ES/shared/index.ts.html +118 -0
- package/coverage/lcov-report/i18n/es-ES/shared/menu.ts.html +97 -0
- package/coverage/lcov-report/i18n/es-ES/shared/permission.ts.html +130 -0
- package/coverage/lcov-report/i18n/es-ES/shared/settings.ts.html +178 -0
- package/coverage/lcov-report/i18n/index.html +116 -0
- package/coverage/lcov-report/i18n/index.ts.html +118 -0
- package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/block_quote.ts.html +94 -0
- package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/email.ts.html +127 -0
- package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/feedback.ts.html +178 -0
- package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/file_download.ts.html +100 -0
- package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/generate_questions.ts.html +100 -0
- package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/image.ts.html +100 -0
- package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/index.html +296 -0
- package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/index.ts.html +166 -0
- package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/open_response.ts.html +103 -0
- package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/open_response_collate.ts.html +106 -0
- package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/scenario_choice.ts.html +100 -0
- package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/table.ts.html +97 -0
- package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/user_upload.ts.html +118 -0
- package/coverage/lcov-report/i18n/sv-SE/components/content/blocks/video.ts.html +97 -0
- package/coverage/lcov-report/i18n/sv-SE/components/content/index.html +116 -0
- package/coverage/lcov-report/i18n/sv-SE/components/content/index.ts.html +100 -0
- package/coverage/lcov-report/i18n/sv-SE/components/index.html +116 -0
- package/coverage/lcov-report/i18n/sv-SE/components/index.ts.html +121 -0
- package/coverage/lcov-report/i18n/sv-SE/components/navigation/ask_the_expert.ts.html +118 -0
- package/coverage/lcov-report/i18n/sv-SE/components/navigation/image.ts.html +97 -0
- package/coverage/lcov-report/i18n/sv-SE/components/navigation/index.html +161 -0
- package/coverage/lcov-report/i18n/sv-SE/components/navigation/index.ts.html +112 -0
- package/coverage/lcov-report/i18n/sv-SE/components/navigation/user_upload.ts.html +94 -0
- package/coverage/lcov-report/i18n/sv-SE/components/settings/accordion.ts.html +109 -0
- package/coverage/lcov-report/i18n/sv-SE/components/settings/block_quote.ts.html +130 -0
- package/coverage/lcov-report/i18n/sv-SE/components/settings/clickable_icon.ts.html +145 -0
- package/coverage/lcov-report/i18n/sv-SE/components/settings/email.ts.html +115 -0
- package/coverage/lcov-report/i18n/sv-SE/components/settings/file_download.ts.html +109 -0
- package/coverage/lcov-report/i18n/sv-SE/components/settings/horizontal_rule.ts.html +94 -0
- package/coverage/lcov-report/i18n/sv-SE/components/settings/image.ts.html +142 -0
- package/coverage/lcov-report/i18n/sv-SE/components/settings/index.html +326 -0
- package/coverage/lcov-report/i18n/sv-SE/components/settings/index.ts.html +178 -0
- package/coverage/lcov-report/i18n/sv-SE/components/settings/open_response.ts.html +100 -0
- package/coverage/lcov-report/i18n/sv-SE/components/settings/open_response_collate.ts.html +103 -0
- package/coverage/lcov-report/i18n/sv-SE/components/settings/scenario_choice.ts.html +145 -0
- package/coverage/lcov-report/i18n/sv-SE/components/settings/tab.ts.html +109 -0
- package/coverage/lcov-report/i18n/sv-SE/components/settings/text_editor.ts.html +115 -0
- package/coverage/lcov-report/i18n/sv-SE/components/settings/user_upload.ts.html +121 -0
- package/coverage/lcov-report/i18n/sv-SE/components/settings/video.ts.html +277 -0
- package/coverage/lcov-report/i18n/sv-SE/components/utils/FillInBlank/FillInBlankInput.ts.html +130 -0
- package/coverage/lcov-report/i18n/sv-SE/components/utils/FillInBlank/FillInTheBlanksManager.ts.html +118 -0
- package/coverage/lcov-report/i18n/sv-SE/components/utils/FillInBlank/index.html +146 -0
- package/coverage/lcov-report/i18n/sv-SE/components/utils/FillInBlank/index.ts.html +103 -0
- package/coverage/lcov-report/i18n/sv-SE/components/utils/index.html +146 -0
- package/coverage/lcov-report/i18n/sv-SE/components/utils/index.ts.html +109 -0
- package/coverage/lcov-report/i18n/sv-SE/components/utils/math_expression_editor.ts.html +130 -0
- package/coverage/lcov-report/i18n/sv-SE/components/utils/tiny_mce_wrapper.ts.html +178 -0
- package/coverage/lcov-report/i18n/sv-SE/index.html +116 -0
- package/coverage/lcov-report/i18n/sv-SE/index.ts.html +133 -0
- package/coverage/lcov-report/i18n/sv-SE/modules/index.html +116 -0
- package/coverage/lcov-report/i18n/sv-SE/modules/index.ts.html +100 -0
- package/coverage/lcov-report/i18n/sv-SE/pages/glossary.ts.html +106 -0
- package/coverage/lcov-report/i18n/sv-SE/pages/index.html +146 -0
- package/coverage/lcov-report/i18n/sv-SE/pages/index.ts.html +112 -0
- package/coverage/lcov-report/i18n/sv-SE/pages/plugins/error.ts.html +109 -0
- package/coverage/lcov-report/i18n/sv-SE/pages/plugins/index.html +131 -0
- package/coverage/lcov-report/i18n/sv-SE/pages/plugins/index.ts.html +100 -0
- package/coverage/lcov-report/i18n/sv-SE/pages/user_upload.ts.html +94 -0
- package/coverage/lcov-report/i18n/sv-SE/shared/content_blocks.ts.html +163 -0
- package/coverage/lcov-report/i18n/sv-SE/shared/index.html +176 -0
- package/coverage/lcov-report/i18n/sv-SE/shared/index.ts.html +118 -0
- package/coverage/lcov-report/i18n/sv-SE/shared/menu.ts.html +97 -0
- package/coverage/lcov-report/i18n/sv-SE/shared/permission.ts.html +130 -0
- package/coverage/lcov-report/i18n/sv-SE/shared/settings.ts.html +172 -0
- package/coverage/lcov-report/index.html +806 -0
- package/coverage/lcov-report/models/SurveyResult.ts.html +109 -0
- package/coverage/lcov-report/models/SurveyTemplate.ts.html +109 -0
- package/coverage/lcov-report/models/index.html +131 -0
- package/coverage/lcov-report/pages/plugins/tinymce/_plugin.vue.html +322 -0
- package/coverage/lcov-report/pages/plugins/tinymce/index.html +116 -0
- package/coverage/lcov-report/prettify.css +1 -0
- package/coverage/lcov-report/prettify.js +2 -0
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +196 -0
- package/coverage/lcov-report/test/index.html +131 -0
- package/coverage/lcov-report/test/locales.js.html +370 -0
- package/coverage/lcov-report/test/mocks.js.html +532 -0
- package/coverage/lcov.info +2753 -0
- package/i18n/en-US/components/content/blocks/generate_questions.ts +4 -0
- package/i18n/es-ES/components/content/blocks/generate_questions.ts +4 -0
- package/i18n/sv-SE/components/content/blocks/generate_questions.ts +4 -0
- package/lib/helpers/GlossaryHelper.d.ts +9 -0
- package/lib/helpers/GlossaryHelper.js +118 -0
- package/lib/helpers/GlossaryTerm.d.ts +10 -0
- package/lib/helpers/GlossaryTerm.js +22 -0
- package/lib/helpers/MathHelper.d.ts +99 -0
- package/lib/helpers/MathHelper.js +194 -0
- package/lib/helpers/tinymce/plugin.d.ts +2 -0
- package/lib/helpers/tinymce/plugin.js +86 -0
- package/lib/i18n/en-US/components/content/blocks/image.d.ts +6 -0
- package/lib/i18n/en-US/components/content/blocks/image.js +7 -0
- package/lib/i18n/en-US/components/content/blocks/index.d.ts +75 -0
- package/lib/i18n/en-US/components/content/blocks/index.js +14 -0
- package/lib/i18n/en-US/components/content/blocks/tab.d.ts +5 -0
- package/lib/i18n/en-US/components/content/blocks/tab.js +6 -0
- package/lib/i18n/en-US/components/content/blocks/table.d.ts +5 -0
- package/lib/i18n/en-US/components/content/blocks/table.js +6 -0
- package/lib/i18n/en-US/components/content/blocks/user_upload.d.ts +13 -0
- package/lib/i18n/en-US/components/content/blocks/user_upload.js +14 -0
- package/lib/i18n/en-US/components/content/blocks/video.d.ts +48 -0
- package/lib/i18n/en-US/components/content/blocks/video.js +49 -0
- package/lib/i18n/en-US/components/content/index.d.ts +77 -0
- package/lib/i18n/en-US/components/content/index.js +6 -0
- package/lib/i18n/en-US/components/index.d.ts +140 -0
- package/lib/i18n/en-US/components/index.js +12 -0
- package/lib/i18n/en-US/components/navigation/image.d.ts +5 -0
- package/lib/i18n/en-US/components/navigation/image.js +6 -0
- package/lib/i18n/en-US/components/navigation/index.d.ts +10 -0
- package/lib/i18n/en-US/components/navigation/index.js +8 -0
- package/lib/i18n/en-US/components/navigation/user_upload.d.ts +4 -0
- package/lib/i18n/en-US/components/navigation/user_upload.js +5 -0
- package/lib/i18n/en-US/components/settings/clickable_icon.d.ts +6 -0
- package/lib/i18n/en-US/components/settings/clickable_icon.js +7 -0
- package/lib/i18n/en-US/components/settings/image.d.ts +2 -0
- package/lib/i18n/en-US/components/settings/image.js +3 -0
- package/lib/i18n/en-US/components/settings/index.d.ts +39 -0
- package/lib/i18n/en-US/components/settings/index.js +14 -0
- package/lib/i18n/en-US/components/settings/text_editor.d.ts +8 -0
- package/lib/i18n/en-US/components/settings/text_editor.js +9 -0
- package/lib/i18n/en-US/components/settings/user_upload.d.ts +12 -0
- package/lib/i18n/en-US/components/settings/user_upload.js +13 -0
- package/lib/i18n/en-US/components/settings/video.d.ts +13 -0
- package/lib/i18n/en-US/components/settings/video.js +14 -0
- package/lib/i18n/en-US/components/utils/index.d.ts +15 -0
- package/lib/i18n/en-US/components/utils/index.js +6 -0
- package/lib/i18n/en-US/components/utils/tiny_mce_wrapper.d.ts +13 -0
- package/lib/i18n/en-US/components/utils/tiny_mce_wrapper.js +14 -0
- package/lib/i18n/en-US/index.d.ts +197 -0
- package/lib/i18n/en-US/index.js +16 -0
- package/lib/i18n/en-US/modules/index.d.ts +2 -0
- package/lib/i18n/en-US/modules/index.js +6 -0
- package/lib/i18n/en-US/pages/glossary.d.ts +8 -0
- package/lib/i18n/en-US/pages/glossary.js +9 -0
- package/lib/i18n/en-US/pages/index.d.ts +13 -0
- package/lib/i18n/en-US/pages/index.js +8 -0
- package/lib/i18n/en-US/pages/user_upload.d.ts +4 -0
- package/lib/i18n/en-US/pages/user_upload.js +5 -0
- package/lib/i18n/en-US/shared/content_blocks.d.ts +20 -0
- package/lib/i18n/en-US/shared/content_blocks.js +21 -0
- package/lib/i18n/en-US/shared/index.d.ts +39 -0
- package/lib/i18n/en-US/shared/index.js +10 -0
- package/lib/i18n/en-US/shared/menu.d.ts +4 -0
- package/lib/i18n/en-US/shared/menu.js +5 -0
- package/lib/i18n/en-US/shared/settings.d.ts +15 -0
- package/lib/i18n/en-US/shared/settings.js +16 -0
- package/lib/i18n/en-US.d.ts +197 -0
- package/lib/i18n/en-US.js +15 -0
- package/lib/models/UserFileAsset.d.ts +5 -0
- package/lib/models/UserFileAsset.js +37 -0
- package/package.json +1 -1
- package/table_styling.scss +58 -0
|
@@ -12,6 +12,10 @@ export default {
|
|
|
12
12
|
content_mismatch_support:
|
|
13
13
|
"The current content isn't suitable for this type of question. Consider adding more specific examples, numerical data, or comparable items depending on your desired question type.",
|
|
14
14
|
|
|
15
|
+
content_mismatch_bucket_game: "Content not suitable for bucket games.",
|
|
16
|
+
content_mismatch_bucket_game_support:
|
|
17
|
+
"Consider adding content with clear categories and multiple sortable items that can be grouped into 2-4 distinct buckets.",
|
|
18
|
+
|
|
15
19
|
llm_unavailable: 'Question generation temporarily unavailable.',
|
|
16
20
|
llm_unavailable_support:
|
|
17
21
|
"We're unable to connect to our AI service at the moment. Please try again in a few minutes or contact support if the issue persists.",
|
|
@@ -14,6 +14,10 @@ export default {
|
|
|
14
14
|
content_mismatch_support:
|
|
15
15
|
'Por favor, añada más texto, ejemplos o explicaciones a esta sección. Recomendamos al menos 50 palabras de contenido relevante para generar preguntas apropiadas.',
|
|
16
16
|
|
|
17
|
+
content_mismatch_bucket_game: 'El contenido no es adecuado para juegos de categorías.',
|
|
18
|
+
content_mismatch_bucket_game_support:
|
|
19
|
+
'Considera agregar contenido con categorías claras y múltiples elementos clasificables que se puedan agrupar en 2-4 categorías distintas.',
|
|
20
|
+
|
|
17
21
|
llm_unavailable:
|
|
18
22
|
'La generación de preguntas no está disponible temporalmente.',
|
|
19
23
|
llm_unavailable_support:
|
|
@@ -12,6 +12,10 @@ export default {
|
|
|
12
12
|
content_mismatch_support:
|
|
13
13
|
'Vänligen lägg till mer text, exempel eller förklaringar till detta avsnitt. Vi rekommenderar minst 50 ord av relevant innehåll för att generera lämpliga frågor.',
|
|
14
14
|
|
|
15
|
+
content_mismatch_bucket_game: 'Innehållet är inte lämpligt för kategorispel.',
|
|
16
|
+
content_mismatch_bucket_game_support:
|
|
17
|
+
'Överväg att lägga till innehåll med tydliga kategorier och flera sorterbara objekt som kan grupperas i 2-4 distinkta kategorier.',
|
|
18
|
+
|
|
15
19
|
llm_unavailable: 'Frågegenerering tillfälligt otillgänglig.',
|
|
16
20
|
llm_unavailable_support:
|
|
17
21
|
'Vi kan inte ansluta till vår AI-tjänst för tillfället. Försök igen om några minuter.',
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import GlossaryTerm from "../helpers/GlossaryTerm";
|
|
2
|
+
export default class GlossaryHelper {
|
|
3
|
+
private static glossaryRegex;
|
|
4
|
+
static makeToolTip(term: GlossaryTerm, text: String): string;
|
|
5
|
+
static containsGlossaryTerms(content: string): boolean;
|
|
6
|
+
static getContentVerifiedGlossaryTerms(content: string, glossary: any): GlossaryTerm[];
|
|
7
|
+
static getContentUnVerifiedGlossaryTerms(content: string, glossary: any): GlossaryTerm[];
|
|
8
|
+
static renderGlossaryWordsHtml(content: string, glossary: any): string;
|
|
9
|
+
}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var GlossaryTerm_1 = require("../helpers/GlossaryTerm");
|
|
4
|
+
var _ = require("lodash");
|
|
5
|
+
var GlossaryHelper = /** @class */ (function () {
|
|
6
|
+
function GlossaryHelper() {
|
|
7
|
+
}
|
|
8
|
+
GlossaryHelper.makeToolTip = function (term, text) {
|
|
9
|
+
var word = _.isString(term.term) ?
|
|
10
|
+
'<template v-slot:term>' +
|
|
11
|
+
text +
|
|
12
|
+
'</template>' : '';
|
|
13
|
+
var definition = _.isString(term.definition) ?
|
|
14
|
+
'<template v-slot:definition>' +
|
|
15
|
+
term.definition +
|
|
16
|
+
'</template>' : '';
|
|
17
|
+
var alternate_forms = _.isString(term.alternate_forms) ?
|
|
18
|
+
'<template v-slot:alternate_forms>' +
|
|
19
|
+
term.alternate_forms +
|
|
20
|
+
'</template>' : '';
|
|
21
|
+
var related_terms = _.isString(term.related_term) ?
|
|
22
|
+
'<template v-slot:related_terms>' +
|
|
23
|
+
term.related_term +
|
|
24
|
+
'</template>' : '';
|
|
25
|
+
return ('<plugin-core-glossary-tool-tip>' +
|
|
26
|
+
word
|
|
27
|
+
+
|
|
28
|
+
definition
|
|
29
|
+
+
|
|
30
|
+
alternate_forms
|
|
31
|
+
+
|
|
32
|
+
related_terms
|
|
33
|
+
+
|
|
34
|
+
'</plugin-core-glossary-tool-tip>');
|
|
35
|
+
};
|
|
36
|
+
GlossaryHelper.containsGlossaryTerms = function (content) {
|
|
37
|
+
var regex = this.glossaryRegex;
|
|
38
|
+
return regex.exec(content) !== null;
|
|
39
|
+
};
|
|
40
|
+
GlossaryHelper.getContentVerifiedGlossaryTerms = function (content, glossary) {
|
|
41
|
+
var regex = this.glossaryRegex;
|
|
42
|
+
var currentGlossary = glossary;
|
|
43
|
+
var match;
|
|
44
|
+
var verifiedTerms = [];
|
|
45
|
+
while ((match = regex.exec(content)) !== null) {
|
|
46
|
+
// This is necessary to avoid infinite loops with zero-width matches
|
|
47
|
+
if (match.index === regex.lastIndex) {
|
|
48
|
+
regex.lastIndex++;
|
|
49
|
+
}
|
|
50
|
+
// The result can be accessed through the `m`-variable.
|
|
51
|
+
currentGlossary.forEach(function (term) {
|
|
52
|
+
var addTerm = true;
|
|
53
|
+
verifiedTerms.forEach(function (verifiedTerm) {
|
|
54
|
+
if (_.trim(_.toLower(verifiedTerm.term)) === _.trim(_.toLower(term.term))) {
|
|
55
|
+
addTerm = false;
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
if (_.trim(_.toLower(match[1])) === _.trim(_.toLower(term.term)) && addTerm) {
|
|
59
|
+
verifiedTerms.push(new GlossaryTerm_1.default(term));
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
return verifiedTerms;
|
|
64
|
+
};
|
|
65
|
+
GlossaryHelper.getContentUnVerifiedGlossaryTerms = function (content, glossary) {
|
|
66
|
+
var regex = this.glossaryRegex;
|
|
67
|
+
var match;
|
|
68
|
+
var verifiedTerms = this.getContentVerifiedGlossaryTerms(content, glossary);
|
|
69
|
+
var unVerifiedTerms = [];
|
|
70
|
+
var _loop_1 = function () {
|
|
71
|
+
// This is necessary to avoid infinite loops with zero-width matches
|
|
72
|
+
if (match.index === regex.lastIndex) {
|
|
73
|
+
regex.lastIndex++;
|
|
74
|
+
}
|
|
75
|
+
var inGlossary = [];
|
|
76
|
+
inGlossary = glossary.filter(function (item) {
|
|
77
|
+
if (_.trim(_.toLower(item.term)) === _.trim(_.toLower(match[1]))) {
|
|
78
|
+
return item;
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
var inUnverifiedArray = false;
|
|
82
|
+
unVerifiedTerms.forEach(function (unVerifiedTerm) {
|
|
83
|
+
if (_.trim(_.toLower(unVerifiedTerm.term)) === _.trim(_.toLower(match[1]))) {
|
|
84
|
+
inUnverifiedArray = true;
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
if (inGlossary.length === 0 && !inUnverifiedArray) {
|
|
88
|
+
unVerifiedTerms.push(new GlossaryTerm_1.default({ term: _.trim(match[1]), definition: 'n/a' }));
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
while ((match = regex.exec(content)) !== null) {
|
|
92
|
+
_loop_1();
|
|
93
|
+
}
|
|
94
|
+
return unVerifiedTerms;
|
|
95
|
+
};
|
|
96
|
+
GlossaryHelper.renderGlossaryWordsHtml = function (content, glossary) {
|
|
97
|
+
var _this = this;
|
|
98
|
+
var regex = this.glossaryRegex;
|
|
99
|
+
var currentGlossary = glossary;
|
|
100
|
+
var match;
|
|
101
|
+
while ((match = regex.exec(content)) !== null) {
|
|
102
|
+
// This is necessary to avoid infinite loops with zero-width matches
|
|
103
|
+
if (match.index === regex.lastIndex) {
|
|
104
|
+
regex.lastIndex++;
|
|
105
|
+
}
|
|
106
|
+
// The result can be accessed through the `m`-variable.
|
|
107
|
+
currentGlossary.forEach(function (term) {
|
|
108
|
+
if (_.trim(_.toLower(match[1])) === _.trim(_.toLower(term.term))) {
|
|
109
|
+
content = content.replace(match[0], _this.makeToolTip(term, match[1]));
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
return content;
|
|
114
|
+
};
|
|
115
|
+
GlossaryHelper.glossaryRegex = /<span.*?.class="glossary-word".*?>(.*?)<\/span>/g;
|
|
116
|
+
return GlossaryHelper;
|
|
117
|
+
}());
|
|
118
|
+
exports.default = GlossaryHelper;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var GlossaryTerm = /** @class */ (function () {
|
|
4
|
+
function GlossaryTerm(params) {
|
|
5
|
+
this.alternate_forms = null;
|
|
6
|
+
this.related_term = null;
|
|
7
|
+
this.required = ['term', 'definition'];
|
|
8
|
+
this.required.forEach(function (field) {
|
|
9
|
+
if (!params[field]) {
|
|
10
|
+
throw new Error('Glossary term ' + field + ' is required');
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
this.term = params.term;
|
|
14
|
+
this.definition = params.definition;
|
|
15
|
+
this.alternate_forms = params.alternate_forms || null;
|
|
16
|
+
this.related_term = params.related_term || null;
|
|
17
|
+
}
|
|
18
|
+
GlossaryTerm.toString = function () {
|
|
19
|
+
};
|
|
20
|
+
return GlossaryTerm;
|
|
21
|
+
}());
|
|
22
|
+
exports.default = GlossaryTerm;
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import * as mathLiveObject from 'mathlive';
|
|
2
|
+
export default class MathHelper {
|
|
3
|
+
/**
|
|
4
|
+
* expose mathlive object
|
|
5
|
+
*/
|
|
6
|
+
static Mathlive: typeof mathLiveObject;
|
|
7
|
+
/**
|
|
8
|
+
* containsMathML
|
|
9
|
+
* @param content
|
|
10
|
+
* checks is string contains mathml
|
|
11
|
+
* @return boolean
|
|
12
|
+
*
|
|
13
|
+
*/
|
|
14
|
+
static containsMathML(content: string): boolean;
|
|
15
|
+
/**
|
|
16
|
+
* containsLatex
|
|
17
|
+
* @param content
|
|
18
|
+
* checks is string contains latex
|
|
19
|
+
* @return boolean
|
|
20
|
+
*
|
|
21
|
+
*/
|
|
22
|
+
static containsLatex(content: string): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* containSREnhancedLatex
|
|
25
|
+
* @param content
|
|
26
|
+
* checks is string contains latex
|
|
27
|
+
* @return boolean
|
|
28
|
+
*
|
|
29
|
+
*/
|
|
30
|
+
static containSREnhancedLatex(content: string): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* convertMathMLToLatex
|
|
33
|
+
* @param content
|
|
34
|
+
* attempts to find mml in content string and replace it with latex equivalent
|
|
35
|
+
* @return string
|
|
36
|
+
*/
|
|
37
|
+
static convertContentMathMLtoLatex(content: string): string;
|
|
38
|
+
/**
|
|
39
|
+
* wrapMathContentForTinyMCE
|
|
40
|
+
* @param content
|
|
41
|
+
* wrap content in span with math class for tinymce
|
|
42
|
+
* @return string
|
|
43
|
+
*/
|
|
44
|
+
static wrapMathContentForTinyMCE(content: string): string;
|
|
45
|
+
/**
|
|
46
|
+
* check Math Content Wrapped For TMCE
|
|
47
|
+
* @param content
|
|
48
|
+
* checks all content
|
|
49
|
+
* @return string
|
|
50
|
+
*/
|
|
51
|
+
static checkMathContentWrappedForTMCE(content: string): boolean;
|
|
52
|
+
/**
|
|
53
|
+
* convertContentLatexToHtml
|
|
54
|
+
* @param content
|
|
55
|
+
* attempts to find latex in content string and replace it with latex equivalent
|
|
56
|
+
* @return string
|
|
57
|
+
*
|
|
58
|
+
*/
|
|
59
|
+
static convertContentLatexToHtml(content: string): string;
|
|
60
|
+
/**
|
|
61
|
+
* convertContentSREnhancedLatexToHtml
|
|
62
|
+
* @param content
|
|
63
|
+
* attempts to find latex in content string and place custom SR text on renderer math div
|
|
64
|
+
* @return string
|
|
65
|
+
*
|
|
66
|
+
*/
|
|
67
|
+
static convertContentSREnhancedLatexToHtml(content: string): string;
|
|
68
|
+
/**
|
|
69
|
+
* convertMathContentToHtml
|
|
70
|
+
* @param content
|
|
71
|
+
* attempts to find any math format in content string and convert it to HTML
|
|
72
|
+
* @return string
|
|
73
|
+
*
|
|
74
|
+
*/
|
|
75
|
+
static convertMathContentToHtml(content: string): string;
|
|
76
|
+
/**
|
|
77
|
+
* convertMathMLToLatex
|
|
78
|
+
* @param content
|
|
79
|
+
* converts mml to latex
|
|
80
|
+
*
|
|
81
|
+
*/
|
|
82
|
+
static convertMathMLToLatex(content: string): string;
|
|
83
|
+
/**
|
|
84
|
+
* parseSREnhancedLatexString
|
|
85
|
+
* @param content
|
|
86
|
+
* parse SR enhanced latex string and return Object
|
|
87
|
+
* @return Object
|
|
88
|
+
*
|
|
89
|
+
*/
|
|
90
|
+
static parseSREnhancedLatexString(content: string): object;
|
|
91
|
+
/**
|
|
92
|
+
* parseSRLatex
|
|
93
|
+
* @param content
|
|
94
|
+
* parse latex expression from string
|
|
95
|
+
* @return any
|
|
96
|
+
*
|
|
97
|
+
*/
|
|
98
|
+
static parseLatexString(content: string): string;
|
|
99
|
+
}
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var mathLiveObject = require("mathlive");
|
|
4
|
+
var _ = require("lodash");
|
|
5
|
+
var Mathml2latex = require('mathml-to-latex');
|
|
6
|
+
var MathHelper = /** @class */ (function () {
|
|
7
|
+
function MathHelper() {
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* containsMathML
|
|
11
|
+
* @param content
|
|
12
|
+
* checks is string contains mathml
|
|
13
|
+
* @return boolean
|
|
14
|
+
*
|
|
15
|
+
*/
|
|
16
|
+
MathHelper.containsMathML = function (content) {
|
|
17
|
+
var regex = /\<math.*?>.*?<\/math>/s;
|
|
18
|
+
return regex.exec(content) !== null;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* containsLatex
|
|
22
|
+
* @param content
|
|
23
|
+
* checks is string contains latex
|
|
24
|
+
* @return boolean
|
|
25
|
+
*
|
|
26
|
+
*/
|
|
27
|
+
MathHelper.containsLatex = function (content) {
|
|
28
|
+
var regex = /\$\$.*?\$\$/g;
|
|
29
|
+
return regex.exec(content) !== null;
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* containSREnhancedLatex
|
|
33
|
+
* @param content
|
|
34
|
+
* checks is string contains latex
|
|
35
|
+
* @return boolean
|
|
36
|
+
*
|
|
37
|
+
*/
|
|
38
|
+
MathHelper.containSREnhancedLatex = function (content) {
|
|
39
|
+
var regex = /\*\*.*?\*\*/g;
|
|
40
|
+
return regex.exec(content) !== null;
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* convertMathMLToLatex
|
|
44
|
+
* @param content
|
|
45
|
+
* attempts to find mml in content string and replace it with latex equivalent
|
|
46
|
+
* @return string
|
|
47
|
+
*/
|
|
48
|
+
MathHelper.convertContentMathMLtoLatex = function (content) {
|
|
49
|
+
var regex = /\<math.*?>.*?<\/math>/g;
|
|
50
|
+
var matches = content.match(regex);
|
|
51
|
+
if (matches) {
|
|
52
|
+
matches.forEach(function (match) {
|
|
53
|
+
content = content.replace(match, "$$$" + Mathml2latex.convert(match) + '$$$');
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
return content;
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* wrapMathContentForTinyMCE
|
|
60
|
+
* @param content
|
|
61
|
+
* wrap content in span with math class for tinymce
|
|
62
|
+
* @return string
|
|
63
|
+
*/
|
|
64
|
+
MathHelper.wrapMathContentForTinyMCE = function (content) {
|
|
65
|
+
var regex = /(\*\*|\$\$)(.*?)\1/g;
|
|
66
|
+
var matches = content.match(regex);
|
|
67
|
+
if (matches) {
|
|
68
|
+
matches.forEach(function (match) {
|
|
69
|
+
var temp = match.replace(/\$\$/g, '');
|
|
70
|
+
if (match.match(/\$\$.*?\$\$/g) !== null) {
|
|
71
|
+
content = content.replace(match, "<span class ='windward-math-content'>$$$" +
|
|
72
|
+
temp +
|
|
73
|
+
'$$$</span>');
|
|
74
|
+
}
|
|
75
|
+
if (match.match(/\*\*(.*?)\*\*/g) !== null) {
|
|
76
|
+
content = content.replace(match, "<span class ='windward-math-content'>" +
|
|
77
|
+
match +
|
|
78
|
+
'</span>');
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
return content;
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* check Math Content Wrapped For TMCE
|
|
86
|
+
* @param content
|
|
87
|
+
* checks all content
|
|
88
|
+
* @return string
|
|
89
|
+
*/
|
|
90
|
+
MathHelper.checkMathContentWrappedForTMCE = function (content) {
|
|
91
|
+
var regex = /\<span class ='windward-math-content'>(\*\*|\$\$)(.*?)\1<\/span>/g;
|
|
92
|
+
return regex.exec(content) !== null;
|
|
93
|
+
};
|
|
94
|
+
/**
|
|
95
|
+
* convertContentLatexToHtml
|
|
96
|
+
* @param content
|
|
97
|
+
* attempts to find latex in content string and replace it with latex equivalent
|
|
98
|
+
* @return string
|
|
99
|
+
*
|
|
100
|
+
*/
|
|
101
|
+
MathHelper.convertContentLatexToHtml = function (content) {
|
|
102
|
+
var regex = /\$\$.*?\$\$/g;
|
|
103
|
+
var matches = content.match(regex);
|
|
104
|
+
if (matches) {
|
|
105
|
+
matches.forEach(function (match) {
|
|
106
|
+
content = content.replace(match, '<span tabindex="0" aria-label="' +
|
|
107
|
+
// @ts-ignore
|
|
108
|
+
mathLiveObject.convertLatexToSpeakableText(match) +
|
|
109
|
+
'"> <span tabindex="-1" >' +
|
|
110
|
+
mathLiveObject.convertLatexToMarkup(_.unescape(match)) +
|
|
111
|
+
'</span></span>');
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
return content;
|
|
115
|
+
};
|
|
116
|
+
/**
|
|
117
|
+
* convertContentSREnhancedLatexToHtml
|
|
118
|
+
* @param content
|
|
119
|
+
* attempts to find latex in content string and place custom SR text on renderer math div
|
|
120
|
+
* @return string
|
|
121
|
+
*
|
|
122
|
+
*/
|
|
123
|
+
MathHelper.convertContentSREnhancedLatexToHtml = function (content) {
|
|
124
|
+
var regex = /\*\*.*?\*\*/g;
|
|
125
|
+
var matches = content.match(regex);
|
|
126
|
+
if (matches) {
|
|
127
|
+
matches.forEach(function (match) {
|
|
128
|
+
var mathObject = JSON.parse(match.replace(/\*\*/g, ''));
|
|
129
|
+
content = content.replace(match, '<span tabindex="0" aria-label="' +
|
|
130
|
+
mathObject.sr_text +
|
|
131
|
+
'"> <span tabindex="-1" >' +
|
|
132
|
+
mathLiveObject.convertLatexToMarkup('$$' + _.unescape(mathObject.latex) + '$$') +
|
|
133
|
+
'</span></span>');
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
return content;
|
|
137
|
+
};
|
|
138
|
+
/**
|
|
139
|
+
* convertMathContentToHtml
|
|
140
|
+
* @param content
|
|
141
|
+
* attempts to find any math format in content string and convert it to HTML
|
|
142
|
+
* @return string
|
|
143
|
+
*
|
|
144
|
+
*/
|
|
145
|
+
MathHelper.convertMathContentToHtml = function (content) {
|
|
146
|
+
return MathHelper.convertContentSREnhancedLatexToHtml(MathHelper.convertContentLatexToHtml(MathHelper.convertContentMathMLtoLatex(content)));
|
|
147
|
+
};
|
|
148
|
+
/**
|
|
149
|
+
* convertMathMLToLatex
|
|
150
|
+
* @param content
|
|
151
|
+
* converts mml to latex
|
|
152
|
+
*
|
|
153
|
+
*/
|
|
154
|
+
MathHelper.convertMathMLToLatex = function (content) {
|
|
155
|
+
return Mathml2latex.convert(content);
|
|
156
|
+
};
|
|
157
|
+
/**
|
|
158
|
+
* parseSREnhancedLatexString
|
|
159
|
+
* @param content
|
|
160
|
+
* parse SR enhanced latex string and return Object
|
|
161
|
+
* @return Object
|
|
162
|
+
*
|
|
163
|
+
*/
|
|
164
|
+
MathHelper.parseSREnhancedLatexString = function (content) {
|
|
165
|
+
var regex = /\*\*.*?\*\*/g;
|
|
166
|
+
var matches = content.match(regex);
|
|
167
|
+
if (matches) {
|
|
168
|
+
var mathobject = JSON.parse(matches[0].replace(/\*\*/g, ''));
|
|
169
|
+
return mathobject;
|
|
170
|
+
}
|
|
171
|
+
return {};
|
|
172
|
+
};
|
|
173
|
+
/**
|
|
174
|
+
* parseSRLatex
|
|
175
|
+
* @param content
|
|
176
|
+
* parse latex expression from string
|
|
177
|
+
* @return any
|
|
178
|
+
*
|
|
179
|
+
*/
|
|
180
|
+
MathHelper.parseLatexString = function (content) {
|
|
181
|
+
var regex = /\$\$.*?\$\$/g;
|
|
182
|
+
var matches = content.match(regex);
|
|
183
|
+
if (matches) {
|
|
184
|
+
return matches[0].replace(/\$\$/g, '');
|
|
185
|
+
}
|
|
186
|
+
return '';
|
|
187
|
+
};
|
|
188
|
+
/**
|
|
189
|
+
* expose mathlive object
|
|
190
|
+
*/
|
|
191
|
+
MathHelper.Mathlive = mathLiveObject;
|
|
192
|
+
return MathHelper;
|
|
193
|
+
}());
|
|
194
|
+
exports.default = MathHelper;
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MathEditorPlugin = void 0;
|
|
4
|
+
var MathEditorPlugin = function (editor) {
|
|
5
|
+
var formula;
|
|
6
|
+
// ----- Events ----- //
|
|
7
|
+
editor.ui.registry.addIcon('insertMath', '<svg x="0px" y="0px"width="20px" height="20px" viewBox="0 0 445.878 445.878" style="enable-background:new 0 0 445.878 445.878;">' +
|
|
8
|
+
'<path d="M426.024,86.447H209.705l-84.911,298.911c-2.568,7.967-9.854,13.482-18.22,13.771c-0.236,0-0.464,0.006-0.688,0.006 c-8.092,0-15.41-4.924-18.436-12.478l-34.714-86.782H19.851C8.884,299.876,0,290.986,0,280.022 c0-10.965,8.893-19.854,19.851-19.854H66.18c8.109,0,15.421,4.941,18.436,12.483l19.237,48.09l72.472-260.218 c2.639-8.213,10.279-13.781,18.903-13.781h230.798c10.97,0,19.854,8.89,19.854,19.851S436.988,86.447,426.024,86.447z M436.723,353.227l-78.259-87.904l74.576-82.783c1.318-1.454,1.638-3.547,0.857-5.341c-0.804-1.791-2.577-2.946-4.54-2.946h-47.18 c-1.442,0-2.802,0.629-3.759,1.72l-50.059,58.047l-49.674-58.029c-0.939-1.103-2.317-1.738-3.771-1.738h-49.334 c-1.956,0-3.729,1.149-4.521,2.929c-0.81,1.785 0.479,3.875,0.824,5.332l73.743,82.81l-77.641,87.923 c-1.297,1.465-1.605,3.552 0.813,5.325c0.813,1.785,2.586,2.92,4.528,2.92h48.9c1.472,0,2.867-0.65,3.807-1.785l51.819-62.181 l53.05,62.229c0.951,1.11,2.328,1.743,3.782,1.743h49.97c1.962,0,3.735-1.141,4.527-2.926 C438.354,356.779,438.035,354.692,436.723,353.227z"/>' +
|
|
9
|
+
'</svg>');
|
|
10
|
+
editor.addCommand('equation-window', function (data) {
|
|
11
|
+
return editor.windowManager.openUrl({
|
|
12
|
+
url: '/plugins/tinymce/math',
|
|
13
|
+
title: 'Equation editor',
|
|
14
|
+
width: 800,
|
|
15
|
+
height: 600,
|
|
16
|
+
buttons: [
|
|
17
|
+
{
|
|
18
|
+
type: 'cancel',
|
|
19
|
+
text: 'cancel',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
type: 'custom',
|
|
23
|
+
text: 'submit',
|
|
24
|
+
primary: true,
|
|
25
|
+
},
|
|
26
|
+
],
|
|
27
|
+
onAction: function () {
|
|
28
|
+
if (data.currentTarget) {
|
|
29
|
+
editor.selection.select(data.currentTarget);
|
|
30
|
+
}
|
|
31
|
+
editor.selection.setContent(" <span class='windward-math-content'>" +
|
|
32
|
+
formula +
|
|
33
|
+
"</span>");
|
|
34
|
+
editor.windowManager.close();
|
|
35
|
+
setOnClickEquationContent(editor);
|
|
36
|
+
},
|
|
37
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
38
|
+
onMessage: function (instance, message) {
|
|
39
|
+
switch (message.mceAction) {
|
|
40
|
+
case 'equation-insert':
|
|
41
|
+
formula = message.content;
|
|
42
|
+
break;
|
|
43
|
+
case 'math-plugin-mounted':
|
|
44
|
+
window.parent.postMessage({ latex: data.latex }, '*');
|
|
45
|
+
break;
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
editor.ui.registry.addButton('mathButton', {
|
|
51
|
+
icon: 'insertMath',
|
|
52
|
+
onAction: function () {
|
|
53
|
+
editor.execCommand('equation-window', true);
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
editor.ui.registry.addMenuItem('math', {
|
|
57
|
+
text: 'Math',
|
|
58
|
+
icon: 'insertMath',
|
|
59
|
+
onAction: function () {
|
|
60
|
+
editor.execCommand('equation-window', true);
|
|
61
|
+
},
|
|
62
|
+
});
|
|
63
|
+
editor.on('init', function () {
|
|
64
|
+
setOnClickEquationContent(editor);
|
|
65
|
+
});
|
|
66
|
+
function setOnClickEquationContent(editor) {
|
|
67
|
+
var tinymceDoc = editor.getDoc();
|
|
68
|
+
var mqSpan = tinymceDoc.getElementsByClassName('windward-math-content');
|
|
69
|
+
// Add onclick listener to all equation content
|
|
70
|
+
for (var _i = 0, mqSpan_1 = mqSpan; _i < mqSpan_1.length; _i++) {
|
|
71
|
+
var equationContent = mqSpan_1[_i];
|
|
72
|
+
equationContent.contentEditable = 'true';
|
|
73
|
+
if (equationContent.onclick) {
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
equationContent.onclick = function (event) {
|
|
77
|
+
event.stopPropagation();
|
|
78
|
+
editor.execCommand('equation-window', {
|
|
79
|
+
latex: event.target.innerText,
|
|
80
|
+
currentTarget: event.target,
|
|
81
|
+
});
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
exports.MathEditorPlugin = MathEditorPlugin;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
user_upload: {
|
|
3
|
+
user_uploads: string;
|
|
4
|
+
dialog_view: string;
|
|
5
|
+
instructions: string;
|
|
6
|
+
instructions_none: string;
|
|
7
|
+
instructions_title: string;
|
|
8
|
+
must_save: string;
|
|
9
|
+
uploaded: string;
|
|
10
|
+
name: string;
|
|
11
|
+
size: string;
|
|
12
|
+
download: string;
|
|
13
|
+
};
|
|
14
|
+
image: {
|
|
15
|
+
title: string;
|
|
16
|
+
description: string;
|
|
17
|
+
no_image_url: string;
|
|
18
|
+
};
|
|
19
|
+
video: {
|
|
20
|
+
tabs: {
|
|
21
|
+
video: string;
|
|
22
|
+
poster: string;
|
|
23
|
+
preroll: string;
|
|
24
|
+
postroll: string;
|
|
25
|
+
};
|
|
26
|
+
forms: {
|
|
27
|
+
unsaved: string;
|
|
28
|
+
cancel: string;
|
|
29
|
+
confirm: string;
|
|
30
|
+
};
|
|
31
|
+
video: {
|
|
32
|
+
title: string;
|
|
33
|
+
configure_blurb: string;
|
|
34
|
+
not_configured_title: string;
|
|
35
|
+
edit_prompt: string;
|
|
36
|
+
autoplay: string;
|
|
37
|
+
controls: string;
|
|
38
|
+
loop: string;
|
|
39
|
+
muted: string;
|
|
40
|
+
disablepictureinpicture: string;
|
|
41
|
+
poster: string;
|
|
42
|
+
playback_rates: string;
|
|
43
|
+
rewind: string;
|
|
44
|
+
playsinline: string;
|
|
45
|
+
captionsmenu: string;
|
|
46
|
+
playlistmenu: string;
|
|
47
|
+
playlistautoadvance: string;
|
|
48
|
+
};
|
|
49
|
+
caption: {
|
|
50
|
+
title: string;
|
|
51
|
+
configure_blurb: string;
|
|
52
|
+
};
|
|
53
|
+
poster: {
|
|
54
|
+
title: string;
|
|
55
|
+
configure_blurb: string;
|
|
56
|
+
};
|
|
57
|
+
preroll: {
|
|
58
|
+
title: string;
|
|
59
|
+
configure_blurb: string;
|
|
60
|
+
};
|
|
61
|
+
postroll: {
|
|
62
|
+
title: string;
|
|
63
|
+
configure_blurb: string;
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
table: {
|
|
67
|
+
column: string;
|
|
68
|
+
row: string;
|
|
69
|
+
};
|
|
70
|
+
tab: {
|
|
71
|
+
add_tab: string;
|
|
72
|
+
delete_tab: string;
|
|
73
|
+
};
|
|
74
|
+
};
|
|
75
|
+
export default _default;
|