You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
23 lines
794 B
23 lines
794 B
|
2 years ago
|
/**
|
||
|
|
* Get the declared text direction for an element.
|
||
|
|
*
|
||
|
|
* @param {Node} element
|
||
|
|
* @returns {string|undefined}
|
||
|
|
*/
|
||
|
|
|
||
|
|
function getTextDirection (element) {
|
||
|
|
// There is another way to determine text direction using getComputedStyle(), as done here:
|
||
|
|
// https://github.com/pencil-js/text-direction/blob/2a235ce95089b3185acec3b51313cbba921b3811/text-direction.js
|
||
|
|
//
|
||
|
|
// We do not use that approach because we are interested specifically in the _declared_ text direction.
|
||
|
|
// If no text direction is declared, we have to provide our own explicit text direction so our
|
||
|
|
// bidirectional CSS style sheets work.
|
||
|
|
while (element && !element.dir) {
|
||
|
|
// eslint-disable-next-line no-param-reassign
|
||
|
|
element = element.parentNode
|
||
|
|
}
|
||
|
|
return element?.dir
|
||
|
|
}
|
||
|
|
|
||
|
|
export default getTextDirection
|