1import{J as d,q as g,a3 as S,d as E,K as j,o as y,e as O,b5 as f,D as _,at as A}from"./entry.cv9EL4W_.js";function V(n,p,t){const o=d("normal"),l=d(""),s=d(!1),c=d(n.value),u=()=>{const r=p().reduce((v,m)=>v.valid?{valid:m.test(c.value),error:m.error}:v,{valid:!0,error:""});return r.valid?(l.value="",o.value=c.value?"valid":"normal",!0):(l.value=r.error,o.value="invalid",!1)},i=()=>{l.value="",o.value="normal"},h=r=>{n.change(r),t&&t("change",r)},e=r=>{i(),t&&t("input",r)},a=r=>{var v,m;n.change((v=r==null?void 0:r.target)==null?void 0:v.value),t&&t("change",(m=r==null?void 0:r.target)==null?void 0:m.value)},F=r=>{s.value=!0,t&&t("focus",r)},b=()=>{u(),s.value=!1};return g(()=>{n.addValidation(u),n.addResetFieldState(i)}),S(()=>{n.removeValidation(),n.removeResetFieldState()}),{fieldState:o,localError:l,isActive:s,modelValue:c,handleValidation:u,resetFieldState:i,handleChange:h,handleInput:e,handleKeyup:a,onFocus:F,onBlur:b}}const D=["name"],k=E({__name:"FormHandlerWrapper",props:{name:{type:String,required:!0},formData:{type:Object,required:!0},formErrors:{type:Object,default:()=>Object}},emits:["change","activation","deactivation"],setup(n,{emit:p}){const t=n,o=p,{$toast:l}=_(),s=d({}),c=d({});j(()=>{var e;return(e=t.formErrors)==null?void 0:e.general},()=>{var e;(e=t.formErrors)!=null&&e.general&&l.error(t.formErrors.general)});const u=()=>Object.values(s.value).reduce((e,a)=>e?a():(a(),e),!0),i=()=>(A(()=>Object.values(c.value).forEach(e=>e())),!0),h=e=>({fieldName:e,value:t.formData[e],error:t.formErrors[e],addValidation:a=>{s.value[e]=a},validation:()=>s.value[e](),addResetFieldState:a=>{c.value[e]=a},removeValidation:()=>{delete s.value[e]},removeResetFieldState:()=>{delete c.value[e]},change:a=>{t.formData[e]!==a&&o("change",{[e]:a})}});return g(()=>{o("activation",{name:t.name,validation:u,reset:i})}),S(()=>{o("deactivation",{name:t.name})}),(e,a)=>(y(),O("div",{"aria-label":"form",class:"form-handler-wrapper",name:n.name},[f(e.$slots,"fields",{formHandler:h}),f(e.$slots,"buttons",{resetAllFieldState:i,validateAll:u})],8,D))}});export{k as _,V as u};
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.