@vuesax-alpha/nightly
Version:
A Component Library for Vue 3
1 lines • 1.79 kB
Source Map (JSON)
{"version":3,"file":"get-viewport-rect.mjs","sources":["../../../../../../../packages/hooks/use-floating/dom/utils/get-viewport-rect.ts"],"sourcesContent":["import {\n getDocumentElement,\n getWindow,\n isWebKit,\n} from '@vuesax-alpha/hooks/use-floating/utils/dom'\nimport type { Rect, Strategy } from '@vuesax-alpha/hooks/use-floating/utils'\n\nexport function getViewportRect(element: Element, strategy: Strategy): Rect {\n const win = getWindow(element)\n const html = getDocumentElement(element)\n const visualViewport = win.visualViewport\n\n let width = html.clientWidth\n let height = html.clientHeight\n let x = 0\n let y = 0\n\n if (visualViewport) {\n width = visualViewport.width\n height = visualViewport.height\n\n const visualViewportBased = isWebKit()\n\n if (!visualViewportBased || (visualViewportBased && strategy === 'fixed')) {\n x = visualViewport.offsetLeft\n y = visualViewport.offsetTop\n }\n }\n\n return {\n width,\n height,\n x,\n y,\n }\n}\n"],"names":[],"mappings":";;AAOgB,SAAA,eAAA,CAAgB,SAAkB,QAA0B,EAAA;AAC1E,EAAM,MAAA,GAAA,GAAM,UAAU,OAAO,CAAA,CAAA;AAC7B,EAAM,MAAA,IAAA,GAAO,mBAAmB,OAAO,CAAA,CAAA;AACvC,EAAA,MAAM,iBAAiB,GAAI,CAAA,cAAA,CAAA;AAE3B,EAAA,IAAI,QAAQ,IAAK,CAAA,WAAA,CAAA;AACjB,EAAA,IAAI,SAAS,IAAK,CAAA,YAAA,CAAA;AAClB,EAAA,IAAI,CAAI,GAAA,CAAA,CAAA;AACR,EAAA,IAAI,CAAI,GAAA,CAAA,CAAA;AAER,EAAA,IAAI,cAAgB,EAAA;AAClB,IAAA,KAAA,GAAQ,cAAe,CAAA,KAAA,CAAA;AACvB,IAAA,MAAA,GAAS,cAAe,CAAA,MAAA,CAAA;AAExB,IAAA,MAAM,sBAAsB,QAAS,EAAA,CAAA;AAErC,IAAA,IAAI,CAAC,mBAAA,IAAwB,mBAAuB,IAAA,QAAA,KAAa,OAAU,EAAA;AACzE,MAAA,CAAA,GAAI,cAAe,CAAA,UAAA,CAAA;AACnB,MAAA,CAAA,GAAI,cAAe,CAAA,SAAA,CAAA;AAAA,KACrB;AAAA,GACF;AAEA,EAAO,OAAA;AAAA,IACL,KAAA;AAAA,IACA,MAAA;AAAA,IACA,CAAA;AAAA,IACA,CAAA;AAAA,GACF,CAAA;AACF;;;;"}