UNPKG

vue-admin-core

Version:
1 lines 2.05 kB
{"version":3,"file":"portal.mjs","sources":["../../../../../../package/formily/__builtins__/shared/portal.ts"],"sourcesContent":["import { defineComponent, onBeforeUnmount } from \"vue\";\nimport { h, Fragment } from \"@formily/vue\";\nexport interface IPortalProps {\n id?: string | symbol;\n}\n\nconst PortalMap = new Map<string | symbol, any>();\n\nexport const createPortalProvider = (id: string | symbol) => {\n const Portal = defineComponent({\n name: \"PortalProvider\",\n props: {\n id: {\n type: [String, Symbol],\n default: id\n }\n },\n\n setup(props) {\n onBeforeUnmount(() => {\n const { id } = props;\n if (id && PortalMap.has(id)) {\n PortalMap.delete(id);\n }\n });\n },\n\n render() {\n const { id } = this;\n if (id && !PortalMap.has(id)) {\n PortalMap.set(id, this);\n }\n\n return h(Fragment, {}, this.$slots);\n }\n });\n\n return Portal;\n};\n\nexport function getPortalContext(id: string | symbol) {\n return PortalMap.get(id);\n}\n"],"names":["id"],"mappings":";;;AAMA,MAAM,SAAA,uBAAgB,GAA0B,EAAA,CAAA;AAEnC,MAAA,oBAAA,GAAuB,CAAC,EAAwB,KAAA;AAC3D,EAAA,MAAM,SAAS,eAAgB,CAAA;AAAA,IAC7B,IAAM,EAAA,gBAAA;AAAA,IACN,KAAO,EAAA;AAAA,MACL,EAAI,EAAA;AAAA,QACF,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,QACrB,OAAS,EAAA,EAAA;AAAA,OACX;AAAA,KACF;AAAA,IAEA,MAAM,KAAO,EAAA;AACX,MAAA,eAAA,CAAgB,MAAM;AACpB,QAAM,MAAA,EAAE,EAAAA,EAAAA,GAAAA,EAAO,GAAA,KAAA,CAAA;AACf,QAAA,IAAIA,GAAM,IAAA,SAAA,CAAU,GAAIA,CAAAA,GAAE,CAAG,EAAA;AAC3B,UAAA,SAAA,CAAU,OAAOA,GAAE,CAAA,CAAA;AAAA,SACrB;AAAA,OACD,CAAA,CAAA;AAAA,KACH;AAAA,IAEA,MAAS,GAAA;AACP,MAAM,MAAA,EAAE,EAAAA,EAAAA,GAAAA,EAAO,GAAA,IAAA,CAAA;AACf,MAAA,IAAIA,GAAM,IAAA,CAAC,SAAU,CAAA,GAAA,CAAIA,GAAE,CAAG,EAAA;AAC5B,QAAU,SAAA,CAAA,GAAA,CAAIA,KAAI,IAAI,CAAA,CAAA;AAAA,OACxB;AAEA,MAAA,OAAO,CAAE,CAAA,QAAA,EAAU,EAAC,EAAG,KAAK,MAAM,CAAA,CAAA;AAAA,KACpC;AAAA,GACD,CAAA,CAAA;AAED,EAAO,OAAA,MAAA,CAAA;AACT,EAAA;AAEO,SAAS,iBAAiB,EAAqB,EAAA;AACpD,EAAO,OAAA,SAAA,CAAU,IAAI,EAAE,CAAA,CAAA;AACzB;;;;"}