UNPKG

react-elegant-ui

Version:

Elegant UI components, made by BEM best practices for react

41 lines 1.29 kB
// Don't use const from popper such as they is not export in commonjs bundle // This make problems while testing (for example with jest) // Original issue: https://github.com/popperjs/popper-core/issues/1259 export var top = 'top'; export var left = 'left'; export var right = 'right'; export var bottom = 'bottom'; export function getLayoutRect(element) { return { x: element.offsetLeft, y: element.offsetTop, width: element.offsetWidth, height: element.offsetHeight }; } export default function getBasePlacement(placement) { return placement.split('-')[0]; } export function distanceAndSkiddingToXY(placement, offset) { var basePlacement = getBasePlacement(placement); var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1; var skidding = offset[0] || 0; var distance = (offset[1] || 0) * invertDistance; return [left, right].indexOf(basePlacement) >= 0 ? { x: distance, y: skidding } : { x: skidding, y: distance }; } export function getElementsFromRefs(boundary) { var refs = Array.isArray(boundary) ? boundary : [boundary]; var elements = refs.reduce(function (acc, ref) { if (ref && ref.current) { acc.push(ref.current); } return acc; }, []); return elements.length ? elements : undefined; }