@flexis/ui
Version:
Styleless React Components
52 lines (43 loc) • 3.05 kB
JavaScript
;
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