UNPKG

@flexis/ui

Version:

Styleless React Components

42 lines (37 loc) 2.84 kB
/** * Move element from overflow. * @param element - Element to set position. * @param positionTop - Top position of element. * @param positionLeft - Left position of element. * @return Overflow offset was set or not. */ export default function setOverflowOffset(element, positionTop, positionLeft) { var _document$documentEle = document.documentElement, clientWidth = _document$documentEle.clientWidth, clientHeight = _document$documentEle.clientHeight; var style = element.style; var _element$getBoundingC = element.getBoundingClientRect(), top = _element$getBoundingC.top, left = _element$getBoundingC.left, width = _element$getBoundingC.width, height = _element$getBoundingC.height; var right = clientWidth - (left + width); var bottom = clientHeight - (top + height); var withOverflowOffset = false; if (top < 0) { style.top = "".concat(positionTop - top, "px"); withOverflowOffset = true; } else if (bottom < 0) { style.top = "".concat(positionTop + bottom, "px"); withOverflowOffset = true; } if (right < 0) { style.left = "".concat(positionLeft + right, "px"); withOverflowOffset = true; } else if (left < 0) { style.left = "".concat(positionLeft - left, "px"); withOverflowOffset = true; } return withOverflowOffset; } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2NvbW1vbi9zZXRPdmVyZmxvd09mZnNldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztBQU9BLGVBQWMsU0FBVSxpQkFBVixDQUNiLE9BRGEsRUFFYixXQUZhLEVBR2IsWUFIYSxFQUdPO0FBQUEsOEJBTWhCLFFBQVEsQ0FBQyxlQU5PO0FBQUEsTUFJbkIsV0FKbUIseUJBSW5CLFdBSm1CO0FBQUEsTUFLbkIsWUFMbUIseUJBS25CLFlBTG1CO0FBQUEsTUFRbkIsS0FSbUIsR0FTaEIsT0FUZ0IsQ0FRbkIsS0FSbUI7O0FBQUEsOEJBZWhCLE9BQU8sQ0FBQyxxQkFBUixFQWZnQjtBQUFBLE1BV25CLEdBWG1CLHlCQVduQixHQVhtQjtBQUFBLE1BWW5CLElBWm1CLHlCQVluQixJQVptQjtBQUFBLE1BYW5CLEtBYm1CLHlCQWFuQixLQWJtQjtBQUFBLE1BY25CLE1BZG1CLHlCQWNuQixNQWRtQjs7QUFnQnBCLE1BQU0sS0FBSyxHQUFHLFdBQVcsSUFBSSxJQUFJLEdBQUcsS0FBWCxDQUF6QjtBQUNBLE1BQU0sTUFBTSxHQUFHLFlBQVksSUFBSSxHQUFHLEdBQUcsTUFBVixDQUEzQjtBQUNBLE1BQUksa0JBQWtCLEdBQUcsS0FBekI7O0FBRUEsTUFBSSxHQUFHLEdBQUcsQ0FBVixFQUFhO0FBQ1osSUFBQSxLQUFLLENBQUMsR0FBTixhQUFlLFdBQVcsR0FBRyxHQUE3QjtBQUNBLElBQUEsa0JBQWtCLEdBQUcsSUFBckI7QUFDQSxHQUhELE1BSUEsSUFBSSxNQUFNLEdBQUcsQ0FBYixFQUFnQjtBQUNmLElBQUEsS0FBSyxDQUFDLEdBQU4sYUFBZSxXQUFXLEdBQUcsTUFBN0I7QUFDQSxJQUFBLGtCQUFrQixHQUFHLElBQXJCO0FBQ0E7O0FBRUQsTUFBSSxLQUFLLEdBQUcsQ0FBWixFQUFlO0FBQ2QsSUFBQSxLQUFLLENBQUMsSUFBTixhQUFnQixZQUFZLEdBQUcsS0FBL0I7QUFDQSxJQUFBLGtCQUFrQixHQUFHLElBQXJCO0FBQ0EsR0FIRCxNQUlBLElBQUksSUFBSSxHQUFHLENBQVgsRUFBYztBQUNiLElBQUEsS0FBSyxDQUFDLElBQU4sYUFBZ0IsWUFBWSxHQUFHLElBQS9CO0FBQ0EsSUFBQSxrQkFBa0IsR0FBRyxJQUFyQjtBQUNBOztBQUVELFNBQU8sa0JBQVA7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==