@kubit-ui-web/react-components
Version:
Kubit React Components is a customizable, accessible library of React web components, designed to enhance your application's user experience
41 lines • 1.56 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.offset = exports.convertValueToCoords = void 0;
const tooltipAlign_1 = require("../../types/tooltipAlign");
const getMainAxisFromPlacement_1 = require("../utils/getMainAxisFromPlacement");
const convertValueToCoords = (state, value) => {
const { placement } = state;
const isVertical = (0, getMainAxisFromPlacement_1.getMainAxisFromPlacement)(placement) === 'x';
const mainAxisMulti = [tooltipAlign_1.TooltipAlignType.LEFT, tooltipAlign_1.TooltipAlignType.TOP].includes(placement) ? -1 : 1;
const crossAxisMulti = 1;
const rawValue = value;
const { mainAxis, crossAxis } = {
mainAxis: rawValue,
crossAxis: 0,
};
return isVertical
? { x: crossAxis * crossAxisMulti, y: mainAxis * mainAxisMulti }
: { x: mainAxis * mainAxisMulti, y: crossAxis * crossAxisMulti };
};
exports.convertValueToCoords = convertValueToCoords;
/**
* Modifies the placement by translating the floating element along the
* specified axes.
* A number (shorthand for `mainAxis` or distance), or an axes configuration
* object may be passed.
*/
const offset = (value = 0) => ({
name: 'offset',
options: value,
fn(state) {
const { x, y } = state;
const diffCoords = (0, exports.convertValueToCoords)(state, value);
return {
x: x + diffCoords.x,
y: y + diffCoords.y,
data: diffCoords,
};
},
});
exports.offset = offset;
//# sourceMappingURL=offset.js.map