{"version":3,"sources":["webpack:///./src/components/InfoBlock/InfoBlock.tsx","webpack:///./src/pages/customer-centre/index.tsx","webpack:///./src/data/page-menus/mortgage-resources.ts","webpack:///./src/components/PageMenu/PageMenu.tsx","webpack:///./src/components/ButtonLink/ButtonLink.tsx","webpack:///./src/components/MagicCarousel/MagicCarousel.tsx"],"names":["InfoBlock","heading","icon","buttonOptions","children","className","type","label","memo","query","withTranslation","LocaleNameSpaceKeys","CUSTOMER_CENTRE","props","t","layoutOptions","seo","title","heroSection","options","accentColor","HeroSectionColors","SKY_BLUE","heroImage","fileName","alt","blockText","shouldBeDigiBlock","shouldEnableMaxWidth","activeLocaleTag","useLocaleContext","customerServiceSupport","getPathFromRouteKey","RouteKeys","CONTACT_US","i18nKey","values","phone","CommonData","tollFreeCustomerServiceNumber","mortgageServicing","href","aria-label","COMMON","to","websites","fcacMortgages","menu","mortgageResourcesMenu","menuTitle","ariaNavItemLabels","IconTypes","LOCK","BORROWER","iconOptions","ARROW_NEXT","styleOptions","isInline","size","ButtonLinkSize","SMALL","RESCUE_RING","NEXTJOB_PROGRAM","DOLLAR","UNDERSTANDING_YOUR_MORTGAGE","returnObjects","map","listItem","key","FINANCIAL_TOOLS_RESOURCES","RESOURCES","textKey","PREPAYMENT_CALCULATOR","MORTGAGE_SERVICE_DOCUMENTS","ABOUT_US","SCC","FINANCIAL_LITERACY","PageMenu","useTranslation","menuItem","i","linkOptions","shouldEnableActiveState","enableActiveState","ButtonLinkType","defaultLinkOptions","isExternalLink","shouldOpenInNewTab","defaultStyleOptions","PRIMARY","LARGE","invertColors","ButtonLink","aLinkProps","ariaLabel","styleOptionsWithDefault","linkOptionsWithDefault","classNames","classnames","small","aLinkPropsDefault","target","rel","linkProps","partiallyActive","activeClassName","undefined","getIcon","IconComp","className_","position","React","Fragment","role","MagicCarousel","timerDuration","currentSlide","setCurrentSlide","useState","ariaLive","setAriaLive","useEffect","carouselControls","document","querySelectorAll","onFocus","onBlur","length","forEach","node","addEventListener","removeEventListener","next","id","setTimeout","clearTimeout","nextAriaLabel","previousAriaLabel","getNavItemAriaLabel","index","current","total","aria-roledescription","onClick","aria-controls","ARROW_NEXT_THIN","style","marginLeft","aria-live","child","aria-hidden","handleClick","tabIndex","onKeyPress","event","handleKeyPress"],"mappings":"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","file":"component---src-pages-customer-centre-index-tsx-61bf79bdc76f5a5ec407.js","sourcesContent":["import React, { memo } from 'react';\nimport Icon, { IconTypes } from '../Icon/Icon';\nimport ButtonLink, {\n ButtonLinkLinkOptions,\n ButtonLinkStyleOptions,\n ButtonLinkIconOptions,\n} from '../ButtonLink/ButtonLink';\nimport './style.scss';\n\nexport interface OwnProps {\n className?: string;\n heading: string | React.ReactNode;\n children?: React.ReactNode;\n buttonOptions?: {\n to: string;\n label: string;\n iconOptions?: ButtonLinkIconOptions;\n linkOptions?: ButtonLinkLinkOptions;\n styleOptions?: ButtonLinkStyleOptions;\n ariaLabel?: string;\n };\n icon?: IconTypes;\n}\n\ntype Props = OwnProps;\n\nconst InfoBlock: React.FC = ({\n heading,\n icon,\n buttonOptions,\n children,\n className = '',\n}: Props) => {\n const getTitle = () => {\n return (\n
\n {icon && }\n {typeof heading === 'string' ?
{heading}
: heading}\n
\n );\n };\n return (\n
\n {getTitle()}\n
{children}
\n {buttonOptions && {buttonOptions.label}}\n
\n );\n};\n\nexport default memo(InfoBlock);\n","import React from 'react';\nimport { PageProps, graphql } from 'gatsby';\nimport { withTranslation, WithTranslation, Trans } from 'react-i18next';\n\nimport { LocaleNameSpaceKeys } from '../../localization/translations';\nimport PageMenu from '../../components/PageMenu/PageMenu';\nimport Layout, { LayoutOptions, HeroSectionColors } from '../../components/Layout/Layout';\nimport mortgageResourcesMenu from '../../data/page-menus/mortgage-resources';\nimport InfoBlock from '../../components/InfoBlock/InfoBlock';\nimport Link from '../../components/Link/Link';\nimport ExternalLink from '../../components/ExternalLink/ExternalLink';\nimport CommonData from '../../data/common/common';\nimport { useLocaleContext } from '../../context/Locale';\nimport { ButtonLinkSize } from '../../components/ButtonLink/ButtonLink';\nimport { getPathFromRouteKey } from '../../shared/utils/getPathFromRouteKey';\nimport RouteKeys from '../../../config/RouteKeys';\nimport { IconTypes } from '../../components/Icon/Icon';\nimport MagicCarousel from '../../components/MagicCarousel/MagicCarousel';\n// import EventInfo from '../../components/EventInfo/EventInfo';\n// import ImportantMessage from '../../components/ImportantMessage/ImportantMessage';\nimport './style.scss';\n\ntype Props = PageProps & WithTranslation;\n\nconst CustomerCentre: React.FC = (props) => {\n const { t } = props;\n\n const layoutOptions: LayoutOptions = {\n seo: {\n title: t('customerCentre.seo.title'),\n },\n // page: {\n // title: t('customerCentre.heading'),\n // },\n heroSection: {\n options: {\n accentColor: HeroSectionColors.SKY_BLUE,\n heroImage: {\n fileName: 'hero-image-13.jpg',\n alt: '',\n },\n blockText: t('customerCentre.tagline'),\n shouldBeDigiBlock: true,\n },\n },\n shouldEnableMaxWidth: false,\n };\n\n const { activeLocaleTag } = useLocaleContext();\n const customerServiceSupport = getPathFromRouteKey(RouteKeys.CONTACT_US);\n\n return (\n \n
\n
\n
\n {/*
\n \n
*/}\n

