index-ff598cae.js 1.7 KB

1
  1. import{c as V,u as y,n as A,t as g,D as T,X as C,w as M}from"./index-f74a9797.js";import{u as N}from"./use-expose-8ee00450.js";import{d as _,c as x}from"./index-df5648cd.js";const[D,I]=V("form"),O={colon:Boolean,disabled:Boolean,readonly:Boolean,showError:Boolean,labelWidth:A,labelAlign:String,inputAlign:String,scrollToError:Boolean,validateFirst:Boolean,submitOnEnter:g,showErrorMessage:g,errorMessageAlign:String,validateTrigger:{type:[String,Array],default:"onBlur"}};var j=_({name:D,props:O,emits:["submit","failed"],setup(l,{emit:s,slots:u}){const{children:i,linkChildren:v}=y(C),r=e=>e?i.filter(t=>e.includes(t.name)):i,p=e=>new Promise((t,n)=>{const o=[];r(e).reduce((E,F)=>E.then(()=>{if(!o.length)return F.validate().then(h=>{h&&o.push(h)})}),Promise.resolve()).then(()=>{o.length?n(o):t()})}),b=e=>new Promise((t,n)=>{const o=r(e);Promise.all(o.map(a=>a.validate())).then(a=>{a=a.filter(Boolean),a.length?n(a):t()})}),B=e=>{const t=i.find(n=>n.name===e);return t?new Promise((n,o)=>{t.validate().then(a=>{a?o(a):n()})}):Promise.reject()},c=e=>typeof e=="string"?B(e):l.validateFirst?p(e):b(e),P=e=>{typeof e=="string"&&(e=[e]),r(e).forEach(n=>{n.resetValidation()})},S=()=>i.reduce((e,t)=>(e[t.name]=t.getValidationStatus(),e),{}),d=(e,t)=>{i.some(n=>n.name===e?(n.$el.scrollIntoView(t),!0):!1)},f=()=>i.reduce((e,t)=>(t.name!==void 0&&(e[t.name]=t.formValue.value),e),{}),m=()=>{const e=f();c().then(()=>s("submit",e)).catch(t=>{s("failed",{values:e,errors:t}),l.scrollToError&&t[0].name&&d(t[0].name)})},w=e=>{T(e),m()};return v({props:l}),N({submit:m,validate:c,getValues:f,scrollToField:d,resetValidation:P,getValidationStatus:S}),()=>{var e;return x("form",{class:I(),onSubmit:w},[(e=u.default)==null?void 0:e.call(u)])}}});const R=M(j);export{R as F};