UNPKG

@yandex/ui

Version:

Yandex UI components

45 lines (44 loc) 1.91 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getElementsFromRefs = exports.distanceAndSkiddingToXY = exports.getLayoutRect = exports.bottom = exports.right = exports.left = exports.top = void 0; // Не используем константы из popper, так как они отсутствуют в commonjs сборке. // Например, при тестировании с помощью jest можно из-за этого столкнуться с непонятными проблемами. // https://github.com/popperjs/popper-core/issues/1259 exports.top = 'top'; exports.left = 'left'; exports.right = 'right'; exports.bottom = 'bottom'; function getLayoutRect(element) { return { x: element.offsetLeft, y: element.offsetTop, width: element.offsetWidth, height: element.offsetHeight, }; } exports.getLayoutRect = getLayoutRect; function getBasePlacement(placement) { return placement.split('-')[0]; } exports.default = getBasePlacement; function distanceAndSkiddingToXY(placement, offset) { var basePlacement = getBasePlacement(placement); var invertDistance = [exports.left, exports.top].indexOf(basePlacement) >= 0 ? -1 : 1; var skidding = offset[0] || 0; var distance = (offset[1] || 0) * invertDistance; return [exports.left, exports.right].indexOf(basePlacement) >= 0 ? { x: distance, y: skidding } : { x: skidding, y: distance }; } exports.distanceAndSkiddingToXY = distanceAndSkiddingToXY; 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; } exports.getElementsFromRefs = getElementsFromRefs;