32 lines
860 B
JavaScript
32 lines
860 B
JavaScript
const ltrChars =
|
|
"A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02B8\u0300-\u0590\u0800-\u1FFF\u2C00-\uFB1C\uFDFE-\uFE6F\uFEFD-\uFFFF";
|
|
const rtlChars = "\u0591-\u07FF\uFB1D-\uFDFD\uFE70-\uFEFC";
|
|
const rtlDirCheck = new RegExp("^[^" + ltrChars + "]*[" + rtlChars + "]");
|
|
const ltrDirCheck = new RegExp("^[^" + rtlChars + "]*[" + ltrChars + "]");
|
|
let _siteDir;
|
|
|
|
export function isRTL(text) {
|
|
return rtlDirCheck.test(text);
|
|
}
|
|
|
|
export function isLTR(text) {
|
|
return ltrDirCheck.test(text);
|
|
}
|
|
|
|
export function setTextDirections($elem) {
|
|
$elem.find("*").each((i, e) => {
|
|
let $e = $(e),
|
|
textContent = $e.text();
|
|
if (textContent) {
|
|
isRTL(textContent) ? $e.attr("dir", "rtl") : $e.attr("dir", "ltr");
|
|
}
|
|
});
|
|
}
|
|
|
|
export function siteDir() {
|
|
if (!_siteDir) {
|
|
_siteDir = $("html").hasClass("rtl") ? "rtl" : "ltr";
|
|
}
|
|
return _siteDir;
|
|
}
|