@aplus-frontend/ui
Version:
2 lines (1 loc) • 1.72 kB
JavaScript
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const N=require("@aplus-frontend/utils"),_=require("./createModal.js"),I=require("@aplus-frontend/antdv"),O=require("../enums/modalMessage.js"),T=(f,S)=>{const m=S??(Array.isArray(f)?f[0]?.modalId:void 0),o=new Map;let x,p,c=1e3;const y=async({modalId:r,params:s,handleCurrentModal:M,handleModal:w}={})=>{if(!N.isValid(r)){d();return}x=s;const l=f.find(t=>t.modalId===r);let i=!1;if(p){const t=o.get(p),n={...t,destroy:()=>{t?.destroy?.(),o.delete(p)},open:()=>{i=!0}};await M?.(n),await w?.({getModal:o.get.bind(o)})}return l&&setTimeout(()=>{g(l)}),i},d=()=>{for(const[r,s]of o)s?.destroy?.()},g=async r=>{const{modalId:s,modalType:M="createModal",props:w}=r;p=s;const l=o.get(s),i=await w?.(x,async e=>(n=!0,await y(e)));c=Math.max(i?.zIndex??0,c),c+=1;let t,n=!1;if(M==="createModal"){const e=i,u=async a=>(n=!0,await y(a));t={...e,destroyOnClose:!1,zIndex:c,onOk:async a=>{const E=await e?.onOk?.(a,u);if(n||d(),E)throw new Error(O.ModalMessage.NOT_NEED_CLOSE)},onCancel:async a=>{const E=await e?.onCancel?.(a,u);if(n||d(),E)throw new Error(O.ModalMessage.NOT_NEED_CLOSE)}}}else{const e=i,u=async a=>(n=!0,await y(a));t={...e,zIndex:c,onOk:async()=>{const a=await e?.onOk?.(u);if(n||d(),a)throw new Error(O.ModalMessage.NOT_NEED_CLOSE)},onCancel:async()=>{const a=await e?.onCancel?.(u);if(n||d(),a)throw new Error(O.ModalMessage.NOT_NEED_CLOSE)}}}if(l){l?.update(t),l?.open?.();return}else if(M==="createModal"){const e=_.createModal(t);e?.open?.(),o.set(s,e)}else I.Modal?.[M]?.(t)},C=f.find(r=>N.isValid(m)&&r.modalId===m);if(C!==void 0)return g(C),{getModal:o.get.bind(o),clearAllModal:d,next:y}};exports.createModalStream=T;