1import{J as e,On as t,Pt as n,Qn as r,Rt as i,_n as a,ct as o,ft as ee,g as s,gn as c,gt as l,mt as te,qt as u,tt as d,v as f,vn as p,wt as m,xt as h}from"./CoKk4mC0.js";import{mt as ne}from"./XZ_Bayec.js";import{r as re}from"./CMNvG1uO.js";import{a as ie,c as g,d as _,n as v,o as ae,r as oe,s as y,t as b}from"./AMip3GyM2.js";import{f as se}from"./dm7jV6PG.js";function x(e){return`schema`in e&&typeof e.coercer==`function`&&typeof e.validator==`function`&&typeof e.refiner==`function`}function S(e){return`~standard`in e}async function C(e,t){let n=await t[`~standard`].validate(e);return n.issues?{errors:n.issues?.map(e=>({name:e.path?.map(e=>typeof e==`object`?e.key:e).join(`.`)||``,message:e.message}))||[],result:null}:{errors:null,result:n.value}}async function w(e,t){let[n,r]=t.validate(e);return n?{errors:n.failures().map(e=>({message:e.message,name:e.path.join(`.`)})),result:null}:{errors:null,result:r}}function T(e,t){if(S(t))return C(e,t);if(x(t))return w(e,t);throw Error(`Form validation failed: Unsupported form schema`)}function E(e,t){return t?t.split(`.`).reduce((e,t)=>e?.[t],e):e}function D(e,t,n){if(!t)return Object.assign(e,n);if(!e)return e;let r=t.split(`.`),i=e;for(let e=0;e<r.length-1;e++){let t=r[e];(i[t]===void 0||i[t]===null)&&(e+1<r.length&&!Number.isNaN(Number(r[e+1]))?i[t]=[]:i[t]={}),i=i[t]}let a=r[r.length-1];return i[a]=n,e}var O=class e extends Error{formId;errors;constructor(t,n){super(`Form validation exception`),this.formId=t,this.errors=n,Object.setPrototypeOf(this,e.prototype)}},ce={base:``},k={__name:`UForm`,props:{id:{type:[String,Number],required:!1},schema:{type:null,required:!1},state:{type:null,required:!1},validate:{type:Function,required:!1},validateOn:{type:Array,required:!1,default(){return[`input`,`blur`,`change`]}},disabled:{type:Boolean,required:!1},name:{type:String,required:!1},validateOnInputDelay:{type:Number,required:!1,default:300},transform:{type:null,required:!1,default:()=>!0},nested:{type:Boolean,required:!1},loadingAuto:{type:Boolean,required:!1,default:!0},class:{type:null,required:!1},ui:{type:Object,required:!1},onSubmit:{type:Function,required:!1}},emits:[`submit`,`error`],setup(x,{expose:S,emit:C}){let w=x,k=C,A=_(`form`,w),le=re(),ue=s(()=>b({extend:ce,...le.ui?.form||{}})),j=A.id??n(),M=i(`formRef`),N=se(`form-${j}`),P=A.nested===!0&&e(v,void 0),F=A.nested===!0?e(g,void 0):void 0,I=s(()=>F?.value?A.name?E(F.value,A.name):F.value:A.state);l(v,N),l(g,I);let L=p(new Map);o(async()=>{P&&(await d(),P.emit({type:`attach`,validate:G,formId:j,name:A.name,api:$}))}),ee(()=>{N.reset(),P&&P.emit({type:`detach`,formId:j})}),o(async()=>{N.on(async e=>{e.type===`attach`?L.value.set(e.formId,{validate:e.validate,name:e.name,api:e.api}):e.type===`detach`?L.value.delete(e.formId):A.validateOn?.includes(e.type)&&!K.value&&(e.type===`input`?(e.eager||H.has(e.name))&&await G({name:e.name,silent:!0,nested:!1}):await G({name:e.name,silent:!0,nested:!1})),e.type===`blur`&&H.add(e.name),(e.type===`change`||e.type===`input`||e.type===`blur`||e.type===`focus`)&&V.add(e.name),(e.type===`change`||e.type===`input`)&&B.add(e.name)})});let R=p([]);l(oe,R);let z=p({});l(ie,z);let B=c(new Set),V=c(new Set),H=c(new Set);function U(e){return e.map(e=>({...e,id:e?.name?z.value[e.name]?.id:void 0}))}let W=p(null);async function de(){let e=A.validate?await A.validate(I.value)??[]:[];if(A.schema){let{errors:t,result:n}=await T(I.value,A.schema);t?e=e.concat(t):W.value=n}return U(e)}async function G(e={silent:!1,nested:!1,transform:!1}){let t=e.name&&!Array.isArray(e.name)?[e.name]:e.name,n=[],r=[];if(!t&&e.nested){let t=Array.from(L.value.values()).map(t=>fe(t,e)),i=await Promise.all(t);r=i.filter(e=>e.error).flatMap(e=>e.error.errors.map(t=>pe(t,e.name))),n=i.filter(e=>e.output!==void 0)}let i=[...await de(),...r];if(t?R.value=ge(i,t):R.value=i,R.value?.length){if(e.silent)return!1;throw new O(j,R.value)}return e.transform?(n.forEach(e=>{e.name?D(W.value,e.name,e.output):Object.assign(W.value,e.output)}),W.value??I.value):I.value}let K=p(!1);l(ae,a(K));async function q(e){K.value=!!A.loadingAuto;let t=e;try{t.data=await G({nested:!0,transform:A.transform}),await A.onSubmit?.(t),B.clear()}catch(e){if(!(e instanceof O))throw e;let n={...t,errors:e.errors};
1k(`error`,n)}finally{K.value=!1}}let J=s(()=>A.disabled||K.value);l(y,s(()=>({disabled:J.value,validateOnInputDelay:A.validateOnInputDelay})));async function fe(e,t){try{let n=await e.validate({...t,silent:!1});return{name:e.name,output:n}}catch(t){if(!(t instanceof O))throw t;return{name:e.name,error:t}}}function pe(e,t){return!t||!e.name?e:{...e,name:t+`.`+e.name}}function Y(e,t){let n=t+`.`,r=e?.name?.startsWith(n)?e.name.substring(n.length):e.name;return{...e,name:r}}function me(e,t){return t?e.filter(e=>e?.name?.startsWith(t+`.`)).map(e=>Y(e,t)):e}function X(e){return e.api.getErrors().map(t=>e.name?{...t,name:e.name+`.`+t.name}:t)}function Z(e,t){return!e||!t?!0:e instanceof RegExp?e.test(t):t===e||typeof e==`string`&&e.startsWith(t+`.`)}function he(e,t){if(!e||e instanceof RegExp)return e;if(t!==e)return typeof e==`string`&&e.startsWith(t+`.`)?e.substring(t.length+1):e}function ge(e,t){let n=new Set(t),r=t.map(e=>z.value?.[e]?.pattern).filter(Boolean),i=e=>e.name?n.has(e.name)?!0:r.some(t=>t.test(e.name)):!1,a=R.value.filter(e=>!i(e)),o=e.filter(i);return[...a,...o]}function _e(e,t){return e.filter(e=>t instanceof RegExp?!(e.name&&t.test(e.name)):!e.name||e.name!==t)}function Q(e){return!e.name||!!z.value[e.name]}let $={validate:G,errors:R,setErrors(e,t){let n=U(e.filter(Q)),r=[];for(let n of L.value.values())if(Z(t,n.name)){let i=me(e,n.name);n.api.setErrors(i,he(t,n.name||``)),r.push(...X(n))}if(t){let e=_e(R.value,t);R.value=[...e,...n,...r]}else R.value=[...n,...r]},async submit(){M.value instanceof HTMLFormElement&&M.value.reportValidity()===!1||await q(new Event(`submit`))},getErrors(e){return e?R.value.filter(t=>e instanceof RegExp?t.name&&e.test(t.name):t.name===e):R.value},clear(e){let t=e?R.value.filter(t=>Q(t)&&(e instanceof RegExp?!(t.name&&e.test(t.name)):t.name!==e)):[],n=[];for(let t of L.value.values())Z(e,t.name)&&t.api.clear(),n.push(...X(t));R.value=[...t,...n]},disabled:J,loading:K,dirty:s(()=>!!B.size),dirtyFields:a(B),blurredFields:a(H),touchedFields:a(V)};return S($),(e,n)=>(te(),f(m(t(P)?`div`:`form`),{id:t(j),ref_key:`formRef`,ref:M,name:t(P)?void 0:t(A).name,method:`post`,class:r(ue.value({class:[t(A).ui?.base,t(A).class]})),onSubmit:ne(q,[`prevent`])},{default:u(()=>[h(e.$slots,`default`,{errors:R.value,loading:K.value})]),_:3},40,[`id`,`name`,`class`]))}};export{k as t};
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.