@kiwicom/orbit-components
Version:
Orbit-components is a React component library which provides developers with the easiest possible way of building Kiwi.com’s products.
64 lines (50 loc) • 2.44 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _styledComponents = require("styled-components");
var _isPosition = require("./isPosition");
var _isAlign = require("./isAlign");
var _consts = require("../consts");
var resolveContainerAlign = function resolveContainerAlign(_ref) {
var align = _ref.align,
theme = _ref.theme,
position = _ref.position,
containerTop = _ref.containerTop,
_ref$customContainerO = _ref.customContainerOffset,
customContainerOffset = _ref$customContainerO === void 0 ? 0 : _ref$customContainerO,
containerLeft = _ref.containerLeft,
containerHeight = _ref.containerHeight,
containerWidth = _ref.containerWidth,
tooltipHeight = _ref.tooltipHeight,
tooltipWidth = _ref.tooltipWidth;
var offset = (theme.rtl ? -customContainerOffset - 15 : customContainerOffset) || 0;
if ((0, _isAlign.isAlignCenter)(align)) {
if ((0, _isPosition.isHorizontal)(position)) {
return (0, _styledComponents.css)(["top:", "px;"], Math.floor(containerTop + containerHeight / 2 - tooltipHeight / 2 - offset));
}
if ((0, _isPosition.isVertical)(position)) {
return (0, _styledComponents.css)(["left:", "px;"], Math.floor(containerLeft + containerWidth / 2 - tooltipWidth / 2 - offset));
}
return null;
}
if ((0, _isAlign.isAlignStart)(align)) {
if ((0, _isPosition.isHorizontal)(position)) {
return (0, _styledComponents.css)(["top:", "px;"], Math.floor(containerTop - parseFloat(_consts.TOOLTIP_ARROW_SIZE) - offset));
}
if ((0, _isPosition.isVertical)(position)) {
return (0, _styledComponents.css)(["left:", "px;"], Math.floor(containerLeft + offset + containerWidth / 2 - parseFloat(_consts.TOOLTIP_PADDING) - parseFloat(_consts.TOOLTIP_ARROW_SIZE)));
}
} else if ((0, _isAlign.isAlignEnd)(align)) {
if ((0, _isPosition.isHorizontal)(position)) {
return (0, _styledComponents.css)(["top:", "px;"], Math.floor(containerTop - tooltipHeight + containerHeight + parseFloat(_consts.TOOLTIP_ARROW_SIZE) + offset));
}
if ((0, _isPosition.isVertical)(position)) {
return (0, _styledComponents.css)(["left:", "px;"], Math.floor(containerLeft + containerWidth - tooltipWidth + parseFloat(_consts.TOOLTIP_ARROW_SIZE) + offset));
}
}
return null;
};
var _default = resolveContainerAlign;
exports.default = _default;