PageSourceSearch

https://www.jw3.org.uk/dist/vite/site/js/validate_postnl_controller.Da1xjjwa.js

js jw3.org.uk collected 2026-10-02 05:29:46 UTC 3,738 bytes, 2 lines download raw bytes

1import{C as a}from"./site.4FScMMdi.js";import"./password-strength.AqUmoxgQ.js";const s=class s extends a{constructor(){super(...arguments),this.initialPostalcode="",this.initialHousenumber="",this.callIsDone=null}connect(){if(this.endpointValue.length<1)return console.error("No validation endpoint configured");let e;this.initialPostalcode=this.postalcodeTarget.value,this.initialHousenumber=this.housenumberTarget.value,[this.countryTarget,this.postalcodeTarget,this.housenumberTarget].forEach(t=>{t.addEventListener("input",()=>{window.clearTimeout(e),e=window.setTimeout(()=>{this.validate()},1e3)}),t.addEventListener("change",()=>{window.clearTimeout(e),this.validate()})}),this.isNederland()?this.enterMode():this.leaveMode()}async validate(){if(this.isNederland())this.enterMode();else{this.leaveMode();return}if(this.callIsDone===!1||this.inputIsValid()===!1)return;this.submitTarget.setAttribute("disabled","disabled"),this.callIsDone=!1,window.clearTimeout(this.responseTimer),this.responseTimer=setTimeout(()=>{this.callIsDone||(this.messagePlaceholderTarget.innerText=this.loadingValue,this.messageTarget.style.display="")},1e3);const e=new FormData;e.append("postcode",this.postalcodeTarget.value),e.append("huisnummer",this.splitAddress(this.housenumberTarget.value)),e.append("land",this.countryTarget.value);try{const t=await fetch(this.endpointValue,{method:"POST",body:e});if(!t.ok)throw new Error("Something went wrong during validation");const i=await t.json();"street"in i&&i.street!==null&&i.city!==null?(this.enterMode(),this.streetTarget.value=i.street,this.cityTarget.value=i.city,this.initialPostalcode=this.postalcodeTarget.value,this.initialHousenumber=this.housenumberTarget.value,this.submitTarget.removeAttribute("disabled")):this.abort(),this.callIsDone=!0,this.submitTarget.removeAttribute("disabled"),window.clearTimeout(this.responseTimer),this.triggers()}catch{return this.abort(),console.error("Something went wrong during validation")}}enterMode(){this.messageTarget.style.display="none",this.streetTarget.setAttribute("readonly","readonly"),this.cityTarget.setAttribute("readonly","readonly"),this.postalcodeTarget.setAttribute("pattern","[0-9]{4}\\s*[a-zA-Z]{2}")}leaveMode(){this.messageTarget.style.display="none",this.streetTarget.removeAttribute("readonly"),this.cityTarget.removeAttribute("readonly"),this.postalcodeTarget.removeAttribute("pattern"),this.submitTarget.removeAttribute("disabled")}abort(){this.leaveMode(),this.streetTarget.value="",this.cityTarget.value="",this.messagePlaceholderTarget.innerText=this.notfoundValue,this.messageTarget.style.display="",this.submitTarget.removeAttribute("disabled"),this.callIsDone=!0,window.clearTimeout(this.responseTimer),this.triggers()}isNederland(){const e=this.countryTarget.value.toLowerCase();return e==="nl"||e==="nld"||e==="nederland"||this.countryTarget.selectedOptions[0].innerText.toLowerCase()==="nederland"}inputIsValid(){return!(!new RegExp(this.postalcodeTarget.pattern).test(this.postalcodeTarget.value)||this.housenumberTarget.value.length<1||this.postalcodeTarget.value===this.initialPostalcode&&this.housenumberTarget.value===this.initialHousenumber)}splitAddress(e){e=e.trim();let t=e.search(/\d\D/);return t>-1?e.substring(0,t+1).trim():e}triggers(){const e=new Event("change",{bubbles:!0}),t=new Event("input",{bubbles:!0});this.streetTarget.dispatchEvent(t),this.streetTarget.dispatchEvent(e),this.cityTarget.dispatchEvent(t),this.cityTarget.dispatchEvent(e)}};s.values={endpoint:String,loading:String,notfound:String},s.targets=["country","postalcode","housenumber","street","city","message","messagePlaceholder","submit"];let r=s;export{r as default};
2//# sourceMappingURL=validate_postnl_controller.Da1xjjwa.js.map

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.