import{ah as H,V as Z,q as v,u as Y,d as y,r as M,e as z,f as b,h as w,i as G,x as q,v as O,C as Q,g as V,o as x,cj as X,ck as j,cl as F,n as tt,_ as et}from"./BxiWQxwE.js";function at(e){const h={};for(const u in e)if(Object.prototype.hasOwnProperty.call(e,u)){const l=e[u];if(typeof l=="object"&&l!==null&&!Array.isArray(l)){const N=l;for(const L in N)Object.prototype.hasOwnProperty.call(N,L)&&(h[L]=N[L])}else h[u]=l}return h}var r=(e=>(e[e.TEKSTVELD=1]="TEKSTVELD",e[e.VERBORGENVELD=2]="VERBORGENVELD",e[e.GEHEELGETALVELD=3]="GEHEELGETALVELD",e[e.GEBROKENGETALVELD=4]="GEBROKENGETALVELD",e[e.DATUMTIJDVELD=5]="DATUMTIJDVELD",e[e.DATUMVELD=6]="DATUMVELD",e[e.TIJDVELD=7]="TIJDVELD",e[e.EMAILVELD=8]="EMAILVELD",e[e.WEBSITEVELD=9]="WEBSITEVELD",e[e.TEKSTVAK=10]="TEKSTVAK",e[e.KEUZERONDJES=11]="KEUZERONDJES",e[e.SELECTIELIJST=12]="SELECTIELIJST",e[e.VINKJE=13]="VINKJE",e[e.VINKJESGROEP=14]="VINKJESGROEP",e[e.BESTANDVELD=15]="BESTANDVELD",e[e.LABEL=16]="LABEL",e[e.TELEFOONNUMMER=17]="TELEFOONNUMMER",e[e.WACHTWOORD=18]="WACHTWOORD",e[e.REKENINGNUMMER=19]="REKENINGNUMMER",e[e.NIEUWSBRIEFAANMELDVINKJE=20]="NIEUWSBRIEFAANMELDVINKJE",e[e.BEOORDELINGVELD=21]="BEOORDELINGVELD",e[e.NAAMVELD=22]="NAAMVELD",e[e.VINKJEMETEENLINK=23]="VINKJEMETEENLINK",e[e.AANTALPERSONENVELD=24]="AANTALPERSONENVELD",e))(r||{});const rt=[11,14,21],nt={noFormDataError:"Geen form data gevonden",submitLabelFallback:"Versturen",grecaptchaError:"reCAPTCHA validatie mislukt",fillOutOnceError:"Formulier is al een keer ingevuld",notApplicable:"n.v.t."};function st(e,h={}){const u={...nt,...h},l=()=>{const t=new Date;return t.setFullYear(t.getFullYear()+1),t},N=()=>{const t=e==null?void 0:e.id;v(`form_${t}_filledOnce`,{expires:l()}).value=String(t)},L=()=>{const t=e==null?void 0:e.id,a=v(`form_${t}_filledOnce`);return String(a.value)===String(t)&&(e==null?void 0:e.fillOutOnce)},I=Z(),{siteState:g}=H(),S=(e==null?void 0:e.submitButton)??u.submitLabelFallback,f=I.public.swCloud.cmsApi,D=`${f.endsWith("/")?f:`${f}/`}forms/form?steID=${g.value.id}`,s=(t,a,i)=>{const n={$formkit:t};return a&&(n.number=a),i&&(n.step=i),n},B={[r.TEKSTVELD]:s("text"),[r.REKENINGNUMMER]:s("text"),[r.NAAMVELD]:s("text"),[r.VERBORGENVELD]:s("hidden"),[r.GEHEELGETALVELD]:s("number","integer"),[r.BEOORDELINGVELD]:s("radio"),[r.AANTALPERSONENVELD]:s("number","integer"),[r.GEBROKENGETALVELD]:s("number","float","any"),[r.DATUMTIJDVELD]:s("datetime-local"),[r.DATUMVELD]:s("date"),[r.TIJDVELD]:s("time"),[r.EMAILVELD]:s("email"),[r.WEBSITEVELD]:s("url"),[r.TEKSTVAK]:s("textarea"),[r.KEUZERONDJES]:s("radio"),[r.SELECTIELIJST]:s("select"),[r.VINKJE]:s("checkbox"),[r.VINKJESGROEP]:s("checkbox"),[r.NIEUWSBRIEFAANMELDVINKJE]:s("checkbox"),[r.VINKJEMETEENLINK]:s("checkbox"),[r.BESTANDVELD]:s("file"),[r.TELEFOONNUMMER]:s("tel"),[r.WACHTWOORD]:s("password")},K=t=>B[t]??s("text"),C=t=>{const a=[];return t.mandatory&&(a.push(["required"]),t.type===r.VINKJESGROEP&&a.push(["min",1])),t.regex&&a.push(["matches",new RegExp(t.regex)]),t.type===r.REKENINGNUMMER&&a.push(["matches",/^[a-zA-Z]{2}[0-9]{2}[a-zA-Z0-9]{4}[0-9]{10}([a-zA-Z0-9]?){0,16}$/i]),t.maxAnswers&&t.type!==r.KEUZERONDJES&&t.type!==r.SELECTIELIJST&&a.push(["max",t.maxAnswers]),a.length>0?a:void 0},J=t=>{const a=/<a([^>]*)>(.*?)<\/a>/g,i=Array.from(t.matchAll(a)),n=[];let o=0;for(const E of i){const[c,d,R]=E;n.push(t.substring(o,E.index),{$el:"a",attrs:_(d??""),children:[R]}),o=E.index+c.length}return n.push(t.substring(o)),n},_=t=>{const a=/(\w+)\s*=\s*["']([^"']+)["']/g,i={};let n;for(;(n=a.exec(t))!==null;){const[,o,E]=n;o&&E&&(i[o]=E)}return i},$=t=>t.replace(/<\/?[^>]+(>|$)/g,""),A=(t,a="")=>{var o;if(t.type===r.LABEL)return{$el:"span",children:t.name,attrs:{class:"$classes.label"}};if(t.type===r.VERBORGENVELD){const E=parseInt(t.name);return{$formkit:"hidden",name:isNaN(E)&&isFinite(E)?`fldID_${E}`:t.name,value:t.value,if:a?`$get(${a}).value`:""}}const n={...K(t.type),name:`fldID_${t.id}`,label:t.name,autocomplete:!!t.autoComplete,validation:C(t),validationVisibility:"dirty",if:a?`$get(${a}).value`:"",classes:{outer:t.hidden?"hidden":"",label:t.mandatory&&!rt.includes(t.type)?"required":"",legend:t.mandatory?"required":"",fieldset:t.type===r.BEOORDELINGVELD?"rating":""}};if(t.helpText&&(n.help=t.helpText),n.validationLabel=$(t.name),t.type===r.NIEUWSBRIEFAANMELDVINKJE&&t.hidden&&(n.value=!0),t.value&&(n.value=t.value,t.type===r.DATUMVELD&&(n.value=new Date(t.value).toISOString().split("T")[0]??void 0),t.type===r.TIJDVELD)){const E=new Date(t.value).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"});n.value=E!=="Invalid Date"?E:void 0}if(t.type===r.DATUMVELD&&(n.max=new Date().addYears(100).toISOString().split("T")[0]),t.type===r.BEOORDELINGVELD){const E=[];for(let c=-1;c<=10;c++)c!==0&&E.push({id:c,name:c===-1?u.notApplicable:c.toString(),length:1,customId:0,isSelected:!1,weight:0});t.values=E}return(o=Object.values(t.values)[0])!=null&&o.length&&t.type!==r.VINKJE&&(n.options=t.values.map(E=>{const c=!!(Number.isInteger(E.maxChoices)&&E.choices===E.maxChoices);return{value:E.id.toString(),label:E.name,attrs:{disabled:c}}})),t.type===r.VINKJEMETEENLINK&&(n.sectionsSchema={label:{children:J(t.name)}}),n},T=(t,a,i=!1)=>{const n=t==null?void 0:t.fields,o=[];return t.hidden&&o.push({...K(r.VINKJE),id:`category_${a}`,name:`category_${a}`,label:t.name??`Categorie ${a}`,value:!1}),i&&o.push({$el:"span",children:t.name??`Categorie ${a}`}),{$formkit:"group",classes:{wrapper:t.hidden?"hidden":""},children:[...o,...(n==null?void 0:n.map(E=>A(E,t.hidden?`category_${a}`:"")))??Array()]}},U=t=>{if(!t)return[];const{query:a}=Y(),i=[],n={type:r.VERBORGENVELD,name:"formId",value:t.id.toString()},o={type:r.VERBORGENVELD,name:"formName",value:t.name};a!=null&&a.guid&&i.push(A({type:r.VERBORGENVELD,name:"guid",value:a==null?void 0:a.guid})),t.useCaptcha&&t.captchaKey&&i.push({$el:"script",attrs:{src:`https://www.google.com/recaptcha/api.js?render=${t.captchaKey}`,async:!0,defer:!0}}),t.showCheckPage;const E=m=>typeof m.disabled>"u"&&m.disabled!==!0||typeof m.hidden>"u"&&m.hidden!==!0,c=t.categories?Array.from(t.categories).filter(E):[],d=t.showCategories,R=c.map((m,W)=>T(m,W,d));return[A(n),A(o),...R??Array(),...i]},k=t=>{const a=new FormData,i=at(t);for(const[n,o]of Object.entries(i))Array.isArray(o)&&o.some(E=>typeof E=="object")?o.forEach(E=>{a.append(n,E.file)}):Array.isArray(o)?a.append(n,o.join(",")):o!=null&&a.append(n,String(o));return a},P=(t,a="homepage")=>new Promise((i,n)=>{typeof grecaptcha<"u"?grecaptcha.ready(()=>{grecaptcha.execute(t,{action:a}).then(o=>{i(o)}).catch(o=>{n(o)})}):n(new Error(u.grecaptchaError))});return{submitLabel:S,submitForm:async t=>{const a=(e==null?void 0:e.captchaKey)??"",i=k(t);if(e!=null&&e.useCaptcha&&a){const o=await P(a,"homepage");if(o)i.append("g-recaptcha-response",o);else return{succes:!1,reason:u.grecaptchaError}}if(e!=null&&e.fillOutOnce){if(L())return{succes:!1,reason:u.fillOutOnceError};N()}return await $fetch(D,{method:"post",body:i})},getFormKitSchema:()=>{try{return U(e)}catch(t){return e?console.error("Error while generating form schema",t):console.error(u.noFormDataError),[]}},isFillOutOnceCookieSet:L}}const ot={class:"form"},Et={key:0},it=y({__name:"form.client",props:{item:{type:Object,default:null}},setup(e){const h=e,u=M(!1),l=M([]),{getFormKitSchema:N,submitLabel:L,submitForm:I}=st(h.item.form,{submitLabelFallback:"Versturen"}),g=z(()=>N()),S=async f=>{var p,D;try{l.value=[];const s=await I(f);s!=null&&s.success?(F(`form_${(p=h.item)==null?void 0:p.id}`),(D=h.item.form)!=null&&D.redirect&&await tt(h.item.form.redirect)):console.info("form submit message:",s.reason),u.value=!0}catch(s){l.value.push("Er is iets misgegaan. Probeer het later opnieuw."),console.error(s)}};return(f,p)=>{var D,s;return x(),b("div",ot,[w("h2",null,O((D=e.item.form)==null?void 0:D.name),1),G(V(j),{id:`form_${e.item.id}`,type:"form","submit-label":V(L),errors:V(l),onSubmit:S},{default:Q(()=>[G(V(X),{schema:V(g)},null,8,["schema"])]),_:1},8,["id","submit-label","errors"]),V(u)?(x(),b("div",Et,[w("p",null,O((s=e.item.form)==null?void 0:s.submitMessage),1)])):q("",!0)])}}}),ht=et(it,[["__scopeId","data-v-86183b7b"]]);export{ht as default};
