{"version":3,"sources":["webpack:///./node_modules/core-js/internals/engine-is-ie-or-edge.js","webpack:///./src/components/popular-searches/popular-searches.utils.js","webpack:///./src/components/popular-searches/popular-searches.component.js","webpack:///./src/components/what-has-changed/what-has-changed.utils.js","webpack:///./src/components/what-has-changed/what-has-changed.component.js","webpack:///./src/components/accordion-group/accordion-group.component.js","webpack:///./src/components/filter-bar/filter-bar.component.js","webpack:///./src/pages/criteria.js","webpack:///./src/components/faq-panel/faq-panel.component.js","webpack:///./node_modules/core-js/internals/engine-ff-version.js","webpack:///./src/assets/download.inline.svg","webpack:///./node_modules/core-js/modules/es.regexp.to-string.js","webpack:///./src/data/faq.data.js","webpack:///./src/assets/chevron-left.inline.svg","webpack:///./node_modules/core-js/modules/es.string.trim.js","webpack:///./node_modules/core-js/modules/es.array.sort.js","webpack:///./node_modules/core-js/internals/engine-webkit-version.js","webpack:///./src/components/general-anchor/general-anchor.component.js","webpack:///./src/components/anchor-list/anchor-list.component.js","webpack:///./src/components/tabs/tabs.component.js","webpack:///./node_modules/core-js/modules/es.array.join.js","webpack:///./node_modules/core-js/internals/array-sort.js","webpack:///./node_modules/core-js/internals/string-trim-forced.js","webpack:///./src/components/affordability-calculator/affordability-calculator.component.js"],"names":["UA","module","exports","test","POPULAR_SEARCH_SCHEME","title","searchKeyWord","PopularSearches","_ref","setSearch","_ref$popularSearches","popularSearches","_onClick","onClick","React","createElement","className","length","map","_ref2","key","GeneralButton","isBordered","ariaLabel","concat","type","WHAT_HAS_CHANGED_FILTER","lastUpdatedAt","noChange","stressRate","variableIncome","hasPdf","offerExtension","links","loanToIncome","productSwitch","remortgage","link1","link1Href","WHC_MONTHS","d","termByTitle","Object","assign","apply","_toConsumableArray","item","_defineProperty","WhatHasChanged","setFilter","_ref$filterItems","filterItems","isColumn","isReroute","menuContext","useContext","MenuContext","link2","link2Href","lendingIntoRetirement","partAndPart","role","aria-label","inert","isMenuOpen","Fragment","window","open","AccordionGroup","_ref$accordionList","accordionList","onAccordionClick","id","sort","accordion","accordionNext","children","target","Accordion","child","i","cloneElement","FilterBar","filterKey","_useState2","_slicedToArray","useState","filterValue","setFilterValue","useEffect","toLowerCase","onSubmit","event","preventDefault","htmlFor","name","value","placeholder","onChange","Result","result","searchTerm","aria-atomic","resultWord","Criteria","props","setFilterKey","_useState4","selectedTabIndex","setSelectedTabIndex","_useState6","foundItemsCount","setFoundItemsCount","_useState8","tabData","setTabData","scrollToToggle","useCallback","scrollId","URL","location","searchParams","get","setTimeout","divElement","document","getElementById","setAttribute","scrollIntoView","behavior","_typeof","history","pushState","onLocationChange","_props$location","pathname","search","includes","trim","updateFilter","addEventListener","removeEventListener","url","set","delete","filter","addHandler","querySelectorAll","forEach","ancor","onclick","p","getAttribute","tab","oversizedTable","table1","querySelector","table2","classList","add","remove","useLocation","currentTab","utag","triggerTealiumEvent","tealiumEvent","pageUrl","href","pageType","pageName","pageSubCategory","rawDataLayer","changeTab","index","filteredData","RESIDENTAL_DATA_SCHEME","foundItems","reduce","acc","accordionGroup","filterTerm","push","_objectSpread","buyToLetAccordionList","e","tags","mergedTags","splitApplicantData","split","splitBorrowingData","toString","decodeURIComponent","replace","handleClick","_ref3","eventContent","eventAction","eventCategory","Layout","metaDescription","clickedText","Tabs","activeTabIndex","setActiveTab","tabs","tabContent","groupData","_extends","Link","to","AffordabilityCalculator","FAQPanel","_ref$faqItems","faqItems","FAQ_QUESTIONS_SCHEME","_ref$title","GeneralAnchor","isBlank","rel","isLink","noClass","AnchorList","anchorItems","additionalClassName","firefox","match","DownloadInline","defaultProps","default","redefine","anObject","fails","flags","RegExpPrototype","RegExp","prototype","nativeToString","NOT_GENERIC","call","source","INCORRECT_NAME","R","this","String","rf","undefined","unsafe","ChevronLeftInline","$","$trim","proto","forced","forcedStringTrimMethod","aFunction","toObject","toLength","internalSort","arrayMethodIsStrict","FF","IE_OR_EDGE","V8","WEBKIT","nativeSort","FAILS_ON_UNDEFINED","FAILS_ON_NULL","STRICT_METHOD","STABLE_SORT","code","chr","fromCharCode","k","v","a","b","charAt","comparefn","array","itemsLength","items","arrayLength","x","y","getSortCompare","webkit","_ref$isLink","_ref$ariaLabel","referrer","isRed","downloadTitle","additionalClass","_ref$noClass","_extractTextFromChildren","isValidElement","Array","isArray","join","textContent","commonData","events","pop","eventData","download","isProductFinder","isDownload","rest","_objectWithoutProperties","_excluded","DownloadIcon","src","alt","_ref$showPagination","showPagination","_ref$activeTabIndex","tabItems","emptyHash","setEmptyHashh","windowWidth","setWindowWidth","innerWidth","scrollPosition","offsetLeft","parentNode","offsetWidth","scrollLeft","indexOf","aria-selected","aria-controls","onKeyDown","keyCode","activateTab","ChevronLeft","ChevronRight","IndexedObject","toIndexedObject","nativeJoin","ES3_STRINGS","separator","floor","Math","mergeSort","middle","insertionSort","merge","slice","element","j","left","right","llength","rlength","lindex","rindex","whitespaces","METHOD_NAME","calculatorType","config","home","criteria","_config$pageName","Calculator","NewWindow"],"mappings":"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","file":"component---src-pages-criteria-js-fbdd2a1e426fb2d7c433.js","sourcesContent":["var UA = require('../internals/engine-user-agent');\n\nmodule.exports = /MSIE|Trident/.test(UA);\n","const POPULAR_SEARCH_SCHEME = [\n {\n title: 'Income from self-employment',\n searchKeyWord: 'income self-employment',\n },\n {\n title: 'Foreign nationals',\n searchKeyWord: 'foreign nationals',\n },\n {\n title: 'Overseas customers',\n searchKeyWord: 'overseas customers',\n },\n {\n title: 'Buy to Lets in background',\n searchKeyWord: 'buy to lets in background',\n },\n {\n title: 'Second property',\n searchKeyWord: 'econd property',\n },\n];\n\nexport default POPULAR_SEARCH_SCHEME;","import React from \"react\";\n\nimport GeneralButton from \"../generalButton/generalButton.component\";\n\nimport POPULAR_SEARCH_SCHEME from \"./popular-searches.utils\";\n\nconst PopularSearches = ({ setSearch, popularSearches = POPULAR_SEARCH_SCHEME, onClick }) => (\n
\n

Popular searches

\n

Most searched terms recently in the site

\n {popularSearches.length && (\n \n )}\n
\n);\n\nexport default PopularSearches;\n","const WHAT_HAS_CHANGED_FILTER = [\n {\n title: \"December 2024\",\n lastUpdatedAt: \"december\",\n noChange: true,\n stressRate: false,\n variableIncome: false,\n hasPdf: false,\n offerExtension: false,\n links:false,\n },\n {\n title: \"November 2024\",\n lastUpdatedAt: \"november_2024\",\n noChange: true,\n stressRate: false,\n variableIncome: false,\n loanToIncome: false,\n productSwitch: false,\n remortgage: false,\n hasPdf: false,\n offerExtension: false,\n links: false,\n link1:\"Flats and new builds\",\n link1Href:\"/pdfs/Aug_2024_Flats_New_Builds.pdf\",\n },\n {\n title: \"October 2024\",\n lastUpdatedAt: \"october_2024\",\n noChange: false,\n stressRate: false,\n variableIncome: false,\n loanToIncome: false,\n productSwitch: false,\n remortgage: false,\n hasPdf: false,\n offerExtension: false,\n links:true,\n link1:\"Capitalising fees\",\n link1Href:\"/pdfs/Capitalising_Fees.pdf\",\n },\n];\n\nexport default WHAT_HAS_CHANGED_FILTER;\n\n// What Has Changed utils for criteria filter\nexport const WHC_MONTHS = WHAT_HAS_CHANGED_FILTER.map((d) => d.title);\n\nexport const WHC_TERMS = WHAT_HAS_CHANGED_FILTER.map((d) => d.lastUpdatedAt);\n\nexport const getTermByTitle = (title) => termByTitle[title];\n\nexport const getTitleByTerm = (term) => titleByTerm[term];\n\nlet titleByTerm = Object.assign({}, ...WHAT_HAS_CHANGED_FILTER.map((item) => ({ [item.lastUpdatedAt]: item.title })));\n\nlet termByTitle = Object.assign({}, ...WHAT_HAS_CHANGED_FILTER.map((item) => ({ [item.title]: item.lastUpdatedAt })));\n","import React, { useContext } from \"react\";\n\nimport { MenuContext } from \"../../context\";\n\nimport WHAT_HAS_CHANGED_FILTER from \"./what-has-changed.utils\";\n\nconst WhatHasChanged = ({ setFilter, filterItems = WHAT_HAS_CHANGED_FILTER, isColumn, isReroute, onClick }) => {\n const menuContext = useContext(MenuContext);\n return (\n
\n

What has changed?

\n \n
\n );\n};\n\nexport default WhatHasChanged;\n","import React from \"react\";\nimport Accordion from \"../accordion/accordion.component\";\n\nconst AccordionGroup = ({ accordionList = [], title, onAccordionClick }) => (\n
\n

{title}

\n {accordionList.length > 0 &&\n accordionList\n .sort((accordion, accordionNext) => {\n if (accordion.title < accordionNext.title) return -1;\n if (accordion.title > accordionNext.title) return 1;\n return 0;\n })\n .map(({ id, title, children, target }) => (\n onAccordionClick(title)}>\n {children.map((child, i) => React.cloneElement(child, { key: i }))}\n \n ))}\n
\n);\n\nexport default AccordionGroup;\n","import React, { useEffect, useState, useContext } from 'react';\n\nimport { MenuContext } from '../../context'\n\nimport GeneralButton from '../generalButton/generalButton.component'\n\nconst FilterBar = ({ setFilter, filterKey }) => {\n const menuContext = useContext(MenuContext);\n\n const [filterValue, setFilterValue] = useState('');\n\n useEffect(() => {\n setFilterValue(filterKey.toLowerCase())\n }, [filterKey])\n\n const onReset = () => {\n setFilterValue('');\n setFilter('');\n }\n\n const onSubmit = event => {\n event.preventDefault();\n setFilter((filterValue.toLowerCase()) || filterKey);\n }\n\n const onChange = event => {\n const { value } = event.target;\n setFilterValue(value);\n\n if (!value) {\n setFilter('');\n }\n }\n\n return (\n
\n \n
\n \n \n onSubmit(event)}\n ariaLabel='Filter the criterias'\n >\n \n \n {\n (filterValue.length > 0 || filterKey.length > 0) &&\n \n Reset\n \n }\n\n
\n
\n );\n};\n\nexport default FilterBar;","import React, { useContext, useEffect, useState, useCallback } from \"react\";\nimport { Link } from \"gatsby\";\nimport Layout from \"../components/layout\";\nimport FAQPanel from \"../components/faq-panel/faq-panel.component\";\nimport AffordabilityCalculator from \"../components/affordability-calculator/affordability-calculator.component\";\nimport PopularSearches from \"../components/popular-searches/popular-searches.component\";\nimport WhatHasChanged from \"../components/what-has-changed/what-has-changed.component\";\nimport AccordionGroup from \"../components/accordion-group/accordion-group.component\";\nimport FilterBar from \"../components/filter-bar/filter-bar.component\";\nimport Tabs from \"../components/tabs/tabs.component\";\nimport { MenuContext } from \"../context\";\nimport { RESIDENTAL_DATA_SCHEME } from \"../data/criteria.data\";\nimport { WHC_MONTHS, getTermByTitle } from \"../components/what-has-changed/what-has-changed.utils\";\nimport \"../styles/app.scss\";\nimport { triggerTealiumEvent } from \"../utils/tealiumUtils\";\nimport { useLocation } from \"@reach/router\";\n\nconst resultWord = (result) => {\n return result < 2 ? \"result\" : \"results\";\n};\n\nconst Result = ({ result, searchTerm }) => (\n

