UNPKG

@nex-ui/react

Version:

🎉 A beautiful, modern, and reliable React component library.

45 lines (41 loc) • 1.53 kB
'use strict'; var utils = require('../utils.cjs'); const offset = (options = 5)=>{ const offsetValue = typeof options === 'number' ? { mainAxis: options, crossAxis: 0 } : { mainAxis: options.mainAxis ?? 0, crossAxis: options.crossAxis ?? 0 }; return { name: 'offset', fn: (state)=>{ const { placement, rects, middlewareData } = state; const minOffset = middlewareData.arrow?.minOffset ?? 0; const side = utils.getSide(placement); const alignment = utils.getAlignment(placement); const mainAxis = utils.getSideAxis(placement); const crossAxis = utils.getAlignmentAxis(placement); const mainAxisFactor = [ 'left', 'top' ].includes(side) ? -1 : 1; const crossAxisFactor = alignment === 'end' ? -1 : 1; const mainAxisOffset = Math.max(offsetValue.mainAxis, minOffset); const crossAxisOffset = offsetValue.crossAxis; const coordinates = { [mainAxis]: rects.popper[mainAxis] + mainAxisOffset * mainAxisFactor, [crossAxis]: rects.popper[crossAxis] + crossAxisOffset * crossAxisFactor }; return { ...coordinates, data: { x: coordinates.x - rects.popper.x, y: coordinates.y - rects.popper.y } }; } }; }; exports.offset = offset;