@caspingus/lt
Version:
A utility library of helpers and extensions useful when working with Learnosity APIs.
606 lines (605 loc) • 16.7 kB
JavaScript
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> \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> </p>`;
break;
case 1:
a = n.replace("<p", `<p${i}`);
break;
default:
a = `<div${i}>${n}</div>`;
break;
}
else r.replace(/ /g, "").includes(`<p>${n.replace(/ /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 };