1 |
- import{x as R,H as f,aw as _,E as F,G as I,S as z,y as k,ay as L,d as M,W as U,V as W,i as a,z as S,az as G,$ as V,ab as $,aG as J,B as b,aH as j,aI as q,aJ as Q,aK as P,N as X,af as Y,D as Z,aL as ee,aM as te}from"./index.9a8e7555.js";import{A as x,a as ne}from"./index.3fb1b5c3.js";const[oe,s,B]=R("dialog"),ae=f({},_,{title:String,theme:String,width:F,message:[String,Function],callback:Function,allowHtml:Boolean,className:I,transition:z("van-dialog-bounce"),messageAlign:String,closeOnPopstate:k,showCancelButton:Boolean,cancelButtonText:String,cancelButtonColor:String,confirmButtonText:String,confirmButtonColor:String,showConfirmButton:k,closeOnClickOverlay:Boolean}),le=[...L,"transition","closeOnPopstate"];var p=M({name:oe,props:ae,emits:["confirm","cancel","keydown","update:show"],setup(e,{emit:i,slots:l}){const d=U(),u=W({confirm:!1,cancel:!1}),y=t=>i("update:show",t),v=t=>{var o;y(!1),(o=e.callback)==null||o.call(e,t)},O=t=>()=>{!e.show||(i(t),e.beforeClose?(u[t]=!0,Q(e.beforeClose,{args:[t],done(){v(t),u[t]=!1},canceled(){u[t]=!1}})):v(t))},w=O("cancel"),C=O("confirm"),T=J(t=>{var o,c;if(t.target!==((c=(o=d.value)==null?void 0:o.popupRef)==null?void 0:c.value))return;({Enter:e.showConfirmButton?C:P,Escape:e.showCancelButton?w:P})[t.key](),i("keydown",t)},["enter","esc"]),E=()=>{const t=l.title?l.title():e.title;if(t)return a("div",{class:s("header",{isolated:!e.message&&!l.default})},[t])},H=t=>{const{message:o,allowHtml:c,messageAlign:r}=e,g=s("message",{"has-title":t,[r]:r}),h=X(o)?o():o;return c&&typeof h=="string"?a("div",{class:g,innerHTML:h},null):a("div",{class:g},[h])},A=()=>{if(l.default)return a("div",{class:s("content")},[l.default()]);const{title:t,message:o,allowHtml:c}=e;if(o){const r=!!(t||l.title);return a("div",{key:c?1:0,class:s("content",{isolated:!r})},[H(r)])}},D=()=>a("div",{class:[q,s("footer")]},[e.showCancelButton&&a(b,{size:"large",text:e.cancelButtonText||B("cancel"),class:s("cancel"),style:{color:e.cancelButtonColor},loading:u.cancel,onClick:w},null),e.showConfirmButton&&a(b,{size:"large",text:e.confirmButtonText||B("confirm"),class:[s("confirm"),{[j]:e.showCancelButton}],style:{color:e.confirmButtonColor},loading:u.confirm,onClick:C},null)]),N=()=>a(ne,{class:s("footer")},{default:()=>[e.showCancelButton&&a(x,{type:"warning",text:e.cancelButtonText||B("cancel"),class:s("cancel"),color:e.cancelButtonColor,loading:u.cancel,onClick:w},null),e.showConfirmButton&&a(x,{type:"danger",text:e.confirmButtonText||B("confirm"),class:s("confirm"),color:e.confirmButtonColor,loading:u.confirm,onClick:C},null)]}),K=()=>l.footer?l.footer():e.theme==="round-button"?N():D();return()=>{const{width:t,title:o,theme:c,message:r,className:g}=e;return a($,S({ref:d,role:"dialog",class:[s([c]),g],style:{width:V(t)},tabindex:0,"aria-labelledby":o||r,onKeydown:T,"onUpdate:show":y},G(e,le)),{default:()=>[E(),A(),K()]})}}});let m;function se(){({instance:m}=ee({setup(){const{state:i,toggle:l}=te();return()=>a(p,S(i,{"onUpdate:show":l}),null)}}))}function n(e){return Y?new Promise((i,l)=>{m||se(),m.open(f({},n.currentOptions,e,{callback:d=>{(d==="confirm"?i:l)(d)}}))}):Promise.resolve()}n.defaultOptions={title:"",width:"",theme:null,message:"",overlay:!0,callback:null,teleport:"body",className:"",allowHtml:!1,lockScroll:!0,transition:void 0,beforeClose:null,overlayClass:"",overlayStyle:void 0,messageAlign:"",cancelButtonText:"",cancelButtonColor:null,confirmButtonText:"",confirmButtonColor:null,showConfirmButton:!0,showCancelButton:!1,closeOnPopstate:!0,closeOnClickOverlay:!1};n.currentOptions=f({},n.defaultOptions);n.alert=n;n.confirm=e=>n(f({showCancelButton:!0},e));n.close=()=>{m&&m.toggle(!1)};n.setDefaultOptions=e=>{f(n.currentOptions,e)};n.resetDefaultOptions=()=>{n.currentOptions=f({},n.defaultOptions)};n.Component=Z(p);n.install=e=>{e.use(n.Component),e.config.globalProperties.$dialog=n};export{n as D};
|