UNPKG

@flexis/ui

Version:

Styleless React Components

52 lines (43 loc) 3.05 kB
"use strict"; var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property"); _Object$defineProperty(exports, "__esModule", { value: true }); exports.default = setOverflowOffset; /** * 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. */ 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2NvbW1vbi9zZXRPdmVyZmxvd09mZnNldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7Ozs7Ozs7QUFPYyxTQUFVLGlCQUFWLENBQ2IsT0FEYSxFQUViLFdBRmEsRUFHYixZQUhhLEVBR087QUFBQSw4QkFNaEIsUUFBUSxDQUFDLGVBTk87QUFBQSxNQUluQixXQUptQix5QkFJbkIsV0FKbUI7QUFBQSxNQUtuQixZQUxtQix5QkFLbkIsWUFMbUI7QUFBQSxNQVFuQixLQVJtQixHQVNoQixPQVRnQixDQVFuQixLQVJtQjs7QUFBQSw4QkFlaEIsT0FBTyxDQUFDLHFCQUFSLEVBZmdCO0FBQUEsTUFXbkIsR0FYbUIseUJBV25CLEdBWG1CO0FBQUEsTUFZbkIsSUFabUIseUJBWW5CLElBWm1CO0FBQUEsTUFhbkIsS0FibUIseUJBYW5CLEtBYm1CO0FBQUEsTUFjbkIsTUFkbUIseUJBY25CLE1BZG1COztBQWdCcEIsTUFBTSxLQUFLLEdBQUcsV0FBVyxJQUFJLElBQUksR0FBRyxLQUFYLENBQXpCO0FBQ0EsTUFBTSxNQUFNLEdBQUcsWUFBWSxJQUFJLEdBQUcsR0FBRyxNQUFWLENBQTNCO0FBQ0EsTUFBSSxrQkFBa0IsR0FBRyxLQUF6Qjs7QUFFQSxNQUFJLEdBQUcsR0FBRyxDQUFWLEVBQWE7QUFDWixJQUFBLEtBQUssQ0FBQyxHQUFOLGFBQWUsV0FBVyxHQUFHLEdBQTdCO0FBQ0EsSUFBQSxrQkFBa0IsR0FBRyxJQUFyQjtBQUNBLEdBSEQsTUFJQSxJQUFJLE1BQU0sR0FBRyxDQUFiLEVBQWdCO0FBQ2YsSUFBQSxLQUFLLENBQUMsR0FBTixhQUFlLFdBQVcsR0FBRyxNQUE3QjtBQUNBLElBQUEsa0JBQWtCLEdBQUcsSUFBckI7QUFDQTs7QUFFRCxNQUFJLEtBQUssR0FBRyxDQUFaLEVBQWU7QUFDZCxJQUFBLEtBQUssQ0FBQyxJQUFOLGFBQWdCLFlBQVksR0FBRyxLQUEvQjtBQUNBLElBQUEsa0JBQWtCLEdBQUcsSUFBckI7QUFDQSxHQUhELE1BSUEsSUFBSSxJQUFJLEdBQUcsQ0FBWCxFQUFjO0FBQ2IsSUFBQSxLQUFLLENBQUMsSUFBTixhQUFnQixZQUFZLEdBQUcsSUFBL0I7QUFDQSxJQUFBLGtCQUFrQixHQUFHLElBQXJCO0FBQ0E7O0FBRUQsU0FBTyxrQkFBUDtBQUNBIiwic291cmNlUm9vdCI6IiJ9