UNPKG

@grafana/ui

Version:
1 lines 1.49 kB
{"version":3,"file":"floating.mjs","sources":["../../../src/utils/floating.ts"],"sourcesContent":["import { flip, Placement, shift } from '@floating-ui/react';\n\nexport const BOUNDARY_ELEMENT_ID = 'floating-boundary';\n\nexport function getPositioningMiddleware(placement?: Placement) {\n const middleware = [];\n\n const flipMiddleware = flip({\n // Ensure we flip to the perpendicular axis if it doesn't fit\n // on narrow viewports.\n crossAxis: 'alignment',\n fallbackAxisSideDirection: 'end',\n boundary: document.getElementById(BOUNDARY_ELEMENT_ID) ?? undefined,\n });\n const shiftMiddleware = shift();\n\n // Prioritize flip over shift for edge-aligned placements only.\n if (placement?.includes('-')) {\n middleware.push(flipMiddleware, shiftMiddleware);\n } else {\n middleware.push(shiftMiddleware, flipMiddleware);\n }\n\n return middleware;\n}\n"],"names":[],"mappings":";;;AAEO,MAAM,mBAAA,GAAsB;AAE5B,SAAS,yBAAyB,SAAA,EAAuB;AAJhE,EAAA,IAAA,EAAA;AAKE,EAAA,MAAM,aAAa,EAAC;AAEpB,EAAA,MAAM,iBAAiB,IAAA,CAAK;AAAA;AAAA;AAAA,IAG1B,SAAA,EAAW,WAAA;AAAA,IACX,yBAAA,EAA2B,KAAA;AAAA,IAC3B,QAAA,EAAA,CAAU,EAAA,GAAA,QAAA,CAAS,cAAA,CAAe,mBAAmB,MAA3C,IAAA,GAAA,EAAA,GAAgD,KAAA;AAAA,GAC3D,CAAA;AACD,EAAA,MAAM,kBAAkB,KAAA,EAAM;AAG9B,EAAA,IAAI,SAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,SAAA,CAAW,SAAS,GAAA,CAAA,EAAM;AAC5B,IAAA,UAAA,CAAW,IAAA,CAAK,gBAAgB,eAAe,CAAA;AAAA,EACjD,CAAA,MAAO;AACL,IAAA,UAAA,CAAW,IAAA,CAAK,iBAAiB,cAAc,CAAA;AAAA,EACjD;AAEA,EAAA,OAAO,UAAA;AACT;;;;"}