index-e7d583f1.js 8.2 KB

1
  1. import{m as ce,u as ue}from"./function-call-d4acb7bb.js";import{d as R,r as L,c as i,a as x,B as re,G as de,m as $,w as U,h as W,v as G,A as me}from"./index-84dbbcf9.js";import{p as fe,a as ge,P as he}from"./index-ba3f0885.js";import{B as j}from"./index-d6e7009f.js";import{c as M,u as be,t as w,w as Q,e as D,a as Be,n as E,b as ve,d as we,p as Ce,f as Y,h as p,j as Se,k as ye,m as _,l as Pe,o as xe,q as ee,r as te,s as Te,v as q,x as ke}from"./index-7d547c99.js";import{u as Ie}from"./use-placeholder-efb8b539.js";import{u as _e}from"./use-scope-id-35da71d1.js";import{r as Ee,u as De}from"./use-route-38eed520.js";import{a as Ne,b as Ae,H as ne,L as Oe}from"./constant-eba5e2d8.js";import{c as le}from"./on-popup-reopen-b537597c.js";const[se,oe]=M("action-bar"),ie=Symbol(se),Ve={placeholder:Boolean,safeAreaInsetBottom:w};var Fe=R({name:se,props:Ve,setup(e,{slots:o}){const a=L(),d=Ie(a,oe),{linkChildren:s}=be(ie);s();const b=()=>{var l;return i("div",{ref:a,class:[oe(),{"van-safe-area-bottom":e.safeAreaInsetBottom}]},[(l=o.default)==null?void 0:l.call(o)])};return()=>e.placeholder?d(b):b()}});const Le=Q(Fe),[$e,Re]=M("action-bar-button"),Me=D({},Ee,{type:String,text:String,icon:String,color:String,loading:Boolean,disabled:Boolean});var He=R({name:$e,props:Me,setup(e,{slots:o}){const a=De(),{parent:d,index:s}=Be(ie),b=x(()=>{if(d){const r=d.children[s.value-1];return!(r&&"isButton"in r)}}),l=x(()=>{if(d){const r=d.children[s.value+1];return!(r&&"isButton"in r)}});return _e({isButton:!0}),()=>{const{type:r,icon:B,text:C,color:y,loading:T,disabled:P}=e;return i(j,{class:Re([r,{last:l.value,first:b.value}]),size:"large",type:r,icon:B,color:y,loading:T,disabled:P,onClick:a},{default:()=>[o.default?o.default():C]})}}});const ae=Q(He),[ze,h,O]=M("dialog"),Ke=D({},fe,{title:String,theme:String,width:E,message:[String,Function],callback:Function,allowHtml:Boolean,className:ve,transition:we("van-dialog-bounce"),messageAlign:String,closeOnPopstate:w,showCancelButton:Boolean,cancelButtonText:String,cancelButtonColor:String,cancelButtonDisabled:Boolean,confirmButtonText:String,confirmButtonColor:String,confirmButtonDisabled:Boolean,showConfirmButton:w,closeOnClickOverlay:Boolean}),Ue=[...ge,"transition","closeOnPopstate"];var We=R({name:ze,props:Ke,emits:["confirm","cancel","keydown","update:show"],setup(e,{emit:o,slots:a}){const d=L(),s=re({confirm:!1,cancel:!1}),b=n=>o("update:show",n),l=n=>{var c;b(!1),(c=e.callback)==null||c.call(e,n)},r=n=>()=>{e.show&&(o(n),e.beforeClose?(s[n]=!0,le(e.beforeClose,{args:[n],done(){l(n),s[n]=!1},canceled(){s[n]=!1}})):l(n))},B=r("cancel"),C=r("confirm"),y=de(n=>{var c,f;if(n.target!==((f=(c=d.value)==null?void 0:c.popupRef)==null?void 0:f.value))return;({Enter:e.showConfirmButton?C:p,Escape:e.showCancelButton?B:p})[n.key](),o("keydown",n)},["enter","esc"]),T=()=>{const n=a.title?a.title():e.title;if(n)return i("div",{class:h("header",{isolated:!e.message&&!a.default})},[n])},P=n=>{const{message:c,allowHtml:f,messageAlign:v}=e,S=h("message",{"has-title":n,[v]:v}),I=Se(c)?c():c;return f&&typeof I=="string"?i("div",{class:S,innerHTML:I},null):i("div",{class:S},[I])},k=()=>{if(a.default)return i("div",{class:h("content")},[a.default()]);const{title:n,message:c,allowHtml:f}=e;if(c){const v=!!(n||a.title);return i("div",{key:f?1:0,class:h("content",{isolated:!v})},[P(v)])}},H=()=>i("div",{class:[Ae,h("footer")]},[e.showCancelButton&&i(j,{size:"large",text:e.cancelButtonText||O("cancel"),class:h("cancel"),style:{color:e.cancelButtonColor},loading:s.cancel,disabled:e.cancelButtonDisabled,onClick:B},null),e.showConfirmButton&&i(j,{size:"large",text:e.confirmButtonText||O("confirm"),class:[h("confirm"),{[Ne]:e.showCancelButton}],style:{color:e.confirmButtonColor},loading:s.confirm,disabled:e.confirmButtonDisabled,onClick:C},null)]),z=()=>i(Le,{class:h("footer")},{default:()=>[e.showCancelButton&&i(ae,{type:"warning",text:e.cancelButtonText||O("cancel"),class:h("cancel"),color:e.cancelButtonColor,loading:s.cancel,disabled:e.cancelButtonDisabled,onClick:B},null),e.showConfirmButton&&i(ae,{type:"danger",text:e.confirmButtonText||O("confirm"),class:h("confirm"),color:e.confirmButtonColor,loading:s.confirm,disabled:e.confirmButtonDisabled,onClick:C},null)]}),K=()=>a.footer?a.footer():e.theme==="round-button"?z():H();return()=>{const{width:n,title:c,theme:f,message:v,className:S}=e;return i(he,$({ref:d,role:"dialog",class:[h([f]),S],style:{width:Y(n)},tabindex:0,"aria-labelledby":c||v,onKeydown:y,"onUpdate:show":b},Ce(e,Ue)),{default:()=>[T(),k(),K()]})}}});let J;const Ge={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,cancelButtonDisabled:!1,confirmButtonText:"",confirmButtonColor:null,confirmButtonDisabled:!1,showConfirmButton:!0,showCancelButton:!1,closeOnPopstate:!0,closeOnClickOverlay:!1};let qe=D({},Ge);function je(){({instance:J}=ce({setup(){const{state:o,toggle:a}=ue();return()=>i(We,$(o,{"onUpdate:show":a}),null)}}))}function Ye(e){return ye?new Promise((o,a)=>{J||je(),J.open(D({},qe,e,{callback:d=>{(d==="confirm"?o:a)(d)}}))}):Promise.resolve(void 0)}const ut=e=>Ye(D({showCancelButton:!0},e)),[Je,V]=M("stepper"),Qe=200,F=(e,o)=>String(e)===String(o),Xe={min:_(1),max:_(1/0),name:_(""),step:_(1),theme:String,integer:Boolean,disabled:Boolean,showPlus:w,showMinus:w,showInput:w,longPress:w,autoFixed:w,allowEmpty:Boolean,modelValue:E,inputWidth:E,buttonSize:E,placeholder:String,disablePlus:Boolean,disableMinus:Boolean,disableInput:Boolean,beforeChange:Function,defaultValue:_(1),decimalLength:E};var Ze=R({name:Je,props:Xe,emits:["plus","blur","minus","focus","change","overlimit","update:modelValue"],setup(e,{emit:o}){const a=(t,u=!0)=>{const{min:m,max:N,allowEmpty:g,decimalLength:A}=e;return g&&t===""||(t=ee(String(t),!e.integer),t=t===""?0:+t,t=Number.isNaN(t)?+m:t,t=u?Math.max(Math.min(+N,t),+m):t,te(A)&&(t=t.toFixed(+A))),t},d=()=>{var t;const u=(t=e.modelValue)!=null?t:e.defaultValue,m=a(u);return F(m,e.modelValue)||o("update:modelValue",m),m};let s;const b=L(),l=L(d()),r=x(()=>e.disabled||e.disableMinus||+l.value<=+e.min),B=x(()=>e.disabled||e.disablePlus||+l.value>=+e.max),C=x(()=>({width:Y(e.inputWidth),height:Y(e.buttonSize)})),y=x(()=>Pe(e.buttonSize)),T=()=>{const t=a(l.value);F(t,l.value)||(l.value=t)},P=t=>{e.beforeChange?le(e.beforeChange,{args:[t],done(){l.value=t}}):l.value=t},k=()=>{if(s==="plus"&&B.value||s==="minus"&&r.value){o("overlimit",s);return}const t=s==="minus"?-e.step:+e.step,u=a(ke(+l.value,t));P(u),o(s)},H=t=>{const u=t.target,{value:m}=u,{decimalLength:N}=e;let g=ee(String(m),!e.integer);if(te(N)&&g.includes(".")){const Z=g.split(".");g=`${Z[0]}.${Z[1].slice(0,+N)}`}e.beforeChange?u.value=String(l.value):F(m,g)||(u.value=g);const A=g===String(+g);P(A?+g:g)},z=t=>{var u;e.disableInput?(u=b.value)==null||u.blur():o("focus",t)},K=t=>{const u=t.target,m=a(u.value,e.autoFixed);u.value=String(m),l.value=m,me(()=>{o("blur",t),Te()})};let n,c;const f=()=>{c=setTimeout(()=>{k(),f()},Qe)},v=()=>{e.longPress&&(n=!1,clearTimeout(c),c=setTimeout(()=>{n=!0,k(),f()},Oe))},S=t=>{e.longPress&&(clearTimeout(c),n&&q(t))},I=t=>{e.disableInput&&q(t)},X=t=>({onClick:u=>{q(u),s=t,k()},onTouchstartPassive:()=>{s=t,v()},onTouchend:S,onTouchcancel:S});return U(()=>[e.max,e.min,e.integer,e.decimalLength],T),U(()=>e.modelValue,t=>{F(t,l.value)||(l.value=a(t))}),U(l,t=>{o("update:modelValue",t),o("change",t,{name:e.name})}),xe(()=>e.modelValue),()=>i("div",{role:"group",class:V([e.theme])},[W(i("button",$({type:"button",style:y.value,class:[V("minus",{disabled:r.value}),{[ne]:!r.value}],"aria-disabled":r.value||void 0},X("minus")),null),[[G,e.showMinus]]),W(i("input",{ref:b,type:e.integer?"tel":"text",role:"spinbutton",class:V("input"),value:l.value,style:C.value,disabled:e.disabled,readonly:e.disableInput,inputmode:e.integer?"numeric":"decimal",placeholder:e.placeholder,autocomplete:"off","aria-valuemax":e.max,"aria-valuemin":e.min,"aria-valuenow":l.value,onBlur:K,onInput:H,onFocus:z,onMousedown:I},null),[[G,e.showInput]]),W(i("button",$({type:"button",style:y.value,class:[V("plus",{disabled:B.value}),{[ne]:!B.value}],"aria-disabled":B.value||void 0},X("plus")),null),[[G,e.showPlus]])])}});const rt=Q(Ze);export{rt as S,ut as a,We as s};