PageSourceSearch

https://nimblique.studio/assets/ContactForm-THcNaLlH.js

js nimblique.studio collected 2026-09-24 14:27:50 UTC 24,036 bytes, 1 lines download raw bytes

1import{e as ie,a as se,b as me,k as d,l as u,E as f,r as h,d as B,K as pe,n as X,w as Z,x as ye,v as e,m as t,t as a,F as Y,A as _,C as ee,L as te,M as C,N as U,O as ae,B as ve,P as be,s as he,z as fe,D as _e}from"./vue-runtime-QWIJxWQ9.js";import{_ as re}from"./app-CrVBURqU.js";import{a as ge,p as I}from"./contact-behavior-HJ4iRqJW.js";import{t as ce}from"./firstPartyEvents-BAXonBm6.js";const we={class:"contact-turnstile"},ke={key:0,class:"contact-turnstile__test",role:"status"},Te={key:2,class:"contact-turnstile__error",role:"alert"},xe=ie({__name:"TurnstileWidget",props:{siteKey:{},mode:{}},emits:["verified","expired","error"],setup(l,{expose:r,emit:m}){const k=l,v=m,p=h(null),o=h(!1);let w;const T=()=>window.turnstile?Promise.resolve(window.turnstile):(window.nimbliqueTurnstileLoader||(window.nimbliqueTurnstileLoader=new Promise((j,s)=>{const i=document.createElement("script");i.src="https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit",i.async=!0,i.onload=()=>window.turnstile?j(window.turnstile):s(new Error("Turnstile API unavailable")),i.onerror=()=>s(new Error("Turnstile API unavailable")),document.head.append(i)})),window.nimbliqueTurnstileLoader),q=()=>v("expired"),P=async()=>{if(k.mode==="test"){window.setTimeout(()=>v("verified","turnstile-test-token"));return}if(p.value)try{w=(await T()).render(p.value,{sitekey:k.siteKey,action:"contact",callback:s=>v("verified",s),"expired-callback":q,"error-callback":()=>{o.value=!0,v("error")}})}catch{o.value=!0,v("error")}},E=()=>{if(o.value=!1,k.mode==="test"){v("verified","turnstile-test-token");return}w&&window.turnstile&&window.turnstile.reset(w)};return se(()=>{P()}),me(()=>{w&&window.turnstile&&window.turnstile.remove(w)}),r({reset:E}),(j,s)=>(d(),u("div",we,[l.mode==="test"?(d(),u("p",ke,"Security check complete.")):(d(),u("div",{key:1,ref_key:"container",ref:p,class:"contact-turnstile__widget"},null,512)),o.value?(d(),u("p",Te," The security check could not load. Reload the page and try again, or email us directly. ")):f("",!0)]))}}),Ce=re(xe,[["__scopeId","data-v-1fe9d7e1"]]),le=ge,qe=()=>({name:"",email:"",company:"",website:"",inquiryType:"",budget:"",subject:"",message:"",privacyAccepted:!1,middleName:""}),y={name:120,email:254,company:160,website:2048,subject:180,messageMin:I.message.minimumLength,messageMax:I.message.maximumLength},Ee=["name","email","company","website","inquiryType","budget","subject","message","privacyAccepted","captchaToken"],je=/^[^\s@]+@[^\s@]+\.[^\s@]+$/,Se=l=>{if(!l.trim())return!0;try{const r=/^[a-z][a-z\d+.-]*:/i.test(l.trim())?l.trim():`https://${l.trim()}`,m=new URL(r);return(m.protocol==="https:"||m.protocol==="http:")&&!!m.hostname}catch{return!1}},Pe=(l,r="en")=>{const m={},k=l.name.trim(),v=l.email.trim(),p=l.subject.trim(),o=l.message.trim();return k?k.length>
1y.name&&(m.name=r==="es"?`Usa ${y.name} caracteres o menos.`:`Use ${y.name} characters or fewer.`):m.name=r==="es"?"Introduce tu nombre.":"Please enter your name.",(!v||v.length>y.email||!je.test(v))&&(m.email=r==="es"?"Introduce un correo electrónico válido.":"Please enter a valid email address."),l.company.trim().length>y.company&&(m.company=r==="es"?`Usa ${y.company} caracteres o menos.`:`Use ${y.company} characters or fewer.`),(l.website.trim().length>y.website||!Se(l.website))&&(m.website=r==="es"?"Introduce una dirección web válida.":"Enter a valid website address."),le.some(w=>w.value===l.inquiryType)||(m.inquiryType=r==="es"?"Elige un tipo de consulta.":"Choose an inquiry type."),l.budget!==""&&!["1000-2000","2000-3500","3500-5000","5000-10000","10000-plus","not-sure"].includes(l.budget)&&(m.budget=r==="es"?"Elige un rango de presupuesto válido.":"Choose a valid budget range."),p?p.length>y.subject&&(m.subject=r==="es"?`Usa ${y.subject} caracteres o menos.`:`Use ${y.subject} characters or fewer.`):m.subject=r==="es"?"Introduce un asunto.":"Enter a subject.",o?o.length<y.messageMin?m.message=r==="es"?`Comparte al menos ${y.messageMin} caracteres de contexto útil.`:`Share at least ${y.messageMin} characters of useful context.`:o.length>y.messageMax&&(m.message=r==="es"?`Usa ${y.messageMax.toLocaleString("es-ES")} caracteres o menos.`:`Use ${y.messageMax.toLocaleString()} characters or fewer.`):m.message=r==="es"?"Añade una breve descripción del proyecto.":"Please add a short description of the project.",l.privacyAccepted||(m.privacyAccepted=r==="es"?"Confirma que has leído la información de privacidad.":"Confirm that you have read the privacy information."),m},Be={en:{delivered:"Project details received",successTitle:"Thanks. Your project details have been received.",successBody:"We will review the brief and reply with the next step.",eyebrow:"Project enquiry",title:"Tell us what you are trying to build.",intro:"Share enough context for us to understand the business, the starting point and the useful next step.",summary:"Check the highlighted fields.",failed:"Your message could not be sent.",failedBody:"Your details are still here, so you can try again or use the email address shown on this page.",securityUnavailable:"The security check is unavailable. Please try again or email [email protected].",name:"Name",email:"Email",company:"Company or agency",website:"Existing website",optional:"Optional",websiteHint:"A protocol is optional.",inquiryType:"What are you interested in?",budget:"Budget, optional",choose:"Choose one",budgetChoose:"Choose a budget range",budgetNotSure:"Not sure yet",subject:"Subject",message:"Project details",privacyStart:"I have read the",privacyLink:"privacy information",privacyEnd:"and understand how my inquiry will be handled.",security:"Security check",preparingSecurity:"Preparing the security check…",middleName:"Middle name",sending:"Sending project details…",send:"Send project details",preparingForm:"Preparing the protected form…",noscript:"JavaScript is required for the protected form. Email",noscriptEnd:"instead."},es:{delivered:"Detalles recibidos",successTitle:"Gracias. Hemos recibido los detalles de tu proyecto.",successBody:"Revisaremos la información y responderemos con el siguiente paso.",eyebrow:"Proyecto",title:"Cuéntanos qué quieres crear.",intro:"Comparte el contexto suficiente para entender el negocio, el punto de partida y el siguiente paso útil.",summary:"Revisa los campos marcados.",failed:"No se ha podido enviar el mensaje.",failedBody:"Tus datos siguen en el formulario para que puedas intentarlo de nuevo o utilizar el correo indicado en esta página.",securityUnavailable:"La comprobación de seguridad no está disponible. Int
1éntalo de nuevo o escribe a [email protected].",name:"Nombre",email:"Correo electrónico",company:"Empresa o agencia",website:"Web actual",optional:"Opcional",websiteHint:"El protocolo es opcional.",inquiryType:"¿Qué necesitas?",budget:"Presupuesto, opcional",choose:"Elige una opción",budgetChoose:"Elige un rango de presupuesto",budgetNotSure:"Aún no lo tengo claro",subject:"Asunto",message:"Cuéntanos tu proyecto",privacyStart:"He leído la",privacyLink:"información de privacidad",privacyEnd:"y entiendo cómo se tratará mi consulta.",security:"Comprobación de seguridad",preparingSecurity:"Preparando la comprobación de seguridad…",middleName:"Segundo nombre",sending:"Enviando detalles…",send:"Enviar detalles del proyecto",preparingForm:"Preparando el formulario protegido…",noscript:"JavaScript es necesario para el formulario protegido. Escribe a",noscriptEnd:"en su lugar."}},Ne={business_website:"Web para empresas — 990 €",website_plus:"Website Plus — €1.490",woocommerce:"Tienda WooCommerce — desde 1.990 €",custom_software:"Software a medida — desde 2.990 €",agency:"Colaboración para agencias",not_sure:"Aún no lo tengo claro"},Ae=l=>le.map(r=>({...r,label:l==="es"?Ne[r.value]??r.label:r.label})),oe=(l,r)=>r!=="es"?l:{"Complete the security check before sending.":"Completa la comprobación de seguridad antes de enviar.","Enter your name.":"Introduce tu nombre.","Please enter your name.":"Introduce tu nombre.","Enter your email.":"Introduce un correo electrónico válido.","Enter a valid email address.":"Introduce un correo electrónico válido.","Please enter a valid email address.":"Introduce un correo electrónico válido.","Choose an inquiry type.":"Elige un tipo de consulta.","Enter a subject.":"Introduce un asunto.","Enter a message.":"Añade una breve descripción del proyecto.","Please add a short description of the project.":"Añade una breve descripción del proyecto.","Confirm that you have read the privacy information.":"Confirma que has leído la información de privacidad."}[l]??l,ne=I.endpoint,Ue=(l,r="en")=>{const m=r==="es"?`Inténtalo de nuevo o escribe directamente a ${I.publicEmail}.`:`Please try again or email ${I.publicEmail} directly.`,k=pe(qe()),v=h({}),p=h(""),o=h(0),w=h(null),T=h(""),q=h(0),P=h(!1),E=h(!1),j=h(!1),s=h(""),i=h(!1),V=B(()=>Ee.filter(g=>v.value[g]).map(g=>({field:g,message:v.value[g]}))),R=B(()=>V.value.length>0),F=B(()=>w.value!==null&&T.value!==""),M=async()=>{await X(),l.errorSummary.value?.focus()},z=async()=>{await X(),l.successConfirmation.value?.focus()}
1,O=async(g=!1)=>{P.value=!0;try{const A=await fetch(ne,{method:"GET",credentials:"same-origin",headers:{Accept:"application/json"}}),b=await A.json();if(!A.ok||!b.ok||!b.csrfToken||b.captcha?.provider!=="turnstile"||!b.captcha.siteKey||b.captcha.mode!=="live"&&b.captcha.mode!=="test")throw new Error("Contact token unavailable");return p.value=b.csrfToken,o.value=b.notBefore?Date.parse(b.notBefore):0,w.value=b.captcha,s.value="",i.value=!1,!0}catch{return i.value=!0,g&&(s.value=m),!1}finally{P.value=!1}},D=g=>{document.getElementById(`contact-${g}`)?.focus()},H=g=>{T.value=g,v.value.captchaToken===(r==="es"?"Completa la comprobación de seguridad antes de enviar.":"Complete the security check before sending.")&&delete v.value.captchaToken},N=()=>{T.value=""};return{values:k,errors:v,errorEntries:V,hasErrors:R,isPreparing:P,isSubmitting:E,isSuccessful:j,isCaptchaReady:F,failureMessage:s,tokenUnavailable:i,captcha:w,captchaResetVersion:q,focusField:D,loadToken:O,setCaptchaToken:H,clearCaptchaToken:N,submit:async()=>{if(!(P.value||E.value||j.value)){if(s.value="",v.value=Pe(k,r),Object.keys(v.value).length>0){await M();return}if(!(!p.value&&!await O(!0))){if(!T.value){v.value={captchaToken:r==="es"?"Completa la comprobación de seguridad antes de enviar.":"Complete the security check before sending."},await M();return}E.value=!0;try{const g=Math.max(0,o.value-Date.now());g>0&&await new Promise($=>window.setTimeout($,g));const A=await fetch(ne,{method:"POST",credentials:"same-origin",headers:{Accept:"application/json","Content-Type":"application/json","X-CSRF-Token":p.value},body:JSON.stringify({...k,csrfToken:p.value,captchaToken:T.value})}),b=await A.json();if(A.ok&&b.ok&&b.status==="sent"){j.value=!0,v.value={},ce({name:"enquiry_submit_success",target:window.location.pathname,properties:{locale:r,source_path:window.location.pathname}}),await z();return}if(b.fieldErrors&&Object.keys(b.fieldErrors).length>0){v.value=Object.fromEntries(Object.entries(b.fieldErrors).map(([$,W])=>[$,oe(W,r)])),b.fieldErrors.captchaToken&&(N(),q.value++),await M();return}s.value=oe(b.message,r)||m,b.status==="request_rejected"&&(p.value="",o.value=0,N(),q.value++)}catch{s.value=m}finally{E.value=!1}}}}}},Ie={class:"contact-form-panel","aria-labelledby":"contact-form-title"},Me={class:"contact-form__eyebrow"},$e={class:"contact-form__header"},Le={class:"contact-form__eyebrow"},Ve={id:"contact-form-title"},Fe={key:0,class:"contact-form__context",role:"status"},Oe={key:1,class:"contact-form__context"},We=["href","onClick"],Re={key:1,class:"contact-form__failure",role:"alert"},ze={class:"contact-form__row"},De={class:"contact-form__field"},He={for:"contact-name"},Ke=["maxlength","aria-invalid","aria-describedby"],Ye={key:0,id:"contact-name-error",class:"contact-form__error"},Je={class:"contact-form__field"},Ge={for:"contact-email"},Qe=["maxlength","aria-invalid","aria-describedby"],Xe={key:0,id:"contact-email-error",class:"contact-form__error"},Ze={class:"contact-form__row"},et={class:"contact-form__field"},tt={for:"contact-company"},at=["maxlength","aria-invalid","aria-describedby"],ot={key:0,id:"contact-company-error",class:"contact-form__error"},nt={class:"contact-form__field"},it={for:"contact-website"},st=["maxlength","aria-invalid","aria-describedby"],rt={id:"contact-website-hint",class:"contact-form__hint"},ct={key:0,id:"contact-website-error",class:"contact-form__error"},lt={class:"contact-form__field"},dt={for:"contact-inquiryType"},ut=["aria-invalid","aria-describedby"],mt={value:"",disabled:""},pt=["value"],yt={key:0,id:"contact-inquiryType-error",class:"contact-form__error"},vt={class:"contact-form__field"},bt={for:"contact-budget"},ht=["aria-invalid","aria-describedby"],ft={value:""},_t={value:"not-sure"},gt={key:0,id:"contact-budget-error",class:"contact-form__error"},wt={class:"contact-form__field",hidden:""},kt={for:"contact-subject"},Tt=["maxlength","aria-invalid","aria-describedby"],xt={key:0,id:"contact-subject-error",class:"contact-form__error"},Ct={class:"contact-form__field"},qt={for:"contact-message"},Et=["minlength","maxlength","aria-invalid","aria-describedby"],jt={class:"contact-form__message-meta"},St={key:0,id:"contact-message-error",class:"contact-form__error"},Pt={id:"contact-message-count",class:"contact-form__counter","aria-live":"polite"},Bt={class:"contact-form__privacy"},Nt=["aria-invalid","aria-describedby"],At={for:"contact-privacyAccepted"},Ut={key:0,id:"contact-privacyAccepted-error",class:"contact-form__error"},It=["aria-invalid","aria-describedby"],Mt={id:"contact-captcha-label",class:"contact-form__label"},$t={key:1,class:"contact-form__preparing","aria-live":"polite"},Lt={key:2,id:"contact-captchaToken-error",class:"contact-form__error"},Vt={class:"contact-form__honeypot","aria-hidden":"true",hidden:""},Ft={for:"contact-middleName"},Ot=["disabled"],Wt={key:0,class:"contact-form__preparing","aria-live":"polite"},Rt={key:2,class:"contact-form__noscript"},zt=["href"],Dt=ie({__name:"ContactForm",props:{locale:{default:"en"}},setup(l){const r=h(null),m=h(null),k=h(!1),v=h(null),p=l,o=B(()=>Be[p.locale]),w=B(()=>Ae(p.locale)),T=h(""),q=h(""),P=B(()=>({en:{home:"New application",services:"Business software or portal",agency:"Agency partnership",delivery:"New application",movelira:"Business software or portal",w
1ork:"Product or other inquiry"},es:{home:"Nueva aplicación",services:"Software empresarial o portal",agency:"Colaboración con una agencia",delivery:"Nueva aplicación",movelira:"Software empresarial o portal",work:"Consulta sobre un producto u otro tema"}})[p.locale]),E=B(()=>q.value?P.value[q.value]:""),j=()=>ce({name:"enquiry_start",target:window.location.pathname,properties:{locale:p.locale,source_path:window.location.pathname}}),{values:s,errors:i,errorEntries:V,hasErrors:R,isPreparing:F,isSubmitting:M,isSuccessful:z,isCaptchaReady:O,failureMessage:D,tokenUnavailable:H,captcha:N,captchaResetVersion:J,focusField:g,loadToken:A,setCaptchaToken:b,clearCaptchaToken:$,submit:W}=Ue({errorSummary:r,successConfirmation:m},p.locale);Z(J,()=>v.value?.reset()),se(()=>{const S=new URLSearchParams(window.location.search),n=S.get("service")??"",L={general:"not_sure",web:"custom_software",mobile:"custom_software",ecommerce:"woocommerce",woocommerce:"woocommerce",shopware:"custom_software",integrations:"custom_software",business:"business_website",agency:"agency",product:"not_sure",other:"not_sure",alicante:"business_website"},c={woocommerce_store:"woocommerce",agency_partnership:"agency",not_sure_yet:"not_sure"},K=S.get("type")??L[n]??"",G=c[K]??K,Q=S.get("context")??"";T.value=w.value.some(ue=>ue.value===G)?G:"",q.value=["home","services","agency","delivery","movelira","work"].includes(Q)?Q:"",T.value&&(s.inquiryType=T.value),s.subject=p.locale==="es"?"Consulta de proyecto":"Project enquiry",k.value=!0,A()}),Z(()=>s.inquiryType,S=>{s.subject=S==="agency"?p.locale==="es"?"Encargo de agencia":"Agency project brief":p.locale==="es"?"Consulta de proyecto":"Project enquiry"});const de=B(()=>s.message.length),x=(S,n)=>{const L=[n,i.value[S]?`contact-${S}-error`:void 0].filter(Boolean);return L.length>0?L.join(" "):void 0};return(S,n)=>{const L=ye("router-link");return d(),u("section",Ie,[e(z)?(d(),u("div",{key:0,ref_key:"successConfirmation",ref:m,class:"contact-form__confirmation",tabindex:"-1"},[n[11]||(n[11]=t("span",{"aria-hidden":"true"},"✓",-1)),t("p",Me,a(o.value.delivered),1),t("h2",null,a(o.value.successTitle),1),t("p",null,a(o.value.successBody),1)],512)):(d(),u(Y,{key:1},[t("header",$e,[t("p",Le,a(o.value.eyebrow),1),t("h2",Ve,a(o.value.title),1),t("p",null,a(o.value.intro),1),E.value?(d(),u("p",Fe,[_(a(p.locale==="es"?"Contexto seleccionado:":"Selected context:")+" ",1),t("strong",null,a(E.value),1),_(". "+a(p.locale==="es"?"Puedes cambiar el tipo de consulta.":"You can change the inquiry type."),1)])):f("",!0),e(s).inquiryType==="agency"?(d(),u("p",Oe,[t("strong",null,a(p.locale==="es"?"Cuéntanos el proyecto de tu cliente.":"Tell us about the client project."),1),_(" "+a(p.locale==="es"?"Comparte el objetivo, los diseños disponibles, las integraciones conocidas y el desarrollo que quieres que asuma Nimblique. Puedes enviar una descripción sin identificar al cliente.":"Share the intended outcome, available designs, known integrations and the development work you want Nimblique to handle. An anonymised brief is fine."),1)])):f("",!0)]),e(R)?(d(),u("div",{key:0,ref_key:"errorSummary",ref:r,class:"contact-form__summary",role:"alert",tabindex:"-1"},[t("h3",null,a(o.value.summary),1),t("ul",null,[(d(!0),u(Y,null,ee(e(V),c=>(d(),u("li",{key:c.field},[t("a",{href:`#contact-${c.field}`,onClick:te(K=>e(g)(c.field),["prevent"])},a(c.message),9,We)]))),128))])],512)):f("",!0),e(D)?(d(),u("div",Re,[t("h3",null,a(o.value.failed),1),t("p",null,a(o.value.failedBody),1)])):f("",!0),t("form",{novalidate:"",onFocusinOnce:j,onSubmit:n[10]||(n[10]=te((...c)=>e(W)&&e(W)(...c),["prevent"]))},[t("div",ze,[t("div",De,[t("label",He,[_(a(o.value.name)+" ",1),n[12]||(n[12]=t("span",{"aria-hidden":"true"},"*",-1))]),C(t("input",{id:"contact-name","onUpdate:modelValue":n[0]||(n[0]=c=>e(s).name=c),name:"name",type:"text",autocomplete:"name",maxlength:e(y).name,required:"","aria-invalid":!!e(i).name,"aria-describedby":x("name")},null,8,Ke),[[U,e(s).name]]),e(i).name?(d(),u("p",Ye,a(e(i).name),1)):f("",!0)]),t("div",Je,[t("label",Ge,[_(a(o.value.email)+" ",1),n[13]||(n[13]=t("span",{"aria-hidden":"true"},"*",-1))]),C(t("input",{id:"contact-email","onUpdate:modelValue":n[1]||(n[1]=c=>e(s).email=c),name:"email",type:"email",inputmode:"email",autocomplete:"email",maxlength:e(y).email,required:"","aria-invalid":!!e(i).email,"aria-describedby":x("email")},null,8,Qe),[[U,e(s).email]]),e(i).email?(d(),u("p",Xe,a(e(i).email),1)):f("",!0)])]),t("div",Ze,[t("div",et,[t("label",tt,[_(a(o.value.company)+" ",1),t("span",null,a(o.value.optional),1)]),C(t("input",{id:"contact-company","onUpdate:modelValue":n[2]||(n[2]=c=>e(s).company=c),name:"company",type:"text",autocomplete:"organization",maxlength:e(y).company,"aria-invalid":!!e(i).company,"aria-describedby":x("company")},null,8,at),[[U,e(s).company]]),e(i).company?(d(),u("p",ot,a(e(i).company),1)):f("",!0)]),t("div",nt,[t("label",it,[_(a(o.value.website)+" ",1),t("span",null,a(o.value.optional),1)]),C(t("input",{id:"contact-website","onUpdate:modelValue":n[3]||(n[3]=c=>e(s).website=c),name:"website",type:"text",inputmode:"url",autocomplete:"url",placeholder:"example.com",maxlength:e(y).website,"aria-invalid":!!e(i).website,"aria-describedby":x("website","contact-website-hint")},null,8,st),[[U,e(s).website]]),t("p",rt,a(o.value.websiteHint),1),e(i).website?(d(),u("p",ct,a(e(i).website),1)):f("",!0)])]),t("div",lt,[t("label",dt,[_(a(o.value.inquiryType)+" ",1),n[14]||(n[14]=t("span",{"aria-hidden":"true"},"*",-1))]),C(t("select",{id:"contact-inquiryType","onUpdate:modelValue":n[4]||(n[4]=c=>e(s).inquiryType=c),name:"inquiryType",required:"","aria-invalid":!!e(i).inquiryType,"aria-describedby":x("inquiryType")},[t("option",mt,a(o.value.choose),1),(d(!0),u(Y,null,ee(w.value,c=>(d(),u("option",{key:c.value,value:c.value},a(c.label),9,pt))),128))],8,ut),[[ae,e(s).inquiryType]]),e(i).inquiryType?(d(),u("p",yt,a(e(i).inquiryType),1)):f("",!0)]),t("div",vt,[t("label",bt,a(o.value.budget),1),C(t("select",{id:"contact-budget","onUpdate:modelValue":n[5]||(n[5]=c=>e(s).budget=c),name:"budget","aria-invalid":!!e(i).budget,"aria-describedby":x("budget")},[t("option",ft,a(o.value.budgetChoose),1),n[15]||(n[15]=ve('<option value="1000-2000" data-v-784b5724>€1,000–€2,000</option><option value="2000-3500" data-v-784b5724>€2,000–€3,500</option><option value="3500-5000" data-v-784b5724>€3,500–€5,000</option><option value="5000-10000" data-v-784b5724>€5,000–€10,000</option><option value="10000-plus" data-v-784b5724>€10,000+</option>',5)),t("option",_t,a(o.value.budgetNotSure),1)],8,ht),[[ae,e(s).budget]]),e(i).budget?(d(),u("p",gt,a(e(i).budget),1)):f("",!0)]),t("div",wt,[t("label",kt,[_(a(o.value.subject)+" ",1),n[16]||(n[16]=t("span",{"aria-hidden":"true"},"*",-1))]),C(t("input",{id:"contact-subject","onUpdate:modelValue":n[6]||(n[6]=c=>e(s).subject=c),name:"subject",type:"text",maxlength:e(y).subject,required:"","aria-invalid":!!e(i).subject,"aria-describedby":x("subject")},null,8,Tt),[[U,e(s).subject]]),e(i).subject?(d(),u("p",xt,a(e(i).subject),1)):f("",!0)]),t("div",Ct,[t("label",qt,[_(a(o.value.message)+" ",1),n[17]||(n[17]=t("span",{"aria-hidden":"true"},"*",-1))]),C(t("textarea",{id:"contact-message","onUpdate:modelValue":n[7]||(n[7]=c=>e(s).message=c),name:"message",rows:"8",minlength:e(y).messageMin,maxlength:e(y).messageMax,required:"","aria-invalid":!!e(i).message,"aria-describedby":x("message","contact-message-count")},null,8,Et),[[U,e(s).message]]),t("div",jt,[e(i).message?(d(),u("p",St,a(e(i).message),1)):f("",!0),t("p",Pt,a(de.value.toLocaleStr
1ing())+" / "+a(e(y).messageMax.toLocaleString()),1)])]),t("div",Bt,[C(t("input",{id:"contact-privacyAccepted","onUpdate:modelValue":n[8]||(n[8]=c=>e(s).privacyAccepted=c),name:"privacyAccepted",type:"checkbox",required:"","aria-invalid":!!e(i).privacyAccepted,"aria-describedby":x("privacyAccepted")},null,8,Nt),[[be,e(s).privacyAccepted]]),t("div",null,[t("label",At,[_(a(o.value.privacyStart)+" ",1),he(L,{to:p.locale==="es"?"/es/privacy/":"/privacy/"},{default:fe(()=>[_(a(o.value.privacyLink),1)]),_:1},8,["to"]),_(" "+a(o.value.privacyEnd),1)]),e(i).privacyAccepted?(d(),u("p",Ut,a(e(i).privacyAccepted),1)):f("",!0)])]),t("div",{id:"contact-captcha",class:"contact-form__field",tabindex:"-1","aria-invalid":!!e(i).captchaToken,"aria-describedby":x("captchaToken")},[t("p",Mt,[_(a(o.value.security)+" ",1),n[18]||(n[18]=t("span",{"aria-hidden":"true"},"*",-1))]),e(N)?(d(),_e(Ce,{key:0,ref_key:"captchaWidget",ref:v,"site-key":e(N).siteKey,mode:e(N).mode,"aria-labelledby":"contact-captcha-label",onVerified:e(b),onExpired:e($),onError:e($)},null,8,["site-key","mode","onVerified","onExpired","onError"])):(d(),u("p",$t,a(e(H)?o.value.securityUnavailable:o.value.preparingSecurity),1)),e(i).captchaToken?(d(),u("p",Lt,a(e(i).captchaToken),1)):f("",!0)],8,It),t("div",Vt,[t("label",Ft,a(o.value.middleName),1),C(t("input",{id:"contact-middleName","onUpdate:modelValue":n[9]||(n[9]=c=>e(s).middleName=c),name:"middleName",type:"text",autocomplete:"off",tabindex:"-1"},null,512),[[U,e(s).middleName]])]),t("button",{class:"contact-form__submit",type:"submit",disabled:e(F)||e(M)||!e(O)},a(e(M)?o.value.sending:o.value.send),9,Ot),e(F)?(d(),u("p",Wt,a(o.value.preparingForm),1)):f("",!0)],32),k.value?f("",!0):(d(),u("p",Rt,[_(a(o.value.noscript)+" ",1),t("a",{href:`mailto:${e(I).publicEmail}`},a(e(I).publicEmail),9,zt),_(" "+a(o.value.noscriptEnd),1)]))],64))])}}}),Gt=re(Dt,[["__scopeId","data-v-784b5724"]]);export{Gt as C};

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.