You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2 lines
1.6 KiB

import{q as v,r as d,f as P,u as o,K as c,H as b,D as m,G as H,a3 as q,a4 as w,a6 as h,C as I,aj as R,J as E}from"./index-f4658ae7.js";const l=v({}),g=v({});function x(){const t=d(null),r=d(!1),a=d("");function u(e,s){if(!m())throw new Error("useModal() can only be used inside setup() or functional components!");a.value=s,q(()=>{t.value=null,r.value=!1,l[o(a)]=null}),!(o(r)&&w()&&e===o(t))&&(t.value=e,r.value=!0,e.emitVisible=(M,i)=>{g[i]=M})}const n=()=>{const e=o(t);return e||h("useModal instance is undefined!"),e},f={setModalProps:e=>{var s;(s=n())==null||s.setModalProps(e)},getVisible:P(()=>g[~~o(a)]),redoModalHeight:()=>{var e,s;(s=(e=n())==null?void 0:e.redoModalHeight)==null||s.call(e)},openModal:(e=!0,s,M=!0)=>{var p;if((p=n())==null||p.setModalProps({visible:e}),!s)return;const i=o(a);if(M){l[i]=null,l[i]=c(s);return}b(c(l[i]),c(s))||(l[i]=c(s))},closeModal:()=>{var e;(e=n())==null||e.setModalProps({visible:!1})}};return[u,f]}const y=t=>{const r=d(null),a=m(),u=d(""),n=()=>{const e=o(r);return e||h("useModalInner instance is undefined!"),e},f=(e,s)=>{I(()=>{r.value=null}),u.value=s,r.value=e,a==null||a.emit("register",e,s)};return H(()=>{const e=l[o(u)];e&&(!t||!R(t)||E(()=>{t(e)}))}),[f,{changeLoading:(e=!0)=>{var s;(s=n())==null||s.setModalProps({loading:e})},getVisible:P(()=>g[~~o(u)]),changeOkLoading:(e=!0)=>{var s;(s=n())==null||s.setModalProps({confirmLoading:e})},closeModal:()=>{var e;(e=n())==null||e.setModalProps({visible:!1})},setModalProps:e=>{var s;(s=n())==null||s.setModalProps(e)},redoModalHeight:()=>{var s;const e=(s=n())==null?void 0:s.redoModalHeight;e&&e()}}]};export{x as useModal,y as useModalInner};