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