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
11 KiB
2 lines
11 KiB
import{G as j,V as be,P as L,d as ye,c as w,m as T,q as Ce,s as Ee,ak as he,t as Be,R as M,o as f,a as b,w as m,E as F,y as C,x as p,n as i,f as x,N as z,v as H,g as P,J as S,A as R,M as D,r as we,z as K,$ as q,a6 as Te,af as Me,L as le,a0 as re,al as ie,am as _,l as Se,aa as ee}from"./normalize-035cc755.js";import{E as ke,f as ne}from"./el-button-61655bf9.js";import{E as Ae}from"./el-input-121264f0.js";import{E as Ie,a as Re,u as Le}from"./el-overlay-711fbdc6.js";import{E as Oe,f as Ve,T as se,_ as $e,e as ze,w as oe}from"./base-a3ee0d3b.js";import{E as Pe}from"./aria-c4f251c4.js";import{g as De}from"./el-table-column-e794cc32.js";import{i as Ne}from"./validator-077362c6.js";import{b as Ue}from"./config-provider-c5285acd.js";import{u as Fe}from"./index-e156b27d.js";const He='a[href],button:not([disabled]),button:not([hidden]),:not([tabindex="-1"]),input:not([disabled]),input:not([type="hidden"]),select:not([disabled]),textarea:not([disabled])',Ke=e=>getComputedStyle(e).position==="fixed"?!1:e.offsetParent!==null,te=e=>Array.from(e.querySelectorAll(He)).filter(n=>qe(n)&&Ke(n)),qe=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}},je=(e,n)=>{let t;j(()=>e.value,r=>{var a,o;r?(t=document.activeElement,be(n)&&((o=(a=n.value).focus)==null||o.call(a))):t.focus()})},G="_trap-focus-children",E=[],ae=e=>{if(E.length===0)return;const n=E[E.length-1][G];if(n.length>0&&e.code===Pe.tab){if(n.length===1){e.preventDefault(),document.activeElement!==n[0]&&n[0].focus();return}const t=e.shiftKey,r=e.target===n[0],a=e.target===n[n.length-1];r&&t&&(e.preventDefault(),n[n.length-1].focus()),a&&!t&&(e.preventDefault(),n[0].focus())}},Ge={beforeMount(e){e[G]=te(e),E.push(e),E.length<=1&&document.addEventListener("keydown",ae)},updated(e){L(()=>{e[G]=te(e)})},unmounted(){E.shift(),E.length===0&&document.removeEventListener("keydown",ae)}},Xe=ye({name:"ElMessageBox",directives:{TrapFocus:Ge},components:{ElButton:ke,ElFocusTrap:De,ElInput:Ae,ElOverlay:Ie,ElIcon:Oe,...Ve},inheritAttrs:!1,props:{buttonSize:{type:String,validator:Ne},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:n}){const{locale:t,zIndex:r,ns:a,size:o}=Ue("message-box",w(()=>e.buttonSize)),{t:d}=t,{nextZIndex:c}=r,v=T(!1),s=Ce({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:c()}),N=w(()=>{const l=s.type;return{[a.bm("icon",l)]:l&&se[l]}}),U=ne(),u=ne(),ue=w(()=>s.icon||se[s.type]||""),de=w(()=>!!s.message),h=T(),X=T(),A=T(),V=T(),J=T(),fe=w(()=>s.confirmButtonClass);j(()=>s.inputValue,async l=>{await L(),e.boxType==="prompt"&&l!==null&&Z()},{immediate:!0}),j(()=>v.value,l=>{var g,B;l&&(e.boxType!=="prompt"&&(s.autofocus?A.value=(B=(g=J.value)==null?void 0:g.$el)!=null?B:h.value:A.value=h.value),s.zIndex=c()),e.boxType==="prompt"&&(l?L().then(()=>{var Y;V.value&&V.value.$el&&(s.autofocus?A.value=(Y=ve())!=null?Y:h.value:A.value=h.value)}):(s.editorErrorMessage="",s.validateError=!1))});const ce=w(()=>e.draggable);Fe(h,X,ce),Ee(async()=>{await L(),e.closeOnHashChange&&window.addEventListener("hashchange",I)}),he(()=>{e.closeOnHashChange&&window.removeEventListener("hashchange",I)});function I(){v.value&&(v.value=!1,L(()=>{s.action&&n("action",s.action)}))}const W=()=>{e.closeOnClickModal&&$(s.distinguishCancelAndClose?"close":"cancel")},me=Le(W),pe=l=>{if(s.inputType!=="textarea")return l.preventDefault(),$("confirm")},$=l=>{var g;e.boxType==="prompt"&&l==="confirm"&&!Z()||(s.action=l,s.beforeClose?(g=s.beforeClose)==null||g.call(s,l,s,I):I())},Z=()=>{if(e.boxType==="prompt"){const l=s.inputPattern;if(l&&!l.test(s.inputValue||""))return s.editorErrorMessage=s.inputErrorMessage||d("el.messagebox.error"),s.validateError=!0,!1;const g=s.inputValidator;if(typeof g=="function"){const B=g(s.inputValue);if(B===!1)return s.editorErrorMessage=s.inputErrorMessage||d("el.messagebox.error"),s.validateError=!0,!1;if(typeof B=="string")return s.editorErrorMessage=B,s.validateError=!0,!1}}return s.editorErrorMessage="",s.validateError=!1,!0},ve=()=>{const l=V.value.$refs;return l.input||l.textarea},Q=()=>{$("close")},ge=()=>{e.closeOnPressEscape&&Q()};return e.lockScroll&&Re(v),je(v),{...Be(s),ns:a,overlayEvent:me,visible:v,hasMessage:de,typeClass:N,contentId:U,inputId:u,btnSize:o,iconComponent:ue,confirmButtonClasses:fe,rootRef:h,focusStartRef:A,headerRef:X,inputRef:V,confirmRef:J,doClose:I,handleClose:Q,onCloseRequested:ge,handleWrapperClick:W,handleInputEnter:pe,handleAction:$,t:d}}}),Je=["aria-label","aria-describedby"],We=["aria-label"],Ze=["id"];function Qe(e,n,t,r,a,o){const d=M("el-icon"),c=M("close"),v=M("el-input"),s=M("el-button"),N=M("el-focus-trap"),U=M("el-overlay");return f(),b(Te,{name:"fade-in-linear",onAfterLeave:n[11]||(n[11]=u=>e.$emit("vanish")),persisted:""},{default:m(()=>[F(C(U,{"z-index":e.zIndex,"overlay-class":[e.ns.is("message-box"),e.modalClass],mask:e.modal},{default:m(()=>[p("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:n[8]||(n[8]=(...u)=>e.overlayEvent.onClick&&e.overlayEvent.onClick(...u)),onMousedown:n[9]||(n[9]=(...u)=>e.overlayEvent.onMousedown&&e.overlayEvent.onMousedown(...u)),onMouseup:n[10]||(n[10]=(...u)=>e.overlayEvent.onMouseup&&e.overlayEvent.onMouseup(...u))},[C(N,{loop:"",trapped:e.visible,"focus-trap-el":e.rootRef,"focus-start-el":e.focusStartRef,onReleaseRequested:e.onCloseRequested},{default:m(()=>[p("div",{ref:"rootRef",class:i([e.ns.b(),e.customClass,e.ns.is("draggable",e.draggable),{[e.ns.m("center")]:e.center}]),style:x(e.customStyle),tabindex:"-1",onClick:n[7]||(n[7]=z(()=>{},["stop"]))},[e.title!==null&&e.title!==void 0?(f(),H("div",{key:0,ref:"headerRef",class:i(e.ns.e("header"))},[p("div",{class:i(e.ns.e("title"))},[e.iconComponent&&e.center?(f(),b(d,{key:0,class:i([e.ns.e("status"),e.typeClass])},{default:m(()=>[(f(),b(P(e.iconComponent)))]),_:1},8,["class"])):S("v-if",!0),p("span",null,R(e.title),1)],2),e.showClose?(f(),H("button",{key:0,type:"button",class:i(e.ns.e("headerbtn")),"aria-label":e.t("el.messagebox.close"),onClick:n[0]||(n[0]=u=>e.handleAction(e.distinguishCancelAndClose?"close":"cancel")),onKeydown:n[1]||(n[1]=D(z(u=>e.handleAction(e.distinguishCancelAndClose?"close":"cancel"),["prevent"]),["enter"]))},[C(d,{class:i(e.ns.e("close"))},{default:m(()=>[C(c)]),_:1},8,["class"])],42,We)):S("v-if",!0)],2)):S("v-if",!0),p("div",{id:e.contentId,class:i(e.ns.e("content"))},[p("div",{class:i(e.ns.e("container"))},[e.iconComponent&&!e.center&&e.hasMessage?(f(),b(d,{key:0,class:i([e.ns.e("status"),e.typeClass])},{default:m(()=>[(f(),b(P(e.iconComponent)))]),_:1},8,["class"])):S("v-if",!0),e.hasMessage?(f(),H("div",{key:1,class:i(e.ns.e("message"))},[we(e.$slots,"default",{},()=>[e.dangerouslyUseHTMLString?(f(),b(P(e.showInput?"label":"p"),{key:1,for:e.showInput?e.inputId:void 0,innerHTML:e.message},null,8,["for","innerHTML"])):(f(),b(P(e.showInput?"label":"p"),{key:0,for:e.showInput?e.inputId:void 0},{default:m(()=>[K(R(e.dangerouslyUseHTMLString?"":e.message),1)]),_:1},8,["for"]))])],2)):S("v-if",!0)],2),F(p("div",{class:i(e.ns.e("input"))},[C(v,{id:e.inputId,ref:"inputRef",modelValue:e.inputValue,"onUpdate:modelValue":n[2]||(n[2]=u=>e.inputValue=u),type:e.inputType,placeholder:e.inputPlaceholder,"aria-invalid":e.validateError,class:i({invalid:e.validateError}),onKeydown:D(e.handleInputEnter,["enter"])},null,8,["id","modelValue","type","placeholder","aria-invalid","class","onKeydown"]),p("div",{class:i(e.ns.e("errormsg")),style:x({visibility:e.editorErrorMessage?"visible":"hidden"})},R(e.editorErrorMessage),7)],2),[[q,e.showInput]])],10,Ze),p("div",{class:i(e.ns.e("btns"))},[e.showCancelButton?(f(),b(s,{key:0,loading:e.cancelButtonLoading,class:i([e.cancelButtonClass]),round:e.roundButton,size:e.btnSize,onClick:n[3]||(n[3]=u=>e.handleAction("cancel")),onKeydown:n[4]||(n[4]=D(z(u=>e.handleAction("cancel"),["prevent"]),["enter"]))},{default:m(()=>[K(R(e.cancelButtonText||e.t("el.messagebox.cancel")),1)]),_:1},8,["loading","class","round","size"])):S("v-if",!0),F(C(s,{ref:"confirmRef",type:"primary",loading:e.confirmButtonLoading,class:i([e.confirmButtonClasses]),round:e.roundButton,disabled:e.confirmButtonDisabled,size:e.btnSize,onClick:n[5]||(n[5]=u=>e.handleAction("confirm")),onKeydown:n[6]||(n[6]=D(z(u=>e.handleAction("confirm"),["prevent"]),["enter"]))},{default:m(()=>[K(R(e.confirmButtonText||e.t("el.messagebox.confirm")),1)]),_:1},8,["loading","class","round","disabled","size"]),[[q,e.showConfirmButton]])],2)],6)]),_:3},8,["trapped","focus-trap-el","focus-start-el","onReleaseRequested"])],42,Je)]),_:3},8,["z-index","overlay-class","mask"]),[[q,e.visible]])]),_:3})}var Ye=$e(Xe,[["render",Qe],["__file","/home/runner/work/element-plus/element-plus/packages/components/message-box/src/index.vue"]]);const O=new Map,xe=e=>{let n=document.body;return e.appendTo&&(le(e.appendTo)&&(n=document.querySelector(e.appendTo)),oe(e.appendTo)&&(n=e.appendTo),oe(n)||(n=document.body)),n},_e=(e,n,t=null)=>{const r=C(Ye,e,ee(e.message)||re(e.message)?{default:ee(e.message)?e.message:()=>e.message}:null);return r.appContext=t,ie(r,n),xe(e).appendChild(n.firstElementChild),r.component},en=()=>document.createElement("div"),nn=(e,n)=>{const t=en();e.onVanish=()=>{ie(null,t),O.delete(a)},e.onAction=o=>{const d=O.get(a);let c;e.showInput?c={value:a.inputValue,action:o}:c=o,e.callback?e.callback(c,r.proxy):o==="cancel"||o==="close"?e.distinguishCancelAndClose&&o!=="cancel"?d.reject("close"):d.reject("cancel"):d.resolve(c)};const r=_e(e,t,n),a=r.proxy;for(const o in e)_(e,o)&&!_(a.$props,o)&&(a[o]=e[o]);return a.visible=!0,a};function k(e,n=null){if(!Me)return Promise.reject();let t;return le(e)||re(e)?e={message:e}:t=e.callback,new Promise((r,a)=>{const o=nn(e,n??k._context);O.set(o,{options:e,callback:t,resolve:r,reject:a})})}const sn=["alert","confirm","prompt"],on={alert:{closeOnPressEscape:!1,closeOnClickModal:!1},confirm:{showCancelButton:!0},prompt:{showCancelButton:!0,showInput:!0}};sn.forEach(e=>{k[e]=tn(e)});function tn(e){return(n,t,r,a)=>{let o="";return Se(t)?(r=t,o=""):ze(t)?o="":o=t,k(Object.assign({title:o,message:n,type:"",...on[e]},r,{boxType:e}),a)}}k.close=()=>{O.forEach((e,n)=>{n.doClose()}),O.clear()};k._context=null;const y=k;y.install=e=>{y._context=e._context,e.config.globalProperties.$msgbox=y,e.config.globalProperties.$messageBox=y,e.config.globalProperties.$alert=y.alert,e.config.globalProperties.$confirm=y.confirm,e.config.globalProperties.$prompt=y.prompt};const gn=y;export{gn as E};
|