{"version":3,"file":"Portal.cjs","sources":["../../../../../../packages/vue-components/portal/src/Portal.tsx"],"sourcesContent":["import { PropTypes } from '@antdv/utils';\nimport {\n  defineComponent,\n  nextTick,\n  onBeforeMount,\n  onMounted,\n  onUpdated,\n  Teleport,\n  watch,\n} from 'vue';\nimport { useInjectPortal } from '../../vc-trigger/src/context';\n\nexport default defineComponent({\n  compatConfig: { MODE: 3 },\n  name: 'Portal',\n  inheritAttrs: false,\n  props: {\n    getContainer: PropTypes.func.isRequired,\n    didUpdate: Function,\n  },\n  setup(props, { slots }) {\n    let isSSR = true;\n    // getContainer 不会改变，不用响应式\n    let container: HTMLElement;\n    const { shouldRender } = useInjectPortal();\n\n    function setContainer() {\n      if (shouldRender.value)\n        container = props.getContainer();\n    }\n\n    onBeforeMount(() => {\n      isSSR = false;\n      // drawer\n      setContainer();\n    });\n    onMounted(() => {\n      if (container) return;\n      // https://github.com/vueComponent/ant-design-vue/issues/6937\n      setContainer();\n    });\n\n    const stopWatch = watch(shouldRender, () => {\n      if (shouldRender.value && !container)\n        container = props.getContainer();\n\n      if (container)\n        stopWatch();\n    });\n    onUpdated(() => {\n      nextTick(() => {\n        if (shouldRender.value)\n          props.didUpdate?.(props);\n      });\n    });\n    // onBeforeUnmount(() => {\n    //   if (container && container.parentNode) {\n    //     container.parentNode.removeChild(container);\n    //   }\n    // });\n    return () => {\n      if (!shouldRender.value) return null;\n      if (isSSR)\n        return slots.default?.();\n\n      return container ? <Teleport to={container} v-slots={slots}></Teleport> : null;\n    };\n  },\n});\n"],"names":["defineComponent","compatConfig","MODE","name","inheritAttrs","props","getContainer","PropTypes","func","isRequired","didUpdate","Function","setup","slots","isSSR","container","shouldRender","useInjectPortal","setContainer","value","onBeforeMount","onMounted","stopWatch","watch","onUpdated","nextTick","default","_createVNode","Teleport"],"mappings":";;;;;;;;;AAYA,6BAA+BA,mBAAA,CAAA;AAAA,EAC7BC,YAAc,EAAA;AAAA,IAAEC,IAAM,EAAA,CAAA;AAAA,GAAE;AAAA,EACxBC,IAAM,EAAA,QAAA;AAAA,EACNC,YAAc,EAAA,KAAA;AAAA,EACdC,KAAO,EAAA;AAAA,IACLC,YAAAA,EAAcC,iBAAUC,IAAKC,CAAAA,UAAAA;AAAAA,IAC7BC,SAAWC,EAAAA,QAAAA;AAAAA,GACb;AAAA,EACAC,MAAMP,KAAO,EAAA;AAAA,IAAEQ,KAAAA;AAAAA,GAAS,EAAA;AACtB,IAAA,IAAIC,KAAQ,GAAA,IAAA,CAAA;AAEZ,IAAIC,IAAAA,SAAAA,CAAAA;AACJ,IAAM,MAAA;AAAA,MAAEC,YAAAA;AAAAA,QAAiBC,uBAAgB,EAAA,CAAA;AAEzC,IAAA,SAASC,YAAe,GAAA;AACtB,MAAA,IAAIF,YAAaG,CAAAA,KAAAA;AACfJ,QAAAA,SAAAA,GAAYV,MAAMC,YAAa,EAAA,CAAA;AAAA,KACnC;AAEAc,IAAAA,iBAAAA,CAAc,MAAM;AAClBN,MAAQ,KAAA,GAAA,KAAA,CAAA;AAERI,MAAa,YAAA,EAAA,CAAA;AAAA,KACd,CAAA,CAAA;AACDG,IAAAA,aAAAA,CAAU,MAAM;AACd,MAAIN,IAAAA,SAAAA;AAAW,QAAA,OAAA;AAEfG,MAAa,YAAA,EAAA,CAAA;AAAA,KACd,CAAA,CAAA;AAED,IAAMI,MAAAA,SAAAA,GAAYC,SAAMP,CAAAA,YAAAA,EAAc,MAAM;AAC1C,MAAIA,IAAAA,YAAAA,CAAaG,SAAS,CAACJ,SAAAA;AACzBA,QAAAA,SAAAA,GAAYV,MAAMC,YAAa,EAAA,CAAA;AAEjC,MAAIS,IAAAA,SAAAA;AACFO,QAAU,SAAA,EAAA,CAAA;AAAA,KACb,CAAA,CAAA;AACDE,IAAAA,aAAAA,CAAU,MAAM;AACdC,MAAAA,YAAAA,CAAS,MAAM;;AACb,QAAA,IAAIT,YAAaG,CAAAA,KAAAA;AACfd,UAAAA,CAAAA,EAAAA,GAAAA,KAAAA,CAAMK,cAANL,IAAkBA,GAAAA,KAAAA,CAAAA,GAAAA,EAAAA,CAAAA,IAAAA,CAAAA,KAAAA,EAAAA,KAAAA,CAAAA,CAAAA;AAAAA,OACrB,CAAA,CAAA;AAAA,KACF,CAAA,CAAA;AAMD,IAAA,OAAO,MAAM;;AACX,MAAA,IAAI,CAACW,YAAaG,CAAAA,KAAAA;AAAO,QAAO,OAAA,IAAA,CAAA;AAChC,MAAIL,IAAAA,KAAAA;AACF,QAAA,OAAA,CAAOD,WAAMa,OAANb,KAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,EAAAA,CAAAA,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA;AAET,MAAOE,OAAAA,SAAAA,GAASY,gBAAAC,YAAA,EAAA;AAAA,QAAA,IAAiBb,EAAAA,SAAAA;AAAAA,OAAS,EAAWF,KAAK,CAAgB,GAAA,IAAA,CAAA;AAAA,KAC5E,CAAA;AAAA,GACF;AACF,CAAC,CAAA;;;;"}