import{u as p}from"./DUnj0Gw2.js";import{C as g,m as E,U as _,aa as S,r as w,a8 as v,o as O,n as $,Q as I,T as j}from"./CWtpRkXC.js";import{a as A}from"./DF-M9__Y.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},a=new Error().stack;a&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[a]="d565d133-1729-4f2b-aa2b-c8e6fcb41128",e._sentryDebugIdIdentifier="sentry-dbid-d565d133-1729-4f2b-aa2b-c8e6fcb41128")}catch{}})();class d extends Error{constructor(a){super(a),this.message=a,Object.setPrototypeOf(this,d.prototype)}}const J=E({props:{schema:{type:[Object,Function],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:a,emit:n}){const s=p("$Z55GngiEgp"),u=A(`form-${s}`);_(()=>{u.on(async t=>{var i;t.type!=="submit"&&((i=e.validateOn)!=null&&i.includes(t.type))&&await m(t.path,{silent:!0})})}),S(()=>{u.reset()});const r=w([]);v("form-errors",r),v("form-events",u);const c=w({});v("form-inputs",c);async function b(){let t=await e.validate(e.state);if(e.schema)if(Y(e.schema))t=t.concat(await B(e.state,e.schema));else if(k(e.schema))t=t.concat(await F(e.state,e.schema));else if(U(e.schema))t=t.concat(await x(e.state,e.schema));else if(C(e.schema))t=t.concat(await M(e.state,e.schema));else throw new Error("Form validation failed: Unsupported form schema");return t}async function m(t,i={silent:!1}){let o=t;if(t&&!Array.isArray(t)&&(o=[t]),o){const l=r.value.filter(f=>!o.includes(f.path)),y=(await b()).filter(f=>o.includes(f.path));r.value=l.concat(y)}else r.value=await b();if(r.value.length>0){if(i.silent)return!1;throw new d(`Form validation failed: ${JSON.stringify(r.value,null,2)}`)}return e.state}async function h(t){var o;const i=t;try{(o=e.validateOn)!=null&&o.includes("submit")&&await m();const l={...i,data:e.state};n("submit",l)}catch(l){if(!(l instanceof d))throw l;const y={...i,errors:r.value.map(f=>({...f,id:c.value[f.path]}))};n("error",y)}}return a({validate:m,errors:r,setErrors(t,i){i?r.value=r.value.filter(o=>o.path!==i).concat(t):r.value=t},async submit(){await h(new Event("submit"))},getErrors(t){return t?r.value.filter(i=>i.path===t):r.value},clear(t){t?r.value=r.value.filter(i=>i.path!==t):r.value=[]}}),{onSubmit:h}}});function k(e){return e.validate&&e.__isYupSchema__}function D(e){return e.inner!==void 0}async function F(e,a){try{return await a.validate(e,{abortEarly:!1}),[]}catch(n){if(D(n))return n.inner.map(s=>({path:s.path??"",message:s.message}));throw n}}function Y(e){return e.parse!==void 0}async function B(e,a){const n=await a.safeParseAsync(e);return n.success===!1?n.error.issues.map(s=>({path:s.path.join("."),message:s.message})):[]}function U(e){return e.validateAsync!==void 0&&e.id!==void 0}function Z(e){return e.isJoi===!0}async function x(e,a){try{return await a.validateAsync(e,{abortEarly:!1}),[]}catch(n){if(Z(n))return n.details.map(s=>({path:s.path.join("."),message:s.message}));throw n}}function C(e){return"_parse"in e||"_run"in e||typeof e=="function"&&"schema"in e}async function M(e,a){var s;return((s=(await("_parse"in a?a._parse(e):"_run"in a?a._run({typed:!1,value:e},{}):a(e))).issues)==null?void 0:s.map(u=>{var r;return{path:((r=u.path)==null?void 0:r.map(c=>c.key).join("."))||"",message:u.message}}))||[]}function P(e,a,n,s,u,r){return O(),$("form",{onSubmit:a[0]||(a[0]=j((...c)=>e.onSubmit&&e.onSubmit(...c),["prevent"]))},[I(e.$slots,"default")],32)}const N=g(J,[["render",P]]);export{N as _};
