2 lines
11 KiB
JavaScript
2 lines
11 KiB
JavaScript
import{i as c,bj as _e,bk as Ae,V as R,W as re,d as Ie,aa as je,ab as Ne,ac as ze,ad as Ve,aI as Le,aJ as Fe,a8 as He,aY as Ke,t as We,g as Ye,af as Ge,b as T,aZ as Re,aP as Ue,H as Xe,bl as Ze,p as qe,Z as ve,k as me,ag as L,ah as pe,ai as ye,bm as Je,_ as Qe,e as M,h as D,o as f,A,aS as xe,at as J,C as m,c as E,m as Q,q as I,f as x,as as be,a as ee,n as O,au as oe,N as Ce,u as le,D as ne,G as te,bn as eo,y as oo,z as lo,a_ as no,a$ as ae,ap as to,b0 as ge,a4 as ao}from"./index-C4UKuwCQ.js";import{K as so}from"./keyboard-b0R5wflF.js";const io=e=>{const o=c(!1),l={overflow:"",width:"",boxSizing:""};return{setOverflowHidden:()=>{if(e.value){const n=e.value;if(!o.value&&n.style.overflow!=="hidden"){const i=_e(n);(i>0||Ae(n))&&(l.overflow=n.style.overflow,l.width=n.style.width,l.boxSizing=n.style.boxSizing,n.style.overflow="hidden",n.style.width=`${n.offsetWidth-i}px`,n.style.boxSizing="border-box",o.value=!0)}}},resetOverflow:()=>{if(e.value&&o.value){const n=e.value;n.style.overflow=l.overflow,n.style.width=l.width,n.style.boxSizing=l.boxSizing,o.value=!1}}}},ro=({modalRef:e,wrapperRef:o,draggable:l,alignCenter:d})=>{const r=c(!1),n=c([0,0]),i=c([0,0]),p=c(),y=c([0,0]),t=c([0,0]),u=()=>{var s,S,B;if(o.value&&e.value){const{top:w,left:h}=o.value.getBoundingClientRect(),{clientWidth:F,clientHeight:H}=o.value,{top:j,left:K,width:N,height:z}=e.value.getBoundingClientRect(),$=d.value?0:(s=e.value)==null?void 0:s.offsetTop,b=K-h,W=j-w-$;(b!==((S=i.value)==null?void 0:S[0])||W!==((B=i.value)==null?void 0:B[1]))&&(i.value=[b,W]);const V=F>N?F-N:0,Y=H>z?H-z-$:0;(V!==t.value[0]||Y!==t.value[1])&&(t.value=[V,Y]),$&&(y.value=[0,0-$])}},v=s=>{l.value&&(s.preventDefault(),r.value=!0,u(),n.value=[s.x,s.y],R(window,"mousemove",C),R(window,"mouseup",g),R(window,"contextmenu",g))},C=s=>{if(r.value){const S=s.x-n.value[0],B=s.y-n.value[1];let w=i.value[0]+S,h=i.value[1]+B;w<y.value[0]&&(w=y.value[0]),w>t.value[0]&&(w=t.value[0]),h<y.value[1]&&(h=y.value[1]),h>t.value[1]&&(h=t.value[1]),p.value=[w,h]}},g=()=>{r.value=!1,re(window,"mousemove",C),re(window,"mouseup",g)};return{position:p,handleMoveDown:v}};var uo=Object.defineProperty,we=Object.getOwnPropertySymbols,fo=Object.prototype.hasOwnProperty,co=Object.prototype.propertyIsEnumerable,he=(e,o,l)=>o in e?uo(e,o,{enumerable:!0,configurable:!0,writable:!0,value:l}):e[o]=l,vo=(e,o)=>{for(var l in o||(o={}))fo.call(o,l)&&he(e,l,o[l]);if(we)for(var l of we(o))co.call(o,l)&&he(e,l,o[l]);return e},mo=Ie({name:"Modal",components:{ClientOnly:Ke,ArcoButton:He,IconHover:Fe,IconClose:Le,IconInfoCircleFill:Ve,IconCheckCircleFill:ze,IconExclamationCircleFill:Ne,IconCloseCircleFill:je},inheritAttrs:!1,props:{visible:{type:Boolean,default:void 0},defaultVisible:{type:Boolean,default:!1},width:{type:[Number,String]},top:{type:[Number,String]},mask:{type:Boolean,default:!0},title:{type:String},titleAlign:{type:String,default:"center"},alignCenter:{type:Boolean,default:!0},unmountOnClose:Boolean,maskClosable:{type:Boolean,default:!0},hideCancel:{type:Boolean,default:!1},simple:{type:Boolean,default:e=>e.notice},closable:{type:Boolean,default:!0},okText:String,cancelText:String,okLoading:{type:Boolean,default:!1},okButtonProps:{type:Object},cancelButtonProps:{type:Object},footer:{type:Boolean,default:!0},renderToBody:{type:Boolean,default:!0},popupContainer:{type:[String,Object],default:"body"},maskStyle:{type:Object},modalClass:{type:[String,Array]},modalStyle:{type:Object},onBeforeOk:{type:Function},onBeforeCancel:{type:Function},escToClose:{type:Boolean,default:!0},draggable:{type:Boolean,default:!1},fullscreen:{type:Boolean,default:!1},maskAnimationName:{type:String,default:e=>e.fullscreen?"fade-in-standard":"fade-modal"},modalAnimationName:{type:String,default:e=>e.fullscreen?"zoom-in":"zoom-modal"},bodyClass:{type:[String,Array]},bodyStyle:{type:[String,Object,Array]},messageType:{type:String},hideTitle:{type:Boolean,default:!1}},emits:{"update:visible":e=>!0,ok:e=>!0,cancel:e=>!0,open:()=>!0,close:()=>!0,beforeOpen:()=>!0,beforeClose:()=>!0},setup(e,{emit:o}){const{fullscreen:l,popupContainer:d,alignCenter:r}=We(e),n=Ye("modal"),{t:i}=Ge(),p=c(),y=c(),t=c(e.defaultVisible),u=T(()=>{var a;return(a=e.visible)!=null?a:t.value}),v=c(!1),C=T(()=>e.okLoading||v.value),g=T(()=>e.draggable&&!e.fullscreen),{teleportContainer:s,containerRef:S}=Re({popupContainer:d,visible:u}),B=c(u.value),w=T(()=>e.okText||i("modal.okText")),h=T(()=>e.cancelText||i("modal.cancelText")),{zIndex:F,isLastDialog:H}=Ue("dialog",{visible:u});let j=!1;const K=a=>{e.escToClose&&a.key===so.ESC&&H()&&X(a)},N=()=>{e.escToClose&&!j&&(j=!0,R(document.documentElement,"keydown",K))},z=()=>{j=!1,re(document.documentElement,"keydown",K)};let $=0;const{position:b,handleMoveDown:W}=ro({wrapperRef:p,modalRef:y,draggable:g,alignCenter:r}),V=()=>{$++,v.value&&(v.value=!1),t.value=!1,o("update:visible",!1)},Y=async a=>{const k=$,G=await new Promise(async q=>{var ce;if(L(e.onBeforeOk)){let P=e.onBeforeOk((de=!0)=>q(de));if((pe(P)||!ye(P))&&(v.value=!0),pe(P))try{P=(ce=await P)!=null?ce:!0}catch{P=!1}ye(P)&&q(P)}else q(!0)});k===$&&(G?(o("ok",a),V()):v.value&&(v.value=!1))},X=a=>{var k;let G=!0;L(e.onBeforeCancel)&&(G=(k=e.onBeforeCancel())!=null?k:!1),G&&(o("cancel",a),V())},Z=c(!1),Be=a=>{a.target===p.value&&(Z.value=!0)},$e=a=>{e.mask&&e.maskClosable&&Z.value&&X(a)},Pe=()=>{u.value&&(!Je(p.value,document.activeElement)&&document.activeElement instanceof HTMLElement&&document.activeElement.blur(),o("open"))},Te=()=>{u.value||(g.value&&(b.value=void 0),B.value=!1,fe(),o("close"))},{setOverflowHidden:ue,resetOverflow:fe}=io(S);Xe(()=>{S.value=Ze(e.popupContainer),u.value&&(ue(),e.escToClose&&N())}),qe(()=>{fe(),z()}),ve(u,a=>{t.value!==a&&(t.value=a),a?(o("beforeOpen"),B.value=!0,Z.value=!1,ue(),N()):(o("beforeClose"),z())}),ve(l,()=>{b.value&&(b.value=void 0)});const Me=T(()=>[`${n}-wrapper`,{[`${n}-wrapper-align-center`]:e.alignCenter&&!e.fullscreen,[`${n}-wrapper-moved`]:!!b.value}]),De=T(()=>[`${n}`,e.modalClass,{[`${n}-simple`]:e.simple,[`${n}-draggable`]:g.value,[`${n}-fullscreen`]:e.fullscreen}]),Ee=T(()=>{var a;const k=vo({},(a=e.modalStyle)!=null?a:{});return e.width&&!e.fullscreen&&(k.width=me(e.width)?`${e.width}px`:e.width),!e.alignCenter&&e.top&&(k.top=me(e.top)?`${e.top}px`:e.top),b.value&&(k.transform=`translate(${b.value[0]}px, ${b.value[1]}px)`),k});return{prefixCls:n,mounted:B,computedVisible:u,containerRef:S,wrapperRef:p,mergedModalStyle:Ee,okDisplayText:w,cancelDisplayText:h,zIndex:F,handleOk:Y,handleCancel:X,handleMaskClick:$e,handleMaskMouseDown:Be,handleOpen:Pe,handleClose:Te,mergedOkLoading:C,modalRef:y,wrapperCls:Me,modalCls:De,teleportContainer:s,handleMoveDown:W}}});function po(e,o,l,d,r,n){const i=M("icon-info-circle-fill"),p=M("icon-check-circle-fill"),y=M("icon-exclamation-circle-fill"),t=M("icon-close-circle-fill"),u=M("icon-close"),v=M("icon-hover"),C=M("arco-button"),g=M("client-only");return f(),D(g,null,{default:A(()=>[(f(),D(xe,{to:e.teleportContainer,disabled:!e.renderToBody},[!e.unmountOnClose||e.computedVisible||e.mounted?J((f(),E("div",Q({key:0,class:`${e.prefixCls}-container`,style:{zIndex:e.zIndex}},e.$attrs),[I(be,{name:e.maskAnimationName,appear:""},{default:A(()=>[e.mask?J((f(),E("div",{key:0,ref:"maskRef",class:O(`${e.prefixCls}-mask`),style:ee(e.maskStyle)},null,6)),[[oe,e.computedVisible]]):m("v-if",!0)]),_:1},8,["name"]),x("div",{ref:"wrapperRef",class:O(e.wrapperCls),onClick:o[2]||(o[2]=Ce((...s)=>e.handleMaskClick&&e.handleMaskClick(...s),["self"])),onMousedown:o[3]||(o[3]=Ce((...s)=>e.handleMaskMouseDown&&e.handleMaskMouseDown(...s),["self"]))},[I(be,{name:e.modalAnimationName,appear:"",onAfterEnter:e.handleOpen,onAfterLeave:e.handleClose},{default:A(()=>[J(x("div",{ref:"modalRef",class:O(e.modalCls),style:ee(e.mergedModalStyle)},[!e.hideTitle&&(e.$slots.title||e.title||e.closable)?(f(),E("div",{key:0,class:O(`${e.prefixCls}-header`),onMousedown:o[1]||(o[1]=(...s)=>e.handleMoveDown&&e.handleMoveDown(...s))},[e.$slots.title||e.title?(f(),E("div",{key:0,class:O([`${e.prefixCls}-title`,`${e.prefixCls}-title-align-${e.titleAlign}`])},[e.messageType?(f(),E("div",{key:0,class:O(`${e.prefixCls}-title-icon`)},[e.messageType==="info"?(f(),D(i,{key:0})):m("v-if",!0),e.messageType==="success"?(f(),D(p,{key:1})):m("v-if",!0),e.messageType==="warning"?(f(),D(y,{key:2})):m("v-if",!0),e.messageType==="error"?(f(),D(t,{key:3})):m("v-if",!0)],2)):m("v-if",!0),le(e.$slots,"title",{},()=>[ne(te(e.title),1)])],2)):m("v-if",!0),!e.simple&&e.closable?(f(),E("div",{key:1,tabindex:"-1",role:"button","aria-label":"Close",class:O(`${e.prefixCls}-close-btn`),onClick:o[0]||(o[0]=(...s)=>e.handleCancel&&e.handleCancel(...s))},[I(v,null,{default:A(()=>[I(u)]),_:1})],2)):m("v-if",!0)],34)):m("v-if",!0),x("div",{class:O([`${e.prefixCls}-body`,e.bodyClass]),style:ee(e.bodyStyle)},[le(e.$slots,"default")],6),e.footer?(f(),E("div",{key:1,class:O(`${e.prefixCls}-footer`)},[le(e.$slots,"footer",{},()=>[e.hideCancel?m("v-if",!0):(f(),D(C,Q({key:0},e.cancelButtonProps,{onClick:e.handleCancel}),{default:A(()=>[ne(te(e.cancelDisplayText),1)]),_:1},16,["onClick"])),I(C,Q({type:"primary"},e.okButtonProps,{loading:e.mergedOkLoading,onClick:e.handleOk}),{default:A(()=>[ne(te(e.okDisplayText),1)]),_:1},16,["loading","onClick"])])],2)):m("v-if",!0)],6),[[oe,e.computedVisible]])]),_:3},8,["name","onAfterEnter","onAfterLeave"])],34)],16)),[[oe,e.computedVisible||e.mounted]]):m("v-if",!0)],8,["to","disabled"]))]),_:3})}var U=Qe(mo,[["render",po]]),yo=Object.defineProperty,bo=Object.defineProperties,Co=Object.getOwnPropertyDescriptors,ke=Object.getOwnPropertySymbols,go=Object.prototype.hasOwnProperty,wo=Object.prototype.propertyIsEnumerable,Oe=(e,o,l)=>o in e?yo(e,o,{enumerable:!0,configurable:!0,writable:!0,value:l}):e[o]=l,_=(e,o)=>{for(var l in o||(o={}))go.call(o,l)&&Oe(e,l,o[l]);if(ke)for(var l of ke(o))wo.call(o,l)&&Oe(e,l,o[l]);return e},ho=(e,o)=>bo(e,Co(o));const se=(e,o)=>{let l=no("modal");const d=()=>{t.component&&(t.component.props.visible=!1),L(e.onOk)&&e.onOk()},r=()=>{t.component&&(t.component.props.visible=!1),L(e.onCancel)&&e.onCancel()},n=async()=>{await ao(),l&&(ge(null,l),document.body.removeChild(l)),l=null,L(e.onClose)&&e.onClose()},i=()=>{t.component&&(t.component.props.visible=!1)},p=u=>{t.component&&Object.entries(u).forEach(([v,C])=>{t.component.props[v]=C})},t=I(U,_(_(_({},{visible:!0,renderToBody:!1,unmountOnClose:!0,onOk:d,onCancel:r,onClose:n}),to(e,["content","title","footer","visible","unmountOnClose","onOk","onCancel","onClose"])),{footer:typeof e.footer=="boolean"?e.footer:void 0}),{default:ae(e.content),title:ae(e.title),footer:typeof e.footer!="boolean"?ae(e.footer):void 0});return(o??Se._context)&&(t.appContext=o??Se._context),ge(t,l),document.body.appendChild(l),{close:i,update:p}},ie=_({open:se,confirm:(e,o)=>{const l=_({simple:!0,messageType:"warning"},e);return se(l,o)}},eo.reduce((e,o)=>(e[o]=(l,d)=>{const r=_({simple:!0,hideCancel:!0,messageType:o},l);return se(r,d)},e),{})),Se=Object.assign(U,ho(_({},ie),{install:(e,o)=>{oo(e,o);const l=lo(o);e.component(l+U.name,U);const d={};for(const r of Object.keys(ie))d[r]=(n,i=e._context)=>ie[r](n,i);e.config.globalProperties.$modal=d},_context:null}));export{Se as M,io as u};
|