{t('customerCentre.heading')}

\n
\n
\n
\n

{t('customerCentre.introParagraph')}

\n
\n
\n

{t('customerCentre.htbCares.title')}

\n

\n \n

\n
\n
\n

{t('customerCentre.weCare.title')}

\n

\n \n \n \n \n \n

\n
\n
\n \n
\n
\n \n
\n
\n {t('customerCentre.clientPortal.heading')}}\n >\n

\n \n

\n \n
\n
\n
\n
\n {t('customerCentre.nextJob.heading')}}\n >\n

{t('customerCentre.nextJob.body')}

\n \n
\n
\n
\n
\n {t('customerCentre.prepayment.heading')}}\n >\n

{t('customerCentre.prepayment.body')}

\n
    \n {(t('customerCentre.prepayment.list', { returnObjects: true }) as string[]).map(\n (listItem) => (\n
  • {listItem}
  • \n )\n )}\n
\n \n
\n
\n
\n
\n {t('customerCentre.higherInterest.heading')}}\n >\n

{t('customerCentre.higherInterest.body')}

\n \n
\n
\n \n
\n
\n \n );\n};\n\nexport const query = graphql`\n query {\n file(relativePath: { eq: \"generic-image-3.jpg\" }) {\n childImageSharp {\n fluid(maxWidth: 420) {\n ...GatsbyImageSharpFluid_withWebp\n }\n }\n }\n footerImage: file(relativePath: { eq: \"generic-image-4.jpg\" }) {\n childImageSharp {\n fixed(width: 1400, quality: 100) {\n ...GatsbyImageSharpFixed_withWebp\n }\n }\n }\n }\n`;\n\nexport default withTranslation(LocaleNameSpaceKeys.CUSTOMER_CENTRE)(CustomerCentre);\n","import RouteKeys from '../../../config/RouteKeys';\nimport { PageMenuLinks } from './pageMenuTypes';\nimport { getPathFromRouteKey } from '../../shared/utils/getPathFromRouteKey';\n\nconst mortgageResourcesMenu: PageMenuLinks = [\n {\n to: getPathFromRouteKey(RouteKeys.BORROWER),\n textKey: 'pageTitles.clientPortal',\n },\n {\n to: getPathFromRouteKey(RouteKeys.CUSTOMER_CENTRE.PREPAYMENT_CALCULATOR),\n textKey: 'pageTitles.prepaymentCalculator',\n },\n {\n to: getPathFromRouteKey(RouteKeys.CUSTOMER_CENTRE.UNDERSTANDING_YOUR_MORTGAGE),\n textKey: 'pageTitles.understandingYourMortgage',\n },\n {\n to: getPathFromRouteKey(RouteKeys.CUSTOMER_CENTRE.MORTGAGE_SERVICE_DOCUMENTS),\n textKey: 'pageTitles.mortgageServiceDocuments',\n },\n {\n to: getPathFromRouteKey(RouteKeys.CUSTOMER_CENTRE.NEXTJOB_PROGRAM),\n textKey: 'pageTitles.nextJobProgram',\n },\n {\n to: getPathFromRouteKey(RouteKeys.ABOUT_US.SCC),\n textKey: 'pageTitles.scc',\n },\n {\n to: getPathFromRouteKey(RouteKeys.CUSTOMER_CENTRE.RESOURCES.FINANCIAL_LITERACY),\n textKey: 'pageTitles.financialLiteracy',\n },\n {\n to: getPathFromRouteKey(RouteKeys.CUSTOMER_CENTRE.RESOURCES.FINANCIAL_TOOLS_RESOURCES),\n textKey: 'pageTitles.financialTools',\n },\n // {\n // to: getPathFromRouteKey(RouteKeys.CCP),\n // textKey: 'pageTitles.promotions',\n // },\n];\n\nexport default mortgageResourcesMenu;\n","import React, { memo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { IconTypes } from '../Icon/Icon';\nimport { PageMenuLinks } from '../../data/page-menus/pageMenuTypes';\nimport ButtonLink from '../ButtonLink/ButtonLink';\nimport './style.scss';\n\nexport interface OwnProps {\n menuTitle?: string;\n menu: PageMenuLinks;\n className?: string;\n}\n\ntype Props = OwnProps;\n\nconst PageMenu: React.FC = ({ menu, menuTitle = '', className = '' }: Props) => {\n const { t } = useTranslation();\n\n const getMenuContent = () => {\n return menu.map((menuItem, i) => (\n
  • \n \n {t(menuItem.textKey)}\n \n
  • \n ));\n };\n\n return (\n
    \n {menuTitle &&

    {menuTitle}

    }\n
      {getMenuContent()}
    \n
    \n );\n};\n\nexport default memo(PageMenu);\n","import React, { memo } from 'react';\nimport classnames from 'classnames';\nimport './style.scss';\nimport Icon, { IconTypes } from '../Icon/Icon';\nimport Link from '../Link/Link';\n\nexport enum ButtonLinkType {\n PRIMARY = 'ButtonLink__primary',\n // SECONDARY = 'ButtonLink_secondary'\n}\n\nexport enum ButtonLinkSize {\n SMALL = 'ButtonLink__small',\n LARGE = 'ButtonLink__large',\n // SECONDARY = 'SECONDARY'\n}\nexport interface ButtonLinkLinkOptions {\n isExternalLink?: boolean;\n shouldOpenInNewTab?: boolean; // This option will be overridden if the external link is true\n shouldEnableActiveState?: boolean; // Only gets affected if isExternalLink is false\n}\n\nexport interface ButtonLinkStyleOptions {\n isInline?: boolean;\n type?: ButtonLinkType;\n size?: ButtonLinkSize;\n invertColors?: boolean;\n}\n\nexport interface ButtonLinkIconOptions {\n icon: IconTypes;\n position?: 'left' | 'right'; // default is always left\n}\n\ninterface AnchorLinkProps {\n href?: string;\n target?: string;\n rel?: string;\n}\n\nexport interface OwnProps {\n to: string;\n linkOptions?: ButtonLinkLinkOptions;\n iconOptions?: ButtonLinkIconOptions;\n children?: React.ReactNode;\n className?: string;\n styleOptions?: ButtonLinkStyleOptions;\n aLinkProps?: AnchorLinkProps;\n ariaLabel?: string;\n}\n\ntype Props = OwnProps;\n\nconst defaultLinkOptions: ButtonLinkLinkOptions = {\n isExternalLink: false,\n shouldOpenInNewTab: false, // This option will be overridden if the external link is true\n shouldEnableActiveState: true, // Only gets affected if isExternalLink is false\n};\n\nconst defaultStyleOptions: ButtonLinkStyleOptions = {\n isInline: false,\n type: ButtonLinkType.PRIMARY,\n size: ButtonLinkSize.LARGE,\n invertColors: false,\n};\n\nconst ButtonLink: React.FC = ({\n to,\n linkOptions,\n iconOptions,\n styleOptions,\n className = '',\n // onClick = () => {},\n aLinkProps,\n children = null,\n ariaLabel,\n}: Props) => {\n const styleOptionsWithDefault: ButtonLinkStyleOptions = {\n ...defaultStyleOptions,\n ...styleOptions,\n };\n\n const linkOptionsWithDefault: ButtonLinkLinkOptions = {\n ...defaultLinkOptions,\n ...linkOptions,\n };\n\n const classNames = classnames(\n `ButtonLink`,\n styleOptionsWithDefault.type,\n styleOptionsWithDefault.size,\n className,\n {\n 'ButtonLink__inline-link': !!styleOptions?.isInline,\n 'ButtonLink__invert-colors': !!styleOptions?.invertColors,\n small: styleOptionsWithDefault.size === ButtonLinkSize.SMALL,\n }\n );\n\n const aLinkPropsDefault = {\n href: to,\n target: '__blank',\n rel: 'noopener',\n ...aLinkProps,\n };\n\n const linkProps = {\n to,\n partiallyActive: !!linkOptionsWithDefault.shouldEnableActiveState,\n activeClassName: linkOptionsWithDefault?.shouldEnableActiveState\n ? 'ButtonLink--active'\n : undefined,\n };\n\n const getIcon = () => {\n if (iconOptions) {\n const IconComp = ({ className_ }: any) => (\n \n \n \n );\n return (\n \n );\n }\n return React.Fragment;\n };\n\n return linkOptionsWithDefault.isExternalLink ? (\n \n {(!iconOptions?.position || iconOptions?.position === 'left') && getIcon()}\n {children}\n {iconOptions?.position === 'right' && getIcon()}\n \n ) : (\n \n {(!iconOptions?.position || iconOptions?.position === 'left') && getIcon()}\n {children}\n {iconOptions?.position === 'right' && getIcon()}\n \n );\n};\n\nexport default memo(ButtonLink);\n","import React, { useState, useEffect, KeyboardEvent } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport Icon, { IconTypes } from '../Icon/Icon';\nimport { LocaleNameSpaceKeys } from '../../localization/translations';\nimport './style.scss';\n\ninterface OwnProps {\n className?: string;\n children: React.ReactNode[];\n timerDuration?: number;\n ariaNavItemLabels?: string[];\n}\n\ntype Props = OwnProps;\n\nconst MagicCarousel: React.FC = ({\n children = [],\n className = '',\n timerDuration = 12000,\n ariaNavItemLabels,\n}) => {\n const { t } = useTranslation();\n const [currentSlide, setCurrentSlide] = useState(0);\n const [ariaLive, setAriaLive] = useState<'off' | 'assertive' | 'polite'>('off');\n\n const handleClick = (index: any) => {\n setCurrentSlide(index);\n };\n\n const handleKeyPress = (event: KeyboardEvent, index: number) => {\n if (event.key === 'Enter') {\n setCurrentSlide(index);\n }\n };\n\n const handleNext = () => {\n if (currentSlide === ((children as any[]) || []).length - 1) {\n setCurrentSlide(0);\n } else {\n setCurrentSlide(currentSlide + 1);\n }\n };\n\n const handlePrev = () => {\n if (currentSlide === 0) {\n setCurrentSlide(((children as any[]) || []).length - 1);\n } else {\n setCurrentSlide(currentSlide - 1);\n }\n };\n\n useEffect(() => {\n const carouselControls = document.querySelectorAll('.carousel-element');\n\n const onFocus = () => setAriaLive('polite');\n const onBlur = () => setAriaLive('off');\n\n if (carouselControls.length) {\n (carouselControls as NodeListOf).forEach((node) => {\n node.addEventListener('focus', onFocus);\n node.addEventListener('blur', onBlur);\n });\n }\n\n return () => {\n if (carouselControls.length) {\n (carouselControls as NodeListOf).forEach((node) => {\n node.removeEventListener('focus', onFocus);\n node.removeEventListener('blur', onBlur);\n });\n }\n };\n }, []);\n\n useEffect(() => {\n const next = (currentSlide + 1) % (children as any).length;\n const id = setTimeout(() => {\n setCurrentSlide(next);\n\n // if (document.activeElement?.classList.contains('carousel-element')) {\n // const carouselItems = document.querySelectorAll('.carousel-slide');\n\n // if (carouselItems && carouselItems.length) {\n // (carouselItems[next] as HTMLButtonElement).focus();\n // }\n // }\n }, timerDuration);\n return () => clearTimeout(id);\n }, [currentSlide]);\n\n const nextAriaLabel = t(`${LocaleNameSpaceKeys.COMMON}:carousel.next`);\n const previousAriaLabel = t(`${LocaleNameSpaceKeys.COMMON}:carousel.previous`);\n\n const getNavItemAriaLabel = (index: number) =>\n `${t(`${LocaleNameSpaceKeys.COMMON}:carousel.slideFormat`, {\n current: index + 1,\n total: children.length,\n })} ${ariaNavItemLabels?.[index] || ''}`;\n\n return (\n \n \n \n \n
    \n \n {children.map((child, index: number) => (\n \n {child}\n
    \n ))}\n \n
    \n {((children as any[]) || []).map((child, index) => (\n handleClick(index)}\n tabIndex={0}\n onKeyPress={(event) => handleKeyPress(event, index)}\n />\n ))}\n
    \n \n \n \n \n \n );\n};\n\nexport default MagicCarousel;\n"],"sourceRoot":""}