{"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;;;;"}