UNPKG

@caspingus/lt

Version:

A utility library of helpers and extensions useful when working with Learnosity APIs.

606 lines (605 loc) 16.7 kB
import { r as e } from "../../extensionsFactory-hk5ijx1G.js"; //#region src/authoring/extensions/ui/languageTextDirection/index.js function t() {} function n(e, t) { let n = a(), o = LRNCKEDITOR.currentInstance.getSelectedHtml().getHtml(), c = LRNCKEDITOR.currentInstance.getData(), l = r(o); document.querySelector(".learnosity-question-editor").insertAdjacentHTML("beforeend", l); let u = document.getElementById("lrn__ltd_language"), d = document.getElementById("lrn__ltd_notranslate"); for (let e = 0; e < n.length; e++) { let t; e === 0 && (t = document.createElement("option"), t.value = "", t.text = "--", u.add(t)), t = document.createElement("option"), t.value = n[e].code, t.text = n[e].language, t.setAttribute("data-dir", n[e].direction), u.add(t); } let f = []; f.push(document.querySelector("#ltLanguageModal .lrn-qe-btn-default")), f.push(document.querySelector("#ltLanguageModal .lrn-qe-modal-btn-close")); for (let e = 0; e < f.length; e++) f[e].addEventListener("click", () => { t(o), document.getElementById("ltLanguageModal").remove(); }); document.querySelector("#ltLanguageModal .lrn-qe-btn-primary").addEventListener("click", () => { let e = s(o), n = {}; return document.getElementById("ltLanguageModal").remove(), u.selectedIndex > 0 && (n.direction = u.options[u.selectedIndex].getAttribute("data-dir"), n.code = u.options[u.selectedIndex].value), d.checked && (n.noTranslate = !0), t(i(n, e, o, c)); }); } function r() { return "\n <div class=\"lrn-qe lrn-qe-modal lt__languageModal\" style=\"display: block;\" id=\"ltLanguageModal\">\n <div class=\"lrn-qe-ui\">\n <div class=\"lrn-qe-modal-dialog\">\n <div class=\"lrn-qe-modal-dialog-inner\">\n <div class=\"lrn-qe-modal-header\">\n <div class=\"lrn-qe-form-label lrn-qe-h4 lrn-qe-section-header\">\n <h4 class=\"lrn-qe-heading\">Language support</h4>\n </div>\n <button type=\"button\" class=\"lrn-qe-btn lrn-qe-modal-btn-close\" aria-label=\"Close\" tabindex=\"0\">\n <span class=\"lrn-qe-sr-only\">Close</span>\n <span aria-role=\"presentation\" class=\"lrn-qe-i-cross\"></span>\n </button>\n </div>\n <div data-lrn-qe-selector=\"modal-outlet\">\n <div class=\"lrn-qe-modal-content\" data-lrn-qe-modal-section=\"content\">\n <div class=\"lrn-qe-form-group-wrapper\">\n <div class=\"lrn-qe-form-group\">\n <p><label class=\"lrn-qe-label lrn-qe-form-label\" for=\"lrn__ltd_language\">Choose language</label></p>\n <p>Specify the language for different parts of your content to enable accurate reading by screen\n readers and other accessibility tools.</p>\n <div class=\"lrn-qe-custom-select\">\n <select name=\"lrn__ltd_language\" id=\"lrn__ltd_language\" class=\"lrn__combobox lrn-qe-select lrn-qe-form-control\"></select>\n </div>\n </div>\n <div class=\"lrn-qe-form-group lrn-qe-padding-sm lt__border lrn-qe-margin-top-md\">\n <p><input id=\"lrn__ltd_notranslate\" type=\"checkbox\" class=\"lrn-qe-input\">\n <label class=\"lrn-qe-label lrn-qe-form-label lrn-qe-padding-left-xs\" for=\"lrn__ltd_notranslate\">Disable translation</label></p>\n <p>Adding this flag will turn off translation, preventing Google Translate and\n Author Aide from translating selected text.</p>\n </div>\n </div>\n <p class=\"lrn-qe-padding-top-sm\"><label class=\"lrn-qe-label lrn-qe-form-label\">Removing these settings</label></p>\n <ul>\n <li>For words or sentences, highlight the text and use the clear formatting button in the toolbar.</li>\n <li>For entire paragraph(s), right click anywhere in the text and choose \"Remove Style\" from the menu.</li>\n </ul>\n </div>\n <div class=\"lrn-qe-modal-footer\">\n <ul class=\"lrn-qe-ul\">\n <li class=\"lrn-qe-li lrn-qe-modal-footer-item lrn-qe-float-left\">\n <button type=\"button\" class=\"lrn-qe-btn lrn-qe-btn-default\"><span>Cancel</span></button>\n </li>&nbsp;\n <li class=\"lrn-qe-li lrn-qe-modal-footer-item\">\n <button type=\"button\" class=\"lrn-qe-btn lrn-qe-btn-primary\" data-lrn-qe-modal-action=\"confirm\"><span>Apply</span></button>\n </li>\n </ul>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n "; } function i(e, t, n, r) { let i = "", a = ""; if (e?.code && (i += ` lang="${e.code}" dir="${e.direction}"`), e?.noTranslate && (i += " translate=\"no\""), t === "block") switch (o(n)) { case 0: a = `<p${i}>${n}</p><p>&nbsp;</p>`; break; case 1: a = n.replace("<p", `<p${i}`); break; default: a = `<div${i}>${n}</div>`; break; } else r.replace(/&nbsp;/g, "").includes(`<p>${n.replace(/&nbsp;/g, "")}</p>`) ? a = `<div${i}><p>${n}</p></div>` : n.length && (a = `<span${i}>${n}</span>`); return a; } function a() { return [ { language: "Afrikaans", code: "af", direction: "ltr" }, { language: "Albanian", code: "sq", direction: "ltr" }, { language: "Amharic", code: "am", direction: "ltr" }, { language: "Arabic", code: "ar", direction: "rtl" }, { language: "Armenian", code: "hy", direction: "ltr" }, { language: "Azerbaijani", code: "az", direction: "ltr" }, { language: "Basque", code: "eu", direction: "ltr" }, { language: "Belarusian", code: "be", direction: "ltr" }, { language: "Bengali", code: "bn", direction: "ltr" }, { language: "Bosnian", code: "bs", direction: "ltr" }, { language: "Bulgarian", code: "bg", direction: "ltr" }, { language: "Catalan", code: "ca", direction: "ltr" }, { language: "Cebuano", code: "ceb", direction: "ltr" }, { language: "Chichewa", code: "ny", direction: "ltr" }, { language: "Chinese (Simplified)", code: "zh-Hans", direction: "ltr" }, { language: "Chinese (Traditional)", code: "zh-Hant", direction: "ltr" }, { language: "Corsican", code: "co", direction: "ltr" }, { language: "Haitian Creole", code: "ht", direction: "ltr" }, { language: "Croatian", code: "hr", direction: "ltr" }, { language: "Czech", code: "cs", direction: "ltr" }, { language: "Danish", code: "da", direction: "ltr" }, { language: "Dutch", code: "nl", direction: "ltr" }, { language: "English", code: "en", direction: "ltr" }, { language: "Esperanto", code: "eo", direction: "ltr" }, { language: "Estonian", code: "et", direction: "ltr" }, { language: "Finnish", code: "fi", direction: "ltr" }, { language: "French", code: "fr", direction: "ltr" }, { language: "Frisian", code: "fy", direction: "ltr" }, { language: "Galician", code: "gl", direction: "ltr" }, { language: "Georgian", code: "ka", direction: "ltr" }, { language: "German", code: "de", direction: "ltr" }, { language: "Greek", code: "el", direction: "ltr" }, { language: "Gujarati", code: "gu", direction: "ltr" }, { language: "Hausa", code: "ha", direction: "ltr" }, { language: "Hawaiian", code: "haw", direction: "ltr" }, { language: "Hebrew", code: "he", direction: "rtl" }, { language: "Hindi", code: "hi", direction: "ltr" }, { language: "Hmong", code: "hmn", direction: "ltr" }, { language: "Hungarian", code: "hu", direction: "ltr" }, { language: "Icelandic", code: "is", direction: "ltr" }, { language: "Igbo", code: "ig", direction: "ltr" }, { language: "Indonesian", code: "id", direction: "ltr" }, { language: "Irish", code: "ga", direction: "ltr" }, { language: "Italian", code: "it", direction: "ltr" }, { language: "Japanese", code: "ja", direction: "ltr" }, { language: "Javanese", code: "jv", direction: "ltr" }, { language: "Kannada", code: "kn", direction: "ltr" }, { language: "Kazakh", code: "kk", direction: "ltr" }, { language: "Khmer", code: "km", direction: "ltr" }, { language: "Kinyarwanda", code: "rw", direction: "ltr" }, { language: "Korean", code: "ko", direction: "ltr" }, { language: "Kurdish (Kurmanji)", code: "ku", direction: "ltr" }, { language: "Kyrgyz", code: "ky", direction: "ltr" }, { language: "Lao", code: "lo", direction: "ltr" }, { language: "Latin", code: "la", direction: "ltr" }, { language: "Latvian", code: "lv", direction: "ltr" }, { language: "Lithuanian", code: "lt", direction: "ltr" }, { language: "Luxembourgish", code: "lb", direction: "ltr" }, { language: "Macedonian", code: "mk", direction: "ltr" }, { language: "Malagasy", code: "mg", direction: "ltr" }, { language: "Malay", code: "ms", direction: "ltr" }, { language: "Malayalam", code: "ml", direction: "ltr" }, { language: "Maltese", code: "mt", direction: "ltr" }, { language: "Maori", code: "mi", direction: "ltr" }, { language: "Marathi", code: "mr", direction: "ltr" }, { language: "Mongolian", code: "mn", direction: "ltr" }, { language: "Myanmar (Burmese)", code: "my", direction: "ltr" }, { language: "Nepali", code: "ne", direction: "ltr" }, { language: "Norwegian", code: "no", direction: "ltr" }, { language: "Odia", code: "or", direction: "ltr" }, { language: "Pashto", code: "ps", direction: "rtl" }, { language: "Persian", code: "fa", direction: "rtl" }, { language: "Polish", code: "pl", direction: "ltr" }, { language: "Portuguese", code: "pt", direction: "ltr" }, { language: "Punjabi", code: "pa", direction: "ltr" }, { language: "Romanian", code: "ro", direction: "ltr" }, { language: "Russian", code: "ru", direction: "ltr" }, { language: "Samoan", code: "sm", direction: "ltr" }, { language: "Scots Gaelic", code: "gd", direction: "ltr" }, { language: "Serbian Cyrilic", code: "sr-Cyrl", direction: "ltr" }, { language: "Sesotho", code: "st", direction: "ltr" }, { language: "Shona", code: "sn", direction: "ltr" }, { language: "Sindhi", code: "sd", direction: "rtl" }, { language: "Sinhala", code: "si", direction: "ltr" }, { language: "Slovak", code: "sk", direction: "ltr" }, { language: "Slovenian", code: "sl", direction: "ltr" }, { language: "Somali", code: "so", direction: "ltr" }, { language: "Spanish", code: "es", direction: "ltr" }, { language: "Sundanese", code: "su", direction: "ltr" }, { language: "Swahili", code: "sw", direction: "ltr" }, { language: "Swedish", code: "sv", direction: "ltr" }, { language: "Filipino (Tagalog)", code: "tl", direction: "ltr" }, { language: "Tajik", code: "tg", direction: "ltr" }, { language: "Tamil", code: "ta", direction: "ltr" }, { language: "Tatar", code: "tt", direction: "ltr" }, { language: "Telugu", code: "te", direction: "ltr" }, { language: "Thai", code: "th", direction: "ltr" }, { language: "Turkish", code: "tr", direction: "ltr" }, { language: "Turkmen", code: "tk", direction: "ltr" }, { language: "Ukrainian", code: "uk", direction: "ltr" }, { language: "Urdu", code: "ur", direction: "rtl" }, { language: "Uyghur", code: "ug", direction: "rtl" }, { language: "Uzbek", code: "uz", direction: "ltr" }, { language: "Vietnamese", code: "vi", direction: "ltr" }, { language: "Welsh", code: "cy", direction: "ltr" }, { language: "Xhosa", code: "xh", direction: "ltr" }, { language: "Yiddish", code: "yi", direction: "rtl" }, { language: "Yoruba", code: "yo", direction: "ltr" }, { language: "Zulu", code: "zu", direction: "ltr" } ]; } function o(e) { let t = e.match(/<p>.*?<\/p>/gs); return t ? t.length : 0; } function s(e) { return o(e) <= 1 ? "inline" : "block"; } function c() { return "\n /* Learnosity language and no translation styles */\n /* Used to see elements inside the rich-text editor that have language or translate styles applied */\n .lrn.lrn-author .lt__languageModal {\n h4 {\n font-size: 1.43em;\n }\n\n label {\n font-weight: bold;\n }\n\n input[type=\"checkbox\"] {\n height: 16px;\n width: 16px;\n vertical-align: text-bottom;\n margin: 0;\n }\n\n .lt__border {\n border: 1px solid #eaeaea;\n }\n }\n\n .lrn-qe-form-group-wrapper {\n .lrn-qe-form-control-ckeditor *[translate],\n .lrn-qe-form-control-ckeditor *[lang] {\n border: 2px dashed #696969;\n padding: 5px;\n position: relative;\n }\n\n .lrn-qe .lrn-qe-ui div[translate],\n .lrn-qe .lrn-qe-ui div[lang] {\n margin-bottom: 1em;\n\n p:last-child {\n margin-bottom: 0;\n }\n }\n\n .lrn-qe-form-control-ckeditor *[translate]::after,\n .lrn-qe-form-control-ckeditor *[lang]::after {\n content: \"No translate\";\n position: absolute;\n left: 100px;\n top: 0;\n transform: translateX(-50%);\n background-color: #333;\n color: #fff;\n padding: 5px;\n border-radius: 4px;\n white-space: nowrap;\n opacity: 0;\n visibility: hidden;\n transition: opacity 0.3s;\n z-index: 10000000;\n }\n\n .lrn-qe-form-control-ckeditor *[lang]::after {\n content: \"Language\";\n }\n\n .lrn-qe-form-control-ckeditor *[translate][lang]::after {\n content: \"No translate and Language\";\n }\n\n /* Show tooltip on hover */\n .lrn-qe-form-control-ckeditor *[translate]:hover::after,\n .lrn-qe-form-control-ckeditor *[lang]:hover::after {\n opacity: 1;\n visibility: visible;\n }\n\n /* Force the icon to be the right size */\n .lrn-qe-ckeditor-toolbar .cke_button__addlanguageattribute .cke_button__addlanguageattribute_icon {\n background-position: -3px !important;\n background-size: 22px !important;\n }\n\n /* Size the \"content\" textarea and make is resizable */\n .lrn-qe .lrn-qe-modal-content .lrn-qe-form-group-wrapper textarea#lrn__ltd_content {\n resize: vertical;\n min-height: 4em;\n }\n }\n "; } var l = e("languageTextDirection", t, { addLanguageAttribute: n, getStyles: c }); //#endregion export { l as languageTextDirection };