1(self.webpackChunkapp_project=self.webpackChunkapp_project||[]).push([[4803],{5872:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>i});class i{constructor(e){this.formElement=e,this.inputElement=e.querySelectorAll("input"),this.baseError=this.errorElement?this.errorElement.textContent:"",this.errorElement=e.querySelector(".form-element__error"),this.inputElement.forEach((e=>this.inputElementConstructor(e)))}inputElementConstructor(e){this.formElement.addEventListener("animationend",(t=>{"shake"===t.animationName&&this.setInvalidMessage(e)})),e.addEventListener("change",(e=>{e.currentTarget.checkValidity()?this.setValidMessage():this.setInvalidMessage(e.currentTarget)})),e.addEventListener("invalid",(e=>{e.preventDefault(),this.formElement.classList.add("invalid")})),e.addEventListener("valid",(e=>{e.preventDefault(),this.formElement.classList.remove("invalid")}))}setInvalidMessage(e){this.formElement.classList.remove("valid"),this.formElement.classList.add("invalid"),e.classList.remove("valid"),e.classList.add("invalid");const t=window.formValidationMessages?window.formValidationMessages[e.id]:null;if(this.errorElement)if(t){if(e.validity.customError&&t[e.validationMessage])this.errorElement.textContent=t[e.validationMessage];else for(let s in e.validity)if("valid"!==s&&e.validity[s]&&t[s]){this.errorElement.textContent=t[s];break}}else this.errorElement.textContent=this.baseError}setValidMessage(){this.formElement.classList.remove("invalid"),this.formElement.classList.add("valid"),this.inputElement.forEach((e=>{e.classList.remove("invalid"),e.classList.add("valid")}))}}}}]);
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.