{"version":3,"file":"index.mjs","sources":["../../../../../packages/hooks/use-popper-container/index.ts"],"sourcesContent":["import { computed, onBeforeMount } from 'vue'\nimport { isClient } from '@vueuse/core'\nimport { useGlobalConfig } from '../use-global-config'\nimport { defaultNamespace } from '../use-namespace'\nimport { useIdInjection } from '../use-id'\n\nlet cachedContainer: HTMLElement\n\nexport const usePopperContainerId = () => {\n  const namespace = useGlobalConfig('namespace', defaultNamespace)\n  const idInjection = useIdInjection()\n\n  const id = computed(() => {\n    return `${namespace.value}-popper-container-${idInjection.prefix}`\n  })\n  const selector = computed(() => `#${id.value}`)\n\n  return {\n    id,\n    selector,\n  }\n}\n\nconst createContainer = (id: string) => {\n  const container = document.createElement('div')\n  container.id = id\n  document.body.appendChild(container)\n  return container\n}\n\nexport const usePopperContainer = () => {\n  onBeforeMount(() => {\n    if (!isClient) return\n\n    const { id, selector } = usePopperContainerId()\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 && !document.body.querySelector(selector.value))\n    ) {\n      cachedContainer = createContainer(id.value)\n    }\n  })\n}\n"],"names":[],"mappings":";;;;;;AAMA,IAAI,eAAA,CAAA;AAEG,MAAM,uBAAuB,MAAM;AACxC,EAAM,MAAA,SAAA,GAAY,eAAgB,CAAA,WAAA,EAAa,gBAAgB,CAAA,CAAA;AAC/D,EAAA,MAAM,cAAc,cAAe,EAAA,CAAA;AAEnC,EAAM,MAAA,EAAA,GAAK,SAAS,MAAM;AACxB,IAAO,OAAA,CAAA,EAAG,SAAU,CAAA,KAAA,CAAA,kBAAA,EAA0B,WAAY,CAAA,MAAA,CAAA,CAAA,CAAA;AAAA,GAC3D,CAAA,CAAA;AACD,EAAA,MAAM,QAAW,GAAA,QAAA,CAAS,MAAM,CAAA,CAAA,EAAI,GAAG,KAAO,CAAA,CAAA,CAAA,CAAA;AAE9C,EAAO,OAAA;AAAA,IACL,EAAA;AAAA,IACA,QAAA;AAAA,GACF,CAAA;AACF,EAAA;AAEA,MAAM,eAAA,GAAkB,CAAC,EAAe,KAAA;AACtC,EAAM,MAAA,SAAA,GAAY,QAAS,CAAA,aAAA,CAAc,KAAK,CAAA,CAAA;AAC9C,EAAA,SAAA,CAAU,EAAK,GAAA,EAAA,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;AAEf,IAAA,MAAM,EAAE,EAAA,EAAI,QAAS,EAAA,GAAI,oBAAqB,EAAA,CAAA;AAI9C,IAAA,IACE,OAAQ,CAAA,GAAA,CAAI,QAAa,KAAA,MAAA,IACxB,CAAC,eAAA,IAAmB,CAAC,QAAA,CAAS,IAAK,CAAA,aAAA,CAAc,QAAS,CAAA,KAAK,CAChE,EAAA;AACA,MAAkB,eAAA,GAAA,eAAA,CAAgB,GAAG,KAAK,CAAA,CAAA;AAAA,KAC5C;AAAA,GACD,CAAA,CAAA;AACH;;;;"}