UNPKG

@aplus-frontend/ui

Version:

2 lines (1 loc) 2.46 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("vue"),w=require("@aplus-frontend/antdv"),s=require("../../config-provider/config-provider.js"),N=require("lodash-unified"),m=require("@aplus-frontend/utils"),h=require("./util.js"),P=require("../../utils/index.js"),$=require("../style/index.js"),k=o=>{let r,a,d;const c=e=>e?`${s.globalConfigCached.value.namespace}-ap-modal-${e}`:`${s.globalConfigCached.value.namespace}-ap-modal`,{destroyOnClose:l=!0,wrapperOffset:n=!1,wrapperFullHeight:C=!1}=o;function p(){r&&r(!1),setTimeout(()=>{t.render(null,i),i.parentElement?.removeChild(i)},500)}function g(){r&&r(!0)}function u(){r&&r(!1)}function v(e){a&&a(e)}const x=t.defineComponent({data(){return{open:l,props:o}},created(){r=e=>{this.open=e},a=e=>{this.props={...this.props,...e}},d=$.default("ap-modal")},methods:{async handleCancel(){if(this.props?.onCancel){const e=this.props?.content?.component?.exposed??void 0;await this.props?.onCancel(e)}l?p():u()},async handleOk(){try{if(a({confirmLoading:!0}),this.props?.onOk){const e=this.props?.content?.component?.exposed??void 0;await this.props.onOk(e)}a({confirmLoading:!1}),l?p():u()}catch{a({confirmLoading:!1})}},handleFooter(e){return o?.footer!==void 0?typeof o.footer=="function"?o.footer({...e,contentExposed:this.props?.content?.component?.exposed??void 0}):o.footer:e?.originNode}},render(){const e=N.omit(this.props,["onCancel","onOk","open","onUpdate:open","getContainer","icon","footer"]);return t.createVNode(s.ConfigProvider,s.globalConfigCached.value,{default:()=>[t.createVNode(w.Modal,t.mergeProps({class:{[c()]:!0,[c("wrapper")]:n,[d.value]:!0},centered:!0},e,{open:this.open,onCancel:this.handleCancel,onOk:this.handleOk,footer:this?.handleFooter}),{default:()=>[t.createVNode("div",{class:{[c("body-wrapper")]:n,[d.value]:!0},style:{maxHeight:n!==!1?`calc(100vh - ${(n===!0?100:m.isNumeric(n)?Number(n):100)*2}px)`:void 0,height:C===!0?`calc(100vh - ${(n===!0?100:m.isNumeric(n)?Number(n):100)*2}px)`:void 0,overflowY:n!==!1||C===!0?"auto":void 0}},[this.props?.content])]})]})}}),b=h.getContainerDom(s.globalConfigCached?.value?.getPopupContainer),y=h.getContainerDom(o.getContainer),O=b||y||P.getTopWindow().document.body,i=document.createElement("div");O.appendChild(i);const f=t.h(x),q=h.getModalGlobalAppContext();return f.appContext=o.appContext||q||f.appContext,t.render(f,i),{destroy:p,update:v,open:g,close:u}};exports.createModal=k;