PageSourceSearch

https://gt-garage.pages.dev/_nuxt/C3WMs18c.js

js gt-garage.pages.dev collected 2026-10-03 05:12:18 UTC 13,392 bytes, 1 lines download raw bytes

1import{h as F,_ as H}from"./OykzN1_T.js";import{i as A,a1 as b,a2 as M,a3 as W,m as N,a4 as J,a5 as Z,a6 as X,k as U,d as K,_ as P,c as h,o as v,e,J as Y,G as y,D as R,w as $,a as ee,f as Q,x,F as z,r as B,y as T,v as c,a7 as te,a8 as oe,A as se}from"./DkmqD0Ep.js";import{c as q,s as ae,v as le,e as ne,p as re,l as ie,f as ce,_ as de,F as me,a as ue}from"./8FPvZbEJ.js";import{e as _e}from"./DggpVfx4.js";function ve(m,o,l){const[t={},a]=[{},o],r=A(()=>b(m)),i=A(()=>b(t.key)||"$f"+F([a,typeof r.value=="string"?r.value:"",...fe(t)]));if(!t.baseURL&&typeof r.value=="string"&&r.value[0]==="/"&&r.value[1]==="/")throw new Error('[nuxt] [useFetch] the request URL must not start with "//".');const{server:d,lazy:u,default:k,transform:D,pick:p,watch:S,immediate:s,getCachedData:V,deep:C,dedupe:E,...O}=t,w=M({...W,...O,cache:typeof t.cache=="boolean"?void 0:t.cache}),j={server:d,lazy:u,default:k,transform:D,pick:p,immediate:s,getCachedData:V,deep:C,dedupe:E,watch:S===!1?[]:[...S||[],w]};if(!s){let n=function(){j.immediate=!0};N(i,n,{flush:"sync",once:!0}),N([...S||[],w],n,{flush:"sync",once:!0})}let f;return J(S===!1?i.value:i,()=>{var g;(g=f==null?void 0:f.abort)==null||g.call(f,new DOMException("Request aborted as another request to the same endpoint was initiated.","AbortError")),f=typeof AbortController<"u"?new AbortController:{};const n=b(t.timeout);let L;return n&&(L=setTimeout(()=>f.abort(new DOMException("Request aborted due to timeout.","AbortError")),n),f.signal.onabort=()=>clearTimeout(L)),(t.$fetch||globalThis.$fetch)(r.value,{signal:f.signal,...w}).finally(()=>{clearTimeout(L)})},j)}function fe(m){var l;const o=[((l=b(m.method))==null?void 0:l.toUpperCase())||"GET",b(m.baseURL)];for(const t of[m.params||m.query]){const a=b(t);if(!a)continue;const r={};for(const[i,d]of Object.entries(a))r[b(i)]=b(d);o.push(r)}if(m.body){const t=b(m.body);if(!t)o.push(F(t));else if(t instanceof ArrayBuffer)o.push(F(Object.fromEntries([...new Uint8Array(t).entries()].map(([a,r])=>[a,r.toString()]))));else if(t instanceof FormData){const a={};for(const r of t.entries()){const[i,d]=r;a[i]=d instanceof File?d.name:d}o.push(F(a))}else if(Z(t))o.push(F(M(t)));else try{o.push(F(t))}catch{console.warn("[useFetch] Failed to hash body",t)}}return o}const G=X("quoteForm",()=>{const m=U({first_name:"",last_name:"",email:"",phone:"",vehicle:{license_plate:"",is_dutch:!0,make:"",model:"",year:""},services:[]}),o=U("none"),l=U(3);return{data:m,status:o,currentStep:l}}),he=K({__name:"QuoteFormStep",props:{step:{type:Number,required:!0}},setup(m,{expose:o}){o();const l=G(),t=m,a=A(()=>l.currentStep===t.step),r=A(()=>l.currentStep>t.step),i={formStore:l,props:t,isActive:a,isDone:r};return Object.defineProperty(i,"__isScriptSetup",{enumerable:!1,value:!0}),i}}),pe=["tabindex"],be={class:"container"},Se={class:"row"};function ge(m,o,l,t,a,r){return v(),h("div",{tabindex:t.isActive?1:-1,class:R(["step",{"step-active":t.isActive,"step-done":t.isDone}])},[e("div",be,[e("div",Se,[t.isActive?Y(m.$slots,"default",{key:0}):y("",!0)])])],10,pe)}const ye=P(he,[["render",ge],["__file","QuoteFormStep.vue"]]),ke=K({__name:"QuoteForm",props:{data:Object},async setup(m,{expose:o}){var f;o();let l,t;const a=G(),r=U(!1),i=U(!1),d=U(!1),{data:u,error:k}=([l,t]=$(()=>ee(_e)),l=await l,t(),l),D=(f=u.value)==null?void 0:f.services,p=[0,1,2,3,4],S={0:q(),1:q({first_name:ce,last_name:ie,phone:re,email:ne}),2:q({vehicle:le}),3:q({services:ae})},s=A(()=>S[a.currentStep]),V=async()=>{a.data.vehicle.license_plate=a.data.vehicle.license_plate.replace(/-/g,"").toUpperCase();const{data:_,pending:n,error:L,refresh:I}=await ve(`https://opendata.rdw.nl/resource/m9d7-ebf2.json?kenteken=${a.data.vehicle.license_plate}`,"$jdLa6V0vdo"),g=_==null?void 0:_.value[0];g&&(a.data.vehicle.make=g.merk,a.data.vehicle.model=g.handelsbenaming,a.data.vehicle.year=g.datum_eerste_toelating.substring(0,4),C())},C=()=>{if(a.data.vehicle.license_plate&&(!a.data.vehicle.license_plate.match(/-/g)||!(a.data.vehicle.license_plate.match(/-/g).length>1))){var _,n=a.data.vehicle.license_plate.replace(/-/g,"");n.length<6||((n.match(/[a-z]/gi)||{}).length>=4||(n.match(/[0-9]/g)||{}).length>=4?_=n.slice(0,2)+"-"+n.slice(2,4)+"-"+n.slice(4,6):n.slice(0,2).match(/[0-9]{2}/g)||n.slice(0,2).match(/[a-z]{2}/gi)?_=n.slice(0,2)+"-"+n.slice(2,5)+"-"+n.slice(5,6):_=n.slice(0,1)+"-"+n.slice(1,4)+"-"+n.slice(4,6),a.data.vehicle.license_plate=_)}};function E(_){if(a.currentStep===4){w(_);return}a.currentStep++}function O(){a.currentStep<=0||a.currentStep--}const w=async _=>{d.value=!0,i.value=!1,await $fetch("/api/quotes",{method:"POST",body:_}).then(()=>r.value=!0).catch(()=>i.value=!0).finally(()=>d.value=!1)};
1a.currentStep=0;const j={formStore:a,formSuccess:r,formError:i,submitting:d,serviceData:u,error:k,services:D,steps:p,schemas:S,currentSchema:s,onKentekenChange:V,formatLicense:C,nextStep:E,prevStep:O,submitForm:w};return Object.defineProperty(j,"__isScriptSetup",{enumerable:!1,value:!0}),j}}),Ve={class:"navSteps"},we=["onClick"],xe={key:0},Fe={key:1},Ue={class:"form-steps"},De={class:"col-lg-12"},je={class:"content-wrapper text-center"},Ae={class:"buttonList center"},Ce=["disabled"],Le={class:"col-lg-6 col-md-12"},qe={class:"content-wrapper"},Ee={class:"col-lg-6 col-md-12"},Oe={class:"row"},Te={class:"col-md-6 col-sm-6"},Ne={class:"form-group"},Qe={class:"col-md-6 col-sm-6"},ze={class:"form-group"},Be={class:"col-md-6 col-sm-6"},Me={class:"form-group"},Ke={class:"col-md-6 col-sm-6"},Pe={class:"form-group"},Re={class:"col-md-12"},Ge=["disabled"],Ie={class:"col-lg-6 col-md-12"},He={class:"content-wrapper"},We={class:"form-group"},Je={class:"switch"},Ze={class:"form-group"},Xe={class:"col-lg-6 col-md-12"},Ye={class:"row"},$e={key:0,class:"col-md-6 col-sm-6"},et={class:"form-group"},tt={class:"col-md-6 col-sm-6"},ot={class:"form-group"},st={class:"col-md-6 col-sm-6"},at={class:"form-group"},lt={class:"col-md-6 col-sm-6"},nt={class:"form-group"},rt={class:"row"},it={class:"col-md-12"},ct=["disabled"],dt={class:"col-lg-6 col-lg-12"},mt={class:"content-wrapper"},ut={class:"col-lg-4 offset-lg-4"},_t={class:"form-group"},vt={class:"checkbox-list justify-content-center"},ft={class:"default-checkbox"},ht=["for"],pt=["disabled"],bt={class:"row"},St={class:"col-lg-6 col-md-12"},gt={class:"contentWrapper"},yt={key:0,class:"form-success"},kt={key:1,class:"form-error"},Vt={key:2,type:"submit",class:"button button-primary validateStep4 d-none d-lg-table"},wt={class:"col-lg-6 col-md-12"},xt={class:"row"},Ft={class:"col-md-6"},Ut={class:"form-group"},Dt=["value"],jt={class:"col-md-6"},At={class:"form-group"},Ct=["value"],Lt={class:"col-md-6"},qt={class:"form-group"},Et=["value"],Ot={class:"col-md-6"},Tt={class:"form-group"},Nt=["value"],Qt={class:"col-md-6"},zt={class:"form-group"},Bt=["value"],Mt={class:"col-md-12"},Kt={class:"form-group"},Pt={key:0,class:"col-12 d-flex d-lg-none"},Rt=["disabled"];function Gt(m,o,l,t,a,r){const i=H,d=ye,u=de,k=me,D=ue;return v(),Q(D,{"validation-schema":t.currentSchema,"keep-values":"",class:"quote-page",onSubmit:t.nextStep},{default:x(({meta:p,values:S})=>[e("div",Ve,[(v(),h(z,null,B(t.steps,s=>e("div",{key:s,onClick:V=>t.formStore.currentStep=s,class:R(["navItem",{"step-open":s<=t.formStore.currentStep,"step-active":s===t.formStore.currentStep}])},[s+1!==t.steps.length?(v(),h("span",xe,T(s+1),1)):(v(),h("span",Fe,o[11]||(o[11]=[e("svg",{xmlns:"http://www.w3.org/2000/svg","data-v-inspector":"components/Header.vue:6:13",viewBox:"170.48 -705 619.52 449"},[e("path",{d:"m382-354 339-339q12-12 28.5-12t28.5 12q12 12 12 28.5T778-636L410-268q-12 12-28 12t-28-12L182-440q-12-12-11.5-28.5T183-497q12-12 28.5-12t28.5 12l142 143Z","data-v-inspector":"components/Header.vue:7:17"})],-1)])))],10,we)),64))]),e("div",Ue,[c(d,{step:0},{default:x(()=>[e("div",De,[e("div",je,[c(i,{blocks:l.data.steps[0].content},null,8,["blocks"])]),e("div",Ae,[e("button",{disabled:!p.valid,type:"submit",class:"button button-primary"},"Starten",8,Ce)])])]),_:2},1024),c(d,{step:1},{default:x(()=>[e("div",Le,[e("div",qe,[c(i,{blocks:l.data.steps[1].content},null,8,["blocks"])])]),e("div",Ee,[e("div",Oe,[e("div",Te,[e("div",Ne,[c(u,{label:"Naam",name:"first_name",modelValue:t.formStore.data.first_name,"onUpdate:modelValue":o[0]||(o[0]=s=>t.formStore.data.first_name=s)},null,8,["modelValue"])])]),e("div",Qe,[e("div",ze,[c(u,{label:"Achternaam",name:"last_name",modelValue:t.formStore.data.last_name,"onUpdate:modelValue":o[1]||(o[1]=s=>t.formStore.data.last_name=s)},null,8,["modelValue"])])]),e("div",Be,[e("div",Me,[c(u,{label:"Telefoonnummer",name:"phone",modelValue:t.formStore.data.phone,"onUpdate:modelValue":o[2]||(o[2]=s=>t.formStore.data.phone=s)},null,8,["modelValue"])])]),e("div",Ke,[e("div",Pe,[c(u,{label:"E-mail",name:"email",type:"email",modelValue:t.formStore.data.email,"onUpdate:modelValue":o[3]||(o[3]=s=>t.formStore.data.email=s)},null,8,["modelValue"])])]),e("div",Re,[e("button",{disabled:!p.valid,type:"submit",class:"button button-primary"},"Verder",8,Ge)])])])]),_:2},1024),c(d,{step:2},{default:x(()=>[e("div",Ie,[e("div",He,[c(i,{blocks:l.data.steps[2].content},null,8,["blocks"])]),e("div",We,[o[13]||(o[13]=e("label",{class:"form-label"},"Nederlands kenteken",-1)),e("label",Je,[te(e("input",{name:"vehicle.is_dutch","onUpdate:modelValue":o[4]||(o[4]=s=>t.formStore.data.vehicle.is_dutch=s),type:"checkbox"},null,512),[[oe,t.formStore.data.vehicle.is_dutch]]),o[12]||(o[12]=e("span",{class:"slider round"},null,-1))])]),e("div",Ze,[t.formStore.data.vehicle.is_dutch?(v(),Q(k,{key:0,t
1ype:"text",class:"kentekenplaat licenseFormatting",name:"vehicle.license_plate",onKeyup:t.onKentekenChange,modelValue:t.formStore.data.vehicle.license_plate,"onUpdate:modelValue":o[5]||(o[5]=s=>t.formStore.data.vehicle.license_plate=s)},null,8,["modelValue"])):y("",!0)])]),e("div",Xe,[e("div",Ye,[t.formStore.data.vehicle.is_dutch?y("",!0):(v(),h("div",$e,[e("div",et,[c(u,{label:"Kenteken",name:"vehicle.license_plate",modelValue:t.formStore.data.vehicle.license_plate,"onUpdate:modelValue":o[6]||(o[6]=s=>t.formStore.data.vehicle.license_plate=s),type:"text"},null,8,["modelValue"])])])),e("div",tt,[e("div",ot,[c(u,{label:"Merk",name:"vehicle.make",modelValue:t.formStore.data.vehicle.make,"onUpdate:modelValue":o[7]||(o[7]=s=>t.formStore.data.vehicle.make=s)},null,8,["modelValue"])])]),e("div",st,[e("div",at,[c(u,{label:"Model",name:"vehicle.model",modelValue:t.formStore.data.vehicle.model,"onUpdate:modelValue":o[8]||(o[8]=s=>t.formStore.data.vehicle.model=s)},null,8,["modelValue"])])]),e("div",lt,[e("div",nt,[c(u,{label:"Bouwjaar",name:"vehicle.year",modelValue:t.formStore.data.vehicle.year,"onUpdate:modelValue":o[9]||(o[9]=s=>t.formStore.data.vehicle.year=s)},null,8,["modelValue"])])])]),e("div",rt,[e("div",it,[e("button",{disabled:!p.valid,type:"submit",class:"button button-primary"},"Verder",8,ct)])])])]),_:2},1024),c(d,{class:"text-center",step:3},{default:x(()=>[e("div",dt,[e("div",mt,[c(i,{blocks:l.data.steps[3].content},null,8,["blocks"])])]),e("div",ut,[e("div",_t,[e("div",vt,[(v(!0),h(z,null,B(t.services,s=>(v(),h("div",ft,[c(k,{id:"service_"+s._id,type:"checkbox",name:"services",value:s.title,modelValue:t.formStore.data.services,"onUpdate:modelValue":o[10]||(o[10]=V=>t.formStore.data.services=V)},null,8,["id","value","modelValue"]),e("label",{for:"service_"+s._id},T(s.title),9,ht)]))),256))])]),e("button",{disabled:!p.valid,type:"submit",class:"button button-primary"},"Verder",8,pt)])]),_:2},1024),c(d,{step:4},{default:x(()=>[e("div",bt,[e("div",St,[e("div",gt,[c(i,{blocks:l.data.steps[4].content},null,8,["blocks"]),t.formSuccess?(v(),h("div",yt,o[14]||(o[14]=[e("span",{class:"check-icon"},null,-1),e("h3",null,"Goed nieuws!",-1),e("p",null,"Uw aanvraag voor een offerte is succesvol vewerkt. We zullen zo snel mogelijk contact met u opnemen.",-1)]))):y("",!0),t.formError?(v(),h("div",kt," Er is iets misgegaan tijdens het verzenden van het formulier. Probeer het later nog eens. ")):y("",!0),t.formSuccess?y("",!0):(v(),h("button",Vt,"Verstuur"))])]),e("div",wt,[e("div",xt,[e("div",Ft,[e("div",Ut,[o[15]||(o[15]=e("label",{class:"formLabel"},"Naam",-1)),e("input",{class:"form-control",disabled:"",value:t.formStore.data.first_name},null,8,Dt)])]),e("div",jt,[e("div",At,[o[16]||(o[16]=e("label",{class:"formLabel"},"Achternaam",-1)),e("input",{class:"form-control",disabled:"",value:t.formStore.data.last_name},null,8,Ct)])]),e("div",Lt,[e("div",qt,[o[17]||(o[17]=e("label",{class:"formLabel"},"Telefoonnummer",-1)),e("input",{class:"form-control",disabled:"",value:t.formStore.data.phone},null,8,Et)])]),e("div",Ot,[e("div",Tt,[o[18]||(o[18]=e("label",{class:"formLabel"},"E-mail",-1)),e("input",{class:"form-control",disabled:"",value:t.formStore.data.email},null,8,Nt)])]),e("div",Qt,[e("div",zt,[o[19]||(o[19]=e("label",{class:"formLabel"},"Kenteken",-1)),e("input",{class:"form-control",disabled:"",value:t.formStore.data.vehicle.license_plate},null,8,Bt)])]),e("div",Mt,[e("div",Kt,[o[20]||(o[20]=e("label",{class:"formLabel"},"Diensten",-1)),se(" "+T(t.formStore.data.services.join(", ")),1)])]),t.formSuccess?y("",!0):(v(),h("div",Pt,[e("button",{disabled:!p.valid||t.submitting,type:"submit",class:"button button-primary btnFinishMobile"},"Verstuur",8,Rt)]))])])])]),_:2},1024)])]),_:1},8,["validation-schema"])}const Zt=P(ke,[["render",Gt],["__file","QuoteForm.vue"]]);export{Zt 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.