PageSourceSearch

https://www.johndwood.co.uk/asset_bundles/9396.bundle.f3f6bc0fee7513811520.js

js johndwood.co.uk collected 2026-09-26 05:47:05 UTC 24,476 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunktheme_boilerplate=self.webpackChunktheme_boilerplate||[]).push([[9396],{9396:function(e,t,r){r.r(t),r.d(t,{default:function(){return _}});var a=r(7294),n=r(6351),l=r(2677),o=r(6497),i=r(3897),u=r(5697),c=r.n(u),s=function(e){var t=e.label,r=e.firstInputLabel,n=e.secondInputLabel,l=e.firstInputDefaultValue,o=e.secondInputDefaultValue,i=e.handleRadioChange;return a.createElement("div",{className:"form__group form__group--radio validate"},a.createElement("fieldset",{className:"form__fieldset"},a.createElement("legend",{className:"form__label"},t,a.createElement("span",{className:"form__label-help"}),a.createElement("span",{className:"form__label-warning"}),a.createElement("span",{className:"form__label-error"},"Option must not be empty")),a.createElement("div",{className:"form__group-fieldset form__group-fieldset--grouped"},a.createElement("div",{className:"form__group-option form__group-option--radio"},a.createElement("input",{id:"input-zdcyn-repayment",className:"form__control",type:"radio",name:"mortgageType","data-ng-model":"mortgageType",defaultValue:l,defaultChecked:!0,autoComplete:"off",onChange:i,required:!0}),a.createElement("label",{htmlFor:"input-zdcyn-repayment",className:"form__label"},r)),a.createElement("div",{className:"form__group-option form__group-option--radio"},a.createElement("input",{id:"input-zdcyn-interest",className:"form__control",type:"radio",name:"mortgageType","data-ng-model":"mortgageType",defaultValue:o,autoComplete:"off",onChange:i,required:!0}),a.createElement("label",{htmlFor:"input-zdcyn-interest",className:"form__label"},n)))))};s.propTypes={label:c().string,firstInputLabel:c().string.isRequired,secondInputLabel:c().string.isRequired,firstInputDefaultValue:c().string.isRequired,secondInputDefaultValue:c().string.isRequired,handleRadioChange:c().func.isRequired},s.defaultProps={label:""};var m=s;function f(e){return f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},f(e)}function p(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function d(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?p(Object(r),!0).forEach((function(t){var a,n,l,o;a=e,n=t,l=r[t],o=function(e,t){if("object"!=f(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var a=r.call(e,"string");if("object"!=f(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(n),(n="symbol"==f(o)?o:String(o))in a?Object.defineProperty(a,n,{value:l,enumerable:!0,configurable:!0,writable:!0}):a[n]=l})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):p(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function y(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var a,n,l,o,i=[],u=!0,c=!1;try{if(l=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;u=!1}else for(;!(u=(a=l.call(r)).done)&&(i.push(a.value),i.length!==t);u=!0);}catch(e){c=!0,n=e}finally{try{if(!u&&null!=r.return&&(o=r.return(),Object(o)!==o))return}finally{if(c)throw n}}return i}}(e,t)||function(e,t){if(e){if("string"==typeof e)return g(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?g(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function g(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,a=new Array(t);r<t;r++)a[r]=e[r];return a}
1var v=parseFloat(Homeflow.get("mortgage_calculator_default_rate")),h=parseFloat(Homeflow.get("mortgage_calculator_default_term")),_=function(){var e=y((0,a.useState)({propertyPrice:{value:2e5,error:!1,hideInputIcon:!0,additionalValidation:{minLength:5,maxLength:11,number:!0}},repaymentTerm:{value:h},mortgageType:{value:"repayment"},interestRate:{value:v,error:!1,hideInputIcon:!0,additionalValidation:{min:0,max:15,decimals:2}}}),2),t=e[0],r=e[1],u=y((0,a.useState)(!1),2),c=u[0],s=u[1],f=(0,a.useRef)(null);return a.createElement("div",{className:"calculator ng-scope"},a.createElement("h2",{className:"calculator__title"},"Mortgage calculator"),a.createElement("form",{className:"form form--hidden ".concat((0,n.y8)(t)&&c?"form--error":""),noValidate:"novalidate",name:"calculatorForm","ng-class":"validation.validateForm(calculatorForm, 'form--hidden', 'form--error')"},a.createElement("div",{className:"form__container"},a.createElement("div",{className:"form__content"},a.createElement("div",{className:"form__group form__group--full form__group--error",role:"alert"},a.createElement("div",{className:"form__group-content"},a.createElement("h5",{className:"form__group-title"},"There has been a problem."),a.createElement("p",{className:"form__group-text"},"Please check the validation on the fields below."))),a.createElement("div",{className:"calculator__controls"},a.createElement("div",{className:"calculator__controls-content"},a.createElement(o.Z,{type:"text",id:"propertyPrice",name:"propertyPrice",dataKey:"property_price",label:"How much would you like to borrow?",value:t.propertyPrice,handleInputChange:function(e){var a;e.target.value||(a=0),e.target.value&&(a=parseInt(e.target.value.replace(/\D/g,""))),r(d(d({},t),{},{propertyPrice:{value:a,error:(0,n.Uu)(e.target,t.propertyPrice.additionalValidation),warning:(0,n.Uu)(e.target,t.propertyPrice.additionalValidation),hideInputIcon:!1,additionalValidation:t.propertyPrice.additionalValidation}})),(0,n.y8)(t)||s(!1)},showErrors:c,hideInputIcon:t.propertyPrice.hideInputIcon,currencyAsString:!0,errorMessage:"Please enter a valid value",minLength:t.propertyPrice.additionalValidation.minLength,maxLength:t.propertyPrice.additionalValidation.maxLength}),a.createElement(o.Z,{type:"number",id:"interestRate",name:"interestRate",dataKey:"interest_rate",label:"Interest rate (%)†",value:t.interestRate,handleInputChange:function(e){r(d(d({},t),{},{interestRate:{value:e.target.value,error:(0,n.Uu)(e.target,t.interestRate.additionalValidation),warning:(0,n.Uu)(e.target,t.interestRate.additionalValidation),hideInputIcon:!1,additionalValidation:t.interestRate.additionalValidation}})),(0,n.y8)(t)||s(!1)},showErrors:c,hideInputIcon:t.interestRate.hideInputIcon,errorMessage:"Please enter a valid value",minLength:t.interestRate.additionalValidation.minLength,maxLength:t.interestRate.additionalValidation.maxLength}),a.createElement(i.Z,{options:[{value:5,text:"5 years"},{value:6,text:"6 years"},{value:7,text:"7 years"},{value:8,text:"8 years"},{value:9,text:"9 years"},{value:10,text:"10 years"},{value:11,text:"11 years"},{value:12,text:"12 years"},{value:13,text:"13 years"},{value:14,text:"14 years"},{value:15,text:"15 years"},{value:16,text:"16 years"},{value:17,text:"17 years"},{value:18,text:"18 years"},{value:19,text:"19 years"},{value:20,text:"20 years"},{value:21,text:"21 years"},{value:22,text:"22 years"},{value:23,text:"23 years"},{value:24,text:"24 years"},{value:25,text:"25 years"},{value:26,text:"26 years"},{value:27,text:"27 years",defaultValue:!0},{value:28,text:"28 years"},{value:29,text:"29 years"},{value:30,text:"30 years"},{value:31,text:"31 years"},{value:32,text:"32 years"},{value:33,text:"33 years"},{value:34,text:"34 years"},{value:35,text:"35 years"}],label:"Repayment term (years)",value:t.repaymentTerm.value,handleSelectChange:function(e){r(d(d({},t),{},{repaymentTerm:{value:parseInt(e.target.value)}}))}}),a.createElement(m,{label:"Mortgage type?",firstInputLabel:"Repayment",firstInputDefaultValue:"repayment",secondInputLabel:"Interest only",secondInputDefaultValue:"interest",handleRadioChange:function(e){r(d(d({},t),{},{mortgageType:{value:e.target.value}}))}}),a.createElement("div",{className:"form__group form__group--full"},a.createElement("button",{type:"button",className:"button button--on-light ",onClick:function(){s(!0),f.current.scrollIntoView({block:"end",behavior:"smooth"})}},a.createElement("span",{className:"button__text"},"Calculate"))))),a.createElement("div",{ref:f,className:"calculator__display"},a.createElement("div",{className:"calculator__display-content"},a.createElement("div",{className:"calculator__display-content-box"},a.createElement("div",{className:"calculator__display-content-box-inner"},a.createElement("h3",{className:"calculator__display-content-title"},"Estimated monthly payment*"),a.createElement("span",{className:"calculator__display-content-figure"}
1,"£",(0,l._)(t,(0,n.y8)(t)).toLocaleString()),a.createElement("div",{className:"calculator__display-content-cta"}),a.createElement("span",{className:"calculator__display-content-text"})))))))))}},6497:function(e,t,r){var a=r(7294),n=r(5697),l=r.n(n),o=r(177),i=r(2659),u=r(7049),c=r(6351);function s(){return s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e},s.apply(this,arguments)}var m=function(e){var t=e.type,r=e.id,n=e.name,l=e.dataKey,m=e.label,f=e.value,p=e.handleInputChange,d=e.showErrors,y=e.alpha,g=e.currency,v=e.currencyAsString,h=e.postcode,_=e.hideInputIcon,b=e.errorMessage,E=e.minLength,w=e.maxLength,N=e.position,x=e.required,I=e.fieldClass,A=e.hasHiddenClass,S=function(e,t){return _?"":t.error&&d||""===t.value&&t.error&&d?" form__group--error":t.warning?" form__group--warning":""!==t.value||"hfhp"===e||"body"===e?" form__group--success":""},C=function(){return g||v?a.createElement("div",{className:"form__group-input-icon"},a.createElement("span",{className:"form__group-input-content"},"£")):null},R={email:"[a-zA-Z0-9._%+\\-]*@[a-zA-Z0-9.\\-]*.[a-zA-Z]{1,}$",tel:"^[0-9\\-.\\(\\)\\/ +]{6,20}$",default:"^[0-9A-Za-zÀ-ÖØ-öø-ÿ\\-,. ]+%{0,1}$",alpha:"^[A-Za-zÀ-ÖØ-öø-ÿ\\- ]+$"},O=Homeflow.get("propertyAvailableOn"),j=Homeflow.get("enquiryType"),L=null==O?void 0:O.split("/").reverse(),T=new Date(L).valueOf()?L.join("-"):(new Date).toISOString().split("T")[0],Z=new Date(L).valueOf()?" ".concat(new Date(L).toLocaleString("en-GB",{day:"numeric",month:"long",year:"numeric"})):"",P=function(){if(y&&"text"===t)return a.createElement("input",{type:t,id:r,className:"form__control",name:n,"data-key":l,"aria-label":l,required:x,pattern:R.default,"auto-fill-sync":"",value:f.value,onChange:function(e){return(0,c.YR)(e,(function(t){p(e)}))}});if(v){var e=f.value;return"string"==typeof e&&""!==e&&e.match(/^[\d,]+$/)&&(e=parseInt(e.replace(/[^\d.-]/g,""))),a.createElement("input",{type:"text",id:r,className:"form__control form__control--icon",name:n,"data-key":l,"aria-label":l,required:x,value:e.toLocaleString(),onChange:p,minLength:E,maxLength:w,"realtime-currency":"",pattern:"^[\\d,]+$"})}return g?a.createElement("input",{type:t,id:r,className:"form__control form__control--icon",name:n,"data-key":l,"aria-label":l,required:x,value:f.value,onChange:p,minLength:E,maxLength:w,"realtime-currency":""}):h?a.createElement("input",{type:t,id:r,className:"form__control",name:n,"data-key":l,"aria-label":l,required:x,pattern:"^([A-Za-z][A-Ha-hJ-Yj-y]?[0-9][A-Za-z0-9]? ?[0-9][A-Za-z]{2}|[Gg][Ii][Rr] ?0[Aa]{2})$",value:f.value,onChange:p}):a.createElement("input",s({},"date"===t?{min:T}:{},{type:t,id:r,className:"form__control",name:n,"data-key":l,"aria-label":l,required:x,pattern:"first_name"===n||"last_name"===n||"solicitor_name"===n||"second_applicant_name"===n||n.match(/(?<=household_member_)(.*[0-9])(?=_name)/)?R.alpha:R[t]||R.default,"auto-fill-sync":"",value:"enquiry_type"===n&&j?j:f.value,onChange:p}))};if(A)return a.createElement("div",{className:"form__group form__group--full".concat(I?" ".concat(I):"").concat(S(n,f)),"data-has-cms-hidden-class":"true"},m&&a.createElement("label",{className:"form__label",htmlFor:r},m," ",x?"*":"",a.createElement("span",{className:"form__label-help"}),a.createElement("span",{className:"form__label-warning"},b),a.createElement("span",{className:"form__label-error"},b)),a.createElement("div",{className:"form__group-input"},P(),!V&&a.createElement(a.Fragment,null,a.createElement("span",{className:"form__group-input-warning"},a.createElement(i.Z,null)),a.createElement("span",{className:"form__group-input-success"},a.createElement(o.Z,null)),a.createElement("span",{className:"form__group-input-error"},a.createElement(u.Z,null))),C()));var V="hidden"===t||"hfhp"===n||"body"===n;return a.createElement("div",{className:"".concat(V?"form__group--hidden ":"","form__group form__group--").concat(N).concat(S(n,f))},m&&a.createElement("label",{className:"form__label",htmlFor:r},"date"===t&&"Tenancy start date: (earliest available)"===m?"Tenancy start date: (earliest available".concat(Z,")"):m," ",x?"*":"",a.createElement("span",{className:"form__label-help"}),a.createElement("span",{className:"form__label-warning"},b),a.createElement("span",{className:"form__label-error"},b)),a.createElement("div",{className:"form__group-input\n          ".concat(V?"form__group-input--hidden":"")},P(),!V&&a.createElement(a.Fragment,null,a.createElement("span",{className:"form__group-input-warning"},a.createElement(i.Z,null)),a.createElement("span",{className:"form__group-input-success"},a.createElement(o.Z,null)),a.createElement("span",{className:"form__group-input-error"},a.createElement(u.Z,null))),C()))};m.propTypes={type:l().string,id:l().string.isRequired,name:l().string.isRequired,dataKey:l().string.isRequired,label:l().string.isRequired,value:l().object.isRequired,handleInputChange:l().func.isRequired,showErrors:l().bool.isRequired,alpha:l().bool,currency:l().bool,currencyAsString:l().bool,hideInputIcon:l().bool,errorMessage:l().string,minLength:l().oneOfType([l().str
1ing,l().number]),maxLength:l().oneOfType([l().string,l().number]),position:l().string,required:l().bool,fieldClass:l().string,hasHiddenClass:l().bool},m.defaultProps={type:"text",alpha:!1,currency:!1,currencyAsString:!1,hideInputIcon:!1,errorMessage:"",minLength:"",maxLength:"",position:"full",required:!1,fieldClass:"",hasHiddenClass:!1},t.Z=m},3897:function(e,t,r){var a=r(7294),n=r(5697),l=r.n(n),o=r(4586),i=function(e){var t=e.options,r=e.label,n=e.value,l=e.handleSelectChange;return a.createElement("div",{className:"form__group form__group--select validate form__group--success"},r&&a.createElement("label",{className:"form__label"},r,a.createElement("span",{className:"form__label-help"})),a.createElement("select",{className:"form__control",id:"select-zdcyn-repaymentTerm",name:"repaymentTerm","aria-label":"repaymentTerm",value:n,onChange:l},t.map((function(e){return e.selected?a.createElement("option",{key:(0,o.Z)(),value:e.value,selected:"selected"},e.text):a.createElement("option",{key:(0,o.Z)(),value:e.value},e.text)}))),a.createElement("div",{className:"form__select-arrow"}))};i.propTypes={options:l().array.isRequired,value:l().oneOfType([l().string,l().number]).isRequired,label:l().string,handleSelectChange:l().func.isRequired},i.defaultProps={label:""},t.Z=i},7049:function(e,t,r){var a=r(7294);t.Z=function(){return a.createElement("svg",{focusable:"false",className:"icon icon--cross",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 48.29 48.29"},a.createElement("title",null,"Cross Icon"),a.createElement("desc",null,"Icon set Cross"),a.createElement("path",{d:"M25.2,24.14,48.07,1.28A.75.75,0,0,0,47,.22L24.14,23.08,1.28.22A.75.75,0,0,0,.22,1.28L23.08,24.14.22,47a.75.75,0,0,0,0,1.06.79.79,0,0,0,.53.22.79.79,0,0,0,.53-.22L24.14,25.2,47,48.07a.75.75,0,0,0,.53.22.79.79,0,0,0,.53-.22.75.75,0,0,0,0-1.06Z"}))}},177:function(e,t,r){var a=r(7294);t.Z=function(){return a.createElement("svg",{focusable:"false",className:"icon-solid icon-tick",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 48 48"},a.createElement("title",null,"Tick Icon"),a.createElement("desc",null,"Icon set Tick"),a.createElement("path",{d:"M44.3 13.8L20 38a2.4 2.4 0 0 1-3.5 0l-.3-.3L3.7 25.3a2.7 2.7 0 0 1 0-3.6l.4-.3a2.4 2.4 0 0 1 3.5 0l10.7 10.7L40.4 10a2.4 2.4 0 0 1 3.5 0l.4.3a2.6 2.6 0 0 1 0 3.5z"}))}},2659:function(e,t,r){var a=r(7294);t.Z=function(){return a.createElement("svg",{focusable:"false",className:"icon icon--warning",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 48.3 45.4"},a.createElement("title",null,"Warning Icon"),a.createElement("desc",null,"Icon set Warning"),a.createElement("path",{d:"M47.7 37.7l-20-34.6c-1.1-2-3.6-2.7-5.6-1.6-.7.4-1.2.9-1.6 1.6L.5 37.7c-1.1 2-.5 4.5 1.5 5.6.6.4 1.3.5 2.1.5h40c2.3 0 4.1-1.8 4.1-4.1.1-.6-.1-1.4-.5-2zM22.4 11.9c1-.9 2.5-.9 3.4 0 .5.5.7 1.1.7 1.7l-.4 13.5c0 1.1-1 2-2.1 1.9-1.1 0-2-.9-2-1.9l-.4-13.5c.1-.6.4-1.2.8-1.7zm1.7 26.4c-1.5 0-2.8-1.2-2.8-2.8 0-1.5 1.2-2.8 2.8-2.8h.1c1.5 0 2.7 1.3 2.7 2.8 0 1.5-1.2 2.8-2.8 2.8z"}))}},6419:function(e,t,r){function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,a=new Array(t);r<t;r++)a[r]=e[r];return a}r.d(t,{$4:function(){return i},D:function(){return s},T4:function(){return f},X9:function(){return m},cR:function(){return n},cl:function(){return u},kl:function(){return c},m$:function(){return p}});var n=function(e){return Math.floor(e)===e?0:e.toString().split(".")[1].length||0},l=function(e){return e?e.charAt(0).toUpperCase()+e.slice(1):""},o=function(e){return"unspecified"===e?"":e},i=function(e,t){return"string"==typeof e||e>0?"".concat(e," bedroom ").concat(o(t)):l(o(t))},u=function(e){var t=arguments.length>3?arguments[3]:void 0,r=i(e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:""),a=t?"for sale":"to rent";return l("".concat(r," ").concat(a).trim())},c=function(e,t){var r;return function(){for(var a=arguments.length,n=new Array(a),l=0;l<a;l++)n[l]=arguments[l];return clearTimeout(r),new Promise((function(a,l){r=setTimeout((function(){e.apply(void 0,n).then(a).catch(l)}),t)}))}},s=function(){var e=46656*Math.random()|0,t=46656*Math.random()|0;return(e="000".concat(e.toString(36)).slice(-3))+"000".concat(t.toString(36)).slice(-3)},m=function(e,t){var r=e.bedrooms,a=void 0===r?0:r,n=t.bedrooms;return a-(void 0===n?0:n)}
1,f=function(e){return"number"==typeof e?e.toLocaleString("en-GB"):e},p=function(){var e=window.location.hash.substring(1),t={};return e.split("&").forEach((function(e){var r,n,l=(r=e.split("="),n=2,function(e){if(Array.isArray(e))return e}(r)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var a,n,l,o,i=[],u=!0,c=!1;try{if(l=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;u=!1}else for(;!(u=(a=l.call(r)).done)&&(i.push(a.value),i.length!==t);u=!0);}catch(e){c=!0,n=e}finally{try{if(!u&&null!=r.return&&(o=r.return(),Object(o)!==o))return}finally{if(c)throw n}}return i}}(r,n)||function(e,t){if(e){if("string"==typeof e)return a(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?a(e,t):void 0}}(r,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),o=l[0],i=l[1];if(o&&i){var u=o.startsWith("/")?o.substring(1):o;t[u]=decodeURIComponent(i)}})),t}},6351:function(e,t,r){r.d(t,{Uu:function(){return o},YR:function(){return u},fC:function(){return s},j$:function(){return c},y8:function(){return i}});var a=r(6419);function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,a=new Array(t);r<t;r++)a[r]=e[r];return a}var l=function(e){return!!/^[A-Za-zÀ-ÖØ-öø-ÿ- ]+$/.test(e)},o=function(e,t){if(!("house_name"!==e.dataset.key||e.value&&e.value.replace(/\s/g,"").length))return!1;if("first_name"===e.dataset.key&&!l(e.value))return!0;if("last_name"===e.dataset.key&&!l(e.value))return!0;if("email"===e.dataset.key&&(r=e.value,!/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(String(r).toLowerCase())))return!0;var r,n;if(("tel_home"===e.dataset.key||"tel_mobile"===e.dataset.key)&&e.value.length<6)return!0;if("select"===e.dataset.key&&"default"===e.value)return!0;if(!e.value||!e.value.replace(/\s/g,"").length)return!0;if("postcode"===e.dataset.key&&(n=e.value,!/^([A-Za-z][A-Ha-hJ-Yj-y]?[0-9][A-Za-z0-9]? ?[0-9][A-Za-z]{2}|[Gg][Ii][Rr] ?0[Aa]{2})$/.test(n)))return!0;if(t){var o=t.minLength,i=t.maxLength,u=t.min,c=t.max,s=t.decimals;if(o&&e.value.replace(/\s/g,",").length<o)return!0;if(i&&e.value.replace(/\s/g,",").length>i)return!0;if(u&&e.value<u)return!0;if(c&&e.value>c)return!0;if(s&&(0,a.cR)(parseFloat(e.value))>s)return!0}return!1},i=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Object.entries(e).some((function(r){var a,l,o=(a=r,l=1,function(e){if(Array.isArray(e))return e}(a)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var a,n,l,o,i=[],u=!0,c=!1;try{if(l=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;u=!1}else for(;!(u=(a=l.call(r)).done)&&(i.push(a.value),i.length!==t);u=!0);}catch(e){c=!0,n=e}finally{try{if(!u&&null!=r.return&&(o=r.return(),Object(o)!==o))return}finally{if(c)throw n}}return i}}(a,l)||function(e,t){if(e){if("string"==typeof e)return n(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(e,t):void 0}}(a,l)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[0];if(null!=t&&t.includes(o)){if(e[o].error)return!0}else if(e[o].error||!e[o].value)return!0;return!1}))},u=function(e,t){var r=e.target.value?e.target.value.replace(/[A-Za-zÀ-ÖØ-öø-ÿ- ]+/gi,""):"";if(e.target.value!==r&&(e.target.value=r),"function"==typeof t)return t(r)},c=function(){document.querySelectorAll(".js-disable-button").forEach((function(e){e.disabled=!0}))},s=function(){document.querySelectorAll(".js-disable-button").forEach((function(e){e.disabled=!1}))}},2677:function(e,t,r){r.d(t,{_:function(){return a}});var a=function(e,t){var r,a,n=e.propertyPrice,l=e.depositAmount,o=e.repaymentTerm,i=e.interestRate,u=e.mortgageType;if(t)return 0;if(!n.value||isNaN(n.value))return 0;if(isNaN(o.value))return 0;if(isNaN(i.value))return 0;l&&(r=l.value),l||(r=0),u&&(a=u.value),u||(a="repayment");var c=n.value-r,s=o.value,m=i.value;if(n.value<r)return 0;if(0===c)return 0;if("repayment"===a){var f=12*s;if(0===m)return Math.round(c/f);var p=m/100/12,d=c*p/(1-Math.pow(1+p,-1*f));return Math.round(d)}if("interest"===a){if(0===m)return 0;var y=n.value*(m/100/12);return Math.round(y)}return 0}},4586:function(e,t,r){var a;r.d(t,{Z:function(){return s}});var n=new Uint8Array(16);function l(){if(!a&&!(a="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return a(n)}for(var o=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i,i=[],u=0;u<256;++u)i.push((u+256).toString(16).substr(1));var c=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=(i[e[t+0]]+i[e[t+1]]+i[e[t+2]]+i[e[t+3]]+"-"+i[e[t+4]]+i[e[t+5]]+"-"+i[e[t+6]]+i[e[t+7]]+"-"+i[e[t+8]]+i[e[t+9]]+"-"+i[e[t+10]]+i[e[t+11]]+i[e[t+12]]+i[e[t+13]]+i[e[t+14]]+i[e[t+15]]).toLowerCase();if(!function(e){return"string"==typeof e&&o.test(e)}
vendor: 221 bytes, line 1
1(r))throw TypeError("Stringified UUID is invalid");return r},s=function(e,t,r){var a=(e=e||{}).random||(e.rng||l)();if(a[6]=15&a[6]|64,a[8]=63&a[8]|128,t){r=r||0;for(var n=0;n<16;++n)t[r+n]=a[n];return t}return c(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.