{"version":3,"sources":["webpack:///./src/components/PageMenu/PageMenu.tsx","webpack:///./src/components/ButtonLink/ButtonLink.tsx","webpack:///./src/components/DownloadBlock/DownloadBlock.tsx","webpack:///./src/components/primitives/NativeSelect/NativeSelect.tsx","webpack:///./src/pages/broker-centre/broker-portal/approved-appraiser-list/index.tsx","webpack:///./src/data/page-menus/broker-centre.ts"],"names":["PageMenu","menu","menuTitle","className","t","useTranslation","map","menuItem","i","key","textKey","to","iconOptions","icon","IconTypes","ARROW_NEXT","linkOptions","shouldEnableActiveState","enableActiveState","memo","ButtonLinkType","ButtonLinkSize","defaultLinkOptions","isExternalLink","shouldOpenInNewTab","defaultStyleOptions","isInline","type","PRIMARY","size","LARGE","invertColors","ButtonLink","styleOptions","aLinkProps","children","ariaLabel","styleOptionsWithDefault","linkOptionsWithDefault","classNames","classnames","small","SMALL","aLinkPropsDefault","href","target","rel","linkProps","partiallyActive","activeClassName","undefined","getIcon","IconComp","className_","position","React","Fragment","role","DownloadBlock","heading","body","downloadLinks","defaultButtonOptions","DOWNLOAD","headingToRender","headingLabel","props","item","opts","buttonOptionOverrides","label","LocaleNameSpaceKeys","COMMON","NativeSelect","id","options","onChange","isInvalid","validationMessage","selectOptions","showArrow","required","errorMessage","NativeSelectClassNames","inputAria","requiredLabel","htmlFor","event","currentTarget","value","selectProps","opt","ARROW_DOWN","InputErrorType","query","withTranslation","BROKER_PORTAL","data","graphqlData","activeLocaleTag","useLocaleContext","layoutOptions","seo","title","page","heroSection","accentColor","HeroSectionColors","PARROT_GREEN","heroImage","fileName","alt","appraisalsInput","setAppraisalsInput","useState","results","setResult","formState","setFormState","submitted","submitting","shouldDisplayErrorMessage","searchTypeOptions","searchType","setSearchType","validateAndParseValue","validationResults","trim","valid","errorType","EMPTY","validatedState","inputErrorType","emptyField","invalidCharacters","getErrorValidationMessage","returnObjects","downloadLinksAppraisalBestPractices","downloadLinksAppraisalRequirements","ariaLabels","src","nas","edges","find","node","name","includes","publicURL","style","width","height","maxWidth","margin","i18nKey","values","email","CommonData","phone","telephoneNumber","aria-label","rps","fixed","solidify","childImageSharp","imgStyle","valueConnect","onSubmit","async","preventDefault","persist","appraisalsInputTempState","prevState","finalObject","fetch","apis","appraisals","qs","stringify","method","headers","client_id","process","client_secret","then","response","json","Array","isArray","AppraisalList","catch","err","console","error","InputType","TEXT","inputProps","SEARCH","disabled","brokerResourcesMenu","length","toUpperCase","filter","row","DoNotUse","AppraiserName","Province","CoverageArea","PhoneNumber","Website","websites","brokerPortal","avm","BROKER_CENTRE_KEY","RouteKeys","BROKER_CENTRE","brokerCentreMenu","getPathFromRouteKey","LENDING_AREAS","APPROVED_APPRAISER_LIST","SLIDING_SCALE_CALCULATOR","MEET_THE_TEAM"],"mappings":"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","file":"component---src-pages-broker-centre-broker-portal-approved-appraiser-list-index-tsx-a0e8b69a1635b062c69c.js","sourcesContent":["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 \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, { memo, ReactElement, ReactNode } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport ButtonLink, {\n ButtonLinkIconOptions,\n ButtonLinkLinkOptions,\n ButtonLinkStyleOptions,\n ButtonLinkType,\n ButtonLinkSize,\n} from '../ButtonLink/ButtonLink';\nimport { IconTypes } from '../Icon/Icon';\nimport { LocaleNameSpaceKeys } from '../../localization/translations';\nimport './style.scss';\n\nexport interface DownloadLink {\n to: string;\n label: string;\n buttonOptionOverrides?: {\n iconOptions?: ButtonLinkIconOptions;\n linkOptions?: ButtonLinkLinkOptions;\n styleOptions?: ButtonLinkStyleOptions;\n };\n}\n\ninterface OwnProps {\n heading?: string | ReactNode;\n body?: any;\n className?: string;\n children?: React.ReactNode;\n downloadLinks: DownloadLink[];\n}\n\ntype Props = OwnProps;\n\nconst DownloadBlock: React.FC = ({\n heading,\n body,\n downloadLinks,\n children,\n className = '',\n}) => {\n const { t } = useTranslation();\n\n const defaultButtonOptions = {\n iconOptions: {\n icon: IconTypes.DOWNLOAD,\n } as ButtonLinkIconOptions,\n linkOptions: {\n isExternalLink: true,\n shouldOpenInNewTab: true,\n } as ButtonLinkLinkOptions,\n styleOptions: {\n type: ButtonLinkType.PRIMARY,\n size: ButtonLinkSize.SMALL,\n isInline: true,\n invertColors: true,\n } as ButtonLinkStyleOptions,\n };\n\n const headingToRender = typeof heading === 'string' ?

    {heading}

    : heading || null;\n\n const headingLabel =\n typeof heading === 'object' ? (heading as ReactElement)?.props.children : heading;\n\n const getButtons = () => {\n return downloadLinks.map((item, i) => {\n const opts = {\n to: item.to,\n ...defaultButtonOptions,\n ...item.buttonOptionOverrides,\n };\n return (\n
  • \n \n {item.label}\n \n
  • \n );\n });\n };\n\n return (\n
    \n {headingToRender}\n {body}\n
      {getButtons()}
    \n {children}\n
    \n );\n};\n\nexport default memo(DownloadBlock);\n","import React, { FormEvent, HTMLProps } from 'react';\nimport classNames from 'classnames';\nimport { useTranslation } from 'react-i18next';\n\nimport ErrorMessage from '../../ErrorMessage/ErrorMessage';\nimport Icon, { IconTypes } from '../../Icon/Icon';\nimport { LocaleNameSpaceKeys } from '../../../localization/translations';\nimport './style.scss';\n\nexport interface NativeSelectPropOptions {\n label: string;\n placeHolder?: string;\n selectProps?: 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: NativeSelectPropOptions;\n isInvalid?: boolean;\n validationMessage?: string;\n selectOptions: SelectOption[];\n onChange?: (...args: any[]) => any;\n showArrow?: boolean;\n required?: boolean;\n}\n\ntype Props = OwnProps;\n\nconst NativeSelect: React.FC = ({\n className = '',\n id,\n options,\n onChange = () => {},\n isInvalid,\n validationMessage = '',\n selectOptions,\n showArrow = true,\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 NativeSelectClassNames = classNames('NativeSelect', className, {\n 'NativeSelect__is-invalid': !!isInvalid,\n });\n\n const getSelectOptions = () => {\n return selectOptions.map((opt, i) => {\n return (\n \n );\n });\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 \n {showArrow ? : null}\n
    \n {errorMessage}\n
    \n );\n};\n\nexport default NativeSelect;\n","import React, { useState } from 'react';\nimport { PageProps, graphql } from 'gatsby';\nimport Img from 'gatsby-image';\nimport qs from 'qs';\nimport { WithTranslation, withTranslation, Trans } from 'react-i18next';\n\nimport { LocaleNameSpaceKeys } from '../../../../localization/translations';\nimport brokerResourcesMenu from '../../../../data/page-menus/broker-centre';\nimport PageMenu from '../../../../components/PageMenu/PageMenu';\nimport Layout, { LayoutOptions, HeroSectionColors } from '../../../../components/Layout/Layout';\nimport Input, { InputType } from '../../../../components/primitives/Input/Input';\nimport { IconTypes } from '../../../../components/Icon/Icon';\nimport Button from '../../../../components/primitives/Button/Button';\nimport ErrorMessage from '../../../../components/ErrorMessage/ErrorMessage';\nimport CommonData from '../../../../data/common/common';\nimport ExternalLink from '../../../../components/ExternalLink/ExternalLink';\nimport DownloadBlock from '../../../../components/DownloadBlock/DownloadBlock';\nimport { useLocaleContext } from '../../../../context/Locale';\n\nimport NativeSelect, {\n SelectOption,\n} from '../../../../components/primitives/NativeSelect/NativeSelect';\n\nimport './style.scss';\n\ntype Props = PageProps & WithTranslation;\n\nenum InputErrorType {\n EMPTY = 'EMPTY',\n INVALID_CHARACTERS = 'INVALID_CHARACTERS',\n}\n\nconst ApprovedAppraiserList: React.FC = (props) => {\n const { t, data: graphqlData } = props;\n const { activeLocaleTag } = useLocaleContext();\n\n const layoutOptions: LayoutOptions = {\n seo: {\n title: t('approvedAppraiserList.seo.title'),\n },\n page: {\n title: t('approvedAppraiserList.heading'),\n },\n heroSection: {\n options: {\n accentColor: HeroSectionColors.PARROT_GREEN,\n heroImage: {\n fileName: 'hero-image-4.jpg',\n alt: 'Image',\n },\n },\n },\n };\n\n const initialState = {\n value: '',\n isInvalid: false,\n validationMessage: '',\n };\n\n const [appraisalsInput, setAppraisalsInput] = useState(initialState);\n const [results, setResult] = useState([]);\n\n const [formState, setFormState] = useState({\n submitted: false,\n submitting: false,\n shouldDisplayErrorMessage: false,\n });\n\n const searchTypeOptions: SelectOption[] = [\n {\n label: t('approvedAppraiserList.form.searchBy.appraiserName'),\n value: 'appraiserName',\n },\n {\n label: t('approvedAppraiserList.form.searchBy.province'),\n value: 'province',\n },\n {\n label: t('approvedAppraiserList.form.searchBy.coverageArea'),\n value: 'coverageArea',\n },\n ];\n\n const [searchType, setSearchType] = useState(searchTypeOptions[0].value);\n const handleSearchTypeChange = (value: string) => setSearchType(value);\n\n const validateInput = (value: string): { valid: boolean; errorType: InputErrorType | null } => {\n if (value.trim()) {\n return { valid: true, errorType: null };\n }\n\n return { valid: false, errorType: InputErrorType.EMPTY };\n };\n\n const getErrorValidationMessage = (\n inputErrorType: InputErrorType,\n validationMessage: { emptyField: string; invalidCharacters: string }\n ): string => {\n if (inputErrorType === InputErrorType.EMPTY) {\n return validationMessage.emptyField;\n }\n\n return validationMessage.invalidCharacters;\n };\n\n const validateAndParseValue = () => {\n const validationResults = validateInput(appraisalsInput.value);\n\n const validatedState = {\n ...appraisalsInput,\n validationMessage: '',\n isInvalid: false,\n };\n\n validatedState.isInvalid = !validationResults.valid;\n\n if (!validationResults.valid && validationResults.errorType) {\n const validationMessage = getErrorValidationMessage(\n validationResults.errorType,\n t('approvedAppraiserList.form.appraisalsInput.validationMessage', { returnObjects: true })\n );\n validatedState.validationMessage = validationMessage;\n }\n\n return validatedState;\n };\n\n const handleFormChange = (value: string) => {\n setAppraisalsInput((prevState) => ({\n ...prevState,\n value,\n }));\n };\n\n const handleSubmit = async (event: any) => {\n event.preventDefault();\n event.persist();\n\n const appraisalsInputTempState = validateAndParseValue();\n\n setAppraisalsInput((prevState) => ({\n ...prevState,\n ...appraisalsInputTempState,\n }));\n\n if (appraisalsInputTempState.isInvalid) {\n return false;\n }\n\n const finalObject = {\n [searchType]: appraisalsInputTempState.value,\n };\n\n setFormState((prevState) => ({\n ...prevState,\n submitting: true,\n submitted: false,\n }));\n\n await fetch(\n `${process.env.GATSBY_API_URL}${CommonData.apis.appraisals}?${qs.stringify(finalObject)}`,\n {\n method: 'GET',\n // @ts-ignore\n headers: {\n 'Content-Type': 'application/json',\n client_id: process.env.GATSBY_LENDING_AREAS_CLIENT_ID,\n client_secret: process.env.GATSBY_LENDING_AREAS_CLIENT_SECRET,\n },\n }\n )\n .then((response) => response.json())\n .then((data) => {\n if (Array.isArray(data.AppraisalList)) {\n setResult(data.AppraisalList);\n } else {\n setFormState((prevState) => ({\n ...prevState,\n submitting: false,\n submitted: true,\n shouldDisplayErrorMessage: true,\n }));\n return;\n }\n setFormState((prevState) => ({\n ...prevState,\n submitting: false,\n submitted: true,\n shouldDisplayErrorMessage: false,\n }));\n })\n .catch((err) => {\n console.error(`Failed: `, err);\n setFormState((prevState) => ({\n ...prevState,\n submitting: false,\n submitted: true,\n shouldDisplayErrorMessage: true,\n }));\n });\n\n return true;\n };\n\n const getResultRows = () => {\n return results\n .filter((row: any) => row.DoNotUse !== 'true')\n .map((row: any) => {\n return (\n \n {row.AppraiserName}\n {row.Province}\n {row.CoverageArea}\n {row.PhoneNumber}\n \n {row.Website && row.Website !== 'n/a' ? (\n {row.Website}\n ) : (\n row.Website\n )}\n \n \n );\n });\n };\n\n const downloadLinksAppraisalBestPractices = [\n {\n to: `/downloads/approved-appraiser-list/PRESS_AppraisalBestPractice_10July2020.pdf`,\n label: t(`${LocaleNameSpaceKeys.COMMON}:english`),\n },\n {\n to: `/downloads/approved-appraiser-list/PRESS_PratiquesExemplairesEvaluation_10July2020.pdf`,\n label: t(`${LocaleNameSpaceKeys.COMMON}:french`),\n },\n ];\n\n const downloadLinksAppraisalRequirements = [\n {\n to: `/downloads/approved-appraiser-list/AppraisalRequirements_13Sept2022.pdf`,\n label: t(`${LocaleNameSpaceKeys.COMMON}:english`),\n },\n {\n to: `/downloads/approved-appraiser-list/ListesExigencesEvaluation_20Dec2022.pdf`,\n label: t(`${LocaleNameSpaceKeys.COMMON}:french`),\n },\n ];\n\n const ariaLabels = {\n email: t(`${LocaleNameSpaceKeys.COMMON}:email`),\n tollFree: t(`${LocaleNameSpaceKeys.COMMON}:tollFree`),\n phoneNumber: t(`${LocaleNameSpaceKeys.COMMON}:phoneNumber`),\n };\n\n return (\n \n
    \n
    \n
    \n
    \n

    {t('approvedAppraiserList.body')}

    \n
    \n
    \n
    \n
    \n
    \n \n item.node.name.includes(activeLocaleTag)\n ).node.publicURL\n }\n style={{\n width: '100%',\n height: '100%',\n maxWidth: '120px',\n margin: '2rem 1.5rem',\n }}\n />\n
    \n
    \n

    \n \n \n \n \n

    \n
    \n
    \n
    \n
    \n \n item.node.name.includes(activeLocaleTag)\n ).node.publicURL\n }\n style={{\n width: '100%',\n height: '100%',\n maxWidth: '120px',\n margin: '2rem 1.5rem',\n }}\n />\n
    \n
    \n

    \n \n \n \n \n

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

    \n \n \n \n \n

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

    \n \n \n \n \n

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

    {t('approvedAppraiserList.bodyTwo')}

    \n
    \n

    {t('approvedAppraiserList.form.appraisalsInput.label')}

    \n
    \n
    \n
    \n ,\n inputProps: {\n name: 'name',\n value: appraisalsInput.value,\n },\n }}\n required\n onChange={handleFormChange}\n />\n
    \n
    \n \n
    \n
    \n\n {formState.submitted && formState.shouldDisplayErrorMessage && (\n {t('lendingAreas.form.submissionValidation.error')}\n )}\n \n {formState.submitting\n ? t('lendingAreas.form.submittingLabel')\n : t('lendingAreas.form.submitLabel')}\n \n \n
    \n \n
    \n {formState.submitted && results.length > 0 && (\n
    \n \n \n \n \n \n \n \n \n \n \n {getResultRows()}\n
    \n {t('approvedAppraiserList.form.searchBy.appraiserName').toUpperCase()}\n {t('approvedAppraiserList.form.searchBy.province').toUpperCase()}{t('approvedAppraiserList.form.searchBy.coverageArea').toUpperCase()}{t(`${LocaleNameSpaceKeys.COMMON}:phoneNumber`).toUpperCase()}{t(`${LocaleNameSpaceKeys.COMMON}:website`).toUpperCase()}
    \n
    \n )}\n {formState.submitted && results.length === 0 && (\n

    {t('approvedAppraiserList.form.noMatch')}

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

    {t('approvedAppraiserList.autoValuationModel.title')}

    \n

    \n \n \n \n

    \n
    \n
    \n \n \n

    \n }\n downloadLinks={downloadLinksAppraisalBestPractices}\n />\n \n \n

    \n }\n downloadLinks={downloadLinksAppraisalRequirements}\n />\n
    \n
    \n
    \n
    \n );\n};\n\nexport const query = graphql`\n query {\n solidify: file(relativePath: { eq: \"solidify.png\" }) {\n childImageSharp {\n fixed(width: 150, quality: 100) {\n ...GatsbyImageSharpFixed_withWebp\n }\n }\n }\n valueConnect: file(relativePath: { eq: \"value-connect.png\" }) {\n childImageSharp {\n fixed(width: 150, quality: 100) {\n ...GatsbyImageSharpFixed_withWebp\n }\n }\n }\n rps: allFile(filter: { relativePath: { regex: \"/rps/\" }, ext: { eq: \".png\" } }) {\n edges {\n node {\n name\n publicURL\n }\n }\n }\n nas: allFile(filter: { relativePath: { regex: \"/nas/\" }, ext: { eq: \".png\" } }) {\n edges {\n node {\n name\n publicURL\n }\n }\n }\n }\n`;\n\nexport default withTranslation(LocaleNameSpaceKeys.BROKER_PORTAL)(ApprovedAppraiserList);\n","import RouteKeys from '../../../config/RouteKeys';\nimport { PageMenuLinks } from './pageMenuTypes';\nimport { getPathFromRouteKey } from '../../shared/utils/getPathFromRouteKey';\n\nconst BROKER_CENTRE_KEY = RouteKeys.BROKER_CENTRE;\n\nconst brokerCentreMenu: PageMenuLinks = [\n {\n to: getPathFromRouteKey(BROKER_CENTRE_KEY.BROKER_PORTAL),\n textKey: 'pageTitles.brokerPortal',\n enableActiveState: false,\n },\n {\n to: getPathFromRouteKey(BROKER_CENTRE_KEY.BROKER_PORTAL.LENDING_AREAS),\n textKey: 'pageTitles.lendingAreas',\n },\n {\n to: getPathFromRouteKey(BROKER_CENTRE_KEY.BROKER_PORTAL.APPROVED_APPRAISER_LIST),\n textKey: 'pageTitles.approvedAppraiserList',\n },\n {\n to: getPathFromRouteKey(BROKER_CENTRE_KEY.BROKER_PORTAL.SLIDING_SCALE_CALCULATOR),\n textKey: 'pageTitles.slidingScaleCalculator',\n },\n {\n to: getPathFromRouteKey(BROKER_CENTRE_KEY.MEET_THE_TEAM),\n textKey: 'pageTitles.meetTheTeam',\n },\n];\n\nexport default brokerCentreMenu;\n"],"sourceRoot":""}