UNPKG

@vuesax-alpha/nightly

Version:
1 lines 3.34 kB
{"version":3,"file":"compute-coord-from-placement.mjs","sources":["../../../../../../packages/hooks/use-floating/core/compute-coord-from-placement.ts"],"sourcesContent":["import {\n getAlignment,\n getAlignmentAxis,\n getAxisLength,\n getSide,\n getSideAxis,\n} from '../utils'\nimport type { Coords, ElementRects, Placement } from '../utils'\n\nexport function computeCoordsFromPlacement(\n { reference, floating }: ElementRects,\n placement: Placement,\n rtl?: boolean\n): Coords {\n const sideAxis = getSideAxis(placement)\n const alignmentAxis = getAlignmentAxis(placement)\n const alignLength = getAxisLength(alignmentAxis)\n const side = getSide(placement)\n const isVertical = sideAxis === 'y'\n\n const commonX = reference.x + reference.width / 2 - floating.width / 2\n const commonY = reference.y + reference.height / 2 - floating.height / 2\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2\n\n let coords: Coords\n switch (side) {\n case 'top':\n coords = { x: commonX, y: reference.y - floating.height }\n break\n case 'bottom':\n coords = { x: commonX, y: reference.y + reference.height }\n break\n case 'right':\n coords = { x: reference.x + reference.width, y: commonY }\n break\n case 'left':\n coords = { x: reference.x - floating.width, y: commonY }\n break\n default:\n coords = { x: reference.x, y: reference.y }\n }\n\n switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1)\n break\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1)\n break\n default:\n }\n\n return coords\n}\n"],"names":[],"mappings":";;AASO,SAAS,2BACd,EAAE,SAAA,EAAW,QAAS,EAAA,EACtB,WACA,GACQ,EAAA;AACR,EAAM,MAAA,QAAA,GAAW,YAAY,SAAS,CAAA,CAAA;AACtC,EAAM,MAAA,aAAA,GAAgB,iBAAiB,SAAS,CAAA,CAAA;AAChD,EAAM,MAAA,WAAA,GAAc,cAAc,aAAa,CAAA,CAAA;AAC/C,EAAM,MAAA,IAAA,GAAO,QAAQ,SAAS,CAAA,CAAA;AAC9B,EAAA,MAAM,aAAa,QAAa,KAAA,GAAA,CAAA;AAEhC,EAAA,MAAM,UAAU,SAAU,CAAA,CAAA,GAAI,UAAU,KAAQ,GAAA,CAAA,GAAI,SAAS,KAAQ,GAAA,CAAA,CAAA;AACrE,EAAA,MAAM,UAAU,SAAU,CAAA,CAAA,GAAI,UAAU,MAAS,GAAA,CAAA,GAAI,SAAS,MAAS,GAAA,CAAA,CAAA;AACvE,EAAA,MAAM,WAAc,GAAA,SAAA,CAAU,WAAe,CAAA,GAAA,CAAA,GAAI,SAAS,WAAe,CAAA,GAAA,CAAA,CAAA;AAEzE,EAAI,IAAA,MAAA,CAAA;AACJ,EAAQ,QAAA,IAAA;AAAA,IACD,KAAA,KAAA;AACH,MAAA,MAAA,GAAS,EAAE,CAAG,EAAA,OAAA,EAAS,GAAG,SAAU,CAAA,CAAA,GAAI,SAAS,MAAO,EAAA,CAAA;AACxD,MAAA,MAAA;AAAA,IACG,KAAA,QAAA;AACH,MAAA,MAAA,GAAS,EAAE,CAAG,EAAA,OAAA,EAAS,GAAG,SAAU,CAAA,CAAA,GAAI,UAAU,MAAO,EAAA,CAAA;AACzD,MAAA,MAAA;AAAA,IACG,KAAA,OAAA;AACH,MAAA,MAAA,GAAS,EAAE,CAAG,EAAA,SAAA,CAAU,IAAI,SAAU,CAAA,KAAA,EAAO,GAAG,OAAQ,EAAA,CAAA;AACxD,MAAA,MAAA;AAAA,IACG,KAAA,MAAA;AACH,MAAA,MAAA,GAAS,EAAE,CAAG,EAAA,SAAA,CAAU,IAAI,QAAS,CAAA,KAAA,EAAO,GAAG,OAAQ,EAAA,CAAA;AACvD,MAAA,MAAA;AAAA,IAAA;AAEA,MAAA,MAAA,GAAS,EAAE,CAAG,EAAA,SAAA,CAAU,CAAG,EAAA,CAAA,EAAG,UAAU,CAAE,EAAA,CAAA;AAAA,GAAA;AAG9C,EAAA,QAAQ,aAAa,SAAS,CAAA;AAAA,IACvB,KAAA,OAAA;AACH,MAAA,MAAA,CAAO,aAAkB,CAAA,IAAA,WAAA,IAAe,GAAO,IAAA,UAAA,GAAa,CAAK,CAAA,GAAA,CAAA,CAAA,CAAA;AACjE,MAAA,MAAA;AAAA,IACG,KAAA,KAAA;AACH,MAAA,MAAA,CAAO,aAAkB,CAAA,IAAA,WAAA,IAAe,GAAO,IAAA,UAAA,GAAa,CAAK,CAAA,GAAA,CAAA,CAAA,CAAA;AACjE,MAAA,MAAA;AAAA,IAAA,QAAA;AAAA,GAAA;AAIJ,EAAO,OAAA,MAAA,CAAA;AACT;;;;"}