diff options
Diffstat (limited to 'popperjs/package/lib/dom-utils/getWindowScrollBarX.js.flow')
-rw-r--r-- | popperjs/package/lib/dom-utils/getWindowScrollBarX.js.flow | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/popperjs/package/lib/dom-utils/getWindowScrollBarX.js.flow b/popperjs/package/lib/dom-utils/getWindowScrollBarX.js.flow new file mode 100644 index 0000000..9d0d86d --- /dev/null +++ b/popperjs/package/lib/dom-utils/getWindowScrollBarX.js.flow @@ -0,0 +1,18 @@ +// @flow +import getBoundingClientRect from './getBoundingClientRect'; +import getDocumentElement from './getDocumentElement'; +import getWindowScroll from './getWindowScroll'; + +export default function getWindowScrollBarX(element: Element): number { + // If <html> has a CSS width greater than the viewport, then this will be + // incorrect for RTL. + // Popper 1 is broken in this case and never had a bug report so let's assume + // it's not an issue. I don't think anyone ever specifies width on <html> + // anyway. + // Browsers where the left scrollbar doesn't cause an issue report `0` for + // this (e.g. Edge 2019, IE11, Safari) + return ( + getBoundingClientRect(getDocumentElement(element)).left + + getWindowScroll(element).scrollLeft + ); +} |