aboutsummaryrefslogtreecommitdiff
path: root/src/components/popover/popover.js
diff options
context:
space:
mode:
authorShpuld Shpuldson <shp@cock.li>2021-03-15 11:02:16 +0200
committerShpuld Shpuldson <shp@cock.li>2021-03-15 11:02:16 +0200
commit19fc7dda9e6d3513c8b57d7bae2bbe3c9ab87ced (patch)
treefe55c1e48af9b7c16e9735c03dc0b7caa36c962d /src/components/popover/popover.js
parentae159f6ad8d23ce0e3d2d765bf694f1a614c6df4 (diff)
parent184364c7e06a982b48bbe6d913f02a73dd428aef (diff)
merge conflict, use v-slot:trigger, fix popover svg dimensions bug
Diffstat (limited to 'src/components/popover/popover.js')
-rw-r--r--src/components/popover/popover.js7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/components/popover/popover.js b/src/components/popover/popover.js
index 391d6422..bc6cd8e7 100644
--- a/src/components/popover/popover.js
+++ b/src/components/popover/popover.js
@@ -56,6 +56,9 @@ const Popover = {
// Popover will be anchored around this element, trigger ref is the container, so
// its children are what are inside the slot. Expect only one slot="trigger".
const anchorEl = (this.$refs.trigger && this.$refs.trigger.children[0]) || this.$el
+ // SVGs don't have offsetWidth/Height, use fallback
+ const anchorWidth = anchorEl.offsetWidth || anchorEl.clientWidth
+ const anchorHeight = anchorEl.offsetHeight || anchorEl.clientHeight
const screenBox = anchorEl.getBoundingClientRect()
// Screen position of the origin point for popover
const origin = { x: screenBox.left + screenBox.width * 0.5, y: screenBox.top }
@@ -114,11 +117,11 @@ const Popover = {
const yOffset = (this.offset && this.offset.y) || 0
const translateY = usingTop
- ? -anchorEl.offsetHeight + vPadding - yOffset - content.offsetHeight
+ ? -anchorHeight + vPadding - yOffset - content.offsetHeight
: yOffset
const xOffset = (this.offset && this.offset.x) || 0
- const translateX = (anchorEl.offsetWidth * 0.5) - content.offsetWidth * 0.5 + horizOffset + xOffset
+ const translateX = anchorWidth * 0.5 - content.offsetWidth * 0.5 + horizOffset + xOffset
// Note, separate translateX and translateY avoids blurry text on chromium,
// single translate or translate3d resulted in blurry text.