{"version":3,"file":"index.mjs","sources":["../../../../../packages/hooks/use-popper-container/index.ts"],"sourcesContent":["import { onBeforeMount } from 'vue'\nimport { isClient } from '@vueuse/core'\nimport { generateId } from '@bigin/utils'\nimport { useGlobalConfig } from '../use-global-config'\nimport { defaultNamespace } from '../use-namespace'\n\nlet cachedContainer: HTMLElement\n\nconst namespace = useGlobalConfig('namespace', defaultNamespace)\n\nexport const POPPER_CONTAINER_ID = `${\n  namespace.value\n}-popper-container-${generateId()}`\n\nexport const POPPER_CONTAINER_SELECTOR = `#${POPPER_CONTAINER_ID}`\n\nconst createContainer = () => {\n  const container = document.createElement('div')\n  container.id = POPPER_CONTAINER_ID\n  document.body.appendChild(container)\n  return container\n}\n\nexport const usePopperContainer = () => {\n  onBeforeMount(() => {\n    if (!isClient) return\n\n    // This is for bypassing the error that when under testing env, we often encounter\n    // document.body.innerHTML = '' situation\n    // for this we need to disable the caching since it's not really needed\n    if (\n      process.env.NODE_ENV === 'test' ||\n      !cachedContainer ||\n      !document.body.querySelector(POPPER_CONTAINER_SELECTOR)\n    ) {\n      cachedContainer = createContainer()\n    }\n  })\n}\n"],"names":[],"mappings":";;;;;;;AAMA,IAAI,eAAA,CAAA;AAEJ,MAAM,SAAA,GAAY,eAAgB,CAAA,WAAA,EAAa,gBAAgB,CAAA,CAAA;AAExD,MAAM,mBAAsB,GAAA,CAAA,EACjC,SAAU,CAAA,KAAA,CAAA,kBAAA,EACS,UAAW,EAAA,CAAA,EAAA;AAEzB,MAAM,4BAA4B,CAAI,CAAA,EAAA,mBAAA,CAAA,EAAA;AAE7C,MAAM,kBAAkB,MAAM;AAC5B,EAAM,MAAA,SAAA,GAAY,QAAS,CAAA,aAAA,CAAc,KAAK,CAAA,CAAA;AAC9C,EAAA,SAAA,CAAU,EAAK,GAAA,mBAAA,CAAA;AACf,EAAS,QAAA,CAAA,IAAA,CAAK,YAAY,SAAS,CAAA,CAAA;AACnC,EAAO,OAAA,SAAA,CAAA;AACT,CAAA,CAAA;AAEO,MAAM,qBAAqB,MAAM;AACtC,EAAA,aAAA,CAAc,MAAM;AAClB,IAAA,IAAI,CAAC,QAAA;AAAU,MAAA,OAAA;AAKf,IACE,IAAA,OAAA,CAAQ,GAAI,CAAA,QAAA,KAAa,MACzB,IAAA,CAAC,eACD,IAAA,CAAC,QAAS,CAAA,IAAA,CAAK,aAAc,CAAA,yBAAyB,CACtD,EAAA;AACA,MAAA,eAAA,GAAkB,eAAgB,EAAA,CAAA;AAAA,KACpC;AAAA,GACD,CAAA,CAAA;AACH;;;;"}