1"use strict";(globalThis.webpackChunk=globalThis.webpackChunk||[]).push([[6230],{6230(e,t,i){var r=i(2891);const a=class extends r.xI{static targets=["form","lastNameField","firstNameField","emailField","subscriberField","descriptionField","addressField","zipCodeField","cityField","countryField","confirmationCheckbox","submitButton","submitButtonLoading","errorMessage","errorMessageText","successMessage","successMessageText"];static values={submitUrl:String,errorGeneric:String,errorNetwork:String,recaptchaSiteKey:String,validationRequired:String,validationInvalidEmail:String,validationForbiddenChars:String};checkFormValidity(){const e=""!==this.lastNameFieldTarget.value.trim()&&""!==this.firstNameFieldTarget.value.trim()&&""!==this.emailFieldTarget.value.trim()&&""!==this.descriptionFieldTarget.value.trim()&&""!==this.addressFieldTarget.value.trim()&&""!==this.zipCodeFieldTarget.value.trim()&&""!==this.cityFieldTarget.value.trim()&&this.confirmationCheckboxTarget.checked;this.submitButtonTarget.disabled=!e}async submit(e){e.preventDefault(),this.#e();const t=this.#t();if(Object.keys(t).length>0)return this.#i(t),void this.#r();this.#a(!0);const i=this.#s();if(i._csrf_token=this.formTarget.querySelector('[name="_csrf_token"]')?.value??"",this.recaptchaSiteKeyValue)try{const e=await window.grecaptcha.execute(this.recaptchaSiteKeyValue,{action:"retractation_form"});i.recaptchaToken=e}catch{return this.#l(this.errorGenericValue),void this.#a(!1)}try{const e=await fetch(this.submitUrlValue,{method:"POST",headers:{"Content-Type":"application/json","X-Requested-With":"XMLHttpRequest"},body:JSON.stringify(i)}),t=await e.json();e.ok&&t.success?(this.#o(t.message),this.formTarget.classList.add("d-none")):t.errors?this.#i(t.errors):this.#l(t.error||this.errorGenericValue)}catch{this.#l(this.errorNetworkValue)}finally{this.#a(!1)}}#s(){return{lastName:this.lastNameFieldTarget.value.trim(),firstName:this.firstNameFieldTarget.value.trim(),email:this.emailFieldTarget.value.trim(),subscriberNumber:this.subscriberFieldTarget.value.trim()||null,description:this.descriptionFieldTarget.value.trim(),address:this.addressFieldTarget.value.trim()||null,zipCode:this.zipCodeFieldTarget.value.trim()||null,city:this.cityFieldTarget.value.trim()||null,country:this.countryFieldTarget.value||null,confirmationRetraction:this.confirmationCheckboxTarget.checked}}#t(){const e={},t=/^[^\s@]+@[^\s@]+\.[^\s@]+$/,i=/[¤¦|§]/;this.lastNameFieldTarget.readOnly||this.lastNameFieldTarget.value.trim()||(e.lastName=this.validationRequiredValue),this.firstNameFieldTarget.readOnly||this.firstNameFieldTarget.value.trim()||(e.firstName=this.validationRequiredValue);const r=this.emailFieldTarget.value.trim();this.emailFieldTarget.readOnly||(r?t.test(r)||(e.email=this.validationInvalidEmailValue):e.email=this.validationRequiredValue),this.descriptionFieldTarget.value.trim()||(e.description=this.validationRequiredValue),this.addressFieldTarget.value.trim()||(e.address=this.validationRequiredValue),this.zipCodeFieldTarget.value.trim()||(e.zipCode=this.validationRequiredValue),this.cityFieldTarget.value.trim()||(e.city=this.validationRequiredValue),this.confirmationCheckboxTarget.checked||(e.confirmationRetraction=this.validationRequiredValue);return["lastName","firstName","subscriberNumber","description","address","zipCode","city"].forEach(t=>{const r=this[`${t}FieldTarget`];r&&i.test(r.value)&&(e[t]=this.validationForbiddenCharsValue||this.validationRequiredValue)}),e}#i(e){Object.entries(e).forEach(([e,t])=>{let i=null,r=null;if("confirmationRetraction"===e?(i=this.confirmationCheckboxTarget,r=i.closest(".form-check").parentNode):(i=this[`${e}FieldTarget`]||this.element.querySelector(`[name="${e}"]`),r=i?.parentNode),!i)return;const a=`${i.id||e}-error`;i.classList.add("is-invalid"),i.setAttribute("aria-invalid","true"),i.setAttribute("aria-describedby",a);const s=document.createElement("p");s.id=a,s.className="confirmationRetraction"===e?"invalid-feedback d-block mb-0":"invalid-feedback mb-0",s.textContent=t,r.appendChild(s)})}#r(){const e=this.element.querySelector(".is-invalid");e&&(e.focus(),e.scrollIntoView({behavior:"smooth",block:"center"}))}
1#e(){this.element.querySelectorAll(".is-invalid").forEach(e=>{e.classList.remove("is-invalid"),e.removeAttribute("aria-invalid"),e.removeAttribute("aria-describedby")}),this.element.querySelectorAll(".invalid-feedback").forEach(e=>e.remove()),this.errorMessageTarget.classList.add("d-none")}#l(e){this.#d(this.errorMessageTarget,this.errorMessageTextTarget,e)}#o(e){this.#d(this.successMessageTarget,this.successMessageTextTarget,e)}#d(e,t,i){t.textContent=i,e.classList.remove("d-none"),e.setAttribute("tabindex","-1"),e.focus(),e.scrollIntoView({behavior:"smooth",block:"center"})}#a(e){this.submitButtonTarget.disabled=e,this.submitButtonTarget.setAttribute("aria-busy",e.toString()),this.submitButtonLoadingTarget.classList.toggle("d-none",!e)}};i.dn(a),i.d(t,["default",0,a])}}]);
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.