PageSourceSearch

https://www.bridgfords.co.uk/asset_bundles/1907.bundle.2dc55016c0ad560c3d61.js

js bridgfords.co.uk collected 2026-09-26 11:52:27 UTC 9,998 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunktheme_boilerplate=self.webpackChunktheme_boilerplate||[]).push([[1907],{51907:function(e,t,a){var r=a(95318),l=a(50008);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=r(a(59713)),o=r(a(63038)),u=function(e,t){if(e&&e.__esModule)return e;if(null===e||"object"!==l(e)&&"function"!=typeof e)return{default:e};var a=m(t);if(a&&a.has(e))return a.get(e);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var u=n?Object.getOwnPropertyDescriptor(e,o):null;u&&(u.get||u.set)?Object.defineProperty(r,o,u):r[o]=e[o]}return r.default=e,a&&a.set(e,r),r}(a(67294)),i=r(a(45697)),c=a(26351),s=a(32677),d=r(a(26497)),p=r(a(33897));function m(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,a=new WeakMap;return(m=function(e){return e?a:t})(e)}function f(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function v(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?f(Object(a),!0).forEach((function(t){(0,n.default)(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):f(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}var y=parseFloat(Homeflow.get("mortgage_calculator_default_rate")),g=parseFloat(Homeflow.get("mortgage_calculator_default_term")),_=function(e){var t=e.smallPrint,a=(0,u.useState)({propertyPrice:{value:2e5,error:!1,hideInputIcon:!0,additionalValidation:{minLength:5,maxLength:11,number:!0}},depositAmount:{value:4e4,error:!1,hideInputIcon:!0,additionalValidation:{number:!0}},repaymentTerm:{value:g},mortgageType:{value:"repayment"},interestRate:{value:y,error:!1,hideInputIcon:!0,additionalValidation:{min:0,max:15,decimals:2}}}),r=(0,o.default)(a,2),l=r[0],n=r[1],i=(0,u.useState)(!1),m=(0,o.default)(i,2),f=m[0],_=m[1],h=(0,u.useRef)(null);return u.default.createElement("div",{className:"calculator ng-scope"},u.default.createElement("h2",{className:"calculator__title"},"Mortgage calculator"),u.default.createElement("form",{className:"form form--hidden ".concat((0,c.checkAllFieldsForErrors)(l)&&f?"form--error":""),noValidate:"novalidate",name:"calculatorForm","ng-class":"validation.validateForm(calculatorForm, 'form--hidden', 'form--error')"},u.default.createElement("div",{className:"form__container"},u.default.createElement("div",{className:"form__content"},u.default.createElement("div",{className:"form__group form__group--full form__group--error",role:"alert"},u.default.createElement("div",{className:"form__group-content"},u.default.createElement("h5",{className:"form__group-title"},"There has been a problem."),u.default.createElement("p",{className:"form__group-text"},"Please check the validation on the fields below."))),u.default.createElement("div",{className:"calculator__controls"},u.default.createElement("div",{className:"calculator__controls-content"},u.default.createElement(d.default,{type:"text",id:"propertyPrice",name:"propertyPrice",dataKey:"property_price",label:"How much are you looking to pay for a property?",value:l.propertyPrice,handleInputChange:function(e){var t;e.target.value||(t=0),e.target.value&&(t=parseInt(e.target.value.replace(/\D/g,""))),n(v(v({},l),{},{propertyPrice:{value:t,error:(0,c.invalidInput)(e.target,l.propertyPrice.additionalValidation),warning:(0,c.invalidInput)(e.target,l.propertyPrice.additionalValidation),hideInputIcon:!1,additionalValidation:l.propertyPrice.additionalValidation}})),(0,c.checkAllFieldsForErrors)(l)||_(!1)},showErrors:f,hideInputIcon:l.propertyPrice.hideInputIcon,currencyAsString:!0,errorMessage:"Please enter a valid value",minLength:l.propertyPrice.additionalValidation.minLength,maxLength:l.propertyPrice.additionalValidation.maxLength}),u.default.createElement(d.default,{type:"text",id:"depositAmount",name:"depositAmount",dataKey:"deposit_amount",label:"How much deposit do you have?",value:l.depositAmount,handleInputChange:function(e){var t;e.target.value||(t=0),e.target.value&&(t=parseInt(e.target.value.replace(/\D/g,""))),n(v(v({},l),{},{depositAmount:{value:t,error:0!==t&&(0,c.invalidInput)(e.target,l.depositAmount.additionalValidation),warning:0!==t&&(0,c.invalidInput)(e.target,l.depositAmount.additionalValidation),hideInputIcon:!1,additionalValidation:l.depositAmount.additionalValidation}})),(0,c.checkAllFieldsForErrors)(l)||_(!1)},showErrors:f,hideInputIcon:l.depositAmount.hideInputIcon,currencyAsString:!0,errorMessage:"Please enter a valid deposit amount"}),u.default.createElement(p.default,{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)",name:"repaymentTerm",value:l.repaymentTerm.value,handleSelectChange:function(e){n(v(v({},l),{},{repaymentTerm:{value:parseInt(e.target.value)}}))}}),u.default.createElement(d.default,{type:"number",id:"interestRate",name:"interestRate",dataKey:"interest_rate",label:"Interest rate (%)*",value:l.interestRate,showErrors:f,hideInputIcon:l.interestRate.hideInputIcon,errorMessage:"Please enter a valid value",minLength:l.interestRate.additionalValidation.minLength,maxLength:l.interestRate.additionalValidation.maxLength,handleInputChange:function(e){n(v(v({},l),{},{interestRate:{value:e.target.value,error:(0,c.invalidInput)(e.target,l.interestRate.additionalValidation),warning:(0,c.invalidInput)(e.target,l.interestRate.additionalValidation),hideInputIcon:!1,additionalValidation:l.interestRate.additionalValidation}})),(0,c.checkAllFieldsForErrors)(l)||_(!1)}}),u.default.createElement("div",{className:"form__group form__group--full"},u.default.createElement("button",{type:"button",className:"button button--on-light calculator__controls-button",onClick:function(){_(!0),h.current.scrollIntoView({block:"end",behavior:"smooth"})}},u.default.createElement("span",{className:"button__text"},"Calculate"))))),u.default.createElement("div",{ref:h,className:"calculator__display"},u.default.createElement("div",{className:"calculator__display-content"},u.default.createElement("div",{className:"calculator__display-content-box"},u.default.createElement("div",{className:"calculator__display-content-box-inner"},u.default.createElement("h3",{className:"calculator__display-content-title"},"Estimated monthly payment"),u.default.createElement("span",{className:"calculator__display-content-figure"},"£",(0,s.calculateMonthlyRepayment)(l,(0,c.checkAllFieldsForErrors)(l,"depositAmount")).toLocaleStr
1ing()),u.default.createElement("p",{className:"calculator__display-content-text"},"Mortgage amount to borrow is"," ",u.default.createElement("strong",null,"£",(l.propertyPrice.value-l.depositAmount.value>0?l.propertyPrice.value-l.depositAmount.value:0).toLocaleString())," ","based on property price minus available deposit.")))),t&&u.default.createElement("div",{className:"calculator__display-small-print",dangerouslySetInnerHTML:{__html:t}}))))))};_.propTypes={smallPrint:i.default.string},_.defaultProps={smallPrint:""},t.default=_},33897:function(e,t,a){var r=a(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var l=r(a(67294)),n=r(a(45697)),o=a(21614),u=function(e){var t=e.options,a=e.label,r=e.value,n=e.handleSelectChange,u=e.name,i=e.required,c=void 0!==i&&i,s=e.className,d=e.errorMessage;return l.default.createElement("div",{className:"form__group form__group--select validate form__group--success ".concat(s||"")},l.default.createElement("label",{className:"form__label"},a,l.default.createElement("span",{className:"form__label-help"}),l.default.createElement("span",{className:"form__label-error"},d)),l.default.createElement("select",{className:"form__control",id:"select-zdcyn-".concat(u),name:u,"aria-label":u,value:r,required:c,onChange:n},t.map((function(e){return e.selected?l.default.createElement("option",{key:(0,o.v4)(),value:e.value,selected:"selected"},e.text):l.default.createElement("option",{key:(0,o.v4)(),value:e.value},e.text)}))),l.default.createElement("div",{className:"form__select-arrow"}))};u.propTypes={options:n.default.array.isRequired,value:n.default.oneOfType([n.default.string,n.default.number]).isRequired,label:n.default.oneOfType([n.default.string,n.default.node]),handleSelectChange:n.default.func.isRequired},u.defaultProps={label:""},t.default=u},32677:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.calculateMonthlyRepayment=void 0,t.calculateMonthlyRepayment=function(e,t){var a,r,l=e.propertyPrice,n=e.depositAmount,o=e.repaymentTerm,u=e.interestRate,i=e.mortgageType;if(t)return 0;if(!l.value||isNaN(l.value))return 0;if(isNaN(o.value))return 0;if(isNaN(u.value))return 0;n&&(a=n.value),n||(a=0),i&&(r=i.value),i||(r="repayment");var c=l.value-a,s=o.value,d=u.value;if(l.value<a)return 0;if(0===c)return 0;if("repayment"===r){var p=12*s;if(0===d)return Math.round(c/p);var m=d/100/12,f=c*m/(1-Math.pow(1+m,-1*p));return Math.round(f)}if("interest"===r){if(0===d)return 0;var v=l.value*(d/100/12);return Math.round(v)}return 0}}}]);

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.