index-e87ca514.js 4.4 KB

1
  1. import{c as y,u as I,n as G,t as x,D as T,a1 as R,w,p as F,e as $,G as q,I as K,f as B,b as M,z as N,q as j}from"./index-415d4eae.js";import{u as O}from"./use-expose-082e7ca7.js";import{d as _,c as C,r as U,a as V,n as Y,m as H}from"./index-ccb16a16.js";const[L,W]=y("form"),X={colon:Boolean,disabled:Boolean,readonly:Boolean,showError:Boolean,labelWidth:G,labelAlign:String,inputAlign:String,scrollToError:Boolean,validateFirst:Boolean,submitOnEnter:x,showErrorMessage:x,errorMessageAlign:String,validateTrigger:{type:[String,Array],default:"onBlur"}};var p=_({name:L,props:X,emits:["submit","failed"],setup(e,{emit:b,slots:f}){const{children:a,linkChildren:d}=I(R),o=n=>n?a.filter(t=>n.includes(t.name)):a,P=n=>new Promise((t,s)=>{const g=[];o(n).reduce((A,D)=>A.then(()=>{if(!g.length)return D.validate().then(E=>{E&&g.push(E)})}),Promise.resolve()).then(()=>{g.length?s(g):t()})}),i=n=>new Promise((t,s)=>{const g=o(n);Promise.all(g.map(m=>m.validate())).then(m=>{m=m.filter(Boolean),m.length?s(m):t()})}),h=n=>{const t=a.find(s=>s.name===n);return t?new Promise((s,g)=>{t.validate().then(m=>{m?g(m):s()})}):Promise.reject()},k=n=>typeof n=="string"?h(n):e.validateFirst?P(n):i(n),S=n=>{typeof n=="string"&&(n=[n]),o(n).forEach(s=>{s.resetValidation()})},c=()=>a.reduce((n,t)=>(n[t.name]=t.getValidationStatus(),n),{}),l=(n,t)=>{a.some(s=>s.name===n?(s.$el.scrollIntoView(t),!0):!1)},u=()=>a.reduce((n,t)=>(t.name!==void 0&&(n[t.name]=t.formValue.value),n),{}),r=()=>{const n=u();k().then(()=>b("submit",n)).catch(t=>{b("failed",{values:n,errors:t}),e.scrollToError&&t[0].name&&l(t[0].name)})},v=n=>{T(n),r()};return d({props:e}),O({submit:r,validate:k,getValues:u,scrollToField:l,resetValidation:S,getValidationStatus:c}),()=>{var n;return C("form",{class:W(),onSubmit:v},[(n=f.default)==null?void 0:n.call(f)])}}});const ce=w(p),z={name:F,disabled:Boolean,iconSize:G,modelValue:F,checkedColor:String,labelPosition:String,labelDisabled:Boolean};var J=_({props:$({},z,{bem:q(Function),role:String,shape:String,parent:Object,checked:Boolean,bindGroup:x,indeterminate:{type:Boolean,default:null}}),emits:["click","toggle"],setup(e,{emit:b,slots:f}){const a=U(),d=l=>{if(e.parent&&e.bindGroup)return e.parent.props[l]},o=V(()=>{if(e.parent&&e.bindGroup){const l=d("disabled")||e.disabled;if(e.role==="checkbox"){const u=d("modelValue").length,r=d("max"),v=r&&u>=+r;return l||v&&!e.checked}return l}return e.disabled}),P=V(()=>d("direction")),i=V(()=>{const l=e.checkedColor||d("checkedColor");if(l&&e.checked&&!o.value)return{borderColor:l,backgroundColor:l}}),h=V(()=>e.shape||d("shape")||"round"),k=l=>{const{target:u}=l,r=a.value,v=r===u||(r==null?void 0:r.contains(u));!o.value&&(v||!e.labelDisabled)&&b("toggle"),b("click",l)},S=()=>{var l,u;const{bem:r,checked:v,indeterminate:n}=e,t=e.iconSize||d("iconSize");return C("div",{ref:a,class:r("icon",[h.value,{disabled:o.value,checked:v,indeterminate:n}]),style:h.value!=="dot"?{fontSize:B(t)}:{width:B(t),height:B(t),borderColor:(l=i.value)==null?void 0:l.borderColor}},[f.icon?f.icon({checked:v,disabled:o.value}):h.value!=="dot"?C(K,{name:n?"minus":"success",style:i.value},null):C("div",{class:r("icon--dot__icon"),style:{backgroundColor:(u=i.value)==null?void 0:u.backgroundColor}},null)])},c=()=>{if(f.default)return C("span",{class:e.bem("label",[e.labelPosition,{disabled:o.value}])},[f.default()])};return()=>{const l=e.labelPosition==="left"?[c(),S()]:[S(),c()];return C("div",{role:e.role,class:e.bem([{disabled:o.value,"label-disabled":e.labelDisabled},P.value]),tabindex:o.value?void 0:0,"aria-checked":e.checked,onClick:k},[l])}}});const[Q,re]=y("checkbox-group"),Z=Symbol(Q),[ee,ne]=y("checkbox"),te=$({},z,{shape:String,bindGroup:x,indeterminate:{type:Boolean,default:null}});var le=_({name:ee,props:te,emits:["change","update:modelValue"],setup(e,{emit:b,slots:f}){const{parent:a}=M(Z),d=i=>{const{name:h}=e,{max:k,modelValue:S}=a.props,c=S.slice();if(i)!(k&&c.length>=+k)&&!c.includes(h)&&(c.push(h),e.bindGroup&&a.updateValue(c));else{const l=c.indexOf(h);l!==-1&&(c.splice(l,1),e.bindGroup&&a.updateValue(c))}},o=V(()=>a&&e.bindGroup?a.props.modelValue.indexOf(e.name)!==-1:!!e.modelValue),P=(i=!o.value)=>{a&&e.bindGroup?d(i):b("update:modelValue",i),e.indeterminate!==null&&b("change",i)};return Y(()=>e.modelValue,i=>{e.indeterminate===null&&b("change",i)}),O({toggle:P,props:e,checked:o}),N(()=>e.modelValue),()=>C(J,H({bem:ne,role:"checkbox",parent:a,checked:o.value,onToggle:P},e),j(f,["default","icon"]))}});const se=w(le);export{se as C,ce as F};