el-message-box.f372f40a.js 12 KB

1
  1. import{i as D,aj as Ve,k as S,E as $e,D as Oe,f as He,N as je,bv as De,bw as Ue,H as B,s as w,a5 as qe,bx as ee,ay as Ke,S as Ne,bf as Fe,M as k,o as d,c as b,w as f,a6 as U,j as C,p as m,t as i,$ as te,Z as L,m as q,Y as V,V as M,z,bm as $,r as Ze,a8 as K,a7 as N,aG as Ge,ap as We,aM as ae,by as ne,bz as oe,bA as se,b6 as Xe,bB as Ye,a$ as le,aL as re,__tla as Je}from"./entry.b543c057.js";import{E as Qe,__tla as et}from"./el-button.7af57880.js";import{E as tt,__tla as at}from"./el-input.2dc5de3b.js";import{E as nt,u as ot,a as st,__tla as lt}from"./el-overlay.a21b38f2.js";import{E as rt,__tla as it}from"./focus-trap.c1c3a4ab.js";import{i as ct,__tla as ut}from"./validator.88247797.js";import{u as ie,__tla as dt}from"./index.6c6228ef.js";import{u as pt,__tla as ft}from"./index.def748f0.js";let ce,mt=Promise.all([(()=>{try{return Je}catch{}})(),(()=>{try{return et}catch{}})(),(()=>{try{return at}catch{}})(),(()=>{try{return lt}catch{}})(),(()=>{try{return it}catch{}})(),(()=>{try{return ut}catch{}})(),(()=>{try{return dt}catch{}})(),(()=>{try{return ft}catch{}})()]).then(async()=>{const ue='a[href],button:not([disabled]),button:not([hidden]),:not([tabindex="-1"]),input:not([disabled]),input:not([type="hidden"]),select:not([disabled]),textarea:not([disabled])',de=e=>getComputedStyle(e).position==="fixed"?!1:e.offsetParent!==null,F=e=>Array.from(e.querySelectorAll(ue)).filter(t=>pe(t)&&de(t)),pe=e=>{if(e.tabIndex>0||e.tabIndex===0&&e.getAttribute("tabIndex")!==null)return!0;if(e.disabled)return!1;switch(e.nodeName){case"A":return!!e.href&&e.rel!=="ignore";case"INPUT":return!(e.type==="hidden"||e.type==="file");case"BUTTON":case"SELECT":case"TEXTAREA":return!0;default:return!1}},fe=(e,t)=>{let o;D(()=>e.value,r=>{var s,n;r?(o=document.activeElement,Ve(t)&&((n=(s=t.value).focus)==null||n.call(s))):o.focus()})},O="_trap-focus-children",h=[],Z=e=>{if(h.length===0)return;const t=h[h.length-1][O];if(t.length>0&&e.code===$e.tab){if(t.length===1){e.preventDefault(),document.activeElement!==t[0]&&t[0].focus();return}const o=e.shiftKey,r=e.target===t[0],s=e.target===t[t.length-1];r&&o&&(e.preventDefault(),t[t.length-1].focus()),s&&!o&&(e.preventDefault(),t[0].focus())}},me={beforeMount(e){e[O]=F(e),h.push(e),h.length<=1&&document.addEventListener("keydown",Z)},updated(e){S(()=>{e[O]=F(e)})},unmounted(){h.shift(),h.length===0&&document.removeEventListener("keydown",Z)}},ve=He({name:"ElMessageBox",directives:{TrapFocus:me},components:{ElButton:Qe,ElFocusTrap:rt,ElInput:tt,ElOverlay:nt,ElIcon:je,...De},inheritAttrs:!1,props:{buttonSize:{type:String,validator:ct},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,roundButton:{default:!1,type:Boolean},container:{type:String,default:"body"},boxType:{type:String,default:""}},emits:["vanish","action"],setup(e,{emit:t}){const{locale:o,zIndex:r,ns:s,size:n}=Ue("message-box",B(()=>e.buttonSize)),{t:u}=o,{nextZIndex:p}=r,g=w(!1),a=qe({autofocus:!0,beforeClose:null,callback:null,cancelButtonText:"",cancelButtonClass:"",confirmButtonText:"",confirmButtonClass:"",customClass:"",customStyle:{},dangerouslyUseHTMLString:!1,distinguishCancelAndClose:!1,icon:"",inputPattern:null,inputPlaceholder:"",inputType:"text",inputValue:null,inputValidator:null,inputErrorMessage:"",message:null,modalFade:!0,modalClass:"",showCancelButton:!1,showConfirmButton:!0,type:"",title:void 0,showInput:!1,action:"",confirmButtonLoading:!1,cancelButtonLoading:!1,confirmButtonDisabled:!1,editorErrorMessage:"",validateError:!1,zIndex:p()}),H=B(()=>{const l=a.type;return{[s.bm("icon",l)]:l&&ee[l]}}),j=ie(),c=ie(),Te=B(()=>a.icon||ee[a.type]||""),Ie=B(()=>!!a.message),E=w(),G=w(),I=w(),R=w(),W=w(),Ae=B(()=>a.confirmButtonClass);D(()=>a.inputValue,async l=>{await S(),e.boxType==="prompt"&&l!==null&&Y()},{immediate:!0}),D(()=>g.value,l=>{var y,x;l&&(e.boxType!=="prompt"&&(a.autofocus?I.value=(x=(y=W.value)==null?void 0:y.$el)!=null?x:E.value:I.value=E.value),a.zIndex=p()),e.boxType==="prompt"&&(l?S().then(()=>{var Q;R.value&&R.value.$el&&(a.autofocus?I.value=(Q=Pe())!=null?Q:E.value:I.value=E.value)}):(a.editorErrorMessage="",a.validateError=!1))});const Se=B(()=>e.draggable);pt(E,G,Se),Ke(async()=>{await S(),e.closeOnHashChange&&window.addEventListener("hashchange",A)}),Ne(()=>{e.closeOnHashChange&&window.removeEventListener("hashchange",A)});function A(){g.value&&(g.value=!1,S(()=>{a.action&&t("action",a.action)}))}const X=()=>{e.closeOnClickModal&&P(a.distinguishCancelAndClose?"close":"cancel")},ze=st(X),Re=l=>{if(a.inputType!=="textarea")return l.preventDefault(),P("confirm")},P=l=>{var y;e.boxType==="prompt"&&l==="confirm"&&!Y()||(a.action=l,a.beforeClose?(y=a.beforeClose)==null||y.call(a,l,a,A):A())},Y=()=>{if(e.boxType==="prompt"){const l=a.inputPattern;if(l&&!l.test(a.inputValue||""))return a.editorErrorMessage=a.inputErrorMessage||u("el.messagebox.error"),a.validateError=!0,!1;const y=a.inputValidator;if(typeof y=="function"){const x=y(a.inputValue);if(x===!1)return a.editorErrorMessage=a.inputErrorMessage||u("el.messagebox.error"),a.validateError=!0,!1;if(typeof x=="string")return a.editorErrorMessage=x,a.validateError=!0,!1}}return a.editorErrorMessage="",a.validateError=!1,!0},Pe=()=>{const l=R.value.$refs;return l.input||l.textarea},J=()=>{P("close")},Le=()=>{e.closeOnPressEscape&&J()};return e.lockScroll&&ot(g),fe(g),{...Fe(a),ns:s,overlayEvent:ze,visible:g,hasMessage:Ie,typeClass:H,contentId:j,inputId:c,btnSize:n,iconComponent:Te,confirmButtonClasses:Ae,rootRef:E,focusStartRef:I,headerRef:G,inputRef:R,confirmRef:W,doClose:A,handleClose:J,onCloseRequested:Le,handleWrapperClick:X,handleInputEnter:Re,handleAction:P,t:u}}}),ge=["aria-label","aria-describedby"],ye=["aria-label"],be=["id"];function he(e,t,o,r,s,n){const u=k("el-icon"),p=k("close"),g=k("el-input"),a=k("el-button"),H=k("el-focus-trap"),j=k("el-overlay");return d(),b(Ge,{name:"fade-in-linear",onAfterLeave:t[11]||(t[11]=c=>e.$emit("vanish")),persisted:""},{default:f(()=>[U(C(j,{"z-index":e.zIndex,"overlay-class":[e.ns.is("message-box"),e.modalClass],mask:e.modal},{default:f(()=>[m("div",{role:"dialog","aria-label":e.title,"aria-modal":"true","aria-describedby":e.showInput?void 0:e.contentId,class:i(`${e.ns.namespace.value}-overlay-message-box`),onClick:t[8]||(t[8]=(...c)=>e.overlayEvent.onClick&&e.overlayEvent.onClick(...c)),onMousedown:t[9]||(t[9]=(...c)=>e.overlayEvent.onMousedown&&e.overlayEvent.onMousedown(...c)),onMouseup:t[10]||(t[10]=(...c)=>e.overlayEvent.onMouseup&&e.overlayEvent.onMouseup(...c))},[C(H,{loop:"",trapped:e.visible,"focus-trap-el":e.rootRef,"focus-start-el":e.focusStartRef,onReleaseRequested:e.onCloseRequested},{default:f(()=>[m("div",{ref:"rootRef",class:i([e.ns.b(),e.customClass,e.ns.is("draggable",e.draggable),{[e.ns.m("center")]:e.center}]),style:te(e.customStyle),tabindex:"-1",onClick:t[7]||(t[7]=L(()=>{},["stop"]))},[e.title!==null&&e.title!==void 0?(d(),q("div",{key:0,ref:"headerRef",class:i(e.ns.e("header"))},[m("div",{class:i(e.ns.e("title"))},[e.iconComponent&&e.center?(d(),b(u,{key:0,class:i([e.ns.e("status"),e.typeClass])},{default:f(()=>[(d(),b(V(e.iconComponent)))]),_:1},8,["class"])):M("v-if",!0),m("span",null,z(e.title),1)],2),e.showClose?(d(),q("button",{key:0,type:"button",class:i(e.ns.e("headerbtn")),"aria-label":e.t("el.messagebox.close"),onClick:t[0]||(t[0]=c=>e.handleAction(e.distinguishCancelAndClose?"close":"cancel")),onKeydown:t[1]||(t[1]=$(L(c=>e.handleAction(e.distinguishCancelAndClose?"close":"cancel"),["prevent"]),["enter"]))},[C(u,{class:i(e.ns.e("close"))},{default:f(()=>[C(p)]),_:1},8,["class"])],42,ye)):M("v-if",!0)],2)):M("v-if",!0),m("div",{id:e.contentId,class:i(e.ns.e("content"))},[m("div",{class:i(e.ns.e("container"))},[e.iconComponent&&!e.center&&e.hasMessage?(d(),b(u,{key:0,class:i([e.ns.e("status"),e.typeClass])},{default:f(()=>[(d(),b(V(e.iconComponent)))]),_:1},8,["class"])):M("v-if",!0),e.hasMessage?(d(),q("div",{key:1,class:i(e.ns.e("message"))},[Ze(e.$slots,"default",{},()=>[e.dangerouslyUseHTMLString?(d(),b(V(e.showInput?"label":"p"),{key:1,for:e.showInput?e.inputId:void 0,innerHTML:e.message},null,8,["for","innerHTML"])):(d(),b(V(e.showInput?"label":"p"),{key:0,for:e.showInput?e.inputId:void 0},{default:f(()=>[K(z(e.dangerouslyUseHTMLString?"":e.message),1)]),_:1},8,["for"]))])],2)):M("v-if",!0)],2),U(m("div",{class:i(e.ns.e("input"))},[C(g,{id:e.inputId,ref:"inputRef",modelValue:e.inputValue,"onUpdate:modelValue":t[2]||(t[2]=c=>e.inputValue=c),type:e.inputType,placeholder:e.inputPlaceholder,"aria-invalid":e.validateError,class:i({invalid:e.validateError}),onKeydown:$(e.handleInputEnter,["enter"])},null,8,["id","modelValue","type","placeholder","aria-invalid","class","onKeydown"]),m("div",{class:i(e.ns.e("errormsg")),style:te({visibility:e.editorErrorMessage?"visible":"hidden"})},z(e.editorErrorMessage),7)],2),[[N,e.showInput]])],10,be),m("div",{class:i(e.ns.e("btns"))},[e.showCancelButton?(d(),b(a,{key:0,loading:e.cancelButtonLoading,class:i([e.cancelButtonClass]),round:e.roundButton,size:e.btnSize,onClick:t[3]||(t[3]=c=>e.handleAction("cancel")),onKeydown:t[4]||(t[4]=$(L(c=>e.handleAction("cancel"),["prevent"]),["enter"]))},{default:f(()=>[K(z(e.cancelButtonText||e.t("el.messagebox.cancel")),1)]),_:1},8,["loading","class","round","size"])):M("v-if",!0),U(C(a,{ref:"confirmRef",type:"primary",loading:e.confirmButtonLoading,class:i([e.confirmButtonClasses]),round:e.roundButton,disabled:e.confirmButtonDisabled,size:e.btnSize,onClick:t[5]||(t[5]=c=>e.handleAction("confirm")),onKeydown:t[6]||(t[6]=$(L(c=>e.handleAction("confirm"),["prevent"]),["enter"]))},{default:f(()=>[K(z(e.confirmButtonText||e.t("el.messagebox.confirm")),1)]),_:1},8,["loading","class","round","disabled","size"]),[[N,e.showConfirmButton]])],2)],6)]),_:3},8,["trapped","focus-trap-el","focus-start-el","onReleaseRequested"])],42,ge)]),_:3},8,["z-index","overlay-class","mask"]),[[N,e.visible]])]),_:3})}var Ce=Oe(ve,[["render",he],["__file","/home/runner/work/element-plus/element-plus/packages/components/message-box/src/index.vue"]]);const T=new Map,_e=e=>{let t=document.body;return e.appendTo&&(ae(e.appendTo)&&(t=document.querySelector(e.appendTo)),re(e.appendTo)&&(t=e.appendTo),re(t)||(t=document.body)),t},Ee=(e,t,o=null)=>{const r=C(Ce,e,le(e.message)||ne(e.message)?{default:le(e.message)?e.message:()=>e.message}:null);return r.appContext=o,oe(r,t),_e(e).appendChild(t.firstElementChild),r.component},xe=()=>document.createElement("div"),Be=(e,t)=>{const o=xe();e.onVanish=()=>{oe(null,o),T.delete(s)},e.onAction=n=>{const u=T.get(s);let p;e.showInput?p={value:s.inputValue,action:n}:p=n,e.callback?e.callback(p,r.proxy):n==="cancel"||n==="close"?e.distinguishCancelAndClose&&n!=="cancel"?u.reject("close"):u.reject("cancel"):u.resolve(p)};const r=Ee(e,o,t),s=r.proxy;for(const n in e)se(e,n)&&!se(s.$props,n)&&(s[n]=e[n]);return s.visible=!0,s};function _(e,t=null){if(!We)return Promise.reject();let o;return ae(e)||ne(e)?e={message:e}:o=e.callback,new Promise((r,s)=>{const n=Be(e,t??_._context);T.set(n,{options:e,callback:o,resolve:r,reject:s})})}const we=["alert","confirm","prompt"],ke={alert:{closeOnPressEscape:!1,closeOnClickModal:!1},confirm:{showCancelButton:!0},prompt:{showCancelButton:!0,showInput:!0}};we.forEach(e=>{_[e]=Me(e)});function Me(e){return(t,o,r,s)=>{let n="";return Xe(o)?(r=o,n=""):Ye(o)?n="":n=o,_(Object.assign({title:n,message:t,type:"",...ke[e]},r,{boxType:e}),s)}}_.close=()=>{T.forEach((e,t)=>{t.doClose()}),T.clear()},_._context=null;const v=_;v.install=e=>{v._context=e._context,e.config.globalProperties.$msgbox=v,e.config.globalProperties.$messageBox=v,e.config.globalProperties.$alert=v.alert,e.config.globalProperties.$confirm=v.confirm,e.config.globalProperties.$prompt=v.prompt},ce=v});export{ce as E,mt as __tla};