Set multiselect panel width and clamp panel inside viewport

This commit is contained in:
2026-05-20 13:16:57 +02:00
parent 674abc8ad6
commit 25c7654534
2 changed files with 17 additions and 14 deletions
+14 -6
View File
@@ -404,15 +404,23 @@
return;
}
const panelRect = panel.getBoundingClientRect();
if (panelRect.right > window.innerWidth) {
demo.dataset.align = 'right';
const viewportInset = 16;
demo.dataset.align = 'left';
panel.style.left = '0px';
panel.style.right = 'auto';
const initialRect = panel.getBoundingClientRect();
let offsetX = 0;
if (initialRect.right > window.innerWidth - viewportInset) {
offsetX -= initialRect.right - (window.innerWidth - viewportInset);
}
const alignedPanelRect = panel.getBoundingClientRect();
if (alignedPanelRect.left < 0) {
demo.dataset.align = 'left';
if (initialRect.left + offsetX < viewportInset) {
offsetX += viewportInset - (initialRect.left + offsetX);
}
panel.style.left = `${offsetX}px`;
});
});