1import{_ as w,C as p,d as b,n as E,N as g,J as S,r as v,V as h}from"#entry";import{a as _}from"./BT46nUbQ.js";import{u as O}from"./CtnICrrb.js";import"./CtjZ9A9R.js";class l extends Error{constructor(s){super(s),this.message=s,Object.setPrototypeOf(this,l.prototype)}}const $=p({props:{schema:{type:Object,default:void 0},state:{type:Object,required:!0},validate:{type:Function,default:()=>[]},validateOn:{type:Array,default:()=>["blur","input","change","submit"]}},emits:["submit","error"],setup(e,{expose:s,emit:r}){const i=_(`form-${O()}`);i.on(async t=>{t.type!=="submit"&&e.validateOn?.includes(t.type)&&await m(t.path,{silent:!0})});const a=v([]);h("form-errors",a),h("form-events",i);const f=v({});h("form-inputs",f);async function u(){let t=await e.validate(e.state);if(e.schema)if(F(e.schema))t=t.concat(await Y(e.state,e.schema));else if(j(e.schema))t=t.concat(await A(e.state,e.schema));else if(k(e.schema))t=t.concat(await V(e.state,e.schema));else if(C(e.schema))t=t.concat(await N(e.state,e.schema));else throw new Error("Form validation failed: Unsupported form schema");return t}async function m(t,n={silent:!1}){if(t){const o=a.value.filter(d=>d.path!==t),c=(await u()).filter(d=>d.path===t);a.value=o.concat(c)}else a.value=await u();if(!n.silent&&a.value.length>0)throw new l(`Form validation failed: ${JSON.stringify(a.value,null,2)}`);return e.state}async function y(t){try{e.validateOn?.includes("submit")&&await m();const n={...t,data:e.state};r("submit",n)}catch(n){if(!(n instanceof l))throw n;const o={...t,errors:a.value.map(c=>({...c,id:f.value[c.path]}))};r("error",o)}}return s({validate:m,errors:a,setErrors(t,n){a.value=t,n?a.value=a.value.filter(o=>o.path!==n).concat(t):a.value=t},getErrors(t){return t?a.value.filter(n=>n.path===t):a.value},clear(t){t?a.value=a.value.filter(n=>n.path===t):a.value=[]}}),{onSubmit:y}}});function j(e){return e.validate&&e.__isYupSchema__}function J(e){return e.inner!==void 0}async function A(e,s){try{return await s.validate(e,{abortEarly:!1}),[]}catch(r){if(J(r))return r.inner.map(i=>({path:i.path??"",message:i.message}));throw r}}function F(e){return e.parse!==void 0}async function Y(e,s){const r=await s.safeParseAsync(e);return r.success===!1?r.error.issues.map(i=>({path:i.path.join("."),message:i.message})):[]}function k(e){return e.validateAsync!==void 0&&e.id!==void 0}function B(e){return e.isJoi===!0}async function V(e,s){try{return await s.validateAsync(e,{abortEarly:!1}),[]}catch(r){if(B(r))return r.details.map(i=>({path:i.path.join("."),message:i.message}));throw r}}function C(e){return e._parse!==void 0}async function N(e,s){const r=await s._parse(e);return r.issues?r.issues.map(i=>({path:i.path.map(a=>a.key).join("."),message:i.message})):[]}function P(e,s,r,i,a,f){return E(),b("form",{onSubmit:s[0]||(s[0]=S((...u)=>e.onSubmit&&e.onSubmit(...u),["prevent"]))},[g(e.$slots,"default")],32)}const U=w($,[["render",P]]);export{U as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.