{"version":3,"file":"static/js/101.939c5213.chunk.js","mappings":"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","sources":["webpack://naf.connect/./src/app/shared/components/app-modal/app-modal.module.scss?0611","app/shared/components/app-modal/app-modal.component.tsx","app/shared/components/app-modal/app-modal.theme.ts","webpack://naf.connect/./src/app/shared/components/astrik/astrik.module.scss?5b69","app/shared/components/astrik/astrik.component.tsx","webpack://naf.connect/./src/app/shared/components/card/card.component.module.scss?7df1","app/shared/components/card/card.component.tsx","app/shared/components/custom-button/custom-button.theme.ts","app/shared/components/custom-loading-button/custom-loading-button.component.tsx","webpack://naf.connect/./src/app/shared/components/custom-phone-input/custom-phone-input.module.scss?ffbd","app/shared/components/custom-phone-mask/custom-phone-mask.component.tsx","app/shared/components/custom-phone-input/custom-phone-input.component.tsx","app/shared/components/custom-select-field/custom-select-missing-field.theme.ts","app/shared/components/custom-select-field/custom-select.theme.ts","app/shared/components/custom-text-field/custom-text-field-field-missing.theme.ts","app/shared/components/custom-text-field/custom-text-field.theme.ts","webpack://naf.connect/./src/app/shared/components/experience-rating/experience-rating.module.scss?51c4","app/shared/components/experience-rating/experience-rating.component.tsx","webpack://naf.connect/./src/app/shared/components/feature-header/feature-header.module.scss?f0b9","app/shared/components/feature-header/feature-header.component.tsx","webpack://naf.connect/./src/app/shared/components/heading/heading.module.scss?47de","app/shared/components/heading/heading.component.tsx","app/shared/components/custom-text-field/custom-text-field.component.tsx","app/shared/components/custom-button/custom-button.component.tsx","app/shared/components/custom-icon-button/custom-icon-button.theme.ts","app/shared/components/custom-icon-button/custom-icon-button.component.tsx","app/shared/components/social-sign-on-button/social-sign-on-button.component.tsx","webpack://naf.connect/./src/app/shared/components/legal/footer-legal/footer-legal.module.scss?c621","app/shared/components/legal/footer-legal/footer-legal.component.tsx","webpack://naf.connect/./src/app/shared/components/legal/header-legal/header-legal.module.scss?d9ea","app/shared/components/legal/header-legal/header-legal.component.tsx","app/shared/components/password-rules/password-rules.theme.ts","webpack://naf.connect/./src/app/shared/components/password-rules/password-rules.module.scss?b703","app/shared/components/password-rules/password-rules.component.tsx","webpack://naf.connect/./src/app/shared/components/custom-password-text-field/custom-password-text-field.module.scss?02a4","app/shared/components/custom-password-text-field/custom-password-text-field.theme.ts","app/shared/components/custom-password-text-field/custom-password-text-field.component.tsx","app/shared/components/custom-select-field/custom-select-state-field.component.tsx","app/shared/components/custom-tooltip/custom-tooltip.component.tsx","webpack://naf.connect/./src/app/shared/components/count/count.module.scss?bf70","app/shared/components/count/count.component.tsx","app/shared/components/custom-form-checkbox/custom-form-checkbox.theme.ts","app/shared/components/custom-form-checkbox/custom-form-checkbox.component.tsx","app/shared/components/notification-icon/notification-icon.component.tsx","app/shared/components/default-loan-officer-image/default-loan-officer-image.component.tsx","app/shared/components/custom-image-tag/custom-image-tag.component.tsx","app/shared/components/address-autocomplete/address-autocomplete.theme.ts","app/shared/components/address-autocomplete/address-autocomplete-missing-fields.theme.ts","app/shared/components/address-autocomplete/address-autocomplete.component.tsx","app/shared/components/custom-client-chip/custom-client-chip.theme.ts","app/shared/components/custom-client-chip/custom-client-chip.component.tsx","app/shared/components/faq/faq.theme.ts","app/shared/components/faq/faq.component.tsx","webpack://naf.connect/./src/app/shared/components/announcements/announcements.module.scss?70fd","webpack://naf.connect/./src/app/shared/components/announcements/announcements-close-icon/announcements.close-icon.module.scss?8221","app/shared/components/announcements/announcements-close-icon/announcement-close-icon.component.tsx","app/shared/components/announcements/announcements.component.tsx","webpack://naf.connect/./src/app/shared/components/fixed-position-container/fixed-position-container.module.scss?3751","app/shared/components/fixed-position-container/fixed-position-container.component.tsx","webpack://naf.connect/./src/app/shared/components/clickable-container/clickable-container.module.scss?38d6","app/shared/components/clickable-container/clickable-container.component.tsx","webpack://naf.connect/./src/app/shared/components/back-link/back-link.module.scss?20b7","app/shared/components/back-link/back-link.component.tsx","app/shared/components/custom-radio-group/custom-radio-group.theme.ts","app/shared/components/custom-radio-group/custom-radio-group.component.tsx","webpack://naf.connect/./src/app/shared/components/expandable-radio-button/expandable-radio-button.module.scss?80e3","app/shared/components/expandable-radio-button/expandable-radio-button.component.tsx","app/shared/components/memoized-image-component/memoized-image.component.tsx","app/shared/components/autocomplete-text-field/autocomplete-text-field.component.tsx","app/shared/styled/pdf-preview-details.styled.ts","app/shared/styled/pdf-preview.styled.ts","app/shared/components/co-branded-preview/co-branded-preview.component.tsx","app/shared/styled/div.styled.ts","webpack://naf.connect/./src/app/shared/components/co-branded-preview-details/components/layout-two/layout-two.module.scss?bf52","app/shared/components/co-branded-preview-details/components/layout-two/layout-two.component.tsx","webpack://naf.connect/./src/app/shared/components/co-branded-preview-details/components/layout-one/layout-one.module.scss?1267","app/shared/components/co-branded-preview-details/components/layout-one/layout-one.component.tsx","webpack://naf.connect/./src/app/shared/components/co-branded-preview-details/components/layout-three/layout-three.module.scss?5a3a","app/shared/components/co-branded-preview-details/components/layout-three/layout-three.component.tsx","app/shared/components/co-branded-preview-details/cobranded-preview-details.component.tsx","app/shared/components/favorite-icon/favorite-icon.component.tsx","webpack://naf.connect/./src/app/shared/components/container-clickable/container-clickable.module.scss?6bab","app/shared/components/container-clickable/container-clickable.component.tsx","webpack://naf.connect/./src/app/shared/components/plus-minus-icon/plus-minus-icon.module.scss?d2c0","app/shared/components/plus-minus-icon/plus-minus-icon.component.tsx","webpack://naf.connect/./src/app/shared/components/custom-drop-down/custom-drop-down.module.scss?6004","app/shared/components/custom-drop-down/custom-drop-down.component.tsx","app/shared/components/svg-icons/cheveron-down.component.tsx","webpack://naf.connect/./src/app/shared/components/preferred-loan-officer-card/preferred-loan-officer-card.module.scss?90cf","app/shared/components/preferred-loan-officer-card/preferred-loan-officer-card.component.tsx","app/shared/components/svg-icons/marketing-naf-connect-logo.component.tsx","webpack://naf.connect/./src/app/shared/components/template-viewer/template-viewer.module.scss?f38e","app/shared/components/template-viewer/template-viewer.component.tsx","app/shared/enums/responsive-layout.enum.ts","app/shared/helpers/template-data.helper.tsx","app/shared/hooks/use-modal.ts","app/shared/hooks/use-select-state-error.hook.ts","app/shared/hooks/use-mui-media-query.hook.ts","app/shared/hooks/use-scroll-top-offset.ts","app/shared/hooks/use-resize-observer.ts","app/shared/hooks/use-image-loaded.hook.tsx","app/shared/hooks/use-autocomplete.hook.ts","app/shared/hooks/use-navigate-on-key-down.hook.ts","app/shared/hooks/use-templates.hook.ts","app/shared/hooks/use-template-data.hook.ts","app/shared/hooks/use-which-layout.hook.ts","app/shared/hooks/use-pdf-controls.hook.ts","app/shared/hooks/use-social-sign-on.hook.ts","app/shared/hooks/use-naf-connect-images.hook.ts","webpack://naf.connect/./src/app/shared/components/custom-select-field/custom-select-field.module.scss?7594"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"modalHeading\":\"app-modal_modalHeading__CxI1P\",\"modalHeading__text\":\"app-modal_modalHeading__text__iRNHg\"};","import React, { ReactElement, ReactNode } from 'react';\r\n\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport { Dialog, DialogContent, IconButton, ThemeProvider } from '@mui/material';\r\nimport classnames from 'classnames';\r\nimport { theme } from './app-modal.theme';\r\nimport styles from './app-modal.module.scss';\r\n\r\ninterface AppModalProps {\r\n    children: ReactNode;\r\n    heading?: string;\r\n    headingImgSrc?: string;\r\n    open: boolean;\r\n    className?: string;\r\n    headingClassName?: string;\r\n    handleClose: React.MouseEventHandler<HTMLButtonElement>;\r\n}\r\n\r\nexport const AppModal = (props: AppModalProps): ReactElement => {\r\n    const {\r\n        children,\r\n        heading = undefined,\r\n        open,\r\n        headingImgSrc = undefined,\r\n        className = undefined,\r\n        headingClassName = undefined,\r\n        handleClose,\r\n    } = props;\r\n\r\n    return (\r\n        <ThemeProvider theme={theme}>\r\n            <Dialog open={open} aria-labelledby=\"alert-dialog-title\" data-testid=\"app-modal\">\r\n                {headingImgSrc && <img alt=\"Dialog Heading\" src={headingImgSrc} />}\r\n\r\n                <IconButton\r\n                    style={{ zIndex: 999 }}\r\n                    aria-label=\"close\"\r\n                    onClick={handleClose}\r\n                    data-testid=\"app-modal__close-button\"\r\n                >\r\n                    <CloseIcon />\r\n                </IconButton>\r\n\r\n                {heading && (\r\n                    <div className={styles.modalHeading} data-testid=\"app-modal__heading\">\r\n                        <h5\r\n                            className={classnames(styles.modalHeading__text, {\r\n                                [headingClassName as string]: headingClassName,\r\n                            })}\r\n                            id=\"alert-dialog-title\"\r\n                        >\r\n                            {heading}\r\n                        </h5>\r\n                    </div>\r\n                )}\r\n\r\n                <DialogContent className={className}>{children}</DialogContent>\r\n            </Dialog>\r\n        </ThemeProvider>\r\n    );\r\n};\r\n","import { Color } from 'app/shared/enums';\r\nimport { pxToRem } from 'app/shared/helpers';\r\nimport appTheme from 'app/shared/themes/app.theme';\r\n\r\nimport { createTheme } from '@mui/material';\r\n\r\nexport const theme = createTheme({\r\n    components: {\r\n        MuiSvgIcon: {\r\n            styleOverrides: {\r\n                root: {\r\n                    fontSize: pxToRem(16),\r\n                },\r\n            },\r\n        },\r\n        MuiIconButton: {\r\n            styleOverrides: {\r\n                root: {\r\n                    position: 'absolute',\r\n                    right: 0,\r\n                    top: 0,\r\n                    width: pxToRem(28),\r\n                    height: pxToRem(28),\r\n                    '&:hover': {\r\n                        backgroundColor: `${Color.dustGray}`,\r\n                        '& > *': {\r\n                            fill: `${Color.white}`,\r\n                        },\r\n                    },\r\n                    '&:focus': {\r\n                        backgroundColor: `${Color.dustGray}`,\r\n                        '& > *': {\r\n                            fill: `${Color.white}`,\r\n                        },\r\n                    },\r\n                },\r\n            },\r\n        },\r\n        MuiDialog: {\r\n            styleOverrides: {\r\n                root: {\r\n                    background: 'RGBA(1, 53, 96, .7)',\r\n                },\r\n                paper: {\r\n                    border: `${pxToRem(2)} solid ${Color.lightGrey2}`,\r\n                    borderRadius: pxToRem(10),\r\n                    boxShadow: `\r\n                        ${pxToRem(10)} \r\n                        ${pxToRem(10)} \r\n                        ${pxToRem(10)} ${Color.cornflowerBlue}`,\r\n                    margin: 0,\r\n                    maxWidth: 'inherit',\r\n                },\r\n            },\r\n        },\r\n        MuiDialogContent: {\r\n            styleOverrides: {\r\n                root: {\r\n                    padding: pxToRem(15),\r\n                    [appTheme.breakpoints.up('tablet')]: {\r\n                        padding: pxToRem(28),\r\n                    },\r\n                },\r\n            },\r\n        },\r\n        MuiPaper: {\r\n            styleOverrides: {\r\n                root: {\r\n                    margin: 0,\r\n                    [appTheme.breakpoints.down('xs')]: {\r\n                        margin: `0 ${pxToRem(16)}`,\r\n                    },\r\n                },\r\n            },\r\n        },\r\n    },\r\n});\r\n","// extracted by mini-css-extract-plugin\nexport default {\"required\":\"astrik_required__WB0dM\"};","import React, { ReactElement } from 'react';\r\n\r\nimport styles from './astrik.module.scss';\r\n\r\nexport const Astrik = (): ReactElement => <span className={styles.required}>*</span>;\r\n","// extracted by mini-css-extract-plugin\nexport default {\"card\":\"card_component_card__Anmq6\"};","import { ReactElement, ReactNode } from 'react';\r\n\r\nimport styles from './card.component.module.scss';\r\nimport classnames from 'classnames';\r\n\r\ninterface CardProps {\r\n    children: ReactNode;\r\n    className?: string;\r\n}\r\n\r\nexport const Card = ({ children, className }: CardProps): ReactElement => (\r\n    <div className={classnames(styles.card, className)} data-testid=\"card-component\">\r\n        {children}\r\n    </div>\r\n);\r\n\r\nCard.defaultProps = { className: undefined };\r\n","import { Color, MuiButtonType, MuiColorType } from 'app/shared/enums';\r\nimport { pxToRem } from 'app/shared/helpers';\r\n\r\nimport { createTheme } from '@mui/material';\r\nimport appTheme from 'app/shared/themes/app.theme';\r\n\r\nexport const theme = createTheme({\r\n    components: {\r\n        MuiButton: {\r\n            styleOverrides: {\r\n                root: ({ ownerState }) => ({\r\n                    borderRadius: pxToRem(52),\r\n                    padding: `${pxToRem(10)} ${pxToRem(28)}`,\r\n                    fontSize: pxToRem(16),\r\n                    fontWeight: 500,\r\n                    fontFamily: 'Poppins',\r\n                    letterSpacing: 'normal',\r\n                    '& .css-1gnd1fd-MuiButton-endIcon>*:nth-of-type(1)': {\r\n                        fontSize: pxToRem(16),\r\n                    },\r\n\r\n                    [appTheme.breakpoints.down('desktop')]: {\r\n                        fontSize: pxToRem(14),\r\n                    },\r\n\r\n                    ...(ownerState.variant === MuiButtonType.contained && {\r\n                        backgroundColor: Color.nafPrimaryBlue,\r\n                        color: Color.white,\r\n                        boxShadow: 'none',\r\n                        '&:hover, &:active, &:focus, &:focus-visible': {\r\n                            backgroundColor: Color.primaryButtonHoverBlue,\r\n                            boxShadow: 'none',\r\n                        },\r\n                        '&:disabled': {\r\n                            color: Color.white,\r\n                            backgroundColor: Color.lightGrey3,\r\n                        },\r\n                    }),\r\n\r\n                    ...(ownerState.variant === MuiButtonType.contained &&\r\n                        ownerState.color === MuiColorType.secondary && {\r\n                            backgroundColor: Color.nafSecondaryBlue,\r\n\r\n                            '&:hover, &:active, &:focus, &:focus-visible': {\r\n                                backgroundColor: Color.nafPrimaryBlue,\r\n                                boxShadow: 'none',\r\n                            },\r\n                        }),\r\n\r\n                    ...(ownerState.variant === MuiButtonType.outlined && {\r\n                        color: Color.nafPrimaryBlue,\r\n                        border: `${pxToRem(2)} solid ${Color.nafPrimaryBlue}`,\r\n                        '&:hover, &:active, &:focus, &:focus-visible': {\r\n                            border: `${pxToRem(2)} solid ${Color.nafPrimaryBlue}`,\r\n                            backgroundColor: Color.white,\r\n                            color: Color.nafPrimaryBlue,\r\n                            textDecoration: 'none',\r\n                        },\r\n                        '&:disabled': {\r\n                            border: `${pxToRem(2)} solid ${Color.lightGrey3}`,\r\n                            textDecoration: 'none',\r\n                        },\r\n                    }),\r\n\r\n                    ...(ownerState.variant === MuiButtonType.text && {\r\n                        color: Color.nafPrimaryBlue,\r\n                        fontWeight: 500,\r\n                        fontSize: pxToRem(16),\r\n                        textTransform: 'none',\r\n                        lineHeight: pxToRem(21),\r\n                        fontFamily: 'Roboto',\r\n                        textDecoration: 'underline',\r\n                        '& .css-1gnd1fd-MuiButton-endIcon>*:nth-of-type(1)': {\r\n                            fontSize: pxToRem(16),\r\n                        },\r\n                        padding: 0,\r\n                        minWidth: 'unset',\r\n                        '&:hover, &:active, &:focus, &:focus-visible': {\r\n                            color: Color.nafPrimaryBlue,\r\n                            background: 'transparent',\r\n                            textDecoration: 'underline',\r\n                        },\r\n                    }),\r\n                    ...(ownerState.variant === MuiButtonType.text &&\r\n                        ownerState.color === 'secondary' && {\r\n                            color: Color.darkCharcoal,\r\n                            textDecoration: 'none',\r\n                            fontWeight: 400,\r\n                            '&:hover, &:active, &:focus, &:focus-visible': {\r\n                                backgroundColor: 'transparent',\r\n                                color: Color.darkCharcoal,\r\n                                textDecoration: 'none',\r\n                            },\r\n                        }),\r\n                }),\r\n            },\r\n        },\r\n    },\r\n});\r\n","import { ReactElement, ReactNode } from 'react';\r\n\r\nimport { pxToRem } from 'app/shared/helpers';\r\n\r\nimport { Button, CircularProgress, ThemeProvider } from '@mui/material';\r\n\r\nimport { theme } from '../custom-button/custom-button.theme';\r\nimport { TextTransformType } from 'app/shared/enums';\r\n\r\ninterface CustomLoadingButtonProps {\r\n    children: ReactNode;\r\n    variant: 'text' | 'outlined' | 'contained' | undefined;\r\n    type: 'button' | 'submit' | 'reset' | undefined;\r\n    disabled?: boolean;\r\n    startIcon?: ReactNode;\r\n    endIcon?: ReactNode;\r\n    colorTheme?:\r\n        | 'inherit'\r\n        | 'primary'\r\n        | 'secondary'\r\n        | 'success'\r\n        | 'error'\r\n        | 'info'\r\n        | 'warning'\r\n        | undefined;\r\n    fontSize?: number;\r\n    className?: string;\r\n    textTransform?: TextTransformType;\r\n    onClick?: React.MouseEventHandler<HTMLButtonElement>;\r\n    loading: boolean;\r\n}\r\n\r\nexport const CustomLoadingButton = (props: CustomLoadingButtonProps): ReactElement => {\r\n    const {\r\n        children,\r\n        variant,\r\n        type,\r\n        disabled,\r\n        startIcon,\r\n        endIcon,\r\n        colorTheme,\r\n        fontSize,\r\n        className,\r\n        textTransform = TextTransformType.capitalize,\r\n        onClick,\r\n        loading,\r\n    } = props;\r\n\r\n    return (\r\n        <ThemeProvider theme={theme}>\r\n            <Button\r\n                type={type}\r\n                sx={{ fontSize: fontSize && pxToRem(fontSize), textTransform }}\r\n                variant={variant}\r\n                startIcon={startIcon}\r\n                endIcon={loading ? <CircularProgress data-testid=\"loading\" size={20} /> : endIcon}\r\n                disabled={disabled}\r\n                color={colorTheme}\r\n                className={className}\r\n                disableRipple\r\n                onClick={onClick}\r\n            >\r\n                {children}\r\n            </Button>\r\n        </ThemeProvider>\r\n    );\r\n};\r\n\r\nCustomLoadingButton.defaultProps = {\r\n    disabled: false,\r\n    startIcon: undefined,\r\n    endIcon: undefined,\r\n    colorTheme: undefined,\r\n    className: undefined,\r\n    fontSize: null,\r\n    onClick: undefined,\r\n};\r\n","// extracted by mini-css-extract-plugin\nexport default {\"textField__formGroup\":\"custom-phone-input_textField__formGroup__uMnLp\",\"textField__errorText\":\"custom-phone-input_textField__errorText__ht-w0\",\"textField__alert\":\"custom-phone-input_textField__alert__OOXSn\"};","import { ForwardedRef, forwardRef } from 'react';\r\nimport { IMaskInput } from 'react-imask';\r\n\r\nexport interface CustomPhoneProps {\r\n    onChange: (event: { target: { name: string; value: string } }) => void;\r\n    name: string;\r\n}\r\n\r\nexport const PhoneMaskCustom = forwardRef<HTMLInputElement, CustomPhoneProps>(\r\n    (props, ref: ForwardedRef<HTMLInputElement>) => {\r\n        const { onChange, ...other } = props;\r\n        return (\r\n            <IMaskInput\r\n                {...other}\r\n                mask=\"*##-###-####\"\r\n                unmask\r\n                definitions={{\r\n                    '#': /[0-9]/,\r\n                    '*': /[2-9]/,\r\n                }}\r\n                inputRef={ref}\r\n                onAccept={(value: string): void => {\r\n                    onChange({ target: { name: props.name, value } });\r\n                }}\r\n                overwrite\r\n            />\r\n        );\r\n    }\r\n);\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { ReactElement } from 'react';\r\nimport { Control, Controller } from 'react-hook-form';\r\nimport ErrorOutlinedIcon from '@mui/icons-material/ErrorOutlined';\r\nimport { InputLabel, TextField, Theme, ThemeProvider, Typography } from '@mui/material';\r\nimport { theme } from '../custom-text-field/custom-text-field.theme';\r\nimport styles from './custom-phone-input.module.scss';\r\nimport { missingFieldTheme } from '../custom-text-field/custom-text-field-field-missing.theme';\r\nimport { PhoneMaskCustom } from '../custom-phone-mask/custom-phone-mask.component';\r\n\r\nexport interface CustomPhoneInputProps {\r\n    inputLabel: string;\r\n    id?: string;\r\n    placeholder: string;\r\n    fullWidth?: boolean;\r\n    errorType?: boolean;\r\n    errorMessage?: string;\r\n    requiredInput?: boolean;\r\n    defaultValue?: string;\r\n    disabled?: boolean;\r\n    control: Control<any>;\r\n    register: any;\r\n    autoComplete?: string;\r\n    missingField?: boolean;\r\n    helperText?: string;\r\n    customTheme?: Theme;\r\n    datatestId?: string;\r\n}\r\n\r\nexport const CustomPhoneInput = (props: CustomPhoneInputProps): ReactElement => {\r\n    const {\r\n        inputLabel,\r\n        id,\r\n        placeholder,\r\n        fullWidth,\r\n        errorType,\r\n        errorMessage,\r\n        requiredInput,\r\n        defaultValue,\r\n        disabled,\r\n        control,\r\n        register,\r\n        autoComplete,\r\n        missingField,\r\n        helperText,\r\n        customTheme,\r\n        datatestId,\r\n    } = props;\r\n\r\n    return (\r\n        <ThemeProvider theme={customTheme || (missingField ? missingFieldTheme : theme)}>\r\n            <div className={styles.textField__formGroup}>\r\n                <Controller\r\n                    control={control}\r\n                    name={register.name}\r\n                    render={({ field: { onChange, onBlur, value, name, ref } }): ReactElement => (\r\n                        <>\r\n                            <InputLabel htmlFor={id}>\r\n                                {inputLabel}{' '}\r\n                                {requiredInput && (\r\n                                    <span className={styles.textField__alert}>\r\n                                        {disabled ? '' : '*'}\r\n                                    </span>\r\n                                )}\r\n                            </InputLabel>\r\n                            <TextField\r\n                                id={id}\r\n                                placeholder={placeholder}\r\n                                type=\"tel\"\r\n                                fullWidth={fullWidth}\r\n                                onChange={(event): void => onChange(event.target.value)}\r\n                                value={value}\r\n                                onBlur={onBlur}\r\n                                name={name}\r\n                                inputRef={ref}\r\n                                error={errorType}\r\n                                defaultValue={defaultValue}\r\n                                disabled={disabled}\r\n                                required={requiredInput}\r\n                                autoComplete={autoComplete}\r\n                                InputProps={{\r\n                                    // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n                                    inputComponent: PhoneMaskCustom as any,\r\n                                }}\r\n                                helperText={helperText}\r\n                                data-testid={datatestId}\r\n                            />\r\n                            {errorType && (\r\n                                <Typography>\r\n                                    {errorMessage && <ErrorOutlinedIcon fontSize=\"small\" />}\r\n                                    <span className={styles.textField__errorText}>\r\n                                        {' '}\r\n                                        {errorMessage}\r\n                                    </span>\r\n                                </Typography>\r\n                            )}\r\n                        </>\r\n                    )}\r\n                />\r\n            </div>\r\n        </ThemeProvider>\r\n    );\r\n};\r\n\r\nCustomPhoneInput.defaultProps = {\r\n    errorType: undefined,\r\n    errorMessage: undefined,\r\n    fullWidth: undefined,\r\n    requiredInput: undefined,\r\n    defaultValue: undefined,\r\n    id: undefined,\r\n    disabled: false,\r\n    autoComplete: 'on',\r\n    missingField: false,\r\n    helperText: false,\r\n    customTheme: undefined,\r\n    datatestId: undefined,\r\n};\r\n","import { Color } from 'app/shared/enums';\r\nimport { pxToRem } from 'app/shared/helpers';\r\n\r\nimport { createTheme } from '@mui/material';\r\n\r\nconst ITEM_HEIGHT = 48;\r\nconst ITEM_PADDING_TOP = 8;\r\n\r\nexport const missingFieldTheme = createTheme({\r\n    components: {\r\n        MuiInputLabel: {\r\n            styleOverrides: {\r\n                root: {\r\n                    fontSize: pxToRem(14),\r\n                    color: Color.nafSecondaryBlue,\r\n                },\r\n            },\r\n        },\r\n        MuiOutlinedInput: {\r\n            styleOverrides: {\r\n                root: {\r\n                    height: pxToRem(43),\r\n                    padding: pxToRem(0),\r\n                    '& .MuiOutlinedInput-notchedOutline': {\r\n                        padding: 0,\r\n                        border: `${pxToRem(1)} solid ${Color.nafSecondaryBlue}`,\r\n                    },\r\n                    '&:hover, &:focus, &:focus-visible, &:active': {\r\n                        padding: 0,\r\n                        '& .MuiOutlinedInput-notchedOutline': {\r\n                            border: `${pxToRem(1)} solid ${Color.nafSecondaryBlue}`,\r\n                        },\r\n                    },\r\n                    '&.Mui-focused': {\r\n                        padding: 0,\r\n                        '& .MuiOutlinedInput-notchedOutline': {\r\n                            border: `${pxToRem(1)} solid ${Color.nafSecondaryBlue}`,\r\n                        },\r\n                    },\r\n                    '&.Mui-error': {\r\n                        padding: 0,\r\n                        '& .MuiOutlinedInput-notchedOutline': {\r\n                            border: `${pxToRem(1)} solid ${Color.alert}`,\r\n                        },\r\n                    },\r\n                    '& input': {\r\n                        padding: 0,\r\n                        '&::-webkit-input-placeholder': {\r\n                            color: Color.nafSecondaryBlue,\r\n                        },\r\n                    },\r\n                },\r\n            },\r\n        },\r\n        MuiSvgIcon: {\r\n            styleOverrides: {\r\n                root: {\r\n                    paddingTop: pxToRem(4),\r\n                    paddingRight: pxToRem(5),\r\n                    color: Color.alert,\r\n                    fontSize: pxToRem(16),\r\n                },\r\n            },\r\n        },\r\n        MuiTypography: {\r\n            styleOverrides: {\r\n                root: {\r\n                    color: Color.alert,\r\n                    fontSize: pxToRem(12),\r\n                    padding: pxToRem(0),\r\n                    paddingTop: pxToRem(4),\r\n                    display: 'flex',\r\n                    justifyContent: 'flex-start',\r\n                    alignItems: 'center',\r\n                },\r\n            },\r\n        },\r\n        MuiPaper: {\r\n            styleOverrides: {\r\n                root: {\r\n                    maxHeight: ITEM_HEIGHT * 4.5 + ITEM_PADDING_TOP,\r\n                    height: ITEM_HEIGHT * 4.5 + ITEM_PADDING_TOP,\r\n                    anchorOrigin: {\r\n                        vertical: 'center',\r\n                        horizontal: 'center',\r\n                    },\r\n                },\r\n            },\r\n        },\r\n        MuiMenuItem: {\r\n            styleOverrides: {\r\n                root: {\r\n                    fontSize: pxToRem(16),\r\n                    display: 'flex',\r\n                    justifyContent: 'Left',\r\n                    alignItem: 'center',\r\n                },\r\n            },\r\n        },\r\n    },\r\n});\r\n","import { Color } from 'app/shared/enums';\r\nimport { pxToRem } from 'app/shared/helpers';\r\n\r\nimport { createTheme } from '@mui/material';\r\n\r\nconst ITEM_HEIGHT = 48;\r\nconst ITEM_PADDING_TOP = 8;\r\n\r\nexport const theme = createTheme({\r\n    components: {\r\n        MuiInputLabel: {\r\n            styleOverrides: {\r\n                root: {\r\n                    marginBottom: pxToRem(8),\r\n                    color: Color.nafDark,\r\n                    fontFamily: 'Roboto',\r\n                    fontSize: pxToRem(16),\r\n                    fontStyle: 'normal',\r\n                    fontWeight: 500,\r\n                    lineHeight: pxToRem(18),\r\n                },\r\n            },\r\n        },\r\n        MuiFormControl: {\r\n            styleOverrides: {\r\n                root: {\r\n                    margin: `${pxToRem(4)} 0`,\r\n                },\r\n            },\r\n        },\r\n        MuiOutlinedInput: {\r\n            styleOverrides: {\r\n                root: {\r\n                    height: pxToRem(52),\r\n                    paddingLeft: pxToRem(24),\r\n                    backgroundColor: Color.white,\r\n                    borderRadius: pxToRem(6),\r\n                    border: `${pxToRem(1)} solid $color-shuttle-gray`,\r\n                    '&:hover .MuiOutlinedInput-notchedOutline': {\r\n                        border: `${pxToRem(1)} solid ${Color.lightBlue}`,\r\n                    },\r\n                    '&:focus .MuiOutlinedInput-notchedOutline': {\r\n                        border: `${pxToRem(1)} solid ${Color.lightBlue}`,\r\n                    },\r\n                    '&:focus-visible': {\r\n                        border: `${pxToRem(1)} solid ${Color.alert}`,\r\n                    },\r\n                    '& input': {\r\n                        padding: 0,\r\n                        color: Color.lightGrey,\r\n                    },\r\n                },\r\n                input: {\r\n                    padding: 0,\r\n                },\r\n            },\r\n        },\r\n        MuiSelect: {\r\n            styleOverrides: {\r\n                icon: {\r\n                    right: pxToRem(20),\r\n                },\r\n            },\r\n        },\r\n        MuiSvgIcon: {\r\n            styleOverrides: {\r\n                root: {\r\n                    paddingTop: pxToRem(4),\r\n                    paddingRight: pxToRem(5),\r\n                    color: Color.alert,\r\n                    fontSize: pxToRem(16),\r\n                },\r\n            },\r\n        },\r\n        MuiTypography: {\r\n            styleOverrides: {\r\n                root: {\r\n                    color: Color.alert,\r\n                    fontSize: pxToRem(12),\r\n                    padding: pxToRem(0),\r\n                    paddingTop: pxToRem(4),\r\n                    display: 'flex',\r\n                    justifyContent: 'flex-start',\r\n                    alignItems: 'center',\r\n                    lineHeight: 1,\r\n                },\r\n            },\r\n        },\r\n        MuiPaper: {\r\n            styleOverrides: {\r\n                root: {\r\n                    maxHeight: ITEM_HEIGHT * 4.5 + ITEM_PADDING_TOP,\r\n                    anchorOrigin: {\r\n                        vertical: 'center',\r\n                        horizontal: 'center',\r\n                    },\r\n                },\r\n            },\r\n        },\r\n        MuiMenuItem: {\r\n            styleOverrides: {\r\n                root: {\r\n                    fontSize: pxToRem(16),\r\n                    display: 'flex',\r\n                    justifyContent: 'Left',\r\n                    alignItem: 'center',\r\n                    whiteSpace: 'normal',\r\n                },\r\n            },\r\n        },\r\n    },\r\n});\r\n","import { Color } from 'app/shared/enums';\r\nimport { pxToRem } from 'app/shared/helpers';\r\n\r\nimport { createTheme } from '@mui/material';\r\n\r\nexport const missingFieldTheme = createTheme({\r\n    components: {\r\n        MuiFormLabel: {\r\n            styleOverrides: {\r\n                root: {\r\n                    fontSize: pxToRem(14),\r\n                    color: Color.nafSecondaryBlue,\r\n                },\r\n                asterisk: {\r\n                    color: Color.alert,\r\n                    '&$error': {\r\n                        color: Color.alert,\r\n                    },\r\n                },\r\n            },\r\n        },\r\n        MuiInput: {\r\n            styleOverrides: {\r\n                root: {\r\n                    '&:hover, &:focus, &:focus-visible, &:active': {\r\n                        border: `${pxToRem(1)} solid ${Color.lightBlue}`,\r\n                    },\r\n                },\r\n            },\r\n        },\r\n        MuiOutlinedInput: {\r\n            styleOverrides: {\r\n                root: {\r\n                    padding: `${pxToRem(10)} ${pxToRem(16)}`,\r\n\r\n                    '& .MuiOutlinedInput-notchedOutline': {\r\n                        border: `${pxToRem(1)} solid ${Color.nafSecondaryBlue}`,\r\n                    },\r\n                    '&:hover, &:focus, &:focus-visible, &:active': {\r\n                        '& .MuiOutlinedInput-notchedOutline': {\r\n                            border: `${pxToRem(1)} solid ${Color.nafSecondaryBlue}`,\r\n                        },\r\n                    },\r\n                    '&.Mui-focused': {\r\n                        '& .MuiOutlinedInput-notchedOutline': {\r\n                            border: `${pxToRem(1)} solid ${Color.nafSecondaryBlue}`,\r\n                        },\r\n                    },\r\n                    '&.Mui-error': {\r\n                        '& .MuiOutlinedInput-notchedOutline': {\r\n                            border: `${pxToRem(1)} solid ${Color.alert}`,\r\n                        },\r\n                    },\r\n                    '& input': {\r\n                        padding: 0,\r\n                        '&::-webkit-input-placeholder': {\r\n                            color: Color.nafSecondaryBlue,\r\n                        },\r\n                    },\r\n                },\r\n            },\r\n        },\r\n        MuiTypography: {\r\n            styleOverrides: {\r\n                root: {\r\n                    color: Color.alert,\r\n                    fontSize: pxToRem(12),\r\n                    display: 'flex',\r\n                    justifyContent: 'flex-start',\r\n                    alignItem: 'center',\r\n                    marginTop: pxToRem(3),\r\n                },\r\n            },\r\n        },\r\n        MuiSvgIcon: {\r\n            styleOverrides: {\r\n                root: {\r\n                    paddingRight: pxToRem(5),\r\n                    color: Color.alert,\r\n                    fontSize: pxToRem(16),\r\n                },\r\n            },\r\n        },\r\n    },\r\n});\r\n","import { Color } from 'app/shared/enums';\r\nimport { pxToRem } from 'app/shared/helpers';\r\n\r\nimport { createTheme } from '@mui/material';\r\n\r\nexport const theme = createTheme({\r\n    components: {\r\n        MuiFormLabel: {\r\n            styleOverrides: {\r\n                root: {\r\n                    marginBottom: pxToRem(8),\r\n                    color: Color.nafDark,\r\n                    fontFamily: 'Roboto',\r\n                    fontSize: pxToRem(16),\r\n                    fontStyle: 'normal',\r\n                    fontWeight: 500,\r\n                    lineHeight: pxToRem(18),\r\n                },\r\n                asterisk: {\r\n                    color: Color.danger,\r\n                    marginLeft: pxToRem(-3),\r\n                    '&$error': {\r\n                        color: Color.danger,\r\n                    },\r\n                },\r\n            },\r\n        },\r\n        MuiInput: {\r\n            styleOverrides: {\r\n                root: {\r\n                    '&:hover, &:focus, &:focus-visible, &:active': {\r\n                        border: `${pxToRem(1)} solid ${Color.lightBlue}`,\r\n                    },\r\n                },\r\n            },\r\n        },\r\n        MuiOutlinedInput: {\r\n            styleOverrides: {\r\n                root: {\r\n                    height: pxToRem(52),\r\n                    padding: `${pxToRem(15)} ${pxToRem(48)} ${pxToRem(15)} ${pxToRem(24)}`,\r\n                    backgroundColor: Color.white,\r\n                    borderRadius: pxToRem(6),\r\n                    border: `${pxToRem(1)} solid $color-shuttle-gray`,\r\n                    '& input': {\r\n                        color: Color.nafDark,\r\n                        fontFamily: 'Poppins',\r\n                        fontSize: pxToRem(16),\r\n                        fontStyle: 'normal',\r\n                        fontWeight: 500,\r\n                        lineHeight: pxToRem(22),\r\n                    },\r\n                    '&:hover .MuiOutlinedInput-notchedOutline': {\r\n                        border: `${pxToRem(1)} solid ${Color.lightBlue}`,\r\n                    },\r\n                    '&:focus .MuiOutlinedInput-notchedOutline': {\r\n                        border: `${pxToRem(1)} solid ${Color.lightBlue}`,\r\n                    },\r\n                },\r\n                input: {\r\n                    padding: 0,\r\n                },\r\n            },\r\n        },\r\n        MuiTypography: {\r\n            styleOverrides: {\r\n                root: {\r\n                    color: Color.alert,\r\n                    fontSize: pxToRem(12),\r\n                    display: 'flex',\r\n                    justifyContent: 'flex-start',\r\n                    alignItems: 'center',\r\n                    marginTop: pxToRem(3),\r\n                },\r\n            },\r\n        },\r\n        MuiSvgIcon: {\r\n            styleOverrides: {\r\n                root: {\r\n                    paddingRight: pxToRem(5),\r\n                    color: Color.alert,\r\n                    fontSize: pxToRem(16),\r\n                },\r\n            },\r\n        },\r\n        MuiFormHelperText: {\r\n            styleOverrides: {\r\n                root: {\r\n                    color: Color.darkCharcoal,\r\n                    fontSize: pxToRem(12),\r\n                    lineHeight: pxToRem(14),\r\n                    fontStyle: 'italic',\r\n                    margin: `${pxToRem(6)} 0 0`,\r\n\r\n                    '&.Mui-disabled': {\r\n                        color: Color.darkCharcoal,\r\n                    },\r\n                },\r\n            },\r\n        },\r\n    },\r\n});\r\n","// extracted by mini-css-extract-plugin\nexport default {\"experienceRating\":\"experience-rating_experienceRating__-4jYz\",\"experienceRating__rating\":\"experience-rating_experienceRating__rating__ILQ6j\",\"experienceRating__count\":\"experience-rating_experienceRating__count__BotnR\",\"experienceRating__experienceLogo\":\"experience-rating_experienceRating__experienceLogo__2UF6P\"};","import { Rating, styled } from '@mui/material';\r\nimport { ReactElement } from 'react';\r\n\r\nimport styles from './experience-rating.module.scss';\r\nimport { pxToRem } from 'app/shared/helpers';\r\nimport { useNafConnectImages } from 'app/shared/hooks/use-naf-connect-images.hook';\r\nimport { Color } from 'app/shared/enums';\r\n\r\ninterface ExperienceRatingProps {\r\n    rating: number | undefined;\r\n    totalReviewCount: number | undefined;\r\n}\r\n\r\nconst StyledRating = styled(Rating)({\r\n    paddingBottom: pxToRem(2),\r\n    alignItems: 'center',\r\n    '& .MuiRating-icon .MuiSvgIcon-root': {\r\n        color: Color.goldStar,\r\n        height: pxToRem(16),\r\n        width: pxToRem(16),\r\n    },\r\n});\r\n\r\nconst MIN_REVIEW_RATING = 3.5;\r\nconst RATING_PRECISION = 0.25;\r\n\r\nconst ExperienceRating = ({\r\n    rating = 0,\r\n    totalReviewCount = 0,\r\n}: ExperienceRatingProps): ReactElement | null => {\r\n    if (rating < MIN_REVIEW_RATING) return null;\r\n\r\n    const { experienceDotComLogo } = useNafConnectImages();\r\n\r\n    return (\r\n        <span className={styles.experienceRating}>\r\n            <span className={styles.experienceRating__rating}>{rating}</span>\r\n            <StyledRating value={rating} precision={RATING_PRECISION} readOnly />\r\n            <span className={styles.experienceRating__count}>({totalReviewCount})</span>\r\n            <img\r\n                className={styles.experienceRating__experienceLogo}\r\n                alt=\"Experience.com\"\r\n                src={experienceDotComLogo}\r\n            />\r\n        </span>\r\n    );\r\n};\r\n\r\nexport default ExperienceRating;\r\n","// extracted by mini-css-extract-plugin\nexport default {\"featureHeader\":\"feature-header_featureHeader__XmK+B\",\"featureHeader--hideLineMobile\":\"feature-header_featureHeader--hideLineMobile__TxGI2\",\"featureHeader__divider\":\"feature-header_featureHeader__divider__SgxdI\"};","import React, { ReactElement, ReactNode } from 'react';\r\nimport classnames from 'classnames';\r\nimport styles from './feature-header.module.scss';\r\n\r\ninterface featureHeaderProps {\r\n    children: ReactNode;\r\n    hideLineMobile?: boolean;\r\n    className?: string;\r\n    dividerClassName?: string;\r\n}\r\n\r\nexport const FeatureHeader = (props: featureHeaderProps): ReactElement => {\r\n    const {\r\n        children,\r\n        hideLineMobile = false,\r\n        className = undefined,\r\n        dividerClassName = undefined,\r\n    } = props;\r\n\r\n    return (\r\n        <div\r\n            data-testid=\"feature-header\"\r\n            className={classnames(styles.featureHeader, {\r\n                [styles['featureHeader--hideLineMobile']]: hideLineMobile,\r\n                [className as string]: className,\r\n            })}\r\n        >\r\n            {children}\r\n\r\n            <div\r\n                className={classnames(styles.featureHeader__divider, {\r\n                    [dividerClassName as string]: dividerClassName,\r\n                })}\r\n            />\r\n        </div>\r\n    );\r\n};\r\n","// extracted by mini-css-extract-plugin\nexport default {\"heading\":\"heading_heading__iMo+0\",\"heading--1\":\"heading_heading--1__Ii+7U\",\"heading--2\":\"heading_heading--2__IHjGi\",\"heading--3\":\"heading_heading--3__w0zyV\",\"heading--4\":\"heading_heading--4__yMCT-\",\"heading--5\":\"heading_heading--5__TCKZW\",\"heading--6\":\"heading_heading--6__c4HCm\",\"heading--primaryBlue\":\"heading_heading--primaryBlue__LVuQN\",\"heading--light\":\"heading_heading--light__2P58e\",\"heading--regular\":\"heading_heading--regular__GC4m4\",\"heading--medium\":\"heading_heading--medium__1HKY5\",\"heading--semiBold\":\"heading_heading--semiBold__m7iTP\",\"heading--bold\":\"heading_heading--bold__ch8vK\"};","import { ReactElement, ReactNode } from 'react';\r\n\r\nimport classnames from 'classnames';\r\n\r\nimport styles from './heading.module.scss';\r\n\r\ninterface HeadingProps {\r\n    children: ReactNode;\r\n    size?: 1 | 2 | 3 | 4 | 5 | 6;\r\n    as?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\r\n    className?: string;\r\n    colorPrimaryBlue?: boolean;\r\n    fontWeight?: 'light' | 'regular' | 'medium' | 'semiBold' | 'bold';\r\n    id?: string;\r\n}\r\n\r\nexport const Heading = (props: HeadingProps): ReactElement => {\r\n    const {\r\n        as: Component = 'h1',\r\n        size = 1,\r\n        className,\r\n        colorPrimaryBlue,\r\n        fontWeight = 'medium',\r\n        id,\r\n        ...rest\r\n    } = props;\r\n\r\n    return (\r\n        <Component\r\n            id={id}\r\n            data-testid=\"heading\"\r\n            className={classnames(\r\n                `${styles.heading}`,\r\n                styles[`heading--${size}`],\r\n                styles[`heading--${fontWeight}`],\r\n                {\r\n                    [styles['heading--primaryBlue']]: colorPrimaryBlue,\r\n                    [className as string]: className,\r\n                }\r\n            )}\r\n            {...rest}\r\n        />\r\n    );\r\n};\r\n","import React, { ReactElement } from 'react';\r\n\r\nimport { ThemeProvider } from '@emotion/react';\r\nimport ErrorOutlinedIcon from '@mui/icons-material/ErrorOutlined';\r\nimport { FormGroup, FormLabel, TextField, Theme, Typography } from '@mui/material';\r\n\r\nimport { UseFormRegisterReturn } from 'react-hook-form';\r\nimport { theme } from './custom-text-field.theme';\r\nimport { missingFieldTheme } from './custom-text-field-field-missing.theme';\r\n\r\ninterface TextFieldProps {\r\n    inputLabel: string;\r\n    id?: string;\r\n    placeholder: string;\r\n    fullWidth?: boolean;\r\n    type?: string;\r\n    register?: UseFormRegisterReturn;\r\n    errorType?: boolean;\r\n    errorMessage?: string;\r\n    requiredInput?: boolean;\r\n    defaultValue?: string;\r\n    disabled?: boolean;\r\n    autoComplete?: string;\r\n    missingField?: boolean;\r\n    helperText?: string;\r\n    customTheme?: Theme;\r\n    datatestId?: string;\r\n}\r\n\r\nexport const CustomTextField = (props: TextFieldProps): ReactElement => {\r\n    const {\r\n        inputLabel,\r\n        id,\r\n        placeholder,\r\n        fullWidth,\r\n        type,\r\n        register,\r\n        errorType,\r\n        errorMessage,\r\n        requiredInput,\r\n        defaultValue,\r\n        disabled,\r\n        autoComplete,\r\n        missingField,\r\n        helperText,\r\n        customTheme,\r\n        datatestId,\r\n    } = props;\r\n\r\n    return (\r\n        <ThemeProvider theme={customTheme || (missingField ? missingFieldTheme : theme)}>\r\n            <FormGroup>\r\n                <FormLabel required={requiredInput} htmlFor={id}>\r\n                    {inputLabel}\r\n                </FormLabel>\r\n\r\n                <TextField\r\n                    id={id}\r\n                    data-testid={datatestId}\r\n                    placeholder={placeholder}\r\n                    type={type}\r\n                    fullWidth={fullWidth}\r\n                    {...register}\r\n                    error={errorType}\r\n                    defaultValue={defaultValue}\r\n                    disabled={disabled}\r\n                    autoComplete={autoComplete}\r\n                    required={requiredInput}\r\n                    helperText={helperText}\r\n                />\r\n                {errorType && (\r\n                    <Typography>\r\n                        {errorMessage && <ErrorOutlinedIcon fontSize=\"small\" />}\r\n                        <span>{errorMessage}</span>\r\n                    </Typography>\r\n                )}\r\n            </FormGroup>\r\n        </ThemeProvider>\r\n    );\r\n};\r\n\r\nCustomTextField.defaultProps = {\r\n    register: undefined,\r\n    errorType: undefined,\r\n    errorMessage: undefined,\r\n    fullWidth: undefined,\r\n    requiredInput: false,\r\n    type: 'text',\r\n    defaultValue: undefined,\r\n    id: undefined,\r\n    disabled: false,\r\n    autoComplete: 'on',\r\n    missingField: false,\r\n    helperText: null,\r\n    customTheme: undefined,\r\n    datatestId: undefined,\r\n};\r\n","import { ReactNode, forwardRef, ForwardedRef } from 'react';\r\nimport { pxToRem } from 'app/shared/helpers';\r\nimport { Button, ThemeProvider } from '@mui/material';\r\nimport { theme } from './custom-button.theme';\r\nimport { TextTransformType } from 'app/shared/enums';\r\n\r\ninterface CustomButtonProps {\r\n    children: ReactNode;\r\n    variant: 'text' | 'outlined' | 'contained' | undefined;\r\n    type: 'button' | 'submit' | 'reset' | undefined;\r\n    disabled?: boolean;\r\n    startIcon?: ReactNode;\r\n    endIcon?: ReactNode;\r\n    colorTheme?:\r\n        | 'inherit'\r\n        | 'primary'\r\n        | 'secondary'\r\n        | 'success'\r\n        | 'error'\r\n        | 'info'\r\n        | 'warning'\r\n        | undefined;\r\n    fontSize?: number;\r\n    className?: string;\r\n    textTransform?: TextTransformType;\r\n    onClick?: React.MouseEventHandler<HTMLButtonElement>;\r\n    dataTestId?: string;\r\n}\r\n\r\nexport const CustomButton = forwardRef<HTMLButtonElement, CustomButtonProps>(\r\n    (props: CustomButtonProps, ref: ForwardedRef<HTMLButtonElement>) => {\r\n        const {\r\n            children,\r\n            variant,\r\n            type,\r\n            disabled,\r\n            startIcon,\r\n            endIcon,\r\n            colorTheme,\r\n            fontSize,\r\n            className,\r\n            textTransform = TextTransformType.capitalize,\r\n            onClick,\r\n            dataTestId,\r\n        } = props;\r\n\r\n        return (\r\n            <ThemeProvider theme={theme}>\r\n                <Button\r\n                    ref={ref}\r\n                    type={type}\r\n                    sx={{ fontSize: fontSize && pxToRem(fontSize), textTransform }}\r\n                    variant={variant}\r\n                    startIcon={startIcon}\r\n                    endIcon={endIcon}\r\n                    disabled={disabled}\r\n                    color={colorTheme}\r\n                    className={className}\r\n                    disableRipple\r\n                    onClick={onClick}\r\n                    data-testid={dataTestId}\r\n                >\r\n                    {children}\r\n                </Button>\r\n            </ThemeProvider>\r\n        );\r\n    }\r\n);\r\n\r\nCustomButton.defaultProps = {\r\n    disabled: false,\r\n    startIcon: undefined,\r\n    endIcon: undefined,\r\n    colorTheme: undefined,\r\n    className: undefined,\r\n    fontSize: undefined,\r\n    onClick: undefined,\r\n    dataTestId: undefined,\r\n};\r\n","import { Color } from 'app/shared/enums';\r\nimport { pxToRem } from 'app/shared/helpers';\r\n\r\nimport { Theme } from '@emotion/react';\r\nimport { createTheme } from '@mui/material';\r\n\r\ninterface CustomIconButtonType {\r\n    theme: Theme;\r\n}\r\n\r\nexport const CustomIconButtonTheme = (): CustomIconButtonType => {\r\n    let theme = createTheme({});\r\n\r\n    theme = createTheme({\r\n        components: {\r\n            MuiIconButton: {\r\n                styleOverrides: {\r\n                    root: {\r\n                        backgroundColor: Color.nafPrimaryBlue,\r\n                        padding: pxToRem(12),\r\n                        borderRadius: '50%',\r\n                        color: Color.white,\r\n                        fontSize: pxToRem(20),\r\n                        lineHeight: pxToRem(26),\r\n                        '&:hover, &:focus-visible': {\r\n                            backgroundColor: Color.alert,\r\n                        },\r\n                        '&:disabled': {\r\n                            backgroundColor: Color.lightGrey3,\r\n                        },\r\n                    },\r\n                },\r\n            },\r\n        },\r\n    });\r\n\r\n    return { theme };\r\n};\r\n","import { ReactNode, forwardRef, ForwardedRef } from 'react';\r\nimport { pxToRem } from 'app/shared/helpers';\r\nimport { IconButton, ThemeProvider } from '@mui/material';\r\nimport { CustomIconButtonTheme } from './custom-icon-button.theme';\r\n\r\ninterface CustomIconButtonProps {\r\n    children: ReactNode;\r\n    disabled?: boolean;\r\n    className?: string;\r\n    fontSize?: number;\r\n    onClick: React.MouseEventHandler<HTMLButtonElement>;\r\n    testId?: string;\r\n}\r\n\r\nexport const CustomIconButton = forwardRef<HTMLButtonElement, CustomIconButtonProps>(\r\n    (props: CustomIconButtonProps, ref: ForwardedRef<HTMLButtonElement>) => {\r\n        const { children, disabled, className, fontSize, onClick, testId = undefined } = props;\r\n        const { theme } = CustomIconButtonTheme();\r\n\r\n        return (\r\n            <ThemeProvider theme={theme}>\r\n                <IconButton\r\n                    data-testid={testId}\r\n                    ref={ref}\r\n                    className={className}\r\n                    sx={{ fontSize: fontSize && pxToRem(fontSize) }}\r\n                    onClick={onClick}\r\n                    disabled={disabled}\r\n                    disableRipple\r\n                >\r\n                    {children}\r\n                </IconButton>\r\n            </ThemeProvider>\r\n        );\r\n    }\r\n);\r\n\r\nCustomIconButton.defaultProps = {\r\n    disabled: false,\r\n    className: undefined,\r\n    fontSize: undefined,\r\n};\r\n","import { ReactElement, ReactNode } from 'react';\r\nimport { CustomButton } from 'app/shared/components';\r\nimport { CustomIconButton } from '../custom-icon-button/custom-icon-button.component';\r\nimport { useWhichLayout } from 'app/shared/hooks';\r\nimport ResponsiveLayout from 'app/shared/enums/responsive-layout.enum';\r\n\r\ninterface SocialSignOnButtonProps {\r\n    variant: 'text' | 'outlined' | 'contained' | undefined;\r\n    disabled?: boolean;\r\n    icon?: ReactNode;\r\n    fontSize?: number;\r\n    className?: string;\r\n    onClick: React.MouseEventHandler<HTMLButtonElement>;\r\n    name: string;\r\n}\r\n\r\nexport const SocialSignOnButton = (props: SocialSignOnButtonProps): ReactElement => {\r\n    const { variant, disabled, icon, fontSize, className, onClick, name } = props;\r\n\r\n    const layout = useWhichLayout();\r\n\r\n    return (\r\n        <>\r\n            {layout !== ResponsiveLayout.Mobile ? (\r\n                <CustomButton\r\n                    type=\"button\"\r\n                    disabled={disabled}\r\n                    className={className}\r\n                    fontSize={fontSize}\r\n                    startIcon={icon}\r\n                    variant={variant}\r\n                    onClick={onClick}\r\n                >\r\n                    {name}\r\n                </CustomButton>\r\n            ) : (\r\n                <CustomIconButton\r\n                    testId=\"sign-on-icon\"\r\n                    disabled={disabled}\r\n                    className={className}\r\n                    fontSize={fontSize}\r\n                    onClick={onClick}\r\n                >\r\n                    {icon}\r\n                </CustomIconButton>\r\n            )}{' '}\r\n        </>\r\n    );\r\n};\r\n\r\nSocialSignOnButton.defaultProps = {\r\n    disabled: false,\r\n    icon: undefined,\r\n    className: undefined,\r\n    fontSize: null,\r\n};\r\n","// extracted by mini-css-extract-plugin\nexport default {\"footer\":\"footer-legal_footer__pNqCq\",\"footer__content\":\"footer-legal_footer__content__zXiQZ\",\"footer__link\":\"footer-legal_footer__link__NHdTP\",\"footer__text\":\"footer-legal_footer__text__pKYCh\"};","import { ReactElement } from 'react';\r\nimport { copyrightText, privacyUrl, termsUrl } from 'app/shared/helpers/settings.helper';\r\nimport styles from './footer-legal.module.scss';\r\n\r\nexport const FooterLegal = (): ReactElement => (\r\n    <div className={styles.footer}>\r\n        <div className={styles.footer__content}>\r\n            <div className={styles.footer__text}>{copyrightText}</div>\r\n\r\n            <a href={termsUrl} className={styles.footer__link}>\r\n                Terms of Use\r\n            </a>\r\n            <a href={privacyUrl} className={styles.footer__link}>\r\n                Privacy Policy\r\n            </a>\r\n        </div>\r\n    </div>\r\n);\r\n","// extracted by mini-css-extract-plugin\nexport default {\"header\":\"header-legal_header__T3zSF\",\"header__logo\":\"header-legal_header__logo__7nc7p\"};","import { ReactElement } from 'react';\r\nimport { useNafConnectImages } from 'app/shared/hooks/use-naf-connect-images.hook';\r\nimport styles from './header-legal.module.scss';\r\n\r\nexport const HeaderLegal = (): ReactElement => {\r\n    const { nafConnectLogoLight } = useNafConnectImages();\r\n\r\n    return (\r\n        <div className={styles.header}>\r\n            <img className={styles.header__logo} alt=\"NAFConnect\" src={nafConnectLogoLight} />\r\n        </div>\r\n    );\r\n};\r\n","import { createTheme } from '@mui/material';\r\nimport { pxToRem } from 'app/shared/helpers';\r\n\r\nexport default createTheme({\r\n    components: {\r\n        MuiInputLabel: {\r\n            styleOverrides: {\r\n                root: {\r\n                    fontSize: pxToRem(14),\r\n                    color: '#333333',\r\n                },\r\n            },\r\n        },\r\n        MuiSvgIcon: {\r\n            styleOverrides: {\r\n                root: {\r\n                    paddingRight: pxToRem(5),\r\n                    fontSize: pxToRem(16),\r\n                },\r\n            },\r\n        },\r\n    },\r\n});\r\n","// extracted by mini-css-extract-plugin\nexport default {\"instructions\":\"password-rules_instructions__n4XIU\",\"instructions__cards\":\"password-rules_instructions__cards__7kEVZ\",\"instructions__list\":\"password-rules_instructions__list__fZLOw\",\"instructions__rule-pass\":\"password-rules_instructions__rule-pass__K+uaL\",\"instructions__rule-fail\":\"password-rules_instructions__rule-fail__XuI5A\"};","import React, { ReactElement } from 'react';\r\n\r\nimport { FieldErrors } from 'react-hook-form';\r\n\r\nimport { ThemeProvider } from '@emotion/react';\r\nimport { CancelOutlined, CheckCircleOutline } from '@mui/icons-material';\r\nimport theme from './password-rules.theme';\r\n\r\nimport styles from './password-rules.module.scss';\r\n\r\nconst escapeChars = '!@#$%^&*()?<>-';\r\n\r\ninterface ErrordProps {\r\n    errors: FieldErrors;\r\n}\r\n\r\nexport const PasswordRules = (props: ErrordProps): ReactElement => {\r\n    const { errors } = props;\r\n\r\n    return (\r\n        <ThemeProvider theme={theme}>\r\n            <div className={styles.instructions}>\r\n                <div className={styles.instructions__title}>\r\n                    Your password must have the following:\r\n                </div>\r\n                <div className={styles.instructions__cards}>\r\n                    <div\r\n                        className={\r\n                            errors.password?.types?.min?.includes('')\r\n                                ? `${styles['instructions__rule-fail']}`\r\n                                : `${styles['instructions__rule-pass']}`\r\n                        }\r\n                        data-testid=\"password-rules-min\"\r\n                    >\r\n                        <div className={styles.instructions__list}>\r\n                            {errors.password?.types?.min?.includes('') ? (\r\n                                <CancelOutlined />\r\n                            ) : (\r\n                                <CheckCircleOutline />\r\n                            )}\r\n                            At least 8 characters\r\n                        </div>\r\n                    </div>\r\n                    <div\r\n                        className={\r\n                            errors.password?.types?.matches?.includes('lowercase')\r\n                                ? `${styles['instructions__rule-fail']}`\r\n                                : `${styles['instructions__rule-pass']}`\r\n                        }\r\n                        data-testid=\"password-rules-lower\"\r\n                    >\r\n                        <div className={styles.instructions__list}>\r\n                            {errors.password?.types?.matches?.includes('lowercase') ? (\r\n                                <CancelOutlined />\r\n                            ) : (\r\n                                <CheckCircleOutline />\r\n                            )}\r\n                            1 lowercase letter\r\n                        </div>\r\n                    </div>\r\n                    <div\r\n                        className={\r\n                            errors.password?.types?.matches?.includes('uppercase')\r\n                                ? `${styles['instructions__rule-fail']}`\r\n                                : `${styles['instructions__rule-pass']}`\r\n                        }\r\n                        data-testid=\"password-rules-uppercase\"\r\n                    >\r\n                        <div className={styles.instructions__list}>\r\n                            {errors.password?.types?.matches?.includes('uppercase') ? (\r\n                                <CancelOutlined />\r\n                            ) : (\r\n                                <CheckCircleOutline />\r\n                            )}\r\n                            1 uppercase letter\r\n                        </div>\r\n                    </div>\r\n                    <div\r\n                        className={\r\n                            errors.password?.types?.matches?.includes('number')\r\n                                ? `${styles['instructions__rule-fail']}`\r\n                                : `${styles['instructions__rule-pass']}`\r\n                        }\r\n                        data-testid=\"password-rules-number\"\r\n                    >\r\n                        <div className={styles.instructions__list}>\r\n                            {errors.password?.types?.matches?.includes('number') ? (\r\n                                <CancelOutlined />\r\n                            ) : (\r\n                                <CheckCircleOutline />\r\n                            )}\r\n                            1 number\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n                <div>And may contain any of the following symbols: {escapeChars}</div>\r\n            </div>\r\n        </ThemeProvider>\r\n    );\r\n};\r\n","// extracted by mini-css-extract-plugin\nexport default {\"passwordField__errorText\":\"custom-password-text-field_passwordField__errorText__PBBnF\",\"passwordField__alert\":\"custom-password-text-field_passwordField__alert__1fh+K\",\"passwordField__btn\":\"custom-password-text-field_passwordField__btn__dGVWZ\"};","import { pxToRem } from 'app/shared/helpers';\r\nimport { createTheme } from '@mui/material';\r\nimport { Color } from 'app/shared/enums';\r\n\r\nexport const theme = createTheme({\r\n    components: {\r\n        MuiInputLabel: {\r\n            styleOverrides: {\r\n                root: {\r\n                    marginBottom: pxToRem(8),\r\n                    color: Color.nafDark,\r\n                    fontFamily: 'Roboto',\r\n                    fontSize: pxToRem(16),\r\n                    fontStyle: 'normal',\r\n                    fontWeight: 500,\r\n                    lineHeight: pxToRem(18),\r\n                },\r\n            },\r\n        },\r\n        MuiFormControl: {\r\n            styleOverrides: {\r\n                root: {\r\n                    margin: `${pxToRem(4)} 0`,\r\n                },\r\n            },\r\n        },\r\n        MuiOutlinedInput: {\r\n            styleOverrides: {\r\n                root: {\r\n                    height: pxToRem(52),\r\n                    padding: `${pxToRem(15)} ${pxToRem(15)} ${pxToRem(15)} ${pxToRem(24)}`,\r\n                    backgroundColor: Color.white,\r\n                    borderRadius: pxToRem(6),\r\n                    border: `${pxToRem(1)} solid $color-shuttle-gray`,\r\n                    '&:hover .MuiOutlinedInput-notchedOutline': {\r\n                        border: `${pxToRem(1)} solid ${Color.lightBlue}`,\r\n                    },\r\n                    '&:focus .MuiOutlinedInput-notchedOutline': {\r\n                        border: `${pxToRem(1)} solid ${Color.lightBlue}`,\r\n                    },\r\n                    '&:focus-visible': {\r\n                        border: `${pxToRem(1)} solid ${Color.alert}`,\r\n                    },\r\n                    '& input': {\r\n                        padding: 0,\r\n                        color: Color.lightGrey,\r\n                    },\r\n                },\r\n                input: {\r\n                    padding: 0,\r\n                },\r\n            },\r\n        },\r\n        MuiSvgIcon: {\r\n            styleOverrides: {\r\n                root: {\r\n                    paddingTop: pxToRem(4),\r\n                    paddingRight: pxToRem(5),\r\n                    color: Color.alert,\r\n                    fontSize: pxToRem(16),\r\n                },\r\n            },\r\n        },\r\n        MuiTypography: {\r\n            styleOverrides: {\r\n                root: {\r\n                    color: Color.alert,\r\n                    fontSize: pxToRem(12),\r\n                    padding: pxToRem(0),\r\n                    display: 'flex',\r\n                    justifyContent: 'flex-start',\r\n                    alignItem: 'center',\r\n                },\r\n            },\r\n        },\r\n    },\r\n});\r\n","import { ReactElement, useState } from 'react';\r\nimport { ThemeProvider } from '@emotion/react';\r\nimport { RemoveRedEye } from '@mui/icons-material';\r\nimport ErrorOutlinedIcon from '@mui/icons-material/ErrorOutlined';\r\nimport {\r\n    FormGroup,\r\n    IconButton,\r\n    InputAdornment,\r\n    InputLabel,\r\n    TextField,\r\n    Typography,\r\n} from '@mui/material';\r\nimport { UseFormRegisterReturn } from 'react-hook-form';\r\nimport styles from './custom-password-text-field.module.scss';\r\nimport { theme } from './custom-password-text-field.theme';\r\n\r\ninterface TextFieldProps {\r\n    inputLabel: string;\r\n    id?: string;\r\n    placeholder: string;\r\n    fullWidth?: boolean;\r\n    register?: UseFormRegisterReturn;\r\n    errorType?: boolean;\r\n    errorMessage?: string;\r\n    requiredInput?: boolean;\r\n    defaultValue?: string;\r\n    displayAllErrors?: boolean;\r\n    autoComplete?: string;\r\n}\r\n\r\nexport const CustomPasswordTextField = (props: TextFieldProps): ReactElement => {\r\n    const {\r\n        inputLabel,\r\n        id,\r\n        placeholder,\r\n        fullWidth,\r\n        register,\r\n        errorType,\r\n        errorMessage,\r\n        requiredInput,\r\n        defaultValue,\r\n        displayAllErrors = true,\r\n        autoComplete = 'on',\r\n    } = props;\r\n\r\n    const [toggleVisibility, setToggleVisibility] = useState(false);\r\n\r\n    return (\r\n        <ThemeProvider theme={theme}>\r\n            <FormGroup>\r\n                <InputLabel htmlFor={id}>\r\n                    {inputLabel}{' '}\r\n                    {requiredInput && <span className={styles.passwordField__alert}>*</span>}\r\n                </InputLabel>\r\n                <TextField\r\n                    id={id}\r\n                    placeholder={placeholder}\r\n                    type={toggleVisibility ? 'text' : 'password'}\r\n                    fullWidth={fullWidth}\r\n                    {...register}\r\n                    error={errorType}\r\n                    defaultValue={defaultValue}\r\n                    autoComplete={autoComplete}\r\n                    required={requiredInput}\r\n                    InputProps={{\r\n                        endAdornment: (\r\n                            <InputAdornment position=\"end\">\r\n                                <IconButton\r\n                                    data-testid=\"show-password\"\r\n                                    edge=\"end\"\r\n                                    color=\"primary\"\r\n                                    onClick={() => setToggleVisibility(!toggleVisibility)}\r\n                                >\r\n                                    <RemoveRedEye className={styles.passwordField__btn} />\r\n                                </IconButton>\r\n                            </InputAdornment>\r\n                        ),\r\n                    }}\r\n                />\r\n                {register && errorMessage && (\r\n                    <Typography>\r\n                        {!displayAllErrors &&\r\n                            errorMessage.match('Password is required') && (\r\n                                <ErrorOutlinedIcon fontSize=\"small\" />\r\n                            ) && (\r\n                                <span className={styles.passwordField__errorText}>\r\n                                    Password is required\r\n                                </span>\r\n                            )}\r\n                        {displayAllErrors && <ErrorOutlinedIcon fontSize=\"small\" /> && (\r\n                            <span className={styles.passwordField__errorText}>{errorMessage}</span>\r\n                        )}\r\n                    </Typography>\r\n                )}\r\n            </FormGroup>\r\n        </ThemeProvider>\r\n    );\r\n};\r\n","import { ReactElement, useMemo } from 'react';\r\n\r\nimport {\r\n    Controller,\r\n    FieldPath,\r\n    FieldValues,\r\n    PathValue,\r\n    UnpackNestedValue,\r\n    UseControllerProps,\r\n} from 'react-hook-form';\r\n\r\nimport { ThemeProvider } from '@emotion/react';\r\nimport ErrorOutlinedIcon from '@mui/icons-material/ErrorOutlined';\r\nimport { InputLabel, MenuItem, Select, SelectChangeEvent, Typography } from '@mui/material';\r\nimport { FaChevronDown } from 'react-icons/fa';\r\n\r\nimport styles from './custom-select-field.module.scss';\r\nimport { theme } from './custom-select.theme';\r\nimport { missingFieldTheme } from './custom-select-missing-field.theme';\r\nimport { State, statesByCode, statesById, statesByName } from 'app/shared/data';\r\n\r\ntype StateSelectFieldProps<\r\n    TFieldValues extends FieldValues,\r\n    TName extends FieldPath<TFieldValues>,\r\n> = UseControllerProps<TFieldValues, TName>;\r\n\r\ntype SortBy = 'id' | 'name' | 'code' | '';\r\ntype Display = 'id' | 'name' | 'code';\r\n\r\ninterface TextFieldProps<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues>> {\r\n    inputLabel: string;\r\n    id?: string;\r\n    handleSelect?: (\r\n        e: SelectChangeEvent<UnpackNestedValue<PathValue<TFieldValues, TName> | string>>\r\n    ) => void;\r\n    placeholder: string;\r\n    fullWidth?: boolean;\r\n    errorType?: boolean;\r\n    errorMessage?: string;\r\n    requiredInput?: boolean;\r\n    defaultValue?: string;\r\n    autoComplete?: string;\r\n    disabled?: boolean;\r\n    missingField?: boolean;\r\n    sortBy?: SortBy;\r\n    display?: Display;\r\n    testId?: string;\r\n}\r\n\r\nexport const StateSelectField = <\r\n    TFieldValues extends FieldValues,\r\n    TName extends FieldPath<TFieldValues>,\r\n>(\r\n    props: TextFieldProps<TFieldValues, TName> & StateSelectFieldProps<TFieldValues, TName>\r\n): ReactElement => {\r\n    const {\r\n        inputLabel,\r\n        id,\r\n        name,\r\n        handleSelect,\r\n        placeholder,\r\n        fullWidth,\r\n        errorType,\r\n        errorMessage,\r\n        requiredInput = false,\r\n        defaultValue = ' ',\r\n        control,\r\n        autoComplete = 'on',\r\n        disabled = false,\r\n        missingField = false,\r\n        sortBy = 'code',\r\n        display = 'code',\r\n        testId,\r\n    } = props;\r\n\r\n    const states = useMemo(() => {\r\n        switch (sortBy) {\r\n            case 'id':\r\n                return statesById;\r\n            case 'name':\r\n                return statesByName;\r\n            case 'code':\r\n                return statesByCode;\r\n            default:\r\n                return statesByCode;\r\n        }\r\n    }, [sortBy]);\r\n\r\n    return (\r\n        <ThemeProvider theme={missingField ? missingFieldTheme : theme}>\r\n            <div className={styles.selectField__formGroup}>\r\n                <Controller\r\n                    control={control}\r\n                    name={name}\r\n                    render={({ field: { onChange, onBlur, value, ref } }): ReactElement => (\r\n                        <>\r\n                            <InputLabel htmlFor={id}>\r\n                                {inputLabel}\r\n                                {requiredInput && (\r\n                                    <span className={styles.selectField__alert}>*</span>\r\n                                )}\r\n                            </InputLabel>\r\n                            <Select\r\n                                id={id}\r\n                                onChange={(e): void => {\r\n                                    onChange(e);\r\n                                    if (handleSelect) handleSelect(e);\r\n                                }}\r\n                                onBlur={onBlur}\r\n                                value={value || ' '}\r\n                                inputRef={ref}\r\n                                defaultValue={defaultValue}\r\n                                fullWidth={fullWidth}\r\n                                placeholder={placeholder}\r\n                                error={errorType}\r\n                                autoComplete={autoComplete}\r\n                                disabled={disabled}\r\n                                data-testid={testId}\r\n                                IconComponent={FaChevronDown}\r\n                            >\r\n                                {placeholder && (\r\n                                    <MenuItem value=\" \">\r\n                                        <span\r\n                                            className={\r\n                                                missingField\r\n                                                    ? styles.selectField__missingFieldPlaceholderItem\r\n                                                    : styles.selectField__placeholderItem\r\n                                            }\r\n                                        >\r\n                                            {placeholder}\r\n                                        </span>\r\n                                    </MenuItem>\r\n                                )}\r\n                                {states.map((item: State) => (\r\n                                    <MenuItem key={item.code} value={item.code}>\r\n                                        <span className={styles.selectField__option}>\r\n                                            {item[display]}\r\n                                        </span>\r\n                                    </MenuItem>\r\n                                ))}\r\n                            </Select>\r\n                            {errorType && (\r\n                                <Typography>\r\n                                    {errorMessage && <ErrorOutlinedIcon fontSize=\"small\" />}\r\n                                    <span className={styles.selectField__errorText}>\r\n                                        {errorMessage}\r\n                                    </span>\r\n                                </Typography>\r\n                            )}\r\n                        </>\r\n                    )}\r\n                />\r\n            </div>\r\n        </ThemeProvider>\r\n    );\r\n};\r\n","import { Color } from 'app/shared/enums';\r\n\r\nimport { Tooltip, tooltipClasses, TooltipProps } from '@mui/material';\r\nimport { styled } from '@mui/material/styles';\r\n\r\ninterface CustomTooltipProps extends TooltipProps {\r\n    offset?: number;\r\n    dataTestId?: string;\r\n}\r\n\r\nexport const CustomTooltip = styled(({ className, dataTestId, ...props }: CustomTooltipProps) => (\r\n    <Tooltip\r\n        enterTouchDelay={0}\r\n        {...props}\r\n        classes={{ popper: className }}\r\n        data-testid={dataTestId}\r\n    />\r\n))(({ theme, offset }) => ({\r\n    [`& .${tooltipClasses.tooltip}`]: {\r\n        backgroundColor: Color.white,\r\n        padding: `${theme.typography.pxToRem(15)} ${theme.typography.pxToRem(10)}`,\r\n        color: 'rgba(0, 0, 0, 0.87)',\r\n        boxShadow: theme.shadows[1],\r\n        border: `${theme.typography.pxToRem(1)} solid ${Color.sky}`,\r\n    },\r\n    [`& .${tooltipClasses.arrow}`]: {\r\n        color: Color.white,\r\n        marginLeft: offset ? `${theme.typography.pxToRem(offset)}` : 0,\r\n        '&:before': {\r\n            border: `${theme.typography.pxToRem(1)} solid ${Color.sky}`,\r\n        },\r\n    },\r\n}));\r\n\r\nCustomTooltip.defaultProps = {\r\n    offset: undefined,\r\n    dataTestId: undefined,\r\n};\r\n","// extracted by mini-css-extract-plugin\nexport default {\"count\":\"count_count__n31BI\",\"count--colorAlert\":\"count_count--colorAlert__t5bnZ\",\"count__number\":\"count_count__number__OSLgw\"};","import { ReactElement } from 'react';\r\n\r\nimport classnames from 'classnames';\r\n\r\nimport styles from './count.module.scss';\r\n\r\ninterface CountProps {\r\n    count: number;\r\n    className?: string;\r\n    colorAlert?: boolean;\r\n}\r\n\r\nexport const Count = ({ count, className, colorAlert, ...rest }: CountProps): ReactElement => (\r\n    <div\r\n        data-testid=\"count-alert\"\r\n        className={classnames(`${styles.count}`, {\r\n            [styles['count--colorAlert']]: colorAlert,\r\n            [className as string]: className,\r\n        })}\r\n        {...rest}\r\n    >\r\n        <span className={styles.count__number} data-testid=\"count-number\">\r\n            {count}\r\n        </span>\r\n    </div>\r\n);\r\n\r\nCount.defaultProps = { className: undefined, colorAlert: false };\r\n","import { createTheme } from '@mui/material';\r\nimport { Color } from 'app/shared/enums';\r\n\r\nexport const theme = createTheme({\r\n    palette: {\r\n        primary: {\r\n            main: Color.nafPrimaryBlue,\r\n        },\r\n    },\r\n    typography: {\r\n        fontSize: 10,\r\n    },\r\n    components: {\r\n        MuiCheckbox: {\r\n            styleOverrides: {\r\n                root: {\r\n                    color: Color.nafPrimaryBlue,\r\n                },\r\n            },\r\n        },\r\n    },\r\n});\r\n","import { ChangeEvent, ReactElement } from 'react';\r\n\r\nimport { Checkbox, ThemeProvider } from '@mui/material';\r\n\r\nimport { Controller, FieldPath, FieldValues, UseControllerProps } from 'react-hook-form';\r\n\r\nimport { theme } from './custom-form-checkbox.theme';\r\n\r\ninterface CustomCheckboxCallbackProp {\r\n    onChangeCallback?: (event: ChangeEvent<HTMLInputElement>) => void | undefined;\r\n}\r\n\r\ntype CustomCheckboxProps<\r\n    TFieldValues extends FieldValues,\r\n    TName extends FieldPath<TFieldValues>,\r\n> = UseControllerProps<TFieldValues, TName> & CustomCheckboxCallbackProp;\r\n\r\nexport const CustomFormCheckBox = <\r\n    TFieldValues extends FieldValues,\r\n    TName extends FieldPath<TFieldValues>,\r\n>({\r\n    control,\r\n    name,\r\n    defaultValue,\r\n    onChangeCallback,\r\n}: CustomCheckboxProps<TFieldValues, TName>): ReactElement => (\r\n    <ThemeProvider theme={theme}>\r\n        <Controller\r\n            control={control}\r\n            name={name}\r\n            render={({ field: { onChange, onBlur, value, name, ref } }): ReactElement => (\r\n                <Checkbox\r\n                    onChange={(event, checked): void => {\r\n                        onChange(event, checked);\r\n\r\n                        if (onChangeCallback) onChangeCallback(event);\r\n                    }}\r\n                    onBlur={onBlur}\r\n                    name={name}\r\n                    inputRef={ref}\r\n                    checked={value}\r\n                    value={value}\r\n                    defaultChecked={defaultValue}\r\n                />\r\n            )}\r\n        />\r\n    </ThemeProvider>\r\n);\r\n\r\nCustomFormCheckBox.defaultProps = {\r\n    onChangeCallback: null,\r\n};\r\n\r\nexport default CustomFormCheckBox;\r\n","import { ReactElement } from 'react';\r\n\r\nimport { Color } from 'app/shared/enums';\r\n\r\nimport DoneAllIcon from '@mui/icons-material/DoneAll';\r\nimport PersonAddAlt1Icon from '@mui/icons-material/PersonAddAlt1';\r\nimport SavingsIcon from '@mui/icons-material/Savings';\r\nimport TelegramIcon from '@mui/icons-material/Telegram';\r\nimport ThumbUpIcon from '@mui/icons-material/ThumbUp';\r\nimport { styled } from '@mui/material/styles';\r\n\r\nconst NotificationBackground = styled('div')<{ active?: string; canceled?: string }>(\r\n    ({ theme }) => ({\r\n        background: `${Color.nafPrimaryBlue} 0% 0% no-repeat padding-box`,\r\n        zIndex: 1,\r\n        width: theme.typography.pxToRem(42),\r\n        height: theme.typography.pxToRem(42),\r\n        display: 'flex',\r\n        justifyContent: 'center',\r\n        alignItems: 'center',\r\n        borderRadius: '50%',\r\n    })\r\n);\r\n\r\nconst NotificationForeground = styled('div')<{ active?: string; canceled?: string }>(\r\n    ({ theme }) => ({\r\n        background: `${Color.nafPrimaryBlue} 0% 0% no-repeat padding-box`,\r\n        border: `${theme.typography.pxToRem(1)} solid ${Color.white}`,\r\n        zIndex: 1,\r\n        color: '#fff',\r\n        width: theme.typography.pxToRem(36),\r\n        height: theme.typography.pxToRem(36),\r\n        display: 'flex',\r\n        borderRadius: '50%',\r\n        justifyContent: 'center',\r\n        alignItems: 'center',\r\n    })\r\n);\r\n\r\nconst icons: { [key: number]: JSX.Element } = {\r\n    2: <PersonAddAlt1Icon fontSize=\"small\" />,\r\n    3: <DoneAllIcon fontSize=\"small\" />,\r\n    4: <TelegramIcon fontSize=\"small\" />,\r\n    5: <ThumbUpIcon fontSize=\"small\" />,\r\n    6: <SavingsIcon fontSize=\"small\" />,\r\n};\r\n\r\n/**\r\n * @deprecated Component may be removed.\r\n * @deprecatedSince 1.1.50\r\n */\r\nconst NotificationIcon = (id: number): ReactElement => (\r\n    <NotificationBackground>\r\n        <NotificationForeground>{icons[id]}</NotificationForeground>\r\n    </NotificationBackground>\r\n);\r\nexport default NotificationIcon;\r\n","import { ReactElement } from 'react';\r\n\r\nimport { getInitials } from 'app/shared/helpers';\r\n\r\ninterface DefaultLOImageProps {\r\n    fullName: string;\r\n    className: string;\r\n}\r\n\r\nexport const DefaultLoanOfficerImage = (props: DefaultLOImageProps): ReactElement => {\r\n    const { fullName, className } = props;\r\n    const initials = getInitials(fullName);\r\n    return (\r\n        <div className={className} data-testid=\"default-loan-officer-image\">\r\n            {initials}\r\n        </div>\r\n    );\r\n};\r\n","import { ReactElement, useState } from 'react';\r\nimport classnames from 'classnames';\r\n\r\ninterface CustomImageTagProps {\r\n    className?: string;\r\n    src: string;\r\n    alt: string;\r\n    fallback: ReactElement | string;\r\n}\r\n\r\nexport const CustomImageTag = (props: CustomImageTagProps): ReactElement => {\r\n    const { className, src, alt, fallback } = props;\r\n    const [isError, setIsError] = useState(false);\r\n\r\n    const constructFallback = (): ReactElement => {\r\n        // default image\r\n        if (typeof fallback === 'string') {\r\n            return <img className={classnames(className)} src={fallback} alt={alt} />;\r\n        }\r\n\r\n        return fallback;\r\n    };\r\n\r\n    const constructImage = (): ReactElement => {\r\n        if (src) {\r\n            if (isError) {\r\n                return constructFallback();\r\n            }\r\n            return (\r\n                <img\r\n                    onError={(): void => setIsError(true)}\r\n                    className={className}\r\n                    src={src}\r\n                    alt={alt}\r\n                />\r\n            );\r\n        }\r\n        return constructFallback();\r\n    };\r\n\r\n    return constructImage();\r\n};\r\n\r\nCustomImageTag.defaultProps = { className: undefined };\r\n\r\nexport default CustomImageTag;\r\n","import { createTheme } from '@mui/material';\r\nimport { pxToRem } from 'app/shared/helpers';\r\nimport { Color } from 'app/shared/enums';\r\n\r\nexport const theme = createTheme({\r\n    components: {\r\n        MuiTypography: {\r\n            styleOverrides: {\r\n                root: {\r\n                    color: Color.alert,\r\n                    fontSize: pxToRem(12),\r\n                    display: 'flex',\r\n                    justifyContent: 'flex-start',\r\n                    alignItem: 'center',\r\n                    marginTop: pxToRem(3),\r\n                },\r\n            },\r\n        },\r\n        MuiSvgIcon: {\r\n            styleOverrides: {\r\n                root: {\r\n                    paddingRight: pxToRem(5),\r\n                    color: Color.alert,\r\n                    fontSize: pxToRem(16),\r\n                },\r\n            },\r\n        },\r\n        MuiFormLabel: {\r\n            styleOverrides: {\r\n                root: {\r\n                    marginBottom: pxToRem(8),\r\n                    color: Color.nafDark,\r\n                    fontFamily: 'Roboto',\r\n                    fontSize: pxToRem(16),\r\n                    fontStyle: 'normal',\r\n                    fontWeight: 500,\r\n                    lineHeight: pxToRem(18),\r\n                },\r\n                asterisk: {\r\n                    color: Color.alert,\r\n                    '&$error': {\r\n                        color: Color.alert,\r\n                    },\r\n                },\r\n            },\r\n        },\r\n        MuiOutlinedInput: {\r\n            styleOverrides: {\r\n                root: {\r\n                    height: pxToRem(52),\r\n                    padding: `${pxToRem(15)} ${pxToRem(48)} ${pxToRem(15)} ${pxToRem(24)}`,\r\n                    backgroundColor: Color.white,\r\n                    borderRadius: pxToRem(6),\r\n                    border: `${pxToRem(1)} solid $color-shuttle-gray`,\r\n                    '& input': {\r\n                        color: Color.nafDark,\r\n                        fontFamily: 'Poppins',\r\n                        fontSize: pxToRem(16),\r\n                        fontStyle: 'normal',\r\n                        fontWeight: 500,\r\n                        lineHeight: pxToRem(22),\r\n                    },\r\n                    '&:hover .MuiOutlinedInput-notchedOutline': {\r\n                        border: `${pxToRem(1)} solid ${Color.lightBlue}`,\r\n                    },\r\n                    '&:focus .MuiOutlinedInput-notchedOutline': {\r\n                        border: `${pxToRem(1)} solid ${Color.lightBlue}`,\r\n                    },\r\n                },\r\n                input: {\r\n                    padding: 0,\r\n                },\r\n            },\r\n        },\r\n        MuiAutocomplete: {\r\n            styleOverrides: {\r\n                root: {\r\n                    ' .MuiOutlinedInput-root': { padding: 0 },\r\n                    ' .MuiOutlinedInput-root .MuiAutocomplete-input': {\r\n                        padding: `${pxToRem(10)} ${pxToRem(16)}`,\r\n                    },\r\n                },\r\n            },\r\n        },\r\n    },\r\n});\r\n","import { createTheme } from '@mui/material';\r\nimport { pxToRem } from 'app/shared/helpers';\r\nimport { Color } from 'app/shared/enums';\r\n\r\nexport const missingFieldTheme = createTheme({\r\n    components: {\r\n        MuiTypography: {\r\n            styleOverrides: {\r\n                root: {\r\n                    color: Color.alert,\r\n                    fontSize: pxToRem(12),\r\n                    display: 'flex',\r\n                    justifyContent: 'flex-start',\r\n                    alignItem: 'center',\r\n                    marginTop: pxToRem(3),\r\n                },\r\n            },\r\n        },\r\n        MuiSvgIcon: {\r\n            styleOverrides: {\r\n                root: {\r\n                    paddingRight: pxToRem(5),\r\n                    color: Color.alert,\r\n                    fontSize: pxToRem(16),\r\n                },\r\n            },\r\n        },\r\n        MuiFormLabel: {\r\n            styleOverrides: {\r\n                root: {\r\n                    fontSize: pxToRem(14),\r\n                    color: Color.nafSecondaryBlue,\r\n                },\r\n                asterisk: {\r\n                    color: Color.alert,\r\n                    '&$error': {\r\n                        color: Color.alert,\r\n                    },\r\n                },\r\n            },\r\n        },\r\n        MuiAutocomplete: {\r\n            styleOverrides: {\r\n                root: {\r\n                    ' .MuiOutlinedInput-root': {\r\n                        padding: 0,\r\n                    },\r\n                    ' .MuiOutlinedInput-root .MuiAutocomplete-input': {\r\n                        padding: `${pxToRem(10)} ${pxToRem(16)}`,\r\n                    },\r\n                    '& .MuiOutlinedInput-notchedOutline': {\r\n                        border: `${pxToRem(1)} solid ${Color.nafSecondaryBlue}`,\r\n                    },\r\n                    '&:hover, &:focus, &:focus-visible, &:active': {\r\n                        '& .MuiOutlinedInput-notchedOutline': {\r\n                            border: `${pxToRem(1)} solid ${Color.nafSecondaryBlue}`,\r\n                        },\r\n                    },\r\n                    '&.Mui-focused': {\r\n                        '& .MuiOutlinedInput-notchedOutline': {\r\n                            border: `${pxToRem(1)} solid ${Color.nafSecondaryBlue}`,\r\n                        },\r\n                    },\r\n                    '&.Mui-error': {\r\n                        '& .MuiOutlinedInput-notchedOutline': {\r\n                            border: `${pxToRem(1)} solid ${Color.alert}`,\r\n                        },\r\n                    },\r\n                    '& input': {\r\n                        padding: 0,\r\n                        '&::-webkit-input-placeholder': {\r\n                            color: Color.nafSecondaryBlue,\r\n                        },\r\n                    },\r\n                },\r\n            },\r\n        },\r\n    },\r\n});\r\n","import { ReactElement, ReactNode, SyntheticEvent, useMemo, useState } from 'react';\r\nimport {\r\n    Autocomplete,\r\n    FormGroup,\r\n    FormLabel,\r\n    TextField,\r\n    ThemeProvider,\r\n    Typography,\r\n} from '@mui/material';\r\nimport { theme } from './address-autocomplete.theme';\r\nimport ErrorOutlinedIcon from '@mui/icons-material/ErrorOutlined';\r\nimport { addressesAutocomplete, getAddressDetails } from 'app/services';\r\nimport { debounce } from 'lodash';\r\nimport { Address, AutocompletePrediction } from 'app/shared/models';\r\nimport { UseFormRegisterReturn } from 'react-hook-form';\r\nimport { missingFieldTheme } from './address-autocomplete-missing-fields.theme';\r\n\r\ninterface AddressAutocomplteProp {\r\n    id?: string;\r\n    inputLabel: string;\r\n    placeholder: string;\r\n    variant: undefined | 'standard' | 'filled' | 'outlined';\r\n    onSelect: (address: Address) => void;\r\n    errorType?: boolean;\r\n    errorMessage?: string;\r\n    required: boolean;\r\n    defaultValue?: string;\r\n    register: UseFormRegisterReturn;\r\n    disabled?: boolean;\r\n    missingField?: boolean;\r\n}\r\n\r\nexport const AddressAutocomplete = (props: AddressAutocomplteProp): ReactElement => {\r\n    const {\r\n        id = undefined,\r\n        inputLabel,\r\n        placeholder,\r\n        variant,\r\n        errorType = undefined,\r\n        errorMessage = undefined,\r\n        register,\r\n        required,\r\n        defaultValue = '',\r\n        disabled = false,\r\n        onSelect,\r\n        missingField = false,\r\n    } = props;\r\n\r\n    const [inputValue, setInputValue] = useState(defaultValue || '');\r\n\r\n    const [options, setOptions] = useState<AutocompletePrediction[] | null>(null);\r\n\r\n    const onAutoCompleteInputChange = (\r\n        event: SyntheticEvent<Element, Event>,\r\n        searchInput: string\r\n    ): void => {\r\n        setInputValue(searchInput);\r\n        debouncedSearchAddress(searchInput);\r\n    };\r\n\r\n    const onSearchAddress = (input: string): void => {\r\n        if (input.length >= 3) {\r\n            addressesAutocomplete(input).then((response) => {\r\n                if (response) {\r\n                    const predictions: AutocompletePrediction[] = response?.data.data;\r\n                    setOptions(predictions);\r\n                }\r\n            });\r\n        } else {\r\n            setOptions(null);\r\n        }\r\n    };\r\n\r\n    const onAutocompleteSelect = (\r\n        event: SyntheticEvent<Element, Event>,\r\n        value: NonNullable<string | { label: string; value: string }>\r\n    ): void => {\r\n        if (typeof value === 'string') return;\r\n        if (value.value) {\r\n            getAddressDetails(value.value).then((res) => {\r\n                if (res?.data.success) {\r\n                    const address: Address = { ...res.data.data.address };\r\n                    setInputValue(address?.address1 || '');\r\n                    onSelect(address);\r\n                } else {\r\n                    setInputValue('');\r\n                }\r\n            });\r\n        }\r\n    };\r\n\r\n    const debouncedSearchAddress = useMemo(() => debounce(onSearchAddress, 300), []);\r\n\r\n    return (\r\n        <ThemeProvider theme={missingField ? missingFieldTheme : theme}>\r\n            <FormGroup>\r\n                <FormLabel required={required} htmlFor={id}>\r\n                    {inputLabel}\r\n                </FormLabel>\r\n\r\n                <Autocomplete\r\n                    freeSolo\r\n                    disableClearable\r\n                    disabled={disabled}\r\n                    data-testid=\"auto-complete\"\r\n                    options={\r\n                        options\r\n                            ? options.map((option: AutocompletePrediction) => ({\r\n                                  label: `${option.description}`,\r\n                                  value: option.placeId,\r\n                              }))\r\n                            : []\r\n                    }\r\n                    inputValue={inputValue}\r\n                    onInputChange={onAutoCompleteInputChange}\r\n                    onChange={onAutocompleteSelect}\r\n                    renderInput={(params): ReactNode => (\r\n                        <TextField\r\n                            {...params}\r\n                            {...register}\r\n                            variant={variant}\r\n                            type=\"text\"\r\n                            error={errorType}\r\n                            placeholder={placeholder}\r\n                            data-testid=\"auto-complete-text-field\"\r\n                        />\r\n                    )}\r\n                />\r\n\r\n                {errorType && (\r\n                    <Typography data-testid=\"auto-complete-error\">\r\n                        {errorMessage && <ErrorOutlinedIcon fontSize=\"small\" />}\r\n                        <span data-testid=\"auto-complete-error-message\"> {errorMessage}</span>\r\n                    </Typography>\r\n                )}\r\n            </FormGroup>\r\n        </ThemeProvider>\r\n    );\r\n};\r\n","import { createTheme } from '@mui/material';\r\nimport { Color } from 'app/shared/enums';\r\nimport { pxToRem } from 'app/shared/helpers';\r\n\r\nexport default createTheme({\r\n    components: {\r\n        MuiChip: {\r\n            styleOverrides: {\r\n                root: {\r\n                    margin: `${pxToRem(10)} ${pxToRem(5)} ${pxToRem(0)}`,\r\n                    borderRadius: pxToRem(3),\r\n                    background: Color.nafLight,\r\n                    '& .MuiChip-deleteIcon': {\r\n                        color: Color.nafPrimaryBlue,\r\n                        height: pxToRem(15),\r\n                        width: pxToRem(15),\r\n                    },\r\n                    '& .MuiChip-deleteIcon:hover': {\r\n                        color: Color.primaryButtonHoverBlue,\r\n                    },\r\n                    fontSize: pxToRem(13),\r\n                    height: pxToRem(25),\r\n                },\r\n            },\r\n        },\r\n    },\r\n});\r\n","import * as React from 'react';\r\nimport { ReactElement } from 'react';\r\nimport { Chip, ThemeProvider } from '@mui/material';\r\nimport theme from './custom-client-chip.theme';\r\nimport { MilestoneFilterOption } from 'app/shared/models';\r\n\r\ninterface CustomClientChipProps {\r\n    option: MilestoneFilterOption;\r\n    handleRemoveChip: (option: MilestoneFilterOption) => void;\r\n}\r\n\r\nexport const CustomClientChip = (props: CustomClientChipProps): ReactElement => {\r\n    const { option, handleRemoveChip } = props;\r\n\r\n    return (\r\n        <ThemeProvider theme={theme}>\r\n            <Chip label={option.label} onDelete={(): void => handleRemoveChip(option)} />\r\n        </ThemeProvider>\r\n    );\r\n};\r\n","import { createTheme } from '@mui/material';\r\nimport { pxToRem } from 'app/shared/helpers';\r\nimport { Color } from 'app/shared/enums';\r\n\r\nexport const theme = createTheme({\r\n    components: {\r\n        MuiPaper: {\r\n            styleOverrides: {\r\n                root: {\r\n                    backgroundColor: 'transparent',\r\n                },\r\n            },\r\n        },\r\n        MuiAccordion: {\r\n            styleOverrides: {\r\n                root: {\r\n                    '&:last-of-type': {\r\n                        borderBottomLeftRadius: 0,\r\n                        borderBottomRightRadius: 0,\r\n                    },\r\n                    '&:first-of-type': {\r\n                        borderTopLeftRadius: 0,\r\n                        borderTopRightRadius: 0,\r\n                    },\r\n                    boxShadow: 'none',\r\n                },\r\n            },\r\n        },\r\n        MuiAccordionSummary: {\r\n            styleOverrides: {\r\n                root: {\r\n                    ' .MuiTypography-root': {\r\n                        fontSize: pxToRem(18),\r\n                        color: Color.nafDark,\r\n                        fontWeight: 'bold',\r\n                    },\r\n\r\n                    '& .MuiAccordionSummary-content': {\r\n                        margin: `${pxToRem(30)} 0`,\r\n                        '&.Mui-expanded': {\r\n                            margin: `${pxToRem(30)} 0`,\r\n                        },\r\n                    },\r\n\r\n                    '&.Mui-expanded': {\r\n                        minHeight: 'fit-content',\r\n                    },\r\n                    padding: 0,\r\n                    minHeight: 'fit-content',\r\n                },\r\n            },\r\n        },\r\n        MuiAccordionDetails: {\r\n            styleOverrides: {\r\n                root: {\r\n                    padding: 0,\r\n                    marginBottom: pxToRem(30),\r\n                    color: Color.darkCharcoal,\r\n                    '& *': {\r\n                        margin: 0,\r\n                    },\r\n                    '& a': {\r\n                        color: Color.nafSecondaryBlue,\r\n                    },\r\n                },\r\n            },\r\n        },\r\n    },\r\n});\r\n","import { ReactElement, ReactNode } from 'react';\r\nimport {\r\n    Accordion,\r\n    AccordionSummary,\r\n    AccordionDetails,\r\n    Typography,\r\n    ThemeProvider,\r\n} from '@mui/material';\r\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\r\nimport { theme } from './faq.theme';\r\nimport { pxToRem } from 'app/shared/helpers';\r\nimport { Color } from 'app/shared/enums';\r\n\r\ninterface FaqProps {\r\n    summary: ReactNode;\r\n    details: string;\r\n    isLast: boolean;\r\n}\r\n\r\nexport const Faq = ({ summary, details, isLast }: FaqProps): ReactElement => (\r\n    <ThemeProvider theme={theme}>\r\n        <Accordion\r\n            style={{ borderBottom: isLast ? 'none' : `${pxToRem(1)} solid ${Color.lightGrey3}` }}\r\n        >\r\n            <AccordionSummary data-testid=\"accordion\" expandIcon={<ExpandMoreIcon />}>\r\n                <Typography>{summary}</Typography>\r\n            </AccordionSummary>\r\n\r\n            <AccordionDetails\r\n                data-testid=\"accordion-details\"\r\n                dangerouslySetInnerHTML={{ __html: details }}\r\n            />\r\n        </Accordion>\r\n    </ThemeProvider>\r\n);\r\n","// extracted by mini-css-extract-plugin\nexport default {\"announcements\":\"announcements_announcements__-mUgy\",\"announcement\":\"announcements_announcement__Nm7jf\",\"announcement__message\":\"announcements_announcement__message__mKmUH\"};","// extracted by mini-css-extract-plugin\nexport default {\"closeIcon\":\"announcements_close-icon_closeIcon__PJggy\"};","import { IconButton, ThemeProvider, createTheme } from '@mui/material';\r\nimport { Color } from 'app/shared/enums';\r\nimport { pxToRem } from 'app/shared/helpers';\r\nimport { MouseEventHandler, ReactElement } from 'react';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport styles from './announcements.close-icon.module.scss';\r\n\r\nconst iconTheme = createTheme({\r\n    components: {\r\n        MuiSvgIcon: {\r\n            styleOverrides: {\r\n                root: {\r\n                    backgroundColor: Color.white,\r\n                    borderRadius: '50%',\r\n                    color: Color.nafDark,\r\n                    padding: pxToRem(8),\r\n                    fontSize: pxToRem(16),\r\n                    fontWeight: 800,\r\n                },\r\n            },\r\n        },\r\n    },\r\n});\r\n\r\ninterface AnnouncementCloseIconProps {\r\n    handleClose: MouseEventHandler;\r\n}\r\n\r\nexport const AnnouncementCloseIcon = ({\r\n    handleClose,\r\n}: AnnouncementCloseIconProps): ReactElement => (\r\n    <ThemeProvider theme={iconTheme}>\r\n        <IconButton\r\n            data-testid=\"announcements-banner__close-icon\"\r\n            className={styles.closeIcon}\r\n            aria-label=\"close\"\r\n            onClick={handleClose}\r\n        >\r\n            <CloseIcon />\r\n        </IconButton>\r\n    </ThemeProvider>\r\n);\r\n","import { Announcement } from 'app/services/announcements/models';\r\nimport { ReactElement, ReactNode, useEffect, useRef, useState } from 'react';\r\n\r\nimport styles from './announcements.module.scss';\r\nimport { AnnouncementCloseIcon } from './announcements-close-icon';\r\nimport { useAppSelector } from 'app/store/hooks';\r\nimport { GetAnnouncementsSelector } from 'app/store/slices/announcements.slice';\r\nimport { localStorageHelper } from 'app/shared/helpers';\r\n\r\ninterface AnnouncementProps {\r\n    announcement: Announcement;\r\n    inSession: boolean;\r\n}\r\n\r\nexport const AnnouncementBanner = ({\r\n    announcement,\r\n    inSession,\r\n}: AnnouncementProps): ReactElement | null => {\r\n    const [showBanner, setShowBanner] = useState(true);\r\n    const { message, isDismissable, showInSession } = announcement;\r\n    const ref = useRef<HTMLParagraphElement>(null);\r\n\r\n    useEffect(() => {\r\n        if (ref.current) {\r\n            ref.current.innerHTML = message || '';\r\n        }\r\n    }, [ref]);\r\n\r\n    const handleClose = (): void => {\r\n        setShowBanner((prev) => !prev);\r\n    };\r\n\r\n    if (inSession && !showInSession) return null;\r\n\r\n    return showBanner ? (\r\n        <div data-testid=\"announcements-banner\" className={styles.announcement}>\r\n            <p\r\n                data-testid=\"announcements-banner__message\"\r\n                ref={ref}\r\n                className={styles.announcement__message}\r\n            />\r\n            {isDismissable && <AnnouncementCloseIcon handleClose={handleClose} />}\r\n        </div>\r\n    ) : null;\r\n};\r\n\r\nexport const Announcements = (): ReactElement | null => {\r\n    const activeAnnouncements = useAppSelector(GetAnnouncementsSelector);\r\n    const token = localStorageHelper.get('@nc_token');\r\n    const inSession = typeof token === 'string';\r\n\r\n    return activeAnnouncements?.length ? (\r\n        <div data-testid=\"announcements\" className={styles.announcements}>\r\n            {activeAnnouncements?.map(\r\n                (x: Announcement): ReactNode => (\r\n                    <AnnouncementBanner key={x.id} announcement={x} inSession={inSession} />\r\n                )\r\n            )}\r\n        </div>\r\n    ) : null;\r\n};\r\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"fixed-position-container_container__eZK2H\"};","import { ReactElement, ReactNode } from 'react';\r\nimport styles from './fixed-position-container.module.scss';\r\n\r\ninterface FixedPositionContainerProps {\r\n    children: ReactNode;\r\n}\r\n\r\nexport const FixedPositionContainer = ({ children }: FixedPositionContainerProps): ReactElement => (\r\n    <div className={styles.container} data-testid=\"fixed-position-container\">\r\n        {children}\r\n    </div>\r\n);\r\n","// extracted by mini-css-extract-plugin\nexport default {\"button\":\"clickable-container_button__7RvOC\"};","import classnames from 'classnames';\r\nimport { ForwardedRef, ReactNode, forwardRef } from 'react';\r\nimport styles from './clickable-container.module.scss';\r\n\r\ninterface ContainerClickableProps {\r\n    children: ReactNode;\r\n    className?: string;\r\n    onClick: () => void;\r\n}\r\n\r\nexport const ClickableContainer = forwardRef<HTMLButtonElement, ContainerClickableProps>(\r\n    (props: ContainerClickableProps, ref: ForwardedRef<HTMLButtonElement>) => {\r\n        const { children, className, onClick } = props;\r\n        return (\r\n            <button\r\n                ref={ref}\r\n                type=\"button\"\r\n                onClick={onClick}\r\n                className={classnames(styles.button, className)}\r\n            >\r\n                {children}\r\n            </button>\r\n        );\r\n    }\r\n);\r\n\r\nClickableContainer.defaultProps = { className: undefined };\r\n","// extracted by mini-css-extract-plugin\nexport default {\"link\":\"back-link_link__8F60-\",\"link__backIcon\":\"back-link_link__backIcon__+9xRJ\"};","import { ReactElement, ReactNode } from 'react';\r\nimport { HiArrowLeft } from 'react-icons/hi';\r\nimport { Link } from 'react-router-dom';\r\n\r\nimport styles from './back-link.module.scss';\r\n\r\ninterface BackLinkProps {\r\n    to: string;\r\n    linkText?: string;\r\n    children?: ReactNode;\r\n}\r\n\r\nexport const CustomBackLink = ({ to, linkText, children }: BackLinkProps): ReactElement => (\r\n    <Link className={styles.link} to={to}>\r\n        {children || (\r\n            <>\r\n                <HiArrowLeft\r\n                    data-testid=\"back-link-icon\"\r\n                    className={styles.link__backIcon}\r\n                    tabIndex={-1}\r\n                />\r\n                {linkText}\r\n            </>\r\n        )}\r\n    </Link>\r\n);\r\n\r\nCustomBackLink.defaultProps = { children: undefined, linkText: undefined };\r\n","import { Color } from 'app/shared/enums';\r\n\r\nimport { createTheme } from '@mui/material';\r\n\r\nexport const theme = createTheme({\r\n    components: {\r\n        MuiRadio: {\r\n            styleOverrides: {\r\n                root: {\r\n                    color: Color.nafPrimaryBlue,\r\n                    '&.Mui-checked': {\r\n                        color: Color.nafPrimaryBlue,\r\n\r\n                        '& .MuiSvgIcon-root': {\r\n                            '&:last-child': {\r\n                                transform: 'scale(1.15)',\r\n                            },\r\n                        },\r\n                    },\r\n                },\r\n            },\r\n        },\r\n        MuiFormLabel: {\r\n            styleOverrides: {\r\n                root: {\r\n                    display: 'flex',\r\n                    '&.Mui-focused': {\r\n                        color: Color.darkCharcoal,\r\n                    },\r\n                },\r\n                asterisk: {\r\n                    color: Color.alert,\r\n                    '&$error': {\r\n                        color: Color.alert,\r\n                    },\r\n                },\r\n            },\r\n        },\r\n        MuiFormControl: {\r\n            styleOverrides: {\r\n                root: {\r\n                    width: '100%',\r\n                },\r\n            },\r\n        },\r\n        MuiFormControlLabel: {\r\n            styleOverrides: {\r\n                root: {\r\n                    '&.Mui-disabled': {\r\n                        color: Color.dustGray,\r\n                        opacity: 0.7,\r\n                    },\r\n                },\r\n            },\r\n        },\r\n    },\r\n});\r\n","import React, { ReactElement, ReactNode, MouseEventHandler, ChangeEventHandler } from 'react';\r\n\r\nimport {\r\n    FormControl,\r\n    FormLabel,\r\n    FormControlLabel,\r\n    Radio,\r\n    RadioGroup,\r\n    ThemeProvider,\r\n} from '@mui/material';\r\n\r\nimport { theme } from './custom-radio-group.theme';\r\nimport classnames from 'classnames';\r\n\r\nexport interface CustomRadioGroupOption {\r\n    id: string;\r\n    value: string;\r\n    label: ReactNode;\r\n    checked: boolean;\r\n    disabled?: boolean;\r\n}\r\n\r\nexport interface CustomRadioGroupProps {\r\n    children?: ReactNode;\r\n    inputLabel?: ReactNode;\r\n    requiredInput?: boolean;\r\n    defaultValue?: string | number | boolean | undefined;\r\n    row?: boolean;\r\n    className?: string;\r\n    labelClassName?: string;\r\n    scrollableClassName?: string;\r\n    options?: CustomRadioGroupOption[];\r\n    onClick?: MouseEventHandler<HTMLButtonElement>;\r\n    onChange?: ChangeEventHandler<HTMLInputElement>;\r\n}\r\n\r\nexport const CustomRadioGroup = (props: CustomRadioGroupProps): ReactElement => {\r\n    const {\r\n        children,\r\n        requiredInput,\r\n        inputLabel,\r\n        defaultValue,\r\n        row,\r\n        className,\r\n        labelClassName,\r\n        scrollableClassName,\r\n        options,\r\n        onClick,\r\n        onChange,\r\n    } = props;\r\n\r\n    return (\r\n        <ThemeProvider theme={theme}>\r\n            <FormControl>\r\n                {inputLabel && <FormLabel required={requiredInput}>{inputLabel}</FormLabel>}\r\n                <RadioGroup\r\n                    className={classnames({ [className as string]: className })}\r\n                    defaultValue={defaultValue}\r\n                    row={row}\r\n                >\r\n                    {children}\r\n\r\n                    {options ? (\r\n                        <div\r\n                            data-testid=\"custom-radio-group-options\"\r\n                            className={classnames({\r\n                                [scrollableClassName as string]: scrollableClassName,\r\n                            })}\r\n                        >\r\n                            {options.map(\r\n                                (option: CustomRadioGroupOption): ReactElement => (\r\n                                    <FormControlLabel\r\n                                        tabIndex={0}\r\n                                        disabled={option.disabled}\r\n                                        className={classnames({\r\n                                            [labelClassName as string]: labelClassName,\r\n                                        })}\r\n                                        key={option.id}\r\n                                        value={option.value}\r\n                                        control={\r\n                                            <Radio\r\n                                                tabIndex={0}\r\n                                                checked={option.checked}\r\n                                                onClick={onClick}\r\n                                                onChange={onChange}\r\n                                            />\r\n                                        }\r\n                                        label={option.label ?? null}\r\n                                    />\r\n                                )\r\n                            )}\r\n                        </div>\r\n                    ) : null}\r\n                </RadioGroup>\r\n            </FormControl>\r\n        </ThemeProvider>\r\n    );\r\n};\r\n\r\nCustomRadioGroup.defaultProps = {\r\n    inputLabel: undefined,\r\n    requiredInput: false,\r\n    defaultValue: undefined,\r\n    row: true,\r\n    className: undefined,\r\n    labelClassName: undefined,\r\n    scrollableClassName: undefined,\r\n    onClick: undefined,\r\n    onChange: undefined,\r\n    children: undefined,\r\n    options: null,\r\n};\r\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"expandable-radio-button_container__9Fkor\",\"container__label\":\"expandable-radio-button_container__label__NRpnb\",\"container__content\":\"expandable-radio-button_container__content__SQ5MB\",\"container__content--expanded\":\"expandable-radio-button_container__content--expanded__ngdR5\"};","import { ReactElement } from 'react';\r\nimport styles from './expandable-radio-button.module.scss';\r\nimport { FormControlLabel, Radio, ThemeProvider } from '@mui/material';\r\n\r\nimport classnames from 'classnames';\r\nimport { theme } from '../custom-radio-group/custom-radio-group.theme';\r\nimport { UseFormRegisterReturn } from 'react-hook-form';\r\n\r\ninterface ExpandableRadioButtonProps {\r\n    label?: string;\r\n    checked?: boolean;\r\n    className?: string;\r\n    value?: string | boolean | number | undefined;\r\n    register?: UseFormRegisterReturn;\r\n    onClick?: React.MouseEventHandler<HTMLButtonElement>;\r\n    onChange?: React.ChangeEventHandler<HTMLInputElement>;\r\n    children?: React.ReactNode;\r\n    radioLabelTestId?: string | undefined;\r\n}\r\n\r\nexport const ExpandableRadioButton = ({\r\n    label,\r\n    checked,\r\n    className,\r\n    value,\r\n    register,\r\n    onClick,\r\n    onChange,\r\n    children,\r\n    radioLabelTestId,\r\n}: ExpandableRadioButtonProps): ReactElement => (\r\n    <div\r\n        data-testid=\"expandable-radio-button\"\r\n        className={classnames(styles.container, { [className as string]: className })}\r\n    >\r\n        <ThemeProvider theme={theme}>\r\n            <FormControlLabel\r\n                data-testid={radioLabelTestId}\r\n                value={value}\r\n                control={\r\n                    <Radio checked={checked} onClick={onClick} onChange={onChange} {...register} />\r\n                }\r\n                label={label ? <span className={styles.container__label}>{label}</span> : null}\r\n            />\r\n\r\n            {children ? (\r\n                <div\r\n                    className={classnames(styles.container__content, {\r\n                        [styles['container__content--expanded']]: checked,\r\n                    })}\r\n                >\r\n                    {children}\r\n                </div>\r\n            ) : null}\r\n        </ThemeProvider>\r\n    </div>\r\n);\r\n","import React, { useMemo } from 'react';\r\nimport classnames from 'classnames';\r\n\r\ninterface ImageProps {\r\n    src: string | undefined;\r\n    alt: string;\r\n    className?: string;\r\n    defaultImg?: string;\r\n}\r\n\r\nexport const MemoizedImage = ({ src, alt, className, defaultImg }: ImageProps): JSX.Element => {\r\n    const memoizedImageComponent = useMemo(\r\n        () => (\r\n            <img\r\n                className={classnames({ [className as string]: className })}\r\n                src={src}\r\n                onError={({ currentTarget }): void => {\r\n                    if (!defaultImg) return;\r\n                    currentTarget.src = defaultImg;\r\n                }}\r\n                alt={alt}\r\n                data-testid=\"img-tag\"\r\n            />\r\n        ),\r\n        [src]\r\n    );\r\n\r\n    return memoizedImageComponent;\r\n};\r\n\r\nMemoizedImage.defaultProps = { className: undefined, defaultImg: undefined };\r\n","import { AutocompleteRenderInputParams, TextField } from '@mui/material';\r\nimport { AsyncRequestStatus } from 'app/shared/enums';\r\nimport { isStatusPending } from 'app/shared/helpers';\r\nimport CustomCircularProgress from '../custom-circular-progress/custom-circular-progress.component';\r\nimport { MouseEventHandler } from 'react';\r\n\r\ninterface AutocompleteTextfieldProps {\r\n    asyncStatus: AsyncRequestStatus;\r\n    params: AutocompleteRenderInputParams;\r\n    onClick: MouseEventHandler<HTMLInputElement>;\r\n    placeholder: string;\r\n}\r\n\r\nexport const AutoCompleteTextField = ({\r\n    params,\r\n    asyncStatus,\r\n    onClick,\r\n    placeholder,\r\n}: AutocompleteTextfieldProps): JSX.Element => (\r\n    <TextField\r\n        {...params}\r\n        placeholder={placeholder}\r\n        InputProps={{\r\n            ...params.InputProps,\r\n            endAdornment: (\r\n                <>\r\n                    {isStatusPending(asyncStatus) ? (\r\n                        <CustomCircularProgress inline size={20} />\r\n                    ) : null}\r\n                    {params.InputProps.endAdornment}\r\n                </>\r\n            ),\r\n        }}\r\n        onClick={onClick}\r\n    />\r\n);\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport styled, { CSSObject, Interpolation } from '@emotion/styled';\r\nimport { ComponentProps } from 'react';\r\n\r\ninterface ICoBrandedPreviewDetailsProps {\r\n    bottom: string;\r\n    left: string;\r\n    styles?: CSSObject | Interpolation<ComponentProps<any>>;\r\n}\r\n\r\nexport const PdfPreviewDetails = styled.div(\r\n    ({ bottom, left, styles }: ICoBrandedPreviewDetailsProps): any => {\r\n        let componentStyles: CSSObject | undefined;\r\n\r\n        if (typeof styles === 'object' && styles !== null) {\r\n            componentStyles = styles as CSSObject;\r\n        }\r\n\r\n        return {\r\n            position: 'absolute',\r\n            bottom: `${bottom}`,\r\n            left: `${left}`,\r\n            ...componentStyles,\r\n        };\r\n    }\r\n);\r\n\r\nPdfPreviewDetails.defaultProps = { styles: undefined };\r\n","import { GlobalProps } from '@emotion/react';\r\nimport styled, { Interpolation, CSSObject } from '@emotion/styled';\r\nimport { ComponentProps } from 'react';\r\n\r\ninterface IPdfPreviewProps extends GlobalProps {\r\n    imageUrl: string;\r\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n    styles: CSSObject | Interpolation<ComponentProps<any>>;\r\n    scale: number;\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport const PdfPreview = styled.div<IPdfPreviewProps>(({ imageUrl, styles, scale = 1 }): any => {\r\n    let componentStyles: CSSObject | undefined;\r\n    let transformOrigin;\r\n\r\n    if (typeof styles === 'object' && styles !== null) {\r\n        componentStyles = styles as CSSObject;\r\n    }\r\n\r\n    if (scale > 1) {\r\n        transformOrigin = 'top left';\r\n    }\r\n\r\n    return {\r\n        position: 'relative',\r\n        backgroundImage: `url(${imageUrl})`,\r\n        backgroundRepeat: 'no-repeat',\r\n        backgroundSize: 'contain',\r\n        transform: `scale(${scale})`,\r\n        transformOrigin,\r\n        margin: 0,\r\n        ...componentStyles,\r\n    };\r\n});\r\n","import { ReactElement, ReactNode, useMemo } from 'react';\r\nimport { PdfPreview } from 'app/shared/styled';\r\nimport { pxToRem } from 'app/shared/helpers';\r\nimport { CoBrandedPreviewType, Color } from 'app/shared/enums';\r\n\r\nexport interface CoBrandedPreviewProps {\r\n    backgroundImageUrl: string;\r\n    previewType: CoBrandedPreviewType;\r\n    scale?: number;\r\n    children?: ReactNode;\r\n    isModal?: boolean;\r\n}\r\n\r\nexport const CoBrandedPreview = (props: CoBrandedPreviewProps): ReactElement => {\r\n    const { backgroundImageUrl, previewType, scale = 1, children, isModal } = props;\r\n\r\n    const defaultModalStyles = {\r\n        minWidth: pxToRem(600),\r\n        minHeight: pxToRem(750),\r\n    };\r\n\r\n    const mortgageModalStyles = isModal\r\n        ? {\r\n              ...defaultModalStyles,\r\n              border: `${pxToRem(1)} solid ${Color.alto}`,\r\n              '@media (max-width: 768px)': {\r\n                  minWidth: pxToRem(348),\r\n                  minHeight: pxToRem(440),\r\n              },\r\n          }\r\n        : {};\r\n\r\n    const styles = useMemo(() => {\r\n        switch (previewType) {\r\n            case CoBrandedPreviewType.MortgageStatments:\r\n                return {\r\n                    minWidth: pxToRem(300),\r\n                    minHeight: pxToRem(380),\r\n                    border: `${pxToRem(1)} solid ${Color.alto}`,\r\n                    ...mortgageModalStyles,\r\n                };\r\n            case CoBrandedPreviewType.GreetingCards:\r\n                return {\r\n                    minWidth: pxToRem(300),\r\n                    minHeight: pxToRem(560),\r\n                };\r\n            case CoBrandedPreviewType.ClosingCards:\r\n            default:\r\n                return {\r\n                    minWidth: pxToRem(320),\r\n                    minHeight: pxToRem(600),\r\n                };\r\n        }\r\n    }, [previewType]);\r\n\r\n    return (\r\n        <PdfPreview\r\n            data-testid=\"pdf-preview\"\r\n            imageUrl={backgroundImageUrl}\r\n            styles={styles}\r\n            scale={scale}\r\n        >\r\n            {children}\r\n        </PdfPreview>\r\n    );\r\n};\r\n\r\nCoBrandedPreview.defaultProps = {\r\n    scale: 1,\r\n    children: undefined,\r\n    isModal: false,\r\n};\r\n","import { GlobalProps } from '@emotion/react';\r\nimport styled, { Interpolation, CSSObject } from '@emotion/styled';\r\nimport { ComponentProps } from 'react';\r\n\r\ninterface IDivProps extends GlobalProps {\r\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n    styles: CSSObject | Interpolation<ComponentProps<any>>;\r\n}\r\n\r\nexport const Div = styled.div<IDivProps>(({ styles }) => {\r\n    let componentStyles: CSSObject | undefined;\r\n\r\n    if (typeof styles === 'object' && styles !== null) {\r\n        componentStyles = styles as CSSObject;\r\n    }\r\n\r\n    return {\r\n        ...componentStyles,\r\n    };\r\n});\r\n","// extracted by mini-css-extract-plugin\nexport default {\"details__email\":\"layout-two_details__email__+YQXQ\",\"details__phone\":\"layout-two_details__phone__PM3PP\",\"details__license\":\"layout-two_details__license__5E7qf\",\"details__jobTitle\":\"layout-two_details__jobTitle__fdLq0\",\"details__name\":\"layout-two_details__name__pPCGE\",\"agents\":\"layout-two_agents__-Leug\",\"agent\":\"layout-two_agent__f5TYA\",\"agent__companyLogo\":\"layout-two_agent__companyLogo__dNVl-\",\"agent__companyLogo--partner\":\"layout-two_agent__companyLogo--partner__zk3+5\",\"agent__img\":\"layout-two_agent__img__e-E5d\",\"details\":\"layout-two_details__F8qK0\"};","import { LoanOfficer, Phone, RealEstateAgent, StateLicense } from 'app/shared/models';\r\nimport { ReactElement } from 'react';\r\nimport styles from './layout-two.module.scss';\r\nimport classnames from 'classnames';\r\nimport { CustomImageTag } from 'app/shared/components';\r\nimport { useNafConnectImages } from 'app/shared/hooks/use-naf-connect-images.hook';\r\nimport CustomCircularProgress from 'app/shared/components/custom-circular-progress/custom-circular-progress.component';\r\nimport MarketingNafConnectLogo from 'app/shared/components/svg-icons/marketing-naf-connect-logo.component';\r\nimport { phoneNumberFormat } from 'app/shared/helpers';\r\nimport { ContactPhoneType } from 'app/shared/enums';\r\n\r\ninterface ILayoutTwoProps {\r\n    partner: RealEstateAgent | undefined;\r\n    agent: LoanOfficer | undefined;\r\n    isLoadingLo: boolean | undefined;\r\n}\r\n\r\nexport const LayoutTwo = (props: ILayoutTwoProps): ReactElement => {\r\n    const { partner, agent, isLoadingLo } = props;\r\n    const { defaultAvatarImg } = useNafConnectImages();\r\n\r\n    const {\r\n        firstName = '',\r\n        lastName = '',\r\n        stateLicenses = new Array<StateLicense>(),\r\n        phoneNumber = '',\r\n        emailAddress = '',\r\n        photoUrl = '',\r\n        companyLogoUrl = '',\r\n    } = partner ?? ({} as RealEstateAgent);\r\n    const partnerFullName = `${firstName} ${lastName}`;\r\n    const license = `Lic# ${stateLicenses[0]?.licenseNumber}`;\r\n\r\n    const {\r\n        firstName: agentFirstName = '',\r\n        lastName: agentLastName = '',\r\n        jobTitle: agentJobTitle = '',\r\n        photoUrl: agentPhotoUrl = '',\r\n        nmlsLicenseNumber = '',\r\n        emailAddress: agentEmailAddress = '',\r\n        phones = new Array<Phone>(),\r\n    } = agent ?? ({} as LoanOfficer);\r\n\r\n    const agentFullName = `${agentFirstName} ${agentLastName}`;\r\n    const NMLS = `NMLS# ${nmlsLicenseNumber}`;\r\n\r\n    const agentPhoneTypes = phones.map((x) => x.type);\r\n\r\n    const hasPhoneType = (type: ContactPhoneType): boolean => {\r\n        const phoneTypeExists = agentPhoneTypes.includes(type);\r\n        const validNumber = phones.find((x) => x.type === type)?.number !== '';\r\n\r\n        return phoneTypeExists && validNumber;\r\n    };\r\n\r\n    const getLoanOfficerPhoneNumber = (type: ContactPhoneType): string => {\r\n        const number = phones.find((x: Phone) => x.type === type)?.number ?? '';\r\n\r\n        return phoneNumberFormat(number);\r\n    };\r\n\r\n    return (\r\n        <div className={styles.agents} data-testid=\"cobranded__layout-two\">\r\n            <div className={styles.agent}>\r\n                <CustomImageTag\r\n                    className={styles.agent__img}\r\n                    src={photoUrl}\r\n                    fallback={defaultAvatarImg}\r\n                    alt=\"agent-details\"\r\n                />\r\n\r\n                {companyLogoUrl && (\r\n                    <img\r\n                        className={classnames(\r\n                            styles.agent__companyLogo,\r\n                            styles['agent__companyLogo--partner']\r\n                        )}\r\n                        src={companyLogoUrl}\r\n                        alt=\"company-logo\"\r\n                    />\r\n                )}\r\n\r\n                <div className={styles.details}>\r\n                    <p className={styles.details__name}>{partnerFullName}</p>\r\n                    <p className={styles.details__jobTitle}>Real Estate Agent</p>\r\n                    <p className={styles.details__license}>{license}</p>\r\n                    <p className={styles.details__phone}>{phoneNumberFormat(phoneNumber)}</p>\r\n                    <p className={styles.details__email}>{emailAddress}</p>\r\n                </div>\r\n            </div>\r\n\r\n            {isLoadingLo ? (\r\n                <CustomCircularProgress />\r\n            ) : (\r\n                <div className={styles.agent}>\r\n                    <CustomImageTag\r\n                        className={styles.agent__img}\r\n                        src={agentPhotoUrl}\r\n                        fallback={defaultAvatarImg}\r\n                        alt=\"agent-details-preview\"\r\n                    />\r\n\r\n                    <MarketingNafConnectLogo className={styles.agent__companyLogo} />\r\n\r\n                    <div className={styles.details}>\r\n                        <p className={styles.details__name}>{agentFullName}</p>\r\n                        <p className={styles.details__jobTitle}>{agentJobTitle}</p>\r\n                        <p className={styles.details__license}>{NMLS}</p>\r\n\r\n                        <div className={styles.details__agentPhones}>\r\n                            {hasPhoneType(ContactPhoneType.Cell) && (\r\n                                <p className={styles.details__phone}>\r\n                                    C: {getLoanOfficerPhoneNumber(ContactPhoneType.Cell)}\r\n                                </p>\r\n                            )}\r\n\r\n                            {hasPhoneType(ContactPhoneType.Work) && (\r\n                                <p className={styles.details__phone}>\r\n                                    O: {getLoanOfficerPhoneNumber(ContactPhoneType.Work)}\r\n                                </p>\r\n                            )}\r\n\r\n                            {hasPhoneType(ContactPhoneType.DirectDial) && (\r\n                                <p className={styles.details__phone}>\r\n                                    P: {getLoanOfficerPhoneNumber(ContactPhoneType.DirectDial)}\r\n                                </p>\r\n                            )}\r\n                        </div>\r\n\r\n                        <p className={styles.details__email}>{agentEmailAddress}</p>\r\n                    </div>\r\n                </div>\r\n            )}\r\n        </div>\r\n    );\r\n};\r\n","// extracted by mini-css-extract-plugin\nexport default {\"details__email\":\"layout-one_details__email__24El-\",\"details__phone\":\"layout-one_details__phone__RVI43\",\"details__license\":\"layout-one_details__license__8wITZ\",\"details__jobTitle\":\"layout-one_details__jobTitle__L4gT0\",\"details__name\":\"layout-one_details__name__2qDMI\",\"agents\":\"layout-one_agents__b-j98\",\"agent\":\"layout-one_agent__o+sYE\",\"agent__img\":\"layout-one_agent__img__tPjI4\",\"agent__img--modal\":\"layout-one_agent__img--modal__4zRYs\",\"details\":\"layout-one_details__saka4\",\"details--modal\":\"layout-one_details--modal__3DQea\"};","import { CustomImageTag } from 'app/shared/components';\r\nimport { useNafConnectImages } from 'app/shared/hooks/use-naf-connect-images.hook';\r\nimport { LoanOfficer, RealEstateAgent, StateLicense } from 'app/shared/models';\r\nimport classnames from 'classnames';\r\nimport { ReactElement } from 'react';\r\nimport styles from './layout-one.module.scss';\r\nimport CustomCircularProgress from 'app/shared/components/custom-circular-progress/custom-circular-progress.component';\r\nimport { phoneNumberFormat } from 'app/shared/helpers';\r\n\r\ninterface ILayoutOneProps {\r\n    partner: RealEstateAgent | undefined;\r\n    agent: LoanOfficer | undefined;\r\n    isModal: boolean | undefined;\r\n    isLoadingLo: boolean | undefined;\r\n}\r\n\r\nexport const LayoutOne = (props: ILayoutOneProps): ReactElement => {\r\n    const { partner, agent, isModal, isLoadingLo } = props;\r\n    const { defaultAvatarImg } = useNafConnectImages();\r\n\r\n    const {\r\n        firstName = '',\r\n        lastName = '',\r\n        stateLicenses = new Array<StateLicense>(),\r\n        phoneNumber = '',\r\n        emailAddress = '',\r\n        photoUrl = '',\r\n    } = partner ?? ({} as RealEstateAgent);\r\n    const partnerFullName = `${firstName} ${lastName}`;\r\n    const license = `Lic# ${stateLicenses[0]?.licenseNumber}`;\r\n\r\n    const {\r\n        firstName: agentFirstName = '',\r\n        lastName: agentLastName = '',\r\n        jobTitle: agentJobTitle = '',\r\n        photoUrl: agentPhotoUrl = '',\r\n        phoneNumber: agentPhoneNumber = '',\r\n        nmlsLicenseNumber = '',\r\n        emailAddress: agentEmailAddress = '',\r\n    } = agent ?? ({} as LoanOfficer);\r\n\r\n    const agentFullName = `${agentFirstName} ${agentLastName}`;\r\n    const NMLS = `NMLS# ${nmlsLicenseNumber}`;\r\n\r\n    return (\r\n        <div className={styles.agents} data-testid=\"cobranded__layout-one\">\r\n            <div className={classnames(styles.agent)}>\r\n                <CustomImageTag\r\n                    className={classnames(styles.agent__img, {\r\n                        [styles['agent__img--modal']]: isModal,\r\n                    })}\r\n                    src={photoUrl}\r\n                    fallback={defaultAvatarImg}\r\n                    alt=\"agent-details-preview\"\r\n                />\r\n\r\n                <div\r\n                    className={classnames(styles.details, {\r\n                        [styles['details--modal']]: isModal,\r\n                    })}\r\n                >\r\n                    <p className={styles.details__name}>{partnerFullName}</p>\r\n                    <p className={styles.details__jobTitle}>Real Estate Agent</p>\r\n                    <p className={styles.details__license}>{license}</p>\r\n                    <p className={styles.details__phone}>{phoneNumberFormat(phoneNumber)}</p>\r\n                    <p className={styles.details__email}>{emailAddress}</p>\r\n                </div>\r\n            </div>\r\n\r\n            {isLoadingLo ? (\r\n                <CustomCircularProgress />\r\n            ) : (\r\n                <div className={classnames(styles.agent)}>\r\n                    <CustomImageTag\r\n                        className={classnames(styles.agent__img, {\r\n                            [styles['agent__img--modal']]: isModal,\r\n                        })}\r\n                        src={agentPhotoUrl}\r\n                        fallback={defaultAvatarImg}\r\n                        alt=\"agent-details-preview\"\r\n                    />\r\n\r\n                    <div\r\n                        className={classnames(styles.details, {\r\n                            [styles['details--modal']]: isModal,\r\n                        })}\r\n                    >\r\n                        <p className={styles.details__name}>{agentFullName}</p>\r\n                        <p className={styles.details__jobTitle}>{agentJobTitle}</p>\r\n                        <p className={styles.details__license}>{NMLS}</p>\r\n                        <p className={styles.details__phone}>\r\n                            {phoneNumberFormat(agentPhoneNumber)}\r\n                        </p>\r\n                        <p className={styles.details__email}>{agentEmailAddress}</p>\r\n                    </div>\r\n                </div>\r\n            )}\r\n        </div>\r\n    );\r\n};\r\n","// extracted by mini-css-extract-plugin\nexport default {\"details__email\":\"layout-three_details__email__iOXF9\",\"details__phone\":\"layout-three_details__phone__vn+X2\",\"details__license\":\"layout-three_details__license__juuqs\",\"details__jobTitle\":\"layout-three_details__jobTitle__V5M55\",\"details__name\":\"layout-three_details__name__ip0dh\",\"agents\":\"layout-three_agents__y2IYf\",\"agent\":\"layout-three_agent__XDVz4\",\"agent__companyLogo\":\"layout-three_agent__companyLogo__ktYYb\",\"agent__companyLogo--partner\":\"layout-three_agent__companyLogo--partner__EKELm\",\"agent__img\":\"layout-three_agent__img__XpO0b\",\"details\":\"layout-three_details__GH06Q\",\"details--agent\":\"layout-three_details--agent__Wbq1i\"};","import { LoanOfficer, Phone, RealEstateAgent, StateLicense } from 'app/shared/models';\r\nimport { ReactElement } from 'react';\r\nimport styles from './layout-three.module.scss';\r\nimport classnames from 'classnames';\r\nimport { CustomImageTag } from 'app/shared/components';\r\nimport { useNafConnectImages } from 'app/shared/hooks/use-naf-connect-images.hook';\r\nimport CustomCircularProgress from 'app/shared/components/custom-circular-progress/custom-circular-progress.component';\r\nimport MarketingNafConnectLogo from 'app/shared/components/svg-icons/marketing-naf-connect-logo.component';\r\nimport { phoneNumberFormat } from 'app/shared/helpers';\r\nimport { ContactPhoneType } from 'app/shared/enums';\r\n\r\ninterface ILayoutThreeProps {\r\n    partner: RealEstateAgent | undefined;\r\n    agent: LoanOfficer | undefined;\r\n    isLoadingLo: boolean | undefined;\r\n}\r\n\r\nexport const LayoutThree = (props: ILayoutThreeProps): ReactElement => {\r\n    const { partner, agent, isLoadingLo } = props;\r\n    const { defaultAvatarImg } = useNafConnectImages();\r\n\r\n    const {\r\n        firstName = '',\r\n        lastName = '',\r\n        stateLicenses = new Array<StateLicense>(),\r\n        phoneNumber = '',\r\n        emailAddress = '',\r\n        photoUrl = '',\r\n        companyLogoUrl = '',\r\n    } = partner ?? ({} as RealEstateAgent);\r\n    const partnerFullName = `${firstName} ${lastName}`;\r\n    const license = `Lic# ${stateLicenses[0]?.licenseNumber}`;\r\n\r\n    const {\r\n        firstName: agentFirstName = '',\r\n        lastName: agentLastName = '',\r\n        jobTitle: agentJobTitle = '',\r\n        photoUrl: agentPhotoUrl = '',\r\n        nmlsLicenseNumber = '',\r\n        emailAddress: agentEmailAddress = '',\r\n        phones = new Array<Phone>(),\r\n    } = agent ?? ({} as LoanOfficer);\r\n\r\n    const agentFullName = `${agentFirstName} ${agentLastName}`;\r\n    const NMLS = `NMLS# ${nmlsLicenseNumber}`;\r\n\r\n    const agentPhoneTypes = phones.map((x) => x.type);\r\n\r\n    const hasPhoneType = (type: ContactPhoneType): boolean => {\r\n        const phoneTypeExists = agentPhoneTypes.includes(type);\r\n        const validNumber = phones.find((x) => x.type === type)?.number !== '';\r\n\r\n        return phoneTypeExists && validNumber;\r\n    };\r\n\r\n    const getLoanOfficerPhoneNumber = (type: ContactPhoneType): string => {\r\n        const number = phones.find((x: Phone) => x.type === type)?.number ?? '';\r\n\r\n        return phoneNumberFormat(number);\r\n    };\r\n\r\n    return (\r\n        <div className={styles.agents} data-testid=\"cobranded__layout-three\">\r\n            <div className={styles.agent}>\r\n                <CustomImageTag\r\n                    className={styles.agent__img}\r\n                    src={photoUrl}\r\n                    fallback={defaultAvatarImg}\r\n                    alt=\"agent-details-preview\"\r\n                />\r\n\r\n                <div className={classnames(styles.details, styles['details--partner'])}>\r\n                    <p className={styles.details__name}>{partnerFullName}</p>\r\n                    <p className={styles.details__jobTitle}>Real Estate Agent</p>\r\n                    <p className={styles.details__license}>{license}</p>\r\n                    <p className={styles.details__phone}>{phoneNumberFormat(phoneNumber)}</p>\r\n                    <p className={styles.details__email}>{emailAddress}</p>\r\n                </div>\r\n\r\n                {companyLogoUrl && (\r\n                    <img\r\n                        className={classnames(\r\n                            styles.agent__companyLogo,\r\n                            styles['agent__companyLogo--partner']\r\n                        )}\r\n                        src={companyLogoUrl}\r\n                        alt=\"company-logo\"\r\n                    />\r\n                )}\r\n            </div>\r\n\r\n            {isLoadingLo ? (\r\n                <CustomCircularProgress />\r\n            ) : (\r\n                <div className={styles.agent}>\r\n                    <CustomImageTag\r\n                        className={styles.agent__img}\r\n                        src={agentPhotoUrl}\r\n                        fallback={defaultAvatarImg}\r\n                        alt=\"agent-details-preview\"\r\n                    />\r\n\r\n                    <div className={classnames(styles.details, styles['details--agent'])}>\r\n                        <p className={styles.details__name}>{agentFullName}</p>\r\n                        <p className={styles.details__jobTitle}>{agentJobTitle}</p>\r\n                        <p className={styles.details__license}>{NMLS}</p>\r\n\r\n                        <div className={styles.details__agentPhones}>\r\n                            {hasPhoneType(ContactPhoneType.Cell) && (\r\n                                <p className={styles.details__phone}>\r\n                                    C: {getLoanOfficerPhoneNumber(ContactPhoneType.Cell)}\r\n                                </p>\r\n                            )}\r\n\r\n                            {hasPhoneType(ContactPhoneType.Work) && (\r\n                                <p className={styles.details__phone}>\r\n                                    O: {getLoanOfficerPhoneNumber(ContactPhoneType.Work)}\r\n                                </p>\r\n                            )}\r\n\r\n                            {hasPhoneType(ContactPhoneType.DirectDial) && (\r\n                                <p className={styles.details__phone}>\r\n                                    P: {getLoanOfficerPhoneNumber(ContactPhoneType.DirectDial)}\r\n                                </p>\r\n                            )}\r\n                        </div>\r\n\r\n                        <p className={styles.details__email}>{agentEmailAddress}</p>\r\n\r\n                        <MarketingNafConnectLogo className={styles.agent__companyLogo} />\r\n                    </div>\r\n                </div>\r\n            )}\r\n        </div>\r\n    );\r\n};\r\n","import { CoBrandedPreviewType } from 'app/shared/enums';\r\nimport { ReactElement, useMemo } from 'react';\r\nimport { PdfPreviewDetails } from 'app/shared/styled';\r\nimport { LayoutOne, LayoutTwo } from './components';\r\nimport { PagePosition } from 'app/shared/models';\r\nimport { useGetRealEstateAgentQuery } from 'app/store/api/real-estate-agent/real-estate-agent.api';\r\nimport { useParams } from 'react-router-dom';\r\nimport { useGetClientDealQuery } from 'app/store/api/clients/clients.api';\r\nimport { LayoutThree } from './components/layout-three/layout-three.component';\r\n\r\ninterface ICoBranddPreviewEDtailsProps {\r\n    previewType: CoBrandedPreviewType;\r\n    isModal?: boolean;\r\n}\r\n\r\ntype DetailsMap = {\r\n    [key in CoBrandedPreviewType]: {\r\n        detailsPosition: PagePosition;\r\n    };\r\n};\r\n\r\nconst detailsMap: DetailsMap = {\r\n    [CoBrandedPreviewType.MortgageStatments]: {\r\n        detailsPosition: { x: 6, y: 65 },\r\n    },\r\n    [CoBrandedPreviewType.GreetingCards]: {\r\n        detailsPosition: { x: 2.5, y: 10 },\r\n    },\r\n    [CoBrandedPreviewType.ClosingCards]: {\r\n        detailsPosition: { x: 4, y: 10 },\r\n    },\r\n};\r\n\r\nexport const CoBrandedPreviewDetails = ({\r\n    previewType,\r\n    isModal,\r\n}: ICoBranddPreviewEDtailsProps): ReactElement => {\r\n    const { dealId = '', loanId = '' } = useParams();\r\n    const { data: partner } = useGetRealEstateAgentQuery();\r\n\r\n    const { loanOfficer, isLoadingLo } = useGetClientDealQuery(\r\n        { dealId, loanId },\r\n        {\r\n            selectFromResult: ({ data, isLoading }) => ({\r\n                loanOfficer: data?.loanOfficer,\r\n                isLoadingLo: isLoading,\r\n            }),\r\n        }\r\n    );\r\n\r\n    const component = useMemo(() => {\r\n        switch (previewType) {\r\n            case CoBrandedPreviewType.MortgageStatments:\r\n                return (\r\n                    <LayoutOne\r\n                        isModal={isModal}\r\n                        partner={partner}\r\n                        agent={loanOfficer}\r\n                        isLoadingLo={isLoadingLo}\r\n                    />\r\n                );\r\n            case CoBrandedPreviewType.GreetingCards:\r\n                return (\r\n                    <LayoutTwo partner={partner} agent={loanOfficer} isLoadingLo={isLoadingLo} />\r\n                );\r\n            case CoBrandedPreviewType.ClosingCards:\r\n            default:\r\n                return (\r\n                    <LayoutThree partner={partner} agent={loanOfficer} isLoadingLo={isLoadingLo} />\r\n                );\r\n        }\r\n    }, []);\r\n\r\n    const { detailsPosition } = detailsMap[previewType];\r\n    const bottom = `${detailsPosition.x}%`;\r\n    const left = `${detailsPosition.y}%`;\r\n\r\n    return (\r\n        <PdfPreviewDetails bottom={bottom} left={left}>\r\n            {component}\r\n        </PdfPreviewDetails>\r\n    );\r\n};\r\n\r\nCoBrandedPreviewDetails.defaultProps = { isModal: false };\r\n","import { HTMLAttributes, ReactElement } from 'react';\r\nimport { CiHeart } from 'react-icons/ci';\r\nimport { IoMdHeart } from 'react-icons/io';\r\n\r\ninterface FavoriteIconProps extends HTMLAttributes<SVGElement> {\r\n    isFavorite: boolean;\r\n}\r\n\r\nexport const FavoriteIcon = ({ isFavorite, ...rest }: FavoriteIconProps): ReactElement => {\r\n    const Icon = isFavorite ? IoMdHeart : CiHeart;\r\n\r\n    return <Icon tabIndex={0} {...rest} />;\r\n};\r\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"container-clickable_container__qeEua\",\"container--desktop\":\"container-clickable_container--desktop__nxxJ4\"};","import { forwardRef, ForwardedRef, KeyboardEvent, ReactNode } from 'react';\r\nimport stlyles from './container-clickable.module.scss';\r\nimport classnames from 'classnames';\r\n\r\ninterface ContainerClickableProps {\r\n    children: ReactNode;\r\n    className?: string;\r\n    onClick: () => void;\r\n    onKeyDown: (event: KeyboardEvent<HTMLDivElement>) => void;\r\n}\r\n\r\nexport const Container = forwardRef<HTMLDivElement, ContainerClickableProps>(\r\n    (props: ContainerClickableProps, ref: ForwardedRef<HTMLDivElement>) => {\r\n        const { children, className, onClick, onKeyDown } = props;\r\n        return (\r\n            <>\r\n                <div\r\n                    ref={ref}\r\n                    role=\"button\"\r\n                    tabIndex={0}\r\n                    onClick={onClick}\r\n                    onKeyDown={onKeyDown}\r\n                    className={classnames(stlyles.container, className)}\r\n                >\r\n                    {children}\r\n                </div>\r\n\r\n                <div className={classnames(stlyles['container--desktop'], className)}>\r\n                    {children}\r\n                </div>\r\n            </>\r\n        );\r\n    }\r\n);\r\n\r\nContainer.defaultProps = { className: undefined };\r\n","// extracted by mini-css-extract-plugin\nexport default {\"icon\":\"plus-minus-icon_icon__sLMVi\"};","import { Color } from 'app/shared/enums';\r\nimport { HTMLAttributes, ReactElement } from 'react';\r\nimport { FaMinus, FaPlus } from 'react-icons/fa';\r\nimport styles from './plus-minus-icon.module.scss';\r\n\r\ninterface PlusMinusIconProps extends HTMLAttributes<SVGElement> {\r\n    renderMinusIcon?: boolean;\r\n}\r\n\r\nexport const PlusMinusIcon = ({ renderMinusIcon, ...rest }: PlusMinusIconProps): ReactElement => {\r\n    const Icon = renderMinusIcon ? FaMinus : FaPlus;\r\n    return <Icon className={styles.icon} color={Color.white} {...rest} />;\r\n};\r\n\r\nPlusMinusIcon.defaultProps = { renderMinusIcon: false };\r\n","// extracted by mini-css-extract-plugin\nexport default {\"field\":\"custom-drop-down_field__D6xIx\",\"field__label\":\"custom-drop-down_field__label__5mB9V\",\"field__icon\":\"custom-drop-down_field__icon__jlMGE\",\"select\":\"custom-drop-down_select__fZ+hc\",\"select__option\":\"custom-drop-down_select__option__F3h0b\"};","import React, { ChangeEventHandler, ReactElement } from 'react';\r\nimport { Field, Label, Select } from '@headlessui/react';\r\n\r\nimport styles from './custom-drop-down.module.scss';\r\nimport classnames from 'classnames';\r\nimport { CheveronDown } from 'app/shared/components';\r\n\r\nexport type CustomDropDownOption = {\r\n    value: string;\r\n    label: string;\r\n};\r\n\r\ninterface CustomDropDownProps {\r\n    className?: string;\r\n    label?: string;\r\n    options?: Array<CustomDropDownOption>;\r\n    handleChange: ChangeEventHandler<HTMLSelectElement>;\r\n}\r\n\r\nexport const CustomDropDown = (props: CustomDropDownProps): ReactElement => {\r\n    const { className, label, options, handleChange } = props;\r\n\r\n    return (\r\n        <Field className={classnames(styles.field, className)}>\r\n            {!!label && <Label className={styles.container__label}>{label}</Label>}\r\n\r\n            <Select defaultValue={0} className={styles.select} onChange={handleChange}>\r\n                <option value={0} disabled hidden>\r\n                    Select\r\n                </option>\r\n\r\n                {options?.map((option) => (\r\n                    <option\r\n                        className={styles.select__option}\r\n                        key={option.value}\r\n                        value={option.value}\r\n                    >\r\n                        {option.label}\r\n                    </option>\r\n                ))}\r\n            </Select>\r\n\r\n            <CheveronDown className={styles.field__icon} />\r\n        </Field>\r\n    );\r\n};\r\n","import { ReactElement, SVGProps } from 'react';\r\n\r\nexport const CheveronDown = ({ className }: SVGProps<SVGPathElement>): ReactElement => (\r\n    <svg\r\n        className={className}\r\n        xmlns=\"http://www.w3.org/2000/svg\"\r\n        width=\"14\"\r\n        height=\"8\"\r\n        viewBox=\"0 0 14 8\"\r\n        fill=\"none\"\r\n    >\r\n        <path\r\n            d=\"M6.29609 7.70853C6.68672 8.09916 7.32109 8.09916 7.71172 7.70853L13.7117 1.70853C14.1023 1.31791 14.1023 0.683533 13.7117 0.292908C13.3211 -0.0977173 12.6867 -0.0977173 12.2961 0.292908L7.00234 5.58666L1.70859 0.296032C1.31797 -0.0945926 0.683594 -0.0945926 0.292969 0.296032C-0.0976562 0.686657 -0.0976562 1.32103 0.292969 1.71166L6.29297 7.71166L6.29609 7.70853Z\"\r\n            fill=\"#1D1F2A\"\r\n        />\r\n    </svg>\r\n);\r\n","// extracted by mini-css-extract-plugin\nexport default {\"card\":\"preferred-loan-officer-card_card__YgGiD\",\"card--grow\":\"preferred-loan-officer-card_card--grow__qwm2I\",\"card__content\":\"preferred-loan-officer-card_card__content__kJG4j\",\"card__imgColumn\":\"preferred-loan-officer-card_card__imgColumn__uLYNM\",\"card__img\":\"preferred-loan-officer-card_card__img__zlymx\",\"card__infoColumn\":\"preferred-loan-officer-card_card__infoColumn__tdtbe\",\"card__position\":\"preferred-loan-officer-card_card__position__+5eo1\",\"card__loStates\":\"preferred-loan-officer-card_card__loStates__HTQxS\",\"card__loStates--exposed\":\"preferred-loan-officer-card_card__loStates--exposed__2POsV\",\"card__loState\":\"preferred-loan-officer-card_card__loState__2qSse\",\"card__loStateExposed\":\"preferred-loan-officer-card_card__loStateExposed__kRgiJ\",\"card__show\":\"preferred-loan-officer-card_card__show__ywat6\",\"card__fullName\":\"preferred-loan-officer-card_card__fullName__CFk3F\",\"card__phone\":\"preferred-loan-officer-card_card__phone__J4Z-v\",\"card__icon\":\"preferred-loan-officer-card_card__icon__ezYSD\",\"card__link\":\"preferred-loan-officer-card_card__link__H8kYJ\",\"card__filler\":\"preferred-loan-officer-card_card__filler__zEzWL\",\"card__email\":\"preferred-loan-officer-card_card__email__Gcwep\",\"card__remove\":\"preferred-loan-officer-card_card__remove__BFy9d\",\"card__text\":\"preferred-loan-officer-card_card__text__9EZDN\",\"card__licenseText\":\"preferred-loan-officer-card_card__licenseText__J-+LF\",\"card__removeText\":\"preferred-loan-officer-card_card__removeText__vCMvj\"};","/* eslint-disable react/require-default-props */\r\nimport { ReactElement, useMemo, useState } from 'react';\r\nimport EmailIcon from '@mui/icons-material/Email';\r\nimport PhoneIcon from '@mui/icons-material/Phone';\r\nimport PhoneIphoneIcon from '@mui/icons-material/PhoneIphone';\r\nimport { styled } from '@mui/material/styles';\r\n\r\nimport { CustomButton, CustomImageTag } from 'app/shared/components';\r\nimport { LoanOfficer } from 'app/shared/models';\r\nimport { Color, ContactPhoneType, MuiButtonType } from 'app/shared/enums';\r\nimport classnames from 'classnames';\r\nimport { TbDeviceLandlinePhone } from 'react-icons/tb';\r\nimport { FaTrashAlt } from 'react-icons/fa';\r\nimport ExpandLessIcon from '@mui/icons-material/ExpandLess';\r\n\r\nimport styles from './preferred-loan-officer-card.module.scss';\r\nimport { phoneNumberFormat, pxToRem } from 'app/shared/helpers';\r\nimport ResponsiveLayout from 'app/shared/enums/responsive-layout.enum';\r\nimport { getAdminId } from 'app/services';\r\nimport { useNafConnectImages, useWhichLayout } from 'app/shared/hooks';\r\nimport { statesByCode } from 'app/shared/data';\r\nimport ExperienceRating from '../experience-rating/experience-rating.component';\r\n\r\nexport const StateLabelContainer = styled('div')(() => ({\r\n    width: pxToRem(32),\r\n    height: pxToRem(32),\r\n    borderRadius: '50%',\r\n    border: 'solid',\r\n    borderWidth: pxToRem(2),\r\n    borderColor: Color.nafPrimaryBlue,\r\n    backgroundColor: Color.aquaHaze,\r\n    display: 'flex',\r\n    justifyContent: 'center',\r\n    alignItems: 'center',\r\n}));\r\n\r\nexport const StateLabel = styled('div')(() => ({\r\n    font: `normal normal bold ${pxToRem(13)}/${pxToRem(16)} Roboto`,\r\n    textAlign: 'center',\r\n    color: Color.nafPrimaryBlue,\r\n}));\r\n\r\nexport const AdditionalStatesContainer = styled('div')(() => ({\r\n    width: pxToRem(36),\r\n    height: pxToRem(36),\r\n    borderRadius: '50%',\r\n    borderColor: Color.nafSecondaryBlue,\r\n    backgroundColor: Color.nafSecondaryBlue,\r\n    display: 'flex',\r\n    justifyContent: 'center',\r\n    alignItems: 'center',\r\n    position: 'absolute',\r\n    left: pxToRem(261),\r\n    zIndex: 9,\r\n    cursor: 'pointer',\r\n    '@media (max-width: 576px)': {\r\n        left: pxToRem(145),\r\n    },\r\n}));\r\n\r\nexport const AdditionalStatesLabel = styled('div')(() => ({\r\n    font: `normal normal bold ${pxToRem(13)}/${pxToRem(16)} Roboto`,\r\n    textAlign: 'center',\r\n    color: Color.white,\r\n}));\r\n\r\nexport const PhoneLink = ({\r\n    icon: Icon,\r\n    phone,\r\n    extension,\r\n    'data-testid': dataTestId,\r\n}: {\r\n    icon: typeof PhoneIcon | typeof PhoneIphoneIcon | typeof TbDeviceLandlinePhone;\r\n    phone: string;\r\n    extension?: string;\r\n    'data-testid'?: string;\r\n}): JSX.Element => (\r\n    <div className={styles.card__phone} data-testid={dataTestId}>\r\n        <Icon className={styles.card__icon} />\r\n        <a className={styles.card__link} href={`tel: ${phone}${extension ? `,${extension}` : ''}`}>\r\n            <p className={styles.card__text}>{phoneNumberFormat(phone, extension)}</p>\r\n        </a>\r\n    </div>\r\n);\r\n\r\ninterface PreferredLoanOfficerCardProps {\r\n    loanOfficer: LoanOfficer;\r\n    index: number;\r\n    onRemove?: (lo: LoanOfficer, index: number) => void;\r\n    disabled: boolean;\r\n    showStateLicenses?: boolean;\r\n    cardClassName?: string;\r\n    cc?: string;\r\n    subject?: string;\r\n}\r\n\r\nexport const PreferredLoanOfficerCard = ({\r\n    loanOfficer,\r\n    index,\r\n    disabled,\r\n    onRemove,\r\n    showStateLicenses = true,\r\n    cardClassName,\r\n    cc,\r\n    subject,\r\n}: PreferredLoanOfficerCardProps): ReactElement => {\r\n    const [showMoreStates, setShowMoreStates] = useState(false);\r\n    const { defaultAvatarImg } = useNafConnectImages();\r\n\r\n    const statesLicensed = useMemo(() => {\r\n        if (!loanOfficer.stateLicenses) return [];\r\n\r\n        return loanOfficer.stateLicenses\r\n            .filter(\r\n                ({ licenseStatusTypeId, stateLicensed }) =>\r\n                    licenseStatusTypeId === 1 &&\r\n                    statesByCode.some(\r\n                        ({ code }) => code.toUpperCase() === stateLicensed.toUpperCase()\r\n                    )\r\n            )\r\n            .map(({ stateLicensed }) => stateLicensed);\r\n    }, [loanOfficer.stateLicenses]);\r\n\r\n    const getLoanOfficerEmailDetails = (cc?: string, subject?: string): string => {\r\n        const baseMailto = `mailto:${loanOfficer.emailAddress}`;\r\n        const params: string[] = [];\r\n\r\n        if (cc) {\r\n            params.push(`cc=${cc}`);\r\n        }\r\n\r\n        if (subject) {\r\n            params.push(`subject=${subject}`);\r\n        }\r\n\r\n        if (params.length > 0) {\r\n            const mailtoWithParams = `${baseMailto}?${params.join('&')}`;\r\n            return mailtoWithParams;\r\n        }\r\n\r\n        return baseMailto;\r\n    };\r\n\r\n    let cellPhone;\r\n    let directPhone;\r\n    let workPhone;\r\n    let workPhoneExtension;\r\n    const layout = useWhichLayout();\r\n\r\n    loanOfficer.phones?.forEach((phone) => {\r\n        if (phone.type === ContactPhoneType.Work) {\r\n            if (phone.number !== '') {\r\n                workPhone = phone.number;\r\n                if (phone.extension !== '') {\r\n                    workPhoneExtension = phone.extension;\r\n                }\r\n            }\r\n        }\r\n        if (phone.type === ContactPhoneType.Cell) {\r\n            if (phone.number !== '') {\r\n                cellPhone = phone.number;\r\n            }\r\n        }\r\n        if (phone.type === ContactPhoneType.DirectDial) {\r\n            if (phone.number !== '') {\r\n                directPhone = phone.number;\r\n            }\r\n        }\r\n    });\r\n\r\n    const newRenderStateTags = (): ReactElement => {\r\n        let rendered;\r\n        if (!showMoreStates) {\r\n            if (statesLicensed.length >= 6) {\r\n                if (layout === ResponsiveLayout.Mobile) {\r\n                    rendered = (\r\n                        <>\r\n                            {statesLicensed.slice(0, 5).map((state, index) => (\r\n                                <StateLabelContainer\r\n                                    key={state}\r\n                                    className={styles.card__loState}\r\n                                    style={{ zIndex: index, left: index * 29 }}\r\n                                >\r\n                                    <StateLabel>{state}</StateLabel>\r\n                                </StateLabelContainer>\r\n                            ))}\r\n                            <AdditionalStatesContainer\r\n                                data-testid=\"additional-states-greater-6\"\r\n                                onClick={(): void => setShowMoreStates((state) => !state)}\r\n                            >\r\n                                <AdditionalStatesLabel>\r\n                                    +{statesLicensed.length - 5}\r\n                                </AdditionalStatesLabel>\r\n                            </AdditionalStatesContainer>\r\n                        </>\r\n                    );\r\n                    return rendered;\r\n                }\r\n                if (statesLicensed.length >= 10) {\r\n                    rendered = (\r\n                        <>\r\n                            {statesLicensed.slice(0, 9).map((state, index) => (\r\n                                <StateLabelContainer\r\n                                    key={state}\r\n                                    className={styles.card__loState}\r\n                                    style={{ zIndex: index, left: index * 29 }}\r\n                                >\r\n                                    <StateLabel>{state}</StateLabel>\r\n                                </StateLabelContainer>\r\n                            ))}\r\n                            <AdditionalStatesContainer\r\n                                data-testid=\"additional-states-greater-10\"\r\n                                onClick={(): void => setShowMoreStates((state) => !state)}\r\n                            >\r\n                                <AdditionalStatesLabel>\r\n                                    +{statesLicensed.length - 9}\r\n                                </AdditionalStatesLabel>\r\n                            </AdditionalStatesContainer>\r\n                        </>\r\n                    );\r\n                    return rendered;\r\n                }\r\n            }\r\n        }\r\n        if (showMoreStates) {\r\n            rendered = (\r\n                <>\r\n                    {statesLicensed.map((state) => (\r\n                        <StateLabelContainer key={state} className={styles.card__loStateExposed}>\r\n                            <StateLabel>{state}</StateLabel>\r\n                        </StateLabelContainer>\r\n                    ))}\r\n                    <AdditionalStatesContainer\r\n                        style={{ position: 'static' }}\r\n                        data-testid=\"additional-states-show\"\r\n                        onClick={(): void => setShowMoreStates((state) => !state)}\r\n                    >\r\n                        <AdditionalStatesLabel>\r\n                            <ExpandLessIcon style={{ color: Color.white }} />\r\n                        </AdditionalStatesLabel>\r\n                    </AdditionalStatesContainer>\r\n                </>\r\n            );\r\n            return rendered;\r\n        }\r\n        return (\r\n            <>\r\n                {statesLicensed.map((state, index) => (\r\n                    <StateLabelContainer\r\n                        key={state}\r\n                        className={styles.card__loState}\r\n                        style={{ zIndex: index, left: index * 29 }}\r\n                    >\r\n                        <StateLabel>{state}</StateLabel>\r\n                    </StateLabelContainer>\r\n                ))}\r\n            </>\r\n        );\r\n    };\r\n\r\n    const isAdmin = !!getAdminId();\r\n\r\n    return (\r\n        <div\r\n            key={loanOfficer.id}\r\n            className={classnames(styles.card, { [styles['card--grow']]: showMoreStates })}\r\n        >\r\n            <div\r\n                className={classnames(styles.card__content, {\r\n                    [cardClassName as string]: cardClassName,\r\n                })}\r\n            >\r\n                <div className={styles.card__imgColumn}>\r\n                    <CustomImageTag\r\n                        className={styles.card__img}\r\n                        src={loanOfficer?.photoUrl}\r\n                        alt=\"preferred loan officer\"\r\n                        fallback={defaultAvatarImg}\r\n                    />\r\n                </div>\r\n                <div className={styles.card__infoColumn}>\r\n                    <p className={classnames(styles.card__fullName, styles.card__text)}>\r\n                        {loanOfficer.firstName} {loanOfficer.lastName}\r\n                    </p>\r\n                    <p className={classnames(styles.card__position, styles.card__text)}>\r\n                        {loanOfficer.jobTitle}\r\n                    </p>\r\n                    <ExperienceRating\r\n                        rating={loanOfficer?.rating || 0}\r\n                        totalReviewCount={loanOfficer?.totalReviewCount || 0}\r\n                    />\r\n                    {cellPhone && (\r\n                        <PhoneLink\r\n                            icon={PhoneIphoneIcon}\r\n                            phone={cellPhone}\r\n                            data-testid=\"preferred-loan-officer-card__cell-phone\"\r\n                        />\r\n                    )}\r\n                    {directPhone && (\r\n                        <PhoneLink\r\n                            icon={PhoneIcon}\r\n                            phone={directPhone}\r\n                            data-testid=\"preferred-loan-officer-card__direct-phone\"\r\n                        />\r\n                    )}\r\n                    {workPhone && (\r\n                        <PhoneLink\r\n                            icon={TbDeviceLandlinePhone}\r\n                            phone={workPhone}\r\n                            extension={workPhoneExtension}\r\n                            data-testid=\"preferred-loan-officer-card__work-phone\"\r\n                        />\r\n                    )}\r\n                    <div className={styles.card__email}>\r\n                        <a\r\n                            className={styles.card__link}\r\n                            href={getLoanOfficerEmailDetails(cc, subject)}\r\n                            data-testid=\"preferred-loan-officer-card__email\"\r\n                        >\r\n                            <EmailIcon className={styles.card__icon} />\r\n\r\n                            <p className={styles.card__text}>{loanOfficer.emailAddress}</p>\r\n                        </a>\r\n                    </div>\r\n                    {[cellPhone, directPhone, workPhone].map(\r\n                        (p, index) =>\r\n                            !p && (\r\n                                // eslint-disable-next-line react/no-array-index-key\r\n                                <div key={index} className={styles.card__filler}>\r\n                                    <p className={styles.card__text}>_</p>\r\n                                </div>\r\n                            )\r\n                    )}\r\n\r\n                    {showStateLicenses && loanOfficer.stateLicenses && (\r\n                        <>\r\n                            <p className={styles.card__licenseText}>State Licenses</p>\r\n\r\n                            <div\r\n                                className={classnames(styles.card__loStates, {\r\n                                    [styles['card__loStates--exposed']]: showMoreStates,\r\n                                })}\r\n                                data-testid=\"preferred-loan-officer-card__state-tags-container\"\r\n                            >\r\n                                {newRenderStateTags()}\r\n                            </div>\r\n                        </>\r\n                    )}\r\n                    {onRemove && (\r\n                        <CustomButton\r\n                            className={styles.card__remove}\r\n                            type=\"button\"\r\n                            fontSize={16}\r\n                            variant={MuiButtonType.text}\r\n                            disabled={isAdmin || disabled}\r\n                            dataTestId=\"preferred-loan-officer-card-remove\"\r\n                            onClick={(): void => {\r\n                                onRemove(loanOfficer, index);\r\n                            }}\r\n                        >\r\n                            <FaTrashAlt />\r\n                            <p className={styles.card__removeText}>Remove</p>\r\n                        </CustomButton>\r\n                    )}\r\n                </div>\r\n            </div>\r\n        </div>\r\n    );\r\n};\r\n\r\nexport default PreferredLoanOfficerCard;\r\n","import React, { ReactElement, SVGProps } from 'react';\r\n\r\nconst MarketingNafConnectLogo = (props: SVGProps<SVGSVGElement>): ReactElement => (\r\n    <svg xmlns=\"http://www.w3.org/2000/svg\" x={0} y={0} viewBox=\"0 0 714.872 138.176\" {...props}>\r\n        <g data-name=\"NAF Logo - Colored\">\r\n            <path fill=\"#091644\" d=\"M0 0h138.176v138.176H0z\" data-name=\"Rectangle 3\" />\r\n            <g data-name=\"Group 13\">\r\n                <path\r\n                    fill=\"#fff\"\r\n                    d=\"M46.848 69.491c0-6.175-3.4-9.531-8.546-9.531-5.28 0-8.68 3.356-8.68 9.531v21.3h-9.755V52.218h9.755v4.788a14.41 14.41 0 0 1 11.634-5.37c8.993 0 15.392 5.862 15.392 16.51v22.642h-9.755v-21.3Z\"\r\n                    data-name=\"Path 37\"\r\n                />\r\n            </g>\r\n            <g data-name=\"Group 14\">\r\n                <path\r\n                    fill=\"#fff\"\r\n                    d=\"M76.695 51.68a15.148 15.148 0 0 1 12.708 6.131v-5.5h9.8v38.524h-9.8v-5.638a15.124 15.124 0 0 1-12.8 6.271c-9.755 0-17.542-8.01-17.542-20.046.049-12.042 7.835-19.742 17.634-19.742Zm2.506 8.546c-5.235 0-10.157 3.9-10.157 11.187s4.922 11.455 10.157 11.455c5.369 0 10.247-4.027 10.247-11.321s-4.883-11.32-10.248-11.32Z\"\r\n                    data-name=\"Path 38\"\r\n                />\r\n            </g>\r\n            <g data-name=\"Group 15\">\r\n                <path\r\n                    fill=\"#fff\"\r\n                    d=\"M111.642 52.396v-1.605c0-4.3 1.605-5.818 6.306-5.682h.4v-8.184h-.581c-10.693-.234-15.97 4.157-15.97 13.508v40.358h9.844v-30.43h6.712v-7.965Z\"\r\n                    data-name=\"Path 39\"\r\n                />\r\n            </g>\r\n            <path\r\n                fill=\"#091644\"\r\n                d=\"M361.057 42.508a13.781 13.781 0 0 1 1.387 6.8 16.725 16.725 0 0 1-1.6 6.891 15.2 15.2 0 0 1-14.409 9.172c-11.5 0-15.975-9.8-16.064-16.109a15.708 15.708 0 0 1 15.169-16.243h.761a15.249 15.249 0 0 1 14.766 9.486m1.3-9.844a19.6 19.6 0 0 0-17.227-8.725c-13.916 0-24.476 10.829-24.476 25.236 0 12.619 8.412 25.326 24.476 25.326a19.76 19.76 0 0 0 17.227-8.68v7.293h9.62V25.279h-9.62v7.385ZM431.931 23.94a17.7 17.7 0 0 0-12.708 5.012 24.464 24.464 0 0 0-3.177 4.251l-.045-.134a21.431 21.431 0 0 0-2.685-3.982 16.105 16.105 0 0 0-12.44-5.146 16.761 16.761 0 0 0-13.961 7.114v-5.733h-9.123v47.789h9.621V46.984a16.53 16.53 0 0 1 2.506-9.486 9.781 9.781 0 0 1 8.591-4.471h.045a9.516 9.516 0 0 1 8.591 4.564 15.769 15.769 0 0 1 1.879 9.129v26.312h9.755V46.716a15.548 15.548 0 0 1 2.1-9.352 9.9 9.9 0 0 1 8.814-4.341 9.084 9.084 0 0 1 8.188 3.8c1.745 2.237 2.505 5.5 2.505 10.247v25.959h9.665V46.716c0-9.486-1.253-13.873-5.28-17.988a17.814 17.814 0 0 0-12.841-4.788M479.633 32.263h.358a14.891 14.891 0 0 1 14.9 12.485h-30.473a14.663 14.663 0 0 1 15.213-12.485m0-8.323a25.281 25.281 0 1 0 .09 50.562 24.192 24.192 0 0 0 13.644-4.071 26 26 0 0 0 9.665-11.809l.229-.447h-10.061l-.134.179a14.332 14.332 0 0 1-13.334 7.786c-7.069 0-14.9-4.788-15.437-13.692h40.226l.045-.313a25.757 25.757 0 0 0-7.2-21.165 24.656 24.656 0 0 0-17.72-7.025M517.981 31.233v-5.952h-9.172V73.07h9.665V47.296c0-9.129 4.207-13.692 12.574-13.692h.9v-9.71h-.358a15.03 15.03 0 0 0-13.6 7.338M537.849 24.119h9.621v10.202h-9.621zM537.849 40.496h9.621v32.575h-9.621zM689.135 23.94h-.268c-6.98 0-12.485 2.775-15.392 7.652v-6.306h-9.174v47.789h9.665V46.492c0-8.591 4.52-13.334 12.8-13.468 7.92 0 11.947 4.743 11.947 14.14v25.912h9.8V45.151c.045-7.876-2.506-21.031-19.377-21.211M647.303 56.201a15.21 15.21 0 0 1-14.364 9.172c-11.634 0-16.064-9.8-16.109-16.109a15.761 15.761 0 0 1 15.3-16.243h.666a15.349 15.349 0 0 1 14.766 9.531 14.362 14.362 0 0 1 1.343 6.8 18.043 18.043 0 0 1-1.6 6.846m1.521-30.92v7.338a19.773 19.773 0 0 0-17.182-8.725 23.991 23.991 0 0 0-18.973 8.9l-.045-.045-19.733 23.045-2.953 3.445a4.531 4.531 0 0 1-.581.715 15.4 15.4 0 0 1-11.992 5.369 15.641 15.641 0 0 1-15.8-15.478v-.715a16.815 16.815 0 0 1 4.471-11.669 15.249 15.249 0 0 1 10.963-4.564l.358.045a14.815 14.815 0 0 1 14.364 9.621l.134.229h.045l6.535-7.652a25.144 25.144 0 1 0-4.43 33.25 22.24 22.24 0 0 0 3.177-3.311l8.5-9.755 1.7-1.924c1.656 11.053 9.889 21.076 24.163 21.076a19.633 19.633 0 0 0 17.182-8.68v7.293h9.665v-47.8ZM183.147 24.7h-.265c-6.846 0-12.26 2.73-15.079 7.567v-6.18h-9V73.16h9.531V46.943c0-8.457 4.43-13.155 12.619-13.245 7.831 0 11.768 4.7 11.768 13.96v25.506h9.621V45.6c-.089-7.7-2.551-20.718-19.2-20.9M230.801 32.933h.313a14.61 14.61 0 0 1 14.676 12.215h-29.98c.581-6.041 6.265-12.215 14.99-12.215m0-8.233a24.9 24.9 0 1 0 .045 49.8 23.841 23.841 0 0 0 13.424-3.982 26.058 26.058 0 0 0 9.531-11.634l.179-.447h-9.889l-.045.134a14.274 14.274 0 0 1-13.155 7.7c-7.025 0-14.676-4.7-15.258-13.513h39.645l.045-.358a24.958 24.958 0 0 0-7.114-20.807 24.48 24.48 0 0 0-17.407-6.89M252.682 26.087h9.308l10.829 27.026L288.031 24.7h.451l14.632 28.592 10.784-27.251h9.308l-18.345 46.8h-.581L288.167 40.9l-16.422 31.988h-.581Z\"\r\n            />\r\n            <g fill=\"#091644\" data-name=\"Group 16\">\r\n                <path\r\n                    d=\"M178.495 85.554v4.385h-13.963v9.71h10.874v4.385h-10.874v14.41h-5.414v-32.89Z\"\r\n                    data-name=\"Path 40\"\r\n                />\r\n                <path\r\n                    d=\"M203.238 85.554v20.982a6.728 6.728 0 0 0 7.428 7.518 7.6 7.6 0 0 0 5.5-1.879 7.5 7.5 0 0 0 1.969-5.638V85.554h5.368v20.9a12.5 12.5 0 0 1-1.745 6.8 10.57 10.57 0 0 1-4.7 4.162 15.468 15.468 0 0 1-6.488 1.387 14.478 14.478 0 0 1-6.444-1.387 10.355 10.355 0 0 1-4.603-4.162 13 13 0 0 1-1.7-6.8v-20.9Z\"\r\n                    data-name=\"Path 41\"\r\n                />\r\n                <path\r\n                    d=\"M271.923 118.443h-5.414L250.265 93.88v24.566h-5.414V85.51h5.414l16.243 24.521V85.51h5.414Z\"\r\n                    data-name=\"Path 42\"\r\n                />\r\n                <path\r\n                    d=\"M313.314 87.568a14.311 14.311 0 0 1 6.086 5.772 17.449 17.449 0 0 1 2.148 8.77 17.047 17.047 0 0 1-2.147 8.725 14.262 14.262 0 0 1-6.086 5.638 20.569 20.569 0 0 1-9.218 1.969h-10.74V85.554h10.74a19.989 19.989 0 0 1 9.217 2.014Zm-.358 23.357c2.064-2.1 3.088-5.011 3.088-8.815s-1.032-6.8-3.088-8.949-5.011-3.222-8.859-3.222h-5.37v24.115h5.369c3.848 0 6.8-1.028 8.859-3.132Z\"\r\n                    data-name=\"Path 43\"\r\n                />\r\n                <path d=\"M346.649 85.554v32.888h-5.414V85.554Z\" data-name=\"Path 44\" />\r\n                <path\r\n                    d=\"M395.152 118.443h-5.414L373.494 93.88v24.566h-5.412V85.51h5.414l16.243 24.521V85.51h5.414Z\"\r\n                    data-name=\"Path 45\"\r\n                />\r\n                <path\r\n                    d=\"M440.399 95.04a8.606 8.606 0 0 0-3.535-3.714 10.539 10.539 0 0 0-5.235-1.253 11.358 11.358 0 0 0-5.818 1.477 10.2 10.2 0 0 0-3.982 4.162 12.819 12.819 0 0 0-1.432 6.265 13.336 13.336 0 0 0 1.432 6.265 10.332 10.332 0 0 0 3.982 4.207 11.357 11.357 0 0 0 5.818 1.477 10.239 10.239 0 0 0 7.159-2.46 10.627 10.627 0 0 0 3.356-6.667h-12.349v-4.392h18.122v4.207a16.4 16.4 0 0 1-8.457 12.215 15.988 15.988 0 0 1-7.831 1.924 16.978 16.978 0 0 1-8.457-2.148 16.3 16.3 0 0 1-6.086-6 16.626 16.626 0 0 1-2.237-8.68 17.179 17.179 0 0 1 2.237-8.68 15.981 15.981 0 0 1 6.086-6 17.945 17.945 0 0 1 17.809.447 14.79 14.79 0 0 1 5.952 7.293h-6.535Z\"\r\n                    data-name=\"Path 46\"\r\n                />\r\n            </g>\r\n            <path\r\n                fill=\"#091644\"\r\n                d=\"M707.388 16.669h-1.96V22h-1.319v-5.331h-1.933V15.6h5.212Zm2.474-1.069 1.643 4.642 1.635-4.642h1.731V22h-1.322v-1.749l.132-3.019L711.954 22h-.906l-1.722-4.764.132 3.015V22h-1.319v-6.4Z\"\r\n                data-name=\"Path 6953\"\r\n            />\r\n        </g>\r\n    </svg>\r\n);\r\nexport default MarketingNafConnectLogo;\r\n","// extracted by mini-css-extract-plugin\nexport default {\"templateViewer\":\"template-viewer_templateViewer__h5Sr1\",\"templateViewer__link\":\"template-viewer_templateViewer__link__ShCJd\",\"templateViewer__icon\":\"template-viewer_templateViewer__icon__CxrSn\",\"templateViewer__header\":\"template-viewer_templateViewer__header__m7MdP\",\"templateViewer__divider\":\"template-viewer_templateViewer__divider__fMUgG\",\"templateViewer__disclaimer\":\"template-viewer_templateViewer__disclaimer__VOh-o\",\"preferredLoanOfficers\":\"template-viewer_preferredLoanOfficers__jsps8\",\"preferredLoanOfficers__title\":\"template-viewer_preferredLoanOfficers__title__6W9Mr\",\"preferredLoanOfficers__container\":\"template-viewer_preferredLoanOfficers__container__4fuJi\",\"preferredLoanOfficers__loanDisclaimer\":\"template-viewer_preferredLoanOfficers__loanDisclaimer__GF5LF\",\"preferredLoanOfficers__cards\":\"template-viewer_preferredLoanOfficers__cards__4mo51\",\"preferredLoanOfficers__card\":\"template-viewer_preferredLoanOfficers__card__ff-1q\",\"preferredLoanOfficers__phoneIcon\":\"template-viewer_preferredLoanOfficers__phoneIcon__5gCCd\"};","import { MouseEvent, ReactElement } from 'react';\r\nimport styles from './template-viewer.module.scss';\r\nimport { West } from '@mui/icons-material';\r\nimport { HeadingSize, FontWeight } from 'app/shared/enums';\r\nimport { defaultSalesDirector } from 'app/shared/helpers/template-data.helper';\r\nimport { useTemplateData } from 'app/shared/hooks';\r\nimport { LoanOfficer } from 'app/shared/models';\r\nimport { useParams, useNavigate, useLocation } from 'react-router-dom';\r\nimport CustomCircularProgress from '../custom-circular-progress/custom-circular-progress.component';\r\nimport { FeatureHeader } from '../feature-header/feature-header.component';\r\nimport { Heading } from '../heading/heading.component';\r\nimport PreferredLoanOfficerCard from '../preferred-loan-officer-card/preferred-loan-officer-card.component';\r\n\r\ninterface TemplateViewerProps {\r\n    isNAFConnectTour?: boolean;\r\n}\r\n\r\nconst TemplateViewer = (props: TemplateViewerProps): ReactElement => {\r\n    const { isNAFConnectTour = false } = props;\r\n    const { templateId = '' } = useParams();\r\n    const location = useLocation();\r\n    const navigate = useNavigate();\r\n\r\n    const {\r\n        templateData,\r\n        templateContent,\r\n        disclaimer,\r\n        preferredLoanOfficers,\r\n        showDefaultSalesDirector,\r\n        strategicPartner,\r\n    } = useTemplateData(templateId);\r\n\r\n    const onNavigateBack = (): void => {\r\n        if (location.pathname.includes('/tour/')) {\r\n            navigate('/rea/tour');\r\n        } else if (location.pathname.includes('/partnerships-and-products/')) {\r\n            navigate('/rea/partnerships-and-products');\r\n        }\r\n    };\r\n\r\n    const routeButtonClick = (event: MouseEvent<HTMLDivElement>): void => {\r\n        const target = event.target as HTMLElement;\r\n        const url = target.getAttribute('href');\r\n\r\n        if (target.tagName === 'A' && url) {\r\n            const targetBlank = target.getAttribute('_blank');\r\n\r\n            if (!targetBlank) return;\r\n\r\n            event.preventDefault();\r\n            navigate(url);\r\n        }\r\n    };\r\n\r\n    if (!templateContent) return <CustomCircularProgress />;\r\n\r\n    return (\r\n        <div className={styles.templateViewer}>\r\n            <div className={styles.templateViewer__link} onClick={onNavigateBack}>\r\n                <West className={styles.templateViewer__icon} />\r\n                Back to {isNAFConnectTour ? 'NAF Connect Tour' : 'Partnerships & Products'}\r\n            </div>\r\n\r\n            <FeatureHeader\r\n                className={styles.templateViewer__header}\r\n                dividerClassName={styles.templateViewer__divider}\r\n            >\r\n                <Heading as={HeadingSize.h3} size={3} fontWeight={FontWeight.semiBold}>\r\n                    {templateData?.title}\r\n                </Heading>\r\n            </FeatureHeader>\r\n\r\n            <div\r\n                className={styles.content}\r\n                onClick={routeButtonClick}\r\n                dangerouslySetInnerHTML={{ __html: templateContent }}\r\n            />\r\n\r\n            {templateData?.withLoanOfficer && (\r\n                <div className={styles.preferredLoanOfficers}>\r\n                    <h1 className={styles.preferredLoanOfficers__title}>\r\n                        For more information, please contact us today!\r\n                    </h1>\r\n                    <div className={styles.preferredLoanOfficers__container}>\r\n                        {!showDefaultSalesDirector &&\r\n                            preferredLoanOfficers?.map(\r\n                                (loanOfficer: LoanOfficer, index: number) => (\r\n                                    <div className={styles.preferredLoanOfficers__cards}>\r\n                                        <PreferredLoanOfficerCard\r\n                                            key={loanOfficer.externalLoanOfficerId}\r\n                                            loanOfficer={loanOfficer}\r\n                                            index={index}\r\n                                            cardClassName={styles.preferredLoanOfficers__card}\r\n                                            showStateLicenses={false}\r\n                                            disabled={false}\r\n                                            cc={templateData.cc}\r\n                                            subject={templateData.subject}\r\n                                        />\r\n                                    </div>\r\n                                )\r\n                            )}\r\n                        {showDefaultSalesDirector && (\r\n                            <div className={styles.preferredLoanOfficers__cards}>\r\n                                <PreferredLoanOfficerCard\r\n                                    key={defaultSalesDirector.id}\r\n                                    loanOfficer={defaultSalesDirector}\r\n                                    index={0}\r\n                                    cardClassName={styles.preferredLoanOfficers__card}\r\n                                    showStateLicenses={false}\r\n                                    disabled={false}\r\n                                    cc={templateData.cc}\r\n                                    subject={templateData.subject}\r\n                                />\r\n                            </div>\r\n                        )}\r\n\r\n                        {strategicPartner && (\r\n                            <div className={styles.preferredLoanOfficers__cards}>\r\n                                <PreferredLoanOfficerCard\r\n                                    key={strategicPartner.externalLoanOfficerId}\r\n                                    loanOfficer={strategicPartner}\r\n                                    index={0}\r\n                                    cardClassName={styles.preferredLoanOfficers__card}\r\n                                    showStateLicenses={false}\r\n                                    disabled={false}\r\n                                    cc={templateData.cc}\r\n                                    subject={templateData.subject}\r\n                                />\r\n                            </div>\r\n                        )}\r\n                    </div>\r\n                </div>\r\n            )}\r\n\r\n            {disclaimer && (\r\n                <div\r\n                    className={styles.templateViewer__disclaimer}\r\n                    dangerouslySetInnerHTML={{ __html: disclaimer }}\r\n                />\r\n            )}\r\n        </div>\r\n    );\r\n};\r\n\r\nexport default TemplateViewer;\r\n","enum ResponsiveLayout {\r\n    Mobile = 'mobile',\r\n    Tablet = 'tablet',\r\n    Desktop = 'desktop',\r\n}\r\n\r\nexport default ResponsiveLayout;\r\n","import { LoanOfficer } from 'app/shared/models';\r\n\r\nexport const commentRegex = /<!--(.*?)-->/gs;\r\n\r\nexport const defaultSalesDirector: LoanOfficer = {\r\n    id: 'cc4cf678-189a-4e88-bee7-2e5f83696f40',\r\n    externalLoanOfficerId: '',\r\n    firstName: 'Nick',\r\n    lastName: 'Kopeles',\r\n    emailAddress: 'nick.kopeles@nafinc.com',\r\n    phoneNumber: '',\r\n    nmlsLicenseNumber: '',\r\n    photoUrl: '',\r\n    spanishSpeaking: false,\r\n    hasActiveDeals: false,\r\n    jobTitle: 'Sr. Sales Director',\r\n    phones: [\r\n        {\r\n            extension: '',\r\n            number: '949-561-1403x51159',\r\n            type: 2,\r\n        },\r\n    ],\r\n    stateLicenses: [],\r\n};\r\n\r\nexport const templateContentObj = {\r\n    title: '',\r\n    showLoanOfficer: '',\r\n    cc: '',\r\n    subject: '',\r\n    strategicPartnerId: '',\r\n};\r\n\r\nexport const setTemplateProperty = (\r\n    property: keyof typeof templateContentObj,\r\n    comment: string\r\n): void => {\r\n    templateContentObj[property] = parseComment(comment);\r\n};\r\n\r\nexport const parseComment = (comment: string): string => {\r\n    if (!comment) return '';\r\n    const index = comment.indexOf(':');\r\n\r\n    return comment\r\n        .substring(index + 1, comment.length)\r\n        .replace(/-->/g, '')\r\n        .trim();\r\n};\r\n","import { useState } from 'react';\r\n\r\ninterface ModalHook {\r\n    isModalOpen: boolean;\r\n    showModal: () => void;\r\n    hideModal: () => void;\r\n}\r\n\r\nexport const useModal = (): ModalHook => {\r\n    const [isModalOpen, setIsModalOpen] = useState(false);\r\n\r\n    const showModal = (): void => setIsModalOpen(true);\r\n    const hideModal = (): void => setIsModalOpen(false);\r\n\r\n    return { isModalOpen, showModal, hideModal };\r\n};\r\n","import { useState } from 'react';\r\nimport { UserStateSelection } from '../models';\r\n\r\ninterface StateSelectErrorHook {\r\n    stateInvalid: boolean;\r\n    stateSelected: string;\r\n    selectErrorMessage: string | undefined;\r\n    handleUserStateSelect: (state: string) => void;\r\n}\r\n\r\nexport const useStateSelectError = (): StateSelectErrorHook => {\r\n    const [userStateSelection, setStateSelectedValues] = useState<UserStateSelection>({\r\n        stateInvalid: false,\r\n        stateSelected: '',\r\n        selectErrorMessage: undefined,\r\n    });\r\n\r\n    const handleUserStateSelect = (state: string): void => {\r\n        const invalidSelection = ['HI'];\r\n        const isInValid = invalidSelection.includes(state);\r\n\r\n        setStateSelectedValues({\r\n            stateInvalid: isInValid,\r\n            stateSelected: state,\r\n            selectErrorMessage: isInValid\r\n                ? `${state} is not supported. Select a different State.`\r\n                : undefined,\r\n        });\r\n    };\r\n\r\n    return { ...userStateSelection, handleUserStateSelect };\r\n};\r\n","import apTheme from 'app/shared/themes/app.theme';\r\n\r\nimport { useMediaQuery } from '@mui/material';\r\n\r\ninterface MuiMediaQueryHook {\r\n    isMobile: boolean;\r\n    isTablet: boolean;\r\n    isDesktop: boolean;\r\n}\r\n\r\nexport const useMuiMediaQuery = (): MuiMediaQueryHook => {\r\n    const isMobile = useMediaQuery(`(max-width:${apTheme.breakpoints.values.sm}px)`);\r\n    const isTablet = useMediaQuery(\r\n        `(min-width:${apTheme.breakpoints.values.sm}px) and (max-width:${apTheme.breakpoints.values.md}px)`\r\n    );\r\n    const isDesktop = useMediaQuery(`(min-width:${apTheme.breakpoints.values.md}px)`);\r\n\r\n    return { isMobile, isTablet, isDesktop };\r\n};\r\n","export const useScrollTopOffset = (top: number, offset: number): void => {\r\n    const scrollOutlet = document.getElementById('outlet');\r\n\r\n    if (scrollOutlet) {\r\n        scrollOutlet.scrollTo({\r\n            top: top - offset,\r\n            behavior: 'smooth',\r\n        });\r\n    }\r\n};\r\n","import { RefObject, useLayoutEffect, useRef } from 'react';\r\n\r\nexport const useResizeObserver = <T extends HTMLElement>(\r\n    callback: (target: T, entry: ResizeObserverEntry) => void\r\n): RefObject<T> => {\r\n    const ref = useRef<T>(null);\r\n    const { ResizeObserver } = window;\r\n\r\n    useLayoutEffect(() => {\r\n        const element = ref?.current;\r\n\r\n        if (!element) {\r\n            return;\r\n        }\r\n\r\n        const observer = new ResizeObserver((entries: Array<ResizeObserverEntry>) => {\r\n            callback(element, entries[0]);\r\n        });\r\n\r\n        observer.observe(element);\r\n        // eslint-disable-next-line consistent-return\r\n        return (): void => {\r\n            observer.disconnect();\r\n        };\r\n    }, [callback, ref]);\r\n\r\n    return ref;\r\n};\r\n","import { useEffect, useReducer } from 'react';\r\n\r\nenum ActionType {\r\n    LOAD_SUCCESS,\r\n    LOAD_ERROR,\r\n    RESET,\r\n}\r\n\r\nenum EventType {\r\n    ON_LOAD = 'load',\r\n    ON_ERROR = 'error',\r\n}\r\n\r\ntype ImageLoadedState = {\r\n    imageLoadAttempted: boolean;\r\n    imageLoaded: boolean;\r\n    imageError: boolean | null;\r\n};\r\n\r\ntype Action =\r\n    | { type: ActionType.LOAD_SUCCESS }\r\n    | { type: ActionType.LOAD_ERROR }\r\n    | { type: ActionType.RESET };\r\n\r\nconst initialState: ImageLoadedState = {\r\n    imageLoadAttempted: false,\r\n    imageLoaded: false,\r\n    imageError: null,\r\n};\r\n\r\nconst imageLoadedReducer = (state: ImageLoadedState, action: Action): ImageLoadedState => {\r\n    switch (action.type) {\r\n        case ActionType.LOAD_SUCCESS:\r\n            return {\r\n                ...state,\r\n                imageLoadAttempted: true,\r\n                imageLoaded: true,\r\n                imageError: null,\r\n            };\r\n        case ActionType.LOAD_ERROR:\r\n            return { ...state, imageLoadAttempted: true, imageLoaded: false, imageError: true };\r\n        case ActionType.RESET:\r\n            return { ...initialState };\r\n        default:\r\n            return state;\r\n    }\r\n};\r\n\r\nexport const useImageLoaded = (src: string | undefined): ImageLoadedState => {\r\n    const [imageLoadedState, dispatch] = useReducer(imageLoadedReducer, initialState);\r\n\r\n    useEffect(() => {\r\n        if (src) {\r\n            const image = new Image();\r\n\r\n            const onLoad = (): void => dispatch({ type: ActionType.LOAD_SUCCESS });\r\n            const onError = (): void => dispatch({ type: ActionType.LOAD_ERROR });\r\n\r\n            image.addEventListener(EventType.ON_LOAD, onLoad);\r\n            image.addEventListener(EventType.ON_ERROR, onError);\r\n\r\n            image.src = src;\r\n\r\n            return (): void => {\r\n                image.removeEventListener(EventType.ON_LOAD, onLoad);\r\n                image.removeEventListener(EventType.ON_ERROR, onError);\r\n            };\r\n        }\r\n\r\n        return (): void => dispatch({ type: ActionType.RESET });\r\n    }, [src]);\r\n\r\n    return imageLoadedState;\r\n};\r\n","import { useReducer } from 'react';\r\n\r\nenum ComponentActionType {\r\n    SET_AUTOCOMPLETE_INPUT_VALUE,\r\n    RESET_AUTOCOMPLETE,\r\n    SET_IS_DROPDOWN_OPEN,\r\n}\r\n\r\ntype ComponentState = {\r\n    inputValue: string;\r\n    isDropdownOpen: boolean;\r\n};\r\n\r\ntype ComponentActions =\r\n    | { type: ComponentActionType.SET_AUTOCOMPLETE_INPUT_VALUE; payload: string }\r\n    | {\r\n          type: ComponentActionType.RESET_AUTOCOMPLETE;\r\n          payload: { inputValue: string; isDropdownOpen: boolean };\r\n      }\r\n    | { type: ComponentActionType.SET_IS_DROPDOWN_OPEN; payload: boolean };\r\n\r\ntype ComponentFunctions = {\r\n    setAutocompleteInputValue: (inputValue: string) => void;\r\n    resetAutoComplete: (payload: { inputValue: string; isDropdownOpen: boolean }) => void;\r\n    setIsDropDownOpen: (isDropDownOpen: boolean) => void;\r\n};\r\n\r\nconst initialState: ComponentState = {\r\n    inputValue: '',\r\n    isDropdownOpen: false,\r\n};\r\n\r\nconst AutocompleteReducer = (state: ComponentState, action: ComponentActions): ComponentState => {\r\n    switch (action.type) {\r\n        case ComponentActionType.SET_AUTOCOMPLETE_INPUT_VALUE:\r\n            return {\r\n                ...state,\r\n                inputValue: action.payload,\r\n            };\r\n        case ComponentActionType.RESET_AUTOCOMPLETE:\r\n            return {\r\n                ...state,\r\n                isDropdownOpen: action.payload.isDropdownOpen,\r\n                inputValue: action.payload.inputValue,\r\n            };\r\n\r\n        case ComponentActionType.SET_IS_DROPDOWN_OPEN:\r\n            return {\r\n                ...state,\r\n                isDropdownOpen: action.payload,\r\n            };\r\n        default:\r\n            return state;\r\n    }\r\n};\r\n\r\nexport const useAutocompleteState = (): [ComponentState, ComponentFunctions] => {\r\n    const [state, dispatch] = useReducer(AutocompleteReducer, initialState);\r\n\r\n    const setAutocompleteInputValue = (inputValue: string): void => {\r\n        dispatch({ type: ComponentActionType.SET_AUTOCOMPLETE_INPUT_VALUE, payload: inputValue });\r\n    };\r\n\r\n    const resetAutoComplete = (payload: { inputValue: string; isDropdownOpen: boolean }): void => {\r\n        dispatch({ type: ComponentActionType.RESET_AUTOCOMPLETE, payload });\r\n    };\r\n\r\n    const setIsDropDownOpen = (isDropDownOpen: boolean): void =>\r\n        dispatch({ type: ComponentActionType.SET_IS_DROPDOWN_OPEN, payload: isDropDownOpen });\r\n\r\n    const actions: ComponentFunctions = {\r\n        setAutocompleteInputValue,\r\n        resetAutoComplete,\r\n        setIsDropDownOpen,\r\n    };\r\n\r\n    return [state, actions];\r\n};\r\n","import { KeyboardEvent, useCallback } from 'react';\r\nimport { useNavigate } from 'react-router-dom';\r\n\r\nexport const useNavigateOnKeyDown = (id: number | string): ReturnType<typeof useCallback> => {\r\n    const navigate = useNavigate();\r\n\r\n    const handleKeyDown = useCallback(\r\n        (event: KeyboardEvent) => {\r\n            const keys = ['Enter'];\r\n\r\n            const navigateId = typeof id === 'number' ? id.toString() : id;\r\n\r\n            if (keys.includes(event.key)) {\r\n                navigate(navigateId);\r\n            }\r\n        },\r\n        [id]\r\n    );\r\n\r\n    return handleKeyDown;\r\n};\r\n","import { useCallback, useEffect, useState } from 'react';\r\nimport { NotificationActivityType, NotificationType } from '../enums';\r\nimport { useLazyGetTemplatesWithBearerToken } from 'app/store/api/templates/templates.api';\r\nimport { GetTemplateResponse } from 'app/store/api/templates/models/templates.model';\r\n\r\nexport interface Template {\r\n    activityType: NotificationActivityType;\r\n    templates: Array<GetTemplateResponse> | undefined;\r\n}\r\n\r\nexport const useTemplates = (\r\n    activityTypes: NotificationActivityType[],\r\n    notificationType: NotificationType\r\n): { templates: Template[]; fetchTemplates: () => void } => {\r\n    const [templates, setTemplates] = useState<Template[]>([]);\r\n    const [getTemplate] = useLazyGetTemplatesWithBearerToken();\r\n\r\n    const fetchTemplates = useCallback(async (): Promise<void> => {\r\n        const templatePromises = activityTypes.map(async (activityType) => {\r\n            const { data: templates } = await getTemplate({\r\n                activityType,\r\n                type: notificationType,\r\n            });\r\n            return { activityType, templates };\r\n        });\r\n\r\n        const templateData = await Promise.all(templatePromises);\r\n\r\n        setTemplates(templateData);\r\n    }, [activityTypes, notificationType, getTemplate]);\r\n\r\n    useEffect(() => {\r\n        fetchTemplates();\r\n    }, []);\r\n\r\n    return { templates, fetchTemplates };\r\n};\r\n","import { useGetTemplateQuery } from 'app/store/api/templates/templates.api';\r\nimport { useEffect, useState } from 'react';\r\nimport {\r\n    commentRegex,\r\n    templateContentObj,\r\n    setTemplateProperty,\r\n} from '../helpers/template-data.helper';\r\nimport { useGetPreferredLoanOfficersQuery } from 'app/store/api/real-estate-agent/real-estate-agent.api';\r\nimport { LoanOfficer, TemplateData } from 'app/shared/models';\r\nimport { useGetLoanOfficerByIdQuery } from 'app/store/api/loan-officer/loan-officer.api';\r\nimport { TemplateVariables } from 'app/shared/enums';\r\n\r\ninterface TemplateDataHook {\r\n    templateData: TemplateData | null;\r\n    disclaimer: string | undefined;\r\n    templateContent: string | undefined;\r\n    preferredLoanOfficers: LoanOfficer[] | null | undefined;\r\n    showDefaultSalesDirector: boolean;\r\n    strategicPartner: LoanOfficer | undefined;\r\n}\r\n\r\ntype TemplateReplaceMap = {\r\n    [key in TemplateVariables]: keyof typeof templateContentObj;\r\n};\r\n\r\ntype Disclaimer = string | undefined;\r\n\r\nconst templateReplaceMap: TemplateReplaceMap = {\r\n    [TemplateVariables.title]: 'title',\r\n    [TemplateVariables.withLoanOfficer]: 'showLoanOfficer',\r\n    [TemplateVariables.cc]: 'cc',\r\n    [TemplateVariables.subject]: 'subject',\r\n    [TemplateVariables.strategicPartnerId]: 'strategicPartnerId',\r\n};\r\n\r\nexport const useTemplateData = (templateGuid: string | undefined): TemplateDataHook => {\r\n    const [disclaimer, setDisclaimer] = useState<Disclaimer>();\r\n    const [templateData, setTemplateData] = useState<TemplateData | null>(null);\r\n    const { data: preferredLoanOfficers } = useGetPreferredLoanOfficersQuery();\r\n    const showDefaultSalesDirector =\r\n        (preferredLoanOfficers?.length === 0 || preferredLoanOfficers === undefined) ?? true;\r\n\r\n    const { templateContent } = useGetTemplateQuery(\r\n        { guid: templateGuid },\r\n        {\r\n            skip: !templateGuid,\r\n            selectFromResult: ({ data }) => ({ templateContent: data?.content }),\r\n        }\r\n    );\r\n\r\n    const { data: strategicPartner } = useGetLoanOfficerByIdQuery(\r\n        templateData?.strategicPartnerId ?? '',\r\n        {\r\n            skip:\r\n                templateData?.strategicPartnerId === undefined ||\r\n                templateData?.strategicPartnerId === '',\r\n        }\r\n    );\r\n\r\n    const getDisclaimer = (templateContent: string): void => {\r\n        const container = document.createElement('div');\r\n        container.innerHTML = templateContent;\r\n        const disclaimer = container.querySelector('template');\r\n\r\n        if (disclaimer) {\r\n            setDisclaimer(disclaimer.innerHTML);\r\n        }\r\n    };\r\n\r\n    useEffect(() => {\r\n        if (templateContent) {\r\n            const comments = templateContent.match(commentRegex);\r\n\r\n            if (comments) {\r\n                comments.forEach((comment: string) => {\r\n                    Object.entries(templateReplaceMap).forEach(([variable, property]) => {\r\n                        if (comment.toLowerCase().includes(variable.toLowerCase())) {\r\n                            setTemplateProperty(property, comment);\r\n                        }\r\n                    });\r\n                });\r\n                setTemplateData({\r\n                    title: templateContentObj.title,\r\n                    withLoanOfficer: templateContentObj.showLoanOfficer.toLowerCase() === 'true',\r\n                    cc: templateContentObj.cc,\r\n                    subject: templateContentObj.subject,\r\n                    strategicPartnerId: templateContentObj.strategicPartnerId,\r\n                });\r\n                getDisclaimer(templateContent);\r\n            }\r\n        }\r\n    }, [templateContent]);\r\n\r\n    return {\r\n        templateData,\r\n        templateContent,\r\n        disclaimer,\r\n        preferredLoanOfficers,\r\n        showDefaultSalesDirector,\r\n        strategicPartner,\r\n    };\r\n};\r\n","import { useEffect, useState } from 'react';\r\nimport { useWindowSize } from 'usehooks-ts';\r\nimport ResponsiveLayout from '../enums/responsive-layout.enum';\r\n\r\nexport const useWhichLayout = (): ResponsiveLayout => {\r\n    const { width } = useWindowSize();\r\n    const [layout, setLayout] = useState<ResponsiveLayout>(configureLayout(width));\r\n\r\n    useEffect(() => {\r\n        setLayout(configureLayout(width));\r\n    }, [width]);\r\n\r\n    return layout;\r\n};\r\n\r\nconst configureLayout = (width: number): ResponsiveLayout => {\r\n    if (width <= 414) {\r\n        return ResponsiveLayout.Mobile;\r\n    }\r\n    if (width >= 415 && width <= 820) {\r\n        return ResponsiveLayout.Tablet;\r\n    }\r\n    return ResponsiveLayout.Desktop;\r\n};\r\n","import { MouseEvent, RefObject, useState } from 'react';\r\nimport { PagePosition } from 'app/shared/models';\r\n\r\ninterface PdfControls {\r\n    pageNumber: number;\r\n    scalePercent: number;\r\n    scale: number;\r\n    prevPage: () => void;\r\n    nextPage: () => void;\r\n    zoomIn: () => void;\r\n    zoomOut: () => void;\r\n    handleMouseDown: (event: MouseEvent<HTMLDivElement>) => void;\r\n    handleMouseMove: (event: MouseEvent<HTMLDivElement>) => void;\r\n    handleMouseUp: (event: MouseEvent<HTMLDivElement>) => void;\r\n    overflow: 'scroll' | 'hidden';\r\n    cursor: 'default' | 'grab' | 'grabbing';\r\n}\r\n\r\nexport const usePdfControls = (\r\n    numberOfPages: number,\r\n    containerRef: RefObject<HTMLDivElement>\r\n): PdfControls => {\r\n    const [pageNumber, setPageNumber] = useState<number>(1);\r\n    const [scalePercent, setScalePercent] = useState<number>(100);\r\n    const [dragging, setDragging] = useState<boolean>(false);\r\n    const [lastPosition, setLastPosition] = useState<PagePosition>({ x: 0, y: 0 });\r\n    const [overflow, setOverflow] = useState<'scroll' | 'hidden'>('hidden');\r\n    const [cursor, setCursor] = useState<'default' | 'grab' | 'grabbing'>('default');\r\n    const scale = scalePercent * 0.01;\r\n\r\n    const prevPage = (): void => {\r\n        setPageNumber((prevPage) => {\r\n            if (prevPage > 1) return prevPage - 1;\r\n            return prevPage;\r\n        });\r\n    };\r\n\r\n    const nextPage = (): void => {\r\n        setPageNumber((prevPage) => {\r\n            if (prevPage < numberOfPages) return prevPage + 1;\r\n            return prevPage;\r\n        });\r\n    };\r\n\r\n    const zoomIn = (): void => {\r\n        setScalePercent((prevPercent): number => {\r\n            if (prevPercent <= 180) {\r\n                return prevPercent + 20;\r\n            }\r\n            return prevPercent;\r\n        });\r\n        setOverflow('scroll');\r\n        setCursor('grab');\r\n    };\r\n\r\n    const zoomOut = (): void => {\r\n        setScalePercent((prevPercent): number => {\r\n            const newPercent = prevPercent - 20;\r\n            if (newPercent >= 100) {\r\n                if (newPercent === 100) {\r\n                    setOverflow('hidden');\r\n                    setCursor('default');\r\n                }\r\n                return newPercent;\r\n            }\r\n            return prevPercent;\r\n        });\r\n    };\r\n\r\n    const handleMouseDown = (event: MouseEvent<HTMLDivElement>): void => {\r\n        event.preventDefault();\r\n\r\n        setDragging(true);\r\n        setCursor(scalePercent > 100 ? 'grabbing' : 'default');\r\n        setLastPosition({ x: event.clientX, y: event.clientY });\r\n    };\r\n\r\n    const handleMouseMove = (event: MouseEvent<HTMLDivElement>): void => {\r\n        if (!dragging) return;\r\n\r\n        if (containerRef.current) {\r\n            const deltaX = event.clientX - lastPosition.x;\r\n            const deltaY = event.clientY - lastPosition.y;\r\n\r\n            containerRef.current.scrollLeft -= deltaX;\r\n            containerRef.current.scrollTop -= deltaY;\r\n        }\r\n\r\n        setLastPosition({ x: event.clientX, y: event.clientY });\r\n    };\r\n\r\n    const handleMouseUp = (): void => {\r\n        setDragging(false);\r\n        setCursor(scalePercent > 100 ? 'grab' : 'default');\r\n    };\r\n\r\n    return {\r\n        pageNumber,\r\n        scalePercent,\r\n        scale,\r\n        prevPage,\r\n        nextPage,\r\n        zoomIn,\r\n        zoomOut,\r\n        handleMouseDown,\r\n        handleMouseMove,\r\n        handleMouseUp,\r\n        overflow,\r\n        cursor,\r\n    };\r\n};\r\n","import { EnvContext } from 'app/contexts/environment/environment.context';\r\nimport { useContext } from 'react';\r\n\r\ninterface SocialSignOnHook {\r\n    linkedinAuthUrl: string;\r\n    googleScope: string;\r\n    linkedinConfig: {\r\n        clientId: string;\r\n        redirectUrl: string;\r\n        oauthUrl: string;\r\n        scope: string;\r\n        state: boolean;\r\n    };\r\n}\r\n\r\nexport const useSocialSignOn = (): SocialSignOnHook => {\r\n    const env = useContext(EnvContext);\r\n    const { LINKEDIN_CLIENT_ID = '', REDIRECT_URI = '' } = env;\r\n    const linkedinAuthUrl = 'https://www.linkedin.com/oauth/v2/authorization?response_type=code';\r\n    const googleScope =\r\n        'https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/user.phonenumbers.read';\r\n\r\n    const linkedinConfig = {\r\n        clientId: LINKEDIN_CLIENT_ID,\r\n        redirectUrl: REDIRECT_URI,\r\n        oauthUrl: linkedinAuthUrl,\r\n        scope: 'r_liteprofile%20r_emailaddress',\r\n        state: true,\r\n    };\r\n\r\n    return {\r\n        linkedinAuthUrl,\r\n        googleScope,\r\n        linkedinConfig,\r\n    };\r\n};\r\n","import { EnvContext } from 'app/contexts/environment/environment.context';\r\nimport { useContext } from 'react';\r\n\r\ninterface NafConnectImages {\r\n    confettiImg: string;\r\n    closingCardsImg: string;\r\n    greetingCardsImg: string;\r\n    mortgageStatement: string;\r\n    notificationsLogo: string;\r\n    devicesHeroImg: string;\r\n    devicesHeroImgSm: string;\r\n    nafConnectLogoLight: string;\r\n    defaultAvatarImg: string;\r\n    nafConnectLogo: string;\r\n    nafConnectSquareLogo: string;\r\n    experienceDotComLogo: string;\r\n    statusUpdateTemplatePrimary: string;\r\n    statusUpdateTemplateSecondary: string;\r\n}\r\n\r\nexport const useNafConnectImages = (): NafConnectImages => {\r\n    const env = useContext(EnvContext);\r\n    const { BLOB_STORAGE_URL = '' } = env;\r\n\r\n    return {\r\n        confettiImg: `${BLOB_STORAGE_URL}/assets/images/confetti.svg`,\r\n        closingCardsImg: `${BLOB_STORAGE_URL}/assets/images/naf-mockups-2023-inside-ClosingCard.png`,\r\n        greetingCardsImg: `${BLOB_STORAGE_URL}/assets/images/naf-pcc-mockups-2023-inside.png`,\r\n        mortgageStatement: `${BLOB_STORAGE_URL}/assets/images/mortgage-statement-sample-watermark.png`,\r\n        notificationsLogo: `${BLOB_STORAGE_URL}/assets/images/illustration-user-mobile-notifications.png`,\r\n        devicesHeroImg: `${BLOB_STORAGE_URL}/assets/images/devices-naf-connect-housingwire-tech100-award.png`,\r\n        devicesHeroImgSm: `${BLOB_STORAGE_URL}/assets/images/devices-naf-connect-housingwire-tech100-award-sm.png`,\r\n        nafConnectLogoLight: `${BLOB_STORAGE_URL}/assets/images/logo-naf-connect-for-dark-bgs-alt.svg`,\r\n        defaultAvatarImg: `${BLOB_STORAGE_URL}/assets/images/default-avatar.png`,\r\n        nafConnectLogo: `${BLOB_STORAGE_URL}/assets/images/naf-connect-logo.png`,\r\n        nafConnectSquareLogo: `${BLOB_STORAGE_URL}/assets/images/naf-notification-logo.png`,\r\n        experienceDotComLogo: `${BLOB_STORAGE_URL}/assets/images/experience-dot-com-logo.png`,\r\n        statusUpdateTemplatePrimary: `${BLOB_STORAGE_URL}/assets/images/naf-connect-email-loan-status-update-marketing-message.png`,\r\n        statusUpdateTemplateSecondary: `${BLOB_STORAGE_URL}/assets/images/naf-connect-email-loan-status-update-original.png`,\r\n    };\r\n};\r\n","// extracted by mini-css-extract-plugin\nexport default {\"selectField__formGroup\":\"custom-select-field_selectField__formGroup__KCkvm\",\"selectField__errorText\":\"custom-select-field_selectField__errorText__z8Ma0\",\"selectField__alert\":\"custom-select-field_selectField__alert__1nQnU\",\"selectField__option\":\"custom-select-field_selectField__option__snxwu\",\"selectField__placeholderItem\":\"custom-select-field_selectField__placeholderItem__OJvfG\",\"selectField__missingFieldPlaceholderItem\":\"custom-select-field_selectField__missingFieldPlaceholderItem__34zH6\"};"],"names":["AppModal","props","children","heading","open","headingImgSrc","className","headingClassName","handleClose","_jsx","ThemeProvider","theme","_jsxs","Dialog","alt","src","IconButton","style","zIndex","onClick","CloseIcon","styles","classnames","id","DialogContent","createTheme","components","MuiSvgIcon","styleOverrides","root","fontSize","pxToRem","MuiIconButton","position","right","top","width","height","backgroundColor","concat","Color","dustGray","fill","white","MuiDialog","background","paper","border","lightGrey2","borderRadius","boxShadow","cornflowerBlue","margin","maxWidth","MuiDialogContent","padding","appTheme","breakpoints","up","MuiPaper","down","Astrik","Card","_ref","defaultProps","undefined","MuiButton","ownerState","fontWeight","fontFamily","letterSpacing","variant","MuiButtonType","contained","nafPrimaryBlue","color","primaryButtonHoverBlue","lightGrey3","MuiColorType","secondary","nafSecondaryBlue","outlined","textDecoration","text","textTransform","lineHeight","minWidth","darkCharcoal","CustomLoadingButton","type","disabled","startIcon","endIcon","colorTheme","TextTransformType","capitalize","loading","Button","sx","CircularProgress","size","disableRipple","PhoneMaskCustom","forwardRef","ref","onChange","other","IMaskInput","mask","unmask","definitions","inputRef","onAccept","value","target","name","overwrite","CustomPhoneInput","inputLabel","placeholder","fullWidth","errorType","errorMessage","requiredInput","defaultValue","control","register","autoComplete","missingField","helperText","customTheme","datatestId","missingFieldTheme","Controller","render","field","onBlur","_Fragment","InputLabel","htmlFor","TextField","event","error","required","InputProps","inputComponent","Typography","ErrorOutlinedIcon","MuiInputLabel","MuiOutlinedInput","alert","paddingTop","paddingRight","MuiTypography","display","justifyContent","alignItems","maxHeight","ITEM_HEIGHT","anchorOrigin","vertical","horizontal","MuiMenuItem","alignItem","marginBottom","nafDark","fontStyle","MuiFormControl","paddingLeft","lightBlue","lightGrey","input","MuiSelect","icon","whiteSpace","MuiFormLabel","asterisk","MuiInput","marginTop","danger","marginLeft","MuiFormHelperText","StyledRating","styled","Rating","paddingBottom","goldStar","rating","totalReviewCount","experienceDotComLogo","useNafConnectImages","precision","readOnly","FeatureHeader","hideLineMobile","dividerClassName","Heading","as","Component","colorPrimaryBlue","rest","CustomTextField","FormGroup","FormLabel","CustomButton","dataTestId","CustomIconButton","testId","CustomIconButtonTheme","SocialSignOnButton","layout","useWhichLayout","ResponsiveLayout","Mobile","FooterLegal","copyrightText","href","termsUrl","privacyUrl","HeaderLegal","nafConnectLogoLight","PasswordRules","_errors$password","_errors$password$type","_errors$password$type2","_errors$password2","_errors$password2$typ","_errors$password2$typ2","_errors$password3","_errors$password3$typ","_errors$password3$typ2","_errors$password4","_errors$password4$typ","_errors$password4$typ2","_errors$password5","_errors$password5$typ","_errors$password5$typ2","_errors$password6","_errors$password6$typ","_errors$password6$typ2","_errors$password7","_errors$password7$typ","_errors$password7$typ2","_errors$password8","_errors$password8$typ","_errors$password8$typ2","errors","instructions","instructions__title","instructions__cards","password","types","min","includes","instructions__list","CancelOutlined","CheckCircleOutline","matches","CustomPasswordTextField","displayAllErrors","toggleVisibility","setToggleVisibility","useState","endAdornment","InputAdornment","edge","RemoveRedEye","match","StateSelectField","handleSelect","sortBy","states","useMemo","statesById","statesByName","statesByCode","selectField__formGroup","selectField__alert","Select","e","IconComponent","FaChevronDown","MenuItem","selectField__missingFieldPlaceholderItem","selectField__placeholderItem","map","item","code","selectField__option","selectField__errorText","CustomTooltip","Tooltip","enterTouchDelay","classes","popper","_ref2","offset","tooltipClasses","tooltip","typography","shadows","sky","arrow","Count","count","colorAlert","palette","primary","main","MuiCheckbox","CustomFormCheckBox","onChangeCallback","Checkbox","checked","defaultChecked","PersonAddAlt1Icon","DoneAllIcon","TelegramIcon","ThumbUpIcon","SavingsIcon","CustomImageTag","fallback","isError","setIsError","constructFallback","onError","MuiAutocomplete","AddressAutocomplete","onSelect","inputValue","setInputValue","options","setOptions","onSearchAddress","length","addressesAutocomplete","then","response","predictions","data","debouncedSearchAddress","debounce","Autocomplete","freeSolo","disableClearable","option","label","description","placeId","onInputChange","onAutoCompleteInputChange","searchInput","onAutocompleteSelect","getAddressDetails","res","success","address","address1","renderInput","params","MuiChip","nafLight","CustomClientChip","handleRemoveChip","Chip","onDelete","MuiAccordion","borderBottomLeftRadius","borderBottomRightRadius","borderTopLeftRadius","borderTopRightRadius","MuiAccordionSummary","minHeight","MuiAccordionDetails","Faq","summary","details","isLast","Accordion","borderBottom","AccordionSummary","expandIcon","ExpandMoreIcon","AccordionDetails","dangerouslySetInnerHTML","__html","iconTheme","AnnouncementCloseIcon","AnnouncementBanner","announcement","inSession","showBanner","setShowBanner","message","isDismissable","showInSession","useRef","useEffect","current","innerHTML","prev","Announcements","activeAnnouncements","useAppSelector","GetAnnouncementsSelector","localStorageHelper","get","x","FixedPositionContainer","CustomBackLink","to","linkText","Link","HiArrowLeft","tabIndex","MuiRadio","transform","MuiFormControlLabel","opacity","CustomRadioGroup","row","labelClassName","scrollableClassName","FormControl","RadioGroup","_option$label","FormControlLabel","Radio","ExpandableRadioButton","radioLabelTestId","MemoizedImage","defaultImg","currentTarget","AutoCompleteTextField","asyncStatus","isStatusPending","CustomCircularProgress","inline","PdfPreviewDetails","div","componentStyles","bottom","left","PdfPreview","transformOrigin","imageUrl","scale","backgroundImage","backgroundRepeat","backgroundSize","CoBrandedPreview","backgroundImageUrl","previewType","isModal","defaultModalStyles","mortgageModalStyles","alto","CoBrandedPreviewType","MortgageStatments","GreetingCards","ClosingCards","LayoutTwo","_stateLicenses$","partner","agent","isLoadingLo","defaultAvatarImg","firstName","lastName","stateLicenses","Array","phoneNumber","emailAddress","photoUrl","companyLogoUrl","partnerFullName","license","licenseNumber","agentFirstName","agentLastName","jobTitle","agentJobTitle","agentPhotoUrl","nmlsLicenseNumber","agentEmailAddress","phones","agentFullName","NMLS","agentPhoneTypes","hasPhoneType","_phones$find","phoneTypeExists","validNumber","find","number","getLoanOfficerPhoneNumber","_phones$find$number","_phones$find2","phoneNumberFormat","agents","agent__img","agent__companyLogo","details__name","details__jobTitle","details__license","details__phone","details__email","MarketingNafConnectLogo","details__agentPhones","ContactPhoneType","Cell","Work","DirectDial","LayoutOne","agentPhoneNumber","LayoutThree","detailsMap","detailsPosition","y","CoBrandedPreviewDetails","dealId","loanId","useParams","useGetRealEstateAgentQuery","loanOfficer","useGetClientDealQuery","selectFromResult","isLoading","component","FavoriteIcon","isFavorite","Icon","IoMdHeart","CiHeart","Container","onKeyDown","role","stlyles","PlusMinusIcon","renderMinusIcon","FaMinus","FaPlus","CustomDropDown","handleChange","Field","Label","container__label","select","hidden","select__option","CheveronDown","field__icon","xmlns","viewBox","d","StateLabelContainer","borderWidth","borderColor","aquaHaze","StateLabel","font","textAlign","AdditionalStatesContainer","cursor","AdditionalStatesLabel","PhoneLink","phone","extension","_loanOfficer$phones","index","onRemove","showStateLicenses","cardClassName","cc","subject","showMoreStates","setShowMoreStates","statesLicensed","filter","_ref3","licenseStatusTypeId","stateLicensed","some","_ref4","toUpperCase","_ref5","cellPhone","directPhone","workPhone","workPhoneExtension","forEach","isAdmin","getAdminId","ExperienceRating","PhoneIphoneIcon","PhoneIcon","TbDeviceLandlinePhone","getLoanOfficerEmailDetails","baseMailto","push","join","EmailIcon","p","newRenderStateTags","rendered","slice","state","ExpandLessIcon","FaTrashAlt","isNAFConnectTour","templateId","location","useLocation","navigate","useNavigate","templateData","templateContent","disclaimer","preferredLoanOfficers","showDefaultSalesDirector","strategicPartner","useTemplateData","templateViewer","templateViewer__link","onNavigateBack","pathname","West","templateViewer__icon","templateViewer__header","templateViewer__divider","HeadingSize","h3","FontWeight","semiBold","title","content","url","getAttribute","tagName","preventDefault","withLoanOfficer","preferredLoanOfficers__title","preferredLoanOfficers__container","preferredLoanOfficers__cards","PreferredLoanOfficerCard","preferredLoanOfficers__card","externalLoanOfficerId","defaultSalesDirector","templateViewer__disclaimer","commentRegex","spanishSpeaking","hasActiveDeals","templateContentObj","showLoanOfficer","strategicPartnerId","setTemplateProperty","property","comment","parseComment","indexOf","substring","replace","trim","useModal","isModalOpen","setIsModalOpen","showModal","hideModal","useStateSelectError","userStateSelection","setStateSelectedValues","stateInvalid","stateSelected","selectErrorMessage","handleUserStateSelect","isInValid","useMuiMediaQuery","isMobile","useMediaQuery","apTheme","values","sm","isTablet","md","isDesktop","useScrollTopOffset","scrollOutlet","document","getElementById","scrollTo","behavior","useResizeObserver","callback","ResizeObserver","window","useLayoutEffect","element","observer","entries","observe","disconnect","ActionType","EventType","initialState","imageLoadAttempted","imageLoaded","imageError","imageLoadedReducer","action","LOAD_SUCCESS","LOAD_ERROR","RESET","useImageLoaded","imageLoadedState","dispatch","useReducer","image","Image","onLoad","addEventListener","ON_LOAD","ON_ERROR","removeEventListener","ComponentActionType","isDropdownOpen","AutocompleteReducer","SET_AUTOCOMPLETE_INPUT_VALUE","payload","RESET_AUTOCOMPLETE","SET_IS_DROPDOWN_OPEN","useAutocompleteState","setAutocompleteInputValue","resetAutoComplete","setIsDropDownOpen","isDropDownOpen","useNavigateOnKeyDown","useCallback","navigateId","toString","key","useTemplates","activityTypes","notificationType","templates","setTemplates","getTemplate","useLazyGetTemplatesWithBearerToken","fetchTemplates","async","templatePromises","activityType","Promise","all","templateReplaceMap","TemplateVariables","templateGuid","_templateData$strateg","setDisclaimer","setTemplateData","useGetPreferredLoanOfficersQuery","useGetTemplateQuery","guid","skip","useGetLoanOfficerByIdQuery","comments","Object","variable","toLowerCase","container","createElement","querySelector","getDisclaimer","useWindowSize","setLayout","configureLayout","Tablet","Desktop","usePdfControls","numberOfPages","containerRef","pageNumber","setPageNumber","scalePercent","setScalePercent","dragging","setDragging","lastPosition","setLastPosition","overflow","setOverflow","setCursor","prevPage","nextPage","zoomIn","prevPercent","zoomOut","newPercent","handleMouseDown","clientX","clientY","handleMouseMove","deltaX","deltaY","scrollLeft","scrollTop","handleMouseUp","useSocialSignOn","env","useContext","EnvContext","LINKEDIN_CLIENT_ID","REDIRECT_URI","linkedinAuthUrl","googleScope","linkedinConfig","clientId","redirectUrl","oauthUrl","scope","BLOB_STORAGE_URL","confettiImg","closingCardsImg","greetingCardsImg","mortgageStatement","notificationsLogo","devicesHeroImg","devicesHeroImgSm","nafConnectLogo","nafConnectSquareLogo","statusUpdateTemplatePrimary","statusUpdateTemplateSecondary"],"sourceRoot":""}