{"version":3,"file":"component---src-templates-page-calculator-js-8586402b23f293356a2b.js","mappings":"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","sources":["webpack://landbay/./src/components/products/Product.js","webpack://landbay/./src/components/products/RadioGroup.js","webpack://landbay/./src/assets/img/calculator/no-result.png","webpack://landbay/./src/components/calculator/MaxLoanAmountResponse.js","webpack://landbay/./src/components/calculator/MinRentalIncomeResponse.js","webpack://landbay/./src/components/calculator/ResponseFooter.js","webpack://landbay/./src/templates/page-calculator.js","webpack://landbay/./src/utils/formatNumbers.js","webpack://landbay/./src/assets/svg/inline/ic_chevron-down.svg","webpack://landbay/./src/assets/svg/inline/ic_error.svg","webpack://landbay/./src/assets/svg/inline/ic_info.svg","webpack://landbay/./src/assets/svg/inline/ic_warning.svg"],"sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport { Link } from \"gatsby\";\nimport ChevronIcon from \"../../assets/svg/inline/ic_chevron-down.svg\"\nimport Collapse from \"@kunukn/react-collapse\";\nimport {abbreviateNumber, floatToPercentage, penniesToPounds} from '../../utils/formatNumbers' \n\nexport const getPropertyType = function(product) {\n return product.propertyCategories?.join(\", \")\n}\n\nexport const getMaxLTV = function(product) {\n return floatToPercentage(product.maxLtv);\n}\n\nexport const getRate = function(product) {\n let rate = '';\n \n if (product.rate!==null) {//some products have 'null' for the rate\t\n\trate += floatToPercentage(product.rate);\n }\n if (product.hasOwnProperty('baseRate') && product.baseRate!==null && product.baseRate!=='') {\n\trate += ' + '+product.baseRate+'';\n }\t\n return {__html: rate};\n}\n\nexport const getReversionRate = function(product) {\n let reversionRate = '-';\n \n if (product.reversionRate!==null) {//some products have 'null' for the reversionRate\t\n\treversionRate = floatToPercentage(product.reversionRate);\n }\n if (product.hasOwnProperty('reversionBaseRate') && product.reversionBaseRate!==null && product.reversionBaseRate!=='') {\n\treversionRate += ' + '+product.reversionBaseRate+'';\n }\t\n return {__html: reversionRate};\n}\n\nexport const getStressRate = function(product) {\n if (product.stressRate===null) {\n\treturn '';//some products have 'null' for the rate\t\n }\n return floatToPercentage(product.stressRate);\n}\n\nexport const getProductFee = function(product) {\n if (product.productFeeFixed) {\n\treturn penniesToPounds(product.productFeeFixed);\n }\n if (product.productFeePerc) {\n\treturn floatToPercentage(product.productFeePerc);\n }\n return'£0'; \n}\n\nexport const getMinLoan = function(product) {\n return abbreviateNumber(product.minLoan/100);\n}\n\nexport const getMaxLoan = function(product) {\n return abbreviateNumber(product.maxLoan/100);\n}\t\n\n/**\n * Print the product criteria which consists of: \n * the ERCs, product rules, new build criteria and then expat criteria\n */\nexport const getProductCriteria = function(product) {\n return (\t\n\t\n );\t\t\t\t\n}\t\n\t\t\t\t\nconst getProductRules = function(product) {\n if (product.productRules?.length) {\n return (\n\t <>\n\t\t{product.productRules.map((criteria, i) => (\n\t\t\t
  • {criteria.ruleDescr}
  • \n\t ))}\n\t \n )\n }\n return null;\n}\t\n\nconst getERCs = function(product) {\n if (product.ERCs?.length) {\n\tlet output = 'ERCs: ';\n\t\n\tproduct.ERCs.forEach(function({rate, term}) {\n\t let numYears = Math.floor(term/12);\n\t for (let i=0; iNo Newbuilds)\t\n\t}\n\tif (product.newBuild==='NEW_BUILDS_ONLY') {\n\t return (
  • Only Newbuilds
  • )\t\n\t}\n\tif (product.newBuild==='NEW_BUILDS_PERMITTED') {\n\t return (
  • Newbuilds permitted
  • )\t\n\t}\n }\n\t\n return null;\n}\t\n\nconst getExpatCriteria = function(product) {\n if (product.expats) {\n\tif (product.expats==='NO_EXPATS') {\n\t return (
  • No Expats
  • )\t\n\t}\n\tif (product.expats==='EXPATS_ONLY') {\n\t return (
  • Only Expats
  • )\t\n\t}\n\tif (product.expats==='EXPATS_PERMITTED') {\n\t return (
  • Expats permitted
  • )\t\n\t}\n }\n\t\n return null;\n}\t\n\nexport default function Product({product, addToCompare, selectedForCompare, calculatorLink}) {\n\t\n const [criteriaOpen, setCriteriaOpen] = useState(false);\n const toggleCriteria \t \t = () => setCriteriaOpen(previousState => !previousState);\n\n //when product changes close the criteria\n useEffect(() => {\n\tsetCriteriaOpen(false);\n }, [product]);\n\n return(\n\t
    \n\t\t
    \n\t\t\t{\n\t\t\t addToCompare\n\t\t\t ?

    \n\t\t\t : null\n\t\t\t}\n\t\t\t

    Product Code: {product.productCode}

    \n\t\t\t\n\t\t\t{product.productTags?.length>0 && (\n\t\t\t
    \n\t\t\t\t{product.productTags.map((tag, i) => (\t\t\t\t\t \n\t\t\t \t

    {tag}

    \n\t\t\t\t))}\n\t\t\t
    \n\t\t\t)}\n\t\t\t\t\t\n\t\t\t

    {product.productName}

    \n\t\t
    \n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t \t\t\t\t
    \n\t\t\t\t\t\t
    Property type
    \n\t\t\t\t\t\t
    {getPropertyType(product)}
    \n\t\t\t\t\t
    \n\t \t\t\t\t
    \n\t\t\t\t\t\t
    Product type
    \n\t\t\t\t\t\t
    {product.productType}
    \n\t\t\t\t\t
    \n\t \t\t\t\t
    \n\t\t\t\t\t\t
    Max LTV
    \n\t\t\t\t\t\t
    {getMaxLTV(product)}
    \n\t\t\t\t\t
    \n\t \t\t\t\t
    \n\t\t\t\t\t\t
    Rate
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t \t\t\t\t
    \n\t\t\t\t\t\t
    Reversion rate
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t \t\t\t\t
    \n\t\t\t\t\t\t
    Product fee
    \n\t\t\t\t\t\t
    {getProductFee(product)}
    \n\t\t\t\t\t
    \n\t \t\t\t\t
    \n\t\t\t\t\t\t
    Min loan
    \n\t\t\t\t\t\t
    £{getMinLoan(product)}
    \n\t\t\t\t\t
    \n\t \t\t\t\t
    \n\t\t\t\t\t\t
    Max loan
    \n\t\t\t\t\t\t
    £{getMaxLoan(product)}
    \n\t\t\t\t\t
    \n\t \t\t\t\t
    \n\t\t\t\t\t\t
    Stress Rate
    \n\t\t\t\t\t\t
    {getStressRate(product)}
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t

    \n\t\t\t\t{\n\t\t\t\t calculatorLink\n\t\t\t\t ? BTL Calculator\n\t\t\t\t : null\n\t\t\t\t}\n\t\t\t
    \n\t\t
    \n\t\t\t\n\t\t\t
    \n\t\t\t\t

    Product criteria

    \n\t\t\t\t{getProductCriteria(product)}\n\t\t\t
    \n\t\t
    \n\t
    \n )\n}\n\n\n","import React from \"react\";\n\nexport default function RadioGroup({label, labelMobile, groupname, options, value, onChange, className}) {\n\n return(\n\t

    \n\t\t{\n\t\t label\n\t\t ? <>\n\t\t \t\t{label}\t\n\t\t \t\t{labelMobile ? labelMobile : label}\t\n\t\t \t\n\t\t : null\n\t\t}\n\t\t\n\t\t\t{options.map((option, i) => (\n\t\t\t\t\n\t\t ))}\t\n\t\t\t\t\t\t\t\t\n\t

    \n )\n}\n\n","export default __webpack_public_path__ + \"static/no-result-cc5268228ac254232c5c1410e460abbd.png\";","import React, { useState } from \"react\";\nimport {floatToPercentage, penniesToPounds} from '../../utils/formatNumbers'\nimport ErrorIcon from \"../../assets/svg/inline/ic_error.svg\"\nimport InfoIcon from \"../../assets/svg/inline/ic_info.svg\"\nimport CloseIcon from \"../../assets/svg/inline/ic_close.svg\"\nimport { getRate } from '../products/Product';\n\nexport default function MaxLoanAmountResponse({response, product}) {\n\t\n const [showInfoPopup, setShowInfoPopup] = useState(false);\n \n const meetsRequirements = function() {\n\treturn (response.ICR>=response.minICR);\n }\n\n return(\n\t
    \n\t\t
    \n\t\t\t

    {product.productName}

    \n\t\t\t

    Rate:

    \n\t\t\t

    {product.productCode}

    \n\t \t
    \n\t {\n\t\tresponse.failureReasons?.length>0\n\t\t?
    \n\t\t\t
    \n\t\t\t\t{\n\t\t\t\t response.failureContext\n\t\t\t\t ?

    {response.failureContext}

    \n\t\t\t\t : null\n\t\t\t\t}\n\t\t\t\t{response.failureReasons.map((message, i) => (\n\t\t\t\t

    {message}

    \t\t\t\t\t\t\t \t\t\n\t\t\t\t))}\n\t\t\t\t

    Based on the inputs provided, we cannot lend to you on this product

    \n\t\t\t
    \n\t\t
    \n\t\t:
    \n\t\t\t{\n\t\t\t (response.ICR && response.minICR)\n\t\t\t ? <>\n\t\t\t\t

    \n\t\t\t\t Based on the max possible loan amount, \n\t\t\t\t ICR is {floatToPercentage(response.ICR)}, \n\t\t\t\t which is \n\t\t\t\t {\n\t\t\t\t\t meetsRequirements()\n\t\t\t\t\t ? higher \n\t\t\t\t\t : lower \n\t\t\t\t }\n\t\t\t\t than the minimum ICR ({floatToPercentage(response.minICR)}).\n\t\t\t\t

    \n\t\t\n\t\t\t\t
    \n\t\t\t\t \t

    \t\n\t\t\t \t

    {penniesToPounds(response.maxLoanAmount)}

    \n\t\t\t \t{showInfoPopup && (\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    The maximum loan amount before any fees are added

    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t)}\n\t\t\t \t
    \n\t\t\t\t
    \n\t\t\t\t \t

    Product fee: {penniesToPounds(response.productFeeAmount)}

    \n\t\t\t\t \t

    Admin fee: {penniesToPounds(response.adminFee)}

    \n\t\t\t\t \t

    Valuation fee: {response.valuationFee === null ? \"Quote required\" : penniesToPounds(response.valuationFee)}

    \n\t\t\t \t
    \n\t\t\t\t\n\t\t\t : null\n\t\t\t}\n\t\n\t\t
    \n\t }\t\t\t\t\t\t\t \n\t
    \n )\n}\n\n\n","import React from \"react\";\nimport {floatToPercentage, penniesToPounds} from '../../utils/formatNumbers'\nimport ErrorIcon from \"../../assets/svg/inline/ic_error.svg\"\nimport { getRate } from '../products/Product';\n\nexport default function MinRentalIncomeResponse({response, product}) {\n\t\n const meetsRequirements = function() {\n\treturn (response.LTV<=response.maxLTV);\n }\n\n return(\n\t
    \n\t\t
    \n\t\t\t

    {product.productName}

    \n\t\t\t

    Rate:

    \n\t\t\t

    {product.productCode}

    \n\t \t
    \n\t \t
    0 ? 'bottom failed' : 'bottom'}>\n\t\t {\n\t\t\t (response.LTV && response.maxLTV)\n\t\t\t ?

    \n\t\t\t\t LTV is {floatToPercentage(response.LTV)}, \n\t\t\t\t which is \n\t\t\t\t {\n\t\t\t\t\tmeetsRequirements()\n\t\t\t\t\t? lower \n\t\t\t\t\t: higher \n\t\t\t\t }\n\t\t\t\t than the maximum LTV ({floatToPercentage(response.maxLTV)})

    \n\t\t\t : null\n\t\t }\n\t\t\n\t\t {\n\t\t\tresponse.isProductAvailable && response.minRentalIncome\n\t\t\t? <>\n\t\t\t\t
    \n\t\t\t \t

    Min monthly rental income required

    \n\t\t\t \t

    {penniesToPounds(response.minRentalIncome)}

    \n\t\t\t \t
    \n\t\t\t\t
    \n\t\t\t\t \t

    Product fee: {penniesToPounds(response.productFeeAmount)}

    \n\t\t\t\t \t

    Admin fee: {penniesToPounds(response.adminFee)}

    \n\t\t\t\t \t

    Valuation fee: {response.valuationFee === null ? \"Quote required\" : penniesToPounds(response.valuationFee)}

    \n\t\t\t \t
    \n\t\t \t \n\t\t\t:
    \n\t\t\t\t{\n\t\t\t\t response.failureContext\n\t\t\t\t ?

    {response.failureContext}

    \n\t\t\t\t : null\n\t\t\t\t}\t\t\t\t\n\t\t\t\t{response.failureReasons.map((message, i) => (\n\t\t\t\t

    {message}

    \t\t\t\t\t\t\t \t\t\n\t\t\t\t))}\n\t\t\t\t

    Based on the inputs provided, we cannot lend to you on this product

    \n\t\t\t
    \n\t\t }\n\t \t
    \n
    \n )\n}\n\n\n","import React from \"react\";\nimport { Link } from \"gatsby\"\nimport Button from \"../Button\"\nimport BackIcon from \"../../assets/svg/inline/ic_chevron-down.svg\"\n\nexport default function ResponseFooter({page, parentLink, scrollToForm, goBack}) {\n\t\n const dipLink = page?.calculator?.dipLink ? page.calculator.dipLink : '/';\n const lendingCriteriaLink = page?.calculator?.lendingCriteriaLink ? page.calculator.lendingCriteriaLink : '/';\t\n\n /**\n * Print the current screen\n */\n const print = function() {\n\tif (window) {\n\t\twindow.print();\n\t}\n }\n\n return(\n\t<>\n\t

    Remember to check the product criteria and our general lending criteria before starting a DIP to ensure the applicant is eligible for the product.

    \n\t
    \n\t\t {\n\t\t parentLink\n\t\t ?

    \n\t\t : null\n\t\t }\n\t\t

    \n\t\t

    \n\t
    \n \n )\n}\n\n\n","import React, { useState, useRef } from \"react\"\nimport { graphql, navigate } from \"gatsby\"\nimport Layout from '../components/Layout' \nimport Hero from '../components/widgets/Hero' \nimport Product from '../components/products/Product' \nimport BackIcon from \"../assets/svg/inline/ic_chevron-down.svg\"\nimport RadioGroup from \"../components/products/RadioGroup\"\nimport NoResultImg from \"../assets/img/calculator/no-result.png\"\nimport Seo from 'gatsby-plugin-wpgraphql-seo';\nimport MaxLoanAmountResponse from '../components/calculator/MaxLoanAmountResponse'\nimport MinRentalIncomeResponse from '../components/calculator/MinRentalIncomeResponse'\nimport ResponseFooter from '../components/calculator/ResponseFooter'\nimport WarningIcon from \"../assets/svg/inline/ic_warning.svg\"\nimport { getPropertyType, getMaxLTV, getRate, getReversionRate, getProductFee, getMinLoan, getMaxLoan, getStressRate, getProductCriteria } from '../components/products/Product';\n\nexport default function Calculator({ location, data }) {\n const page = data.allWpPage.nodes[0];\n const products = location?.state?.products;\n const parentLink = page?.wpParent?.node?.uri;\n\n //for controlling form elements\n//'Max loan amount','Min monthly rental income'\n const defaultFormValues = {type:'Max loan', estimatedValue:'',estimatedIncome:'',netLoanAmount:'',applicationType:'',addFeeToLoan: 'No', firstTimeLandlord: 'No', adjCommercial: 'No', higherRateTaxpayer: 'No'}\n const [formValues, setFormValues] = useState(defaultFormValues);\n const [loading, setLoading] = useState(false);\n const [response, setResponse] = useState(false);\n const [gotError, setGotError] = useState(false);\n const [showExtraQuestion, setShowExtraQuestion] = useState(false);\n const [showProductDetails, setShowProductDetails] = useState(false);\n const form = useRef();\n const results = useRef();\n\n /**\n * Gets a number from string input\n */\n const getNumberFromString = function(value) {\n\t//remove any characters we don't want\n\tvalue = value.replace(/[\\D\\s_]+/g, \"\");\n\t\n\t//cast to integer\n\tvalue = value ? parseInt( value, 10 ) : 0;\n\t\n\treturn value;\n }\n\n /**\n * format numeric inputs with commas etc\n */\n const formatNumericInput = function(value) {\n\t\n\tvalue = getNumberFromString(value);\n\t\n\t//format\n\treturn value.toLocaleString( \"en-GB\" );\t\n }\n\n /**\n * Called when a form field changes\n */\n const handleChange = function(event) {\n\n let newValues = { ...formValues },\n\t\tvalue = event.target.value;\n\t\n\t//format numeric inputs\n\tif (event.target.className==='text') {\n\t\tvalue = formatNumericInput(value);\n\t}\n\n\tnewValues[event.target.name] = value;\n\t\n\tif (event.target.name==='applicationType') {\n\t\tsetShowExtraQuestion(value==='INDIVIDUAL');\n\t}\n\t\n\tsetFormValues(newValues);\n\t\n\tsetResponse(false);\n\tsetGotError(false);\n }\n\n /*\n * When the form is submitted via the enter key\n */\n const handleSubmit = function(event) {\n event.preventDefault();\n\tsubmitForm();\n }\n\n /**\n * when the form is submitted via the submit button\n * - we do a dummy submit for now\n */\n async function submitForm() {\n\t\n setLoading(true);\n\tsetResponse(false);\n\tsetGotError(false);\n\t\n\t//default request url is for the Minimum monthly rental income calculator\n\tlet apiUrl = process.env.GATSBY_CALCULATOR_API_INCOME || \"https://app.bbcenv.landbay.co.uk/marketingportal/affordabilityCalculator/minRentalIncome\";\n\t\n\t/*\n\texample request body for max loan amount:\n\t {\n\t \"productCode\":\"LVFJ7022003\",\n\t \"purchasePrice\": 25000000,\n\t \"estimatedMonthlyRent\": 100000,\n\t \"applicationType\": \"LIMITED_COMPANY\",\n\t \"addFeeToLoan\": true,\n\t \"allApplicantsFirstTimeLandlords\": false,\n\t \"adjCommercial\": false\n\t }\n\t\n\texample request body for min rental income:\n\t {\n\t \"productCode\": \"LVFJ7022003\",\n\t \"purchasePrice\": 25000000,\n\t \"netLoanAmount\": 15000000,\n\t \"applicationType\": \"LIMITED_COMPANY\",\n\t \"addFeeToLoan\": true,\n\t \"allApplicantsFirstTimeLandlords\": false,\n\t \"adjCommercial\": false\n\t }\n\t*/\n\tlet responses = [];\n\tfor (let i=0; i 2) {\n // if history is not empty, go back:\n navigate(-1);\n } else {\n // go to specified fallback url:\n window.history.replaceState(null, null, parentLink);\n }\n}\n\n return (\n \t\n \n\t
    \n\t \n\t
    \n\t
    \n\t\t
    \n\t\t\t{\n\t\t\t parentLink\n\t\t\t ? /*

    Back to our products

    */\n\t\t\t \t

    \n\t\t\t : null\n\t\t\t}\n\t\t\t

    {page.title}

    \n\t\t
    \n\t\t{\n\t\t products\n\t\t ? <>\n\t\t\t\t{products.length===1 && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    {products[0].productCode}

    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{showProductDetails && (\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t

    {products[0].productCode}

    \n\t\t\t\t\t\t\t\t\t\t

    {products[0].productName}

    \n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
    Property type{getPropertyType(products[0])}
    Product type{products[0].productType}
    Max LTV{getMaxLTV(products[0])}
    Rate\t\n\t\t\t\t\t\t\t\t\t\t\t\t
    Reversion rate\n\t\t\t\t\t\t\t\t\t\t\t\t
    Product fee{getProductFee(products[0])}
    Min loan£{getMinLoan(products[0])}
    Max loan£{getMaxLoan(products[0])}
    Stress Rate{getStressRate(products[0])}
    \n\t\t\t\t\t\t\t\t\t\t

    Product criteria

    \n\t\t\t\t\t\t\t\t\t\t{getProductCriteria(products[0])}\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t)}\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tformValues.type==='Max loan'\n\t\t\t\t\t\t\t\t\t\t?

    \n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\t\t\t:

    \n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\t\t}\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tshowExtraQuestion\n\t\t\t\t\t\t\t\t\t\t? \n\t\t\t\t\t\t\t\t\t\t: null\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t

    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{!loading && !response && !gotError && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tproducts.length===1\n\t\t\t\t\t\t\t\t?
    \n\t\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t formValues.type==='Max loan'\n\t\t\t\t\t\t\t\t\t ?

    Use our calculator to find out how much you can borrow

    \n\t\t\t\t\t\t\t\t\t :

    Use our calculator to find out your minimum monthly rental income

    \n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t:
    \n\t\t\t\t\t\t\t\t\t

    Selected Products

    \n\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t {products.map((product, i) => {\n\t\t\t\t\t\t\t\t\t\treturn (
    • \n\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t

      {product.productName}

      \n\t\t\t\t\t\t\t\t\t\t\t\t

      Rate:

      \n\t\t\t\t\t\t\t\t\t\t\t\t

      {product.productCode}

      \n\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t
    • );\n\t\t\t\t\t\t\t\t\t })}\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t }\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t\t{/*loading animation?*/}\n\t\t\t\t\t\t{loading && (\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t\t{gotError && (\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t

    There was a technical error when running the calculation

    \n\t\t\t\t\t\t\t

    Please try again later

    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t\t{\n\t\t\t\t\t\t (response && !gotError)\n\t\t\t\t\t\t ?
    \n\t\t\t\t\t\t \t

    Result

    \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t \t {response.map((response1, i) => {\n\t\t\t\t\t\t\t\t return (
    • \n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t formValues.type==='Max loan'\n\t\t\t\t\t\t\t\t\t ? \n\t\t\t\t\t\t\t\t\t : \n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t
    • );\n\t\t\t\t\t\t\t\t })}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t : null\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\n\t\t : <>\n\t\t\t

    No product selected. Please choose a product from our products page to use the calculator

    \n\t\t\t {\n\t\t\t\tparentLink\n\t\t\t\t?

    \n\t\t\t\t: null\n\t\t\t }\n\t\t\t\n\t\t}\n\t\t\n\t
    \n
    \n )\n}\nexport const query = graphql`\n query($id: String!) {\n allWpPage(filter: { id: { eq: $id } }) {\n nodes {\n title\n content\n\t calculator {\n\t lendingCriteriaLink\n\t dipLink\n\t }\n\t\twpParent {\n node {\n uri\n }\n }\n ...PageSEOFragment\n }\n }\n }\n`","\n/**\n * Format supplied number using abbreviations:\n * 10000000 = 10M\n * 12000 = 12k\n */\nexport const abbreviateNumber = function(number) {\n\t\t\n\tconst SI_SYMBOL = [\"\", \"k\", \"M\", \"B\", \"T\", \"P\", \"E\"];\n\t\n // what tier? (determines SI symbol)\n let tier = Math.log10(Math.abs(number)) / 3 | 0;\n\n // if zero, we don't need a suffix\n if (tier === 0) {\n\t\treturn number;\n\t}\n\n // get suffix and determine scale\n let suffix = SI_SYMBOL[tier];\n let scale = Math.pow(10, tier * 3);\n\n // scale the number\n\tlet scaled = number / scale;\n\t// format number and add suffix\n\tif (number%scale === 0) {\n\t\treturn scaled + suffix;\n\t} else {\n\t\t//this is to prevent 999k being displayed as 100.0k\n\t\tif (((scaled.toFixed(1)*10)%10)===0) {\n\t\t\treturn scaled.toFixed(0) + suffix;\n\t\t}\n \treturn scaled.toFixed(1) + suffix;\n\t}\t\n}\n\n/**\n * Formats a float like 0.0345 as a percentage like 3.45\n * Includes a fix for javascript precision issue\n */\nexport const floatToPercentage = function(number) {\n if (number===null) {\n\treturn '';//some products have 'null' for the some fields\t\n }\n number = number*100;\n //this is to get round the javascript precision bug where 0.034*100 = 3.4000000000000004\n //ref: https://stackoverflow.com/questions/21472828/javascript-multiplying-by-100-giving-weird-result\n if (countDecimals(number)>0) {\n\tnumber = number.toFixed(2);\n }\n if (number.toString().indexOf('.00')!==-1) {\n\tnumber = parseInt(number.split(\".\")[0]);\n }\n return number+'%';\n}\n\n/**\n * count the number of decimal places in a float\n */\nconst countDecimals = function(value) {\n if (Math.floor(value) === value) return 0;\n return value.toString().split(\".\")[1].length || 0; \n}\n\n\n/**\n * formats a numebr like 10000000 to 10,000,000\n */\nexport const numberWithCommas = function(number) {\n return number.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n}\n\n/**\n * Converts an amount in pennies to pounds\n */\nexport const penniesToPounds = function(number) {\n\t\n number = number/100;\n if (countDecimals(number)>0) {\n\tnumber = number.toFixed(2);\n }\n\n return '£'+numberWithCommas(number);\n}","var React = require('react');\n\nfunction IcChevronDown (props) {\n return React.createElement(\"svg\",props,React.createElement(\"path\",{\"style\":{\"fill\":\"currentColor\"},\"d\":\"M0,1.3l8,8l8-8L14.7,0L8,6.7L1.3,0L0,1.3z\"}));\n}\n\nIcChevronDown.defaultProps = {\"version\":\"1.1\",\"id\":\"Layer_1\",\"x\":\"0px\",\"y\":\"0px\",\"viewBox\":\"0 0 16 9.3\",\"style\":{\"enableBackground\":\"new 0 0 16 9.3\"},\"xmlSpace\":\"preserve\"};\n\nmodule.exports = IcChevronDown;\n\nIcChevronDown.default = IcChevronDown;\n","var React = require('react');\n\nfunction IcError (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"path\",{\"d\":\"M14.872 7.99988L12 10.8719L9.128 7.99988L8 9.12788L10.872 11.9999L8 14.8719L9.128 15.9999L12 13.1279L14.872 15.9999L16 14.8719L13.128 11.9999L16 9.12788L14.872 7.99988Z\",\"fill\":\"#F51C5A\",\"key\":0}),React.createElement(\"path\",{\"d\":\"M2.85 8.23959L8.20982 2.85H15.6843L21.15 8.24425V15.7604L15.7902 21.15H8.20508L2.85 15.8668V8.23959Z\",\"stroke\":\"#F51C5A\",\"strokeWidth\":\"1.7\",\"key\":1})]);\n}\n\nIcError.defaultProps = {\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\"};\n\nmodule.exports = IcError;\n\nIcError.default = IcError;\n","var React = require('react');\n\nfunction IcInfo (props) {\n return React.createElement(\"svg\",props,React.createElement(\"g\",{\"id\":\"Icon/Outlined/Action/Info_Circle\"},React.createElement(\"path\",{\"id\":\"Union\",\"fillRule\":\"evenodd\",\"clipRule\":\"evenodd\",\"d\":\"M1.33325 7.99992C1.33325 4.31837 4.31837 1.33325 7.99992 1.33325C11.6815 1.33325 14.6666 4.31837 14.6666 7.99992C14.6666 11.6815 11.6815 14.6666 7.99992 14.6666C4.31837 14.6666 1.33325 11.6815 1.33325 7.99992ZM2.4642 7.99992C2.4642 11.0565 4.94337 13.5356 7.99992 13.5356C11.0565 13.5356 13.5356 11.0565 13.5356 7.99992C13.5356 4.94337 11.0565 2.4642 7.99992 2.4642C4.94337 2.4642 2.4642 4.94337 2.4642 7.99992ZM8.05221 4.66659C7.66005 4.66659 7.33325 4.99338 7.33325 5.38554C7.33325 5.7777 7.66005 6.10449 8.05221 6.10449C8.44436 6.10449 8.77116 5.7777 8.77116 5.38554C8.77116 4.99338 8.44436 4.66659 8.05221 4.66659ZM8.64044 11.3333V6.95417H7.46397V11.3333H8.64044Z\",\"fill\":\"#262626\"})));\n}\n\nIcInfo.defaultProps = {\"width\":\"16\",\"height\":\"16\",\"viewBox\":\"0 0 16 16\",\"fill\":\"none\"};\n\nmodule.exports = IcInfo;\n\nIcInfo.default = IcInfo;\n","var React = require('react');\n\nfunction IcWarning (props) {\n return React.createElement(\"svg\",props,React.createElement(\"path\",{\"d\":\"M22.3993 20.0625L12.6493 3.1875C12.504 2.93672 12.2532 2.8125 12 2.8125C11.7469 2.8125 11.4938 2.93672 11.3508 3.1875L1.60083 20.0625C1.31254 20.5641 1.67348 21.1875 2.25004 21.1875H21.75C22.3266 21.1875 22.6875 20.5641 22.3993 20.0625ZM11.25 9.75C11.25 9.64687 11.3344 9.5625 11.4375 9.5625H12.5625C12.6657 9.5625 12.75 9.64687 12.75 9.75V14.0625C12.75 14.1656 12.6657 14.25 12.5625 14.25H11.4375C11.3344 14.25 11.25 14.1656 11.25 14.0625V9.75ZM12 18C11.7057 17.994 11.4253 17.8728 11.2193 17.6625C11.0132 17.4522 10.8978 17.1695 10.8978 16.875C10.8978 16.5805 11.0132 16.2978 11.2193 16.0875C11.4253 15.8772 11.7057 15.756 12 15.75C12.2944 15.756 12.5747 15.8772 12.7808 16.0875C12.9869 16.2978 13.1023 16.5805 13.1023 16.875C13.1023 17.1695 12.9869 17.4522 12.7808 17.6625C12.5747 17.8728 12.2944 17.994 12 18Z\",\"fill\":\"#FECC37\"}));\n}\n\nIcWarning.defaultProps = {\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\"};\n\nmodule.exports = IcWarning;\n\nIcWarning.default = IcWarning;\n"],"names":["getPropertyType","product","propertyCategories","join","getMaxLTV","floatToPercentage","maxLtv","getRate","rate","hasOwnProperty","baseRate","__html","getReversionRate","reversionRate","reversionBaseRate","getStressRate","stressRate","getProductFee","productFeeFixed","penniesToPounds","productFeePerc","getMinLoan","abbreviateNumber","minLoan","getMaxLoan","maxLoan","getProductCriteria","getERCs","getProductRules","getNewBuildCriteria","getExpatCriteria","productRules","length","map","criteria","i","key","ruleDescr","ERCs","output","forEach","term","numYears","Math","floor","newBuild","expats","Product","addToCompare","selectedForCompare","calculatorLink","useState","criteriaOpen","setCriteriaOpen","useEffect","className","type","onClick","productCode","productTags","tag","productName","productType","dangerouslySetInnerHTML","previousState","Link","to","state","products","isOpen","RadioGroup","label","labelMobile","groupname","options","value","onChange","option","role","name","checked","MaxLoanAmountResponse","response","showInfoPopup","setShowInfoPopup","failureReasons","failureContext","message","ICR","minICR","maxLoanAmount","class","productFeeAmount","adminFee","valuationFee","MinRentalIncomeResponse","LTV","maxLTV","isProductAvailable","minRentalIncome","ResponseFooter","page","parentLink","scrollToForm","goBack","dipLink","calculator","lendingCriteriaLink","Button","link","url","title","target","window","print","Calculator","location","data","allWpPage","nodes","wpParent","node","uri","estimatedValue","estimatedIncome","netLoanAmount","applicationType","addFeeToLoan","firstTimeLandlord","adjCommercial","higherRateTaxpayer","formValues","setFormValues","loading","setLoading","setResponse","gotError","setGotError","showExtraQuestion","setShowExtraQuestion","showProductDetails","setShowProductDetails","form","useRef","results","getNumberFromString","replace","parseInt","handleChange","event","newValues","toLocaleString","formatNumericInput","apiUrl","process","responses","args","purchasePrice","allApplicantsFirstTimeLandlords","applicantHigherRateTaxpayer","estimatedMonthlyRent","sendRequest","response1","push","scrollToResults","fetch","method","headers","body","JSON","stringify","ok","json","content","console","log","document","innerWidth","scrollTo","top","current","offsetTop","behavior","history","navigate","replaceState","Layout","post","Hero","widget","layout","onSubmit","preventDefault","submitForm","ref","htmlFor","id","placeholder","required","src","NoResultImg","alt","number","tier","log10","abs","suffix","scale","pow","scaled","toFixed","countDecimals","toString","indexOf","split","numberWithCommas","React","IcChevronDown","props","createElement","defaultProps","module","exports","default","IcError","IcInfo","IcWarning"],"sourceRoot":""}