UNPKG

@vuesax-alpha/nightly

Version:
1 lines 4.4 kB
{"version":3,"file":"compute-position.mjs","sources":["../../../../../../packages/hooks/use-floating/core/compute-position.ts"],"sourcesContent":["import { computeCoordsFromPlacement } from './compute-coord-from-placement'\nimport type {\n ComputePosition,\n ComputePositionReturn,\n Middleware,\n MiddlewareData,\n} from './types'\n\nexport const computePosition: ComputePosition = async (\n reference,\n floating,\n config\n): Promise<ComputePositionReturn> => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform,\n } = config\n\n const validMiddleware = middleware.filter(Boolean) as Middleware[]\n const rtl = await platform.isRTL?.(floating)\n\n let rects = await platform.getElementRects({ reference, floating, strategy })\n let { x, y } = computeCoordsFromPlacement(rects, placement, rtl)\n let statefulPlacement = placement\n let middlewareData: MiddlewareData = {}\n let resetCount = 0\n\n for (let i = 0; i < validMiddleware.length; i++) {\n const { name, fn } = validMiddleware[i]\n\n const {\n x: nextX,\n y: nextY,\n data,\n reset,\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: { reference, floating },\n })\n\n x = nextX ?? x\n y = nextY ?? y\n\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data,\n },\n }\n\n if (reset && resetCount <= 50) {\n resetCount++\n\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement\n }\n\n if (reset.rects) {\n rects =\n reset.rects === true\n ? await platform.getElementRects({\n reference,\n floating,\n strategy,\n })\n : reset.rects\n }\n\n ;({ x, y } = computeCoordsFromPlacement(rects, statefulPlacement, rtl))\n }\n\n i = -1\n }\n }\n\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n }\n}\n"],"names":[],"mappings":"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"}