{"version":3,"sources":["webpack:///./src/components/ResidentialMortgages/Form.tsx","webpack:///./src/components/PageMenu/PageMenu.tsx","webpack:///./src/pages/customer-centre/residential-mortgages/refinancing-mortgage/form/index.tsx","webpack:///./src/components/primitives/TextArea/TextArea.tsx","webpack:///./src/data/page-menus/residential-mortgages.ts"],"names":["FormFor","FormDataKey","ResidentialMortgagesForm","t","formFor","activeLocaleTag","useLocaleContext","recaptchaRef","React","createRef","reCaptchaTimerRef","useRef","inquiryOptions","renewal","internalRefinance","yesLabel","noLabel","initialFormState","name","isInvalid","validationMessage","value","htbClient","leverageHome","email","inquiryRegarding","message","reCaptcha","ts","formValues","setFormValues","useState","areFormValuesInvalid","setAreFormValuesInvalid","formSubmissionResponse","setFormSubmissionResponse","submitted","shouldDisplayMessage","handleFormChange","val","id","timestamp","response","document","getElementById","trim","current","JSON","stringify","Date","getTime","useEffect","interval","setInterval","clearInterval","scrollIntoView","block","handleRadioChange","event","target","className","aria-live","onSubmit","async","e","preventDefault","stopPropagation","newFormValues","formValueFields","Object","keys","firstErrorField","forEach","element","currentField","EmailValidator","newAreFormValuesInvalid","some","field","reset","description","join","finalObject","debug","orgid","process","recordType","subject","captcha_settings","keyname","fallback","orgId","submit","fetch","method","body","qs","credentials","mode","headers","Accept","Origin","then","catch","err","console","error","inputField","recaptcha","querySelector","focus","type","options","InputType","TEXT","label","inputProps","required","onChange","role","aria-labelledby","htmlFor","checked","aria-label","textAreaProps","rows","cols","ref","sitekey","prevState","hl","theme","iconOptions","icon","IconTypes","SEND_MAIL","styleOptions","isInline","to","CommonData","websites","findBroker","linkOptions","isExternalLink","size","ButtonLinkSize","SMALL","ARROW_NEXT","PageMenu","menu","menuTitle","useTranslation","map","menuItem","i","key","textKey","shouldEnableActiveState","enableActiveState","memo","withTranslation","LocaleNameSpaceKeys","CUSTOMER_CENTRE","props","layoutOptions","seo","title","page","heroSection","accentColor","HeroSectionColors","SKY_BLUE","heroImage","fileName","alt","i18nKey","values","specialistEmail","tollFreeCustomerServiceNumber","mortgageServicing","href","COMMON","refinance","residentialMortgagesMenu","TextArea","errorMessage","TextAreaClassNames","classNames","inputAria","requiredLabel","currentTarget","getPathFromRouteKey","RouteKeys","RESIDENTIAL_MORTGAGES","RENEW_YOUR_MORTGAGE","REFINANCING_MORTGAGE","PURCHASING_HOME"],"mappings":"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","file":"component---src-pages-customer-centre-residential-mortgages-refinancing-mortgage-form-index-tsx-c041dfe2644aa6d41c8b.js","sourcesContent":["import React, { useState, useRef, useEffect } from 'react';\nimport { TFunction } from 'i18next';\nimport ReCAPTCHA from 'react-google-recaptcha';\nimport * as EmailValidator from 'email-validator';\nimport qs from 'qs';\n\nimport Input, { InputType } from '../primitives/Input/Input';\nimport Button from '../primitives/Button/Button';\nimport TextArea from '../primitives/TextArea/TextArea';\nimport { IconTypes } from '../Icon/Icon';\nimport { useLocaleContext } from '../../context/Locale';\nimport ErrorMessage from '../ErrorMessage/ErrorMessage';\nimport CommonData from '../../data/common/common';\nimport ButtonLink, { ButtonLinkSize } from '../ButtonLink/ButtonLink';\n\nimport './style.scss';\n\nexport enum FormFor {\n renewal = 'renewal',\n refinance = 'internalRefinance',\n}\n\ninterface OwnProps {\n t: TFunction;\n formFor: FormFor;\n}\n\nenum FormDataKey {\n name = 'name',\n email = 'email',\n inquiryRegarding = 'inquiryRegarding',\n message = 'message',\n recaptcha = 'reCaptcha',\n}\n\ntype Props = OwnProps;\n\nconst ResidentialMortgagesForm: React.FC = ({ t, formFor }) => {\n const { activeLocaleTag } = useLocaleContext();\n const recaptchaRef = React.createRef();\n\n const reCaptchaTimerRef = useRef('');\n\n const inquiryOptions = {\n renewal: `012f1000000LJKD`,\n internalRefinance: `0125o0000004Imy`,\n };\n\n const yesLabel = t('residentialMortgages.form.yesLabel');\n const noLabel = t('residentialMortgages.form.noLabel');\n\n const initialFormState = {\n name: {\n isInvalid: false,\n validationMessage: '',\n value: '',\n },\n htbClient: {\n isInvalid: false,\n value: '',\n validationMessage: '',\n },\n leverageHome: {\n isInvalid: false,\n value: noLabel,\n validationMessage: '',\n },\n email: {\n isInvalid: false,\n validationMessage: '',\n value: '',\n },\n inquiryRegarding: {\n isInvalid: false,\n validationMessage: '',\n value: inquiryOptions[formFor],\n },\n message: {\n isInvalid: false,\n validationMessage: '',\n value: '',\n },\n reCaptcha: {\n isInvalid: false,\n validationMessage: '',\n value: '',\n ts: '',\n },\n };\n\n const [formValues, setFormValues] = useState(initialFormState);\n const [areFormValuesInvalid, setAreFormValuesInvalid] = useState(false);\n const [formSubmissionResponse, setFormSubmissionResponse] = useState({\n submitted: false,\n shouldDisplayMessage: false,\n });\n\n const handleFormChange = (val: any, id: FormDataKey) => {\n setFormValues({\n ...formValues,\n [id]: {\n ...formValues[id],\n value: val,\n },\n });\n };\n\n const timestamp = () => {\n const response = document.getElementById('g-recaptcha-response');\n // @ts-ignore\n // eslint-disable-next-line eqeqeq\n if (response == null || response.value.trim() == '') {\n reCaptchaTimerRef.current = JSON.stringify(new Date().getTime());\n }\n };\n\n const handleCaptchaOnChange = (value: any) => {\n setFormValues((prevState) => ({\n ...prevState,\n reCaptcha: {\n ...prevState.reCaptcha,\n isInvalid: false,\n value,\n },\n }));\n };\n\n useEffect(() => {\n const interval = setInterval(timestamp, 500);\n return () => {\n clearInterval(interval);\n };\n }, []);\n\n useEffect(() => {\n if (formSubmissionResponse.shouldDisplayMessage && formSubmissionResponse.submitted) {\n const message = document.getElementById('success-message');\n\n if (message) {\n message.scrollIntoView({ block: 'end' });\n }\n }\n }, [formSubmissionResponse]);\n\n const handleSubmit = async (e: any) => {\n e.preventDefault();\n e.stopPropagation();\n const newFormValues = { ...formValues };\n const formValueFields = Object.keys(newFormValues);\n let firstErrorField = '';\n\n formValueFields.forEach((element) => {\n const currentField = newFormValues[element as FormDataKey];\n\n if (!currentField.value) {\n currentField.isInvalid = true;\n if (!firstErrorField) firstErrorField = element;\n\n currentField.validationMessage = t(\n `residentialMortgages.form.${element}.validationMessage.emptyField`\n );\n } else if (element === 'email' && !EmailValidator.validate(currentField.value)) {\n currentField.isInvalid = true;\n if (!firstErrorField) firstErrorField = element;\n\n currentField.validationMessage = t(\n 'residentialMortgages.form.email.validationMessage.invalidCharacters'\n );\n } else {\n currentField.isInvalid = false;\n currentField.validationMessage = '';\n }\n });\n\n const newAreFormValuesInvalid = formValueFields.some(\n (field) => (newFormValues as any)[field].isInvalid\n );\n\n setFormValues(newFormValues);\n setAreFormValuesInvalid(newAreFormValuesInvalid);\n\n if (!newAreFormValuesInvalid) {\n if (recaptchaRef.current) {\n recaptchaRef.current.reset();\n }\n\n const description = [\n `${t('residentialMortgages.form.htbClient.label')}: ${formValues.htbClient.value}`,\n `${t('residentialMortgages.form.leverageHome.label')}: ${formValues.leverageHome.value}`,\n formValues.message.value,\n ].join('\\n');\n\n const finalObject = {\n debug: process.env.NODE_ENV === 'development' ? 1 : 0,\n orgid: process.env.GATSBY_WEB_TO_CASE_SALESFORCE_ORG_ID,\n name: formValues.name.value,\n email: formValues.email.value,\n recordType: formValues.inquiryRegarding.value,\n subject: t(`residentialMortgages.form.inquiryRegarding.options.${formFor}`),\n description,\n 'g-recaptcha-response': formValues.reCaptcha.value,\n captcha_settings: JSON.stringify({\n keyname: process.env.GATSBY_WEB_TO_CASE_SALESFORCE_CAPTCHA_KEY_NAME,\n fallback: 'true',\n orgId: process.env.GATSBY_WEB_TO_CASE_SALESFORCE_ORG_ID,\n ts: reCaptchaTimerRef.current, // inclusion of time means response was validated\n }),\n submit: 'Submit',\n };\n\n await fetch(process.env.GATSBY_WEB_TO_CASE_SALESFORCE_URL as string, {\n method: 'POST',\n body: qs.stringify(finalObject),\n credentials: 'same-origin',\n mode: 'no-cors',\n // @ts-ignore\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'Access-Control-Allow-Origin': '*',\n Accept:\n 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',\n Origin: null,\n 'Upgrade-Insecure-Requests': 1,\n },\n })\n .then(() => {\n setFormSubmissionResponse({\n submitted: true,\n shouldDisplayMessage: true,\n });\n\n setFormValues(() => initialFormState);\n })\n .catch((err) => {\n console.error(`Failed: `, err);\n setFormSubmissionResponse({\n submitted: false,\n shouldDisplayMessage: true,\n });\n });\n\n return true;\n }\n\n if (firstErrorField) {\n let inputField;\n\n if (firstErrorField === FormDataKey.recaptcha) {\n inputField = document.querySelector('recaptcha-checkbox-border');\n } else {\n inputField = document.getElementById(firstErrorField);\n }\n\n if (inputField) {\n (inputField as HTMLElement).focus();\n }\n }\n\n return false;\n };\n\n const handleRadioChange = (event: any) => {\n const { name, value } = event.target;\n\n setFormValues({\n ...formValues,\n [name]: {\n ...formValues[name as FormDataKey],\n value,\n },\n });\n };\n\n return formSubmissionResponse.shouldDisplayMessage && formSubmissionResponse.submitted ? (\n
\n \n {t('residentialMortgages.form.submissionValidation.success')}\n

\n
\n ) : (\n \n \n \n
\n
\n

{t('residentialMortgages.form.htbClient.label')}

\n \n \n
\n
\n {formValues.htbClient.value === yesLabel ? (\n <>\n
\n
\n

{t('residentialMortgages.form.leverageHome.label')}

\n \n \n
\n
\n \n \n
\n \n
\n\n {formSubmissionResponse.shouldDisplayMessage && !formSubmissionResponse.submitted && (\n \n {t('residentialMortgages.form.submissionValidation.error')}\n \n )}\n\n {areFormValuesInvalid && (\n \n {t('residentialMortgages.form.genericErrorMessage')}\n \n )}\n\n \n {t('residentialMortgages.form.submitLabel')}\n \n \n ) : null}\n {formValues.htbClient.value === noLabel ? (\n
\n

{t('residentialMortgages.form.findBroker.description')}

\n \n {t('residentialMortgages.form.findBroker.buttonLabel')}\n \n
\n ) : null}\n \n );\n};\n\nexport default ResidentialMortgagesForm;\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 from 'react';\nimport { PageProps } from 'gatsby';\nimport { WithTranslation, withTranslation, Trans } from 'react-i18next';\nimport Layout, { LayoutOptions, HeroSectionColors } from '../../../../../components/Layout/Layout';\nimport { LocaleNameSpaceKeys } from '../../../../../localization/translations';\nimport PageMenu from '../../../../../components/PageMenu/PageMenu';\nimport residentialMortgagesMenu from '../../../../../data/page-menus/residential-mortgages';\nimport ExternalLink from '../../../../../components/ExternalLink/ExternalLink';\nimport CommonData from '../../../../../data/common/common';\nimport Form, { FormFor } from '../../../../../components/ResidentialMortgages/Form';\n\ntype Props = PageProps & WithTranslation;\n\nconst RefinancingMortgageForm: React.FC = (props) => {\n const { t } = props;\n\n const layoutOptions: LayoutOptions = {\n seo: {\n title: t(`refinancingMortgage.seo.title`),\n },\n page: {\n title: t(`refinancingMortgage.heading`),\n },\n heroSection: {\n options: {\n accentColor: HeroSectionColors.SKY_BLUE,\n heroImage: {\n fileName: 'hero-image-12.jpg',\n alt: 'Image',\n },\n },\n },\n };\n\n return (\n \n
    \n
    \n
    \n
    \n

    \n \n \n {CommonData.tollFreeCustomerServiceNumber.mortgageServicing}\n \n \n

    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n );\n};\n\nexport default withTranslation(LocaleNameSpaceKeys.CUSTOMER_CENTRE)(RefinancingMortgageForm);\n","import React, { FormEvent, HTMLProps } from 'react';\nimport classNames from 'classnames';\nimport { useTranslation } from 'react-i18next';\n\nimport { LocaleNameSpaceKeys } from '../../../localization/translations';\nimport ErrorMessage from '../../ErrorMessage/ErrorMessage';\nimport './style.scss';\n\nexport interface TextAreaOptions {\n label: string;\n textAreaProps?: HTMLProps;\n}\n\nexport interface SelectOption {\n label: string;\n value: string;\n selected?: boolean;\n disabled?: boolean;\n}\n\ninterface OwnProps {\n id: string;\n className?: string;\n options: TextAreaOptions;\n isInvalid?: boolean;\n validationMessage?: string;\n onChange?: (...args: any[]) => any;\n required?: boolean;\n}\n\ntype Props = OwnProps;\n\nconst TextArea: React.FC = ({\n className = '',\n id,\n options,\n onChange = () => {},\n isInvalid,\n validationMessage = '',\n required,\n}) => {\n const { t } = useTranslation();\n\n const handleOnChange = (event: FormEvent) => {\n onChange(event.currentTarget.value, id);\n };\n\n const errorMessage =\n !!isInvalid && validationMessage ? (\n {validationMessage}\n ) : null;\n\n const TextAreaClassNames = classNames('TextArea', className, {\n 'TextArea__is-invalid': !!isInvalid,\n });\n\n const inputAria = validationMessage ? { 'aria-describedby': `error-${id}` } : {};\n const requiredLabel = t(`${LocaleNameSpaceKeys.COMMON}:requiredField`);\n const label = required ? `${options.label} ${requiredLabel}` : options.label;\n\n return (\n
    \n \n
    \n