\n {result !== null && searchTerm !== \"\" ? (\n <>\n Showing {result} {resultWord(result)} for {searchTerm}\n \n ) : null}\n

\n);\n\nconst decodeQueryParam = (param) => decodeURIComponent(param.replace(/\\+/g, \" \"));\n\nexport default function Criteria(props) {\n const [filterKey, setFilterKey] = useState(\"\");\n const [selectedTabIndex, setSelectedTabIndex] = useState(0);\n const [foundItemsCount, setFoundItemsCount] = useState(0);\n const [tabData, setTabData] = useState([[], []]);\n\n const menuContext = useContext(MenuContext);\n\n const scrollToToggle = useCallback(() => {\n let url = new URL(window.location);\n let scrollId = url.searchParams.get(\"p\") || \"\";\n // scroll to accordion\n if (scrollId) {\n // EDGE CASE: after first #key-word accordion click,\n // click works like redirect and reset tab to 0;\n // so we need to wait after tab change\n setTimeout(() => {\n const divElement = document.getElementById(scrollId);\n if (divElement) {\n divElement.setAttribute(\"open\", true);\n setTimeout(() => {\n divElement.scrollIntoView({ behavior: \"smooth\" });\n }, 500);\n }\n }, 600);\n\n if (typeof window !== `undefined`) {\n window.history.pushState(\"criteria\", \"Title\", \"/criteria\");\n }\n }\n }, []);\n\n /*\n const crossSiteLinking = useEffect(() => {\n if (typeof window !== `undefined`) {\n let url = new URL(window.location);\n let scrollId = url.searchParams.get(\"p\") || \"\";\n // scroll to accordion\n if (scrollId) {\n // EDGE CASE: after first #key-word accordion click,\n // click works like redirect and reset tab to 0;\n // so we need to wait after tab change\n setTimeout(() => {\n const divElement = document.getElementById(scrollId);\n if (divElement) {\n divElement.setAttribute(\"open\", true);\n setTimeout(() => {\n divElement.scrollIntoView({ behavior: \"smooth\" });\n }, 500);\n }\n }, 600);\n }\n window.history.pushState(\"criteria\", \"Title\", \"/criteria\");\n }\n }, []);\n*/\n\n const onLocationChange = useCallback(\n (event) => {\n let url = new URL(document.location);\n let filterValue = url.searchParams.get(\"filter\") || \"\";\n setFilterKey(filterValue);\n scrollToToggle();\n /* crossSiteLinking(); */\n },\n [scrollToToggle]\n );\n\n useEffect(() => {\n let { pathname, search } = props.location;\n if (pathname.includes(\"/criteria\") && search.trim() === \"\") {\n updateFilter(\"\");\n }\n }, [props.location]);\n\n useEffect(() => {\n window.addEventListener(\"popstate\", onLocationChange);\n\n return () => {\n window.removeEventListener(\"popstate\", onLocationChange);\n };\n }, [onLocationChange]);\n\n const getFilterBar = () => ;\n\n const updateFilter = (filterValue) => {\n // update browser history\n const url = new URL(window.location);\n if (filterValue) {\n url.searchParams.set(\"filter\", filterValue);\n url.searchParams.delete(\"p\");\n url.searchParams.delete(\"tab\");\n window.history.pushState({ filter: filterValue }, \"\", url);\n } else {\n url.searchParams.delete(\"filter\");\n window.history.pushState({ filter: filterValue }, \"\", url);\n }\n\n // update filter\n setFilterKey(filterValue);\n };\n\n const addHandler = useCallback(() => {\n const ancors = [...document.querySelectorAll(`[data-accordion]`)];\n ancors.forEach(\n (ancor) =>\n (ancor.onclick = (event) => {\n event.preventDefault();\n let p = ancor.getAttribute(\"data-accordion\");\n let tab = ancor.getAttribute(\"data-tab\");\n const url = new URL(window.location);\n url.searchParams.set(\"p\", p);\n url.searchParams.set(\"tab\", tab);\n window.history.pushState({}, \"\", url);\n // need to change tab before scroll\n\n if (tab === \"buy-to-let\") {\n setSelectedTabIndex(1);\n } else {\n // residential tab\n setSelectedTabIndex(0);\n }\n scrollToToggle();\n })\n );\n }, [scrollToToggle]);\n\n const oversizedTable = useCallback(() => {\n let table1 = document.querySelector(\"#otc-1\");\n let table2 = document.querySelector(\"#otc-2\");\n\n if (table1) {\n table1.addEventListener(\"mouseenter\", function () {\n table1.classList.add(\"active\");\n });\n table1.addEventListener(\"mouseleave\", function () {\n table1.classList.remove(\"active\");\n });\n }\n if (table2) {\n table2.addEventListener(\"mouseenter\", function () {\n table2.classList.add(\"active\");\n });\n table2.addEventListener(\"mouseleave\", function () {\n table2.classList.remove(\"active\");\n });\n }\n }, []);\n\n const location = useLocation();\n\n useEffect(() => {\n setTimeout(() => {\n const url = new URL(window.location);\n const currentTab = url.searchParams.get(\"tab\");\n if (currentTab === \"buy-to-let\") {\n setSelectedTabIndex(1);\n } else {\n // residential tab\n setSelectedTabIndex(0);\n }\n }, 500);\n\n if (typeof window !== \"undefined\" && window.utag) {\n triggerTealiumEvent({\n tealiumEvent: \"view\",\n pageUrl: location.href,\n pageType: \"product information\",\n pageName: \"criteria\",\n pageSubCategory: \"criteria\",\n rawDataLayer: \"10451v11\",\n });\n }\n }, [location.href]);\n\n /**\n * @name changeTab\n *\n * Change the selected tab\n * @param index this is the number which tab we would like to select. We have to tab for at the moment.0 = residential, 1 = let\n */\n const changeTab = useCallback(\n (index) => {\n let filteredData = [RESIDENTAL_DATA_SCHEME[0], RESIDENTAL_DATA_SCHEME[1]];\n let foundItems = [0, 0];\n\n filteredData[index] = filteredData[index].reduce((acc, accordionGroup) => {\n const accordionList = accordionGroup.accordionList.filter(({ filterTerm }) => {\n // replace What Has Changed title with term on search only\n if (WHC_MONTHS.includes(filterKey)) {\n return filterTerm.includes(getTermByTitle(filterKey));\n }\n return filterTerm.includes(filterKey);\n });\n\n if (accordionList.length) {\n foundItems[index] += accordionList.length;\n acc.push({ ...accordionGroup, accordionList });\n setFoundItemsCount(foundItems);\n }\n if (accordionList.length === 0) {\n foundItems[index] += accordionList.length;\n setFoundItemsCount(foundItems);\n }\n\n return acc;\n }, []);\n\n setTabData(filteredData);\n setSelectedTabIndex(index);\n\n // add click handlers on tab change for new accordions\n setTimeout(addHandler, 1000);\n setTimeout(oversizedTable, 1000);\n },\n [filterKey, addHandler, oversizedTable]\n );\n\n //Buy To Let filtering by tags\n //all accordions of BTL\n const buyToLetAccordionList = RESIDENTAL_DATA_SCHEME[1].map((e) => {\n return e.accordionList;\n });\n //merging into an array\n const mergedBTLAccordionList = [].concat.apply([], buyToLetAccordionList);\n //filter only for those who has filterTerm\n const allFilterTerms = mergedBTLAccordionList.filter((e) => {\n return e.filterTerm;\n });\n //getting all tags and merge into one array\n const tags = allFilterTerms.map((e) => e.filterTerm);\n\n let mergedTags = [].concat.apply([], tags);\n //TODO Plese find a better solution for this: replace [2] and [3], etc.\n let splitApplicantData = mergedTags[2].split(\",\");\n let splitBorrowingData = mergedTags[3].split(\",\");\n mergedTags = mergedTags.concat(splitApplicantData, splitBorrowingData);\n\n useEffect(() => {\n // Load the filter from the URL for the first load\n const url = new URL(window.location);\n let filterValue = url.searchParams.get(\"filter\") || \"\";\n\n filterValue.toString();\n\n if (!mergedTags.includes(filterValue) || filterValue === \"income\" || filterValue === \"mortgage\") {\n url.searchParams.delete(\"p\");\n url.searchParams.delete(\"tab\");\n setFilterKey(decodeQueryParam(filterValue));\n changeTab(0);\n } else if (mergedTags.includes(filterValue)) {\n changeTab(1);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [changeTab]);\n\n const handleClick = ({ eventContent, eventAction, rawDataLayer }) => {\n if (typeof window !== \"undefined\" && window.utag) {\n triggerTealiumEvent({\n tealiumEvent: \"link\",\n pageUrl: location.href,\n pageName: \"criteria\",\n eventCategory: \"content\",\n eventAction: eventAction,\n eventContent: eventContent,\n pageType: \"product information\",\n pageSubCategory: \"criteria\",\n rawDataLayer: rawDataLayer,\n });\n }\n };\n\n return (\n <>\n \n
\n
\n

Criteria

\n

\n To help you find what you're looking for, we've grouped our lending criteria into key categories. You can\n browse by category or use the search function to jump straight to the relevant entry.\n

\n \n handleClick({\n eventContent: `What has changed | Criteria : ${clickedText}`,\n eventAction: \"onsite\",\n rawDataLayer: \"10451v14\",\n })\n }\n />\n {getFilterBar()}\n \n (\n \n handleClick({\n eventContent: `Residential criteria : ${title}`,\n eventAction: \"accordion\",\n rawDataLayer: \"10451v15\",\n })\n }\n />\n )),\n tabData[1].map((groupData, index) => (\n \n handleClick({\n eventContent: `Buy to let criteria : ${title}`,\n eventAction: \"accordion\",\n rawDataLayer: \"10451v15\",\n })\n }\n />\n )),\n ]}\n />\n
\n
\n
\n \n handleClick({\n eventAction: \"onsite\",\n rawDataLayer: \"10451v14\",\n eventContent: \"Packaging requirements | Criteria : Packaging requirements\",\n })\n }\n >\n Packaging requirements\n \n
\n
\n \n handleClick({\n eventAction: \"onsite\",\n rawDataLayer: \"10451v14\",\n eventContent: \"Resources | Criteria : Resources\",\n })\n }\n >\n Resources\n \n
\n \n handleClick({\n eventAction: \"onsite\",\n rawDataLayer: \"10451v14\",\n eventContent: `Popular searches | Criteria : ${clickedText}`,\n })\n }\n />\n \n

\n The calculator is designed to give you an accurate projection of the amount we may be able to lend to\n your customer.\n

\n

\n Please note: the affordability calculator will not accurately support additional\n borrowing requests or multiple mortgage terms at this time.\n

\n
\n {/* show FAQ on Residential criteria tab only */}\n {selectedTabIndex === 0 && }\n
\n
\n \n \n );\n}\n","import React from 'react';\nimport AnchorList from '../anchor-list/anchor-list.component';\nimport GeneralAnchor from '../general-anchor/general-anchor.component';\nimport { FAQ_QUESTIONS_SCHEME } from '../../data/faq.data';\n\nconst FAQPanel = ({ faqItems = FAQ_QUESTIONS_SCHEME, title = 'Frequently asked questions' }) => {\n return (\n
\n

\n \n {title}\n \n

\n \n
\n );\n};\n\nexport default FAQPanel;","var userAgent = require('../internals/engine-user-agent');\n\nvar firefox = userAgent.match(/firefox\\/(\\d+)/i);\n\nmodule.exports = !!firefox && +firefox[1];\n","var React = require('react');\n\nfunction DownloadInline (props) {\n return React.createElement(\"svg\",props,React.createElement(\"path\",{\"d\":\"M15.8 12V15.8H2.2V12H1V17H17V12H15.8ZM14 8.848V7.151L9.6 11.551V1H8.4V11.551L4 7.151V8.848L9 13.849L14 8.848Z\",\"fill\":\"#000\"}));\n}\n\nDownloadInline.defaultProps = {\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 18 18\",\"fill\":\"none\",\"role\":\"img\",\"aria-hidden\":\"true\",\"focusable\":\"false\"};\n\nmodule.exports = DownloadInline;\n\nDownloadInline.default = DownloadInline;\n","'use strict';\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\nvar flags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = String(R.source);\n var rf = R.flags;\n var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","export const FAQS_SCHEME = [\n {\n title: 'Top 3 FAQs',\n href: '/frequently-asked-questions',\n },\n];\n\nexport const FAQ_QUESTIONS_SCHEME = [\n {\n title: 'Do I need to notify you if I want to cancel a case?',\n href: '/frequently-asked-questions#doINeed',\n },\n {\n title: 'What proof of income do you need for self-employed customers?',\n href: '/frequently-asked-questions#proofOfIncome',\n },\n {\n title: 'If the term extends beyond retirement age, how do you assess affordability?',\n href: '/frequently-asked-questions#affordability',\n },\n {\n title: 'What\\'s your policy on lending to foreign nationals living in the UK?',\n href: '/frequently-asked-questions#foreignLivingInUK',\n },\n {\n title: 'Which documents do you accept as proof of address?',\n href: '/frequently-asked-questions#acceptForProofAddress',\n },\n {\n title: 'Which documents do you accept as proof of identity?',\n href: '/frequently-asked-questions#acceptFoProof',\n },\n {\n title: 'How soon can a customer remortgage after taking out a purchase?',\n href: '/frequently-asked-questions#remortgagePurchase',\n },\n {\n title: 'When can I submit an additional borrowing application?',\n href: '/frequently-asked-questions#additionalBorrowing',\n },\n {\n title: 'What is your policy on new-build properties?',\n href: '/frequently-asked-questions#newBuildProperties',\n },\n {\n title: 'Are overpayments allowed?',\n href: '/frequently-asked-questions#overpaymentsAllowed',\n },\n]\n","var React = require('react');\n\nfunction ChevronLeftInline (props) {\n return React.createElement(\"svg\",props,React.createElement(\"path\",{\"d\":\"M10.5 0.207153L2.5 8.87506L10.5 17.543H8L0 8.87506L8 0.207153H10.5Z\",\"fill\":\"black\"}));\n}\n\nChevronLeftInline.defaultProps = {\"width\":\"11\",\"height\":\"18\",\"viewBox\":\"0 0 11 18\",\"fill\":\"none\"};\n\nmodule.exports = ChevronLeftInline;\n\nChevronLeftInline.default = ChevronLeftInline;\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar fails = require('../internals/fails');\nvar internalSort = require('../internals/array-sort');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar test = [];\nvar nativeSort = test.sort;\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar STABLE_SORT = !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 70;\n if (FF && FF > 3) return;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 603;\n\n var result = '';\n var code, chr, value, index;\n\n // generate an array with more 512 elements (Chakra and old V8 fails only in this case)\n for (code = 65; code < 76; code++) {\n chr = String.fromCharCode(code);\n\n switch (code) {\n case 66: case 69: case 70: case 72: value = 3; break;\n case 68: case 71: value = 4; break;\n default: value = 2;\n }\n\n for (index = 0; index < 47; index++) {\n test.push({ k: chr + index, v: value });\n }\n }\n\n test.sort(function (a, b) { return b.v - a.v; });\n\n for (index = 0; index < test.length; index++) {\n chr = test[index].k.charAt(0);\n if (result.charAt(result.length - 1) !== chr) result += chr;\n }\n\n return result !== 'DGBEFHACIJK';\n});\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT;\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (y === undefined) return -1;\n if (x === undefined) return 1;\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n return String(x) > String(y) ? 1 : -1;\n };\n};\n\n// `Array.prototype.sort` method\n// https://tc39.es/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n if (comparefn !== undefined) aFunction(comparefn);\n\n var array = toObject(this);\n\n if (STABLE_SORT) return comparefn === undefined ? nativeSort.call(array) : nativeSort.call(array, comparefn);\n\n var items = [];\n var arrayLength = toLength(array.length);\n var itemsLength, index;\n\n for (index = 0; index < arrayLength; index++) {\n if (index in array) items.push(array[index]);\n }\n\n items = internalSort(items, getSortCompare(comparefn));\n itemsLength = items.length;\n index = 0;\n\n while (index < itemsLength) array[index] = items[index++];\n while (index < arrayLength) delete array[index++];\n\n return array;\n }\n});\n","var userAgent = require('../internals/engine-user-agent');\n\nvar webkit = userAgent.match(/AppleWebKit\\/(\\d+)\\./);\n\nmodule.exports = !!webkit && +webkit[1];\n","import React, { useContext } from \"react\";\nimport { Link } from \"gatsby\";\nimport { triggerTealiumEvent } from \"../../utils/tealiumUtils\";\nimport { useLocation } from \"@reach/router\";\nimport { MenuContext } from \"../../context\";\n\nconst GeneralAnchor = ({\n children,\n isBlank,\n href,\n isLink = false,\n target,\n ariaLabel = \"\",\n referrer,\n isRed,\n downloadTitle,\n onClick,\n additionalClass,\n noClass = false,\n}) => {\n const menuContext = useContext(MenuContext);\n const location = useLocation();\n\n const extractTextFromChildren = (children) => {\n switch (true) {\n case typeof children === \"string\":\n return children;\n case React.isValidElement(children):\n return extractTextFromChildren(children.props.children);\n case Array.isArray(children):\n return children.map(extractTextFromChildren).join(\" \");\n default:\n return \"\";\n }\n };\n\n const handleClick = (e) => {\n if (typeof window === \"undefined\" || !window.utag) return;\n\n const textContent = extractTextFromChildren(children).trim();\n const commonData = {\n tealiumEvent: \"link\",\n pageUrl: location.href,\n eventCategory: \"content\",\n pageType: \"product information\",\n };\n\n const events = {\n \"/resources\": {\n eventAction: \"download\",\n eventContent: `download: ${textContent.replace(/\\s*\\(.*?\\)$/, \"\")}`,\n pageName: \"resources\",\n pageSubCategory: \"resources\",\n rawDataLayer: \"10451v51\",\n },\n \"/packaging-requirements\": isLink\n ? {\n eventAction: \"download\",\n eventContent: `download: ${textContent.replace(/\\s*\\(.*?\\)$/, \"\")}`,\n pageName: \"packaging requirements\",\n pageSubCategory: \"packaging requirements\",\n rawDataLayer: \"10451v77\",\n }\n : {\n eventAction: \"onsite\",\n eventContent: `contact us | packaging requirements : ${textContent}`,\n pageName: \"packaging requirements\",\n pageSubCategory: \"packaging requirements\",\n rawDataLayer: \"10451v75\",\n },\n \"/broker-support\": {\n eventAction: \"onsite\",\n eventContent: `support actions | broker support : ${textContent}`,\n pageName: \"broker support\",\n pageSubCategory: \"broker support\",\n rawDataLayer: \"10451v33\",\n },\n \"/placing-business\": href.includes(\"frequently-asked-questions\")\n ? {\n eventAction: \"offsite\",\n eventContent: `placing business : ${textContent}`,\n pageName: \"placing business\",\n pageSubCategory: \"placing business\",\n rawDataLayer: \"10451v56\",\n }\n : {\n eventAction: \"download\",\n eventContent: `download: ${textContent.replace(/\\s*\\(.*?\\)$/, \"\")}`,\n pageName: \"placing business\",\n pageSubCategory: \"placing business\",\n rawDataLayer: \"10451v55\",\n },\n \"/newsroom\": href.includes(\"pdfs\")\n ? {\n eventAction: \"onsite\",\n eventContent: `news : ${textContent}`,\n pageName: \"newsroom\",\n pageSubCategory: \"newsroom\",\n rawDataLayer: \"10451v24\",\n }\n : {\n eventAction: \"offsite\",\n eventContent: `news : ${textContent}`,\n pageName: \"newsroom\",\n pageSubCategory: \"newsroom\",\n rawDataLayer: \"10451v25\",\n },\n \"/green\": {\n eventAction: \"onsite\",\n eventContent: `resources | green : ${textContent}`,\n pageName: \"green\",\n pageSubCategory: \"green\",\n rawDataLayer: \"10451v86\",\n },\n \"/step-by-step-guide-to-hsbc-mortgages\": {\n eventAction: \"onsite\",\n eventContent: `contact us | step by step guide to hsbc mortgages : ${textContent}`,\n pageName: \"step by step guide to hsbc mortgages\",\n pageSubCategory: \"step by step guide to hsbc mortgages\",\n rawDataLayer: \"10451v81\",\n },\n };\n\n if (location.href.includes(\"essential-reading\")) {\n events[location.pathname] = {\n eventAction: \"onsite\",\n eventContent: `contact us | ${location.href.replace(/\\/$/, \"\").split(\"/\").pop()} : ${textContent}`,\n pageName: \"essential reading\",\n pageSubCategory: \"newsroom\",\n rawDataLayer: \"10451v29\",\n };\n }\n\n const eventData =\n events[location.pathname] || events[`${location.pathname}/`] || events[`${location.pathname.replace(/\\/$/, \"\")}`];\n\n if (eventData) {\n triggerTealiumEvent({ ...commonData, ...eventData });\n }\n\n if (onClick) {\n onClick(e);\n }\n };\n\n return (\n <>\n {isLink === true ? (\n \n {children}\n \n ) : (\n \n {children}\n \n )}\n \n );\n};\n\nexport default GeneralAnchor;\n","import React from \"react\";\n\nimport GeneralAnchor from \"../general-anchor/general-anchor.component\";\nimport DownloadIcon from \"../../assets/download.inline.svg\";\n\nconst AnchorList = ({ ariaLabel, anchorItems, additionalClassName, isLink, isBlank, isProductFinder }) => (\n
    \n {anchorItems.length &&\n anchorItems.map(({ downloadTitle, isDownload, title, ...rest }, index) => (\n
  • \n \n \n {(downloadTitle || isDownload) && } {title}\n \n {isProductFinder && \"Ext\"}\n \n
  • \n ))}\n
\n);\n\nexport default AnchorList;\n","import React, { useContext, useState, useEffect } from \"react\";\nimport { MenuContext } from \"../../context\";\nimport ChevronLeft from \"../../assets/chevron-left.inline.svg\";\nimport ChevronRight from \"../../assets/chevron-left.inline.svg\";\n\nconst Tabs = ({\n showPagination = false,\n tabs,\n tabContent,\n activeTabIndex = 0,\n setActiveTab,\n additionalClassName,\n onClick,\n}) => {\n const menuContext = useContext(MenuContext);\n\n /* TODO if we will get content remove the comments and ESLint disable */\n /* eslint-disable no-unused-vars */\n const activateTab = (event, index) => event.keyCode === 13 && setActiveTab(index);\n /* eslint-enable no-unused-vars */\n let tabItems = tabs.length;\n const [emptyHash, setEmptyHashh] = useState(\"#\");\n const [windowWidth, setWindowWidth] = useState(null);\n\n useEffect(() => {\n if (typeof window !== \"undefined\") {\n setWindowWidth(window.innerWidth);\n\n if (windowWidth < 601) {\n const tab = document.querySelector(\".tab--selected\");\n const tabPosition = tab.offsetLeft;\n const parentWidth = tab.parentNode.offsetWidth;\n const scrollPosition = tabPosition - parentWidth / 2 + tab.offsetWidth / 2;\n tab.parentNode.scrollLeft = scrollPosition;\n }\n }\n }, [windowWidth]);\n\n if (typeof window !== \"undefined\") {\n if (window.location.href.indexOf(\"foreignLivingInUK\") > -1) {\n setActiveTab(1);\n } else if (window.location.href.indexOf(\"acceptForProofAddress\") > -1) {\n setActiveTab(1);\n } else if (window.location.href.indexOf(\"acceptFoProof\") > -1) {\n setActiveTab(1);\n } else if (window.location.href.indexOf(\"remortgagePurchase\") > -1) {\n setActiveTab(1);\n } else if (window.location.href.indexOf(\"additionalBorrowing\") > -1) {\n setActiveTab(4);\n } else if (window.location.href.indexOf(\"newBuildProperties\") > -1) {\n setActiveTab(6);\n } else if (window.location.href.indexOf(\"overpaymentsAllowed\") > -1) {\n setActiveTab(8);\n }\n }\n\n const changeHash = () => {\n if (typeof window !== `undefined`) {\n window.history.pushState(\"object or string\", \"Title\", `${emptyHash}`);\n }\n };\n\n return (\n
\n {tabs && tabs.length && (\n
\n {tabs.map((tab, index) => (\n activateTab(e, index)}\n onClick={() => {\n setActiveTab(index);\n setEmptyHashh(\"\");\n changeHash();\n }}\n inert={menuContext.isMenuOpen ? \"true\" : null}\n >\n {tab}\n \n ))}\n
\n )}\n {/* Tabs content section */}\n
\n {tabContent[activeTabIndex]}\n {showPagination && (\n \n )}\n
\n
\n );\n};\n\nexport default Tabs;\n","'use strict';\nvar $ = require('../internals/export');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeJoin = [].join;\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar STRICT_METHOD = arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.es/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {\n join: function join(separator) {\n return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","// TODO: use something more complex like timsort?\nvar floor = Math.floor;\n\nvar mergeSort = function (array, comparefn) {\n var length = array.length;\n var middle = floor(length / 2);\n return length < 8 ? insertionSort(array, comparefn) : merge(\n mergeSort(array.slice(0, middle), comparefn),\n mergeSort(array.slice(middle), comparefn),\n comparefn\n );\n};\n\nvar insertionSort = function (array, comparefn) {\n var length = array.length;\n var i = 1;\n var element, j;\n\n while (i < length) {\n j = i;\n element = array[i];\n while (j && comparefn(array[j - 1], element) > 0) {\n array[j] = array[--j];\n }\n if (j !== i++) array[j] = element;\n } return array;\n};\n\nvar merge = function (left, right, comparefn) {\n var llength = left.length;\n var rlength = right.length;\n var lindex = 0;\n var rindex = 0;\n var result = [];\n\n while (lindex < llength || rindex < rlength) {\n if (lindex < llength && rindex < rlength) {\n result.push(comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]);\n } else {\n result.push(lindex < llength ? left[lindex++] : right[rindex++]);\n }\n } return result;\n};\n\nmodule.exports = mergeSort;\n","var fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;\n });\n};\n","import React from \"react\";\nimport GeneralAnchor from \"../general-anchor/general-anchor.component\";\nimport Calculator from \"../../assets/calculator.inline.svg\";\nimport NewWindow from \"../../assets/new_window.inline.svg\";\nimport { triggerTealiumEvent } from \"../../utils/tealiumUtils\";\nimport { useLocation } from \"@reach/router\";\n\nconst AffordabilityCalculator = ({ children }) => {\n const location = useLocation();\n\n const handleClick = (calculatorType) => {\n if (typeof window === \"undefined\" || !window.utag) return;\n\n const currentPath = location.href.split(\"/\").pop() || \"home\";\n\n const eventDetails = {\n home: {\n pageSubCategory: \"Home\",\n rawDataLayer: \"10451v6\",\n },\n criteria: {\n pageName: \"criteria\",\n pageSubCategory: \"criteria\",\n rawDataLayer: \"10451v16\",\n },\n };\n\n const config = eventDetails[currentPath];\n if (!config) {\n return;\n }\n\n const { pageName = \"\", pageSubCategory, rawDataLayer } = config;\n\n triggerTealiumEvent({\n tealiumEvent: \"link\",\n pageUrl: location.href,\n eventCategory: \"content\",\n eventAction: \"button\",\n eventContent: calculatorType,\n pageType: \"product information\",\n pageName,\n pageSubCategory,\n rawDataLayer,\n });\n };\n\n return (\n
\n
\n \n

Calculators

\n

Find out how much your customer may be able to borrow with these quick and easy-to-use calculators.

\n
\n
\n handleClick(\"Launch Residential calculator\")}\n >\n Launch Residential calculator\n \n \n handleClick(\"Launch Buy to let calculator\")}\n >\n Launch Buy to let calculator\n \n \n {children && children}\n
\n
\n );\n};\n\nexport default AffordabilityCalculator;\n"],"sourceRoot":""}