UNPKG

tdesign-mobile-vue

Version:
1 lines 3.08 kB
{"version":3,"file":"plugin.mjs","sources":["../../src/drawer/plugin.ts"],"sourcesContent":["import { createApp, App, h, ref, nextTick } from 'vue';\nimport vueDrawer from './drawer';\nimport { WithInstallType, isBrowser } from '../shared';\nimport { TdDrawerProps } from './type';\n\ntype DrawerOptions = Omit<TdDrawerProps, 'attach'>;\n\nconst Drawer = (options: DrawerOptions) => {\n if (!isBrowser) return;\n const root = document.createElement('div');\n document.body.appendChild(root);\n const visible = ref(false);\n const props = ref({});\n const destroyOnClose = ref(false);\n\n createApp(() =>\n h(vueDrawer, { ...options, visible: visible.value, destroyOnClose: destroyOnClose.value, ...props.value }),\n ).mount(root);\n\n const handler = {\n destroy() {\n destroyOnClose.value = true;\n nextTick(() => {\n visible.value = false;\n document.body.removeChild(root);\n });\n },\n hide() {\n visible.value = false;\n },\n show() {\n visible.value = true;\n },\n update(options: DrawerOptions) {\n props.value = options;\n },\n };\n\n return handler;\n};\n\nDrawer.install = (app: App): void => {\n // 添加插件入口\n app.config.globalProperties.$drawer = Drawer;\n};\n\nconst DrawerPlugin: WithInstallType<typeof Drawer> = Drawer;\n\nexport default DrawerPlugin;\n"],"names":["Drawer","options","isBrowser","root","document","createElement","body","appendChild","visible","ref","props","destroyOnClose","createApp","h","vueDrawer","_objectSpread","value","mount","handler","destroy","nextTick","removeChild","hide","show","update","install","app","config","globalProperties","$drawer","DrawerPlugin"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,IAAMA,MAAA,GAAS,SAATA,MAAAA,CAAUC,OAA2B,EAAA;EACzC,IAAI,CAACC,SAAA,EAAW,OAAA;AACV,EAAA,IAAAC,IAAA,GAAOC,QAAS,CAAAC,aAAA,CAAc,KAAK,CAAA,CAAA;AAChCD,EAAAA,QAAA,CAAAE,IAAA,CAAKC,YAAYJ,IAAI,CAAA,CAAA;AACxB,EAAA,IAAAK,OAAA,GAAUC,IAAI,KAAK,CAAA,CAAA;AACnB,EAAA,IAAAC,KAAA,GAAQD,GAAI,CAAA,EAAE,CAAA,CAAA;AACd,EAAA,IAAAE,cAAA,GAAiBF,IAAI,KAAK,CAAA,CAAA;AAEhCG,EAAAA,SAAA,CAAU,YAAA;IAAA,OACRC,CAAA,CAAEC,OAAW,EAAAC,aAAA,CAAAA,aAAA,KAAKd,OAAS,CAAA,EAAA,EAAA,EAAA;MAAAO,OAAA,EAASA,OAAQ,CAAAQ,KAAA;MAAOL,gBAAgBA,cAAe,CAAAK,KAAAA;AAAA,KAAA,EAAUN,KAAA,CAAMM,MAAO,CAAA,CAAA;AAAA,GAC3G,CAAA,CAAEC,MAAMd,IAAI,CAAA,CAAA;AAEZ,EAAA,IAAMe,OAAU,GAAA;IACdC,OAAU,EAAA,SAAVA,OAAUA,GAAA;MACRR,cAAA,CAAeK,KAAQ,GAAA,IAAA,CAAA;AACvBI,MAAAA,QAAA,CAAS,YAAM;QACbZ,OAAA,CAAQQ,KAAQ,GAAA,KAAA,CAAA;AACPZ,QAAAA,QAAA,CAAAE,IAAA,CAAKe,YAAYlB,IAAI,CAAA,CAAA;AAChC,OAAC,CAAA,CAAA;KACH;IACAmB,IAAO,EAAA,SAAPA,IAAOA,GAAA;MACLd,OAAA,CAAQQ,KAAQ,GAAA,KAAA,CAAA;KAClB;IACAO,IAAO,EAAA,SAAPA,IAAOA,GAAA;MACLf,OAAA,CAAQQ,KAAQ,GAAA,IAAA,CAAA;KAClB;AACAQ,IAAAA,QAAAA,SAAAA,OAAOvB,QAAwB,EAAA;MAC7BS,KAAA,CAAMM,KAAQf,GAAAA,QAAAA,CAAAA;AAChB,KAAA;GACF,CAAA;AAEO,EAAA,OAAAiB,OAAA,CAAA;AACT,CAAA,CAAA;AAEAlB,MAAO,CAAAyB,OAAA,GAAU,UAACC,GAAmB,EAAA;AAE/BA,EAAAA,GAAA,CAAAC,MAAA,CAAOC,iBAAiBC,OAAU,GAAA7B,MAAA,CAAA;AACxC,CAAA,CAAA;AAEM8B,IAAAA,YAA+C,GAAA9B;;;;"}