Skip to content

Commit f262ad7

Browse files
feat(plugins/terms): rtl support
1 parent 695b9de commit f262ad7

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

src/js/term/utils.ts

+7-3
Original file line numberDiff line numberDiff line change
@@ -76,10 +76,14 @@ export function setDefinitionPosition(
7676
const {left: definitionParentLeft} = definitionParent.getBoundingClientRect();
7777

7878
// If definition not fit document change base alignment
79-
const definitionRightCoordinate = definitionWidth + Number(getCoords(termElement).left);
80-
const fitDefinitionDocument =
81-
document.body.clientWidth > definitionRightCoordinate ? 0 : definitionWidth - termWidth;
79+
const definitionLeftCoordinate = Number(getCoords(termElement).left);
80+
const definitionRightCoordinate = definitionWidth + definitionLeftCoordinate;
8281

82+
const definitionOutOfScreenOnLeft = definitionLeftCoordinate - definitionWidth < 0;
83+
const definitionOutOfScreenOnRight = definitionRightCoordinate > document.body.clientWidth;
84+
85+
const isAlignSwapped = definitionOutOfScreenOnRight || document.dir === "rtl";
86+
const fitDefinitionDocument = isAlignSwapped && !definitionOutOfScreenOnLeft ? definitionWidth - termWidth : 0;
8387
const customHeaderTop = getCoords(definitionParent).top - definitionParent.offsetTop;
8488

8589
definitionElement.style.top =

0 commit comments

Comments
 (0)