2 lines
13 KiB
JavaScript
2 lines
13 KiB
JavaScript
import{a_ as Z,a as Ee,b as Pe,u as we,ab as L,K as $e,r as ne,d as ce,I as Me,V as Ve,J as Be,aV as de,bb as Re,k,a8 as ke,v as fe,F as oe,c7 as De,s as He,bo as Fe,x as Ke,aL as Ne,$ as K,E as Ue,_ as Ye,aq as D,m as E,o as v,p as w,N as J,f as M,n as c,a7 as j,i as me,c as Q,e as P,a6 as H,t as F,aP as W,h as x,O as _,T as Xe,aw as je,L as We,a3 as qe,z as $,D as Ge,bf as se,a$ as ve,a4 as pe,bS as Ze,ac as te,M as le,a9 as Se,ad as Te,aZ as ge,U as Ie,aa as he,C as Je}from"./index-DpP8vbvu.js";import{E as Qe}from"./index-BWeK8p2T.js";import{P as ee,h as xe,o as ye,E as _e,a as en}from"./vnode-DPqF99Zc.js";import{e as be}from"./index-D7KcZu8a.js";import{t as nn}from"./index-BMdPKuCq.js";const Le=e=>{if(!e)return{onClick:Z,onMousedown:Z,onMouseup:Z};let n=!1,a=!1;return{onClick:i=>{n&&a&&e(i),n=a=!1},onMousedown:i=>{n=i.target===i.currentTarget},onMouseup:i=>{a=i.target===i.currentTarget}}},on=Pe({mask:{type:Boolean,default:!0},customMaskEvent:Boolean,overlayClass:{type:ce([String,Array,Object])},zIndex:{type:ce([String,Number])}}),sn={click:e=>e instanceof MouseEvent},tn="overlay";var an=Ee({name:"ElOverlay",props:on,emits:sn,setup(e,{slots:n,emit:a}){const l=we(tn),t=f=>{a("click",f)},{onClick:s,onMousedown:i,onMouseup:d}=Le(e.customMaskEvent?void 0:t);return()=>e.mask?L("div",{class:[l.b(),e.overlayClass],style:{zIndex:e.zIndex},onClick:s,onMousedown:i,onMouseup:d},[ne(n,"default")],ee.STYLE|ee.CLASS|ee.PROPS,["onClick","onMouseup","onMousedown"]):$e("div",{class:e.overlayClass,style:{zIndex:e.zIndex,position:"fixed",top:"0px",right:"0px",bottom:"0px",left:"0px"}},[ne(n,"default")])}});const ln=an,rn=(e,n,a,l)=>{const t={offsetX:0,offsetY:0},s=(u,y)=>{if(e.value){const{offsetX:z,offsetY:A}=t,m=e.value.getBoundingClientRect(),B=m.left,p=m.top,C=m.width,T=m.height,R=document.documentElement.clientWidth,U=document.documentElement.clientHeight,q=-B+z,I=-p+A,Y=R-B-C+z,G=U-p-(T<U?T:0)+A;l?.value||(u=Math.min(Math.max(u,q),Y),y=Math.min(Math.max(y,I),G)),t.offsetX=u,t.offsetY=y,e.value.style.transform=`translate(${de(u)}, ${de(y)})`}},i=u=>{const y=u.clientX,z=u.clientY,{offsetX:A,offsetY:m}=t,B=C=>{const T=A+C.clientX-y,R=m+C.clientY-z;s(T,R)},p=()=>{document.removeEventListener("mousemove",B),document.removeEventListener("mouseup",p)};document.addEventListener("mousemove",B),document.addEventListener("mouseup",p)},d=()=>{n.value&&e.value&&(n.value.addEventListener("mousedown",i),window.addEventListener("resize",b))},f=()=>{n.value&&e.value&&(n.value.removeEventListener("mousedown",i),window.removeEventListener("resize",b))},o=()=>{t.offsetX=0,t.offsetY=0,e.value&&(e.value.style.transform="")},b=()=>{const{offsetX:u,offsetY:y}=t;s(u,y)};return Me(()=>{Ve(()=>{a.value?d():f()})}),Be(()=>{f()}),{resetPosition:o,updatePosition:b}},un=(e,n={})=>{Re(e)||nn("[useLockscreen]","You need to pass a ref param to this function");const a=n.ns||we("popup"),l=k(()=>a.bm("parent","hidden"));if(!ke||fe(document.body,l.value))return;let t=0,s=!1,i="0";const d=()=>{setTimeout(()=>{typeof document>"u"||s&&document&&(document.body.style.width=i,Ke(document.body,l.value))},200)};oe(e,f=>{if(!f){d();return}s=!fe(document.body,l.value),s&&(i=document.body.style.width,He(document.body,l.value)),t=xe(a.namespace.value);const o=document.documentElement.clientHeight<document.body.scrollHeight,b=Fe(document.body,"overflowY");t>0&&(o||b==="scroll")&&s&&(document.body.style.width=`calc(100% - ${t}px)`)}),De(()=>d())},cn=e=>["",...Ne].includes(e),ae="_trap-focus-children",O=[],Ce=e=>{if(O.length===0)return;const n=O[O.length-1][ae];if(n.length>0&&e.code===Ue.tab){if(n.length===1){e.preventDefault(),document.activeElement!==n[0]&&n[0].focus();return}const a=e.shiftKey,l=e.target===n[0],t=e.target===n[n.length-1];l&&a&&(e.preventDefault(),n[n.length-1].focus()),t&&!a&&(e.preventDefault(),n[0].focus())}},dn={beforeMount(e){e[ae]=ye(e),O.push(e),O.length<=1&&document.addEventListener("keydown",Ce)},updated(e){K(()=>{e[ae]=ye(e)})},unmounted(){O.shift(),O.length===0&&document.removeEventListener("keydown",Ce)}},fn=Ee({name:"ElMessageBox",directives:{TrapFocus:dn},components:{ElButton:Qe,ElFocusTrap:en,ElInput:_e,ElOverlay:ln,ElIcon:We,...je},inheritAttrs:!1,props:{buttonSize:{type:String,validator:cn},modal:{type:Boolean,default:!0},lockScroll:{type:Boolean,default:!0},showClose:{type:Boolean,default:!0},closeOnClickModal:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!0},closeOnHashChange:{type:Boolean,default:!0},center:Boolean,draggable:Boolean,overflow:Boolean,roundButton:Boolean,container:{type:String,default:"body"},boxType:{type:String,default:""}},emits:["vanish","action"],setup(e,{emit:n}){const{locale:a,zIndex:l,ns:t,size:s}=qe("message-box",k(()=>e.buttonSize)),{t:i}=a,{nextZIndex:d}=l,f=$(!1),o=Ge({autofocus:!0,beforeClose:null,callback:null,cancelButtonText:"",cancelButtonClass:"",confirmButtonText:"",confirmButtonClass:"",customClass:"",customStyle:{},dangerouslyUseHTMLString:!1,distinguishCancelAndClose:!1,icon:"",closeIcon:"",inputPattern:null,inputPlaceholder:"",inputType:"text",inputValue:"",inputValidator:void 0,inputErrorMessage:"",message:"",modalFade:!0,modalClass:"",showCancelButton:!1,showConfirmButton:!0,type:"",title:void 0,showInput:!1,action:"",confirmButtonLoading:!1,cancelButtonLoading:!1,confirmButtonLoadingIcon:se(ve),cancelButtonLoadingIcon:se(ve),confirmButtonDisabled:!1,editorErrorMessage:"",validateError:!1,zIndex:d()}),b=k(()=>{const r=o.type;return{[t.bm("icon",r)]:r&&pe[r]}}),u=be(),y=be(),z=k(()=>{const r=o.type;return o.icon||r&&pe[r]||""}),A=k(()=>!!o.message),m=$(),B=$(),p=$(),C=$(),T=$(),R=k(()=>o.confirmButtonClass);oe(()=>o.inputValue,async r=>{await K(),e.boxType==="prompt"&&r&&ie()},{immediate:!0}),oe(()=>f.value,r=>{var g,h;r&&(e.boxType!=="prompt"&&(o.autofocus?p.value=(h=(g=T.value)==null?void 0:g.$el)!=null?h:m.value:p.value=m.value),o.zIndex=d()),e.boxType==="prompt"&&(r?K().then(()=>{var ue;C.value&&C.value.$el&&(o.autofocus?p.value=(ue=ze())!=null?ue:m.value:p.value=m.value)}):(o.editorErrorMessage="",o.validateError=!1))});const U=k(()=>e.draggable),q=k(()=>e.overflow);rn(m,B,U,q),Me(async()=>{await K(),e.closeOnHashChange&&window.addEventListener("hashchange",I)}),Be(()=>{e.closeOnHashChange&&window.removeEventListener("hashchange",I)});function I(){f.value&&(f.value=!1,K(()=>{o.action&&n("action",o.action)}))}const Y=()=>{e.closeOnClickModal&&X(o.distinguishCancelAndClose?"close":"cancel")},G=Le(Y),Oe=r=>{if(o.inputType!=="textarea")return r.preventDefault(),X("confirm")},X=r=>{var g;e.boxType==="prompt"&&r==="confirm"&&!ie()||(o.action=r,o.beforeClose?(g=o.beforeClose)==null||g.call(o,r,o,I):I())},ie=()=>{if(e.boxType==="prompt"){const r=o.inputPattern;if(r&&!r.test(o.inputValue||""))return o.editorErrorMessage=o.inputErrorMessage||i("el.messagebox.error"),o.validateError=!0,!1;const g=o.inputValidator;if(te(g)){const h=g(o.inputValue);if(h===!1)return o.editorErrorMessage=o.inputErrorMessage||i("el.messagebox.error"),o.validateError=!0,!1;if(le(h))return o.editorErrorMessage=h,o.validateError=!0,!1}}return o.editorErrorMessage="",o.validateError=!1,!0},ze=()=>{var r,g;const h=(r=C.value)==null?void 0:r.$refs;return(g=h?.input)!=null?g:h?.textarea},re=()=>{X("close")},Ae=()=>{e.closeOnPressEscape&&re()};return e.lockScroll&&un(f),{...Ze(o),ns:t,overlayEvent:G,visible:f,hasMessage:A,typeClass:b,contentId:u,inputId:y,btnSize:s,iconComponent:z,confirmButtonClasses:R,rootRef:m,focusStartRef:p,headerRef:B,inputRef:C,confirmRef:T,doClose:I,handleClose:re,onCloseRequested:Ae,handleWrapperClick:Y,handleInputEnter:Oe,handleAction:X,t:i}}});function mn(e,n,a,l,t,s){const i=D("el-icon"),d=D("el-input"),f=D("el-button"),o=D("el-focus-trap"),b=D("el-overlay");return v(),E(Xe,{name:"fade-in-linear",onAfterLeave:u=>e.$emit("vanish"),persisted:""},{default:w(()=>[J(L(b,{"z-index":e.zIndex,"overlay-class":[e.ns.is("message-box"),e.modalClass],mask:e.modal},{default:w(()=>[M("div",{role:"dialog","aria-label":e.title,"aria-modal":"true","aria-describedby":e.showInput?void 0:e.contentId,class:c(`${e.ns.namespace.value}-overlay-message-box`),onClick:e.overlayEvent.onClick,onMousedown:e.overlayEvent.onMousedown,onMouseup:e.overlayEvent.onMouseup},[L(o,{loop:"",trapped:e.visible,"focus-trap-el":e.rootRef,"focus-start-el":e.focusStartRef,onReleaseRequested:e.onCloseRequested},{default:w(()=>[M("div",{ref:"rootRef",class:c([e.ns.b(),e.customClass,e.ns.is("draggable",e.draggable),{[e.ns.m("center")]:e.center}]),style:me(e.customStyle),tabindex:"-1",onClick:j(()=>{},["stop"])},[e.title!==null&&e.title!==void 0?(v(),Q("div",{key:0,ref:"headerRef",class:c([e.ns.e("header"),{"show-close":e.showClose}])},[M("div",{class:c(e.ns.e("title"))},[e.iconComponent&&e.center?(v(),E(i,{key:0,class:c([e.ns.e("status"),e.typeClass])},{default:w(()=>[(v(),E(H(e.iconComponent)))]),_:1},8,["class"])):P("v-if",!0),M("span",null,F(e.title),1)],2),e.showClose?(v(),Q("button",{key:0,type:"button",class:c(e.ns.e("headerbtn")),"aria-label":e.t("el.messagebox.close"),onClick:u=>e.handleAction(e.distinguishCancelAndClose?"close":"cancel"),onKeydown:W(j(u=>e.handleAction(e.distinguishCancelAndClose?"close":"cancel"),["prevent"]),["enter"])},[L(i,{class:c(e.ns.e("close"))},{default:w(()=>[(v(),E(H(e.closeIcon||"close")))]),_:1},8,["class"])],42,["aria-label","onClick","onKeydown"])):P("v-if",!0)],2)):P("v-if",!0),M("div",{id:e.contentId,class:c(e.ns.e("content"))},[M("div",{class:c(e.ns.e("container"))},[e.iconComponent&&!e.center&&e.hasMessage?(v(),E(i,{key:0,class:c([e.ns.e("status"),e.typeClass])},{default:w(()=>[(v(),E(H(e.iconComponent)))]),_:1},8,["class"])):P("v-if",!0),e.hasMessage?(v(),Q("div",{key:1,class:c(e.ns.e("message"))},[ne(e.$slots,"default",{},()=>[e.dangerouslyUseHTMLString?(v(),E(H(e.showInput?"label":"p"),{key:1,for:e.showInput?e.inputId:void 0,innerHTML:e.message},null,8,["for","innerHTML"])):(v(),E(H(e.showInput?"label":"p"),{key:0,for:e.showInput?e.inputId:void 0},{default:w(()=>[x(F(e.dangerouslyUseHTMLString?"":e.message),1)]),_:1},8,["for"]))])],2)):P("v-if",!0)],2),J(M("div",{class:c(e.ns.e("input"))},[L(d,{id:e.inputId,ref:"inputRef",modelValue:e.inputValue,"onUpdate:modelValue":u=>e.inputValue=u,type:e.inputType,placeholder:e.inputPlaceholder,"aria-invalid":e.validateError,class:c({invalid:e.validateError}),onKeydown:W(e.handleInputEnter,["enter"])},null,8,["id","modelValue","onUpdate:modelValue","type","placeholder","aria-invalid","class","onKeydown"]),M("div",{class:c(e.ns.e("errormsg")),style:me({visibility:e.editorErrorMessage?"visible":"hidden"})},F(e.editorErrorMessage),7)],2),[[_,e.showInput]])],10,["id"]),M("div",{class:c(e.ns.e("btns"))},[e.showCancelButton?(v(),E(f,{key:0,loading:e.cancelButtonLoading,"loading-icon":e.cancelButtonLoadingIcon,class:c([e.cancelButtonClass]),round:e.roundButton,size:e.btnSize,onClick:u=>e.handleAction("cancel"),onKeydown:W(j(u=>e.handleAction("cancel"),["prevent"]),["enter"])},{default:w(()=>[x(F(e.cancelButtonText||e.t("el.messagebox.cancel")),1)]),_:1},8,["loading","loading-icon","class","round","size","onClick","onKeydown"])):P("v-if",!0),J(L(f,{ref:"confirmRef",type:"primary",loading:e.confirmButtonLoading,"loading-icon":e.confirmButtonLoadingIcon,class:c([e.confirmButtonClasses]),round:e.roundButton,disabled:e.confirmButtonDisabled,size:e.btnSize,onClick:u=>e.handleAction("confirm"),onKeydown:W(j(u=>e.handleAction("confirm"),["prevent"]),["enter"])},{default:w(()=>[x(F(e.confirmButtonText||e.t("el.messagebox.confirm")),1)]),_:1},8,["loading","loading-icon","class","round","disabled","size","onClick","onKeydown"]),[[_,e.showConfirmButton]])],2)],14,["onClick"])]),_:3},8,["trapped","focus-trap-el","focus-start-el","onReleaseRequested"])],42,["aria-label","aria-describedby","onClick","onMousedown","onMouseup"])]),_:3},8,["z-index","overlay-class","mask"]),[[_,e.visible]])]),_:3},8,["onAfterLeave"])}var vn=Ye(fn,[["render",mn],["__file","index.vue"]]);const N=new Map,pn=e=>{let n=document.body;return e.appendTo&&(le(e.appendTo)&&(n=document.querySelector(e.appendTo)),he(e.appendTo)&&(n=e.appendTo),he(n)||(n=document.body)),n},gn=(e,n,a=null)=>{const l=L(vn,e,te(e.message)||Se(e.message)?{default:te(e.message)?e.message:()=>e.message}:null);return l.appContext=a,Te(l,n),pn(e).appendChild(n.firstElementChild),l.component},hn=()=>document.createElement("div"),yn=(e,n)=>{const a=hn();e.onVanish=()=>{Te(null,a),N.delete(t)},e.onAction=s=>{const i=N.get(t);let d;e.showInput?d={value:t.inputValue,action:s}:d=s,e.callback?e.callback(d,l.proxy):s==="cancel"||s==="close"?e.distinguishCancelAndClose&&s!=="cancel"?i.reject("close"):i.reject("cancel"):i.resolve(d)};const l=gn(e,a,n),t=l.proxy;for(const s in e)ge(e,s)&&!ge(t.$props,s)&&(s==="closeIcon"&&Ie(e[s])?t[s]=se(e[s]):t[s]=e[s]);return t.visible=!0,t};function V(e,n=null){if(!ke)return Promise.reject();let a;return le(e)||Se(e)?e={message:e}:a=e.callback,new Promise((l,t)=>{const s=yn(e,n??V._context);N.set(s,{options:e,callback:a,resolve:l,reject:t})})}const bn=["alert","confirm","prompt"],Cn={alert:{closeOnPressEscape:!1,closeOnClickModal:!1},confirm:{showCancelButton:!0},prompt:{showCancelButton:!0,showInput:!0}};bn.forEach(e=>{V[e]=En(e)});function En(e){return(n,a,l,t)=>{let s="";return Ie(a)?(l=a,s=""):Je(a)?s="":s=a,V(Object.assign({title:s,message:n,type:"",...Cn[e]},l,{boxType:e}),t)}}V.close=()=>{N.forEach((e,n)=>{n.doClose()}),N.clear()};V._context=null;const S=V;S.install=e=>{S._context=e._context,e.config.globalProperties.$msgbox=S,e.config.globalProperties.$messageBox=S,e.config.globalProperties.$alert=S.alert,e.config.globalProperties.$confirm=S.confirm,e.config.globalProperties.$prompt=S.prompt};const Tn=S;export{Tn as E,un as a,ln as b,Le as c,cn as i,rn as u};
|