all files / popper/utils/ getOffsetRect.js

100% Statements 7/7
100% Branches 2/2
100% Functions 1/1
100% Lines 7/7
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36                      79× 64× 64×               15×               79× 79×     79×    
import getWindowSizes from './getWindowSizes';
 
/**
 * Get the position of the given element, relative to its offset parent
 * @method
 * @memberof Popper.Utils
 * @param {Element} element
 * @return {Object} position - Coordinates of the element and its `scrollTop`
 */
export default function getOffsetRect(element) {
    let elementRect;
    if (element.nodeName === 'HTML') {
        const { width, height } = getWindowSizes();
        elementRect = {
            width,
            height,
            left: 0,
            top: 0,
        };
    }
    else {
        elementRect = {
            width: element.offsetWidth,
            height: element.offsetHeight,
            left: element.offsetLeft,
            top: element.offsetTop,
        };
    }
 
    elementRect.right = elementRect.left + elementRect.width;
    elementRect.bottom = elementRect.top + elementRect.height;
 
    // position
    return elementRect;
}