From 4582be1da5f8a49d465f44056856100b57cdec91 Mon Sep 17 00:00:00 2001 From: Svilen Markov <7613769+svilenmarkov@users.noreply.github.com> Date: Fri, 1 Nov 2024 22:57:06 +0000 Subject: [PATCH] Allow changing horizontal offset of popover --- internal/assets/static/js/popover.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/internal/assets/static/js/popover.js b/internal/assets/static/js/popover.js index 42a9b57..533feed 100644 --- a/internal/assets/static/js/popover.js +++ b/internal/assets/static/js/popover.js @@ -111,9 +111,10 @@ function repositionContainer() { const containerBounds = containerElement.getBoundingClientRect(); const containerInlinePadding = parseInt(containerComputedStyle.getPropertyValue("padding-inline")); - const targetBoundsWidthOffset = targetBounds.width * (activeTarget.dataset.popoverOffset || 0.5); + const targetBoundsWidthOffset = targetBounds.width * (activeTarget.dataset.popoverTargetOffset || 0.5); const position = activeTarget.dataset.popoverPosition || "below"; - const left = Math.round(targetBounds.left + targetBoundsWidthOffset - (containerBounds.width / 2)); + const popoverOffest = activeTarget.dataset.popoverOffset || 0.5; + const left = Math.round(targetBounds.left + targetBoundsWidthOffset - (containerBounds.width * popoverOffest)); if (left < 0) { containerElement.style.left = 0; @@ -126,7 +127,7 @@ function repositionContainer() { } else { containerElement.style.removeProperty("right"); containerElement.style.left = left + "px"; - containerElement.style.removeProperty("--triangle-offset"); + containerElement.style.setProperty("--triangle-offset", ((targetBounds.left + targetBoundsWidthOffset) - left - containerInlinePadding) + "px"); } const distanceFromTarget = activeTarget.dataset.popoverMargin || defaultDistanceFromTarget;