{"version":3,"sources":["../node_modules/pdfjs-dist/build sync","assets/icons/home-icon.svg","assets/icons/loans-icon.svg","assets/icons/partner-icon.svg","assets/icons/drawer-profile-icon.svg","assets/img/bannerBg.jpg","assets/slider/slider-handle.svg","util/theme.js","components/Context/RootContext.js","hooks/useBrandFinder.js","hooks/useFileReader.js","util/config.js","util/processLoans.js","hooks/useGetUserLoans.js","util/arrayBufferToBase64.js","util/formatDate.js","hooks/useGetUseProfile.js","hooks/useIsOpen.js","hooks/useIsUserLoggedIn.js","hooks/useLoanCache.js","components/App/functions/getAndCacheIndividualLoanDetails/processActiveFundedLoan/transformActiveFundedLoan.js","components/App/functions/getAndCacheIndividualLoanDetails/processActiveFundedLoan/index.js","components/App/functions/getAndCacheIndividualLoanDetails/processPrequalifiedPreapprovedLoan/transformPrequalifiedPreapprovedLoan.js","components/App/functions/getAndCacheIndividualLoanDetails/processPrequalifiedPreapprovedLoan/index.js","components/App/functions/getAndCacheIndividualLoanDetails/index.js","components/App/functions/logoutUser.js","components/Context/LoggedInContext.js","components/Modal/hooks/useModal.js","components/App/AppLoader.js","components/App/Drawer/hooks/useGetLoanPartners.js","assets/icons/menu-icon.svg","components/App/Drawer/styled/DrawerContent.js","components/App/Drawer/styled/DrawerItem.js","components/App/Drawer/styled/DrawerItemList.js","components/App/Drawer/styled/DrawerItemListWrapper.js","components/App/Drawer/styled/DrawerItemTitle.js","components/App/Drawer/styled/DrawerWrapper.js","components/App/Drawer/DrawerHome.js","components/App/Drawer/functions/setIsOpenAndSetExpanded.js","assets/ui/drawer-arrow.svg","components/App/Drawer/DrawerLoans.js","components/App/Drawer/DrawerPartners.js","components/App/Drawer/DrawerProfile.js","components/App/Drawer/index.js","assets/logos/insider-logo.svg","assets/logos/loanforce-logo.svg","assets/icons/cog-icon.svg","assets/icons/login-icon.svg","assets/icons/logout-icon.svg","components/Header/styled/HeaderContent.js","components/Header/styled/HeaderLinkIcons.js","components/Header/styled/HeaderLinks.js","components/Header/styled/HeaderLogo.js","components/Header/styled/HeaderWrapper.js","components/Header/index.js","assets/logos/calcon-logo-color.svg","assets/logos/othl-logo-color.svg","assets/logos/tabor-logo-color.svg","components/Footer/styled/FooterLogo.js","components/Footer/styled/FooterText.js","components/Footer/styled/FooterWrapper.js","components/Footer/index.js","components/styled/GlobalStyle.js","components/styled/Grid.js","components/styled/Spinner.js","components/styled/SubmitButton.js","components/Dashboard/styled/DashboardWelcome.js","components/Dashboard/styled/DashboardWrapper.js","components/Dashboard/styled/DashboardItemLink.js","components/Dashboard/styled/DashboardLoanCard.js","components/Dashboard/styled/DashboardLoanCardBody.js","components/Dashboard/styled/DashboardLoanCardTitle.js","components/Dashboard/styled/DashboardLoanContainer.js","components/Dashboard/styled/DashboardLoanContainerTitle.js","components/Dashboard/styled/DashboardLoanGrid.js","components/Dashboard/styled/DashboardLoanGridWrapper.js","components/Dashboard/DashboardLoanItem.js","assets/ui/dashboard-arrow.svg","components/Dashboard/DashboardLoanList.js","components/Dashboard/index.js","components/Loan/hooks/useGetIndividualLoanDetails.js","webpack:///./src/assets/icons/loans-icon.svg?dab4","assets/ui/down-arrow.svg","components/Loan/styled/LoanHeaderAddress.js","components/Loan/styled/LoanHeaderContacts.js","components/Loan/styled/LoanHeaderContainer.js","components/Loan/styled/LoanHeaderContent.js","components/Loan/styled/LoanHeaderContentEntry.js","components/Loan/styled/LoanHeaderContentEntryContact.js","components/Loan/styled/LoanHeaderContentSection.js","components/Loan/styled/LoanHeaderPersonLabel.js","components/Loan/styled/LoanHeaderTitle.js","components/Loan/LoanHeader.js","components/Loan/ActiveFundedLoan/AfLoanDatesAndContacts/styled/AfLoanContactCardBody.js","components/Loan/ActiveFundedLoan/AfLoanDatesAndContacts/styled/AfLoanContactCardBodyWrapper.js","components/Loan/ActiveFundedLoan/AfLoanDatesAndContacts/styled/AfLoanContactCardHeader.js","components/Loan/ActiveFundedLoan/AfLoanDatesAndContacts/styled/AfLoanContactCardWrapper.js","components/Loan/ActiveFundedLoan/AfLoanDatesAndContacts/styled/AfLoanContactsGroup.js","components/Loan/ActiveFundedLoan/AfLoanDatesAndContacts/styled/AfLoanContactsGroupRow.js","components/Loan/ActiveFundedLoan/AfLoanDatesAndContacts/styled/AfLoanContactsGroupsWrapper.js","components/Loan/ActiveFundedLoan/AfLoanDatesAndContacts/styled/AfLoanDatesAndContactsWrapper.js","components/Loan/ActiveFundedLoan/AfLoanDatesAndContacts/styled/AfLoanKeyDatesList.js","components/Loan/ActiveFundedLoan/AfLoanDatesAndContacts/styled/AfLoanTab.js","components/Loan/ActiveFundedLoan/AfLoanDatesAndContacts/styled/AfLoanTabsBodyWrapper.js","components/Loan/ActiveFundedLoan/AfLoanDatesAndContacts/styled/AfLoanTabsHeaderWrapper.js","components/Loan/ActiveFundedLoan/AfLoanDatesAndContacts/styled/AfLoanTabTitle.js","assets/icons/contacts-icon.svg","assets/icons/calendar-icon.svg","components/Loan/ActiveFundedLoan/AfLoanDatesAndContacts/AfLoanTabsHeader.js","components/Loan/ActiveFundedLoan/functions/formatLoanStatus.js","components/Loan/ActiveFundedLoan/functions/groupContacts.js","components/Loan/ActiveFundedLoan/functions/processKeyDates.js","assets/ui/loan-contact-arrow.svg","components/Loan/ActiveFundedLoan/AfLoanDatesAndContacts/AfLoanContactCard.js","components/Loan/ActiveFundedLoan/AfLoanDatesAndContacts/AfLoanContacts.js","components/Loan/ActiveFundedLoan/AfLoanDatesAndContacts/AfLoanKeyDates.js","components/Loan/ActiveFundedLoan/AfLoanDatesAndContacts/index.js","components/Loan/ActiveFundedLoan/styled/AfLoanBody.js","components/Loan/ActiveFundedLoan/styled/AfLoanBodyBackground.js","components/Loan/ActiveFundedLoan/styled/AfLoanStatusBody.js","components/Loan/ActiveFundedLoan/styled/AfLoanStatusContainer.js","components/Loan/ActiveFundedLoan/styled/AfLoanStatusTop.js","assets/ui/checkbox-checked.svg","assets/ui/checkbox-unchecked.svg","components/Loan/ActiveFundedLoan/AfLoanStatus.js","components/Loan/ActiveFundedLoan/index.js","components/Loan/PreLoan/hooks/useCreateLetter.js","components/Loan/PreLoan/hooks/useLetterActions.js","components/Loan/PreLoan/hooks/useModifyLoanReducer.js","components/Loan/PreLoan/hooks/usePreloadRegeneratedLetter.js","components/Loan/PreLoan/hooks/useRegenerateLetter.js","components/Loan/PreLoan/styled/PreLoanBody.js","components/Loan/PreLoan/styled/PreLoanSectionWrapper.js","components/Loan/PreLoan/styled/PreLoanTitle.js","components/Loan/PreLoan/styled/PreLoanInformationContent.js","components/Loan/PreLoan/styled/PreLoanInformationTable.js","components/Loan/PreLoan/styled/PreLoanLetterButton.js","components/Loan/PreLoan/styled/PreLoanLetterButtonWrapper.js","components/Loan/PreLoan/styled/PreLoanLetterWidgetWrapper.js","components/Loan/PreLoan/styled/PreLoanLetterHistoryTable.js","components/Loan/PreLoan/styled/PreLoanLetterHistoryTableWrapper.js","components/Loan/PreLoan/styled/PreLoanLetterHistoryWrapper.js","components/Loan/PreLoan/styled/PreLoanModifyDownloadWrapper.js","components/Loan/PreLoan/styled/PreLoanModifyInputInput.js","components/Loan/PreLoan/styled/PreLoanModifyInputTable.js","components/Loan/PreLoan/styled/PreLoanSuccessContent.js","components/Loan/PreLoan/styled/PreLoanSuccessReturnButton.js","components/Loan/PreLoan/PreLoanHistory/index.js","assets/buttons/view-letter.svg","assets/buttons/download-letter.svg","components/Loan/PreLoan/PreLoanLetter/PreLoanLetterLevelOneButtons.js","assets/buttons/create-letter.svg","components/Loan/PreLoan/PreLoanLetter/PreLoanLetterLevelTwoButtons.js","components/Loan/PreLoan/PreLoanInformation/index.js","components/Loan/PreLoan/PreLoanLetter/index.js","assets/buttons/reset-values.svg","assets/buttons/preview-letter.svg","assets/buttons/cancel-letter.svg","components/Loan/PreLoan/PreLoanModify/PreLoanModifyButtons.js","components/Loan/PreLoan/PreLoanModify/PreLoanModifyDownload.js","components/Loan/PreLoan/PreLoanModify/PreLoanModifySlider/styled/HandleLabel.js","components/Loan/PreLoan/PreLoanModify/PreLoanModifySlider/styled/HandleWrapper.js","components/Loan/PreLoan/PreLoanModify/PreLoanModifySlider/styled/railStyle.js","components/Loan/PreLoan/PreLoanModify/PreLoanModifySlider/styled/sliderStyle.js","components/Loan/PreLoan/PreLoanModify/PreLoanModifySlider/Handle.js","components/Loan/PreLoan/PreLoanModify/PreLoanModifySlider/LoanAmountSlider.js","components/Loan/PreLoan/PreLoanModify/PreLoanModifySlider/PurchasePriceSlider.js","assets/icons/calculate-values-icon.svg","components/Loan/PreLoan/PreLoanModify/PreLoanModifyInput.js","components/Loan/PreLoan/PreLoanModify/index.js","assets/buttons/return-arrow.svg","assets/img/success-message.svg","components/Loan/PreLoan/PreLoanSuccess/index.js","components/Loan/PreLoan/index.js","components/Loan/index.js","components/Profile/hooks/useProfileReducer.js","components/Profile/styled/ProfileHeaderLeftLink.js","components/Profile/styled/ProfileHeaderRightLink.js","components/Profile/styled/ProfileHeaderWrapper.js","components/Profile/styled/ProfileWrapper.js","assets/icons/user-profile-icon.svg","components/Profile/ProfileHeader.js","components/Profile/ProfileContent/data/profileContentFirstFields.js","components/Profile/ProfileContent/hooks/useEditModeState.js","components/Profile/ProfileContent/styled/ProfileContentAddressFieldsWrapper.js","components/Profile/ProfileContent/styled/ProfileContentField.js","components/Profile/ProfileContent/styled/ProfileContentFieldInputWrapper.js","components/Profile/ProfileContent/styled/ProfileContentFieldLabel.js","components/Profile/ProfileContent/styled/ProfileContentFieldsWrapper.js","components/Profile/ProfileContent/styled/ProfileContentFirstWrapper.js","components/Profile/ProfileContent/styled/ProfileContentHeadshotContainer.js","components/Profile/ProfileContent/styled/ProfileContentHeadshotWrapper.js","components/Profile/ProfileContent/styled/ProfileContentImageOverlay.js","components/Profile/ProfileContent/styled/ProfileContentLogoContainer.js","components/Profile/ProfileContent/styled/ProfileContentLogoWrapper.js","components/Profile/ProfileContent/styled/ProfileContentRadioInputWrapper.js","components/Profile/ProfileContent/styled/ProfileContentSectionSide.js","components/Profile/ProfileContent/styled/ProfileContentSectionWrapper.js","components/Profile/ProfileContent/styled/ProfileContentSubmitButton.js","components/Profile/ProfileContent/styled/ProfileContentSubmitContainer.js","components/Profile/ProfileContent/styled/ProfileContentSubmitMessage.js","components/Profile/ProfileContent/styled/ProfileContentWrapper.js","assets/img/person-placeholder-rectangular.svg","components/Profile/ProfileContent/ProfileContentFirst.js","components/Profile/ProfileContent/data/profleContentSecondFields.js","assets/img/company-logo-placeholder.svg","components/Profile/ProfileContent/ProfileContentSecond.js","components/Profile/ProfileContent/ProfileSubmit.js","components/Profile/ProfileContent/index.js","components/Profile/ProfilePassword/functions/submitPasswordUpdate.js","components/Profile/ProfilePassword/styled/ProfilePasswordContent.js","components/Profile/ProfilePassword/styled/ProfilePasswordFormWrapper.js","components/Profile/ProfilePassword/styled/ProfilePasswordMessage.js","components/Profile/ProfilePassword/styled/ProfilePasswordSubmitButton.js","components/Profile/ProfilePassword/styled/ProfilePasswordWrapper.js","components/Profile/ProfilePassword/ProfilePasswordForm.js","components/Profile/ProfilePassword/index.js","components/Profile/index.js","components/Modal/styled/ModalClose.js","components/Modal/styled/ModalDownloadButton.js","components/Modal/styled/ModalScreen.js","components/Modal/styled/ModalWindow.js","components/Modal/index.js","components/App/styled/AppContentContainer.js","components/App/styled/AppContentWrapper.js","components/App/styled/SkipToContentLink.js","components/App/index.js","components/Login/hooks/functions/checkIfUsernameOrPasswordBlank.js","components/Login/hooks/functions/saveLoginToSessionStorage.js","components/Login/hooks/functions/sendLoginRequest.js","components/Login/hooks/useLoginReducer.js","components/Login/styled/LoginForm.js","components/Login/styled/LoginFormErrors.js","components/Login/styled/LoginFormFooter.js","components/Login/styled/LoginFormFooterImageWrapper.js","components/Login/styled/LoginFormInputGroup.js","components/Login/styled/LoginFormLogo.js","components/Login/styled/LoginFormSubmitButton.js","components/Login/styled/LoginLogo.js","components/Login/styled/LoginWrapper.js","components/Login/index.js","components/Register/styled/RegisterContainer.js","components/Register/styled/RegisterFailOrSuccessWrapper.js","components/Register/styled/RegisterInputContent.js","components/Register/styled/RegisterInputWrapper.js","components/Register/styled/RegisterSubmitButton.js","components/Register/styled/RegisterWrapper.js","components/Register/RegisterInput.js","components/Register/RegisterValidateFailed.js","components/Register/RegisterForm/validators/lengthValidator.js","components/Register/RegisterForm/validators/numberValidator.js","components/Register/RegisterForm/validators/passwordValidator.js","components/Register/RegisterForm/validators/confirmPasswordValidator.js","components/Register/RegisterForm/validators/telValidator.js","components/Register/RegisterForm/validators/initializeValidators.js","components/Register/RegisterForm/hooks/useRegisterReducer.js","components/Register/RegisterForm/data/registerTopFields.js","components/Register/RegisterForm/data/registerBottomFields.js","components/Register/RegisterForm/styled/RegisterFormField.js","components/Register/RegisterForm/styled/RegisterFormFieldsContainer.js","components/Register/RegisterForm/styled/RegisterFormHeader.js","components/Register/RegisterForm/styled/RegisterFormUploadPreview.js","components/Register/RegisterForm/styled/RegisterFormWrapper.js","components/Register/RegisterForm/styled/RegisterSubmitWrapper.js","components/Register/RegisterForm/RegisterFormFields.js","components/Register/RegisterForm/RegisterFormUploads.js","components/Register/RegisterForm/RegisterSubmit.js","components/Register/RegisterForm/index.js","components/Register/RegisterSubmitFailed.js","components/Register/RegisterSubmitSuccess.js","components/Register/index.js","components/ForgotPassword/styled/ForgotPasswordContainer.js","components/ForgotPassword/styled/ForgotPasswordFormContent.js","components/ForgotPassword/styled/ForgotPasswordFormWrapper.js","components/ForgotPassword/styled/ForgotPasswordWrapper.js","components/ForgotPassword/ForgotPasswordForm.js","components/ForgotPassword/index.js","components/ResetPassword/functions/checkIfEmailValid.js","components/ResetPassword/functions/checkIfPasswordsValid.js","components/ResetPassword/FailedPasswordResetRequest.js","components/ResetPassword/SuccessfulPasswordResetRequest.js","components/ResetPassword/styled/ResetPasswordContainer.js","components/ResetPassword/styled/ResetPasswordFormContent.js","components/ResetPassword/styled/ResetPasswordFormWrapper.js","components/ResetPassword/styled/ResetPasswordWrapper.js","components/ResetPassword/ResetPasswordForm.js","components/ResetPassword/index.js","index.js"],"names":["webpackEmptyContext","req","e","Error","code","keys","resolve","module","exports","id","__webpack_require__","p","getBreakpoint","breakpoint","props","theme","breakpoints","getColor","color","colors","getFontWeight","weight","typography","weights","primaryBlue","complimentaryBlue","titleBlue","cardBlue","coolBlue","controlBlue","buttonTeal","electricBlue","accentGreen","accentOrange","accentRed","black","white","lightestGrey","lightGrey","medGrey","titleGrey","backgroundGrey","borderGrey","cardGrey","sm","md","lg","xl","thin","light","regular","medium","bold","RootContext","createContext","InsiderRootContext","_ref","children","_useState","useState","userId","userName","accessToken","_useState2","Object","slicedToArray","userState","setUserState","_useState3","_useState4","contextValues","state","brandState","functions","setBrandState","react_default","a","createElement","Provider","value","useBrandFinder","origin","_useContext","useContext","useEffect","isCalcon","includes","isOthl","isTabor","useFileReader","dispatch","useCallback","ref","name","reader","FileReader","file","current","files","readAsDataURL","onloadend","ee","imageResult","defineProperty","target","result","type","transformImage","API_BASE_URL","today","format","Date","formatLoans","loans","processedLoans","adverse","active","funded","prequalified","preapproved","noClosing","inactive","adverseLoanFilter","processAdverseLoans","map","loan","push","processNewLoans","category","sort","b","fmClosing","adverseLoans","nonAdverseLoans","_iteratorNormalCompletion","_didIteratorError","_iteratorError","undefined","_step","_iterator","Symbol","iterator","next","done","adverseActionRequest","err","return","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","loanNumber","borrowerFirstName","borrowerLastName","propertyAddr","expectedCloseDate","funding","loanOfficerName","loanOfficerPhone","newLoan","borrower","concat","closing","loanOfficer","isActive","checkIfLoanActive","isPreQualifiedOrPreApproved","checkIfLoanPreQualifiedOrPreApproved","loanPreQualifiedOrPreApproved","loanNotExpired","objectSpread","activeLoan","categorizeActiveLoan","clientAuthorizationReceived","level1Permissions","level2Permissions","prequalMaxLTV","prequalMinLoanAmount","prequalMaxLoanAmount","prequalMinPurchasePrice","prequalMaxPurchasePrice","loanPreQualified","loanPreApproved","loanCity","replace","getLoanCategory","prequalExpirationDate","isLoanNotExpired","loanIsActive","milestones","key","tempDate","isValid","fmFunding","isDate","formatLoanAddresses","_callee","loansWithFormattedAddresses","regenerator_default","wrap","_context","prev","subjectPropertyAddress","abrupt","stop","_callee2","setLoansState","setLoading","setError","loansUrl","userLoans","rawLoansData","rawLoansWithAddressesData","processedLoansData","_context2","fetch","headers","Content-Type","Authorization","sent","status","json","useGetUserLoans","error","loading","_useState5","_useState6","rawLoans","setRawLoans","_useState7","_useState8","setProcessedLoans","fetchRawAndProcessedLoans","arrayBufferToBase64","buffer","bytes","slice","call","Uint8Array","binary","forEach","String","fromCharCode","window","btoa","formatDate","date","newDate","checkGenderValue","gender","genderLower","toLowerCase","indexOf","fetchUserProfileImages","asyncToGenerator","mark","userHeadshotUrl","companyLogoUrl","headshot","companyLogo","userHeadshotResponse","companyLogoResponse","userHeadshotData","companyLogoData","arrayBuffer","_x","_x2","apply","this","arguments","fetchUserProfile","_ref2","initialProfileData","profileUrl","userProfileResponse","userProfileImages","_ref3","profile","birthDate","hasImages","mergedProfile","newImage","_x3","_x4","_x5","updateProfileImage","useGetUserProfile","address","street","city","zip","company","email","firstName","headShotUrl","lastName","license","mobilePhone","newsLetter","officePhone","title","website","profileData","setProfileData","then","useIsOpen","initialIsOpen","isOpen","setIsOpen","toggleIsOpen","useIsUserLoggedIn","loggedIn","setLoggedIn","checkSessionStorage","sessionStorage","getItem","loggedInUserState","JSON","parse","navigate","loanCacheReducer","action","loanNumbers","toConsumableArray","useLoanCache","_useReducer","useReducer","_useReducer2","getLoanType","fundingDate","loanDetailsData","borrowerAddress","borrowerEmail","coBorrowerAddress","coBorrowerFirstName","coBorrowerLastName","coBorrowerEmail","loanOfficerEmail","loanOfficerNMLS","loanOfficerWebsiteAddress","loanProcessorName","loanProcessorPhone","loanProcessorEmail","loanProductionAssistantName","loanProductionAssistantPhone","loanProductionAssistantEmail","escrowCompanyName","escrowContactName","escrowPhone","escrowEmail","titleCompanyName","titleContactName","titlePhone","titleEmail","buyerAttorneyCompanyName","buyerAttorneyContactName","buyerAttorneyPhone","buyerAttorneyEmail","sellerAgentCompanyName","sellerAgentContactName","sellerAgentPhone","sellerAgentEmail","sellerAgentLicenseNumber","buyerAgentCompanyName","buyerAgentContactName","buyerAgentEmail","buyerAgentPhone","buyerAgentLicenseNumber","buyerTransactionCoordinatorName","buyerTransactionCoordinatorTitle","buyerTransactionCoordinatorPhone","buyerTransactionCoordinatorEmail","cdReleasedDate","titleReportRequestDate","titleReportReceivedDate","appraisalOrderedDate","appraisalReceivedDate","inspectionDueDate","inspectionCompletedDate","expectedSigningDate","docsDelieveredDate","mloSetupComplete","submittedToUnderwriting","conditionallyApproved","initialUnderwritingComplete","p1ConditionResolutionComplete","underwritingIIConditionReviewComplete","piiFinalCondition","underwritingIIIClearToClose","docPrep","formattedLoanDetailsData","propertyAddress","contacts","role","exists","coBorrower","mlo","phone","nmls","clientManager","loanProductionAssistant","escrowCompany","companyName","contactName","titleCompany","buyerAttorney","sellerAgent","buyerAgent","buyerTransactionCoordinator","statusInfo","substr","statusInfoMap","keyDates","keyDatesMap","loanType","transformActiveFundedLoan","addLoanMaps","loanData","Map","entries","categorizeLoan","formattedLoan","length","categoryLoanIsIn","charAt","toUpperCase","filter","el","addLoanType","formattedLoanData","formattedLoanDetailsDataWithType","formattedLoanDetailsDataWithTypeAndMaps","processActiveFundedLoan","transformAssessmentString","assessmentType","assessmentString","transformOccupancyType","occupancyType","determineLoanBrand","sortLoanLetters","letters","letter","sortingDate","createdOn","purchasePrice","loanAmount","loanToValue","loanTerm","propertyType","propertyState","preQualificationDate","loanLetters","loanGUID","incomeDocumentsReviewed","applicantsCreditReportReviewed","satisfactoryApproveEligible","assetsReviewed","fundsToCloseReviewed","additionalContingency_09","additionalContingency_10","additionalContingency_11","loBranchAddress","loBranchCity","loBranchState","loBranchZip","loanProgram","loanOfficerTitle","propertyCity","propertyZip","lenderDBAName","formattedLoanDetailsDataWithAddressClipped","loanInformation","label","display","parseInt","toLocaleString","toFixed","letterInformation","LoanNumber","LoanGUID","LoanBrand","LetterType","LoanOfficerName","LoanOfficerPhone","LoanOfficerEmail","LoanOfficerNMLS","PropertyCity","PropertyState","PurchasePrice","LoanAmount","PropertyType","OccupancyType","LoanProgram","PrequalExpirationDate","IncomeDocumentsReviewed","ApplicantsCreditReportReviewed","SatisfactoryApproveEligible","AssetsReviewed","FundsToCloseReviewed","AdditionalContingency_09","AdditionalContingency_10","AdditionalContingency_11","LOBranchAddress","LOBranchCity","LOBranchState","LOBranchZip","LoanType","LoanOfficerTitle","PropertyZip","permissions","levelOne","levelTwo","constraints","min","max","ltv","parseFloat","transformPrequalifiedPreapprovedLoan","processPrequalifiedPreapprovedLoan","fetchIndividualLoanDetails","loanDetailsUrl","loanDetails","_loan","_loan2","getIndividualLoanDetails","loanCacheDispatch","logoutUser","removeItem","LoggedInContext","InsiderLoggedInContext","_useIsUserLoggedIn","isUserLoggedIn","_useGetUserProfile","_useGetUserProfile2","profileError","profileLoading","_useGetUserLoans","_useGetUserLoans2","loansError","loansLoading","_useLoanCache","_useLoanCache2","loanCache","updated","profileImagesUpdated","setProfileImagesUpdated","loggedInContextValues","loanCacheList","errors","handleIndividualLoan","getAndCacheIndividualLoanDetails","useModal","attr","content","showModal","setShowModal","data","showDownloadButton","fileName","overflow","position","height","width","modalAttr","setModalAttr","toggleModal","AppLoader","_useContext$loading","propTypes","PropTypes","array","isRequired","useGetLoanPartners","loanPartners","setLoanPartners","extractedLoanPartners","arr","prop","propAlreadyExists","Set","has","add","removeLoanPartnerDuplicates","_extends","assign","i","source","prototype","hasOwnProperty","menu_icon_ref","menu_icon_ref2","fill","rx","d","menu_icon_SvgComponent","viewBox","DrawerContent","styled","div","withConfig","displayName","componentId","DrawerItem","DrawerItemList","ul","DrawerItemListWrapper","expanded","refHeight","bool","number","defaultProps","DrawerItemTitle","DrawerWrapper","DrawerHome","es","to","styled_DrawerItem","src","homeIcon","alt","styled_DrawerItemTitle","setIsOpenAndSetExpanded","toggleDrawer","drawer_arrow_extends","drawer_arrow_ref","drawer_arrow_ref2","points","drawer_arrow_SvgComponent","DrawerLoans","_ref$processedLoans","_ref$processedLoans$a","_ref$processedLoans$p","_ref$processedLoans$p2","loansListRef","useRef","_useIsOpen","_useIsOpen2","Fragment","loansIcon","onClick","className","styled_DrawerItemListWrapper","clientHeight","styled_DrawerItemList","onMouseOver","ReactHtmlParser","_ref4","DrawerPartners","partnersListRef","partnerIcon","DrawerProfile","profileIcon","onKeyPress","tabIndex","Drawer","setExpanded","drawerWrapperRef","_useContext$state","scrollTop","styled_DrawerWrapper","styled_DrawerContent","Drawer_DrawerHome","Drawer_DrawerLoans","Drawer_DrawerPartners","Drawer_DrawerProfile","insider_logo_extends","insider_logo_ref","insider_logo_ref2","transform","insider_logo_ref3","insider_logo_ref4","_ref5","_ref6","_ref7","_ref8","_ref9","insider_logo_SvgComponent","loanforce_logo_extends","loanforce_logo_ref","loanforce_logo_SvgComponent","version","xmlnsXlink","xmlSpace","cog_icon_extends","cog_icon_ref","cog_icon_ref2","cog_icon_SvgComponent","login_icon_extends","login_icon_ref","login_icon_ref2","login_icon_SvgComponent","logout_icon_extends","logout_icon_ref","logout_icon_ref2","logout_icon_SvgComponent","HeaderContent","HeaderLinkIcons","HeaderLinks","HeaderLogo","HeaderWrapper","header","Header","styled_HeaderWrapper","styled_HeaderContent","styled_HeaderLogo","styled_HeaderLinks","styled_HeaderLinkIcons","calcon_logo_color_extends","calcon_logo_color_ref","calcon_logo_color_SvgComponent","style","x","y","othl_logo_color_extends","othl_logo_color_ref","othl_logo_color_ref2","othl_logo_color_ref3","othl_logo_color_ref4","othl_logo_color_SvgComponent","tabor_logo_color_extends","tabor_logo_color_ref","tabor_logo_color_ref2","tabor_logo_color_ref3","stroke","strokeMiterlimit","strokeWidth","tabor_logo_color_SvgComponent","FooterLogo","FooterText","FooterWrapper","footer","Footer","brand","styled_FooterWrapper","styled_FooterLogo","drawLogo","styled_FooterText","getFullYear","drawBrandName","href","rel","amount","GlobalStyle","createGlobalStyle","_templateObject","Grid","SpinnerContainer","heightProp","widthProp","marginProp","Spinner","svg","styled_Spinner","cx","cy","r","SubmitButton","button","margin","darken","DashboardWelcome","section","bannerBg","DashboardWrapper","DashboardItemLink","Link","DashboardLoanCard","DashboardLoanCardBody","DashboardLoanCardTitle","DashboardLoanContainer","DashboardLoanContainerTitle","DashboardLoanGrid","DashboardLoanGridWrapper","nodeHeight","ActiveOrFundedLoanCardBody","dateTitle","displayDate","styled_DashboardLoanCardBody","PrequalifiedOrPreapprovedLoanCardBody","memo","styled_DashboardItemLink","styled_DashboardLoanCard","styled_DashboardLoanCardTitle","DashboardLoanItem_PrequalifiedOrPreapprovedLoanCardBody","DashboardLoanItem_ActiveOrFundedLoanCardBody","dashboard_arrow_extends","dashboard_arrow_ref","dashboard_arrow_ref2","dashboard_arrow_SvgComponent","DashboardLoanList","defaultOpen","loanGridRef","styled_DashboardLoanContainer","styled_DashboardLoanContainerTitle","styled_DashboardLoanGridWrapper","scrollHeight","styled_DashboardLoanGrid","Dashboard_DashboardLoanItem","mapLoans","Dashboard","_useContext$state$pro","_useContext$state$pro2","loanTypes","styled_DashboardWrapper","styled_DashboardWelcome","aria-label","Dashboard_DashboardLoanList","*","location","path","uri","useGetIndividualLoanDetails","setLoanData","loans_icon_extends","loans_icon_ref","loans_icon_ref2","loans_icon_SvgComponent","down_arrow_extends","down_arrow_ref","down_arrow_SvgComponent","LoanHeaderAddress","LoanHeaderContacts","LoanHeaderContainer","LoanHeaderContent","LoanHeaderContentEntry","LoanHeaderContentEntryContact","LoanHeaderContentSection","LoanHeaderPersonLabel","LoanHeaderTitle","LoanHeader","defaultInfo","_defaultInfo","_defaultInfo$contacts","styled_LoanHeaderContainer","styled_LoanHeaderTitle","styled_LoanHeaderContent","styled_LoanHeaderAddress","styled_LoanHeaderContacts","styled_LoanHeaderContentSection","styled_LoanHeaderContentEntry","styled_LoanHeaderPersonLabel","styled_LoanHeaderContentEntryContact","AfLoanContactCardBody","AfLoanContactCardBodyWrapper","AfLoanContactCardHeader","AfLoanContactCardWrapper","li","AfLoanContactsGroup","AfLoanContactsGroupRow","AfLoanContactsGroupsWrapper","AfLoanDatesAndContactsWrapper","AfLoanKeyDatesList","AfLoanTab","AfLoanTabsBodyWrapper","AfLoanTabsHeaderWrapper","AfLoanTabTitle","h2","contacts_icon_extends","contacts_icon_ref","contacts_icon_ref2","contacts_icon_SvgComponent","calendar_icon_extends","calendar_icon_ref","calendar_icon_ref2","calendar_icon_SvgComponent","AfLoanTabsHeader","setActiveTab","styled_AfLoanTabsHeaderWrapper","styled_AfLoanTab","styled_AfLoanTabTitle","findLastStatus","statusList","statusesWithDates","formatLoanStatus","statusMap","lastStatus","text","Array","from","groupContacts","contactGroups","0","1","2","3","newContact","processKeyDates","dates","keyDatesList","datesArray","loan_contact_arrow_extends","loan_contact_arrow_ref","loan_contact_arrow_SvgComponent","AfLoanContactCard","contact","styled_AfLoanContactCardWrapper","styled_AfLoanContactCardHeader","styled_AfLoanContactCardBodyWrapper","styled_AfLoanContactCardBody","field","html","possibleField","drawLoanContactCardBody","AfLoanContacts","groupedContacts","drawContactGroup","groupIndex","AfLoanDatesAndContacts_AfLoanContactCard","styled_AfLoanContactsGroupsWrapper","styled_AfLoanContactsGroupRow","styled_AfLoanContactsGroup","AfLoanKeyDates","styled_AfLoanKeyDatesList","keyDate","AfLoanDatesAndContacts","_ref$loanData","activeTab","styled_AfLoanDatesAndContactsWrapper","AfLoanDatesAndContacts_AfLoanTabsHeader","styled_AfLoanTabsBodyWrapper","AfLoanDatesAndContacts_AfLoanKeyDates","AfLoanDatesAndContacts_AfLoanContacts","AfLoanBody","AfLoanBodyBackground","AfLoanStatusBody","AfLoanStatusContainer","AfLoanStatusTop","checkbox_checked_extends","checkbox_checked_ref","checkbox_checked_ref2","checkbox_checked_ref3","checkbox_checked_SvgComponent","checkbox_unchecked_extends","checkbox_unchecked_ref","checkbox_unchecked_ref2","checkbox_unchecked_SvgComponent","AfLoanStatus","_loanData$statusInfo","_loanData$statusInfoM","_statusInfo$expectedC","styled_AfLoanStatusContainer","styled_AfLoanStatusTop","styled_AfLoanStatusBody","_formatLoanStatus","_formatLoanStatus2","drawStatusBody","ActiveFundedLoan","styled_AfLoanBodyBackground","styled_Grid","styled_AfLoanBody","ActiveFundedLoan_AfLoanDatesAndContacts","ActiveFundedLoan_AfLoanStatus","downloadLetterPdf","letterData","link","document","url","URL","createObjectURL","download","body","append","click","remove","formatLetterRequest","setSendingRequest","createLetterUrl","letterType","formattedLetterRequest","jsonFormattedLetterRequest","createLetterRequest","regeneratedLetterPdf","stringify","method","responseType","dataType","blob","Blob","_x6","useCreateLetter","sendingRequest","useLetterActions","AppContext","calculateNewLoanValues","maxLoanAmount","inputLoanAmount","letterLoanAmount","minPurchasePrice","inputPurchasePrice","letterPurchasePrice","adjustedLoanAmount","Math","ceil","modifyLoanReducer","valueChanges","whichField","numericalFieldValue","valueChangesFromInput","initialValues","modifiedLoanLetterEntry","success","useModifyLoanReducer","initialLoanValues","setPreloadedLetterData","regenerateLetterUrl","regenerateLetterRequest","usePreloadRegeneratedLetter","preloadedLetterData","setLetterData","useRegenerateLetter","PreLoanBody","PreLoanSectionWrapper","hideMobile","PreLoanTitle","PreLoanInformationContent","PreLoanInformationTable","table","PreLoanLetterButton","level","string","PreLoanLetterButtonWrapper","justifyContent","PreLoanLetterWidgetWrapper","PreLoanLetterHistoryTable","PreLoanLetterHistoryTableWrapper","PreLoanLetterHistoryWrapper","PreLoanModifyDownloadWrapper","PreLoanModifyInputInput","PreLoanModifyInputTable","PreLoanSuccessContent","PreLoanSuccessReturnButton","PreLoanLetterRequestHistory","styled_PreLoanLetterHistoryWrapper","styled_PreLoanTitle","styled_PreLoanLetterHistoryTableWrapper","styled_PreLoanLetterHistoryTable","view_letter_extends","view_letter_ref","view_letter_SvgComponent","download_letter_extends","download_letter_ref","download_letter_SvgComponent","PreLoanLetterLevelOneButtons","loadingLetter","mobileOnly","_useLetterActions","_useLetterActions2","previewLetterPdf","styled_PreLoanLetterButtonWrapper","styled_PreLoanLetterButton","disabled","create_letter_extends","create_letter_ref","create_letter_SvgComponent","PreLoanLetterLevelTwoButtons","toggleModify","PreLoanInformation","loanInformationVisible","modifyingLetter","styled_PreLoanSectionWrapper","PreLoanLetter_PreLoanLetterLevelOneButtons","PreLoanLetter_PreLoanLetterLevelTwoButtons","styled_PreLoanInformationContent","styled_PreLoanInformationTable","info","PreLoanLetterWidget","styled_PreLoanLetterWidgetWrapper","reset_values_extends","reset_values_ref","reset_values_SvgComponent","preview_letter_extends","preview_letter_ref","preview_letter_SvgComponent","cancel_letter_extends","cancel_letter_ref","cancel_letter_SvgComponent","PreLoanModifyButtons","isMobile","modifiedLoan","modifiedLetterData","_useRegenerateLetter","_useRegenerateLetter2","handleLetterRequest","PreLoanModifyDownload","_useCreateLetter","_useCreateLetter2","sendingLetterRequest","styled_PreLoanModifyDownloadWrapper","HandleLabel","HandleWrapper","attrs","left","percent","sliderHandle","Rail","marginTop","borderRadius","background","mobileRailStyle","railStyle","Slider","mobileSliderStyle","sliderStyle","Handle","getHandleProps","_ref$handle","handle","styled_HandleWrapper","styled_HandleLabel","LoanAmountSlider","_ref$constraints","react_compound_slider_es","rootStyle","domain","mode","step","values","onChange","handles","PreLoanModifySlider_Handle","PurchasePriceSlider","calculate_values_icon_extends","calculate_values_icon_ref","calculate_values_icon_ref2","calculate_values_icon_ref3","calculate_values_icon_ref4","calculate_values_icon_SvgComponent","PreLoanModifyInput","_ref$modifiedLoan","styled_PreLoanModifyInputTable","styled_PreLoanModifyInputInput","number_format_default","thousandSeparator","prefix","PreLoanModifySlider_PurchasePriceSlider","PreLoanModifySlider_LoanAmountSlider","PreLoanModify","setIsMobile","innerWidth","PreLoanModify_PreLoanModifyInput","PreLoanModify_PreLoanModifyButtons","PreLoanModify_PreLoanModifyDownload","return_arrow_extends","return_arrow_ref","return_arrow_SvgComponent","success_message_extends","success_message_ref","success_message_SvgComponent","PreLoanSuccess","setModifyingLetter","_loanData$contacts","styled_PreLoanSuccessContent","styled_PreLoanSuccessReturnButton","PreLoanHistory","TransitionComponent","posed","enter","opacity","delay","transition","duration","exit","HistoryTransitionComponent","PreLoan","_loanData$loanInforma","_loanData$permissions","_useModifyLoanReducer","_useModifyLoanReducer2","_usePreloadRegenerate","_usePreloadRegenerate2","setLoanInformationVisible","mobile","styled_PreLoanBody","PreLoan_PreLoanInformation","PreLoanLetter","react_pose_es","flipMove","PreLoan_PreLoanSuccess","PreLoan_PreLoanModify","Loan","Loan_LoanHeader","Loan_ActiveFundedLoan","Loan_PreLoan","profileReducer","useProfileReducer","initialLoad","contextProfileState","profileState","ProfileHeaderLeftLink","ProfileHeaderRightLink","ProfileHeaderWrapper","ProfileWrapper","user_profile_icon_extends","user_profile_icon_ref","user_profile_icon_ref2","ry","user_profile_icon_SvgComponent","ProfileHeader","styled_ProfileHeaderWrapper","styled_ProfileHeaderLeftLink","styled_ProfileHeaderRightLink","profileContentFirstFields","options","useEditModeState","initialEditModeState","editModeState","setEditModeState","updatedEditModeState","ProfileContentAddressFieldsWrapper","ProfileContentField","ProfileContentFieldInputWrapper","ProfileContentFieldLabel","ProfileContentFieldsWrapper","flexBasis","ProfileContentHeadshotContainer","ProfileContentHeadshotWrapper","ProfileContentImageOverlay","ProfileContentLogoContainer","ProfileContentLogoWrapper","ProfileContentRadioInputWrapper","ProfileContentSectionSide","ProfileContentSectionWrapper","align","ProfileContentSubmitButton","ProfileContentSubmitContainer","ProfileContentSubmitMessage","ProfileContentWrapper","person_placeholder_rectangular_extends","person_placeholder_rectangular_ref","person_placeholder_rectangular_ref2","person_placeholder_rectangular_ref3","person_placeholder_rectangular_SvgComponent","ProfileContentFirst","headshotUpload","_useEditModeState","_useEditModeState2","toggleFieldEditMode","drawGenderField","styled_ProfileContentField","styled_ProfileContentFieldLabel","styled_ProfileContentFieldInputWrapper","styled_ProfileContentRadioInputWrapper","option","checked","autoFocus","styled_ProfileContentSectionSide","styled_ProfileContentHeadshotWrapper","styled_ProfileContentHeadshotContainer","styled_ProfileContentImageOverlay","accept","styled_ProfileContentFieldsWrapper","placeholder","profileContentSecondFields","subFields","company_logo_placeholder_extends","company_logo_placeholder_ref","company_logo_placeholder_SvgComponent","data-name","x1","y1","x2","y2","strokeDasharray","ProfileContentSecond","companyLogoUpload","drawPhoneNumberInputField","drawAddressInputFields","styled_ProfileContentAddressFieldsWrapper","styled_ProfileContentLogoWrapper","styled_ProfileContentLogoContainer","ProfileSubmit","submitState","setSubmitState","submitProfileMessage","setSubmitProfileMessage","submitUpdatedProfileData","updateProfileUrl","formData","serializedProfileState","randomNum","sendUpdateToProfile","FormData","floor","now","setTimeout","styled_ProfileContentSubmitMessage","styled_ProfileContentSubmitContainer","styled_ProfileContentSubmitButton","ProfileContent","styled_ProfileContentWrapper","styled_ProfileContentSectionWrapper","ProfileContent_ProfileContentFirst","ProfileContent_ProfileContentSecond","ProfileContent_ProfileSubmit","passwordState","formattedPasswordUpdate","updatePasswordUrl","sendPasswordUpdate","passwordUpdateStatus","passwordUpdateResponse","Password","oldPassword","NewPassword","newPassword","ConfirmPassword","confirmNewPassword","response","submitPasswordUpdate","ProfilePasswordContent","ProfilePasswordFormWrapper","form","ProfilePasswordMessage","ProfilePasswordSubmitButton","ProfilePasswordWrapper","ProfilePasswordForm","handleChange","_ref$passwordState","responseMessageState","tryPasswordUpdate","styled_ProfilePasswordFormWrapper","onSubmit","htmlFor","styled_ProfilePasswordSubmitButton","styled_ProfilePasswordMessage","ProfilePassword","initialPasswordState","touched","minLength","setPasswordState","setResponseMessageState","updatedPasswordResponse","formattedErrorResponse","preventDefault","message","modelState","model","styled_ProfilePasswordWrapper","styled_ProfilePasswordContent","ProfilePassword_ProfilePasswordForm","_e$target","updatedPasswordState","formatLocalProfileState","localProfileState","Profile","_useProfileReducer","_useProfileReducer2","formattedLocalProfileState","styled_ProfileWrapper","Profile_ProfileHeader","primary","Profile_ProfileContent","Profile_ProfilePassword","ModalClose","span","ModalDownloadButton","ModalScreen","rgba","getRgba","ModalWindow","Modal","pdfjs","GlobalWorkerOptions","workerSrc","_props$attr","styled_ModalScreen","styled_ModalWindow","styled_ModalDownloadButton","entry","pageNumber","scale","styled_ModalClose","AppContentContainer","AppContentWrapper","SkipToContentLink","App","_useModal","_useModal2","_useBrandFinder","appContextValues","Context_LoggedInContext","App_AppLoader","styled_SkipToContentLink","components_Modal","App_Drawer","styled_AppContentWrapper","components_Header","styled_AppContentContainer","components_Dashboard","components_Profile","components_Loan","components_Footer","checkIfUsernameOrPasswordBlank","isUsernameBlank","username","isPasswordBlank","password","saveLoginToSessionStorage","userData","dataToSave","setItem","loginUrl","userLogin","error_description","UserId","UserName","access_token","failed","serviceFailed","loginFailed","sendLoginRequest","loginMiddleware","isUsernameOrPasswordBlank","loginUserRequest","user","loginFormReducer","useLoginReducer","loginFormState","LoginForm","LoginFormErrors","LoginFormFooter","LoginFormFooterImageWrapper","LoginFormInputGroup","LoginFormLogo","LoginFormSubmitButton","LoginLogo","LoginWrapper","Login","_useLoginReducer","_useLoginReducer2","styled_LoginWrapper","styled_LoginLogo","styled_LoginForm","handleSubmit","novalidate","styled_LoginFormLogo","styled_LoginFormErrors","styled_LoginFormInputGroup","aria-level","styled_LoginFormSubmitButton","styled_LoginFormFooter","styled_LoginFormFooterImageWrapper","RegisterContainer","RegisterFailedWrapper","RegisterInputContent","RegisterInputWrapper","RegisterSubmitButton","RegisterWrapper","checkIfEmailValid","emailState","test","handleValidationFailure","component","RegisterInput","setRegistrationStatusState","setEmailState","setMessage","sendRegisterRequest","registerUserUrl","registerUserData","sendRegisterUserRequest","registerUserResponse","typeOfRegistrationFailure","styled_RegisterInputWrapper","styled_RegisterInputContent","styled_RegisterSubmitButton","RegisterValidateFailed","failureType","RegisterFailOrSuccessWrapper","lengthValidator","input","numberValidator","passwordValidator","confirmPasswordValidator","telValidator","initializeValidators","registrationFormReducer","validators","validator","required","initialRegistrationFormState","licensingNumber","confirmPassword","useRegisterReducer","registerTopFields","registerBottomFields","RegisterFormField","RegisterFormFieldsContainer","RegisterFormHeader","RegisterFormUploadPreview","RegisterFormWrapper","RegisterSubmitWrapper","RegisterFormFields","drawRegistrationFields","fields","styled_RegisterFormField","handleAddressChange","_e$target2","styled_RegisterFormFieldsContainer","RegisterFormUploads","headshotKey","setHeadshotKey","companyLogoKey","setCompanyLogoKey","clearImage","random","toString","styled_RegisterFormUploadPreview","submitRegistration","newUserData","formattedNewUserData","formattedNewUserDataWithExtra","serializedNewUserData","reduce","obj","c","k","NewsLetter","Gender","Email","City","Address","State","ZipCode","validateAndSubmitRegistration","requiredFields","setUntouchedFieldErrors","every","checkForRegistrationFormErrors","RegisterSubmit","styled_RegisterSubmitWrapper","styled_SubmitButton","RegisterForm","emailAddress","_useRegisterReducer","_useRegisterReducer2","scrollTo","styled_RegisterFormWrapper","styled_RegisterFormHeader","RegisterForm_RegisterFormFields","RegisterForm_RegisterFormUploads","RegisterForm_RegisterSubmit","RegisterSubmitFailed","RegisterSubmitSuccess","Register","registrationStatusState","styled_RegisterWrapper","styled_RegisterContainer","Register_RegisterInput","Register_RegisterValidateFailed","Register_RegisterForm","Register_RegisterSubmitFailed","Register_RegisterSubmitSuccess","ForgotPasswordContainer","ForgotPasswordFormContent","ForgotPasswordFormWrapper","ForgotPasswordWrapper","ForgotPasswordForm","sendPasswordResetRequest","forgotPasswordUrl","forgotPasswordData","sendForgotPasswordRequest","styled_ForgotPasswordFormWrapper","styled_ForgotPasswordFormContent","ForgotPassword","styled_ForgotPasswordWrapper","styled_ForgotPasswordContainer","ForgotPassword_ForgotPasswordForm","checkIfPasswordsValid","passwordFormState","passwordField","confirmPasswordField","validity","allValid","passwordsMatch","FailedPasswordResetRequest","SuccessfulPasswordResetRequest","ResetPasswordContainer","ResetPasswordFormContent","ResetPasswordFormWrapper","ResetPasswordWrapper","ResetPasswordForm","initialResetPasswordFormState","resetPasswordFormState","setResetPasswordFormState","codeState","setcodeState","_useState9","_useState10","successfulRequestState","setSuccessfulRequestState","_useState11","_useState12","failedRequestState","setFailedRequestState","codeIndex","search","codeString","updatedResetPasswordFormState","sendPasswordReset","passwordsValid","_updatedResetPasswordFormState","formStateToSend","resetPasswordUrl","resetPasswordData","sendResetRequest","Code","ResetPassword_FailedPasswordResetRequest","ResetPassword_SuccessfulPasswordResetRequest","styled_ResetPasswordFormWrapper","styled_ResetPasswordFormContent","ResetPassword","styled_ResetPasswordWrapper","styled_ResetPasswordContainer","ResetPassword_ResetPasswordForm","ReactDOM","render","styled_components_browser_esm","Context_RootContext","styled_GlobalStyle","components_App","components_Login","components_Register","components_ForgotPassword","components_ResetPassword","getElementById"],"mappings":"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","file":"static/js/main.3f33b6f6.chunk.js","sourcesContent":["function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nmodule.exports = webpackEmptyContext;\nwebpackEmptyContext.id = 144;","module.exports = __webpack_public_path__ + \"static/media/home-icon.25a80958.svg\";","module.exports = __webpack_public_path__ + \"static/media/loans-icon.46df840c.svg\";","module.exports = __webpack_public_path__ + \"static/media/partner-icon.11bb8742.svg\";","module.exports = __webpack_public_path__ + \"static/media/drawer-profile-icon.ee201dad.svg\";","module.exports = __webpack_public_path__ + \"static/media/bannerBg.44d0d9ac.jpg\";","module.exports = __webpack_public_path__ + \"static/media/slider-handle.bd20ac9a.svg\";","import { darken, rgba } from 'polished';\r\n\r\nconst theme = {\r\n // OneTrust colors plus additional design colors\r\n colors: {\r\n // blues\r\n primaryBlue: '#2d536f',\r\n complimentaryBlue: '#5481a3',\r\n titleBlue: '#5682a4',\r\n cardBlue: '#4f80b1',\r\n coolBlue: '#6aa8e7',\r\n controlBlue: '#1b75bc',\r\n buttonTeal: '#1997bf',\r\n electricBlue: '#459dce',\r\n // other misc\r\n accentGreen: '#99c24d',\r\n accentOrange: '#eab345',\r\n accentRed: '#fd5f54',\r\n // monotones\r\n black: '#323232',\r\n white: '#ffffff',\r\n lightestGrey: '#d1d3d4',\r\n lightGrey: '#bcbec0',\r\n medGrey: '#808080',\r\n titleGrey: '#707071',\r\n backgroundGrey: '#f2f2f2',\r\n borderGrey: '#b3b3b3',\r\n cardGrey: '#e6e6e6',\r\n },\r\n breakpoints: {\r\n sm: '576px',\r\n md: '768px',\r\n lg: '992px',\r\n xl: '1200px',\r\n },\r\n typography: {\r\n // correspond with Google font actual weights for Roboto\r\n weights: {\r\n thin: '100',\r\n light: '300',\r\n regular: '400',\r\n medium: '500',\r\n bold: '700',\r\n black: '900',\r\n },\r\n },\r\n};\r\n\r\n// helper functions to ease using theme - components can import just the helpers they need and easily access the theme with them\r\nexport const getBreakpoint = breakpoint => props => props.theme.breakpoints[breakpoint];\r\n\r\nexport const getColor = color => props => props.theme.colors[color];\r\n\r\nexport const getFontSize = (element, size) => props => props.theme.typography.sizes[element][size];\r\n\r\nexport const getFontWeight = weight => props => props.theme.typography.weights[weight];\r\n\r\nexport const getRgba = (color, amount) => props => rgba(props.theme.colors[color], amount);\r\n\r\nexport const darkenColor = (color, amount) => props => darken(amount, props.theme.colors[color]);\r\n\r\nexport default theme;\r\n","import React, { createContext, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nexport const RootContext = createContext();\r\n\r\nfunction InsiderRootContext({ children }) {\r\n const initialUserState = {\r\n userId: 0,\r\n userName: '',\r\n accessToken: '',\r\n };\r\n\r\n const [userState, setUserState] = useState(initialUserState);\r\n const [brandState, setBrandState] = useState('none');\r\n\r\n const contextValues = {\r\n state: {\r\n brandState,\r\n userState,\r\n },\r\n functions: {\r\n setBrandState,\r\n setUserState,\r\n },\r\n };\r\n\r\n return {children};\r\n}\r\n\r\nexport default InsiderRootContext;\r\n\r\n/**\r\n * receives one child element prop, a fragment in root index.js that wraps all other components\r\n */\r\nInsiderRootContext.propTypes = {\r\n children: PropTypes.element.isRequired,\r\n};\r\n","import { useContext, useEffect } from 'react';\r\n\r\n// import context\r\nimport { RootContext } from '../components/Context/RootContext';\r\n\r\nfunction useBrandFinder(origin) {\r\n const {\r\n state: { brandState },\r\n functions: { setBrandState },\r\n } = useContext(RootContext);\r\n\r\n useEffect(() => {\r\n // if brand already loaded and stored in context, exit\r\n if (brandState !== 'none') return;\r\n\r\n const isCalcon = origin.includes('calcon');\r\n const isOthl = origin.includes('othl');\r\n const isTabor = origin.includes('tabor');\r\n\r\n if (isCalcon) {\r\n setBrandState('calcon');\r\n } else if (isOthl) {\r\n setBrandState('othl');\r\n } else if (isTabor) {\r\n setBrandState('tabor');\r\n }\r\n }, []);\r\n\r\n return [brandState];\r\n}\r\n\r\nexport default useBrandFinder;\r\n","import { useCallback } from 'react';\r\n\r\nfunction transformImage(ref, name, dispatch) {\r\n const reader = new FileReader();\r\n\r\n const file = ref.current.files[0];\r\n\r\n if (!file) return;\r\n\r\n reader.readAsDataURL(file);\r\n\r\n reader.onloadend = ee => {\r\n const imageResult = {\r\n [name]: ee.target.result,\r\n };\r\n\r\n dispatch({ type: 'imageChange', value: imageResult, name, file });\r\n\r\n return imageResult;\r\n };\r\n}\r\n\r\nfunction useFileReader(dispatch) {\r\n const transformUploadedImage = useCallback((ref, name) => {\r\n transformImage(ref, name, dispatch);\r\n });\r\n\r\n return transformUploadedImage;\r\n}\r\n\r\nexport default useFileReader;\r\n","/**\r\n * using env var instead of specifiying LIVE/DEV like below is preferred\r\n */\r\n\r\n/**\r\n * production API\r\n */\r\n// export const LIVE_API_BASE_URL = 'https://othlpps.loanforceinsider.com';\r\n\r\n/**\r\n * development API\r\n */\r\n// export const DEV_API_BASE_URL = 'https://devpps.loanforceinsider.com';\r\n\r\n/**\r\n * use env var to determine\r\n */\r\nexport const API_BASE_URL =\r\n process.env.REACT_APP_BUILD_ENV === 'production'\r\n ? 'https://othlpps.loanforceinsider.com'\r\n : 'https://devpps.loanforceinsider.com';\r\n\r\n/**\r\n * for quick switching during development\r\n */\r\n// export const API_BASE_URL = 'https://othlpps.loanforceinsider.com';\r\n// export const API_BASE_URL = 'https://devpps.loanforceinsider.com';\r\n\r\n/**\r\n * geocoding is currently turned off\r\n * this is OneTrust's account API key\r\n * if this becomes a needed feature will have to work out how to deal with it\r\n */\r\nexport const GOOGLE_GEOCODE_API_KEY = 'AIzaSyBEDijsk3vOPVLAuYKZu4wir6Y3tpu1xXQ';\r\n","import { format, isValid, isDate } from 'date-fns';\r\n\r\nconst today = format(new Date());\r\n\r\nconst formatLoans = loans => {\r\n const processedLoans = {\r\n adverse: [],\r\n active: [],\r\n funded: [],\r\n prequalified: [],\r\n preapproved: [],\r\n noClosing: [],\r\n inactive: [],\r\n };\r\n\r\n const adverseLoanFilter = processAdverseLoans(loans);\r\n\r\n adverseLoanFilter[0].map(loan => {\r\n processedLoans.adverse.push(loan);\r\n return null;\r\n });\r\n\r\n const newLoansFilter = processNewLoans(adverseLoanFilter[1]);\r\n\r\n newLoansFilter.map(loan => {\r\n processedLoans[loan.category].push(loan);\r\n return null;\r\n });\r\n\r\n processedLoans.active.sort((a, b) => {\r\n return a.fmClosing - b.fmClosing;\r\n });\r\n\r\n processedLoans.funded.sort((a, b) => {\r\n return b.fmClosing - a.fmClosing;\r\n });\r\n\r\n return processedLoans;\r\n};\r\n\r\nconst processAdverseLoans = loans => {\r\n const adverseLoans = [];\r\n const nonAdverseLoans = [];\r\n\r\n for (let loan of loans) {\r\n if (loan.adverseActionRequest) {\r\n adverseLoans.push(loan);\r\n } else {\r\n nonAdverseLoans.push(loan);\r\n }\r\n }\r\n\r\n return [adverseLoans, nonAdverseLoans];\r\n};\r\n\r\nconst processNewLoans = loans => {\r\n const nonAdverseLoans = [];\r\n\r\n for (let loan of loans) {\r\n const {\r\n loanNumber,\r\n borrowerFirstName,\r\n borrowerLastName,\r\n propertyAddr,\r\n expectedCloseDate,\r\n funding,\r\n loanOfficerName,\r\n loanOfficerPhone,\r\n } = loan;\r\n\r\n const newLoan = {\r\n id: loanNumber,\r\n borrower: `${borrowerFirstName} ${borrowerLastName}`,\r\n propertyAddr,\r\n closing: expectedCloseDate,\r\n funding,\r\n loanOfficer: {\r\n loanOfficerName,\r\n loanOfficerPhone,\r\n },\r\n };\r\n\r\n const isActive = checkIfLoanActive(loan);\r\n const isPreQualifiedOrPreApproved = checkIfLoanPreQualifiedOrPreApproved(loan);\r\n\r\n if (isPreQualifiedOrPreApproved.loanPreQualifiedOrPreApproved && isPreQualifiedOrPreApproved.loanNotExpired) {\r\n nonAdverseLoans.push({ ...newLoan, ...isPreQualifiedOrPreApproved });\r\n } else if (isActive[0] === true) {\r\n const activeLoan = categorizeActiveLoan(newLoan, isActive[1]);\r\n nonAdverseLoans.push(activeLoan);\r\n } else {\r\n loan.category = 'inactive';\r\n nonAdverseLoans.push(loan);\r\n }\r\n }\r\n\r\n return nonAdverseLoans;\r\n};\r\n\r\nconst checkIfLoanPreQualifiedOrPreApproved = loan => {\r\n const isLoanActive = loan.prequalified === 'False' && loan.preapproved === 'False';\r\n\r\n if (isLoanActive) return { loanPreQualifiedOrPreApproved: false };\r\n\r\n /**\r\n * check if client authorization received, don't add loan to processed loans if not\r\n */\r\n const loanAuthorized = loan.clientAuthorizationReceived;\r\n\r\n if (!loanAuthorized) return { loanPreQualifiedOrPreApproved: false };\r\n\r\n /**\r\n * check if level 1 or level 2 permission has been selected, don't add to processed loans if not\r\n */\r\n const noLoanPermissionChosen = loan.level1Permissions === 'False' && loan.level2Permissions === 'False';\r\n\r\n if (noLoanPermissionChosen) return { loanPreQualifiedOrPreApproved: false };\r\n\r\n /**\r\n * check to make sure loan has constraint fields and LTV set\r\n * level 1 permission loans only need prequalMaxLTV field set, level 2 needs all\r\n * these fields are empty strings in API response if not set\r\n */\r\n const loanConstraintsSet =\r\n loan.level2Permissions === 'False'\r\n ? loan.prequalMaxLTV\r\n : loan.prequalMinLoanAmount &&\r\n loan.prequalMaxLoanAmount &&\r\n loan.prequalMinPurchasePrice &&\r\n loan.prequalMaxPurchasePrice &&\r\n loan.prequalMaxLTV;\r\n\r\n if (!loanConstraintsSet) {\r\n return { loanPreQualifiedOrPreApproved: false };\r\n }\r\n\r\n /**\r\n * determine if loan is prequalified or preapproved (if preapproved both are true)\r\n */\r\n const loanPreQualified = loan.prequalified === 'True';\r\n const loanPreApproved = loan.preapproved === 'True';\r\n\r\n const isLoanNotExpired = (loanPreQualified, loanPreApproved) => {\r\n if (loanPreApproved) return true;\r\n\r\n if (loanPreQualified && loan.prequalExpirationDate > today) return true;\r\n\r\n return false;\r\n };\r\n\r\n const getLoanCategory = (loanPreQualified, loanPreApproved) => {\r\n const loanCategory = loanPreQualified && !loanPreApproved ? 'prequalified' : loanPreApproved ? 'preapproved' : null;\r\n\r\n return loanCategory;\r\n };\r\n\r\n return {\r\n loanCity: loan.propertyAddr.replace('
', ' ').replace(/[0-9]/g, ''),\r\n category: getLoanCategory(loanPreQualified, loanPreApproved),\r\n loanNotExpired: isLoanNotExpired(loanPreQualified, loanPreApproved),\r\n loanPreQualifiedOrPreApproved: loanPreQualified || loanPreApproved,\r\n };\r\n};\r\n\r\nconst checkIfLoanActive = loan => {\r\n const milestoneKeys = [\r\n 'mloSetupComplete',\r\n 'submittedToUnderwriting',\r\n 'conditionallyApproved',\r\n 'initialUnderwritingComplete',\r\n 'p1ConditionResolutionComplete',\r\n 'underwrtitingIIConditionReviewComplete',\r\n 'piiFinalCondition',\r\n 'underwritingIIIClearToClose',\r\n 'docProp',\r\n 'funding',\r\n ];\r\n\r\n let loanIsActive = false;\r\n let milestones = {};\r\n\r\n milestoneKeys.map(key => {\r\n milestones[key] = format(loan[key]);\r\n const tempDate = new Date(milestones[key]);\r\n\r\n if (isValid(tempDate)) {\r\n loanIsActive = true;\r\n }\r\n\r\n return null;\r\n });\r\n\r\n return [loanIsActive, milestones];\r\n};\r\n\r\nconst categorizeActiveLoan = (loan, milestones) => {\r\n const { funding } = milestones;\r\n const fmFunding = new Date(format(funding));\r\n const fmClosing = new Date(format(loan.closing));\r\n\r\n loan.fmFunding = fmFunding;\r\n loan.fmClosing = fmClosing;\r\n\r\n if (isDate(fmFunding)) {\r\n if (isValid(fmFunding) && funding <= today) {\r\n loan.category = 'funded';\r\n return loan;\r\n } else if (!isValid(fmFunding) && !isValid(fmClosing)) {\r\n loan.category = 'noClosing';\r\n return loan;\r\n }\r\n }\r\n\r\n if (isValid(fmClosing) || funding > today) {\r\n loan.category = 'active';\r\n return loan;\r\n }\r\n};\r\n\r\nexport { formatLoans, categorizeActiveLoan };\r\n","import { useEffect, useState } from 'react';\r\n\r\n// import config\r\nimport { API_BASE_URL } from '../util/config';\r\n\r\n// process loans function\r\nimport { formatLoans } from '../util/processLoans';\r\n// import formatAddress from '../../../util/formatAddress';\r\n\r\nasync function formatLoanAddresses(loans) {\r\n // const loansWithFormattedAddresses = loans.map(async loan => {\r\n // const formattedAddress = await formatAddress(loan.subjectPropertyAddress);\r\n // return {\r\n // ...loan,\r\n // propertyAddr: formattedAddress,\r\n // };\r\n // });\r\n\r\n // const resolvedLoansWithFormattedAddresses = await Promise.all(loansWithFormattedAddresses);\r\n\r\n // return resolvedLoansWithFormattedAddresses;\r\n\r\n const loansWithFormattedAddresses = loans.map(loan => {\r\n return {\r\n ...loan,\r\n propertyAddr: loan.subjectPropertyAddress,\r\n };\r\n });\r\n\r\n return loansWithFormattedAddresses;\r\n}\r\n\r\nasync function fetchRawAndProcessedLoans(userId, accessToken, setLoansState, setLoading, setError) {\r\n if (userId === 0) {\r\n return [null, null];\r\n }\r\n\r\n const loansUrl = `${API_BASE_URL}/api/Loan?user=${userId}`;\r\n\r\n const userLoans = await fetch(loansUrl, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n Authorization: `bearer ${accessToken}`,\r\n },\r\n });\r\n\r\n if (userLoans.status === 500) {\r\n setLoansState([], []);\r\n setLoading(false);\r\n setError(true);\r\n\r\n return;\r\n }\r\n\r\n const rawLoansData = await userLoans.json();\r\n\r\n const rawLoansWithAddressesData = await formatLoanAddresses(rawLoansData);\r\n\r\n const processedLoansData = await formatLoans(rawLoansWithAddressesData);\r\n\r\n setLoansState(rawLoansData, processedLoansData);\r\n\r\n setLoading(false);\r\n}\r\n\r\nfunction useGetUserLoans(userId, accessToken) {\r\n const [error, setError] = useState(null);\r\n const [loading, setLoading] = useState(true);\r\n const [rawLoans, setRawLoans] = useState([]);\r\n const [processedLoans, setProcessedLoans] = useState({});\r\n\r\n const setLoansState = (rawLoans, processedLoans) => {\r\n setRawLoans(rawLoans);\r\n setProcessedLoans(processedLoans);\r\n };\r\n\r\n useEffect(() => {\r\n fetchRawAndProcessedLoans(userId, accessToken, setLoansState, setLoading, setError);\r\n }, [userId]);\r\n\r\n return [error, loading, rawLoans, processedLoans];\r\n}\r\n\r\nexport default useGetUserLoans;\r\n","// API returns image data in arrayBuffer sooo\r\n// https://gist.github.com/zzarcon/1a3603b84dac7abe5e3f#file-fetch_blob-js <-- thanks gist\r\nfunction arrayBufferToBase64(buffer) {\r\n const bytes = [].slice.call(new Uint8Array(buffer));\r\n let binary = '';\r\n\r\n bytes.forEach(b => (binary += String.fromCharCode(b)));\r\n\r\n return window.btoa(binary);\r\n}\r\n\r\nexport default arrayBufferToBase64;\r\n","import { format } from 'date-fns';\r\n\r\nfunction formatDate(date) {\r\n const newDate = new Date(date);\r\n const formattedDate = format(newDate, 'MM/DD/YYYY');\r\n\r\n return formattedDate;\r\n}\r\n\r\nexport default formatDate;\r\n","import { useEffect, useState } from 'react';\r\n\r\n// import config\r\nimport { API_BASE_URL } from '../util/config';\r\n\r\n// import functions\r\nimport arrayBufferToBase64 from '../util/arrayBufferToBase64';\r\nimport formatDate from '../util/formatDate';\r\n\r\nconst checkGenderValue = gender => {\r\n const genderLower = gender.toLowerCase();\r\n const genderArray = ['male', 'female', 'm', 'f'];\r\n\r\n const genderInArray = genderArray.indexOf(genderLower);\r\n\r\n if (genderInArray === -1) {\r\n return 'Not Specified';\r\n }\r\n\r\n return gender;\r\n};\r\n\r\nconst fetchUserProfileImages = async (userId, accessToken) => {\r\n const userHeadshotUrl = `${API_BASE_URL}/api/User/${userId}/download/HeadShot`;\r\n const companyLogoUrl = `${API_BASE_URL}/api/User/${userId}/download/CompanyLogo`;\r\n\r\n let headshot = null;\r\n let companyLogo = null;\r\n\r\n const userHeadshotResponse = await fetch(userHeadshotUrl, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n Authorization: `bearer ${accessToken}`,\r\n },\r\n });\r\n\r\n const companyLogoResponse = await fetch(companyLogoUrl, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n Authorization: `bearer ${accessToken}`,\r\n },\r\n });\r\n\r\n if (userHeadshotResponse.status === 200) {\r\n const userHeadshotData = await userHeadshotResponse.arrayBuffer();\r\n headshot = `data:image/jpeg;base64,${arrayBufferToBase64(userHeadshotData)}`;\r\n }\r\n\r\n if (companyLogoResponse.status === 200) {\r\n const companyLogoData = await companyLogoResponse.arrayBuffer();\r\n companyLogo = `data:image/jpeg;base64,${arrayBufferToBase64(companyLogoData)}`;\r\n }\r\n\r\n return {\r\n headshot,\r\n companyLogo,\r\n };\r\n};\r\n\r\nconst fetchUserProfile = async (userId, accessToken, initialProfileData) => {\r\n if (userId === 0) {\r\n return initialProfileData;\r\n }\r\n\r\n const profileUrl = `${API_BASE_URL}/api/User/${userId}`;\r\n\r\n const userProfileResponse = await fetch(profileUrl, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n Authorization: `bearer ${accessToken}`,\r\n },\r\n });\r\n\r\n const userProfileImages = await fetchUserProfileImages(userId, accessToken);\r\n\r\n const { profile } = await userProfileResponse.json();\r\n\r\n const gender = checkGenderValue(profile.gender);\r\n\r\n const birthDate = formatDate(profile.birthDate);\r\n\r\n const hasImages = { newImage: { headshot: false, companyLogo: false } };\r\n\r\n const mergedProfile = { ...profile, ...userProfileImages, ...hasImages, gender, birthDate };\r\n\r\n return mergedProfile;\r\n};\r\n\r\nconst updateProfileImage = (state, type, value) => {\r\n return {\r\n ...state,\r\n [type]: value,\r\n };\r\n};\r\n\r\nfunction useGetUserProfile(userId, accessToken) {\r\n const initialProfileData = {\r\n address: { street: '', city: '', state: '', zip: '' },\r\n birthDate: '',\r\n company: '',\r\n companyLogoUrl: '',\r\n email: '',\r\n firstName: '',\r\n gender: '',\r\n headShotUrl: '',\r\n lastName: '',\r\n license: '',\r\n mobilePhone: '',\r\n newsLetter: false,\r\n officePhone: '',\r\n title: '',\r\n userId: 0,\r\n website: '',\r\n };\r\n\r\n const [error, setError] = useState(null);\r\n const [loading, setLoading] = useState(true);\r\n const [profileData, setProfileData] = useState(initialProfileData);\r\n\r\n useEffect(() => {\r\n setLoading(true);\r\n\r\n fetchUserProfile(userId, accessToken, initialProfileData).then(value => setProfileData(value));\r\n\r\n if (error) {\r\n setError(error);\r\n }\r\n\r\n setLoading(false);\r\n }, [userId]);\r\n\r\n return [error, loading, profileData, updateProfileImage];\r\n}\r\n\r\nexport default useGetUserProfile;\r\n","import { useCallback, useState } from 'react';\r\n\r\nfunction useIsOpen(initialIsOpen) {\r\n const [isOpen, setIsOpen] = useState(initialIsOpen);\r\n\r\n const toggleIsOpen = useCallback(() => setIsOpen(!isOpen));\r\n\r\n return [isOpen, toggleIsOpen];\r\n}\r\n\r\nexport default useIsOpen;\r\n","import { useEffect, useState } from 'react';\r\nimport { navigate } from '@reach/router';\r\n\r\nfunction useIsUserLoggedIn(setUserState) {\r\n const [loggedIn, setLoggedIn] = useState(false);\r\n const checkSessionStorage = sessionStorage.getItem('loanForceInsiderPortal');\r\n\r\n useEffect(() => {\r\n if (checkSessionStorage) {\r\n const loggedInUserState = JSON.parse(checkSessionStorage);\r\n\r\n setUserState({ ...loggedInUserState });\r\n\r\n setLoggedIn(true);\r\n } else {\r\n navigate('/login');\r\n }\r\n }, [checkSessionStorage]);\r\n\r\n return [loggedIn];\r\n}\r\n\r\nexport default useIsUserLoggedIn;\r\n","import { useReducer } from 'react';\r\n\r\nfunction loanCacheReducer(state, action) {\r\n const { type, loanNumber, loan } = action;\r\n\r\n switch (type) {\r\n case 'addLoan':\r\n if (!state.loanNumbers.includes(loanNumber)) {\r\n return {\r\n loanNumbers: [...state.loanNumbers, loanNumber],\r\n loans: [...state.loans, loan],\r\n };\r\n } else {\r\n return { ...state };\r\n }\r\n default:\r\n return { ...state };\r\n }\r\n}\r\n\r\nfunction useLoanCache() {\r\n const initialLoanCache = {\r\n loanNumbers: [],\r\n loans: [],\r\n };\r\n\r\n const [state, dispatch] = useReducer(loanCacheReducer, initialLoanCache);\r\n\r\n return [state, dispatch];\r\n}\r\n\r\nexport default useLoanCache;\r\n","// import formatAddress from '../../../../../util/formatAddress';\r\nimport { format, isDate, isValid } from 'date-fns';\r\n\r\n// const getLoanType = type => {\r\n// if (type === 'active') return 'In Process';\r\n\r\n// if (type === 'funded') return 'Funded';\r\n\r\n// return null;\r\n// };\r\n\r\nconst getLoanType = funding => {\r\n const today = format(new Date());\r\n\r\n const fundingDate = new Date(format(funding));\r\n\r\n if (isDate(fundingDate)) {\r\n if (isValid(fundingDate) && funding <= today) {\r\n return 'Funded';\r\n }\r\n }\r\n\r\n return 'In Process';\r\n};\r\n\r\nasync function transformActiveFundedLoan(loanDetailsData) {\r\n // destructure out all needed keys to not have to type loanDetailsData.key everywhere\r\n const {\r\n // borrower keys\r\n borrowerAddress,\r\n borrowerFirstName,\r\n borrowerLastName,\r\n borrowerEmail,\r\n // co-borrower keys\r\n coBorrowerAddress,\r\n coBorrowerFirstName,\r\n coBorrowerLastName,\r\n coBorrowerEmail,\r\n // property address key\r\n subjectPropertyAddress,\r\n // MLO keys\r\n loanOfficerEmail,\r\n loanOfficerNMLS,\r\n loanOfficerName,\r\n loanOfficerPhone,\r\n loanOfficerWebsiteAddress,\r\n // client manager keys\r\n loanProcessorName,\r\n loanProcessorPhone,\r\n loanProcessorEmail,\r\n // loan production assistant keys\r\n loanProductionAssistantName,\r\n loanProductionAssistantPhone,\r\n loanProductionAssistantEmail,\r\n // escrow company keys\r\n escrowCompanyName,\r\n escrowContactName,\r\n escrowPhone,\r\n escrowEmail,\r\n // title company keys\r\n titleCompanyName,\r\n titleContactName,\r\n titlePhone,\r\n titleEmail,\r\n // buyer's attorney keys\r\n buyerAttorneyCompanyName,\r\n buyerAttorneyContactName,\r\n buyerAttorneyPhone,\r\n buyerAttorneyEmail,\r\n // seller's agent keys\r\n sellerAgentCompanyName,\r\n sellerAgentContactName,\r\n sellerAgentPhone,\r\n sellerAgentEmail,\r\n sellerAgentLicenseNumber,\r\n //buyer's agent keys\r\n buyerAgentCompanyName,\r\n buyerAgentContactName,\r\n buyerAgentEmail,\r\n buyerAgentPhone,\r\n buyerAgentLicenseNumber,\r\n // buyer transaction coordinator keys\r\n buyerTransactionCoordinatorName,\r\n buyerTransactionCoordinatorTitle,\r\n buyerTransactionCoordinatorPhone,\r\n buyerTransactionCoordinatorEmail,\r\n // date keys\r\n cdReleasedDate,\r\n titleReportRequestDate,\r\n titleReportReceivedDate,\r\n appraisalOrderedDate,\r\n appraisalReceivedDate,\r\n inspectionDueDate,\r\n inspectionCompletedDate,\r\n expectedSigningDate,\r\n expectedCloseDate,\r\n docsDelieveredDate, // theres a typo in the API are you serious\r\n funding,\r\n // status/progress keys\r\n mloSetupComplete,\r\n submittedToUnderwriting,\r\n conditionallyApproved,\r\n initialUnderwritingComplete,\r\n p1ConditionResolutionComplete,\r\n underwritingIIConditionReviewComplete,\r\n piiFinalCondition,\r\n underwritingIIIClearToClose,\r\n docPrep,\r\n } = loanDetailsData;\r\n\r\n /**\r\n * process the loan into usable format\r\n * contacts that may or may not exist are given an 'exists' property\r\n * don't really like doing it like this but best I can do with the API :shrug:\r\n */\r\n const formattedLoanDetailsData = {\r\n // propertyAddress: await formatAddress(subjectPropertyAddress),\r\n propertyAddress: subjectPropertyAddress,\r\n contacts: {\r\n borrower: {\r\n role: 'Borrower',\r\n exists: borrowerFirstName ? true : false,\r\n name: `${borrowerFirstName} ${borrowerLastName}`,\r\n email: borrowerEmail,\r\n // address: await formatAddress(borrowerAddress),\r\n address: borrowerAddress,\r\n },\r\n coBorrower: {\r\n role: 'Co-Borrower',\r\n exists: coBorrowerFirstName ? true : false,\r\n name: `${coBorrowerFirstName} ${coBorrowerLastName}`,\r\n email: coBorrowerEmail,\r\n // address: coBorrowerFirstName ? await formatAddress(coBorrowerAddress) : null,\r\n address: coBorrowerAddress,\r\n },\r\n mlo: {\r\n role: 'Mortgage Loan Officer',\r\n exists: loanOfficerName ? true : false,\r\n name: loanOfficerName,\r\n phone: loanOfficerPhone,\r\n email: loanOfficerEmail,\r\n nmls: loanOfficerNMLS,\r\n website: loanOfficerWebsiteAddress,\r\n },\r\n clientManager: {\r\n role: 'Client Manager',\r\n exists: loanProcessorName ? true : false,\r\n name: loanProcessorName,\r\n phone: loanProcessorPhone,\r\n email: loanProcessorEmail,\r\n },\r\n loanProductionAssistant: {\r\n role: 'Loan Production Assistant',\r\n exists: loanProductionAssistantName ? true : false,\r\n name: loanProductionAssistantName,\r\n phone: loanProductionAssistantPhone,\r\n email: loanProductionAssistantEmail,\r\n },\r\n escrowCompany: {\r\n role: 'Escrow Company',\r\n exists: escrowCompanyName ? true : false,\r\n companyName: escrowCompanyName,\r\n contactName: escrowContactName,\r\n phone: escrowPhone,\r\n email: escrowEmail,\r\n },\r\n titleCompany: {\r\n role: 'Title Company',\r\n exists: titleCompanyName ? true : false,\r\n companyName: titleCompanyName,\r\n contactName: titleContactName,\r\n phone: titlePhone,\r\n email: titleEmail,\r\n },\r\n buyerAttorney: {\r\n role: \"Buyer's Attorney\",\r\n exists: buyerAttorneyContactName ? true : false,\r\n companyName: buyerAttorneyCompanyName,\r\n contactName: buyerAttorneyContactName,\r\n phone: buyerAttorneyPhone,\r\n email: buyerAttorneyEmail,\r\n },\r\n sellerAgent: {\r\n role: \"Seller's Attorney\",\r\n exists: sellerAgentContactName ? true : false,\r\n companyName: sellerAgentCompanyName,\r\n contactName: sellerAgentContactName,\r\n phone: sellerAgentPhone,\r\n email: sellerAgentEmail,\r\n license: sellerAgentLicenseNumber,\r\n },\r\n buyerAgent: {\r\n role: \"Buyer's Agent\",\r\n companyName: buyerAgentCompanyName,\r\n contactName: buyerAgentContactName,\r\n phone: buyerAgentPhone,\r\n email: buyerAgentEmail,\r\n license: buyerAgentLicenseNumber,\r\n },\r\n buyerTransactionCoordinator: {\r\n role: 'Buyer Transaction Coordinator',\r\n exists: buyerTransactionCoordinatorName ? true : false,\r\n name: buyerTransactionCoordinatorName,\r\n title: buyerTransactionCoordinatorTitle,\r\n phone: buyerTransactionCoordinatorPhone,\r\n email: buyerTransactionCoordinatorEmail,\r\n },\r\n },\r\n statusInfo: {\r\n expectedCloseDate: expectedCloseDate.substr(0, expectedCloseDate.indexOf(' ')),\r\n mloSetupComplete,\r\n submittedToUnderwriting,\r\n conditionallyApproved,\r\n initialUnderwritingComplete,\r\n p1ConditionResolutionComplete,\r\n underwritingIIConditionReviewComplete,\r\n piiFinalCondition,\r\n underwritingIIIClearToClose,\r\n docPrep,\r\n funding,\r\n },\r\n statusInfoMap: {},\r\n keyDates: {\r\n cdReleasedDate,\r\n titleReportRequestDate,\r\n titleReportReceivedDate,\r\n appraisalOrderedDate,\r\n appraisalReceivedDate,\r\n inspectionDueDate,\r\n inspectionCompletedDate,\r\n expectedSigningDate,\r\n expectedCloseDate,\r\n docsDelieveredDate,\r\n funding,\r\n },\r\n keyDatesMap: {},\r\n // loanType: getLoanType(type),\r\n loanType: getLoanType(funding),\r\n };\r\n\r\n return formattedLoanDetailsData;\r\n}\r\n\r\nexport default transformActiveFundedLoan;\r\n","// import functions\r\nimport { formatLoans } from '../../../../../util/processLoans';\r\nimport transformActiveFundedLoan from './transformActiveFundedLoan';\r\n\r\nconst addLoanMaps = loanData => {\r\n const statusInfoMap = new Map(Object.entries(loanData.statusInfo));\r\n const keyDatesMap = new Map(Object.entries(loanData.keyDates));\r\n\r\n return { ...loanData, statusInfoMap, keyDatesMap };\r\n};\r\n\r\nconst categorizeLoan = loan => {\r\n const formattedLoan = formatLoans([loan]);\r\n\r\n const loanCategory = Object.keys(formattedLoan).map(key => {\r\n if (formattedLoan[key].length > 0) {\r\n const categoryLoanIsIn = `${key.charAt(0).toUpperCase()}${key.slice(1, key.length)}`;\r\n if (categoryLoanIsIn === 'Active') {\r\n const inProcessCategory = 'In Process';\r\n return inProcessCategory;\r\n }\r\n return categoryLoanIsIn;\r\n } else {\r\n return '';\r\n }\r\n });\r\n\r\n // remove empty categories that loan does not fall into\r\n const filteredLoanCategory = loanCategory.filter(el => el);\r\n\r\n return filteredLoanCategory[0];\r\n};\r\n\r\nconst addLoanType = (loanData, formattedLoanData) => {\r\n if (formattedLoanData.loanType.length > 0) {\r\n return formattedLoanData;\r\n }\r\n\r\n return { ...formattedLoanData, loanType: categorizeLoan(loanData) };\r\n};\r\n\r\nasync function processActiveFundedLoan(loanDetailsData) {\r\n const formattedLoanDetailsData = await transformActiveFundedLoan(loanDetailsData);\r\n\r\n const formattedLoanDetailsDataWithType = addLoanType(loanDetailsData, formattedLoanDetailsData);\r\n\r\n const formattedLoanDetailsDataWithTypeAndMaps = addLoanMaps(formattedLoanDetailsDataWithType);\r\n\r\n return formattedLoanDetailsDataWithTypeAndMaps;\r\n}\r\n\r\nexport default processActiveFundedLoan;\r\n","import { format } from 'date-fns';\r\n// import formatAddress from '../../../../../util/formatAddress';\r\n\r\nconst transformAssessmentString = (assessmentType, assessmentString) => {\r\n switch (assessmentType) {\r\n case 'ApplicantsCreditReportReviewed':\r\n if (assessmentString === 'Credit Report Not Reviewed') return '';\r\n return assessmentString;\r\n case 'AssetsReviewed':\r\n if (assessmentString === 'Assets Not Reviewed') return '';\r\n return assessmentString;\r\n case 'FundsToCloseReviewed':\r\n if (assessmentString === 'Funds to Close Not Reviewed') return '';\r\n return assessmentString;\r\n default:\r\n return assessmentString;\r\n }\r\n};\r\n\r\nconst transformOccupancyType = occupancyType => {\r\n switch (occupancyType) {\r\n case 'PrimaryResidence':\r\n return 'Primary Residence';\r\n case 'SecondHome':\r\n return 'Second Home';\r\n case 'Investor':\r\n return 'Investor';\r\n default:\r\n return 'Unknown';\r\n }\r\n};\r\n\r\nconst determineLoanBrand = email => {\r\n const emailSubstr = email.substr(email.indexOf('@') + 1, email.length);\r\n\r\n switch (emailSubstr) {\r\n case 'onetrusthomeloans.com':\r\n return 'onetrust';\r\n case 'calconmutualmortgage.com':\r\n return 'calcon';\r\n case 'tabormortgage.com':\r\n return 'tabor';\r\n default:\r\n return 'calcon';\r\n }\r\n};\r\n\r\nconst getLoanType = (prequalified, preapproved) => {\r\n if (prequalified === 'True' && preapproved === 'False') {\r\n return 'Pre-Qualified';\r\n }\r\n\r\n return 'Pre-Approved';\r\n};\r\n\r\nconst sortLoanLetters = letters => {\r\n const lettersWithFormattedDates = letters.map(letter => {\r\n const letterWithDate = { ...letter, sortingDate: new Date(format(letter.createdOn)) };\r\n return letterWithDate;\r\n });\r\n\r\n const sortedLetters = lettersWithFormattedDates.sort((a, b) => {\r\n return b.sortingDate - a.sortingDate;\r\n });\r\n\r\n return sortedLetters;\r\n};\r\n\r\nasync function transformPrequalifiedPreapprovedLoan(loanDetailsData) {\r\n // destructure out all needed keys to not have to type loanDetailsData.key everywhere\r\n const {\r\n // borrower keys\r\n borrowerAddress,\r\n borrowerFirstName,\r\n borrowerLastName,\r\n borrowerEmail,\r\n // co-borrower keys\r\n coBorrowerAddress,\r\n coBorrowerFirstName,\r\n coBorrowerLastName,\r\n coBorrowerEmail,\r\n // property address key\r\n subjectPropertyAddress,\r\n // MLO keys\r\n loanOfficerEmail,\r\n loanOfficerNMLS,\r\n loanOfficerName,\r\n loanOfficerPhone,\r\n loanOfficerWebsiteAddress,\r\n // loan information keys\r\n purchasePrice,\r\n loanAmount,\r\n loanToValue,\r\n loanTerm,\r\n propertyType,\r\n occupancyType,\r\n propertyState,\r\n preQualificationDate,\r\n loanType, // corresponds with loanInformation.loanProgram - loanProgram field from API is different\r\n prequalExpirationDate,\r\n // use to get loan type (not pre-qualified or pre-approved, not same as loanType above)\r\n preapproved,\r\n prequalified,\r\n // permission levels\r\n level1Permissions,\r\n level2Permissions,\r\n // min/max values for new letters\r\n prequalMaxLTV,\r\n prequalMaxLoanAmount,\r\n prequalMinLoanAmount,\r\n prequalMaxPurchasePrice,\r\n prequalMinPurchasePrice,\r\n // loan letters array\r\n loanLetters,\r\n // misc keys needed for loan letter\r\n loanNumber,\r\n loanGUID,\r\n incomeDocumentsReviewed,\r\n applicantsCreditReportReviewed,\r\n satisfactoryApproveEligible,\r\n assetsReviewed,\r\n fundsToCloseReviewed,\r\n additionalContingency_09,\r\n additionalContingency_10,\r\n additionalContingency_11,\r\n loBranchAddress,\r\n loBranchCity,\r\n loBranchState,\r\n loBranchZip,\r\n loanProgram,\r\n loanOfficerTitle,\r\n propertyCity,\r\n propertyZip,\r\n lenderDBAName,\r\n } = loanDetailsData;\r\n\r\n const formattedLoanDetailsData = {\r\n // propertyAddress: await formatAddress(subjectPropertyAddress),\r\n propertyAddress: subjectPropertyAddress,\r\n contacts: {\r\n borrower: {\r\n role: 'Borrower',\r\n exists: borrowerFirstName ? true : false,\r\n name: `${borrowerFirstName} ${borrowerLastName}`,\r\n email: borrowerEmail,\r\n // address: await formatAddress(borrowerAddress),\r\n address: borrowerAddress,\r\n },\r\n coBorrower: {\r\n role: 'Co-Borrower',\r\n exists: coBorrowerFirstName ? true : false,\r\n name: `${coBorrowerFirstName} ${coBorrowerLastName}`,\r\n email: coBorrowerEmail,\r\n // address: coBorrowerFirstName ? await formatAddress(coBorrowerAddress) : null,\r\n address: coBorrowerAddress,\r\n },\r\n mlo: {\r\n role: 'Mortgage Loan Officer',\r\n exists: loanOfficerName ? true : false,\r\n name: loanOfficerName,\r\n phone: loanOfficerPhone,\r\n email: loanOfficerEmail,\r\n nmls: loanOfficerNMLS,\r\n website: loanOfficerWebsiteAddress,\r\n },\r\n },\r\n loanType: getLoanType(prequalified, preapproved),\r\n loanInformation: {\r\n purchasePrice: {\r\n label: 'Purchase Price',\r\n value: purchasePrice,\r\n display: `$${parseInt(purchasePrice).toLocaleString()}`,\r\n },\r\n loanAmount: {\r\n label: 'Loan Amount',\r\n value: loanAmount,\r\n display: `$${parseInt(loanAmount).toLocaleString()}`,\r\n },\r\n loanToValue: {\r\n label: 'Loan to Value',\r\n value: loanToValue,\r\n display: `${loanToValue}%`,\r\n },\r\n loanTerm: {\r\n label: 'Loan Term',\r\n value: loanTerm,\r\n display: `${(loanTerm / 12).toFixed(0)} Years`,\r\n },\r\n propertyType: {\r\n label: 'Property Type',\r\n value: propertyType,\r\n display: propertyType,\r\n },\r\n occupancyType: {\r\n label: 'Occupancy Type',\r\n value: occupancyType,\r\n display: transformOccupancyType(occupancyType),\r\n },\r\n propertyState: {\r\n label: 'Subject Property State',\r\n value: propertyState,\r\n display: propertyState,\r\n },\r\n preQualificationDate: {\r\n label: 'Pre-Qualification Date',\r\n value: preQualificationDate,\r\n display: format(preQualificationDate, 'MM/DD/YYYY'),\r\n },\r\n loanProgram: {\r\n label: 'Loan Program',\r\n value: loanType,\r\n display: loanType,\r\n },\r\n prequalExpirationDate: {\r\n label: 'Expiration Date',\r\n value: prequalExpirationDate,\r\n display: format(prequalExpirationDate, 'MM/DD/YYYY'),\r\n },\r\n },\r\n loanLetters: sortLoanLetters(loanLetters),\r\n letterInformation: {\r\n // loan info\r\n LoanNumber: loanNumber,\r\n LoanGUID: loanGUID,\r\n LoanBrand: determineLoanBrand(loanOfficerEmail),\r\n // letter type\r\n LetterType: '',\r\n // borrower info\r\n borrowerEmail,\r\n borrowerFirstName,\r\n borrowerLastName,\r\n // lo info\r\n LoanOfficerName: loanOfficerName,\r\n LoanOfficerPhone: loanOfficerPhone,\r\n LoanOfficerEmail: loanOfficerEmail,\r\n LoanOfficerNMLS: loanOfficerNMLS,\r\n // property info\r\n PropertyCity: propertyCity,\r\n PropertyState: propertyState,\r\n PurchasePrice: `$${parseInt(purchasePrice).toLocaleString()}`,\r\n LoanAmount: `$${parseInt(loanAmount).toLocaleString()}`,\r\n PropertyType: propertyType,\r\n OccupancyType: transformOccupancyType(occupancyType),\r\n LoanProgram: loanProgram,\r\n PrequalExpirationDate: format(prequalExpirationDate, 'MM/DD/YYYY'),\r\n IncomeDocumentsReviewed: incomeDocumentsReviewed,\r\n ApplicantsCreditReportReviewed: transformAssessmentString(\r\n 'ApplicantsCreditReportReviewed',\r\n applicantsCreditReportReviewed\r\n ),\r\n SatisfactoryApproveEligible: satisfactoryApproveEligible,\r\n AssetsReviewed: transformAssessmentString('AssetsReviewed', assetsReviewed),\r\n FundsToCloseReviewed: transformAssessmentString('FundsToCloseReviewed', fundsToCloseReviewed),\r\n AdditionalContingency_09: additionalContingency_09,\r\n // AdditionalContingency_09: 'this is an additional contingency',\r\n AdditionalContingency_10: additionalContingency_10,\r\n AdditionalContingency_11: additionalContingency_11,\r\n LOBranchAddress: loBranchAddress,\r\n LOBranchCity: loBranchCity,\r\n LOBranchState: loBranchState,\r\n LOBranchZip: loBranchZip,\r\n LoanType: loanType,\r\n LoanOfficerTitle: loanOfficerTitle,\r\n PropertyZip: propertyZip,\r\n lenderDBAName,\r\n },\r\n permissions: {\r\n levelOne: level1Permissions,\r\n levelTwo: level2Permissions,\r\n },\r\n /**\r\n * in processLoans.js loans without the five constraints fields are filtered out so this isn't really necessary\r\n * neverthless this serves to set 'default values' for the constraints just incase, was set before filtering\r\n * keeping here if they aren't filtered out in the future\r\n */\r\n constraints: {\r\n loanAmount: {\r\n min: prequalMinLoanAmount ? parseInt(prequalMinLoanAmount) : parseInt(loanAmount),\r\n max: prequalMaxLoanAmount ? parseInt(prequalMaxLoanAmount) : parseInt(loanAmount),\r\n },\r\n purchasePrice: {\r\n min: prequalMaxPurchasePrice ? parseInt(prequalMinPurchasePrice) : parseInt(purchasePrice),\r\n // min: parseInt(prequalMaxLoanAmount) / parseFloat(prequalMaxLTV / 100),\r\n max: prequalMaxPurchasePrice ? parseInt(prequalMaxPurchasePrice) : parseInt(purchasePrice),\r\n },\r\n ltv: prequalMaxLTV ? parseFloat(prequalMaxLTV / 100) : 0.8,\r\n },\r\n };\r\n\r\n const formattedLoanDetailsDataWithAddressClipped = {\r\n ...formattedLoanDetailsData,\r\n propertyAddress: formattedLoanDetailsData.propertyAddress.replace('
', ' ').replace(/[0-9]/g, ''),\r\n };\r\n\r\n return formattedLoanDetailsDataWithAddressClipped;\r\n}\r\n\r\nexport default transformPrequalifiedPreapprovedLoan;\r\n","// import functions\r\nimport transformPrequalifiedPreapprovedLoan from './transformPrequalifiedPreapprovedLoan';\r\n\r\nasync function processPrequalifiedPreapprovedLoan(loanDetailsData) {\r\n const formattedLoanDetailsData = await transformPrequalifiedPreapprovedLoan(loanDetailsData);\r\n\r\n return formattedLoanDetailsData;\r\n}\r\n\r\nexport default processPrequalifiedPreapprovedLoan;\r\n","// import config\r\nimport { API_BASE_URL } from '../../../../util/config';\r\n\r\n// import loan processing\r\nimport processActiveFundedLoan from './processActiveFundedLoan';\r\nimport processPrequalifiedPreapprovedLoan from './processPrequalifiedPreapprovedLoan';\r\n\r\nasync function fetchIndividualLoanDetails(userState, loanNumber) {\r\n if (userState.userId === 0) {\r\n return;\r\n }\r\n\r\n const loanDetailsUrl = `${API_BASE_URL}/api/Loan/${userState.userId}/${loanNumber}`;\r\n\r\n const loanDetails = await fetch(loanDetailsUrl, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n Authorization: `bearer ${userState.accessToken}`,\r\n },\r\n });\r\n\r\n const loanDetailsData = await loanDetails.json();\r\n\r\n if (loanDetailsData.preapproved === 'False' && loanDetailsData.prequalified === 'False') {\r\n const loan = processActiveFundedLoan(loanDetailsData);\r\n return loan;\r\n } else if (loanDetailsData.preapproved === 'True' || loanDetailsData.prequalified === 'True') {\r\n const loan = processPrequalifiedPreapprovedLoan(loanDetailsData);\r\n return loan;\r\n } else {\r\n // fallback - in process loans may not have any value for preapproved and/or prequalified field\r\n const loan = processActiveFundedLoan(loanDetailsData);\r\n return loan;\r\n }\r\n}\r\n\r\nconst getIndividualLoanDetails = async (userState, loanNumber, loanCacheDispatch) => {\r\n await fetchIndividualLoanDetails(userState, loanNumber).then(value =>\r\n loanCacheDispatch({ type: 'addLoan', loanNumber, loan: value })\r\n );\r\n};\r\n\r\nexport default getIndividualLoanDetails;\r\n","import { navigate } from '@reach/router';\r\n\r\nfunction logoutUser() {\r\n sessionStorage.removeItem('loanForceInsiderPortal');\r\n\r\n navigate('/login');\r\n}\r\n\r\nexport default logoutUser;\r\n","import React, { createContext, useContext, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\n// import root context\r\nimport { RootContext } from './RootContext';\r\n\r\n// import hooks\r\nimport { useGetUserLoans, useGetUserProfile, useIsUserLoggedIn, useLoanCache } from '../../hooks';\r\n\r\n// import functions\r\nimport { getAndCacheIndividualLoanDetails } from '../App/functions';\r\n\r\nexport const LoggedInContext = createContext();\r\n\r\nfunction InsiderLoggedInContext({ children }) {\r\n const {\r\n state: { userState },\r\n functions: { setUserState },\r\n } = useContext(RootContext);\r\n\r\n const [isUserLoggedIn] = useIsUserLoggedIn(setUserState);\r\n\r\n const [profileError, profileLoading, profileData] = useGetUserProfile(userState.userId, userState.accessToken);\r\n const [loansError, loansLoading, rawLoans, processedLoans] = useGetUserLoans(userState.userId, userState.accessToken);\r\n const [loanCache, loanCacheDispatch] = useLoanCache();\r\n\r\n /**\r\n * state for preserving changed profile images when Profile component is unmounted\r\n * maybe extract this into a custom hook idk\r\n */\r\n const [profileImagesUpdated, setProfileImagesUpdated] = useState({\r\n headshot: {\r\n updated: false,\r\n value: '',\r\n },\r\n companyLogo: {\r\n updated: false,\r\n value: '',\r\n },\r\n });\r\n\r\n // individual loan detail hooks\r\n const handleIndividualLoan = loanNumber => {\r\n const isLoanInCache = loanCache.loanNumbers.includes(loanNumber);\r\n if (!isLoanInCache) {\r\n getAndCacheIndividualLoanDetails(userState, loanNumber, loanCacheDispatch);\r\n }\r\n };\r\n\r\n const loggedInContextValues = {\r\n state: {\r\n userState,\r\n profileData,\r\n profileImagesUpdated,\r\n rawLoans,\r\n processedLoans,\r\n loanCacheList: loanCache.loanNumbers,\r\n loanCache: loanCache.loans,\r\n },\r\n errors: {\r\n profileError,\r\n loansError,\r\n },\r\n loading: {\r\n profileLoading,\r\n loansLoading,\r\n },\r\n functions: {\r\n handleIndividualLoan,\r\n loanCacheDispatch,\r\n setProfileImagesUpdated,\r\n },\r\n };\r\n\r\n if (!isUserLoggedIn) return null;\r\n\r\n return {children};\r\n}\r\n\r\nexport default InsiderLoggedInContext;\r\n\r\n/**\r\n * receives one child element prop\r\n */\r\nInsiderLoggedInContext.propTypes = {\r\n children: PropTypes.element.isRequired,\r\n};\r\n","import { useCallback, useState } from 'react';\r\n\r\nfunction useModal(attr, content) {\r\n const [showModal, setShowModal] = useState(false);\r\n const [modalAttr, setModalAttr] = useState({\r\n data: null,\r\n showDownloadButton: false,\r\n fileName: '',\r\n display: 'none',\r\n overflow: '',\r\n position: '',\r\n height: 'auto',\r\n width: '100%',\r\n });\r\n\r\n const toggleModal = useCallback((data, showDownloadButton, fileName) => {\r\n if (!showModal) {\r\n setShowModal(true);\r\n setModalAttr({ ...modalAttr, display: 'flex', data, showDownloadButton, fileName });\r\n\r\n return;\r\n }\r\n\r\n setShowModal(false);\r\n setModalAttr({ ...modalAttr, display: 'none' });\r\n\r\n return;\r\n });\r\n\r\n return [modalAttr, toggleModal];\r\n}\r\n\r\nexport default useModal;\r\n","import { useContext } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\n// import context\r\nimport { LoggedInContext } from '../Context/LoggedInContext';\r\n\r\nconst AppLoader = props => {\r\n const {\r\n loading: { loansLoading, profileLoading },\r\n } = useContext(LoggedInContext);\r\n\r\n if (loansLoading || profileLoading) return null;\r\n\r\n return props.children;\r\n};\r\n\r\nexport default AppLoader;\r\n\r\n/**\r\n * receives an array of child components\r\n */\r\nAppLoader.propTypes = {\r\n children: PropTypes.array.isRequired,\r\n};\r\n","import { useEffect, useState } from 'react';\r\n\r\nfunction extractLoanPartners(loans) {\r\n const allLoanPartners = loans.map(loan => {\r\n return {\r\n name: loan.loanOfficerName,\r\n phone: loan.loanOfficerPhone,\r\n };\r\n });\r\n\r\n const removeLoanPartnerDuplicates = (arr, prop) => {\r\n const propAlreadyExists = new Set();\r\n\r\n return arr.filter(el => !propAlreadyExists.has(el[prop]) && propAlreadyExists.add(el[prop]));\r\n };\r\n\r\n return removeLoanPartnerDuplicates(allLoanPartners, 'name');\r\n}\r\n\r\nfunction useGetLoanPartners(rawLoans) {\r\n const [loanPartners, setLoanPartners] = useState([]);\r\n\r\n useEffect(() => {\r\n const extractedLoanPartners = extractLoanPartners(rawLoans, loanPartners);\r\n setLoanPartners(extractedLoanPartners);\r\n }, [rawLoans.length]);\r\n\r\n return loanPartners;\r\n}\r\n\r\nexport default useGetLoanPartners;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from 'react';\n\nvar _ref =\n/*#__PURE__*/\nReact.createElement(\"title\", null, \"menu-icon\");\n\nvar _ref2 =\n/*#__PURE__*/\nReact.createElement(\"g\", null, React.createElement(\"rect\", {\n fill: \"#99c24d\",\n width: 45.41,\n height: 40.22,\n rx: 3.64\n}), React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M36.42,12.11a1.15,1.15,0,0,1-1.15,1.14H10.14A1.15,1.15,0,0,1,9,12.11V9.83a1.16,1.16,0,0,1,1.15-1.15H35.27a1.16,1.16,0,0,1,1.15,1.15Zm0,9.14a1.16,1.16,0,0,1-1.15,1.15H10.14A1.16,1.16,0,0,1,9,21.25V19a1.16,1.16,0,0,1,1.15-1.15H35.27A1.16,1.16,0,0,1,36.42,19Zm0,9.14a1.16,1.16,0,0,1-1.15,1.15H10.14A1.16,1.16,0,0,1,9,30.39V28.11A1.15,1.15,0,0,1,10.14,27H35.27a1.15,1.15,0,0,1,1.15,1.14Z\"\n}));\n\nvar SvgComponent = function SvgComponent(props) {\n return React.createElement(\"svg\", _extends({\n width: 45.41,\n height: 40.22,\n viewBox: \"0 0 45.41 40.22\"\n }, props), _ref, _ref2);\n};\n\nexport default __webpack_public_path__ + \"static/media/menu-icon.91b47b2d.svg\";\nexport { SvgComponent as ReactComponent };","import styled from 'styled-components/macro';\r\n\r\n// import theme helpers\r\nimport { getBreakpoint } from '../../../../util/theme';\r\n\r\nconst DrawerContent = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n align-items: flex-start;\r\n\r\n padding: 5px 10px;\r\n\r\n @media (min-width: ${getBreakpoint('lg')}) {\r\n padding: 15px 10px;\r\n }\r\n\r\n svg,\r\n img {\r\n height: 40px;\r\n width: 40px;\r\n\r\n margin: 10px 0;\r\n\r\n cursor: pointer;\r\n\r\n &:hover {\r\n filter: drop-shadow(2px 2px 2px rgba(0, 0, 0, 0.25));\r\n }\r\n\r\n &.menu {\r\n margin: 0;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n margin: 15px 0 35px 0;\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport default DrawerContent;\r\n","import styled from 'styled-components/macro';\r\n\r\nconst DrawerItem = styled.div`\r\n display: flex;\r\n align-items: center;\r\n\r\n width: 100%;\r\n`;\r\n\r\nexport default DrawerItem;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import theme helpers\r\nimport { getColor, getFontWeight } from '../../../../util/theme';\r\n\r\nconst DrawerItemList = styled.ul`\r\n list-style-type: none;\r\n\r\n padding: 0 15px 0 50px;\r\n\r\n width: 280px;\r\n\r\n li {\r\n color: ${getColor('white')};\r\n font-size: 1.3rem;\r\n\r\n padding: 10px 0;\r\n\r\n border-bottom: 1px solid ${getColor('white')};\r\n\r\n &.interactive {\r\n cursor: pointer;\r\n\r\n &:hover {\r\n color: ${getColor('accentGreen')};\r\n }\r\n }\r\n\r\n &:first-child {\r\n padding: 0 0 10px 0;\r\n }\r\n\r\n a {\r\n color: ${getColor('white')};\r\n\r\n &:hover {\r\n color: ${getColor('accentGreen')};\r\n }\r\n }\r\n\r\n span {\r\n display: block;\r\n\r\n &:first-of-type {\r\n font-weight: ${getFontWeight('medium')};\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport default DrawerItemList;\r\n","import styled from 'styled-components/macro';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst DrawerItemListWrapper = styled.div`\r\n /* if transition not desired just use display */\r\n /* display: ${props => (props.isOpen && props.expanded ? 'block' : 'none')}; */\r\n\r\n /* various other ways of a slide-up transition if desired\r\n * these don't rely on JS to provide height but have various downsides!\r\n */\r\n /* height: ${props => (props.isOpen && props.expanded ? '100%' : 0)};\r\n max-height: ${props => (props.isOpen && props.expanded ? '1000px' : 0)};\r\n transform-origin: top;\r\n transform: ${props => (props.isOpen && props.expanded ? 'scaleY(1)' : 'scaleY(0)')}; */\r\n\r\n /* this one uses a ref to get the height at render time */\r\n height: ${props => (props.isOpen && props.expanded ? `${props.refHeight + 20}px` : 0)};\r\n width: 100%;\r\n\r\n overflow: hidden;\r\n\r\n transition: all 0.25s;\r\n\r\n &.profile {\r\n height: 65px;\r\n\r\n li {\r\n border-bottom: none;\r\n }\r\n }\r\n`;\r\n\r\nexport default DrawerItemListWrapper;\r\n\r\nDrawerItemListWrapper.propTypes = {\r\n isOpen: PropTypes.bool.isRequired,\r\n expanded: PropTypes.bool.isRequired,\r\n refHeight: PropTypes.number.isRequired,\r\n};\r\n\r\n/**\r\n * set default props here bc initial render returns undefined for isOpen and refHeight\r\n * guessing that the styled component is rendered before state & ref values are initialized\r\n */\r\nDrawerItemListWrapper.defaultProps = {\r\n isOpen: false,\r\n refHeight: 0,\r\n};\r\n","import styled from 'styled-components/macro';\r\n\r\n// import theme helpers\r\nimport { getColor } from '../../../../util/theme';\r\n\r\nconst DrawerItemTitle = styled.div`\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n\r\n width: 100%;\r\n\r\n cursor: pointer;\r\n\r\n &:hover {\r\n span {\r\n color: ${getColor('accentGreen')};\r\n }\r\n\r\n svg {\r\n polygon,\r\n rect {\r\n fill: ${getColor('accentGreen')};\r\n }\r\n }\r\n }\r\n\r\n span {\r\n color: ${getColor('white')};\r\n font-size: 1.8rem;\r\n line-height: 1;\r\n\r\n padding: 1rem;\r\n\r\n overflow: hidden;\r\n\r\n white-space: nowrap;\r\n\r\n &.secondary {\r\n margin: 0 0 0 40px;\r\n }\r\n }\r\n\r\n svg {\r\n height: 10px;\r\n\r\n margin: 0;\r\n\r\n transition: all 0.5s;\r\n\r\n &.isClosed {\r\n transform: rotate(-90deg);\r\n }\r\n }\r\n`;\r\n\r\nexport default DrawerItemTitle;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import theme helpers\r\nimport { getBreakpoint, getColor } from '../../../../util/theme';\r\n\r\nconst DrawerWrapper = styled.div`\r\n background-color: ${props => (props.expanded ? getColor('primaryBlue') : getColor('white'))};\r\n\r\n position: fixed;\r\n left: 0;\r\n top: 0;\r\n\r\n height: ${props => (props.expanded ? '100%' : '50px')};\r\n width: ${props => props.width};\r\n\r\n padding: 0 0 25px 0;\r\n\r\n transition: all 0.3s ease-in-out;\r\n transform: translate3d(0, 0, 0);\r\n\r\n overflow-x: hidden;\r\n overflow-y: ${props => (props.expanded ? 'auto' : 'hidden')};\r\n\r\n z-index: 9999;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n background-color: ${getColor('primaryBlue')};\r\n\r\n height: 100%;\r\n\r\n overflow-y: auto;\r\n }\r\n`;\r\n\r\nexport default DrawerWrapper;\r\n","import React from 'react';\r\nimport { Link } from '@reach/router';\r\nimport PropTypes from 'prop-types';\r\n\r\n// import styled components\r\nimport { DrawerItem, DrawerItemTitle } from './styled';\r\n\r\n// import icon\r\nimport homeIcon from '../../../assets/icons/home-icon.svg';\r\n\r\nconst DrawerHome = ({ expanded }) => (\r\n \r\n \r\n \"Go\r\n \r\n Home\r\n \r\n \r\n \r\n);\r\n\r\nexport default DrawerHome;\r\n\r\nDrawerHome.propTypes = {\r\n expanded: PropTypes.bool.isRequired,\r\n};\r\n","function setIsOpenAndSetExpanded(isOpen, setIsOpen, expanded, toggleDrawer) {\r\n if (!isOpen) {\r\n setIsOpen();\r\n }\r\n\r\n toggleDrawer();\r\n}\r\n\r\nexport default setIsOpenAndSetExpanded;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from 'react';\n\nvar _ref =\n/*#__PURE__*/\nReact.createElement(\"title\", null, \"drawer-arrow\");\n\nvar _ref2 =\n/*#__PURE__*/\nReact.createElement(\"g\", null, React.createElement(\"polygon\", {\n fill: \"#e6e6e6\",\n points: \"6.11 10.35 12.21 2.53 0 2.53 6.11 10.35\"\n}), React.createElement(\"rect\", {\n fill: \"#e6e6e6\",\n width: 12.31,\n height: 1.2\n}));\n\nvar SvgComponent = function SvgComponent(props) {\n return React.createElement(\"svg\", _extends({\n width: 12.31,\n height: 10.34,\n viewBox: \"0 0 12.31 10.34\"\n }, props), _ref, _ref2);\n};\n\nexport default __webpack_public_path__ + \"static/media/drawer-arrow.6d970077.svg\";\nexport { SvgComponent as ReactComponent };","import React, { useRef } from 'react';\r\nimport { Link } from '@reach/router';\r\nimport PropTypes from 'prop-types';\r\nimport ReactHtmlParser from 'react-html-parser';\r\n\r\n// import hooks & functions\r\nimport { useIsOpen } from '../../../hooks';\r\nimport { setIsOpenAndSetExpanded } from './functions';\r\n\r\n// import styled components\r\nimport { DrawerItem, DrawerItemTitle, DrawerItemListWrapper, DrawerItemList } from './styled';\r\n\r\n// import svg\r\nimport loansIcon from '../../../assets/icons/loans-icon.svg';\r\nimport { ReactComponent as DrawerArrow } from '../../../assets/ui/drawer-arrow.svg';\r\n\r\nfunction DrawerLoans({\r\n expanded,\r\n toggleDrawer,\r\n handleIndividualLoan,\r\n processedLoans: { active = [], prequalified = [], preapproved = [] },\r\n}) {\r\n const loansListRef = useRef(null);\r\n const [isOpen, setIsOpen] = useIsOpen(true);\r\n return (\r\n <>\r\n \r\n setIsOpenAndSetExpanded(isOpen, setIsOpen, expanded, toggleDrawer)}\r\n />\r\n setIsOpen()}>\r\n Loans\r\n \r\n \r\n \r\n \r\n
\r\n {active.length > 0 ? (\r\n <>\r\n \r\n In Process Loans\r\n \r\n \r\n {active.map(({ borrower, id, propertyAddr, category: type }) => {\r\n return (\r\n
  • handleIndividualLoan(id, type)}>\r\n \r\n {borrower}\r\n {ReactHtmlParser(propertyAddr)}\r\n \r\n
  • \r\n );\r\n })}\r\n
    \r\n \r\n ) : null}\r\n\r\n {prequalified.length > 0 ? (\r\n <>\r\n \r\n Pre-Qualified Loans\r\n \r\n \r\n {prequalified.map(({ borrower, id, propertyAddr, category: type }) => {\r\n return (\r\n
  • handleIndividualLoan(id, type)}>\r\n \r\n {borrower}\r\n {ReactHtmlParser(propertyAddr)}\r\n \r\n
  • \r\n );\r\n })}\r\n
    \r\n \r\n ) : null}\r\n\r\n {preapproved.length > 0 ? (\r\n <>\r\n \r\n Pre-Approved Loans\r\n \r\n \r\n {preapproved.map(({ borrower, id, propertyAddr, category: type }) => {\r\n return (\r\n
  • handleIndividualLoan(id, type)}>\r\n \r\n {borrower}\r\n {ReactHtmlParser(propertyAddr)}\r\n \r\n
  • \r\n );\r\n })}\r\n
    \r\n \r\n ) : null}\r\n
    \r\n \r\n \r\n );\r\n}\r\n\r\nexport default DrawerLoans;\r\n\r\nDrawerLoans.propTypes = {\r\n expanded: PropTypes.bool.isRequired,\r\n toggleDrawer: PropTypes.func.isRequired,\r\n handleIndividualLoan: PropTypes.func.isRequired,\r\n processedLoans: PropTypes.object.isRequired,\r\n};\r\n","import React, { useRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\n// import hooks & functions\r\nimport { useIsOpen } from '../../../hooks';\r\nimport { setIsOpenAndSetExpanded } from './functions';\r\n\r\n// import styled components\r\nimport { DrawerItem, DrawerItemTitle, DrawerItemListWrapper, DrawerItemList } from './styled';\r\n\r\n// import svg\r\nimport partnerIcon from '../../../assets/icons/partner-icon.svg';\r\nimport { ReactComponent as DrawerArrow } from '../../../assets/ui/drawer-arrow.svg';\r\n\r\nfunction DrawerPartners({ expanded, toggleDrawer, loanPartners }) {\r\n const partnersListRef = useRef(null);\r\n const [isOpen, setIsOpen] = useIsOpen(true);\r\n\r\n return (\r\n <>\r\n \r\n setIsOpenAndSetExpanded(isOpen, setIsOpen, expanded, toggleDrawer)}\r\n />\r\n setIsOpen()}>\r\n Loan Partners\r\n \r\n \r\n \r\n \r\n {loanPartners ? (\r\n \r\n {loanPartners.map(({ name, phone }) => {\r\n if (!name) return null;\r\n return (\r\n
  • \r\n {name}\r\n {phone}\r\n
  • \r\n );\r\n })}\r\n
    \r\n ) : null}\r\n \r\n \r\n );\r\n}\r\n\r\nexport default DrawerPartners;\r\n\r\nDrawerPartners.propTypes = {\r\n expanded: PropTypes.bool.isRequired,\r\n toggleDrawer: PropTypes.func.isRequired,\r\n loanPartners: PropTypes.array.isRequired,\r\n};\r\n","import React from 'react';\r\nimport { Link } from '@reach/router';\r\nimport PropTypes from 'prop-types';\r\n\r\n// import functions\r\nimport { logoutUser } from '../functions';\r\n\r\n// import styled components\r\nimport { DrawerItem, DrawerItemTitle, DrawerItemListWrapper, DrawerItemList } from './styled';\r\n\r\n// import icon\r\nimport profileIcon from '../../../assets/icons/drawer-profile-icon.svg';\r\n\r\nconst DrawerProfile = ({ expanded }) => (\r\n <>\r\n \r\n \"Loans\"\r\n \r\n Profile\r\n \r\n \r\n \r\n \r\n
  • \r\n View & Edit Profile\r\n
  • \r\n
  • logoutUser()} onKeyPress={() => logoutUser()} tabIndex=\"0\">\r\n Logout\r\n
  • \r\n
    \r\n
    \r\n \r\n);\r\n\r\nexport default DrawerProfile;\r\n\r\nDrawerProfile.propTypes = {\r\n expanded: PropTypes.bool.isRequired,\r\n};\r\n","import React, { useContext } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\n// import context\r\nimport { LoggedInContext } from '../../Context/LoggedInContext';\r\n\r\n// import hooks\r\nimport { useGetLoanPartners } from './hooks';\r\n\r\n// import icon svg\r\nimport { ReactComponent as MenuIcon } from '../../../assets/icons/menu-icon.svg';\r\n\r\n// import menu components\r\nimport DrawerHome from './DrawerHome';\r\nimport DrawerLoans from './DrawerLoans';\r\nimport DrawerPartners from './DrawerPartners';\r\nimport DrawerProfile from './DrawerProfile';\r\n\r\n// import styled components\r\nimport { DrawerWrapper, DrawerContent } from './styled';\r\n\r\nfunction Drawer({ expanded, setExpanded, drawerWrapperRef }) {\r\n const {\r\n functions: { handleIndividualLoan },\r\n state: { rawLoans, processedLoans },\r\n } = useContext(LoggedInContext);\r\n\r\n const loanPartners = useGetLoanPartners(rawLoans);\r\n\r\n /**\r\n * this does the same thing as closeMenu() in App, could prolly pass that as prop but w/e\r\n */\r\n const toggleDrawer = () => {\r\n drawerWrapperRef.current.scrollTop = 0;\r\n setExpanded(!expanded);\r\n };\r\n\r\n /**\r\n * currently state from context for Drawer sub-component is all in parent Drawer\r\n * maybe change to have each sub-component handle their relevant state directly idk\r\n */\r\n\r\n return (\r\n \r\n \r\n toggleDrawer()} onKeyPress={() => toggleDrawer()} className=\"menu\" tabIndex=\"0\" />\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default Drawer;\r\n\r\nDrawer.propTypes = {\r\n expanded: PropTypes.bool.isRequired,\r\n setExpanded: PropTypes.func.isRequired,\r\n};\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from 'react';\n\nvar _ref =\n/*#__PURE__*/\nReact.createElement(\"title\", null, \"Insider Logo\");\n\nvar _ref2 =\n/*#__PURE__*/\nReact.createElement(\"path\", {\n fill: \"#28aae1\",\n d: \"M23,41.15H37.3v75.5H23Z\",\n transform: \"translate(-4.7 -2.99)\"\n});\n\nvar _ref3 =\n/*#__PURE__*/\nReact.createElement(\"path\", {\n fill: \"#28aae1\",\n d: \"M50.89,41.15H64.67L97,90.83V41.15h14.37v75.5H97.52L65.26,67.12v49.53H50.89Z\",\n transform: \"translate(-4.7 -2.99)\"\n});\n\nvar _ref4 =\n/*#__PURE__*/\nReact.createElement(\"path\", {\n fill: \"#28aae1\",\n d: \"M183.75,51.41,173.11,60.8Q167.5,53,161.69,53a6.94,6.94,0,0,0-4.63,1.51,4.41,4.41,0,0,0-1.8,3.41,5.84,5.84,0,0,0,1.29,3.59q1.75,2.26,10.54,9.7,8.23,6.88,10,8.67a30.1,30.1,0,0,1,6.19,8.44,21.08,21.08,0,0,1,1.83,8.8,20.18,20.18,0,0,1-6.42,15.35q-6.42,6.06-16.75,6.06a24.91,24.91,0,0,1-14.05-4q-6-4-10.25-12.42l12.08-7.29q5.45,10,12.54,10a9.24,9.24,0,0,0,6.22-2.16,6.41,6.41,0,0,0,2.52-5,8.6,8.6,0,0,0-1.9-5.13q-1.9-2.57-8.38-7.85-12.34-10.06-15.94-15.53a19.72,19.72,0,0,1-3.6-10.91,17.83,17.83,0,0,1,6-13.47,20.76,20.76,0,0,1,14.77-5.62,23.31,23.31,0,0,1,10.77,2.62Q177.79,44.48,183.75,51.41Z\",\n transform: \"translate(-4.7 -2.99)\"\n});\n\nvar _ref5 =\n/*#__PURE__*/\nReact.createElement(\"path\", {\n fill: \"#28aae1\",\n d: \"M195.14,41.15H209.4v75.5H195.14Z\",\n transform: \"translate(-4.7 -2.99)\"\n});\n\nvar _ref6 =\n/*#__PURE__*/\nReact.createElement(\"path\", {\n fill: \"#28aae1\",\n d: \"M223,41.15h17q16.46,0,24.46,4.08t13.18,13.27a43,43,0,0,1,5.18,21.45,43.19,43.19,0,0,1-2.9,16,33.28,33.28,0,0,1-8,12.14,28.25,28.25,0,0,1-11.05,6.67q-5.95,1.85-20.61,1.85H223ZM237.26,55v47.63h6.67q9.85,0,14.29-2.26a17.13,17.13,0,0,0,7.26-7.6,27.9,27.9,0,0,0,2.82-13.15q0-12-6.72-18.65-6.06-6-19.45-6Z\",\n transform: \"translate(-4.7 -2.99)\"\n});\n\nvar _ref7 =\n/*#__PURE__*/\nReact.createElement(\"path\", {\n fill: \"#28aae1\",\n d: \"M294,41.15h41.21V55.21H308.23V68.86h26.94V82.67H308.23v19.86h26.94v14.11H294Z\",\n transform: \"translate(-4.7 -2.99)\"\n});\n\nvar _ref8 =\n/*#__PURE__*/\nReact.createElement(\"path\", {\n fill: \"#28aae1\",\n d: \"M346.92,41.15h15.23q12.51,0,17.81,2.23a18.26,18.26,0,0,1,8.54,7.42,22.72,22.72,0,0,1,3.23,12.27,20.9,20.9,0,0,1-3.57,12.45q-3.57,5-10.75,7.57l17.89,33.57H379.59l-17-32h-1.32v32H346.92Zm14.37,29.51h4.5q6.86,0,9.44-1.8t2.58-6a7.31,7.31,0,0,0-1.28-4.3A7.1,7.1,0,0,0,373.11,56q-2.15-.8-7.88-.8h-3.94Z\",\n transform: \"translate(-4.7 -2.99)\"\n});\n\nvar _ref9 =\n/*#__PURE__*/\nReact.createElement(\"path\", {\n fill: \"#28aae1\",\n d: \"M4.7,3V157H130V3ZM117.82,137.27,11.76,150V10l106.35,6.49Z\",\n transform: \"translate(-4.7 -2.99)\"\n});\n\nvar SvgComponent = function SvgComponent(props) {\n return React.createElement(\"svg\", _extends({\n viewBox: \"0 0 390.59 154.02\"\n }, props), _ref, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9);\n};\n\nexport default __webpack_public_path__ + \"static/media/insider-logo.0363befc.svg\";\nexport { SvgComponent as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from 'react';\n\nvar _ref =\n/*#__PURE__*/\nReact.createElement(\"g\", null, React.createElement(\"path\", {\n fill: \"#44c7f4\",\n d: \"M26.1,35.7c5.4,11.6,12.1,16.2,22.8,16.2c71.2,0.1,66.6,0.5,137.7,0.8c3.1,0,6.1,0,9.2,0c0,0.8,0,1.6,0,2.4 c-58.6,0-41.4,0-100.1,0c1.5,9.6,6.5,12.8,17,13.7c5,0.5,86.1,1.5,86.1,1.5V35.4C116,35.4,110.8,35.7,26.1,35.7z\"\n}), React.createElement(\"path\", {\n fill: \"#345670\",\n d: \"M20.8,14.1c-3.2,0-6.5,0-9.8,0c1,10.5,9.3,17.9,20.2,18c5.3,0.1,10.5,0.1,15.8,0.1h152v119.3h19.8V14 C218.7,14,83.6,14.1,20.8,14.1z\"\n}), React.createElement(\"path\", {\n fill: \"#345670\",\n d: \"M278.9,62.8h-36c-7.6,0-11.3,3.7-11.3,11v66.8c0,7.3,3.8,11,11.3,11h36c7.4,0,11.2-3.7,11.2-11V73.8 C290.1,66.5,286.4,62.8,278.9,62.8z M270.4,134.9h-19.1V79.6h19.1V134.9z\"\n}), React.createElement(\"path\", {\n fill: \"#345670\",\n d: \"M349.1,62.8h-34c-7.6,0-11.3,3.7-11.3,11v16.6H322V77.8h19.3v20.4H314c-7.6,0-11.3,3.7-11.3,11v32 c0,7.2,3.7,10.8,11,10.8c3.1,0,7.6-0.4,13.6-1.3c4.6-0.7,9.1-1.4,13.7-2.1v3.1h19.3V73.8C360.3,66.5,356.6,62.8,349.1,62.8z M341.2,135.6l-19.3,0.7v-24.5h19.3V135.6z\"\n}), React.createElement(\"path\", {\n fill: \"#345670\",\n d: \"M421.2,62.5c-3.7,0-8.4,0.5-14.1,1.4c-4.6,0.7-9.3,1.4-14,2.2v-3.3H373v88.8h20.1V80l18.9-0.4v72h20.2V73.3 C432.2,66.1,428.5,62.5,421.2,62.5z\"\n}), React.createElement(\"path\", {\n fill: \"#44c7f4\",\n d: \"M486.5,31.5h-14.8v31.3h12.8V80h-12.8v71.6h-20V80h-9.1V62.8h9.1V25c0-7.3,3.7-11,11.2-11h23.6V31.5z\"\n}), React.createElement(\"path\", {\n fill: \"#44c7f4\",\n d: \"M553.5,140.6c0,7.3-3.7,11-11.2,11h-36c-7.6,0-11.3-3.7-11.3-11V73.8c0-7.3,3.8-11,11.3-11h36 c7.4,0,11.2,3.7,11.2,11V140.6z M533.8,134.9V79.6h-19.1v55.3H533.8z\"\n}), React.createElement(\"path\", {\n fill: \"#44c7f4\",\n d: \"M622.3,99.9h-20V79.6L586.4,80v71.6h-20.1V62.8h20.1v3.3c4.2-0.8,8.3-1.5,12.4-2.3c5-0.9,9.1-1.3,12.5-1.3 c7.3,0,11,3.6,11,10.8V99.9z\"\n}), React.createElement(\"path\", {\n fill: \"#44c7f4\",\n d: \"M690.9,140.6c0,7.3-3.7,11-11.2,11h-34.9c-7.6,0-11.3-3.7-11.3-11V73.8c0-7.3,3.8-11,11.3-11h34.9 c7.4,0,11.2,3.7,11.2,11v21.1h-19.6V79.6h-18v55.3h18v-17h19.6V140.6z\"\n}), React.createElement(\"path\", {\n fill: \"#44c7f4\",\n d: \"M761,140.6c0,7.3-3.8,11-11.3,11h-34.7c-7.6,0-11.3-3.7-11.3-11V73.8c0-7.3,3.8-11,11.3-11h34.7 c7.6,0,11.3,3.7,11.3,11v32.6l-5.5,5.5h-32.6v24.9h18.9v-14.8H761V140.6z M741.8,98.9V77.6h-18.9v21.3H741.8z\"\n}));\n\nvar SvgComponent = function SvgComponent(props) {\n return React.createElement(\"svg\", _extends({\n version: 1.1,\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n viewBox: \"0 0 772 166\",\n xmlSpace: \"preserve\"\n }, props), _ref);\n};\n\nexport default __webpack_public_path__ + \"static/media/loanforce-logo.bc7d835b.svg\";\nexport { SvgComponent as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from 'react';\n\nvar _ref =\n/*#__PURE__*/\nReact.createElement(\"title\", null, \"cog-icon\");\n\nvar _ref2 =\n/*#__PURE__*/\nReact.createElement(\"path\", {\n id: \"path3029\",\n d: \"M320,192a64,64,0,0,0-64-64,64,64,0,0,0-64,64,64,64,0,0,0,64,64,64,64,0,0,0,64-64Zm128-27.25V220.3a9.67,9.67,0,0,1-2,5.75,7.64,7.64,0,0,1-5,3.25l-46.26,7A158.81,158.81,0,0,1,385,259.05q8.76,12.49,26.76,34.5a9.71,9.71,0,0,1,2.5,6.25,8.37,8.37,0,0,1-2.25,5.76q-6.75,9.24-24.76,27t-23.5,17.75a12.2,12.2,0,0,1-6.5-2.25l-34.5-27a143.05,143.05,0,0,1-22.76,9.5q-4,34-7.25,46.5-1.74,7-9,7h-55.5a9.42,9.42,0,0,1-6.13-2.12,7.43,7.43,0,0,1-2.88-5.38l-7-46a155.5,155.5,0,0,1-22.5-9.25l-35.25,26.75a9,9,0,0,1-6.25,2.25,8.61,8.61,0,0,1-6.25-2.75q-31.52-28.5-41.26-42A9.79,9.79,0,0,1,99,299.8a9.67,9.67,0,0,1,2-5.75q3.75-5.25,12.75-16.62t13.5-17.63A124.17,124.17,0,0,1,117,235.05L71.26,228.3A7.9,7.9,0,0,1,66,225.17a9.41,9.41,0,0,1-2-5.87V163.79A9.59,9.59,0,0,1,66,158a7.5,7.5,0,0,1,4.75-3.25l46.5-7a124.11,124.11,0,0,1,9.75-23q-10-14.26-26.75-34.51a9.38,9.38,0,0,1-2.5-6A10.54,10.54,0,0,1,100,78.53q6.49-9,24.63-26.88t23.63-17.87a10.65,10.65,0,0,1,6.5,2.5L189.27,63A142.41,142.41,0,0,1,212,53.53q4-34,7.25-46.51,1.75-7,9-7h55.5a9.43,9.43,0,0,1,6.13,2.13,7.37,7.37,0,0,1,2.87,5.37l7,46a154.06,154.06,0,0,1,22.51,9.25L357.79,36a8.11,8.11,0,0,1,6-2.25,9.64,9.64,0,0,1,6.25,2.5Q402.29,66,411.3,78.78a8.1,8.1,0,0,1,1.75,5.5,9.65,9.65,0,0,1-2,5.75q-3.75,5.25-12.76,16.63t-13.5,17.63A149.91,149.91,0,0,1,395,148.79l45.76,7a7.84,7.84,0,0,1,5.25,3.12A9.48,9.48,0,0,1,448.05,164.79Z\",\n transform: \"translate(-64.01 -0.02)\"\n});\n\nvar SvgComponent = function SvgComponent(props) {\n return React.createElement(\"svg\", _extends({\n width: 384.04,\n height: 384.04,\n viewBox: \"0 0 384.04 384.04\"\n }, props), _ref, _ref2);\n};\n\nexport default __webpack_public_path__ + \"static/media/cog-icon.90745a2b.svg\";\nexport { SvgComponent as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from 'react';\n\nvar _ref =\n/*#__PURE__*/\nReact.createElement(\"title\", null, \"login-icon\");\n\nvar _ref2 =\n/*#__PURE__*/\nReact.createElement(\"path\", {\n d: \"M369,209,201,377c-15,15-41,4.5-41-17V264H24A23.94,23.94,0,0,1,0,240.12V144a23.94,23.94,0,0,1,23.88-24H160V24c0-21.4,25.9-32,41-17L369,175A24.2,24.2,0,0,1,369,209ZM312,12V52a12,12,0,0,0,12,12h84a32,32,0,0,1,32,32V288a32,32,0,0,1-32,32H324a12,12,0,0,0-12,12v40a12,12,0,0,0,12,12h84a96,96,0,0,0,96-96V96A96,96,0,0,0,408,0H324A12,12,0,0,0,312,12Z\",\n transform: \"translate(0 0.02)\"\n});\n\nvar SvgComponent = function SvgComponent(props) {\n return React.createElement(\"svg\", _extends({\n width: 503.98,\n height: 384.06,\n viewBox: \"0 0 503.98 384.06\"\n }, props), _ref, _ref2);\n};\n\nexport default __webpack_public_path__ + \"static/media/login-icon.58a8a061.svg\";\nexport { SvgComponent as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from 'react';\n\nvar _ref =\n/*#__PURE__*/\nReact.createElement(\"title\", null, \"signout-icon\");\n\nvar _ref2 =\n/*#__PURE__*/\nReact.createElement(\"path\", {\n d: \"M497,209,329,377c-15,15-41,4.5-41-17V264H152a23.94,23.94,0,0,1-24-24V144a23.94,23.94,0,0,1,24-24H288V24c0-21.4,25.9-32,41-17L497,175A24.2,24.2,0,0,1,497,209ZM192,372V332a12,12,0,0,0-12-12H96a32,32,0,0,1-32-32V96A32,32,0,0,1,96,64h84a12,12,0,0,0,12-12V12A12,12,0,0,0,180,0H96A96,96,0,0,0,0,96V288a96,96,0,0,0,96,96h84A12,12,0,0,0,192,372Z\"\n});\n\nvar SvgComponent = function SvgComponent(props) {\n return React.createElement(\"svg\", _extends({\n width: 503.97,\n height: 384.06,\n viewBox: \"0 0 503.97 384.06\"\n }, props), _ref, _ref2);\n};\n\nexport default __webpack_public_path__ + \"static/media/logout-icon.50f938a3.svg\";\nexport { SvgComponent as ReactComponent };","import styled from 'styled-components/macro';\r\n\r\nconst HeaderContent = styled.div`\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n\r\n height: 100%;\r\n\r\n /* rules for IE11 */\r\n @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {\r\n height: 100px;\r\n }\r\n`;\r\n\r\nexport default HeaderContent;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import theme helpers\r\nimport { getBreakpoint, getColor } from '../../../util/theme';\r\n\r\nconst HeaderLinkIcons = styled.div`\r\n align-self: flex-end;\r\n\r\n display: flex;\r\n align-items: center;\r\n\r\n height: 100%;\r\n\r\n padding: 10px 10px 0 10px;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n display: none;\r\n }\r\n\r\n svg {\r\n height: 15px;\r\n width: 15px;\r\n\r\n margin: 0 10px;\r\n\r\n path {\r\n fill: ${getColor('controlBlue')};\r\n\r\n &:hover {\r\n fill: ${getColor('accentOrange')};\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport default HeaderLinkIcons;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import theme helpers\r\nimport { getBreakpoint, getColor, getFontWeight } from '../../../util/theme';\r\n\r\nconst HeaderLinks = styled.div`\r\n margin: 25px 0;\r\n padding: 0 50px;\r\n\r\n align-self: flex-end;\r\n\r\n display: none;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n display: block;\r\n }\r\n\r\n a,\r\n p {\r\n color: ${getColor('primaryBlue')};\r\n font-size: 1.6rem;\r\n font-weight: ${getFontWeight('medium')};\r\n margin: 0;\r\n padding: 10px 15px;\r\n\r\n display: inline-block;\r\n\r\n cursor: pointer;\r\n\r\n &:hover {\r\n color: ${getColor('white')};\r\n\r\n background-color: ${getColor('accentOrange')};\r\n }\r\n }\r\n`;\r\n\r\nexport default HeaderLinks;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import theme helpers\r\nimport { getBreakpoint } from '../../../util/theme';\r\n\r\nconst HeaderLogo = styled.div`\r\n padding: 0 0 0 65px;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n margin: 25px 0;\r\n\r\n padding: 0 0 0 50px;\r\n }\r\n\r\n svg {\r\n margin: 0 5px;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n margin: 0 25px;\r\n }\r\n\r\n &.lfLogo {\r\n width: 120px;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n width: 200px;\r\n }\r\n }\r\n\r\n &.insiderLogo {\r\n width: 70px;\r\n\r\n margin: 0 0 -5px 0;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n width: 120px;\r\n\r\n margin: 0 0 -10px 0;\r\n }\r\n }\r\n }\r\n\r\n a {\r\n display: flex;\r\n align-items: center;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n padding: 0 15px;\r\n }\r\n }\r\n`;\r\n\r\nexport default HeaderLogo;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import theme helpers\r\nimport { getBreakpoint, getColor } from '../../../util/theme';\r\n\r\nconst HeaderWrapper = styled.header`\r\n background-color: ${getColor('white')};\r\n\r\n height: 50px;\r\n width: 100%;\r\n\r\n position: fixed;\r\n top: 0;\r\n\r\n z-index: 9998;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n border-bottom: 2px solid ${getColor('lightestGrey')};\r\n\r\n height: auto;\r\n\r\n position: relative;\r\n }\r\n`;\r\n\r\nexport default HeaderWrapper;\r\n","import React from 'react';\r\nimport { Link } from '@reach/router';\r\nimport PropTypes from 'prop-types';\r\n\r\n// import functions\r\nimport { logoutUser } from '../App/functions';\r\n\r\n// import assets\r\nimport { ReactComponent as InsiderLogo } from '../../assets/logos/insider-logo.svg';\r\nimport { ReactComponent as LoanForceLogo } from '../../assets/logos/loanforce-logo.svg';\r\nimport { ReactComponent as CogIcon } from '../../assets/icons/cog-icon.svg';\r\nimport { ReactComponent as LoginIcon } from '../../assets/icons/login-icon.svg';\r\nimport { ReactComponent as LogoutIcon } from '../../assets/icons/logout-icon.svg';\r\n\r\n// import styled components\r\nimport { HeaderWrapper, HeaderContent, HeaderLogo, HeaderLinks, HeaderLinkIcons } from './styled';\r\n\r\nconst Header = ({ loggedIn }) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {loggedIn ? (\r\n <>\r\n Profile\r\n

    logoutUser()}>Logout

    \r\n \r\n ) : (\r\n Login\r\n )}\r\n
    \r\n \r\n {loggedIn ? (\r\n <>\r\n \r\n \r\n \r\n \r\n logoutUser()} />\r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n )}\r\n \r\n
    \r\n
    \r\n);\r\n\r\nexport default Header;\r\n\r\nHeader.propTypes = {\r\n loggedIn: PropTypes.bool.isRequired,\r\n};\r\n\r\nHeader.defaultProps = {\r\n loggedIn: false,\r\n};\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from 'react';\n\nvar _ref =\n/*#__PURE__*/\nReact.createElement(\"title\", null, \"calcon-logo-color-f\");\n\nvar SvgComponent = function SvgComponent(props) {\n return React.createElement(\"svg\", _extends({\n width: 199.99,\n height: 41.9,\n viewBox: \"0 0 199.99 41.9\"\n }, props), _ref, React.createElement(\"g\", {\n id: \"Logo\"\n }, React.createElement(\"polygon\", {\n points: \"31.42 6.86 27.38 11.5 42.8 34.87 42.8 41.9 51.21 37.45 31.42 6.86\",\n style: {\n \"fill\": \"#345670\"\n }\n }), React.createElement(\"polygon\", {\n points: \"52.72 36.6 30.74 2.63 5.01 32.59 0 11.5 31.3 0 53.89 36.04 52.72 36.6\",\n style: {\n \"fill\": \"#345670\"\n }\n }), React.createElement(\"rect\", {\n x: 26.53,\n y: 22.88,\n width: 5.3,\n height: 6.49,\n style: {\n \"fill\": \"#345670\"\n }\n }), React.createElement(\"rect\", {\n x: 20.38,\n y: 22.88,\n width: 5.3,\n height: 6.49,\n style: {\n \"fill\": \"#345670\"\n }\n }), React.createElement(\"rect\", {\n x: 26.53,\n y: 30.3,\n width: 5.3,\n height: 6.49,\n style: {\n \"fill\": \"#345670\"\n }\n }), React.createElement(\"rect\", {\n x: 20.38,\n y: 30.3,\n width: 5.3,\n height: 6.49,\n style: {\n \"fill\": \"#345670\"\n }\n })), React.createElement(\"path\", {\n d: \"M72.84,23.1a13.64,13.64,0,0,1-5.45.92c-7.34,0-11.12-4.57-11.12-10.62,0-7.25,5.17-11.28,11.59-11.28a12.35,12.35,0,0,1,5.23.95l-1,3.8a10.53,10.53,0,0,0-4-.78c-3.81,0-6.77,2.3-6.77,7,0,4.25,2.52,6.93,6.8,6.93a11.92,11.92,0,0,0,4-.7Z\",\n style: {\n \"fill\": \"#345670\"\n }\n }), React.createElement(\"path\", {\n d: \"M85.87,23.7l-.29-1.55h-.09a5.56,5.56,0,0,1-4.41,1.9,4.72,4.72,0,0,1-5-4.73c0-4,3.6-5.93,9-5.89v-.22c0-.82-.44-2-2.81-2a8.7,8.7,0,0,0-4.25,1.17L77.22,9.3a12.73,12.73,0,0,1,6-1.34C88.33,8,90,11,90,14.61V20a24.76,24.76,0,0,0,.22,3.75Zm-.57-7.28c-2.52,0-4.48.57-4.48,2.42a1.72,1.72,0,0,0,1.89,1.83,2.6,2.6,0,0,0,2.49-1.76,3.23,3.23,0,0,0,.1-.82Z\",\n style: {\n \"fill\": \"#345670\"\n }\n }), React.createElement(\"path\", {\n d: \"M95.32,1.33h4.79V23.7H95.32Z\",\n style: {\n \"fill\": \"#345670\"\n }\n }), React.createElement(\"path\", {\n d: \"M121.31,23.1a13.64,13.64,0,0,1-5.45.92c-7.34,0-11.1-4.58-11.1-10.63,0-7.24,5.17-11.27,11.6-11.27a12.63,12.63,0,0,1,5.23.94l-1,3.81a10.33,10.33,0,0,0-4-.78c-3.82,0-6.78,2.29-6.78,7,0,4.25,2.52,6.93,6.81,6.93a11.89,11.89,0,0,0,4-.69Z\",\n style: {\n \"fill\": \"#345670\"\n }\n }), React.createElement(\"path\", {\n d: \"M140.5,15.82c0,5.64-4,8.23-8.13,8.23-4.5,0-8-3-8-7.95S127.68,8,132.63,8A7.48,7.48,0,0,1,140.5,15.82ZM129.35,16c0,2.64,1.1,4.63,3.15,4.63,1.86,0,3.06-1.86,3.06-4.63,0-2.3-.89-4.63-3.06-4.63S129.35,13.69,129.35,16Z\",\n style: {\n \"fill\": \"#345670\"\n }\n }), React.createElement(\"path\", {\n d: \"M145,13.21c0-1.93-.06-3.56-.12-4.92h4.15l.22,2.12h.1A5.65,5.65,0,0,1,154.15,8c3.15,0,5.51,2.08,5.51,6.62V23.7h-4.79V15.16c0-2-.69-3.34-2.42-3.34A2.54,2.54,0,0,0,150,13.61a3.31,3.31,0,0,0-.19,1.2V23.7H145Z\",\n style: {\n \"fill\": \"#345670\"\n }\n }), React.createElement(\"path\", {\n d: \"M65.32,33.37c-.07-1.4-.16-3.08-.14-4.34h-.05c-.34,1.18-.76,2.43-1.27,3.82l-1.77,4.88h-1l-1.63-4.79c-.48-1.42-.88-2.72-1.16-3.91h0c0,1.26-.1,2.94-.19,4.45l-.27,4.31H56.58l.71-10h1.64l1.71,4.86c.41,1.23.76,2.34,1,3.38h0c.25-1,.61-2.12,1.06-3.38l1.79-4.86h1.63l.63,10.05H65.54Z\",\n style: {\n \"fill\": \"#6b6b6a\"\n }\n }), React.createElement(\"path\", {\n d: \"M69.39,27.74v5.95c0,2.25,1,3.2,2.35,3.2s2.45-1,2.45-3.2V27.74H75.5V33.6c0,3.08-1.64,4.35-3.8,4.35s-3.61-1.18-3.61-4.3V27.74Z\",\n style: {\n \"fill\": \"#6b6b6a\"\n }\n }), React.createElement(\"path\", {\n d: \"M78.91,28.83H75.85V27.74h7.44v1.09H80.21v9H78.89Z\",\n style: {\n \"fill\": \"#6b6b6a\"\n }\n }), React.createElement(\"path\", {\n d: \"M85,27.74v5.95c0,2.25,1,3.2,2.34,3.2,1.5,0,2.46-1,2.46-3.2V27.74h1.31V33.6c0,3.08-1.64,4.35-3.8,4.35s-3.61-1.18-3.61-4.3V27.74Z\",\n style: {\n \"fill\": \"#6b6b6a\"\n }\n }), React.createElement(\"path\", {\n d: \"M93.69,34.62l-1,3.17H91.3l3.42-10h1.56l3.43,10.05H98.32l-1.07-3.17Zm3.29-1-1-2.89c-.22-.66-.37-1.25-.52-1.84h0c-.15.6-.32,1.23-.51,1.82l-1,2.91Z\",\n style: {\n \"fill\": \"#6b6b6a\"\n }\n }), React.createElement(\"path\", {\n d: \"M100.44,27.74h1.3v9H106v1.09h-5.59Z\",\n style: {\n \"fill\": \"#6b6b6a\"\n }\n }), React.createElement(\"path\", {\n d: \"M117.62,33.37c-.08-1.4-.17-3.08-.15-4.34h0c-.34,1.18-.76,2.43-1.26,3.82l-1.78,4.88h-1l-1.64-4.79c-.47-1.42-.88-2.72-1.17-3.91h0c0,1.26-.1,2.94-.19,4.45l-.27,4.31h-1.23l.7-10h1.66l1.69,4.86c.41,1.23.76,2.34,1,3.38h0c.26-1,.61-2.12,1.06-3.38l1.79-4.86h1.64l.62,10.05h-1.26Z\",\n style: {\n \"fill\": \"#6b6b6a\"\n }\n }), React.createElement(\"path\", {\n d: \"M129,32.66c0,3.46-2.1,5.29-4.66,5.29s-4.53-2.05-4.53-5.1,2-5.28,4.67-5.28S129,29.68,129,32.66Zm-7.8.16c0,2.15,1.17,4.09,3.21,4.09s3.22-1.89,3.22-4.17c0-2-1-4.09-3.21-4.09S121.18,30.61,121.18,32.82Z\",\n style: {\n \"fill\": \"#6b6b6a\"\n }\n }), React.createElement(\"path\", {\n d: \"M129.92,27.87a13.88,13.88,0,0,1,2.49-.21,4.15,4.15,0,0,1,2.91.82,2.54,2.54,0,0,1,.79,1.91A2.62,2.62,0,0,1,134.22,33v0a2.54,2.54,0,0,1,1.48,2,16.26,16.26,0,0,0,.77,2.75h-1.35a13.34,13.34,0,0,1-.67-2.42c-.3-1.39-.82-1.91-2-2h-1.23v4.36h-1.29Zm1.3,4.58h1.32c1.39,0,2.27-.76,2.27-1.91s-.94-1.87-2.31-1.88a5.5,5.5,0,0,0-1.28.12Z\",\n style: {\n \"fill\": \"#6b6b6a\"\n }\n }), React.createElement(\"path\", {\n d: \"M139.24,28.83h-3.06V27.74h7.45v1.09h-3.07v9h-1.31Z\",\n style: {\n \"fill\": \"#6b6b6a\"\n }\n }), React.createElement(\"path\", {\n d: \"M151.25,37.34a9.62,9.62,0,0,1-3.09.55A4.72,4.72,0,0,1,143,32.82c0-3,2.07-5.19,5.44-5.19a6.35,6.35,0,0,1,2.51.46l-.32,1.06a5.3,5.3,0,0,0-2.22-.43,3.75,3.75,0,0,0-4,4,3.7,3.7,0,0,0,3.88,4.06,4.25,4.25,0,0,0,1.73-.27v-3h-2v-1h3.31Z\",\n style: {\n \"fill\": \"#6b6b6a\"\n }\n }), React.createElement(\"path\", {\n d: \"M154.11,34.62l-1.06,3.17H151.7l3.42-10h1.56l3.43,10.05h-1.38l-1.08-3.17Zm3.29-1-1-2.89c-.23-.66-.37-1.25-.53-1.84h0c-.15.6-.31,1.23-.51,1.82l-1,2.91Z\",\n style: {\n \"fill\": \"#6b6b6a\"\n }\n }), React.createElement(\"path\", {\n d: \"M168.29,37.34a9.58,9.58,0,0,1-3.09.55A4.72,4.72,0,0,1,160,32.82c0-3,2.07-5.19,5.45-5.19a6.3,6.3,0,0,1,2.5.46l-.31,1.06a5.31,5.31,0,0,0-2.23-.43,3.75,3.75,0,0,0-4,4c0,2.52,1.53,4.06,3.87,4.06a4.25,4.25,0,0,0,1.73-.27v-3h-2v-1h3.31Z\",\n style: {\n \"fill\": \"#6b6b6a\"\n }\n }), React.createElement(\"path\", {\n d: \"M174.74,33.07h-3.91V36.7h4.35v1.09h-5.65v-10H175v1.09h-4.13V32h3.92Z\",\n style: {\n \"fill\": \"#6b6b6a\"\n }\n }), React.createElement(\"path\", {\n d: \"M177.24,37.86v-3h.4l1,1.53a9.49,9.49,0,0,1,.54,1h0c0-.41,0-.77,0-1.23V34.85h.37v3h-.41l-1-1.54a10,10,0,0,1-.51-1h0c0,.38,0,.75,0,1.25v1.3Z\",\n style: {\n \"fill\": \"#6b6b6a\"\n }\n }), React.createElement(\"path\", {\n d: \"M182.51,36.53c0-.41,0-.93,0-1.31h0c-.11.36-.23.73-.39,1.15l-.53,1.47h-.3l-.49-1.45c-.14-.41-.26-.82-.35-1.18h0c0,.38,0,.89-.06,1.35l-.08,1.3h-.37l.21-3h.5l.52,1.47c.12.37.23.7.3,1h0c.08-.3.19-.64.32-1l.54-1.47h.51l.18,3h-.38Z\",\n style: {\n \"fill\": \"#6b6b6a\"\n }\n }), React.createElement(\"path\", {\n d: \"M183.37,34.83h.4v2.7h1.3v.33h-1.69Z\",\n style: {\n \"fill\": \"#6b6b6a\"\n }\n }), React.createElement(\"path\", {\n d: \"M185.21,37.39a1.41,1.41,0,0,0,.7.19c.41,0,.64-.21.64-.51s-.16-.45-.57-.61-.82-.41-.82-.86a.87.87,0,0,1,.92-.82h.06a1.56,1.56,0,0,1,.67.15l-.11.32a1.26,1.26,0,0,0-.57-.14c-.41,0-.58.25-.58.45s.19.41.61.59.77.44.77.89-.34.87-1.06.87a1.47,1.47,0,0,1-.77-.19Z\",\n style: {\n \"fill\": \"#6b6b6a\"\n }\n }), React.createElement(\"path\", {\n d: \"M187.33,37.86l.12-.88h-.37v-.27h.41l.08-.65h-.38v-.27h.41l.12-.86H188l-.1.86h.47l.12-.86h.26l-.11.86H189v.27h-.41l-.08.65h.39V37h-.41l-.12.89h-.27l.12-.89h-.47l-.11.89Zm.91-1.15.09-.65h-.5l-.08.65Z\",\n style: {\n \"fill\": \"#6b6b6a\"\n }\n }), React.createElement(\"path\", {\n d: \"M191.1,37.86v-.79h-1.35V36.8l1.3-1.87h.43v1.83h.41v.31h-.41v.79Zm0-1.1V35.33h0l-.24.44-.71,1h.95Z\",\n style: {\n \"fill\": \"#6b6b6a\"\n }\n }), React.createElement(\"path\", {\n d: \"M193.62,35.22h-.3a1.18,1.18,0,0,0-1,1h0a.88.88,0,0,1,1.25-.14.91.91,0,0,1,.34.75,1,1,0,0,1-.93,1h-.05c-.62,0-1-.49-1-1.23a1.84,1.84,0,0,1,.49-1.32,1.6,1.6,0,0,1,.94-.43l.29,0Zm-.12,1.68a.59.59,0,0,0-.51-.66h-.09a.67.67,0,0,0-.57.38.25.25,0,0,0,0,.17c0,.49.23.82.64.82s.57-.28.57-.7Z\",\n style: {\n \"fill\": \"#6b6b6a\"\n }\n }), React.createElement(\"path\", {\n d: \"M194.12,37.43a1.36,1.36,0,0,0,.65.19c.51,0,.67-.33.66-.57,0-.41-.37-.59-.75-.59h-.22v-.3h.22c.28,0,.65-.14.65-.49s-.15-.44-.51-.44a1,1,0,0,0-.59.19l-.1-.29a1.37,1.37,0,0,1,.76-.22c.58,0,.82.34.82.7a.72.72,0,0,1-.51.66h0a.77.77,0,0,1,.65.76c0,.47-.36.88-1.07.88a1.57,1.57,0,0,1-.76-.2Z\",\n style: {\n \"fill\": \"#6b6b6a\"\n }\n }), React.createElement(\"path\", {\n d: \"M198,34.93v.27l-1.27,2.66h-.41l1.27-2.59h-1.43v-.33Z\",\n style: {\n \"fill\": \"#6b6b6a\"\n }\n }), React.createElement(\"path\", {\n d: \"M199.94,35.27h-1.11l-.11.75H199a1.26,1.26,0,0,1,.63.16.82.82,0,0,1,.41.75,1,1,0,0,1-1,1h-.07a1.37,1.37,0,0,1-.73-.18l.1-.3a1.38,1.38,0,0,0,.63.17.66.66,0,0,0,.69-.6v0c0-.38-.25-.65-.84-.65a2.83,2.83,0,0,0-.41,0l.19-1.4h1.4Z\",\n style: {\n \"fill\": \"#6b6b6a\"\n }\n }));\n};\n\nexport default __webpack_public_path__ + \"static/media/calcon-logo-color.6a545afd.svg\";\nexport { SvgComponent as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from 'react';\n\nvar _ref =\n/*#__PURE__*/\nReact.createElement(\"title\", null, \"OneTrust Home Loans\");\n\nvar _ref2 =\n/*#__PURE__*/\nReact.createElement(\"g\", null, React.createElement(\"polygon\", {\n fill: \"#345670\",\n points: \"92 30.8 80.2 44.4 125.4 112.8 125.4 133.4 150 120.4 92 30.8\"\n}), React.createElement(\"polygon\", {\n fill: \"#345670\",\n points: \"154.4 117.9 90 18.4 14.7 106.1 0 44.4 91.7 10.7 157.8 116.2 154.4 117.9\"\n}), React.createElement(\"rect\", {\n fill: \"#345670\",\n x: 77.7,\n y: 77.7,\n width: 15.5,\n height: 19\n}), React.createElement(\"rect\", {\n fill: \"#345670\",\n x: 59.7,\n y: 77.7,\n width: 15.5,\n height: 19\n}), React.createElement(\"rect\", {\n fill: \"#345670\",\n x: 77.7,\n y: 99.5,\n width: 15.5,\n height: 19\n}), React.createElement(\"rect\", {\n fill: \"#345670\",\n x: 59.7,\n y: 99.5,\n width: 15.5,\n height: 19\n}));\n\nvar _ref3 =\n/*#__PURE__*/\nReact.createElement(\"g\", null, React.createElement(\"path\", {\n fill: \"#345670\",\n d: \"M207.5,36.1c0,23.2-14.1,37.3-34.8,37.3-21,0-33.3-15.9-33.3-36C139.4,16.2,152.9.3,173.8.3,195.7.3,207.5,16.6,207.5,36.1Zm-51.1,1c0,13.9,6.5,23.6,17.2,23.6s17-10.3,17-24c0-12.7-6.1-23.6-17.1-23.6C162.7,13,156.4,23.3,156.4,37.1Z\",\n transform: \"translate(-0.3 -0.3)\"\n}), React.createElement(\"path\", {\n fill: \"#345670\",\n d: \"M215.8,37.3c0-6.4-.2-11.9-.4-16.4h13.9l.7,7h.3a18.64,18.64,0,0,1,15.9-8.2c10.5,0,18.4,6.9,18.4,22V72.1h-16V43.8c0-6.6-2.3-11.1-8.1-11.1-4.4,0-7,3-8.1,6a11.24,11.24,0,0,0-.6,4V72.3h-16v-35Z\",\n transform: \"translate(-0.3 -0.3)\"\n}), React.createElement(\"path\", {\n fill: \"#345670\",\n d: \"M287.6,51.7c.5,6.6,7,9.8,14.5,9.8a44.19,44.19,0,0,0,14.2-2.1l2.1,10.8a50.72,50.72,0,0,1-18.6,3.1c-17.4,0-27.4-10.1-27.4-26.1,0-13,8.1-27.4,25.9-27.4,16.6,0,22.9,12.9,22.9,25.6a40.63,40.63,0,0,1-.5,6.3Zm18.7-10.9c0-3.9-1.7-10.4-9-10.4-6.7,0-9.4,6.1-9.9,10.4Z\",\n transform: \"translate(-0.3 -0.3)\"\n}), React.createElement(\"path\", {\n fill: \"#345670\",\n d: \"M336.8,14.9h-19V1.5h54.4V14.9H352.9V72.2H336.8Z\",\n transform: \"translate(-0.3 -0.3)\"\n}), React.createElement(\"path\", {\n fill: \"#345670\",\n d: \"M372.4,37.8c0-7.6-.2-12.5-.4-16.9h13.8l.5,9.4h.4c2.6-7.5,8.9-10.6,13.9-10.6a17.77,17.77,0,0,1,3.4.2v15a24.21,24.21,0,0,0-4.3-.4c-5.9,0-9.9,3.1-10.9,8.1a20.16,20.16,0,0,0-.3,3.6v26h-16V37.8Z\",\n transform: \"translate(-0.3 -0.3)\"\n}), React.createElement(\"path\", {\n fill: \"#345670\",\n d: \"M458.3,55.8c0,6.7.2,12.2.4,16.5H444.8l-.7-7.2h-.3c-2,3.1-6.8,8.4-16.1,8.4-10.4,0-18.1-6.5-18.1-22.4V20.9h16.1V48.5c0,7.5,2.4,12,8,12a8.6,8.6,0,0,0,8-5.6,9.25,9.25,0,0,0,.5-3.5V20.9h16.1Z\",\n transform: \"translate(-0.3 -0.3)\"\n}), React.createElement(\"path\", {\n fill: \"#345670\",\n d: \"M466.8,58.3a30.76,30.76,0,0,0,13.8,3.9c4.8,0,6.8-1.7,6.8-4.3s-1.6-3.9-7.6-5.9c-10.6-3.6-14.7-9.3-14.6-15.4,0-9.6,8.2-16.8,20.9-16.8a35.92,35.92,0,0,1,14.5,2.9l-2.8,11a24.57,24.57,0,0,0-11.1-2.9c-3.9,0-6.1,1.6-6.1,4.2,0,2.4,2,3.7,8.3,5.9,9.8,3.4,13.9,8.3,14,15.9,0,9.6-7.6,16.6-22.3,16.6-6.7,0-12.7-1.5-16.6-3.6Z\",\n transform: \"translate(-0.3 -0.3)\"\n}), React.createElement(\"path\", {\n fill: \"#345670\",\n d: \"M528.2,6.2V20.9h11.4V32.7H528.2V51.3c0,6.2,1.5,9,6.3,9a26.44,26.44,0,0,0,4.7-.4l.1,12.1a32.33,32.33,0,0,1-10.4,1.4c-5.1,0-9.5-1.8-12-4.4-2.9-3-4.4-8-4.4-15.2v-21h-6.8V20.9h6.8V9.8Z\",\n transform: \"translate(-0.3 -0.3)\"\n}));\n\nvar _ref4 =\n/*#__PURE__*/\nReact.createElement(\"g\", null, React.createElement(\"path\", {\n fill: \"#6b6b6b\",\n d: \"M229.7,90.2V102h13.7V90.2h3.7v28.3h-3.7V105.2H229.7v13.3H226V90.2Z\",\n transform: \"translate(-0.3 -0.3)\"\n}), React.createElement(\"path\", {\n fill: \"#6b6b6b\",\n d: \"M276.5,104c0,9.7-5.9,14.9-13.1,14.9-7.5,0-12.7-5.8-12.7-14.4,0-9,5.6-14.9,13.1-14.9C271.5,89.7,276.5,95.6,276.5,104Zm-22,.5c0,6,3.3,11.5,9,11.5s9.1-5.3,9.1-11.8c0-5.6-2.9-11.5-9-11.5S254.5,98.3,254.5,104.5Z\",\n transform: \"translate(-0.3 -0.3)\"\n}), React.createElement(\"path\", {\n fill: \"#6b6b6b\",\n d: \"M304,106c-.2-3.9-.5-8.7-.4-12.2h-.1c-1,3.3-2.1,6.8-3.6,10.8l-5,13.7h-2.8l-4.6-13.5c-1.3-4-2.5-7.6-3.3-11h-.1c-.1,3.5-.3,8.3-.5,12.5l-.8,12.1h-3.5l2-28.3H286l4.8,13.7c1.2,3.5,2.1,6.6,2.9,9.5h.1a84.31,84.31,0,0,1,3-9.5l5-13.7h4.7l1.8,28.3h-3.6Z\",\n transform: \"translate(-0.3 -0.3)\"\n}), React.createElement(\"path\", {\n fill: \"#6b6b6b\",\n d: \"M327.5,105.2h-11v10.2h12.3v3.1H312.9V90.2h15.3v3.1H316.6v8.9h11v3Z\",\n transform: \"translate(-0.3 -0.3)\"\n}), React.createElement(\"path\", {\n fill: \"#6b6b6b\",\n d: \"M340.2,90.2h3.7v25.2H356v3.1H340.2Z\",\n transform: \"translate(-0.3 -0.3)\"\n}), React.createElement(\"path\", {\n fill: \"#6b6b6b\",\n d: \"M381.5,104c0,9.7-5.9,14.9-13.1,14.9-7.5,0-12.7-5.8-12.7-14.4,0-9,5.6-14.9,13.1-14.9C376.5,89.7,381.5,95.6,381.5,104Zm-22,.5c0,6,3.3,11.5,9,11.5s9.1-5.3,9.1-11.8c0-5.6-2.9-11.5-9-11.5S359.5,98.3,359.5,104.5Z\",\n transform: \"translate(-0.3 -0.3)\"\n}), React.createElement(\"path\", {\n fill: \"#6b6b6b\",\n d: \"M389.1,109.6l-2.9,8.9h-3.8L392,90.2h4.4l9.7,28.3h-3.9l-3-8.9Zm9.3-2.9-2.8-8.1c-.6-1.8-1-3.5-1.5-5.2H394c-.4,1.7-.9,3.4-1.4,5.1l-2.8,8.2Z\",\n transform: \"translate(-0.3 -0.3)\"\n}), React.createElement(\"path\", {\n fill: \"#6b6b6b\",\n d: \"M409.2,118.5V90.2h4l9.1,14.3a88,88,0,0,1,5.1,9.2h.1c-.3-3.8-.4-7.2-.4-11.6V90.2h3.4v28.3h-3.7l-9-14.4a83,83,0,0,1-5.3-9.5h-.1c.2,3.6.3,7,.3,11.7v12.1h-3.5Z\",\n transform: \"translate(-0.3 -0.3)\"\n}), React.createElement(\"path\", {\n fill: \"#6b6b6b\",\n d: \"M435.2,114a12.86,12.86,0,0,0,6.6,1.8c3.7,0,5.9-2,5.9-4.8,0-2.6-1.5-4.2-5.3-5.6-4.6-1.6-7.5-4-7.5-8,0-4.4,3.7-7.7,9.2-7.7a13.32,13.32,0,0,1,6.3,1.4l-1,3a11.31,11.31,0,0,0-5.4-1.3c-3.9,0-5.3,2.3-5.3,4.2,0,2.6,1.7,3.9,5.6,5.5,4.8,1.8,7.2,4.2,7.2,8.3,0,4.4-3.2,8.1-9.9,8.1a14.67,14.67,0,0,1-7.2-1.8Z\",\n transform: \"translate(-0.3 -0.3)\"\n}));\n\nvar SvgComponent = function SvgComponent(props) {\n return React.createElement(\"svg\", _extends({\n width: 539.3,\n height: 133.4,\n viewBox: \"0 0 539.3 133.4\"\n }, props), _ref, _ref2, _ref3, _ref4);\n};\n\nexport default __webpack_public_path__ + \"static/media/othl-logo-color.77e29f40.svg\";\nexport { SvgComponent as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from 'react';\n\nvar _ref =\n/*#__PURE__*/\nReact.createElement(\"title\", null, \"Tabor Mortgage Group\");\n\nvar _ref2 =\n/*#__PURE__*/\nReact.createElement(\"path\", {\n d: \"M1188.92,419.85H1140.7l-2.34-12.26-5.76-7.5V364.28H1123V326.57l-6.64-7.66-6.27-61.73-4.36-4.51-4.35,4.51-6.86,61.73-5.91,8v37.41h-3.42l-73.35-53.58-7.65-51.57-4.35-4.91-4.36,5.06L990.29,295l-58.44-41.86L720,408H693.51L480.31,253.09,265.16,410.39H221.51v8.26H200.93v-36.5h-6.31V344H187V309.9l-8.41-18-9.91-83.22-4.36-5.85-4.36,5.85-9,83.22-9,18V344h-7.36v38.15h-7.21V420H89.93V405.28H50.43v14.57H0V428H50v6.16H21.29v23H.86v31.79H8.07V464H28.5V441.78H57.94V414.14H82.57v27.64h53.17V390.41h6.61v-38h8.71V310.05L159,294l5.82-51.86,6.61,52.57,6.35,15.21v42.51h8.41v38h6.61v52h35.75V418.65h39.35v20.43h19.53v25.53h30.64V413.24h47.69V395.52h43v24.63h12.92v44.76h109V431.34h55v33.57h55.87v-21h42.06V415.64h55.54v28.24h42.39v21H969.37V415.64h10.41V378.39l5.51-4.5V332.51l8.11-13.6,6.46-39.8,6.46,39.8,8.74,13.44v41.54l6.44,4.5v37.25h9.75v49h42l10.42-54.27,3.81-6.49V372.69h8.41V327.5l5.71-7.64,4.2-38,3.61,38,6.27,7.64v45.19h9.84v31.84l4.91,5.81L1140,464h40.25v24.88h7.81V457.1h-40.85l-5.11-30h46.82ZM127.33,434.42H90V428h37.33Zm94.18,0H200.93v-7.21h20.58Zm287.77-150.8L648.84,419.85H624.28L507.5,283.91A6.9,6.9,0,0,1,509.28,283.62ZM621.11,419.85H594.77L501.09,280.14ZM481.91,274.47l.66.11,26.5,145.27H481.91Zm-2.4-.17V419.85H453.93l24.28-145.5C478.61,274.31,479.05,274.3,479.51,274.3ZM432,290.91a1.44,1.44,0,0,1,.91.76l-151.46,127h-4.93v-8.26h-7.26ZM310.43,457.25H294.66V432H276.48v-4.81h33.95Zm0-52v13.37H285.15L444.63,285l1.62,0-122,120.3Zm48.36,0h-5.62l5.62-6.67Zm6.06-17.57h-6.06v7.18L350,405.28H327.65L449.61,285l1.84,0Zm3.15,0,88.89-105.35,2.91.12L387.64,387.71Zm22.56,0,75.49-110.1.64,0L411.56,387.71Zm26.06,24.78V387.71h-2.37l55.07-109.94,1.52.08L425.78,412.49ZM474.06,275.8a6.64,6.64,0,0,1,1.62-.86L451.5,419.85H429.39v-7.36h-1.08Zm-12.9,181.6H429.39V427.21h31.77Zm31.09,0H468.52V427.21h23.73Zm30.41,0h-23V427.21h23Zm-11.14-37.55L485.11,275.12c.51.14,1.05.31,1.59.48l50.39,144.25Zm28.12,0L489.91,277.52h1.74l73,142.33Zm27.71,0-73-142.33h1.38l2.2,2.81.36,0,93.59,139.56ZM676,436.37H634.11v21H593.56V427.21H676Zm0-16.52H652.28l-135.19-132a3.11,3.11,0,0,0,.87-.35,1.12,1.12,0,0,1,.25-.11L676,419.41ZM676,408v8.3L525.53,290.41a2.92,2.92,0,0,1,1.22-1.25L689.44,408ZM933.45,274.47l.66.11,26.51,145.27H933.45Zm-2.4-.17V419.85H905.48l24.27-145.5C930.16,274.31,930.59,274.3,931.05,274.3Zm-3.83.64L903,419.85h-25.7l48.27-144A6.38,6.38,0,0,1,927.22,274.94Zm-4.84,2.91-47.58,142H849.58l71.28-142.08Zm-4.14-.21L846.89,419.85h-27L917.6,277.61Zm-6.9,4.84L817,419.85H792.19L908.43,282.36ZM901.16,285l1.83,0L789.05,419.85H764.5ZM897.8,285,761.08,419.85H747.22v-10L896.17,285ZM724,408,883.5,290.91a1.44,1.44,0,0,1,.91.76L745.67,408Zm188.64,49.27H789.72V436.37h-42.5v-9.16H912.67Zm31.09,0H920v-30h23.73Zm17.8,0H951.12v-30h10.44Zm11.71-49.72H961.56v4.08l-24.9-136.49c.5.14,1,.31,1.58.48l35,100.27Zm4.66-38.9-3.54,3.16-32.93-94.27h1.73l34.74,67.72Zm0-38.15V340l-32-62.46h1.38l2.2,2.81.37,0L980.5,326Zm3.91-6.78-29.21-43.56L985.14,318Zm5.7-9.89-1.13,2L959,283.91a7,7,0,0,1,1.79-.29l27.24,26.59Zm1-6.54-19.86-19.38a3.18,3.18,0,0,0,.86-.35,1.36,1.36,0,0,1,.25-.11L989,303.56Zm1-6.51-12.38-10.35a2.92,2.92,0,0,1,1.22-1.25l11.61,8.48Zm38.8,106.77V397.22l6.91,10.31Zm37,49.87h-26V427.21h32.3Zm-26-37.55v-6.28l4.21,6.28Zm7.11,0-7.11-10.59v-1.73h-1.15l-9.81-14.63V372.79l-6-4.16v-7.46l50.41,58.68Zm29.13-12.26-1.89,9.63-51.32-59.74V343.57l57.9,56.52Zm4.92-10.63-58.13-56.75v-8.89l58.13,48.62Zm0-32.68v12.53l-60.84-50.88-7-11.75,68.6,50.1Z\"\n});\n\nvar _ref3 =\n/*#__PURE__*/\nReact.createElement(\"g\", null, React.createElement(\"path\", {\n fill: \"#6d1c1c\",\n d: \"M161,4.18q-4,0-8.54.25-9.75.51-14.52,2.47a16.92,16.92,0,0,0-7.88,6.77,35,35,0,0,0-4.37,12l-1.45-.12,1.14-23.36H211l1.14,23.36-1.46.12Q209,16.9,205.33,12.37c-2.42-3-6-5.18-10.6-6.48q-5.88-1.71-19.93-1.71V68.73a45.59,45.59,0,0,0,.73,9.58,10.66,10.66,0,0,0,2.69,5.16,10.55,10.55,0,0,0,4,2.66,20.13,20.13,0,0,0,5.85,1V88.6H147.65V87.14a20.47,20.47,0,0,0,5.92-1,10.71,10.71,0,0,0,4-2.66,10.83,10.83,0,0,0,2.69-5.12,46.56,46.56,0,0,0,.72-9.62Z\"\n}), React.createElement(\"path\", {\n fill: \"#6d1c1c\",\n d: \"M303.9,88.6H262.32V87.14c3.76-.33,6.37-1,7.85-1.9a7.68,7.68,0,0,0,3.92-6.83,19.87,19.87,0,0,0-1.77-7l-1.08-2.66-6.07-14.94H237.32L234,62.59l-1.58,3.92q-2.85,7-2.85,10.95a9.36,9.36,0,0,0,1.05,4.37,9.08,9.08,0,0,0,2.81,3.29,12.79,12.79,0,0,0,6.33,2V88.6H211.44V87.14a13.06,13.06,0,0,0,5.89-1.64,16.88,16.88,0,0,0,4.93-4.69,35.89,35.89,0,0,0,4-6.67q1.92-4.08,5.09-12.25L254.48,2.21h3.6l27.53,66.52a103.54,103.54,0,0,0,4.94,10.75,15.93,15.93,0,0,0,4,4.88A11.36,11.36,0,0,0,298,86.1a34.64,34.64,0,0,0,5.89,1ZM264.16,51.26,250.87,18.48,238.34,51.26Z\"\n}), React.createElement(\"path\", {\n fill: \"#6d1c1c\",\n d: \"M305.67,88.6V87.14a19.71,19.71,0,0,0,5.92-1,10.75,10.75,0,0,0,4-2.63,10.31,10.31,0,0,0,2.73-5.12,48.53,48.53,0,0,0,.69-9.62V22.09a48.4,48.4,0,0,0-.69-9.62,10.3,10.3,0,0,0-2.73-5.13,10.09,10.09,0,0,0-4-2.66,21.35,21.35,0,0,0-5.89-1V2.21h41.58c4.22,0,7,0,8.29.13a27.16,27.16,0,0,1,12,3.42,17.68,17.68,0,0,1,6.36,6.64,19,19,0,0,1,2.25,9.24q0,8.3-5.13,13.61a17,17,0,0,1-4.18,3.26A49.22,49.22,0,0,1,360,41.39a56.76,56.76,0,0,1,9.43,2.21A21.22,21.22,0,0,1,375.54,47a22.28,22.28,0,0,1,6.29,8.19,25.14,25.14,0,0,1,2.25,10.6,23.91,23.91,0,0,1-2.31,10.54A19.74,19.74,0,0,1,375.35,84a23.18,23.18,0,0,1-8.89,3.6,79.36,79.36,0,0,1-14.53,1ZM332.82,4.18V41.77H338a56.93,56.93,0,0,0,7.46-.51,33.14,33.14,0,0,0,5.41-1.2,14.67,14.67,0,0,0,3.77-1.9,15.84,15.84,0,0,0,5-6.17,19.58,19.58,0,0,0,1.74-8.32,23.45,23.45,0,0,0-1.81-9.15,16.73,16.73,0,0,0-4.77-6.74,14.42,14.42,0,0,0-5.92-2.84,48.89,48.89,0,0,0-10.09-.76Zm0,39.55V69.8a35.84,35.84,0,0,0,.66,7.66,13.08,13.08,0,0,0,2.19,4.94q3.22,4.23,11.07,4.24,10.18,0,16.11-5.57t5.92-15.19a28,28,0,0,0-1.84-10.22A17.11,17.11,0,0,0,362,48.41q-5.69-4.68-17.84-4.68Z\"\n}), React.createElement(\"path\", {\n fill: \"#6d1c1c\",\n d: \"M395.85,46a43.36,43.36,0,0,1,4.56-19.73A46.22,46.22,0,0,1,413.7,10.39a51.33,51.33,0,0,1,14.05-7.7A44.92,44.92,0,0,1,442.93,0a43.9,43.9,0,0,1,18.86,4.27,48.44,48.44,0,0,1,15.95,12.07,42.4,42.4,0,0,1,11.14,28.81A43.1,43.1,0,0,1,486,60.8a44.51,44.51,0,0,1-8.48,13.74,47.83,47.83,0,0,1-16.17,12,47,47,0,0,1-38.76.12A45.87,45.87,0,0,1,406.74,75a41.89,41.89,0,0,1-8.07-13.39A44.06,44.06,0,0,1,395.85,46Zm15.32,1q0,18.36,10,31a29.82,29.82,0,0,0,9.53,8.21,25.19,25.19,0,0,0,11.61,2.56A25.65,25.65,0,0,0,454,86.13a29.64,29.64,0,0,0,9.58-8.24q10-12.66,10-31.22a66,66,0,0,0-2.75-19.28A46.15,46.15,0,0,0,463.06,12a25.52,25.52,0,0,0-9-7.57A27,27,0,0,0,442.3,2a26.72,26.72,0,0,0-11.61,2.35,26.09,26.09,0,0,0-9.08,7.6,44.85,44.85,0,0,0-7.72,15.39A67.91,67.91,0,0,0,411.17,46.93Z\"\n}), React.createElement(\"path\", {\n fill: \"#6d1c1c\",\n d: \"M525.14,46.32V68.73a45.59,45.59,0,0,0,.73,9.58,10.66,10.66,0,0,0,2.69,5.16,10.83,10.83,0,0,0,4,2.63,19.71,19.71,0,0,0,5.92,1V88.6H498V87.14a19.71,19.71,0,0,0,5.92-1,10.66,10.66,0,0,0,3.95-2.63,10.31,10.31,0,0,0,2.73-5.12,48.53,48.53,0,0,0,.69-9.62V22.09a48.4,48.4,0,0,0-.69-9.62,10.3,10.3,0,0,0-2.73-5.13,10,10,0,0,0-4-2.66,21.35,21.35,0,0,0-5.89-1V2.21h30.5c5.11,0,8.46,0,10.07.07q9.81.44,15.37,2.66a20.83,20.83,0,0,1,9.72,7.56,20.11,20.11,0,0,1,3.45,11.67A19.22,19.22,0,0,1,559.63,40a21.79,21.79,0,0,1-5,2.91,45.81,45.81,0,0,1-7.37,2.15,19,19,0,0,1,5.63,3.29,14.62,14.62,0,0,1,2.66,3.32q1.2,2,3.6,7.06,5.64,11.58,8.52,16.93a52.12,52.12,0,0,0,4.84,7.75,9.92,9.92,0,0,0,3.07,2.72,11.54,11.54,0,0,0,4.08,1V88.6h-21c-1.06-2.32-1.73-3.8-2-4.43l-4.43-10.06a160.05,160.05,0,0,0-8-16c-2.7-4.59-5.17-7.74-7.41-9.42a10.94,10.94,0,0,0-3.67-1.81,18.38,18.38,0,0,0-4.81-.54Zm0-1.39h2.41q7.85,0,11.23-.88a14.84,14.84,0,0,0,6.36-3.68,20.76,20.76,0,0,0,6.64-15.69,23.12,23.12,0,0,0-1.93-9.4A19.42,19.42,0,0,0,544.51,8a15.51,15.51,0,0,0-6.33-3,48.9,48.9,0,0,0-10.45-.85h-2.59Z\"\n}), React.createElement(\"path\", {\n fill: \"#2d546f\",\n stroke: \"#2d536f\",\n strokeMiterlimit: 10,\n strokeWidth: \"1.44px\",\n d: \"M340.08,117.33a21.45,21.45,0,0,0-6,1,11.5,11.5,0,0,0-4.15,2.71,9.45,9.45,0,0,0-2.15,3,14.27,14.27,0,0,0-1,4.21,60.4,60.4,0,0,0-.46,8v48.14a46.63,46.63,0,0,0,.78,10A10.55,10.55,0,0,0,330,199.7q3.6,3.47,10.13,3.79V205H298.34v-1.5a20.39,20.39,0,0,0,6.1-1.08,11.7,11.7,0,0,0,4.15-2.71,11.06,11.06,0,0,0,2.78-5.32,47.72,47.72,0,0,0,.75-9.9v-58.4L278.48,205h-1.37l-33.45-77.73v57.22a47.52,47.52,0,0,0,.75,9.93,11,11,0,0,0,2.78,5.29,10.9,10.9,0,0,0,4.15,2.74,21,21,0,0,0,6,1.05V205H227.27v-1.5a21,21,0,0,0,6-1.05,10.94,10.94,0,0,0,6.92-8.06,47.72,47.72,0,0,0,.75-9.9V136.34c0-2-.06-3.9-.19-5.69a18.7,18.7,0,0,0-1.5-7.05,10.45,10.45,0,0,0-4.48-4.54,18.72,18.72,0,0,0-7.54-1.73v-1.5h28.35l28.28,69.83,29.33-69.83h26.85Z\"\n}), React.createElement(\"path\", {\n fill: \"#2d546f\",\n stroke: \"#2d536f\",\n strokeMiterlimit: 10,\n strokeWidth: \"1.44px\",\n d: \"M347.33,177.43q0-10.59,7.84-18.88,9.54-10.06,22.8-10.06t22.73,10.06q7.83,8.35,7.84,18.94a26.85,26.85,0,0,1-7.45,18.62,31.68,31.68,0,0,1-46.31,0,28.2,28.2,0,0,1-5.52-8.76A26.46,26.46,0,0,1,347.33,177.43Zm11.89-.75q0,11.34,5.09,19.24,5.74,8.81,14.05,8.81a13.33,13.33,0,0,0,6.86-2,18.12,18.12,0,0,0,5.75-5.48,30.61,30.61,0,0,0,4.11-9.16,38.84,38.84,0,0,0,1.57-10.67,36.79,36.79,0,0,0-1.67-10.8,32,32,0,0,0-4.47-9.36q-5.36-7.38-13.13-7.38-7.38,0-12.74,7.77T359.22,176.68Z\"\n}), React.createElement(\"path\", {\n fill: \"#2d546f\",\n stroke: \"#2d536f\",\n strokeMiterlimit: 10,\n strokeWidth: \"1.44px\",\n d: \"M433,158.54a19,19,0,0,1,5.29-6.2,20.79,20.79,0,0,1,12.35-3.85q4.24,0,6.47,1.89a5.24,5.24,0,0,1,2,4.18,4,4,0,0,1-1.21,3,4.26,4.26,0,0,1-3.1,1.17,5,5,0,0,1-3.85-1.82l-2-2.22a7.56,7.56,0,0,0-5.68-2.54q-4.44,0-6.93,5.74t-2.48,16v12.2l.07,5a28.83,28.83,0,0,0,.52,6.49,6.72,6.72,0,0,0,2,3.42c1.21,1.18,3.46,2.07,6.72,2.68V205H414.35v-1.37a17.06,17.06,0,0,0,5.62-1.46,6.68,6.68,0,0,0,2.74-3.22,14.15,14.15,0,0,0,1-4.52q.28-3,.29-8.74V169.63a89.79,89.79,0,0,0-.33-9.39,10.33,10.33,0,0,0-1.43-4.39,7,7,0,0,0-2.68-2.63,11.8,11.8,0,0,0-4.51-1v-1.37l16.84-2.35A54.55,54.55,0,0,1,433,158.54Z\"\n}), React.createElement(\"path\", {\n fill: \"#2d546f\",\n stroke: \"#2d536f\",\n strokeMiterlimit: 10,\n strokeWidth: \"1.44px\",\n d: \"M477.78,149.47h16.59V152H477.78v38q0,6.85,2.34,9.8a8.37,8.37,0,0,0,3.26,2.54,10.42,10.42,0,0,0,4.36.92,9.08,9.08,0,0,0,4.88-1.21,16.86,16.86,0,0,0,4.3-4.41l1,.85a13.56,13.56,0,0,1-6,5.81,22,22,0,0,1-9.7,1.9q-7.71,0-11.24-3a7.21,7.21,0,0,1-2.48-3.75,35.3,35.3,0,0,1-.59-7.87V152h-7v-1a18.28,18.28,0,0,0,7.85-5.29,26.56,26.56,0,0,0,3.48-4.8,33.63,33.63,0,0,0,2.5-6.17l.66-2.16h2.43Z\"\n}), React.createElement(\"path\", {\n fill: \"#2d546f\",\n stroke: \"#2d536f\",\n strokeMiterlimit: 10,\n strokeWidth: \"1.44px\",\n d: \"M511.88,210.54l-1.18.33a7.82,7.82,0,0,0-2.22-2.55,4.92,4.92,0,0,0-2.74-.72,5.57,5.57,0,0,0-4.48,2.09,8.28,8.28,0,0,0-1.73,5.43q0,5.28,5.29,8.68t13.53,3.4q8.74,0,14.14-3.75t5.39-9.77a8.56,8.56,0,0,0-3.6-7.41q-3.59-2.58-10.25-2.58H513.64q-6.4,0-10.32-3t-4.05-7.54a8.26,8.26,0,0,1,4.31-7.33,34.24,34.24,0,0,1,8.1-2.82,22,22,0,0,1-8.82-6.88,15.57,15.57,0,0,1-3.13-9.42,16.57,16.57,0,0,1,4.9-11.74,20.6,20.6,0,0,1,14.84-6.45q6.27,0,12.81,4.44a24.68,24.68,0,0,1,5.53-3.43,14,14,0,0,1,5.34-1,8.81,8.81,0,0,1,5.17,1.37,5,5,0,0,1,2.36,4.18,3.6,3.6,0,0,1-.92,2.51,3,3,0,0,1-2.31,1,4.86,4.86,0,0,1-3.83-2.22l-1.49-2a4.22,4.22,0,0,0-3.52-1.57q-2.42,0-5.08,2.42,5.33,6.47,5.33,13.32,0,8.56-7.6,13.52a22.69,22.69,0,0,1-8.19,3.34c-.87.13-3.65.34-8.32.65q-9.6.59-9.6,5.35,0,4.19,8.18,4.19h10.79a38.88,38.88,0,0,1,9.62,1,19.73,19.73,0,0,1,6.87,3.17q5.76,4.25,5.76,12A15.41,15.41,0,0,1,539.7,224q-6.87,4.91-20.15,4.9-14.26,0-20.21-5.75a12.45,12.45,0,0,1-3.79-9.27,10.51,10.51,0,0,1,2.81-7.42,9,9,0,0,1,6.86-3,6.71,6.71,0,0,1,4.8,1.77,6.09,6.09,0,0,1,1.86,4.64Zm-2.81-43.4q0,7,3,11.47c2,3,4.5,4.43,7.59,4.43a8.08,8.08,0,0,0,7.29-4.4q2.61-4.39,2.61-12.22,0-8.08-3.39-12.91a7.48,7.48,0,0,0-6.38-3.59q-4.69,0-7.56,4.7a20.52,20.52,0,0,0-2.27,5.74A27.62,27.62,0,0,0,509.07,167.14Z\"\n}), React.createElement(\"path\", {\n fill: \"#2d546f\",\n stroke: \"#2d536f\",\n strokeMiterlimit: 10,\n strokeWidth: \"1.44px\",\n d: \"M606.53,198.66l1.11.65q-2.35,6.85-10.78,6.86a12.56,12.56,0,0,1-7.72-2.29,17.28,17.28,0,0,1-4.18-5.22,44.15,44.15,0,0,1-6.61,5.16,20.19,20.19,0,0,1-9.88,2.35q-7.2,0-11.42-3.46a11.47,11.47,0,0,1-4.21-9.35,12.7,12.7,0,0,1,3.46-9.08,15.67,15.67,0,0,1,4.5-3.23,43.81,43.81,0,0,1,7.39-2.45c3.78-1,6.58-1.76,8.39-2.42a17.09,17.09,0,0,0,4.54-2.35,7.83,7.83,0,0,0,2.87-3.52,15.91,15.91,0,0,0,.79-5.62q0-7.65-2.88-11.17a9.48,9.48,0,0,0-3.36-2.62,9.89,9.89,0,0,0-4.28-1,8.49,8.49,0,0,0-4.77,1.38,8.33,8.33,0,0,0-3.13,3.78l-1.64,3.79a4.71,4.71,0,0,1-4.7,3.07,5.11,5.11,0,0,1-3.72-1.47,4.92,4.92,0,0,1-1.51-3.69q0-3.33,4.72-5.61a28.15,28.15,0,0,1,6.31-1.93,37.6,37.6,0,0,1,7.36-.75,36.74,36.74,0,0,1,8.44,1,29.15,29.15,0,0,1,7.33,2.68,10.39,10.39,0,0,1,5.3,6.27,28.82,28.82,0,0,1,.52,6.6v24.17a44.25,44.25,0,0,0,.52,8.36q1.11,4.63,5.36,4.64a5.93,5.93,0,0,0,3.17-.72A11.52,11.52,0,0,0,606.53,198.66Zm-21.62-25.74a43.9,43.9,0,0,1-7.75,5.16,69.15,69.15,0,0,0-6.58,3.85,17.53,17.53,0,0,0-3.32,3.14,13.6,13.6,0,0,0-3.06,8.82,10.62,10.62,0,0,0,2.38,7.12,7.55,7.55,0,0,0,6,2.81,10.25,10.25,0,0,0,6-2,12.28,12.28,0,0,0,4.27-5.32q2-4.38,2-12.67Z\"\n}), React.createElement(\"path\", {\n fill: \"#2d546f\",\n stroke: \"#2d536f\",\n strokeMiterlimit: 10,\n strokeWidth: \"1.44px\",\n d: \"M624,210.54l-1.18.33a7.82,7.82,0,0,0-2.22-2.55,5,5,0,0,0-2.74-.72,5.57,5.57,0,0,0-4.48,2.09,8.28,8.28,0,0,0-1.73,5.43q0,5.28,5.29,8.68t13.52,3.4q8.76,0,14.15-3.75t5.39-9.77a8.56,8.56,0,0,0-3.6-7.41q-3.59-2.58-10.25-2.58H625.8q-6.4,0-10.32-3t-4.05-7.54a8.26,8.26,0,0,1,4.31-7.33,34.24,34.24,0,0,1,8.1-2.82A22,22,0,0,1,615,176.1a15.57,15.57,0,0,1-3.13-9.42,16.57,16.57,0,0,1,4.9-11.74,20.6,20.6,0,0,1,14.84-6.45q6.27,0,12.81,4.44A24.46,24.46,0,0,1,650,149.5a14,14,0,0,1,5.34-1,8.81,8.81,0,0,1,5.17,1.37,5,5,0,0,1,2.36,4.18,3.56,3.56,0,0,1-.93,2.51,3,3,0,0,1-2.3,1,4.86,4.86,0,0,1-3.83-2.22l-1.49-2a4.22,4.22,0,0,0-3.52-1.57q-2.41,0-5.08,2.42,5.32,6.47,5.33,13.32,0,8.56-7.6,13.52a22.84,22.84,0,0,1-8.19,3.34c-.87.13-3.65.34-8.32.65q-9.6.59-9.6,5.35,0,4.19,8.18,4.19h10.79a38.88,38.88,0,0,1,9.62,1,19.73,19.73,0,0,1,6.87,3.17q5.76,4.25,5.76,12A15.41,15.41,0,0,1,651.86,224q-6.87,4.91-20.15,4.9-14.26,0-20.21-5.75a12.45,12.45,0,0,1-3.79-9.27,10.51,10.51,0,0,1,2.81-7.42,9,9,0,0,1,6.85-3,6.72,6.72,0,0,1,4.81,1.77,6.09,6.09,0,0,1,1.86,4.64Zm-2.81-43.4q0,7,3,11.47c2,3,4.5,4.43,7.59,4.43a8.08,8.08,0,0,0,7.29-4.4q2.61-4.39,2.6-12.22,0-8.08-3.38-12.91a7.48,7.48,0,0,0-6.38-3.59q-4.7,0-7.56,4.7a20.83,20.83,0,0,0-2.28,5.74A28.1,28.1,0,0,0,621.23,167.14Z\"\n}), React.createElement(\"path\", {\n fill: \"#2d546f\",\n stroke: \"#2d536f\",\n strokeMiterlimit: 10,\n strokeWidth: \"1.44px\",\n d: \"M676.62,169.46c-.17,2.13-.26,3.68-.26,4.63A37.67,37.67,0,0,0,678,185.2a27.18,27.18,0,0,0,4.52,9,21.11,21.11,0,0,0,16.35,7.84,19.07,19.07,0,0,0,6.67-1.17,14.52,14.52,0,0,0,5.24-3.27,18.36,18.36,0,0,0,4-7.32l1.37.46q-1.71,7.65-7.29,11.53t-14.86,3.89a33.84,33.84,0,0,1-13.78-2.55,24.44,24.44,0,0,1-9.73-7.84Q665,188.4,665,177.62q0-14.7,10.52-23.06A27.27,27.27,0,0,1,693,148.49a24.76,24.76,0,0,1,9.67,1.86,19.72,19.72,0,0,1,12.28,19.11Zm28.48-2.55q-.45-6.54-2.4-10.06a13.67,13.67,0,0,0-4.68-5.06,11.5,11.5,0,0,0-6.25-1.87q-5.6,0-9.78,4.84a21.47,21.47,0,0,0-5,12.15Z\"\n}), React.createElement(\"path\", {\n fill: \"#2d546f\",\n stroke: \"#2d536f\",\n strokeMiterlimit: 10,\n strokeWidth: \"1.44px\",\n d: \"M839.73,115.83l.79,28.41-1.51.13q-4.5-14.51-11.56-21.59a23.17,23.17,0,0,0-17.05-7.08A26.7,26.7,0,0,0,797,118.86q-5.58,3.18-10.41,10.29-9.81,14.57-9.8,33.32a59.06,59.06,0,0,0,2.35,16.88,44.44,44.44,0,0,0,6.86,14q8.75,11.76,21.36,11.76a21.31,21.31,0,0,0,9.34-2.09,19,19,0,0,0,11-17.83q0-6.47-3.5-9.34T812.75,173v-1.5h41.68V173a27.38,27.38,0,0,0-8.07,1.6,6.84,6.84,0,0,0-3.43,3.69q-1.23,2.88-1.24,11.44,0,2.34.26,7.31l.13,1.5a12.27,12.27,0,0,0-3.65-.91,7.12,7.12,0,0,0-3.66,1.5,43.42,43.42,0,0,1-13.2,6,58.71,58.71,0,0,1-15.87,2.09A52.49,52.49,0,0,1,785,203.29a37,37,0,0,1-15-11.23A39.46,39.46,0,0,1,763.34,179,54.44,54.44,0,0,1,761,162.92a56.08,56.08,0,0,1,4.18-21.75A43.51,43.51,0,0,1,777,124.58a45,45,0,0,1,14.3-8.17,51,51,0,0,1,17.12-2.87,45.54,45.54,0,0,1,9.7,1,50.13,50.13,0,0,1,9.5,3.2l3.86,1.76a6.8,6.8,0,0,0,2.61.59q2.61,0,4-4.24Z\"\n}), React.createElement(\"path\", {\n fill: \"#2d546f\",\n stroke: \"#2d536f\",\n strokeMiterlimit: 10,\n strokeWidth: \"1.44px\",\n d: \"M875.73,158.54a18.89,18.89,0,0,1,5.29-6.2,20.76,20.76,0,0,1,12.34-3.85q4.25,0,6.47,1.89a5.24,5.24,0,0,1,2,4.18,4,4,0,0,1-1.2,3,4.29,4.29,0,0,1-3.11,1.17,5,5,0,0,1-3.85-1.82l-2-2.22a7.56,7.56,0,0,0-5.68-2.54q-4.44,0-6.92,5.74t-2.49,16v12.2l.07,5a28.83,28.83,0,0,0,.52,6.49,6.72,6.72,0,0,0,2,3.42q1.83,1.77,6.73,2.68V205H857v-1.37a17,17,0,0,0,5.62-1.46,6.68,6.68,0,0,0,2.74-3.22,14.15,14.15,0,0,0,1-4.52q.29-3,.29-8.74V169.63a89.79,89.79,0,0,0-.33-9.39,10.06,10.06,0,0,0-1.43-4.39,6.94,6.94,0,0,0-2.68-2.63,11.8,11.8,0,0,0-4.51-1v-1.37l16.84-2.35A54.66,54.66,0,0,1,875.73,158.54Z\"\n}), React.createElement(\"path\", {\n fill: \"#2d546f\",\n stroke: \"#2d536f\",\n strokeMiterlimit: 10,\n strokeWidth: \"1.44px\",\n d: \"M905.77,177.43q0-10.59,7.84-18.88,9.54-10.06,22.8-10.06t22.73,10.06q7.85,8.35,7.84,18.94a26.85,26.85,0,0,1-7.45,18.62,31.68,31.68,0,0,1-46.31,0,28.38,28.38,0,0,1-5.52-8.76A26.65,26.65,0,0,1,905.77,177.43Zm11.89-.75q0,11.34,5.1,19.24,5.75,8.81,14,8.81a13.33,13.33,0,0,0,6.86-2,18,18,0,0,0,5.75-5.48,30.36,30.36,0,0,0,4.11-9.16,38.84,38.84,0,0,0,1.57-10.67,36.77,36.77,0,0,0-1.66-10.8A32,32,0,0,0,949,157.3q-5.36-7.38-13.13-7.38-7.38,0-12.74,7.77T917.66,176.68Z\"\n}), React.createElement(\"path\", {\n fill: \"#2d546f\",\n stroke: \"#2d536f\",\n strokeMiterlimit: 10,\n strokeWidth: \"1.44px\",\n d: \"M1019.83,206.17A38.69,38.69,0,0,1,1019,198a26.45,26.45,0,0,1-19.34,8.16q-8.16,0-13.13-4t-4.83-11.09V168.39l-.07-5a28.41,28.41,0,0,0-.52-6.46,7.43,7.43,0,0,0-2-3.46c-1.26-1.17-3.53-2-6.79-2.61v-1.43h19.2v33.12a80,80,0,0,0,.49,10.35,14.82,14.82,0,0,0,1.79,5.52,9.77,9.77,0,0,0,4.11,3.49,13.74,13.74,0,0,0,6,1.28,16.47,16.47,0,0,0,6.85-1.44,12.24,12.24,0,0,0,5-3.91,14,14,0,0,0,2.51-5.87,66.68,66.68,0,0,0,.62-11V168.26l-.06-4.83a30.76,30.76,0,0,0-.49-6.46,7,7,0,0,0-2-3.46q-1.83-1.75-6.8-2.61v-1.43h19.21v35.42a83,83,0,0,0,.36,9.43,10.92,10.92,0,0,0,1.4,4.4,7.42,7.42,0,0,0,2.74,2.65,11.8,11.8,0,0,0,4.51,1v1.37Z\"\n}), React.createElement(\"path\", {\n fill: \"#2d546f\",\n stroke: \"#2d536f\",\n strokeMiterlimit: 10,\n strokeWidth: \"1.44px\",\n d: \"M1061.24,199.5l.07,12V216a28.83,28.83,0,0,0,.52,6.49,7.2,7.2,0,0,0,2,3.49c1.22,1.17,3.47,2,6.73,2.6v1.37h-28.87v-1.37a17.8,17.8,0,0,0,5.62-1.43,6.58,6.58,0,0,0,2.74-3.2,14.08,14.08,0,0,0,1-4.57c.2-2.05.3-5,.3-8.75V165.53q0-7.38-2.32-10.51t-7.81-3.14v-1.63l19.08-2.68a25.87,25.87,0,0,1,.72,5.75v1.24a37.87,37.87,0,0,1,9.06-4.67,29.32,29.32,0,0,1,9.2-1.4,25.45,25.45,0,0,1,17,5.94,25.19,25.19,0,0,1,6.85,9.47,31.77,31.77,0,0,1,2.41,12.55,33.93,33.93,0,0,1-2.58,13.26,26,26,0,0,1-7.33,10.12,26.35,26.35,0,0,1-17.68,6.34,22.47,22.47,0,0,1-8.45-1.44A34.33,34.33,0,0,1,1061.24,199.5Zm0-21.68a87.25,87.25,0,0,0,.78,13.58,17.74,17.74,0,0,0,2.8,7.39,13.92,13.92,0,0,0,10.8,5.48q6.9,0,12-6.53a28.45,28.45,0,0,0,4.81-9.28,36.77,36.77,0,0,0,1.69-11.17,38.66,38.66,0,0,0-1.59-11,29.26,29.26,0,0,0-4.46-9.25q-4.87-6.66-11.9-6.66a13.24,13.24,0,0,0-6.51,1.7,13.1,13.1,0,0,0-4.88,4.64,20.64,20.64,0,0,0-2.8,7.8A86.16,86.16,0,0,0,1061.24,177.82Z\"\n}));\n\nvar SvgComponent = function SvgComponent(props) {\n return React.createElement(\"svg\", _extends({\n viewBox: \"0 0 1188.92 488.89\",\n width: 200,\n height: 100\n }, props), _ref, _ref2, _ref3);\n};\n\nexport default __webpack_public_path__ + \"static/media/tabor-logo-color.257484f3.svg\";\nexport { SvgComponent as ReactComponent };","import styled from 'styled-components/macro';\r\n\r\n// import helpers\r\nimport { getBreakpoint } from '../../../util/theme';\r\n\r\nconst FooterLogo = styled.div`\r\n align-self: flex-end;\r\n\r\n height: 45px;\r\n\r\n margin: 20px 0 10px 0;\r\n\r\n svg {\r\n height: 45px;\r\n width: auto;\r\n\r\n margin: 4px 0 10px 0;\r\n padding: 0 15px 0 0;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n padding: 0 50px 0 0;\r\n }\r\n }\r\n\r\n &.tabor {\r\n height: 75px;\r\n\r\n svg {\r\n height: 75px;\r\n }\r\n }\r\n`;\r\n\r\nexport default FooterLogo;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import helpers\r\nimport { getBreakpoint, getColor } from '../../../util/theme';\r\n\r\nconst FooterText = styled.div`\r\n background-color: ${getColor('black')};\r\n\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n\r\n color: ${getColor('white')};\r\n font-size: 1.3rem;\r\n\r\n height: 40px;\r\n width: 100%;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n justify-content: flex-start;\r\n\r\n padding: 0 0 0 315px;\r\n }\r\n\r\n a {\r\n color: ${getColor('white')};\r\n text-decoration: underline;\r\n\r\n &:hover {\r\n color: ${getColor('accentGreen')};\r\n }\r\n }\r\n`;\r\n\r\nexport default FooterText;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import helpers\r\nimport { getBreakpoint } from '../../../util/theme';\r\n\r\nconst FooterWrapper = styled.footer`\r\n display: flex;\r\n flex-direction: column;\r\n align-items: flex-start;\r\n\r\n height: 105px;\r\n\r\n margin: 25px 0 0 0;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n margin: 0;\r\n }\r\n\r\n &.tabor {\r\n height: 135px;\r\n }\r\n`;\r\n\r\nexport default FooterWrapper;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\n// import assets\r\nimport { ReactComponent as CalconLogo } from '../../assets/logos/calcon-logo-color.svg';\r\nimport { ReactComponent as OthlLogo } from '../../assets/logos/othl-logo-color.svg';\r\nimport { ReactComponent as TaborLogo } from '../../assets/logos/tabor-logo-color.svg';\r\n\r\n// import styled components\r\nimport { FooterWrapper, FooterLogo, FooterText } from './styled';\r\n\r\nfunction Footer({ brand }) {\r\n const drawLogo = brand => {\r\n switch (brand) {\r\n case 'calcon':\r\n return ;\r\n case 'othl':\r\n return ;\r\n case 'tabor':\r\n return ;\r\n default:\r\n return ;\r\n }\r\n };\r\n\r\n const drawBrandName = brand => {\r\n switch (brand) {\r\n case 'calcon':\r\n return 'CalCon Mutal Mortgage';\r\n case 'othl':\r\n return 'OneTrust Home Loans';\r\n case 'tabor':\r\n return 'Tabor Mortgage Group';\r\n default:\r\n return 'OneTrust Home Loans';\r\n }\r\n };\r\n\r\n return (\r\n \r\n {drawLogo(brand)}\r\n \r\n \r\n © {new Date().getFullYear()} {drawBrandName(brand)}   •  {' '}\r\n \r\n Privacy Policy\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default Footer;\r\n\r\nFooter.propTypes = {\r\n brand: PropTypes.string.isRequired,\r\n};\r\n","import { createGlobalStyle } from 'styled-components/macro';\r\n\r\nimport { getColor, getFontWeight } from '../../util/theme';\r\n\r\nconst GlobalStyle = createGlobalStyle`\r\n * {\r\n box-sizing: border-box;\r\n font-family: Roboto, Segoe UI, Tahoma, Geneva, Verdana, sans-serif;\r\n }\r\n\r\n html, body {\r\n height: 100%;\r\n }\r\n\r\n html {\r\n font-size: 10px;\r\n }\r\n\r\n #root {\r\n height: 100%;\r\n }\r\n\r\n html, body {\r\n font-family: Roboto, Segoe UI, Tahoma, Geneva, Verdana, sans-serif;\r\n line-height: 1.4;\r\n\r\n margin: 0;\r\n padding: 0;\r\n }\r\n\r\n img, svg {\r\n max-width: 100%;\r\n }\r\n\r\n button, input {\r\n font-family: Roboto, Segoe UI, Tahoma, Geneva, Verdana, sans-serif;\r\n }\r\n\r\n h1 {\r\n font-size: 4rem;\r\n font-weight: ${getFontWeight('light')};\r\n }\r\n\r\n p {\r\n font-size: 1.6rem;\r\n\r\n }\r\n\r\n a {\r\n color: ${getColor('titleBlue')};\r\n text-decoration: none;\r\n }\r\n\r\n label {\r\n color: ${getColor('titleGrey')};\r\n font-size: 1.4rem;\r\n font-weight: ${getFontWeight('medium')};\r\n text-transform: uppercase;\r\n }\r\n\r\n input {\r\n color: ${getColor('complimentaryBlue')};\r\n font-size: 1.6rem;\r\n\r\n height: 40px;\r\n width: 100%;\r\n\r\n padding: 3px 10px;\r\n\r\n &.error {\r\n border: 2px solid ${getColor('accentRed')};\r\n }\r\n\r\n &::placeholder {\r\n color: ${getColor('medGrey')};\r\n }\r\n }\r\n\r\n /**\r\n * fix dumb iPhone input zoom thing\r\n * https://blog.osmosys.asia/2017/01/05/prevent-ios-from-zooming-in-on-input-fields/\r\n */\r\n /*** Styles added to fix the issue with zoom in on iphone ***/\r\n /* iPhone < 5: */\r\n @media screen and (device-aspect-ratio: 2/3) {\r\n select, textarea, input[type=\"text\"], input[type=\"password\"],\r\n input[type=\"datetime\"], input[type=\"datetime-local\"],\r\n input[type=\"date\"], input[type=\"month\"], input[type=\"time\"],\r\n input[type=\"week\"], input[type=\"number\"], input[type=\"email\"],\r\n input[type=\"url\"]{ font-size: 16px !important; }\r\n }\r\n\r\n /* iPhone 5, 5C, 5S, iPod Touch 5g */\r\n @media screen and (device-aspect-ratio: 40/71) {\r\n select, textarea, input[type=\"text\"], input[type=\"password\"],\r\n input[type=\"datetime\"], input[type=\"datetime-local\"],\r\n input[type=\"date\"], input[type=\"month\"], input[type=\"time\"],\r\n input[type=\"week\"], input[type=\"number\"], input[type=\"email\"],\r\n input[type=\"url\"]{ font-size: 16px !important; }\r\n }\r\n\r\n /* iPhone 6, iPhone 6s, iPhone 7 portrait/landscape */\r\n @media screen and (device-aspect-ratio: 375/667) {\r\n select, textarea, input[type=\"text\"], input[type=\"password\"],\r\n input[type=\"datetime\"], input[type=\"datetime-local\"],\r\n input[type=\"date\"], input[type=\"month\"], input[type=\"time\"],\r\n input[type=\"week\"], input[type=\"number\"], input[type=\"email\"],\r\n input[type=\"url\"]{ font-size: 16px !important; }\r\n }\r\n\r\n /* iPhone 6 Plus, iPhone 6s Plus, iPhone 7 Plus portrait/landscape */\r\n @media screen and (device-aspect-ratio: 9/16) {\r\n select, textarea, input[type=\"text\"], input[type=\"password\"],\r\n input[type=\"datetime\"], input[type=\"datetime-local\"],\r\n input[type=\"date\"], input[type=\"month\"], input[type=\"time\"],\r\n input[type=\"week\"], input[type=\"number\"], input[type=\"email\"],\r\n input[type=\"url\"]{ font-size: 16px !important; }\r\n }\r\n`;\r\n\r\nexport default GlobalStyle;\r\n","import styled from 'styled-components/macro';\r\n\r\nimport { getBreakpoint } from '../../util/theme';\r\n\r\nconst Grid = styled.div`\r\n margin: 0 auto;\r\n\r\n max-width: 100%;\r\n\r\n @media (min-width: ${getBreakpoint('sm')}) {\r\n width: 560px;\r\n }\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n width: 752px;\r\n }\r\n\r\n @media (min-width: ${getBreakpoint('lg')}) {\r\n width: 976px;\r\n }\r\n\r\n @media (min-width: ${getBreakpoint('xl')}) {\r\n width: 1184px;\r\n }\r\n\r\n &.load-container {\r\n height: 50vh;\r\n\r\n display: flex;\r\n }\r\n`;\r\n\r\nexport default Grid;\r\n","import React from 'react';\r\nimport styled from 'styled-components/macro';\r\n\r\n// import theme helpers\r\nimport { getColor } from '../../util/theme';\r\n\r\nconst SpinnerContainer = styled.div`\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n\r\n height: ${props => (props.heightProp ? `${props.heightProp}px` : `100px`)};\r\n width: ${props => (props.widthProp ? `${props.widthProp}px` : `100px`)};\r\n\r\n align-self: center;\r\n\r\n margin: ${props => (props.marginProp ? props.marginProp : '0 auto')};\r\n`;\r\n\r\nconst Spinner = styled.svg`\r\n animation: rotate 2s linear infinite;\r\n height: ${props => (props.heightProp ? `${props.heightProp}px` : `100px`)};\r\n width: ${props => (props.widthProp ? `${props.widthProp}px` : `100px`)};\r\n\r\n .path {\r\n stroke: ${getColor('accentGreen')};\r\n stroke-linecap: round;\r\n animation: dash 1.5s ease-in-out infinite;\r\n }\r\n @keyframes rotate {\r\n 100% {\r\n transform: rotate(360deg);\r\n }\r\n }\r\n @keyframes dash {\r\n 0% {\r\n stroke-dasharray: 1, 150;\r\n stroke-dashoffset: 0;\r\n }\r\n 50% {\r\n stroke-dasharray: 90, 150;\r\n stroke-dashoffset: -35;\r\n }\r\n 100% {\r\n stroke-dasharray: 90, 150;\r\n stroke-dashoffset: -124;\r\n }\r\n }\r\n`;\r\n\r\nexport default props => (\r\n \r\n \r\n \r\n \r\n \r\n);\r\n","import styled from 'styled-components/macro';\r\n\r\n// import theme helpers\r\nimport { getColor, getFontWeight, darkenColor } from '../../util/theme';\r\n\r\nconst SubmitButton = styled.button`\r\n align-self: center;\r\n\r\n background-color: ${getColor('accentOrange')};\r\n\r\n border: 1px solid transparent;\r\n border-radius: 2px;\r\n outline: 0;\r\n\r\n color: ${getColor('primaryBlue')};\r\n font-size: 1.8rem;\r\n text-align: center;\r\n\r\n padding: 0;\r\n margin: ${props => (props.margin ? props.margin : '0')};\r\n\r\n height: 40px;\r\n width: 300px;\r\n\r\n position: relative;\r\n\r\n transition: all 0.4s ease-in;\r\n\r\n cursor: pointer;\r\n\r\n &:hover {\r\n &::before {\r\n left: 0;\r\n right: 0;\r\n }\r\n }\r\n\r\n &::before {\r\n background-color: ${darkenColor('accentOrange', 0.1)};\r\n\r\n position: absolute;\r\n top: 0;\r\n right: 50%;\r\n bottom: 0;\r\n left: 50%;\r\n\r\n display: inline-block;\r\n\r\n content: '';\r\n\r\n transition: all 0.2s ease;\r\n }\r\n\r\n &::after {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n\r\n border: 1px solid transparent;\r\n\r\n color: ${getColor('primaryBlue')};\r\n font-size: 1.8rem;\r\n font-weight: ${getFontWeight('medium')};\r\n\r\n content: 'Submit';\r\n }\r\n\r\n &:focus {\r\n outline: 1px solid ${getColor('accentGreen')};\r\n }\r\n`;\r\n\r\nexport default SubmitButton;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import assets\r\nimport bannerBg from '../../../assets/img/bannerBg.jpg';\r\n\r\n// import helpers\r\nimport { getBreakpoint, getColor } from '../../../util/theme';\r\n\r\nconst DashboardWelcome = styled.section`\r\n background-image: url(${bannerBg});\r\n background-position: 0 50%;\r\n background-repeat: no-repeat;\r\n background-size: cover;\r\n\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n\r\n padding: 10px;\r\n\r\n word-wrap: break-word;\r\n\r\n @media (min-width: ${getBreakpoint('lg')}) {\r\n background-color: ${getColor('lightGrey')};\r\n\r\n height: 15vh;\r\n\r\n margin: 50px auto;\r\n padding: 0 50px;\r\n }\r\n\r\n h1 {\r\n color: ${getColor('titleBlue')};\r\n font-size: 3rem;\r\n\r\n margin: 0;\r\n padding: 0;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n font-size: 4.5rem;\r\n }\r\n\r\n @media (min-width: ${getBreakpoint('lg')}) {\r\n font-size: 6rem;\r\n }\r\n }\r\n`;\r\n\r\nexport default DashboardWelcome;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import helpers\r\nimport { getBreakpoint, getColor, getFontWeight } from '../../../util/theme';\r\n\r\n// import styled components\r\nimport { Grid } from '../../styled';\r\n\r\nconst DashboardWrapper = styled(Grid)`\r\n padding: 10px;\r\n\r\n h2 {\r\n color: ${getColor('titleBlue')};\r\n font-size: 2rem;\r\n font-weight: ${getFontWeight('light')};\r\n line-height: 1.5;\r\n\r\n margin: 0;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n font-size: 3rem;\r\n }\r\n }\r\n`;\r\n\r\nexport default DashboardWrapper;\r\n","import styled from 'styled-components/macro';\r\nimport { Link } from '@reach/router';\r\n\r\n// import helpers\r\nimport { getColor } from '../../../util/theme';\r\n\r\nconst DashboardItemLink = styled(Link)`\r\n &:focus {\r\n outline: 2px solid ${getColor('accentGreen')};\r\n }\r\n`;\r\n\r\nexport default DashboardItemLink;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import helpers\r\nimport { getColor } from '../../../util/theme';\r\n\r\nconst DashboardLoanCard = styled.div`\r\n border: 1px solid ${getColor('lightGrey')};\r\n border-top: 5px solid ${getColor('accentGreen')};\r\n\r\n padding: 20px;\r\n\r\n transition: all 0.2s ease-in-out;\r\n\r\n &:hover {\r\n transform: translateY(-10px);\r\n\r\n cursor: pointer;\r\n }\r\n\r\n hr {\r\n border-top: 0;\r\n border-color: ${getColor('lightestGrey')};\r\n\r\n margin: 10px 0;\r\n }\r\n`;\r\n\r\nexport default DashboardLoanCard;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import helpers\r\nimport { getBreakpoint, getColor, getFontWeight } from '../../../util/theme';\r\n\r\nconst DashboardLoanCardBody = styled.div`\r\n h3 {\r\n font-size: 1.2rem;\r\n font-weight: ${getFontWeight('regular')};\r\n\r\n margin: 0;\r\n padding: 0;\r\n }\r\n\r\n p {\r\n color: ${getColor('medGrey')};\r\n font-size: 1.8rem;\r\n font-weight: ${getFontWeight('light')};\r\n\r\n margin: 5px 0;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n font-size: 2rem;\r\n\r\n margin: 1em 0;\r\n }\r\n\r\n &:nth-of-type(2) {\r\n margin: 0;\r\n }\r\n\r\n &.prequal {\r\n margin: 1.5em 0 0 0;\r\n }\r\n\r\n &.placeholder {\r\n color: transparent;\r\n text-shadow: 0px 0px 15px ${getColor('black')};\r\n }\r\n }\r\n`;\r\n\r\nexport default DashboardLoanCardBody;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import helpers\r\nimport { getBreakpoint, getColor, getFontWeight } from '../../../util/theme';\r\n\r\nconst DashboardLoanCardTitle = styled.div`\r\n h2 {\r\n color: ${getColor('titleBlue')};\r\n font-size: 2rem;\r\n font-weight: ${getFontWeight('regular')};\r\n\r\n margin: 0 0 10px 0;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n font-size: 2.4rem;\r\n }\r\n }\r\n`;\r\n\r\nexport default DashboardLoanCardTitle;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import helpers\r\nimport { getBreakpoint, getColor } from '../../../util/theme';\r\n\r\nconst DashboardLoanContainer = styled.div`\r\n background-color: ${getColor('white')};\r\n\r\n padding: 25px 10px;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n padding: 25px;\r\n }\r\n`;\r\n\r\nexport default DashboardLoanContainer;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import helpers\r\nimport { getBreakpoint, getColor, getFontWeight } from '../../../util/theme';\r\n\r\nconst DashboardLoanContainerTitle = styled.div`\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n\r\n margin: 0 0 20px 0;\r\n padding: 5px 0;\r\n\r\n border-bottom: 1px solid ${getColor('lightestGrey')};\r\n\r\n cursor: pointer;\r\n\r\n svg {\r\n width: 20px;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n width: 25px;\r\n }\r\n }\r\n\r\n &:hover {\r\n h1 {\r\n color: ${getColor('accentGreen')};\r\n }\r\n\r\n svg {\r\n polygon {\r\n fill: ${getColor('accentGreen')};\r\n }\r\n }\r\n }\r\n\r\n h1 {\r\n color: ${getColor('titleBlue')};\r\n font-size: 2.5rem;\r\n font-weight: ${getFontWeight('regular')};\r\n\r\n margin: 0;\r\n padding: 0;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n font-size: 3rem;\r\n }\r\n }\r\n\r\n svg {\r\n transition: all 0.5s;\r\n\r\n &.isClosed {\r\n transform: rotate(-90deg);\r\n }\r\n }\r\n`;\r\n\r\nexport default DashboardLoanContainerTitle;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import helpers\r\nimport { getBreakpoint } from '../../../util/theme';\r\n\r\nconst DashboardLoanGrid = styled.div`\r\n @supports (display: grid) {\r\n display: grid;\r\n grid-template-columns: 1fr;\r\n grid-row-gap: 15px;\r\n\r\n padding: 10px 0;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n grid-template-columns: 1fr 1fr;\r\n grid-column-gap: 15px;\r\n }\r\n\r\n @media (min-width: ${getBreakpoint('lg')}) {\r\n grid-template-columns: 1fr 1fr 1fr;\r\n }\r\n }\r\n\r\n /* rules for IE11 */\r\n @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {\r\n display: flex;\r\n flex-wrap: wrap;\r\n\r\n a {\r\n flex-basis: 30%;\r\n\r\n margin: 15px 1%;\r\n }\r\n }\r\n`;\r\n\r\nexport default DashboardLoanGrid;\r\n","import styled from 'styled-components/macro';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst DashboardLoanGridWrapper = styled.div`\r\n /* opacity: ${props => (props.isOpen ? '1' : '0')}; */\r\n /* height: ${props => (props.isOpen ? 'auto' : '0')}; */\r\n\r\n /* better way of doing height transition with ref */\r\n height: ${props => (props.isOpen ? `${props.nodeHeight}px` : '0')};\r\n\r\n transition: all 0.3s ease;\r\n\r\n overflow: hidden;\r\n`;\r\n\r\nexport default DashboardLoanGridWrapper;\r\n\r\nDashboardLoanGridWrapper.propTypes = {\r\n isOpen: PropTypes.bool.isRequired,\r\n};\r\n","import React, { memo, useContext } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { format } from 'date-fns';\r\nimport ReactHtmlParser from 'react-html-parser';\r\n\r\n//import context\r\nimport { LoggedInContext } from '../Context/LoggedInContext';\r\n\r\n// import styled components\r\nimport { DashboardItemLink, DashboardLoanCard, DashboardLoanCardTitle, DashboardLoanCardBody } from './styled';\r\n\r\nconst ActiveOrFundedLoanCardBody = ({ dateTitle, displayDate, propertyAddr }) => (\r\n \r\n

    {ReactHtmlParser(propertyAddr)}

    \r\n
    \r\n

    {dateTitle}

    \r\n

    {displayDate}

    \r\n
    \r\n);\r\n\r\nconst PrequalifiedOrPreapprovedLoanCardBody = ({ loanCity }) => (\r\n \r\n
    \r\n

    {loanCity}

    \r\n
    \r\n);\r\n\r\n/**\r\n * normally I would split out these three components into three separate files\r\n * but they are all only used together here so together they will stay ¯\\\\_(ツ)_/¯\r\n * prop types for all three at bottom\r\n */\r\nfunction DashboardLoanItem(props) {\r\n const {\r\n functions: { handleIndividualLoan },\r\n } = useContext(LoggedInContext);\r\n\r\n const { borrower, propertyAddr, id, type } = props;\r\n\r\n return (\r\n \r\n handleIndividualLoan(id)}>\r\n \r\n

    {borrower}

    \r\n
    \r\n {type === 'prequalified' || type === 'preapproved' ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nexport default memo(DashboardLoanItem);\r\n\r\nDashboardLoanItem.propTypes = {\r\n // all loan types have these\r\n borrower: PropTypes.string.isRequired,\r\n category: PropTypes.string.isRequired,\r\n closing: PropTypes.string.isRequired,\r\n funding: PropTypes.string.isRequired,\r\n id: PropTypes.string.isRequired,\r\n loanOfficer: PropTypes.object.isRequired,\r\n propertyAddr: PropTypes.string.isRequired,\r\n type: PropTypes.string.isRequired,\r\n\r\n // only active & funded loans have these\r\n fmClosing: PropTypes.object,\r\n fmFunding: PropTypes.object,\r\n\r\n // only prequalified & preapproved loans have these\r\n loanCity: PropTypes.string,\r\n loanNotExpired: PropTypes.bool,\r\n loanPreQualifiedOrPreApproved: PropTypes.bool,\r\n};\r\n\r\nPrequalifiedOrPreapprovedLoanCardBody.propTypes = {\r\n loanCity: PropTypes.string.isRequired,\r\n};\r\n\r\nActiveOrFundedLoanCardBody.propTypes = {\r\n propertyAddr: PropTypes.string.isRequired,\r\n dateTitle: PropTypes.string.isRequired,\r\n displayDate: PropTypes.string.isRequired,\r\n};\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from 'react';\n\nvar _ref =\n/*#__PURE__*/\nReact.createElement(\"title\", null, \"dashboard-arrow\");\n\nvar _ref2 =\n/*#__PURE__*/\nReact.createElement(\"polygon\", {\n fill: \"#1b75bc\",\n points: \"14.57 18.64 29.14 0 0 0 14.57 18.64\"\n});\n\nvar SvgComponent = function SvgComponent(props) {\n return React.createElement(\"svg\", _extends({\n width: 29.14,\n height: 18.64,\n viewBox: \"0 0 29.14 18.64\"\n }, props), _ref, _ref2);\n};\n\nexport default __webpack_public_path__ + \"static/media/dashboard-arrow.f2a40580.svg\";\nexport { SvgComponent as ReactComponent };","import React, { useRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\n// import hooks\r\nimport { useIsOpen } from '../../hooks';\r\n\r\n// import components\r\nimport DashboardLoanItem from './DashboardLoanItem';\r\n\r\n// import styled components\r\nimport {\r\n DashboardLoanContainer,\r\n DashboardLoanContainerTitle,\r\n DashboardLoanGrid,\r\n DashboardLoanGridWrapper,\r\n} from './styled';\r\n\r\n// import svg\r\nimport { ReactComponent as DashboardArrow } from '../../assets/ui/dashboard-arrow.svg';\r\n\r\nfunction DashboardLoanList({ defaultOpen, loans, title, type }) {\r\n const [isOpen, setIsOpen] = useIsOpen(defaultOpen);\r\n const loanGridRef = useRef();\r\n\r\n const mapLoans = loans => {\r\n return loans.map((loan, i) => {\r\n /**\r\n * limit numbers of rendered loans during development\r\n * not enabled for production currently\r\n */\r\n // if (i < 20) {\r\n // return ;\r\n // }\r\n // return null;\r\n\r\n return ;\r\n });\r\n };\r\n\r\n return (\r\n \r\n setIsOpen()}>\r\n

    {title}

    \r\n \r\n
    \r\n \r\n {mapLoans(loans)}\r\n \r\n
    \r\n );\r\n}\r\n\r\nexport default DashboardLoanList;\r\n\r\nDashboardLoanList.propTypes = {\r\n defaultOpen: PropTypes.bool.isRequired,\r\n loans: PropTypes.array.isRequired,\r\n title: PropTypes.string.isRequired,\r\n type: PropTypes.string.isRequired,\r\n};\r\n","import React, { memo, useContext } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\n// import context\r\nimport { LoggedInContext } from '../Context/LoggedInContext';\r\n\r\n// import styled components\r\nimport { Spinner } from '../styled';\r\nimport { DashboardWelcome, DashboardWrapper } from './styled';\r\n\r\n// import components\r\nimport DashboardLoanList from './DashboardLoanList';\r\n\r\n/**\r\n * does not make use of any props, but does receive router props - see prop types below\r\n */\r\nfunction Dashboard() {\r\n const {\r\n state: {\r\n profileData: { firstName, lastName },\r\n processedLoans: { active, funded, prequalified, preapproved },\r\n },\r\n errors: { loansError },\r\n loading: { loansLoading },\r\n } = useContext(LoggedInContext);\r\n\r\n const loanTypes = [\r\n { type: 'prequalified', title: 'Pre-Qualified Loans', loans: prequalified, defaultOpen: true },\r\n { type: 'preapproved', title: 'Pre-Approved Loans', loans: preapproved, defaultOpen: true },\r\n {\r\n type: 'active',\r\n title: 'In Process Loans',\r\n loans: active,\r\n defaultOpen: true,\r\n },\r\n {\r\n type: 'funded',\r\n title: 'Funded Loans',\r\n loans: funded,\r\n defaultOpen: false,\r\n },\r\n ];\r\n\r\n const drawLoanLists = () => {\r\n const loanTypesWithLoans = loanTypes.filter(type => type.loans.length > 0);\r\n\r\n if (loanTypesWithLoans.length === 0) {\r\n return (\r\n

    \r\n No loans found for {firstName} {lastName}.\r\n

    \r\n );\r\n }\r\n\r\n return loanTypes.map(type => {\r\n if (type.loans.length > 0) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n return null;\r\n });\r\n };\r\n\r\n if (loansError) {\r\n return (\r\n \r\n \r\n

    Welcome,

    \r\n

    \r\n {firstName} {lastName}\r\n

    \r\n
    \r\n

    There was an error loading loans. Please try again later.

    \r\n
    \r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n

    Welcome,

    \r\n

    \r\n {firstName} {lastName}\r\n

    \r\n
    \r\n {loansLoading ? :
    {drawLoanLists()}
    }\r\n
    \r\n );\r\n}\r\n\r\nexport default memo(Dashboard);\r\n\r\n/**\r\n * Dashboard props are all from router\r\n * it doesn't actually use any of these but including for awareness\r\n */\r\nDashboard.propTypes = {\r\n '*': PropTypes.string.isRequired,\r\n location: PropTypes.object.isRequired,\r\n navigate: PropTypes.func.isRequired,\r\n path: PropTypes.string.isRequired,\r\n uri: PropTypes.string.isRequired,\r\n};\r\n\r\n/**\r\n * set default props bc all return undefined on initial render\r\n */\r\nDashboard.defaultProps = {\r\n '*': '',\r\n location: {},\r\n navigate: () => null,\r\n path: '',\r\n uri: '',\r\n};\r\n","import { useEffect, useState } from 'react';\r\n\r\nimport { getAndCacheIndividualLoanDetails } from '../../App/functions';\r\n\r\nfunction useGetIndividualLoanDetails(userState, loanNumber, loanCache, loanCacheList, loanCacheDispatch) {\r\n const [loanData, setLoanData] = useState({});\r\n\r\n useEffect(() => {\r\n const isLoanInCache = loanCacheList.includes(loanNumber);\r\n\r\n if (isLoanInCache) {\r\n setLoanData(loanCache[loanCacheList.indexOf(loanNumber)]);\r\n } else if (userState.userId === 0) {\r\n return;\r\n } else {\r\n getAndCacheIndividualLoanDetails(userState, loanNumber, loanCacheDispatch);\r\n }\r\n\r\n return function cleanup() {\r\n setLoanData({});\r\n };\r\n }, [loanCache[loanCacheList.indexOf(loanNumber)]]);\r\n\r\n return loanData;\r\n}\r\n\r\nexport default useGetIndividualLoanDetails;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from 'react';\n\nvar _ref =\n/*#__PURE__*/\nReact.createElement(\"title\", null, \"loans-icon\");\n\nvar _ref2 =\n/*#__PURE__*/\nReact.createElement(\"g\", null, React.createElement(\"rect\", {\n fill: \"#6a80a2\",\n width: 45.41,\n height: 40.22,\n rx: 4.58\n}), React.createElement(\"g\", null, React.createElement(\"g\", null, React.createElement(\"polygon\", {\n fill: \"#fff\",\n points: \"37.78 17.6 22.7 7.01 22.7 7.01 22.7 7.01 7.63 17.6 8.74 19.17 22.7 9.37 36.67 19.17 37.78 17.6\"\n}), React.createElement(\"polygon\", {\n fill: \"#fff\",\n points: \"30.34 11.24 33.78 13.72 33.78 7.01 30.34 7.01 30.34 11.24\"\n})), React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M22.71,11.24,10.84,19.72V33.21H34.57V19.72Zm.74,18.07V31H21.83V29.43A6.76,6.76,0,0,1,19,28.72l.5-1.94a5.83,5.83,0,0,0,2.75.73c.94,0,1.59-.37,1.59-1s-.53-1-1.76-1.44c-1.77-.59-3-1.42-3-3a3.06,3.06,0,0,1,2.8-3V17.49h1.62V19a6.13,6.13,0,0,1,2.41.54l-.49,1.87a5.51,5.51,0,0,0-2.38-.56c-1.08,0-1.42.47-1.42.93s.57.89,2,1.42c2,.7,2.77,1.61,2.77,3.1A3.17,3.17,0,0,1,23.45,29.31Z\"\n})));\n\nvar SvgComponent = function SvgComponent(props) {\n return React.createElement(\"svg\", _extends({\n width: 45.41,\n height: 40.22,\n viewBox: \"0 0 45.41 40.22\"\n }, props), _ref, _ref2);\n};\n\nexport default __webpack_public_path__ + \"static/media/loans-icon.46df840c.svg\";\nexport { SvgComponent as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from 'react';\n\nvar _ref =\n/*#__PURE__*/\nReact.createElement(\"title\", null, \"down-arrow\");\n\nvar SvgComponent = function SvgComponent(props) {\n return React.createElement(\"svg\", _extends({\n width: 10.3,\n height: 6.8,\n viewBox: \"0 0 10.3 6.8\"\n }, props), _ref, React.createElement(\"polygon\", {\n points: \"5.17 6.8 0 0 10.3 0 5.17 6.8\",\n style: {\n \"fill\": \"#5481a3\"\n }\n }));\n};\n\nexport default __webpack_public_path__ + \"static/media/down-arrow.3ab8454a.svg\";\nexport { SvgComponent as ReactComponent };","import styled from 'styled-components/macro';\r\n\r\n// import helpers\r\nimport { getColor, getFontWeight } from '../../../util/theme';\r\n\r\nconst LoanHeaderAddress = styled.div`\r\n display: flex;\r\n align-items: center;\r\n\r\n position: relative;\r\n\r\n padding: 0 0 15px 0;\r\n\r\n svg {\r\n height: 50px;\r\n width: 50px;\r\n }\r\n\r\n p {\r\n color: ${getColor('titleBlue')};\r\n font-size: 1.8rem;\r\n font-weight: ${getFontWeight('regular')};\r\n\r\n margin: 0 0 0 15px;\r\n }\r\n`;\r\n\r\nexport default LoanHeaderAddress;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import theme helpers\r\nimport { getBreakpoint } from '../../../util/theme';\r\n\r\nconst LoanHeaderContacts = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n align-items: flex-start;\r\n\r\n @media (min-width: ${getBreakpoint('lg')}) {\r\n flex-direction: row;\r\n }\r\n`;\r\n\r\nexport default LoanHeaderContacts;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import helpers\r\nimport { getBreakpoint, getColor } from '../../../util/theme';\r\n\r\nconst LoanHeaderContainer = styled.div`\r\n background-color: ${getColor('white')};\r\n\r\n margin: 0;\r\n padding: 10px 25px 0 25px;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n margin: 50px 0 25px 0;\r\n padding: 25px;\r\n }\r\n`;\r\n\r\nexport default LoanHeaderContainer;\r\n","import styled from 'styled-components/macro';\r\n\r\nconst LoanHeaderContent = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: space-between;\r\n`;\r\n\r\nexport default LoanHeaderContent;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import helpers\r\nimport { getColor, getFontWeight } from '../../../util/theme';\r\n\r\nexport const LoanHeaderContentEntry = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n align-items: flex-start;\r\n\r\n span {\r\n &:hover, &:focus {\r\n div {\r\n display: block;\r\n }\r\n\r\n svg {\r\n border: 1px solid ${getColor('primaryBlue')};\r\n }\r\n }\r\n }\r\n\r\n h3 {\r\n display: flex;\r\n align-items: center;\r\n\r\n color: ${getColor('titleBlue')};\r\n font-size: 2.3rem;\r\n font-weight: ${getFontWeight('light')};\r\n\r\n margin: 0;\r\n }\r\n\r\n svg {\r\n height: 25px;\r\n width: 25px;\r\n\r\n margin: 0 0 0 15px;\r\n padding: 5px;\r\n\r\n border: 1px solid ${getColor('borderGrey')};\r\n border-radius: 5px;\r\n }\r\n`;\r\n\r\nexport default LoanHeaderContentEntry;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import helpers\r\nimport { getColor, getFontWeight } from '../../../util/theme';\r\n\r\nconst LoanHeaderContentEntryContact = styled.div`\r\n background-color: ${getColor('white')};\r\n\r\n border: 1px solid ${getColor('borderGrey')};\r\n\r\n display: none;\r\n\r\n position: absolute;\r\n top: 50px;\r\n z-index: 1000;\r\n\r\n padding: 15px 15px 5px 15px;\r\n\r\n a,\r\n p {\r\n color: ${getColor('primaryBlue')};\r\n font-size: 1.6rem;\r\n font-weight: ${getFontWeight('light')};\r\n\r\n margin: 0;\r\n padding: 0 0 15px 0;\r\n }\r\n\r\n a {\r\n display: block;\r\n\r\n &:hover {\r\n color: ${getColor('accentGreen')};\r\n text-decoration: underline;\r\n }\r\n }\r\n\r\n h4 {\r\n color: ${getColor('complimentaryBlue')};\r\n font-size: 1.2rem;\r\n text-transform: uppercase;\r\n\r\n margin: 0;\r\n padding: 0;\r\n }\r\n`;\r\n\r\nexport default LoanHeaderContentEntryContact;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import helpers\r\nimport { getBreakpoint } from '../../../util/theme';\r\n\r\nconst LoanHeaderContentSection = styled.div`\r\n flex-basis: 33%;\r\n\r\n display: flex;\r\n align-items: center;\r\n\r\n position: relative;\r\n\r\n margin: 0 0 15px 0;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n margin: 0;\r\n }\r\n`;\r\n\r\nexport default LoanHeaderContentSection;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import helpers\r\nimport { getColor, getFontWeight } from '../../../util/theme';\r\n\r\nconst LoanHeaderPersonLabel = styled.p`\r\n color: ${getColor('medGrey')};\r\n font-size: 1.4rem;\r\n font-weight: ${getFontWeight('medium')};\r\n\r\n margin: 0;\r\n`;\r\n\r\nexport default LoanHeaderPersonLabel;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import helpers\r\nimport { getColor, getFontWeight } from '../../../util/theme';\r\n\r\nconst LoanHeaderTitle = styled.div`\r\n border-bottom: 1px solid ${getColor('lightestGrey')};\r\n\r\n margin: 0 0 25px 0;\r\n\r\n h1 {\r\n color: ${getColor('titleBlue')};\r\n\r\n font-size: 3rem;\r\n font-weight: ${getFontWeight('regular')};\r\n\r\n margin: 0;\r\n padding: 0;\r\n }\r\n`;\r\n\r\nexport default LoanHeaderTitle;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport ReactHtmlParser from 'react-html-parser';\r\n\r\n// import assets\r\nimport { ReactComponent as LoansIcon } from '../../assets/icons/loans-icon.svg';\r\nimport { ReactComponent as DownArrow } from '../../assets/ui/down-arrow.svg';\r\n\r\n// import styled components\r\nimport {\r\n LoanHeaderAddress,\r\n LoanHeaderContacts,\r\n LoanHeaderContainer,\r\n LoanHeaderContent,\r\n LoanHeaderContentEntry,\r\n LoanHeaderContentEntryContact,\r\n LoanHeaderContentSection,\r\n LoanHeaderPersonLabel,\r\n LoanHeaderTitle,\r\n} from './styled';\r\n\r\nfunction LoanHeader({ loanData }) {\r\n /**\r\n * probably redo how this is done, it works but eh could be cleaner/less mutating\r\n */\r\n let defaultInfo = {\r\n propertyAddress: '',\r\n contacts: {\r\n borrower: {\r\n name: '',\r\n email: '',\r\n address: '',\r\n },\r\n coBorrower: {\r\n exists: false,\r\n name: '',\r\n email: '',\r\n address: '',\r\n },\r\n mlo: {\r\n name: '',\r\n email: '',\r\n phone: '',\r\n nmls: '',\r\n },\r\n },\r\n };\r\n\r\n if (loanData.hasOwnProperty('contacts')) {\r\n defaultInfo = { ...loanData };\r\n }\r\n\r\n const {\r\n propertyAddress,\r\n contacts: { borrower, coBorrower, mlo },\r\n } = defaultInfo;\r\n\r\n return (\r\n \r\n \r\n

    {`${loanData.loanType} Loan`}

    \r\n
    \r\n \r\n \r\n \r\n

    {ReactHtmlParser(propertyAddress)}

    \r\n
    \r\n \r\n \r\n \r\n Borrower\r\n \r\n

    \r\n {borrower.name}\r\n \r\n

    \r\n \r\n

    Email

    \r\n \r\n {borrower.email}\r\n \r\n

    Address

    \r\n

    {ReactHtmlParser(borrower.address)}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {coBorrower.exists ? (\r\n \r\n \r\n Co-Borrower\r\n \r\n

    \r\n {coBorrower.name}\r\n \r\n

    \r\n \r\n

    Email

    \r\n \r\n {coBorrower.email}\r\n \r\n

    Address

    \r\n

    {ReactHtmlParser(coBorrower.address)}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n ) : null}\r\n \r\n \r\n Mortgage Loan Officer\r\n \r\n

    \r\n {mlo.name}\r\n \r\n

    \r\n \r\n

    NMLS#

    \r\n

    {mlo.nmls}

    \r\n

    Email

    \r\n \r\n {mlo.email}\r\n \r\n

    Phone

    \r\n

    {mlo.phone}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {!coBorrower.exists ? : null}\r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nexport default LoanHeader;\r\n\r\nLoanHeader.propTypes = {\r\n loanData: PropTypes.object.isRequired,\r\n};\r\n","import styled from 'styled-components/macro';\r\n\r\n// import helpers\r\nimport { getColor, getFontWeight } from '../../../../../util/theme';\r\n\r\nconst AfLoanContactCardBody = styled.div`\r\n div {\r\n padding: 0 0 10px 0;\r\n }\r\n\r\n span {\r\n color: ${getColor('complimentaryBlue')};\r\n font-size: 1.2rem;\r\n font-weight: ${getFontWeight('bold')};\r\n }\r\n\r\n p,\r\n a {\r\n color: ${getColor('titleGrey')};\r\n font-size: 1.6rem;\r\n font-weight: ${getFontWeight('regular')};\r\n word-break: break-all;\r\n\r\n margin: 0;\r\n }\r\n\r\n a {\r\n &:hover {\r\n color: ${getColor('accentGreen')};\r\n }\r\n }\r\n`;\r\n\r\nexport default AfLoanContactCardBody;\r\n","import styled from 'styled-components/macro';\r\nimport PropTypes from 'prop-types';\r\n\r\n// import helpers\r\nimport { getColor } from '../../../../../util/theme';\r\n\r\nconst AfLoanContactCardBodyWrapper = styled.div`\r\n background-color: ${getColor('cardGrey')};\r\n\r\n opacity: ${props => (props.isOpen ? '1' : '0')};\r\n height: ${props => (props.isOpen ? 'auto' : '0')};\r\n\r\n padding: ${props => (props.isOpen ? '15px 15px 5px 15px' : '5px 15px')};\r\n\r\n transition: all 0.3s ease;\r\n\r\n overflow: hidden;\r\n`;\r\n\r\nexport default AfLoanContactCardBodyWrapper;\r\n\r\nAfLoanContactCardBodyWrapper.propTypes = {\r\n isOpen: PropTypes.bool.isRequired,\r\n};\r\n","import styled from 'styled-components/macro';\r\n\r\n// import helpers\r\nimport { getColor, getFontWeight } from '../../../../../util/theme';\r\n\r\nconst AfLoanContactCardHeader = styled.div`\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n\r\n background-color: ${getColor('cardBlue')};\r\n\r\n padding: 10px 25px;\r\n margin: 0 0 10px 0;\r\n\r\n cursor: pointer;\r\n\r\n &:hover {\r\n background-color: ${getColor('accentGreen')};\r\n }\r\n\r\n h3 {\r\n color: ${getColor('white')};\r\n font-size: 1.5rem;\r\n font-weight: ${getFontWeight('regular')};\r\n\r\n margin: 0;\r\n padding: 0;\r\n }\r\n\r\n svg {\r\n &:first-of-type {\r\n visibility: hidden;\r\n }\r\n\r\n &:not(first-of-type) {\r\n transition: all 0.3s;\r\n\r\n &.isClosed {\r\n transform: rotate(-90deg);\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport default AfLoanContactCardHeader;\r\n","import styled from 'styled-components/macro';\r\n\r\nconst AfLoanContactCardWrapper = styled.li`\r\n margin: 0 0 10px 0;\r\n`;\r\n\r\nexport default AfLoanContactCardWrapper;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import helpers\r\nimport { getBreakpoint } from '../../../../../util/theme';\r\n\r\nconst AfLoanContactsGroup = styled.ul`\r\n list-style-type: none;\r\n margin: 10px 0;\r\n padding: 0 15px 0 0;\r\n\r\n /** use max width to allow user agent stylesheet defaults non-mobile screens */\r\n @media (max-width: ${getBreakpoint('md')}) {\r\n margin: 0;\r\n padding: 0;\r\n }\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n flex-basis: 50%;\r\n\r\n max-width: 50%;\r\n }\r\n`;\r\n\r\nexport default AfLoanContactsGroup;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import helpers\r\nimport { getBreakpoint } from '../../../../../util/theme';\r\n\r\nconst AfLoanContactsGroupRow = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n flex-direction: row;\r\n }\r\n`;\r\n\r\nexport default AfLoanContactsGroupRow;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import helpers\r\nimport { getBreakpoint } from '../../../../../util/theme';\r\n\r\nconst AfLoanContactsGroupsWrapper = styled.div`\r\n width: 100%;\r\n\r\n padding: 25px 0 0 0;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n padding: 25px 25px 0 0;\r\n }\r\n`;\r\n\r\nexport default AfLoanContactsGroupsWrapper;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import helpers\r\nimport { getBreakpoint } from '../../../../../util/theme';\r\n\r\nconst AfLoanDatesAndContactsWrapper = styled.div`\r\n flex-basis: 55%;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n margin: 25px 25px 0 0;\r\n }\r\n`;\r\n\r\nexport default AfLoanDatesAndContactsWrapper;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import helpers\r\nimport { getBreakpoint, getColor, getFontWeight } from '../../../../../util/theme';\r\n\r\nconst AfLoanKeyDatesList = styled.div`\r\n ul {\r\n list-style-type: none;\r\n\r\n color: ${getColor('primaryBlue')};\r\n font-size: 1.8rem;\r\n\r\n padding: 0;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n padding: 0 0 0 50px;\r\n }\r\n\r\n li {\r\n display: flex;\r\n\r\n height: 50px;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n padding: 0;\r\n }\r\n\r\n &.label {\r\n span {\r\n color: ${getColor('complimentaryBlue')};\r\n font-weight: ${getFontWeight('bold')};\r\n\r\n &:first-of-type {\r\n width: 125px;\r\n\r\n justify-content: center;\r\n\r\n border-right: 2px solid ${getColor('lightestGrey')};\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n width: 150px;\r\n }\r\n }\r\n }\r\n }\r\n\r\n span {\r\n height: 100%;\r\n\r\n display: flex;\r\n align-items: center;\r\n justify-content: flex-start;\r\n\r\n color: ${getColor('titleGrey')};\r\n font-weight: ${getFontWeight('regular')};\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n margin: 0 60px 0 0;\r\n padding: 0;\r\n }\r\n\r\n &:nth-of-type(2) {\r\n padding: 0 25px;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n padding: 0;\r\n }\r\n }\r\n\r\n &.date {\r\n justify-content: flex-end;\r\n\r\n border-right: 2px solid ${getColor('lightestGrey')};\r\n\r\n font-weight: ${getFontWeight('light')};\r\n\r\n width: 125px;\r\n\r\n padding: 0 25px 0 0;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n width: 150px;\r\n\r\n padding: 0 50px 0 0;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport default AfLoanKeyDatesList;\r\n","import styled from 'styled-components/macro';\r\nimport PropTypes from 'prop-types';\r\n\r\n// import helpers\r\nimport { getBreakpoint, getColor } from '../../../../../util/theme';\r\n\r\nconst AfLoanTab = styled.div`\r\n display: flex;\r\n align-items: center;\r\n\r\n border-bottom: 2px solid ${props => (props.active ? getColor('cardBlue') : getColor('medGrey'))};\r\n\r\n margin: 0 10px 0 0;\r\n padding: 0 5px;\r\n\r\n cursor: pointer;\r\n\r\n transition: all 0.2s ease-in-out;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n min-width: 216px;\r\n\r\n margin: 0 15px;\r\n padding: 0 5px 10px 5px;\r\n }\r\n\r\n &:hover {\r\n transform: translateY(-10px);\r\n\r\n border-bottom: 2px solid ${getColor('complimentaryBlue')};\r\n\r\n h2 {\r\n color: ${getColor('complimentaryBlue')};\r\n }\r\n }\r\n\r\n svg {\r\n width: 30px;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n width: 45px;\r\n }\r\n }\r\n`;\r\n\r\nexport default AfLoanTab;\r\n\r\nAfLoanTab.propTypes = {\r\n active: PropTypes.bool.isRequired,\r\n};\r\n","import styled from 'styled-components/macro';\r\n\r\n// import helpers\r\nimport { getBreakpoint } from '../../../../../util/theme';\r\n\r\nconst AfLoanTabsBodyWrapper = styled.div`\r\n display: flex;\r\n justify-content: center;\r\n\r\n width: 100%;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n justify-content: center;\r\n }\r\n`;\r\n\r\nexport default AfLoanTabsBodyWrapper;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import helpers\r\nimport { getBreakpoint } from '../../../../../util/theme';\r\n\r\nconst AfLoanTabsHeaderWrapper = styled.div`\r\n display: flex;\r\n justify-content: center;\r\n\r\n padding: 25px 0 0 0;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n padding: 25px 40px 0 0;\r\n }\r\n`;\r\n\r\nexport default AfLoanTabsHeaderWrapper;\r\n","import styled from 'styled-components/macro';\r\nimport PropTypes from 'prop-types';\r\n\r\n// import helpers\r\nimport { getBreakpoint, getColor, getFontWeight } from '../../../../../util/theme';\r\n\r\nconst AfLoanTabTitle = styled.h2`\r\n color: ${props => (props.active ? getColor('complimentaryBlue') : getColor('medGrey'))};\r\n font-size: 2rem;\r\n font-weight: ${props => (props.active ? getFontWeight('regular') : getFontWeight('light'))};\r\n\r\n margin: 0 10px;\r\n\r\n transition: all 0.2s linear;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n font-size: 3rem;\r\n }\r\n`;\r\n\r\nexport default AfLoanTabTitle;\r\n\r\nAfLoanTabTitle.propTypes = {\r\n active: PropTypes.bool.isRequired,\r\n};\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from 'react';\n\nvar _ref =\n/*#__PURE__*/\nReact.createElement(\"title\", null, \"contacts-icon\");\n\nvar _ref2 =\n/*#__PURE__*/\nReact.createElement(\"g\", null, React.createElement(\"rect\", {\n fill: \"#fd5f54\",\n width: 45.07,\n height: 39.92,\n rx: 3.97\n}), React.createElement(\"g\", null, React.createElement(\"rect\", {\n fill: \"#fff\",\n x: 9.18,\n y: 10.31,\n width: 6.08,\n height: 2.46,\n rx: 0.55\n}), React.createElement(\"rect\", {\n fill: \"#fff\",\n x: 9.18,\n y: 15.99,\n width: 6.08,\n height: 2.46,\n rx: 0.55\n}), React.createElement(\"rect\", {\n fill: \"#fff\",\n x: 9.18,\n y: 21.78,\n width: 6.08,\n height: 2.46,\n rx: 0.55\n}), React.createElement(\"rect\", {\n fill: \"#fff\",\n x: 9.18,\n y: 27.46,\n width: 6.08,\n height: 2.46,\n rx: 0.55\n})), React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M31.87,5.67H15.26a3.42,3.42,0,0,0-3.41,3.41v.8h3.32a.75.75,0,0,1,.75.74v1.81a.75.75,0,0,1-.75.74H11.85v2.41h3.32a.76.76,0,0,1,.75.75v1.8a.76.76,0,0,1-.75.75H11.85v2.41h3.32a.75.75,0,0,1,.75.74v1.81a.75.75,0,0,1-.75.74H11.85V27h3.32a.75.75,0,0,1,.75.74v1.81a.75.75,0,0,1-.75.74H11.85v.55a3.42,3.42,0,0,0,3.41,3.41H31.87a3.43,3.43,0,0,0,3.41-3.41V9.08A3.43,3.43,0,0,0,31.87,5.67ZM21.52,12.35l3.28,3.93-.74.64-3.39-4Zm9.59,14.28c-.71.88-2.23,1.46-4.49.26a22.78,22.78,0,0,1-6.79-5.84,9.46,9.46,0,0,1-1.71-3.86,3.26,3.26,0,0,1,.58-2.52c.18-.21.77-.8.77-.8l1-.77,3.4,4-1.21,1.13a1.62,1.62,0,0,0-.11,2.26,17.86,17.86,0,0,0,2.74,2.63c1.68,1.34,3.1-1.39,3.1-1.39l4.09,3.14S31.46,26.2,31.11,26.63Zm1.54-2-4.16-3.16.6-.86,4.15,3.24Z\"\n}));\n\nvar SvgComponent = function SvgComponent(props) {\n return React.createElement(\"svg\", _extends({\n width: 45.07,\n height: 39.92,\n viewBox: \"0 0 45.07 39.92\"\n }, props), _ref, _ref2);\n};\n\nexport default __webpack_public_path__ + \"static/media/contacts-icon.cd796c40.svg\";\nexport { SvgComponent as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from 'react';\n\nvar _ref =\n/*#__PURE__*/\nReact.createElement(\"title\", null, \"calendar-icon\");\n\nvar _ref2 =\n/*#__PURE__*/\nReact.createElement(\"g\", null, React.createElement(\"rect\", {\n fill: \"#45c7f3\",\n width: 45.41,\n height: 40.22,\n rx: 3.64\n}), React.createElement(\"g\", null, React.createElement(\"g\", null, React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M33.67,9.11H30.84v1.74a1.82,1.82,0,1,1-3.64,0V9.11h-8v1.74a1.82,1.82,0,1,1-3.64,0V9.11H12.84a2.33,2.33,0,0,0-2.32,2.32v1.45a.89.89,0,0,0,.87.86H35.12a.89.89,0,0,0,.87-.86V11.43A2.33,2.33,0,0,0,33.67,9.11Z\"\n}), React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M35.12,16.64H11.39a.89.89,0,0,0-.87.87V31.68A2.33,2.33,0,0,0,12.84,34H33.67A2.32,2.32,0,0,0,36,31.68V17.51A.89.89,0,0,0,35.12,16.64ZM33.6,30.49a1.88,1.88,0,0,1-1.88,1.88H14.79a1.88,1.88,0,0,1-1.88-1.88V19a.73.73,0,0,1,.71-.71H32.9a.72.72,0,0,1,.7.71Z\"\n})), React.createElement(\"rect\", {\n fill: \"#fff\",\n x: 16.13,\n y: 6.16,\n width: 2.66,\n height: 5.56,\n rx: 1.33\n}), React.createElement(\"rect\", {\n fill: \"#fff\",\n x: 27.74,\n y: 6.16,\n width: 2.66,\n height: 5.56,\n rx: 1.33\n}), React.createElement(\"g\", null, React.createElement(\"rect\", {\n fill: \"#fff\",\n x: 16.21,\n y: 20.73,\n width: 3.69,\n height: 3.69\n}), React.createElement(\"rect\", {\n fill: \"#fff\",\n x: 21.55,\n y: 20.73,\n width: 3.69,\n height: 3.69\n}), React.createElement(\"rect\", {\n fill: \"#fff\",\n x: 26.95,\n y: 20.73,\n width: 3.69,\n height: 3.69\n})), React.createElement(\"g\", null, React.createElement(\"rect\", {\n fill: \"#fff\",\n x: 16.21,\n y: 26.21,\n width: 3.69,\n height: 3.69\n}), React.createElement(\"rect\", {\n fill: \"#fff\",\n x: 21.55,\n y: 26.21,\n width: 3.69,\n height: 3.69\n}), React.createElement(\"rect\", {\n fill: \"#fff\",\n x: 26.95,\n y: 26.21,\n width: 3.69,\n height: 3.69\n}))));\n\nvar SvgComponent = function SvgComponent(props) {\n return React.createElement(\"svg\", _extends({\n width: 45.41,\n height: 40.22,\n viewBox: \"0 0 45.41 40.22\"\n }, props), _ref, _ref2);\n};\n\nexport default __webpack_public_path__ + \"static/media/calendar-icon.df093c05.svg\";\nexport { SvgComponent as ReactComponent };","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\n// import styled components\r\nimport { AfLoanTabsHeaderWrapper, AfLoanTab, AfLoanTabTitle } from './styled';\r\n\r\n// import svg\r\nimport { ReactComponent as ContactsIcon } from '../../../../assets/icons/contacts-icon.svg';\r\nimport { ReactComponent as DatesIcon } from '../../../../assets/icons/calendar-icon.svg';\r\n\r\nconst AfLoanTabsHeader = ({ active, setActiveTab }) => (\r\n \r\n setActiveTab('dates')}\r\n onKeyPress={() => setActiveTab('dates')}\r\n tabIndex=\"0\"\r\n >\r\n \r\n Key Dates\r\n \r\n setActiveTab('contacts')}\r\n onKeyPress={() => setActiveTab('contacts')}\r\n tabIndex=\"0\"\r\n >\r\n \r\n Contacts\r\n \r\n \r\n);\r\n\r\nexport default AfLoanTabsHeader;\r\n\r\nAfLoanTabsHeader.propTypes = {\r\n active: PropTypes.string.isRequired,\r\n setActiveTab: PropTypes.func.isRequired,\r\n};\r\n","const findLastStatus = statusList => {\r\n const statusesWithDates = [];\r\n let lastStatus = 0;\r\n\r\n statusList.map((status, i) => {\r\n const { date } = status;\r\n if (date) {\r\n statusesWithDates.push(i);\r\n }\r\n\r\n return i;\r\n });\r\n\r\n lastStatus = statusesWithDates[statusesWithDates.length - 1];\r\n\r\n return lastStatus;\r\n};\r\n\r\nfunction formatLoanStatus(statusMap) {\r\n let lastStatus = 0;\r\n const statusList = [\r\n {\r\n text: 'Expected Funding Date',\r\n date: '',\r\n },\r\n {\r\n text: 'MLO Setup Complete',\r\n date: '',\r\n },\r\n {\r\n text: 'Submitted to Underwriting',\r\n date: '',\r\n },\r\n {\r\n text: 'Conditionally Approved',\r\n date: '',\r\n },\r\n {\r\n text: 'Initial Underwriting Complete',\r\n date: '',\r\n },\r\n {\r\n text: 'PI Conditional Resolution Complete',\r\n date: '',\r\n },\r\n {\r\n text: 'Underwriting II Condition Review Complete',\r\n date: '',\r\n },\r\n {\r\n text: 'PII Final Condition',\r\n date: '',\r\n },\r\n {\r\n text: 'Clear to Close Complete',\r\n date: '',\r\n },\r\n {\r\n text: 'Doc Prep Complete',\r\n date: '',\r\n },\r\n {\r\n text: 'Funding',\r\n date: '',\r\n },\r\n ];\r\n\r\n Array.from(statusMap).map((status, i) => {\r\n statusList[i]['date'] = status[1];\r\n\r\n return null;\r\n });\r\n\r\n lastStatus = findLastStatus(statusList);\r\n\r\n return [statusList, lastStatus];\r\n}\r\n\r\nexport default formatLoanStatus;\r\n","function groupContacts(contacts) {\r\n const contactGroups = {\r\n 0: [],\r\n 1: [],\r\n 2: [],\r\n 3: [],\r\n };\r\n\r\n Object.keys(contacts).map(key => {\r\n const newContact = contacts[key];\r\n if (newContact.exists) {\r\n switch (key) {\r\n case 'borrower':\r\n case 'coBorrower':\r\n contactGroups[0].push(newContact);\r\n break;\r\n case 'mlo':\r\n case 'clientManager':\r\n case 'loanProductionAssistant':\r\n contactGroups[1].push(newContact);\r\n break;\r\n case 'escrowCompany':\r\n case 'titleCompany':\r\n contactGroups[2].push(newContact);\r\n break;\r\n case 'buyerAttorney':\r\n case 'sellerAgent':\r\n case 'buyerTransactionCoordinator':\r\n contactGroups[3].push(newContact);\r\n break;\r\n default:\r\n // do nothing\r\n break;\r\n }\r\n }\r\n\r\n return null;\r\n });\r\n\r\n return contactGroups;\r\n}\r\n\r\nexport default groupContacts;\r\n","function processKeyDates(dates = {}) {\r\n const keyDatesList = [\r\n {\r\n text: 'CD Issued',\r\n date: '',\r\n },\r\n {\r\n text: 'Title Requested',\r\n date: '',\r\n },\r\n {\r\n text: 'Title Received',\r\n date: '',\r\n },\r\n {\r\n text: 'Appraisal Ordered',\r\n date: '',\r\n },\r\n {\r\n text: 'Appraisal Received',\r\n date: '',\r\n },\r\n {\r\n text: 'Appraisal Inspection Date',\r\n date: '',\r\n },\r\n {\r\n text: 'Inspection Completed',\r\n date: '',\r\n },\r\n {\r\n text: 'Expected Signing',\r\n date: '',\r\n },\r\n {\r\n text: 'Expected Close',\r\n date: '',\r\n },\r\n {\r\n text: 'Docs Delivered',\r\n date: '',\r\n },\r\n {\r\n text: 'Funding',\r\n date: '',\r\n },\r\n ];\r\n\r\n const datesArray = Array.from(dates).map((date, i) => {\r\n if (date) {\r\n keyDatesList[i]['date'] = date[1].substr(0, date[1].indexOf(' '));\r\n }\r\n\r\n return datesArray;\r\n });\r\n\r\n return keyDatesList;\r\n}\r\n\r\nexport default processKeyDates;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from 'react';\n\nvar _ref =\n/*#__PURE__*/\nReact.createElement(\"title\", null, \"loan-contact-arrow\");\n\nvar SvgComponent = function SvgComponent(props) {\n return React.createElement(\"svg\", _extends({\n width: 14.16,\n height: 9.35,\n viewBox: \"0 0 14.16 9.35\"\n }, props), _ref, React.createElement(\"polygon\", {\n points: \"7.1 9.35 0 0 14.16 0 7.1 9.35\",\n style: {\n \"fill\": \"#fff\"\n }\n }));\n};\n\nexport default __webpack_public_path__ + \"static/media/loan-contact-arrow.8d5cc3cb.svg\";\nexport { SvgComponent as ReactComponent };","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport ReactHtmlParser from 'react-html-parser';\r\n\r\n// import hooks\r\nimport { useIsOpen } from '../../../../hooks';\r\n\r\n// import styled components\r\nimport {\r\n AfLoanContactCardWrapper,\r\n AfLoanContactCardHeader,\r\n AfLoanContactCardBodyWrapper,\r\n AfLoanContactCardBody,\r\n} from './styled';\r\n\r\n// import svg\r\nimport { ReactComponent as LoanContactArrow } from '../../../../assets/ui/loan-contact-arrow.svg';\r\n\r\nfunction AfLoanContactCard({ contact }) {\r\n const [isOpen, setIsOpen] = useIsOpen(false);\r\n\r\n const possibleFields = [\r\n {\r\n label: 'NAME',\r\n field: 'name',\r\n },\r\n {\r\n label: 'COMPANY NAME',\r\n field: 'companyName',\r\n },\r\n {\r\n label: 'NMLS#',\r\n field: 'nmls',\r\n },\r\n {\r\n label: 'LICENSE',\r\n field: 'license',\r\n },\r\n {\r\n label: 'EMAIL',\r\n field: 'email',\r\n },\r\n {\r\n label: 'PHONE',\r\n field: 'phone',\r\n },\r\n {\r\n label: 'ADDRESS',\r\n field: 'address',\r\n html: true,\r\n },\r\n ];\r\n\r\n const drawLoanContactCardBody = (field, label, html) => {\r\n if (contact[field]) {\r\n if (field === 'email') {\r\n return (\r\n
    \r\n {label}\r\n

    \r\n \r\n {contact[field]}\r\n \r\n

    \r\n
    \r\n );\r\n }\r\n\r\n if (field === 'phone') {\r\n return (\r\n
    \r\n {label}\r\n

    \r\n {contact[field]}\r\n

    \r\n
    \r\n );\r\n }\r\n\r\n return (\r\n
    \r\n {label}\r\n {html ?

    {ReactHtmlParser(contact[field])}

    :

    {contact[field]}

    }\r\n
    \r\n );\r\n }\r\n };\r\n\r\n return (\r\n \r\n setIsOpen(!isOpen)} onKeyPress={() => setIsOpen(!isOpen)} tabIndex=\"0\">\r\n \r\n

    {contact.role}

    \r\n \r\n
    \r\n \r\n \r\n {possibleFields.map(possibleField => {\r\n return drawLoanContactCardBody(possibleField.field, possibleField.label, possibleField.html);\r\n })}\r\n \r\n \r\n
    \r\n );\r\n}\r\n\r\nexport default AfLoanContactCard;\r\n\r\nAfLoanContactCard.propTypes = {\r\n contact: PropTypes.object.isRequired,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\n// import functions\r\nimport { groupContacts } from '../functions';\r\n\r\n// import styled components\r\nimport { AfLoanContactsGroupsWrapper, AfLoanContactsGroupRow, AfLoanContactsGroup } from './styled';\r\n\r\n// import components\r\nimport AfLoanContactCard from './AfLoanContactCard';\r\n\r\nfunction AfLoanContacts({ contacts }) {\r\n const groupedContacts = groupContacts(contacts);\r\n\r\n const drawContactGroup = groupIndex => {\r\n return groupedContacts[groupIndex].map(contact => {\r\n return ;\r\n });\r\n };\r\n\r\n return (\r\n \r\n \r\n {drawContactGroup(0)}\r\n {drawContactGroup(1)}\r\n \r\n \r\n {drawContactGroup(2)}\r\n {drawContactGroup(3)}\r\n \r\n \r\n );\r\n}\r\n\r\nexport default AfLoanContacts;\r\n\r\nAfLoanContacts.propTypes = {\r\n contacts: PropTypes.object.isRequired,\r\n};\r\n\r\nAfLoanContacts.defaultProps = {\r\n contacts: {},\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\n// import functions\r\nimport { processKeyDates } from '../functions';\r\n\r\n// import styled components\r\nimport { AfLoanKeyDatesList } from './styled';\r\n\r\nfunction AfLoanKeyDates({ keyDatesMap }) {\r\n const drawKeyDates = () => {\r\n const keyDatesList = processKeyDates(keyDatesMap);\r\n\r\n return keyDatesList.map(keyDate => {\r\n const { date, text } = keyDate;\r\n\r\n if (date) {\r\n return (\r\n
  • \r\n {date}\r\n {text}\r\n
  • \r\n );\r\n }\r\n\r\n return null;\r\n });\r\n };\r\n\r\n return (\r\n \r\n
      \r\n
    • \r\n Date\r\n Milestone\r\n
    • \r\n {drawKeyDates(keyDatesMap)}\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nexport default AfLoanKeyDates;\r\n\r\nAfLoanKeyDates.propTypes = {\r\n keyDatesMap: PropTypes.object.isRequired,\r\n};\r\n","import React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\n// import components\r\nimport AfLoanTabsHeader from './AfLoanTabsHeader';\r\nimport AfLoanContacts from './AfLoanContacts';\r\nimport AfLoanKeyDates from './AfLoanKeyDates';\r\n\r\n// import styled components\r\nimport { AfLoanDatesAndContactsWrapper, AfLoanTabsBodyWrapper } from './styled';\r\n\r\nfunction AfLoanDatesAndContacts({ loanData: { contacts, keyDatesMap } }) {\r\n const [activeTab, setActiveTab] = useState('contacts');\r\n\r\n return (\r\n \r\n \r\n \r\n {activeTab === 'dates' ? : }\r\n \r\n \r\n );\r\n}\r\n\r\nexport default AfLoanDatesAndContacts;\r\n\r\nAfLoanDatesAndContacts.propTypes = {\r\n loanData: PropTypes.object.isRequired,\r\n};\r\n","import styled from 'styled-components/macro';\r\n\r\n// import helpers\r\nimport { getBreakpoint } from '../../../../util/theme';\r\n\r\nconst AfLoanBody = styled.div`\r\n display: flex;\r\n flex-direction: column-reverse;\r\n\r\n padding: 0 25px;\r\n\r\n position: relative;\r\n z-index: 999;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n flex-direction: row;\r\n\r\n padding: 0;\r\n }\r\n`;\r\n\r\nexport default AfLoanBody;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import helpers\r\nimport { getColor } from '../../../../util/theme';\r\n\r\nconst AfLoanBodyBackground = styled.div`\r\n height: 100%;\r\n width: 100%;\r\n\r\n background-color: ${getColor('backgroundGrey')};\r\n`;\r\n\r\nexport default AfLoanBodyBackground;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import helpers\r\nimport { getBreakpoint, getColor, getFontWeight } from '../../../../util/theme';\r\n\r\nconst AfLoanStatusBody = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n\r\n padding: 15px 30px;\r\n\r\n border: 1px solid ${getColor('borderGrey')};\r\n border-bottom: 10px solid ${getColor('complimentaryBlue')};\r\n\r\n h1 {\r\n color: ${getColor('titleGrey')};\r\n font-size: 2.5rem;\r\n font-weight: ${getFontWeight('medium')};\r\n text-align: center;\r\n\r\n margin: 0;\r\n padding: 0 0 15px 0;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n font-size: 3rem;\r\n\r\n width: 75%;\r\n }\r\n }\r\n\r\n ul {\r\n width: 100%;\r\n\r\n list-style-type: none;\r\n\r\n margin: 0;\r\n padding: 0;\r\n }\r\n\r\n li {\r\n display: flex;\r\n\r\n color: ${getColor('titleGrey')};\r\n font-size: 1.5rem;\r\n font-weight: ${getFontWeight('light')};\r\n\r\n padding: 5px 0;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n display: block;\r\n\r\n font-size: 2rem;\r\n }\r\n\r\n svg {\r\n flex-basis: 15%;\r\n align-self: center;\r\n\r\n margin: 5px 0 0 0;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n margin: 0 10px 0 0;\r\n }\r\n }\r\n\r\n span {\r\n flex-basis: 85%;\r\n }\r\n }\r\n`;\r\n\r\nexport default AfLoanStatusBody;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import helpers\r\nimport { getColor } from '../../../../util/theme';\r\n\r\nconst AfLoanStatusContainer = styled.div`\r\n background-color: ${getColor('white')};\r\n\r\n flex-basis: 45%;\r\n\r\n height: 100%;\r\n\r\n margin: 25px 0;\r\n`;\r\n\r\nexport default AfLoanStatusContainer;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import helpers\r\nimport { getBreakpoint, getColor, getFontWeight } from '../../../../util/theme';\r\n\r\nconst AfLoanStatusTop = styled.div`\r\n background-color: ${getColor('coolBlue')};\r\n\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n\r\n padding: 10px;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n padding: 15px;\r\n }\r\n\r\n h2,\r\n h3 {\r\n color: ${getColor('white')};\r\n margin: 0;\r\n }\r\n\r\n h2 {\r\n font-size: 3rem;\r\n font-weight: ${getFontWeight('regular')};\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n font-size: 4rem;\r\n }\r\n }\r\n\r\n h3 {\r\n font-size: 1.5rem;\r\n font-weight: ${getFontWeight('light')};\r\n }\r\n`;\r\n\r\nexport default AfLoanStatusTop;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from 'react';\n\nvar _ref =\n/*#__PURE__*/\nReact.createElement(\"title\", null, \"checkbox-checked\");\n\nvar _ref2 =\n/*#__PURE__*/\nReact.createElement(\"path\", {\n fill: \"gray\",\n d: \"M15,17.9H0v-15H15ZM1.5,16.41h12v-12H1.5Z\"\n});\n\nvar _ref3 =\n/*#__PURE__*/\nReact.createElement(\"path\", {\n fill: \"#99c24d\",\n d: \"M2,9.31s1.74,0,3.65,6L8,13.63a42.32,42.32,0,0,1,10.1-13L17.7,0s-5,2.25-11,11.23c0,0-1.21-3.14-2.37-3.56C4.31,7.67,3.42,7.64,2,9.31Z\"\n});\n\nvar SvgComponent = function SvgComponent(props) {\n return React.createElement(\"svg\", _extends({\n width: 18.08,\n height: 17.9,\n viewBox: \"0 0 18.08 17.9\"\n }, props), _ref, _ref2, _ref3);\n};\n\nexport default __webpack_public_path__ + \"static/media/checkbox-checked.79c112a2.svg\";\nexport { SvgComponent as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from 'react';\n\nvar _ref =\n/*#__PURE__*/\nReact.createElement(\"title\", null, \"checkbox-unchecked\");\n\nvar _ref2 =\n/*#__PURE__*/\nReact.createElement(\"path\", {\n fill: \"gray\",\n d: \"M15,17.9H0v-15H15ZM1.5,16.41h12v-12H1.5Z\",\n transform: \"translate(0 -2.94)\"\n});\n\nvar SvgComponent = function SvgComponent(props) {\n return React.createElement(\"svg\", _extends({\n width: 14.96,\n height: 14.96,\n viewBox: \"0 0 14.96 14.96\"\n }, props), _ref, _ref2);\n};\n\nexport default __webpack_public_path__ + \"static/media/checkbox-unchecked.1af43eec.svg\";\nexport { SvgComponent as ReactComponent };","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\n// import functions\r\nimport { formatLoanStatus } from './functions';\r\n\r\n// import styled components\r\nimport { AfLoanStatusContainer, AfLoanStatusTop, AfLoanStatusBody } from './styled';\r\n\r\n// import svg\r\nimport { ReactComponent as CheckboxChecked } from '../../../assets/ui/checkbox-checked.svg';\r\nimport { ReactComponent as CheckboxUnchecked } from '../../../assets/ui/checkbox-unchecked.svg';\r\n\r\nfunction AfLoanStatus({ loanData }) {\r\n const { statusInfo = {}, statusInfoMap = new Map() } = loanData;\r\n\r\n const { expectedCloseDate = '' } = statusInfo;\r\n\r\n const drawStatusTop = () => {\r\n if (!expectedCloseDate) {\r\n return

    No Closing Date Data

    ;\r\n }\r\n return (\r\n <>\r\n

    Expected Closing On

    \r\n

    {expectedCloseDate}

    \r\n \r\n );\r\n };\r\n\r\n const drawStatusBody = () => {\r\n const [statusList, lastStatus] = formatLoanStatus(statusInfoMap);\r\n\r\n return statusList.map((status, i) => {\r\n if ((status.date || i > lastStatus) && i > 0) {\r\n const { text, date } = status;\r\n if (i === lastStatus) {\r\n return (\r\n
  • \r\n {' '}\r\n \r\n {text}\r\n \r\n
  • \r\n );\r\n } else if (date) {\r\n return (\r\n
  • \r\n {text}\r\n
  • \r\n );\r\n }\r\n return (\r\n
  • \r\n {text}\r\n
  • \r\n );\r\n }\r\n return null;\r\n });\r\n };\r\n\r\n return (\r\n \r\n {drawStatusTop()}\r\n \r\n

    Progress Summary

    \r\n
      {drawStatusBody()}
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nexport default AfLoanStatus;\r\n\r\nAfLoanStatus.propTypes = {\r\n loanData: PropTypes.object.isRequired,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\n// import components\r\nimport AfLoanDatesAndContacts from './AfLoanDatesAndContacts';\r\nimport AfLoanStatus from './AfLoanStatus';\r\n\r\n// import styled components\r\nimport { AfLoanBodyBackground, AfLoanBody } from './styled';\r\nimport { Grid } from '../../styled';\r\n\r\nconst ActiveFundedLoan = ({ loanData }) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default ActiveFundedLoan;\r\n\r\nActiveFundedLoan.propTypes = {\r\n loanData: PropTypes.object.isRequired,\r\n};\r\n","import { useContext, useState } from 'react';\r\nimport { format } from 'date-fns';\r\n\r\n// import config\r\nimport { API_BASE_URL } from '../../../../util/config';\r\n\r\n// import context\r\nimport { LoggedInContext } from '../../../Context/LoggedInContext';\r\n\r\nconst downloadLetterPdf = (letterData, fileName) => {\r\n const link = document.createElement('a');\r\n const url = URL.createObjectURL(letterData);\r\n link.href = url;\r\n link.download = fileName;\r\n document.body.append(link);\r\n link.click();\r\n link.remove();\r\n};\r\n\r\nconst formatLetterRequest = async (loanType, letterInformation, accessToken, setSendingRequest, fileName, dispatch) => {\r\n setSendingRequest(true);\r\n\r\n const createLetterUrl = `${API_BASE_URL}/api/LoanLetter`;\r\n\r\n const letterType = loanType => {\r\n switch (loanType) {\r\n case 'Pre-Qualified':\r\n return 'Prequalification';\r\n case 'Pre-Approved':\r\n return 'Preapproval';\r\n default:\r\n return 'Prequalification';\r\n }\r\n };\r\n\r\n const formattedLetterRequest = {\r\n ...letterInformation,\r\n LetterType: letterType(loanType),\r\n createdOn: format(new Date(), 'MM/DD/YYYY'),\r\n };\r\n\r\n const jsonFormattedLetterRequest = JSON.stringify(formattedLetterRequest);\r\n\r\n const createLetterRequest = await fetch(createLetterUrl, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n Authorization: `bearer ${accessToken}`,\r\n },\r\n responseType: 'arraybuffer',\r\n dataType: 'blob',\r\n body: jsonFormattedLetterRequest,\r\n });\r\n\r\n const regeneratedLetterPdf = await createLetterRequest.blob();\r\n\r\n setSendingRequest(false);\r\n\r\n const data = new Blob([regeneratedLetterPdf], { type: 'application/pdf' });\r\n\r\n downloadLetterPdf(data, fileName);\r\n\r\n dispatch({ type: 'toggleSuccess' });\r\n};\r\n\r\nfunction useCreateLetter(loanType, letterInformation, dispatch) {\r\n const {\r\n state: {\r\n userState: { accessToken },\r\n },\r\n } = useContext(LoggedInContext);\r\n\r\n const { borrowerFirstName, borrowerLastName, LoanNumber } = letterInformation;\r\n const fileName = `${borrowerFirstName}-${borrowerLastName}-${loanType}-${LoanNumber}-letter-${format(\r\n new Date(),\r\n 'MMDDYYYY:hhmmss'\r\n )}`.toLowerCase();\r\n\r\n const [sendingRequest, setSendingRequest] = useState(false);\r\n\r\n const handleLetterRequest = () => {\r\n formatLetterRequest(loanType, letterInformation, accessToken, setSendingRequest, fileName, dispatch);\r\n };\r\n\r\n return [handleLetterRequest, sendingRequest, setSendingRequest];\r\n}\r\n\r\nexport default useCreateLetter;\r\n","import { useContext } from 'react';\r\n\r\n// import context\r\nimport { AppContext } from '../../../App';\r\n\r\nfunction useLetterActions(letterData, fileName) {\r\n const {\r\n functions: { toggleModal },\r\n } = useContext(AppContext);\r\n\r\n const previewLetterPdf = () => {\r\n toggleModal(letterData, true, fileName);\r\n };\r\n\r\n const downloadLetterPdf = (letterData, fileName) => {\r\n const link = document.createElement('a');\r\n const url = URL.createObjectURL(letterData);\r\n link.href = url;\r\n link.download = fileName;\r\n document.body.append(link);\r\n link.click();\r\n link.remove();\r\n // window.open(url);\r\n };\r\n\r\n return [previewLetterPdf, downloadLetterPdf];\r\n}\r\n\r\nexport default useLetterActions;\r\n","import { useReducer } from 'react';\r\nimport { format } from 'date-fns';\r\n\r\nfunction calculateNewLoanValues(state, value, name) {\r\n if (name === 'loanAmount') {\r\n const maxLoanAmount = state.purchasePrice * state.constraints.ltv;\r\n if (value >= maxLoanAmount) {\r\n return {\r\n loanToValue: ((maxLoanAmount / state.purchasePrice) * 100).toFixed(2),\r\n /**\r\n * add as small an increment as possible so that the loanAmount value is always new\r\n * without this it gets fixed at maxLoanAmount and won't update on the slider\r\n * use loanLetterAmount to store the value rounded to the hundred\r\n */\r\n loanAmount: maxLoanAmount - value * 0.0001,\r\n inputLoanAmount: parseInt(maxLoanAmount).toLocaleString(),\r\n letterLoanAmount: maxLoanAmount,\r\n };\r\n }\r\n\r\n const newLtv = ((value / state.purchasePrice) * 100).toFixed(2);\r\n\r\n return {\r\n loanToValue: newLtv,\r\n loanAmount: value,\r\n inputLoanAmount: parseInt(value).toLocaleString(),\r\n letterLoanAmount: value,\r\n };\r\n }\r\n\r\n if (name === 'purchasePrice') {\r\n const minPurchasePrice = state.constraints.loanAmount.min / state.constraints.ltv;\r\n\r\n if (value <= minPurchasePrice) {\r\n return {\r\n loanToValue: ((state.loanAmount / minPurchasePrice) * 100).toFixed(2),\r\n purchasePrice: minPurchasePrice + value * 0.0001,\r\n inputPurchasePrice: minPurchasePrice.toLocaleString(),\r\n letterPurchasePrice: minPurchasePrice,\r\n loanAmount: state.constraints.loanAmount.min,\r\n inputLoanAmount: state.constraints.loanAmount.min,\r\n letterLoanAmount: state.constraints.loanAmount.min,\r\n };\r\n }\r\n\r\n const loanAmountToPurchasePrice = state.loanAmount / value;\r\n\r\n if (loanAmountToPurchasePrice >= state.constraints.ltv) {\r\n return {\r\n loanToValue: (state.constraints.ltv * 100).toFixed(2),\r\n purchasePrice: value,\r\n inputPurchasePrice: value.toLocaleString(),\r\n letterPurchasePrice: value,\r\n loanAmount: value * state.constraints.ltv,\r\n inputLoanAmount: (value * state.constraints.ltv).toLocaleString(),\r\n letterLoanAmount: value * state.constraints.ltv,\r\n };\r\n }\r\n\r\n /** this condition might be the same as above idk my head hurts, test/remove later if so */\r\n if (value <= state.loanAmount) {\r\n // round adjusted loan amount to the nearest hundred so letter value matches what slider says\r\n const adjustedLoanAmount = Math.ceil(((value * state.constraints.ltv) / 100) * 100);\r\n\r\n return {\r\n purchasePrice: value,\r\n inputPurchasePrice: value.toLocaleString(),\r\n letterPurchasePrice: value,\r\n loanAmount: adjustedLoanAmount,\r\n letterLoanAmount: adjustedLoanAmount,\r\n };\r\n }\r\n\r\n const newLtv = ((state.loanAmount / value) * 100).toFixed(2);\r\n\r\n return {\r\n loanToValue: newLtv,\r\n purchasePrice: value,\r\n inputPurchasePrice: value.toLocaleString(),\r\n letterPurchasePrice: value,\r\n };\r\n }\r\n}\r\n\r\nfunction modifyLoanReducer(state, action) {\r\n const { type, name, value } = action;\r\n\r\n switch (type) {\r\n case 'modifyLoan':\r\n const valueChanges = calculateNewLoanValues(state, value, name);\r\n\r\n return {\r\n ...state,\r\n ...valueChanges,\r\n };\r\n case 'modifyLoanFromInput':\r\n // determine if purchase price or loan amount modified\r\n const whichField = `${name.charAt(5).toLowerCase()}${name.substr(6, name.length)}`;\r\n // transform react-number-field formatted string into number for calculations\r\n const numericalFieldValue = parseInt(state[name].replace('$', '').replace(',', ''));\r\n\r\n const valueChangesFromInput = calculateNewLoanValues(state, numericalFieldValue, whichField);\r\n return {\r\n ...state,\r\n ...valueChangesFromInput,\r\n };\r\n case 'modifyLoanInput':\r\n return {\r\n ...state,\r\n [name]: value,\r\n };\r\n case 'resetValues':\r\n return {\r\n ...state,\r\n loanAmount: state.initialValues.loanAmount,\r\n inputLoanAmount: parseInt(state.initialValues.loanAmount).toLocaleString(),\r\n letterLoanAmount: state.initialValues.loanAmount,\r\n purchasePrice: state.initialValues.purchasePrice,\r\n inputPurchasePrice: parseInt(state.initialValues.purchasePrice).toLocaleString(),\r\n letterPurchasePrice: state.initialValues.purchasePrice,\r\n loanToValue: state.initialValues.loanToValue,\r\n };\r\n case 'addLoanLetter':\r\n const modifiedLoanLetterEntry = {\r\n ...state.loanLetters[0],\r\n createdOn: format(new Date(), 'M/D/YYYY'),\r\n loanAmount: state.loanAmount,\r\n purchasePrice: state.purchasePrice,\r\n };\r\n\r\n return {\r\n ...state,\r\n loanLetters: [modifiedLoanLetterEntry, ...state.loanLetters],\r\n };\r\n case 'toggleSuccess':\r\n return {\r\n ...state,\r\n success: !state.success,\r\n };\r\n default:\r\n return { ...state };\r\n }\r\n}\r\n\r\nfunction useModifyLoanReducer(initialLoanValues) {\r\n const [modifiedLoan, dispatch] = useReducer(modifyLoanReducer, initialLoanValues);\r\n\r\n return [modifiedLoan, dispatch];\r\n}\r\n\r\nexport default useModifyLoanReducer;\r\n","import { useContext, useEffect, useState } from 'react';\r\nimport { format } from 'date-fns';\r\n\r\n// import config\r\nimport { API_BASE_URL } from '../../../../util/config';\r\n\r\n// import context\r\nimport { LoggedInContext } from '../../../Context/LoggedInContext';\r\n\r\nconst formatLetterRequest = async (loanType, letterInformation, accessToken, setPreloadedLetterData, setLoading) => {\r\n setLoading(true);\r\n\r\n const regenerateLetterUrl = `${API_BASE_URL}/api/LoanLetter/RegenerateLetter`;\r\n\r\n const letterType = loanType => {\r\n switch (loanType) {\r\n case 'Pre-Qualified':\r\n return 'Prequalification';\r\n case 'Pre-Approved':\r\n return 'Preapproval';\r\n default:\r\n return 'Prequalification';\r\n }\r\n };\r\n\r\n const formattedLetterRequest = {\r\n ...letterInformation,\r\n LetterType: letterType(loanType),\r\n createdOn: format(new Date(), 'MM/DD/YYYY'),\r\n };\r\n\r\n const jsonFormattedLetterRequest = JSON.stringify(formattedLetterRequest);\r\n\r\n const regenerateLetterRequest = await fetch(regenerateLetterUrl, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n Authorization: `bearer ${accessToken}`,\r\n },\r\n responseType: 'arraybuffer',\r\n dataType: 'blob',\r\n body: jsonFormattedLetterRequest,\r\n });\r\n\r\n const regeneratedLetterPdf = await regenerateLetterRequest.blob();\r\n\r\n const data = new Blob([regeneratedLetterPdf], { type: 'application/pdf' });\r\n\r\n setPreloadedLetterData(data);\r\n\r\n setLoading(false);\r\n};\r\n\r\nfunction usePreloadRegeneratedLetter(loanType, letterInformation) {\r\n const {\r\n state: {\r\n userState: { accessToken },\r\n },\r\n } = useContext(LoggedInContext);\r\n\r\n const { borrowerFirstName, borrowerLastName, LoanNumber } = letterInformation;\r\n const fileName = `${borrowerFirstName}-${borrowerLastName}-${loanType}-${LoanNumber}-letter-${format(\r\n new Date(),\r\n 'MMDDYYYY:hhmmss'\r\n )}`.toLowerCase();\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [preloadedLetterData, setPreloadedLetterData] = useState(null);\r\n\r\n useEffect(() => {\r\n formatLetterRequest(loanType, letterInformation, accessToken, setPreloadedLetterData, setLoading);\r\n }, []);\r\n\r\n return [preloadedLetterData, fileName, loading];\r\n}\r\n\r\nexport default usePreloadRegeneratedLetter;\r\n","import { useContext, useState } from 'react';\r\nimport { format } from 'date-fns';\r\n\r\n// import config\r\nimport { API_BASE_URL } from '../../../../util/config';\r\n\r\n// import context\r\nimport { AppContext } from '../../../App';\r\nimport { LoggedInContext } from '../../../Context/LoggedInContext';\r\n\r\nconst formatLetterRequest = async (\r\n loanType,\r\n letterInformation,\r\n accessToken,\r\n setSendingRequest,\r\n setLetterData,\r\n toggleModal\r\n) => {\r\n setSendingRequest(true);\r\n\r\n const regenerateLetterUrl = `${API_BASE_URL}/api/LoanLetter/RegenerateLetter`;\r\n\r\n const letterType = loanType => {\r\n switch (loanType) {\r\n case 'Pre-Qualified':\r\n return 'Prequalification';\r\n case 'Pre-Approved':\r\n return 'Preapproval';\r\n default:\r\n return 'Prequalification';\r\n }\r\n };\r\n\r\n const formattedLetterRequest = {\r\n ...letterInformation,\r\n LetterType: letterType(loanType),\r\n createdOn: format(new Date(), 'MM/DD/YYYY'),\r\n };\r\n\r\n const jsonFormattedLetterRequest = JSON.stringify(formattedLetterRequest);\r\n\r\n const regenerateLetterRequest = await fetch(regenerateLetterUrl, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n Authorization: `bearer ${accessToken}`,\r\n },\r\n responseType: 'arraybuffer',\r\n dataType: 'blob',\r\n body: jsonFormattedLetterRequest,\r\n });\r\n\r\n const regeneratedLetterPdf = await regenerateLetterRequest.blob();\r\n\r\n setSendingRequest(false);\r\n\r\n const data = new Blob([regeneratedLetterPdf], { type: 'application/pdf' });\r\n\r\n setLetterData(data);\r\n\r\n toggleModal(data);\r\n\r\n /**\r\n * initially opened letter preview in new tab, replaced with using modal overlay\r\n * gets blocked by adblockers and stuff so prefer modal (also consistency with 'View Letter')\r\n */\r\n\r\n // if ie11 use its thing to open blob\r\n // if (window.navigator.msSaveOrOpenBlob) {\r\n // window.navigator.msSaveOrOpenBlob(data);\r\n // } else {\r\n // if (openInWindow) {\r\n // const url = URL.createObjectURL(data);\r\n // // window.open(url, '_blank');\r\n // const newWindow = window.open('', '_blank');\r\n // newWindow.location.href = url;\r\n // // buttonRef.current.click();\r\n // }\r\n // }\r\n};\r\n\r\n// const openNewWindow = data => {\r\n// if (!data) return;\r\n// const url = URL.createObjectURL(data);\r\n\r\n// window.open(url);\r\n// };\r\n\r\nfunction useRegenerateLetter(loanType, letterInformation) {\r\n const {\r\n state: {\r\n userState: { accessToken },\r\n },\r\n } = useContext(LoggedInContext);\r\n\r\n const {\r\n functions: { toggleModal },\r\n } = useContext(AppContext);\r\n\r\n const [sendingRequest, setSendingRequest] = useState(false);\r\n const [letterData, setLetterData] = useState(null);\r\n\r\n const handleLetterRequest = () => {\r\n formatLetterRequest(loanType, letterInformation, accessToken, setSendingRequest, setLetterData, toggleModal);\r\n };\r\n\r\n return [handleLetterRequest, sendingRequest, letterData];\r\n}\r\n\r\nexport default useRegenerateLetter;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import theme helpers\r\nimport { getBreakpoint } from '../../../../util/theme';\r\n\r\nconst PreLoanBody = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n\r\n padding: 0 15px;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n flex-direction: row;\r\n\r\n padding: 0;\r\n }\r\n`;\r\n\r\nexport default PreLoanBody;\r\n","import styled from 'styled-components/macro';\r\nimport PropTypes from 'prop-types';\r\n\r\n// import theme helpers\r\nimport { getBreakpoint } from '../../../../util/theme';\r\n\r\nconst PreLoanSectionWrapper = styled.div`\r\n flex-basis: 55%;\r\n\r\n padding: 0;\r\n\r\n display: ${props => (props.hideMobile ? 'none' : 'block')};\r\n\r\n &:first-of-type {\r\n flex-basis: 45%;\r\n }\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n padding: 0 25px;\r\n\r\n display: block;\r\n }\r\n`;\r\n\r\nexport default PreLoanSectionWrapper;\r\n\r\nPreLoanSectionWrapper.propTypes = {\r\n hideMobile: PropTypes.bool.isRequired,\r\n};\r\n\r\nPreLoanSectionWrapper.defaultProps = {\r\n hideMobile: false,\r\n};\r\n","import styled from 'styled-components/macro';\r\n\r\n// import theme helpers\r\nimport { getBreakpoint, getColor, getFontWeight } from '../../../../util/theme';\r\n\r\nconst PreLoanTitle = styled.h2`\r\n color: ${getColor('white')};\r\n font-size: 2rem;\r\n font-weight: ${getFontWeight('regular')};\r\n text-align: center;\r\n\r\n background-color: ${getColor('cardBlue')};\r\n\r\n padding: 10px;\r\n margin: 0 0 25px 0;\r\n\r\n width: 100%;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n font-size: 3rem;\r\n }\r\n`;\r\n\r\nexport default PreLoanTitle;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import helpers\r\nimport { getBreakpoint } from '../../../../util/theme';\r\n\r\nconst PreLoanInformationContent = styled.div`\r\n display: flex;\r\n justify-content: space-between;\r\n\r\n margin: 15px 0 25px 0;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n margin: 0;\r\n }\r\n`;\r\n\r\nexport default PreLoanInformationContent;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import theme helpers\r\nimport { getBreakpoint, getColor, getFontWeight } from '../../../../util/theme';\r\n\r\nconst PreLoanInformationTable = styled.table`\r\n display: flex;\r\n justify-content: center;\r\n\r\n width: 100%;\r\n\r\n margin: 0;\r\n padding: 0;\r\n\r\n border-collapse: collapse;\r\n\r\n td {\r\n color: ${getColor('medGrey')};\r\n font-size: 1.4rem;\r\n font-weight: ${getFontWeight('regular')};\r\n text-align: left;\r\n\r\n padding: 5px 0px 5px 15px;\r\n\r\n &:first-of-type {\r\n border-right: 1px solid ${getColor('lightestGrey')};\r\n\r\n font-weight: ${getFontWeight('light')};\r\n text-align: right;\r\n\r\n padding: 5px 10px 5px 0;\r\n }\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n font-size: 2.2rem;\r\n\r\n padding: 10px 0 10px 40px;\r\n\r\n &:first-of-type {\r\n padding: 10px 35px 10px 0;\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport default PreLoanInformationTable;\r\n","import styled from 'styled-components/macro';\r\nimport PropTypes from 'prop-types';\r\n\r\n// import theme helpers\r\nimport { getBreakpoint, getColor } from '../../../../util/theme';\r\n\r\nconst PreLoanLetterButton = styled.button`\r\n color: ${getColor('white')};\r\n font-size: 1.6rem;\r\n\r\n background-color: ${getColor('buttonTeal')};\r\n\r\n display: flex;\r\n\r\n padding: ${props => (props.level === 'one' ? '7px 30px' : '7px 20px')};\r\n\r\n border: 0;\r\n border-radius: 2px;\r\n\r\n cursor: pointer;\r\n\r\n &:disabled {\r\n opacity: 0.75;\r\n\r\n cursor: not-allowed;\r\n }\r\n\r\n &.download {\r\n background-color: ${getColor('accentRed')};\r\n margin: 25px 0 0 0;\r\n }\r\n\r\n /**\r\n * only implement hover state on desktop display\r\n * iPhone will trigger hover event on first click otherwise @_@\r\n */\r\n @media (min-width: ${getBreakpoint('lg')}) {\r\n &:hover {\r\n background-color: ${getColor('accentOrange')};\r\n background-color: none;\r\n }\r\n\r\n &.download {\r\n &:hover {\r\n background-color: ${getColor('accentGreen')};\r\n }\r\n }\r\n }\r\n\r\n svg {\r\n margin: 0 20px 0 0;\r\n }\r\n`;\r\n\r\nexport default PreLoanLetterButton;\r\n\r\nPreLoanLetterButton.propTypes = {\r\n level: PropTypes.string.isRequired,\r\n};\r\n\r\nPreLoanLetterButton.defaultProps = {\r\n level: '7px 20px',\r\n};\r\n","import styled from 'styled-components/macro';\r\nimport PropTypes from 'prop-types';\r\n\r\n// import theme helpers\r\nimport { getBreakpoint } from '../../../../util/theme';\r\n\r\nconst PreLoanLetterButtonWrapper = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: ${props => (props.justifyContent ? props.justifyContent : 'space-between')};\r\n\r\n /* rules for IE11 */\r\n @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {\r\n justify-content: space-around;\r\n }\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n flex-direction: row;\r\n }\r\n\r\n button {\r\n width: 75%;\r\n\r\n margin: 0 0 15px 0;\r\n\r\n justify-content: center;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n width: auto;\r\n\r\n margin: 0;\r\n }\r\n }\r\n\r\n &.mobile-only {\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n display: none;\r\n }\r\n }\r\n`;\r\n\r\nexport default PreLoanLetterButtonWrapper;\r\n\r\nPreLoanLetterButtonWrapper.propTypes = {\r\n justifyContent: PropTypes.string.isRequired,\r\n};\r\n\r\nPreLoanLetterButtonWrapper.defaultProps = {\r\n justifyContent: 'space-between',\r\n};\r\n","import styled from 'styled-components/macro';\r\n\r\n// import helpers\r\nimport { getBreakpoint } from '../../../../util/theme';\r\n\r\nconst PreLoanLetterWidgetWrapper = styled.div`\r\n display: none;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n display: block;\r\n\r\n margin: 0 0 75px 0;\r\n }\r\n`;\r\n\r\nexport default PreLoanLetterWidgetWrapper;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import helpers\r\nimport { getBreakpoint, getColor, getFontWeight } from '../../../../util/theme';\r\n\r\nconst PreLoanLetterHistoryTable = styled.table`\r\n border-collapse: collapse;\r\n\r\n th,\r\n td {\r\n font-size: 1.4rem;\r\n text-align: center;\r\n\r\n padding: 0 10px;\r\n\r\n &:first-of-type {\r\n border-right: 1px solid ${getColor('lightestGrey')};\r\n\r\n text-align: right;\r\n\r\n padding: 5px 10px 5px 0;\r\n margin: 0 5px 0 0;\r\n }\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n font-size: 2.2rem;\r\n }\r\n }\r\n\r\n th {\r\n color: ${getColor('titleBlue')};\r\n font-weight: ${getFontWeight('light')};\r\n }\r\n\r\n td {\r\n color: ${getColor('medGrey')};\r\n font-weight: ${getFontWeight('regular')};\r\n\r\n &:first-of-type {\r\n font-weight: ${getFontWeight('light')};\r\n }\r\n }\r\n`;\r\n\r\nexport default PreLoanLetterHistoryTable;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import helpers\r\nimport { getColor, getFontWeight } from '../../../../util/theme';\r\n\r\nconst PreLoanLetterHistoryTableWrapper = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n\r\n p {\r\n color: ${getColor('medGrey')};\r\n font-weight: ${getFontWeight('medium')};\r\n text-align: center;\r\n }\r\n`;\r\n\r\nexport default PreLoanLetterHistoryTableWrapper;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import helpers\r\nimport { getBreakpoint } from '../../../../util/theme';\r\n\r\nconst PreLoanLetterHistoryWrapper = styled.div`\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n margin: 35px 0 0 0;\r\n }\r\n`;\r\n\r\nexport default PreLoanLetterHistoryWrapper;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import helpers\r\nimport { getColor } from '../../../../util/theme';\r\n\r\nconst PreLoanModifyDownloadWrapper = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n\r\n text-align: center;\r\n\r\n border-top: 1px solid ${getColor('lightestGrey')};\r\n\r\n padding: 15px 0 0 0;\r\n margin: 25px 0 0 0;\r\n\r\n p {\r\n color: ${getColor('titleGrey')};\r\n font-size: 1.4rem;\r\n\r\n padding: 10px 0 0 25px;\r\n\r\n &:first-of-type {\r\n margin: 1em 1em 0 1em;\r\n }\r\n }\r\n`;\r\n\r\nexport default PreLoanModifyDownloadWrapper;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import helpers\r\nimport { getBreakpoint, getColor } from '../../../../util/theme';\r\n\r\nconst PreLoanModifyInputInput = styled.div`\r\n input {\r\n border: none;\r\n border-bottom: 2px solid ${getColor('complimentaryBlue')};\r\n\r\n font-size: 1.8rem;\r\n\r\n /* width: 75%; */\r\n\r\n &:focus,\r\n &:hover {\r\n border-bottom: 2px solid ${getColor('accentGreen')};\r\n }\r\n }\r\n\r\n button {\r\n width: 100%;\r\n\r\n margin: 15px 0;\r\n\r\n @media (min-width: ${getBreakpoint('lg')}) {\r\n margin: 15px 0 0 0;\r\n }\r\n }\r\n\r\n svg {\r\n fill: ${getColor('white')};\r\n\r\n height: auto;\r\n width: 18px;\r\n }\r\n`;\r\n\r\nexport default PreLoanModifyInputInput;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import helpers\r\nimport { getBreakpoint, getColor, getFontWeight } from '../../../../util/theme';\r\n\r\nconst PreLoanModifyInputTable = styled.table`\r\n border-collapse: collapse;\r\n\r\n width: 100%;\r\n\r\n margin: 0 0 50px 0;\r\n\r\n td {\r\n color: ${getColor('complimentaryBlue')};\r\n font-size: 1.8rem;\r\n font-weight: ${getFontWeight('regular')};\r\n text-align: center;\r\n\r\n &:first-of-type {\r\n border-right: 1px solid ${getColor('lightestGrey')};\r\n\r\n padding: 0 5px 0 0;\r\n margin: 0 5px 0 0;\r\n\r\n width: 40%;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n padding: 15px;\r\n\r\n width: 30%;\r\n }\r\n }\r\n\r\n &:nth-of-type(2) {\r\n font-size: 2rem;\r\n\r\n width: 60%;\r\n\r\n padding: 5px 10px;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n font-size: 2.2rem;\r\n\r\n padding: 15px 25px;\r\n\r\n width: 70%;\r\n }\r\n }\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n font-size: 2.2rem;\r\n }\r\n }\r\n`;\r\n\r\nexport default PreLoanModifyInputTable;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import helpers\r\nimport { getBreakpoint, getColor } from '../../../../util/theme';\r\n\r\nconst PreLoanSuccessContent = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n margin: 50px 0 0 0;\r\n }\r\n\r\n p {\r\n color: ${getColor('titleGrey')};\r\n text-align: center;\r\n }\r\n`;\r\n\r\nexport default PreLoanSuccessContent;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import helpers\r\nimport { getColor } from '../../../../util/theme';\r\n\r\nconst PreLoanSuccessReturnButton = styled.button`\r\n border: 0;\r\n border-bottom: 1px solid ${getColor('complimentaryBlue')};\r\n\r\n background-color: transparent;\r\n\r\n color: ${getColor('complimentaryBlue')};\r\n font-size: 1.6rem;\r\n\r\n margin: 15px 0 35px 0;\r\n padding: 5px;\r\n\r\n display: flex;\r\n align-items: center;\r\n\r\n cursor: pointer;\r\n\r\n &:hover {\r\n color: ${getColor('accentGreen')};\r\n border-bottom: 1px solid ${getColor('accentGreen')};\r\n\r\n svg {\r\n polygon {\r\n fill: ${getColor('accentGreen')} !important;\r\n }\r\n }\r\n }\r\n\r\n svg {\r\n margin: 0 10px 0 0;\r\n }\r\n`;\r\n\r\nexport default PreLoanSuccessReturnButton;\r\n","import React from 'react';\r\nimport { format } from 'date-fns';\r\nimport PropTypes from 'prop-types';\r\n\r\n// import styled components\r\nimport {\r\n PreLoanLetterHistoryTable,\r\n PreLoanLetterHistoryTableWrapper,\r\n PreLoanLetterHistoryWrapper,\r\n PreLoanTitle,\r\n} from '../styled';\r\n\r\nfunction PreLoanLetterRequestHistory({ loanLetters }) {\r\n const drawLoanLetters = letters => {\r\n if (letters.length === 0) {\r\n return (\r\n <>\r\n

    No loan letters have been created.

    \r\n

    Click \"Modify Letter\" above to create the first letter.

    \r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n Date\r\n Purchase Price\r\n Loan Amount\r\n Loan-to-Value\r\n \r\n \r\n \r\n {letters.map((letter, i) => (\r\n \r\n {format(letter.createdOn, 'M/D/YYYY')}\r\n {`$${parseInt(letter.purchasePrice).toLocaleString()}`}\r\n {`$${parseInt(letter.loanAmount).toLocaleString()}`}\r\n {`${((parseInt(letter.loanAmount) / parseInt(letter.purchasePrice)) * 100).toFixed(0)}%`}\r\n \r\n ))}\r\n \r\n \r\n );\r\n };\r\n\r\n return (\r\n \r\n Created Letter History\r\n {drawLoanLetters(loanLetters)}\r\n \r\n );\r\n}\r\n\r\nexport default PreLoanLetterRequestHistory;\r\n\r\nPreLoanLetterRequestHistory.propTypes = {\r\n loanLetters: PropTypes.array.isRequired,\r\n};\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from 'react';\n\nvar _ref =\n/*#__PURE__*/\nReact.createElement(\"title\", null, \"view-letter\");\n\nvar SvgComponent = function SvgComponent(props) {\n return React.createElement(\"svg\", _extends({\n width: 19.25,\n height: 18.81,\n viewBox: \"0 0 19.25 18.81\"\n }, props), _ref, React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M4.34,16l6.07-6.07A5.56,5.56,0,1,0,9.05,8.44L2.36,14.06ZM14,1.2a4.33,4.33,0,1,1-4.63,4A4.34,4.34,0,0,1,14,1.2Z\",\n style: {\n \"fill\": \"#fff\"\n }\n }), React.createElement(\"path\", {\n d: \"M13.34,12.34c-.13,0-.26,0-.38,0v4.35a1.11,1.11,0,0,1-1.11,1.1H2.12A1.1,1.1,0,0,1,1,16.69V4.24a1.1,1.1,0,0,1,1.1-1.1h5.3a5.82,5.82,0,0,1,.63-1H2.12A2.12,2.12,0,0,0,0,4.24V16.69a2.12,2.12,0,0,0,2.12,2.12h9.73A2.13,2.13,0,0,0,14,16.69V12.34A4.56,4.56,0,0,1,13.34,12.34Z\",\n style: {\n \"fill\": \"#fff\"\n }\n })));\n};\n\nexport default __webpack_public_path__ + \"static/media/view-letter.bbecadfd.svg\";\nexport { SvgComponent as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from 'react';\n\nvar _ref =\n/*#__PURE__*/\nReact.createElement(\"title\", null, \"download-letter\");\n\nvar SvgComponent = function SvgComponent(props) {\n return React.createElement(\"svg\", _extends({\n width: 18.31,\n height: 16.07,\n viewBox: \"0 0 18.31 16.07\"\n }, props), _ref, React.createElement(\"g\", null, React.createElement(\"polygon\", {\n points: \"2.18 8.9 2.18 13.35 2.18 13.64 16.13 13.64 16.13 13.35 16.13 8.9 16.13 7.69 18.31 7.69 18.31 16.07 0 16.07 0 7.69 2.18 7.69 2.18 8.9\",\n style: {\n \"fill\": \"#fff\"\n }\n }), React.createElement(\"polygon\", {\n points: \"6.88 0 6.88 5.15 3.26 5.15 9.04 11.86 15.04 5.15 11.51 5.15 11.51 0 6.88 0\",\n style: {\n \"fill\": \"#fff\"\n }\n })));\n};\n\nexport default __webpack_public_path__ + \"static/media/download-letter.fca0b7f1.svg\";\nexport { SvgComponent as ReactComponent };","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\n// import hooks\r\nimport { useLetterActions } from '../hooks';\r\n\r\n// import styled components\r\nimport { PreLoanLetterButton, PreLoanLetterButtonWrapper } from '../styled';\r\n\r\n// import svg\r\nimport { ReactComponent as ViewLetterIcon } from '../../../../assets/buttons/view-letter.svg';\r\nimport { ReactComponent as DownloadLetterIcon } from '../../../../assets/buttons/download-letter.svg';\r\n\r\nfunction PreLoanLetterLevelOneButtons({ fileName, letterData, loadingLetter, mobileOnly }) {\r\n const [previewLetterPdf, downloadLetterPdf] = useLetterActions(letterData, fileName);\r\n\r\n return (\r\n \r\n previewLetterPdf()}>\r\n View Letter\r\n \r\n downloadLetterPdf(letterData, fileName)}>\r\n Download Letter\r\n \r\n \r\n );\r\n}\r\n\r\nexport default PreLoanLetterLevelOneButtons;\r\n\r\nPreLoanLetterLevelOneButtons.propTypes = {\r\n fileName: PropTypes.string.isRequired,\r\n /**\r\n * letterData is initially null, even with default prop set, so not set to required\r\n */\r\n letterData: PropTypes.object,\r\n loadingLetter: PropTypes.bool.isRequired,\r\n mobileOnly: PropTypes.bool.isRequired,\r\n};\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from 'react';\n\nvar _ref =\n/*#__PURE__*/\nReact.createElement(\"title\", null, \"create-letter\");\n\nvar SvgComponent = function SvgComponent(props) {\n return React.createElement(\"svg\", _extends({\n width: 20.49,\n height: 20.01,\n viewBox: \"0 0 20.49 20.01\"\n }, props), _ref, React.createElement(\"g\", null, React.createElement(\"g\", null, React.createElement(\"polygon\", {\n points: \"9.16 12.82 6.56 13.07 7.04 10.51 16.06 2.11 18.18 4.42 9.16 12.82\",\n style: {\n \"fill\": \"#fff\"\n }\n }), React.createElement(\"path\", {\n d: \"M20.32,1.55,19.09.21a.67.67,0,0,0-.93,0l-.08.07L17.47.8,17,1.25l.44.48,1.23,1.34.45.49.48-.45.61-.56.08-.07A.67.67,0,0,0,20.32,1.55Z\",\n style: {\n \"fill\": \"#fff\"\n }\n })), React.createElement(\"path\", {\n d: \"M14.6,9.33V18a.42.42,0,0,1-.41.41H2A.42.42,0,0,1,1.58,18V5.82A.42.42,0,0,1,2,5.41h8.67l1.7-1.58H2a2,2,0,0,0-2,2V18a2,2,0,0,0,2,2H14.19a2,2,0,0,0,2-2V7.86Z\",\n style: {\n \"fill\": \"#fff\"\n }\n })));\n};\n\nexport default __webpack_public_path__ + \"static/media/create-letter.105336af.svg\";\nexport { SvgComponent as ReactComponent };","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\n// import hooks\r\nimport { useLetterActions } from '../hooks';\r\n\r\n// import styled components\r\nimport { PreLoanLetterButton, PreLoanLetterButtonWrapper } from '../styled';\r\n\r\n// import svg\r\nimport { ReactComponent as ViewLetterIcon } from '../../../../assets/buttons/view-letter.svg';\r\nimport { ReactComponent as DownloadLetterIcon } from '../../../../assets/buttons/download-letter.svg';\r\nimport { ReactComponent as CreateLetterIcon } from '../../../../assets/buttons/create-letter.svg';\r\n\r\nfunction PreLoanLetterLevelTwoButtons({ fileName, letterData, loadingLetter, mobileOnly, toggleModify }) {\r\n const [previewLetterPdf, downloadLetterPdf] = useLetterActions(letterData, fileName);\r\n\r\n return (\r\n \r\n previewLetterPdf()}>\r\n View Letter\r\n \r\n downloadLetterPdf(letterData, fileName)}>\r\n Download Letter\r\n \r\n toggleModify(mobileOnly)}>\r\n Modify Letter\r\n \r\n \r\n );\r\n}\r\n\r\nexport default PreLoanLetterLevelTwoButtons;\r\n\r\nPreLoanLetterLevelTwoButtons.propTypes = {\r\n fileName: PropTypes.string.isRequired,\r\n /**\r\n * letterData is initially null, even with default prop set, so not set to required\r\n */\r\n letterData: PropTypes.object,\r\n loadingLetter: PropTypes.bool.isRequired,\r\n mobileOnly: PropTypes.bool.isRequired,\r\n toggleModify: PropTypes.func.isRequired,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\n// import components\r\nimport PreLoanLetterLevelOneButtons from '../PreLoanLetter/PreLoanLetterLevelOneButtons';\r\nimport PreLoanLetterLevelTwoButtons from '../PreLoanLetter/PreLoanLetterLevelTwoButtons';\r\n\r\n// import styled components\r\nimport { PreLoanInformationContent, PreLoanInformationTable, PreLoanSectionWrapper, PreLoanTitle } from '../styled';\r\n\r\nfunction PreLoanInformation({\r\n fileName,\r\n letterData,\r\n levelOne,\r\n levelTwo,\r\n loanData: { loanInformation },\r\n loadingLetter,\r\n loanInformationVisible,\r\n modifyingLetter,\r\n toggleModal,\r\n toggleModify,\r\n}) {\r\n if (!loanInformationVisible && modifyingLetter) return null;\r\n\r\n return (\r\n \r\n Loan Information\r\n {levelOne === 'True' && levelTwo === 'False' ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n {Object.keys(loanInformation).map(info => (\r\n \r\n {loanInformation[info].label}\r\n {loanInformation[info].display}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default PreLoanInformation;\r\n\r\nPreLoanInformation.propTypes = {\r\n fileName: PropTypes.string.isRequired,\r\n letterData: PropTypes.object,\r\n levelOne: PropTypes.string,\r\n levelTwo: PropTypes.string,\r\n loanData: PropTypes.object.isRequired,\r\n loadingLetter: PropTypes.bool.isRequired,\r\n loanInformationVisible: PropTypes.bool,\r\n modifyingLetter: PropTypes.bool,\r\n toggleModal: PropTypes.func,\r\n toggleModify: PropTypes.func,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\n// import components\r\nimport PreLoanLetterLevelOneButtons from './PreLoanLetterLevelOneButtons';\r\nimport PreLoanLetterLevelTwoButtons from './PreLoanLetterLevelTwoButtons';\r\n\r\n// import styled components\r\nimport { PreLoanLetterWidgetWrapper, PreLoanTitle } from '../styled';\r\n\r\nconst PreLoanLetterWidget = ({\r\n fileName,\r\n letterData,\r\n levelOne,\r\n levelTwo,\r\n loadingLetter,\r\n loanData: { loanType },\r\n toggleModify,\r\n}) => (\r\n \r\n {`${loanType} Letter`}\r\n {levelOne === 'True' && levelTwo === 'False' ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n);\r\n\r\nexport default PreLoanLetterWidget;\r\n\r\nPreLoanLetterWidget.propTypes = {\r\n fileName: PropTypes.string.isRequired,\r\n /**\r\n * letterData is initially null, even with default prop set, so not set to required\r\n */\r\n letterData: PropTypes.object,\r\n levelOne: PropTypes.string.isRequired,\r\n levelTwo: PropTypes.string.isRequired,\r\n loadingLetter: PropTypes.bool.isRequired,\r\n loanData: PropTypes.object.isRequired,\r\n /**\r\n * only level two permissions uses this, not required for level one\r\n */\r\n toggleModify: PropTypes.func,\r\n};\r\n\r\nPreLoanLetterWidget.defaultProps = {\r\n levelOne: 'True',\r\n levelTwo: 'False',\r\n};\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from 'react';\n\nvar _ref =\n/*#__PURE__*/\nReact.createElement(\"title\", null, \"reset-values\");\n\nvar SvgComponent = function SvgComponent(props) {\n return React.createElement(\"svg\", _extends({\n width: 15.3,\n height: 18.36,\n viewBox: \"0 0 15.3 18.36\"\n }, props), _ref, React.createElement(\"path\", {\n d: \"M7.65,1.53h0V0h0L4.54,2.82,7.62,5.64h0V4h0a5.17,5.17,0,0,1,3.92,8.54l1.82,1.68A7.64,7.64,0,0,0,7.65,1.53Zm0,12.82A5.17,5.17,0,0,1,3.67,5.87L1.77,4.29A7.65,7.65,0,0,0,7.61,16.83v1.53l3-2.79-3-2.79Z\",\n style: {\n \"fill\": \"#fff\"\n }\n }));\n};\n\nexport default __webpack_public_path__ + \"static/media/reset-values.dfcdd05e.svg\";\nexport { SvgComponent as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from 'react';\n\nvar _ref =\n/*#__PURE__*/\nReact.createElement(\"title\", null, \"preview-letter\");\n\nvar SvgComponent = function SvgComponent(props) {\n return React.createElement(\"svg\", _extends({\n width: 19.19,\n height: 20.93,\n viewBox: \"0 0 19.19 20.93\"\n }, props), _ref, React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M13.53,12,6.32,7.81,9.38,2.52l7.2,4.16ZM7.1,7.6l6.22,3.58L15.8,6.89,9.58,3.3Z\",\n style: {\n \"fill\": \"#fff\"\n }\n }), React.createElement(\"path\", {\n d: \"M19.19,6.19,8.48,0,0,14.69l8.65,5H.51v1.25H16.9V19.68H11.4ZM1.13,14.38,8.78,1.13l9.28,5.36L10.44,19.68h-.13Z\",\n style: {\n \"fill\": \"#fff\"\n }\n }), React.createElement(\"rect\", {\n x: 8.49,\n y: 7.93,\n width: 0.71,\n height: 7.85,\n transform: \"translate(-5.84 13.59) rotate(-60)\",\n style: {\n \"fill\": \"#fff\"\n }\n }), React.createElement(\"rect\", {\n x: 7.47,\n y: 9.67,\n width: 0.71,\n height: 7.85,\n transform: \"translate(-7.86 13.57) rotate(-60)\",\n style: {\n \"fill\": \"#fff\"\n }\n }), React.createElement(\"rect\", {\n x: 6.37,\n y: 11.46,\n width: 0.71,\n height: 7.85,\n transform: \"translate(-9.96 13.52) rotate(-60)\",\n style: {\n \"fill\": \"#fff\"\n }\n })));\n};\n\nexport default __webpack_public_path__ + \"static/media/preview-letter.57982c16.svg\";\nexport { SvgComponent as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from 'react';\n\nvar _ref =\n/*#__PURE__*/\nReact.createElement(\"title\", null, \"cancel-letter\");\n\nvar SvgComponent = function SvgComponent(props) {\n return React.createElement(\"svg\", _extends({\n width: 20.04,\n height: 20.04,\n viewBox: \"0 0 20.04 20.04\"\n }, props), _ref, React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M10,20A10,10,0,1,1,20,10,10,10,0,0,1,10,20ZM10,2a8,8,0,1,0,8,8A8.05,8.05,0,0,0,10,2Z\",\n style: {\n \"fill\": \"#fff\"\n }\n }), React.createElement(\"path\", {\n d: \"M10,8.53l1.9-3.27h2.65L11.31,10l3.32,4.81H12l-2-3.34-2,3.34H5.41L8.73,10,5.51,5.26H8.12Z\",\n style: {\n \"fill\": \"#fff\"\n }\n })));\n};\n\nexport default __webpack_public_path__ + \"static/media/cancel-letter.200bcd7c.svg\";\nexport { SvgComponent as ReactComponent };","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\n// import hooks\r\nimport { useRegenerateLetter } from '../hooks';\r\n\r\n// import styled components\r\nimport { PreLoanLetterButton, PreLoanLetterButtonWrapper } from '../styled';\r\n\r\n// import svg\r\nimport { ReactComponent as ResetValuesIcon } from '../../../../assets/buttons/reset-values.svg';\r\nimport { ReactComponent as PreviewLetterIcon } from '../../../../assets/buttons/preview-letter.svg';\r\nimport { ReactComponent as CancelLetterIcon } from '../../../../assets/buttons/cancel-letter.svg';\r\n\r\nfunction PreLoanModifyButtons({ dispatch, isMobile, loanData, modifiedLoan, toggleModify }) {\r\n const modifiedLetterData = {\r\n ...loanData.letterInformation,\r\n LoanAmount: `$${parseInt(modifiedLoan.letterLoanAmount).toLocaleString()}`,\r\n PurchasePrice: `$${parseInt(modifiedLoan.letterPurchasePrice).toLocaleString()}`,\r\n };\r\n\r\n const [handleLetterRequest, sendingRequest] = useRegenerateLetter(loanData.loanType, modifiedLetterData);\r\n\r\n return (\r\n \r\n dispatch({ type: 'resetValues' })}>\r\n Reset Values\r\n \r\n handleLetterRequest()}>\r\n Preview Letter\r\n \r\n toggleModify(isMobile)}>\r\n Cancel Letter\r\n \r\n \r\n );\r\n}\r\n\r\nexport default PreLoanModifyButtons;\r\n\r\nPreLoanModifyButtons.propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n isMobile: PropTypes.bool.isRequired,\r\n loanData: PropTypes.object.isRequired,\r\n modifiedLoan: PropTypes.object.isRequired,\r\n toggleModify: PropTypes.func.isRequired,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\n// import hooks\r\nimport { useCreateLetter } from '../hooks';\r\n\r\n// import styled components\r\nimport { Spinner } from '../../../styled';\r\nimport { PreLoanLetterButton, PreLoanModifyDownloadWrapper } from '../styled';\r\n\r\n// import svg\r\nimport { ReactComponent as DownloadLetterIcon } from '../../../../assets/buttons/download-letter.svg';\r\n\r\nfunction PreLoanModifyDownload({ dispatch, loanData, modifiedLoan }) {\r\n const modifiedLetterData = {\r\n ...loanData.letterInformation,\r\n LoanAmount: `$${parseInt(modifiedLoan.loanAmount).toLocaleString()}`,\r\n PurchasePrice: `$${parseInt(modifiedLoan.purchasePrice).toLocaleString()}`,\r\n // for testing, override MLO email so as not to spam actual MLOs\r\n // LoanOfficerEmail: 'gbromser@onetrusthomeloans.com',\r\n };\r\n\r\n const [handleLetterRequest, sendingLetterRequest] = useCreateLetter(loanData.loanType, modifiedLetterData, dispatch);\r\n\r\n return (\r\n \r\n
    \r\n {sendingLetterRequest ? (\r\n \r\n ) : (\r\n handleLetterRequest()}>\r\n Download NEW Letter\r\n \r\n )}\r\n
    \r\n

    \r\n The new {loanData.loanType} letter will be sent to the Borrower at{' '}\r\n {loanData.contacts.borrower.email} and the Loan Officer at{' '}\r\n {loanData.contacts.mlo.email}.\r\n

    \r\n

    This may take a few minutes to download, please do not refresh the page.

    \r\n
    \r\n );\r\n}\r\n\r\nexport default PreLoanModifyDownload;\r\n\r\nPreLoanModifyDownload.propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n loanData: PropTypes.object.isRequired,\r\n modifiedLoan: PropTypes.object.isRequired,\r\n};\r\n","import styled from 'styled-components/macro';\r\n\r\n// import helpers\r\nimport { getColor, getFontWeight } from '../../../../../../util/theme';\r\n\r\nconst HandleLabel = styled.div`\r\n color: ${getColor('complimentaryBlue')};\r\n font-size: 1.6rem;\r\n font-weight: ${getFontWeight('medium')};\r\n\r\n margin: -25px 0 0 -20px;\r\n`;\r\n\r\nexport default HandleLabel;\r\n","import styled from 'styled-components/macro';\r\nimport PropTypes from 'prop-types';\r\n\r\n// import helpers\r\nimport { getBreakpoint } from '../../../../../../util/theme';\r\n\r\n// import assets\r\nimport sliderHandle from '../../../../../../assets/slider/slider-handle.svg';\r\n\r\nconst HandleWrapper = styled.div.attrs(props => ({ style: { left: `${props.percent}%` } }))`\r\n position: absolute;\r\n z-index: 2;\r\n\r\n margin: 15px 0 0 -15px;\r\n\r\n width: 22px;\r\n height: 35px;\r\n\r\n border: 0;\r\n\r\n background-image: url(${sliderHandle});\r\n background-repeat: no-repeat;\r\n background-size: cover;\r\n\r\n text-align: center;\r\n\r\n cursor: pointer;\r\n\r\n touch-action: none;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n margin: 20px 0 0 -15px;\r\n\r\n width: 25px;\r\n height: 40px;\r\n }\r\n`;\r\n\r\nexport default HandleWrapper;\r\n\r\nHandleWrapper.propTypes = {\r\n percent: PropTypes.number.isRequired,\r\n};\r\n","// not rly necessary to use constructors here but w/e\r\nfunction Rail(height, marginTop) {\r\n this.position = 'absolute';\r\n this.width = '100%';\r\n this.height = height;\r\n this.marginTop = marginTop;\r\n this.borderRadius = 5;\r\n this.background = 'repeating-linear-gradient(-45deg, #0071bc, #0071bc 3px, #a3cbe6 3px, #a3cbe6 6px)';\r\n}\r\n\r\nconst mobileRailStyle = new Rail(15, 30);\r\nconst railStyle = new Rail(20, 35);\r\n\r\nexport { mobileRailStyle, railStyle };\r\n","// not rly necessary to use constructors here but w/e\r\nfunction Slider(height) {\r\n this.position = 'relative';\r\n this.width = '100%';\r\n this.height = height;\r\n}\r\n\r\nconst mobileSliderStyle = new Slider(73);\r\nconst sliderStyle = new Slider(80);\r\n\r\nexport { mobileSliderStyle, sliderStyle };\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\n// import styled base\r\nimport { HandleLabel, HandleWrapper } from './styled';\r\n\r\nconst Handle = ({ getHandleProps, handle: { id, value, percent } }) => (\r\n \r\n {`$${value.toLocaleString()}`}\r\n \r\n);\r\n\r\nexport default Handle;\r\n\r\nHandle.propTypes = {\r\n getHandleProps: PropTypes.func.isRequired,\r\n handle: PropTypes.object.isRequired,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Slider, Handles } from 'react-compound-slider';\r\n\r\n// import components\r\nimport Handle from './Handle';\r\n\r\n// import styles\r\nimport { mobileRailStyle, mobileSliderStyle, railStyle, sliderStyle } from './styled';\r\n\r\nconst LoanAmountSlider = ({\r\n constraints: {\r\n loanAmount: { min },\r\n purchasePrice: { max },\r\n },\r\n dispatch,\r\n isMobile,\r\n loanAmount,\r\n}) => (\r\n dispatch({ type: 'modifyLoan', name: 'loanAmount', value: values[0] })}\r\n >\r\n
    \r\n \r\n {({ handles, getHandleProps }) => (\r\n
    \r\n {handles.map(handle => (\r\n \r\n ))}\r\n
    \r\n )}\r\n
    \r\n \r\n);\r\n\r\nexport default LoanAmountSlider;\r\n\r\nLoanAmountSlider.propTypes = {\r\n constraints: PropTypes.object.isRequired,\r\n dispatch: PropTypes.func.isRequired,\r\n isMobile: PropTypes.bool.isRequired,\r\n loanAmount: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Slider, Handles } from 'react-compound-slider';\r\n\r\n// import components\r\nimport Handle from './Handle';\r\n\r\n// import styles\r\nimport { mobileRailStyle, mobileSliderStyle, railStyle, sliderStyle } from './styled';\r\n\r\nconst PurchasePriceSlider = ({\r\n constraints: {\r\n loanAmount: { min },\r\n purchasePrice: { max },\r\n },\r\n dispatch,\r\n isMobile,\r\n purchasePrice,\r\n}) => (\r\n dispatch({ type: 'modifyLoan', name: 'purchasePrice', value: values[0] })}\r\n >\r\n
    \r\n \r\n {({ handles, getHandleProps }) => (\r\n
    \r\n {handles.map(handle => (\r\n \r\n ))}\r\n
    \r\n )}\r\n
    \r\n \r\n);\r\n\r\nexport default PurchasePriceSlider;\r\n\r\nPurchasePriceSlider.propTypes = {\r\n constraints: PropTypes.object.isRequired,\r\n dispatch: PropTypes.func.isRequired,\r\n isMobile: PropTypes.bool.isRequired,\r\n purchasePrice: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n};\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from 'react';\n\nvar _ref =\n/*#__PURE__*/\nReact.createElement(\"title\", null, \"calculate-values\");\n\nvar _ref2 =\n/*#__PURE__*/\nReact.createElement(\"path\", {\n d: \"M72,103.81v7.94H63.2v-7c-4.38-.26-9-1.55-11.64-3.31l-1.23-.83,2.73-9.06,2.22,1.36a19.68,19.68,0,0,0,9.93,2.8c5,0,7.92-2.27,7.92-6.09,0-3-1.22-5.08-7.65-7.56-9.29-3.29-13.82-8.31-13.82-15.32,0-6.84,4.47-12.24,11.54-14.15V44.25H72V52a21.43,21.43,0,0,1,8.48,2.44l1.44.82-3,8.84-2.1-1.15a16.7,16.7,0,0,0-8-2c-5.12,0-6.93,2.75-6.93,5.1,0,2.8,1.22,4.6,8.15,7.29,6.62,2.55,13.4,6.43,13.4,15.81C83.42,96.18,79.1,101.68,72,103.81Z\"\n});\n\nvar _ref3 =\n/*#__PURE__*/\nReact.createElement(\"path\", {\n d: \"M8.42,77.66A58.7,58.7,0,0,1,49.77,21.5V35.9L74.3,18,49.77,0V12.74a67.23,67.23,0,0,0-.23,129.79l2.21-8.13A58.9,58.9,0,0,1,8.42,77.66Z\"\n});\n\nvar _ref4 =\n/*#__PURE__*/\nReact.createElement(\"path\", {\n d: \"M84.2,13.48,82,21.61A58.81,58.81,0,0,1,84,134.5V120.1l-24.53,18L84,156V143.27A67.23,67.23,0,0,0,84.2,13.48Z\"\n});\n\nvar SvgComponent = function SvgComponent(props) {\n return React.createElement(\"svg\", _extends({\n width: 133.74,\n height: 156,\n viewBox: \"0 0 133.74 156\"\n }, props), _ref, _ref2, _ref3, _ref4);\n};\n\nexport default __webpack_public_path__ + \"static/media/calculate-values-icon.f175ac25.svg\";\nexport { SvgComponent as ReactComponent };","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport NumberFormat from 'react-number-format';\r\n\r\n// import components\r\nimport { LoanAmountSlider, PurchasePriceSlider } from './PreLoanModifySlider';\r\n\r\n// import styled components\r\nimport { PreLoanLetterButton, PreLoanModifyInputInput, PreLoanModifyInputTable } from '../styled';\r\n\r\n// import svg\r\nimport { ReactComponent as CalculateValuesIcon } from '../../../../assets/icons/calculate-values-icon.svg';\r\n\r\nconst PreLoanModifyInput = ({\r\n dispatch,\r\n isMobile,\r\n modifiedLoan: { constraints, loanAmount, inputLoanAmount, purchasePrice, inputPurchasePrice, loanToValue },\r\n}) => (\r\n \r\n \r\n \r\n \r\n Purchase Price\r\n \r\n dispatch({ type: 'modifyLoanInput', name: 'inputPurchasePrice', value: e.target.value })}\r\n />\r\n dispatch({ type: 'modifyLoanFromInput', name: 'inputPurchasePrice' })}>\r\n \r\n Update\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Loan Amount\r\n \r\n dispatch({ type: 'modifyLoanInput', name: 'inputLoanAmount', value: e.target.value })}\r\n />\r\n dispatch({ type: 'modifyLoanFromInput', name: 'inputLoanAmount' })}>\r\n Update\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Max Loan to Value\r\n
    \r\n {`${constraints.ltv * 100}%`}\r\n \r\n {`${loanToValue}%`}\r\n \r\n \r\n
    \r\n);\r\n\r\nexport default PreLoanModifyInput;\r\n\r\nPreLoanModifyInput.propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n isMobile: PropTypes.bool.isRequired,\r\n modifiedLoan: PropTypes.object.isRequired,\r\n};\r\n","import React, { useEffect, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\n// import components\r\nimport PreLoanModifyButtons from './PreLoanModifyButtons';\r\nimport PreLoanModifyDownload from './PreLoanModifyDownload';\r\nimport PreLoanModifyInput from './PreLoanModifyInput';\r\n\r\n// import styled components\r\nimport { PreLoanTitle } from '../styled';\r\n\r\nfunction PreLoanModify({ dispatch, loanData, modifiedLoan, toggleModify }) {\r\n const [isMobile, setIsMobile] = useState(false);\r\n\r\n useEffect(() => {\r\n if (window.innerWidth <= 768) {\r\n setIsMobile(true);\r\n }\r\n }, []);\r\n\r\n return (\r\n <>\r\n Modify Letter\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default PreLoanModify;\r\n\r\nPreLoanModify.propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n loanData: PropTypes.object.isRequired,\r\n modifiedLoan: PropTypes.object.isRequired,\r\n toggleModify: PropTypes.func.isRequired,\r\n};\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from 'react';\n\nvar _ref =\n/*#__PURE__*/\nReact.createElement(\"title\", null, \"return-arrow\");\n\nvar SvgComponent = function SvgComponent(props) {\n return React.createElement(\"svg\", _extends({\n width: 14.64,\n height: 14.55,\n viewBox: \"0 0 14.64 14.55\"\n }, props), _ref, React.createElement(\"polygon\", {\n points: \"14.64 4.47 8.29 4.47 8.29 0 0 7.13 8.29 14.55 8.29 10.19 14.64 10.19 14.64 4.47\",\n style: {\n \"fill\": \"#5481a3\"\n }\n }));\n};\n\nexport default __webpack_public_path__ + \"static/media/return-arrow.042aab55.svg\";\nexport { SvgComponent as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from 'react';\n\nvar _ref =\n/*#__PURE__*/\nReact.createElement(\"title\", null, \"success-message\");\n\nvar SvgComponent = function SvgComponent(props) {\n return React.createElement(\"svg\", _extends({\n width: 206.96,\n height: 58.48,\n viewBox: \"0 0 206.96 58.48\"\n }, props), _ref, React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M8.21,54.26c13.57,0,41-13.56,41-22.06,0-3.49-4.67-5.57-10.19-7.09-6.75-1.86-14.4-2.87-14.4-7.82C24.65,7.84,42.82.3,51,0c5.12-.16,8.55,1.07,8.49,5.41-.11,6.69-9.9,14-15.86,14-1.13,0-2.82-.45-2.82-1.69,0-2.3,2.2-4.72,3.32-5.4A4.73,4.73,0,0,0,43,15.21c0,.33.34.33.68.33,2.3,0,13.28-6.3,14-11.42.28-1.8-1.24-2.31-3.38-2.31-.62,0-1.35.06-2.08.12C45,2.71,28.47,12,28.47,17.8c0,3.26,5.4,4.67,11.09,6.24,6.36,1.75,12.94,3.83,12.94,10.07,0,12.33-28,24.37-43.38,24.37C5.4,58.48,0,57.41,0,53c0-8.32,25.43-21.77,32.69-21.6C17.78,35.41,3.49,47.84,3.49,52,3.49,54.2,6.41,54.26,8.21,54.26Z\",\n style: {\n \"fill\": \"#5481a3\"\n }\n }), React.createElement(\"path\", {\n d: \"M73,31.75c-5.68,5.8-13.22,13.9-16.6,14.57H56a3.49,3.49,0,0,1-2.65-2.87c0-2.41,3.1-8.1,6.31-12.54a38.66,38.66,0,0,1,5.74-6.59,1.15,1.15,0,0,1,.78-.34c1.35,0,3.55,2.2,3.55,3.66,0,.23-.23-.05-.73-.11-.85-.11-3.21,2.81-5.12,5.29-2.87,3.77-5.69,8.66-5.69,10.3,2.7-1.13,8.44-6.19,11.15-8.78,2.92-2.87,7.09-7.77,10.29-10.24a1.21,1.21,0,0,1,.79-.28c1.35,0,3.49,2.19,3.49,3.6,0,.22-.17-.06-.68-.11a3.61,3.61,0,0,0-1.85,1.29c-.85.9-2.42,2.93-4.28,5.4-2.81,3.77-4.9,7.77-4.9,9.34,3.55-1.07,11.54-8.72,15-12,.34-.28.62.17.45.33C82.72,37,73.55,46.44,70.17,46.44a1.53,1.53,0,0,1-.9-.34,3.9,3.9,0,0,1-2-2.76,10.36,10.36,0,0,1,.62-2.42A38,38,0,0,1,73,31.75Z\",\n style: {\n \"fill\": \"#5481a3\"\n }\n }), React.createElement(\"path\", {\n d: \"M87.11,44c5.17-.57,14.63-8.16,20.08-12.61.17-.11.57.12.4.28-4.84,4.56-15.7,14.75-22.68,14.75A4.57,4.57,0,0,1,80.8,43a4.69,4.69,0,0,1,.12-1.69c.45-2.36,2.47-6.3,6.24-10,4.62-4.56,10.3-7.48,14.29-7.48,1.3,0,3.21,1.91,3.21,2.75,0,2.14-2.75,4.22-4.61,5.63-.11.11-.4,0-.28-.17.9-.9,3.2-5.34,2.75-5.74-6,.11-17,12.83-17,16.77C85.47,44,86.6,44.07,87.11,44Z\",\n style: {\n \"fill\": \"#5481a3\"\n }\n }), React.createElement(\"path\", {\n d: \"M106.63,44c5.18-.57,14.63-8.16,20.09-12.61.17-.11.56.12.39.28-4.84,4.56-15.7,14.75-22.67,14.75A4.56,4.56,0,0,1,100.33,43a4.44,4.44,0,0,1,.11-1.69c.45-2.36,2.48-6.3,6.25-10,4.61-4.56,10.3-7.48,14.29-7.48,1.29,0,3.21,1.91,3.21,2.75,0,2.14-2.76,4.22-4.62,5.63-.11.11-.39,0-.28-.17.9-.9,3.21-5.34,2.76-5.74-6,.11-17,12.83-17,16.77C105,44,106.13,44.07,106.63,44Z\",\n style: {\n \"fill\": \"#5481a3\"\n }\n }), React.createElement(\"path\", {\n d: \"M124.08,42.89c-.06.68.45,1.07,1.68,1.07,4.11,0,14.41-7.82,20.09-12.55.17-.11.56.17.4.34-4.22,3.94-15.42,14.69-22.91,14.69-1.74,0-4-2-4-3.55a10.44,10.44,0,0,1,.79-3.71,28.15,28.15,0,0,1,7.76-9.74c4.67-3.88,9.68-5.62,12.1-5.62.84,0,3.43,1.29,3.43,2.87,0,3.48-10.8,11.59-17.1,11.76A9.4,9.4,0,0,0,124.08,42.89Zm3-5.57c4.89-.56,14.23-9.68,14.57-11.82C135.39,27.53,128.91,34.34,127.06,37.32Z\",\n style: {\n \"fill\": \"#5481a3\"\n }\n }), React.createElement(\"path\", {\n d: \"M147.26,33.83c-.23,1,1.12,1.86,1.69,2.37,9-5.07,16.2-6.31,16.93-6.31.12,0,.34.12.34.28.51.17-10.63,3.1-16.77,6.76.73.56,2.14,2.19,2,3.37-.79,3.66-8.21,6.64-11.87,6.64-1.24,0-1.86-1-2.14-2.25.17-2.42,8.44-7.14,10.41-7.93-.62-.79-3.94-2.82-3.43-5.29.9-4.28,9-8.5,14-8.5,1.58,0,2.31,2.59,2.14,4.22,0,.79-3.6,4.17-5.12,4.17-.05,0-.17-.23-.11-.23s3.94-3.94,4.05-5.06C156.71,25.84,148,31.19,147.26,33.83Zm-8.39,10.24c2.2-.62,9.18-4.22,9.18-6.36A54.76,54.76,0,0,0,138.87,44.07Z\",\n style: {\n \"fill\": \"#5481a3\"\n }\n }), React.createElement(\"path\", {\n d: \"M163.18,33.83c-.22,1,1.13,1.86,1.69,2.37,9-5.07,16.21-6.31,16.94-6.31.11,0,.34.12.34.28.5.17-10.64,3.1-16.77,6.76.73.56,2.14,2.19,2,3.37-.79,3.66-8.22,6.64-11.88,6.64-1.23,0-1.85-1-2.13-2.25.16-2.42,8.44-7.14,10.41-7.93-.62-.79-3.94-2.82-3.44-5.29.9-4.28,9-8.5,14-8.5,1.57,0,2.3,2.59,2.14,4.22-.06.79-3.61,4.17-5.12,4.17-.06,0-.17-.23-.12-.23s3.94-3.94,4.05-5.06C172.64,25.84,163.91,31.19,163.18,33.83ZM154.8,44.07c2.19-.62,9.17-4.22,9.17-6.36A54.2,54.2,0,0,0,154.8,44.07Z\",\n style: {\n \"fill\": \"#5481a3\"\n }\n }), React.createElement(\"path\", {\n d: \"M180.4,46.27a2.38,2.38,0,0,1-2.53-1.75c-.28-1.57,1.52-4.55,3.26-5,1.07-.22,3.6.57,4.11,1.63C183.38,41.48,181.13,46.16,180.4,46.27Zm5-11a.3.3,0,0,0,.28.28c.51,0,1.46-.84,1.46-.73s-1.52,1.86-2.64,1.86c-.85,0-1.3-.85-1.3-1.64,0-6.64,15.65-30.33,19.7-30.33A4.78,4.78,0,0,1,207,6.77C204,5.59,185.41,32.48,185.41,35.24Z\",\n style: {\n \"fill\": \"#5481a3\"\n }\n })));\n};\n\nexport default __webpack_public_path__ + \"static/media/success-message.01928dfe.svg\";\nexport { SvgComponent as ReactComponent };","import React, { useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\n// import components\r\nimport PreLoanHistory from '../PreLoanHistory';\r\n\r\n// import styled components\r\nimport { PreLoanSectionWrapper, PreLoanSuccessContent, PreLoanSuccessReturnButton } from '../styled';\r\n\r\n// import svg\r\nimport { ReactComponent as ReturnArrow } from '../../../../assets/buttons/return-arrow.svg';\r\nimport { ReactComponent as SuccessBanner } from '../../../../assets/img/success-message.svg';\r\n\r\nfunction PreLoanSuccess({ dispatch, loanData, loanLetters, modifiedLoan, setModifyingLetter }) {\r\n const {\r\n contacts: { borrower, mlo },\r\n loanType,\r\n } = loanData;\r\n\r\n const returnToLoanInformation = () => {\r\n dispatch({ type: 'toggleSuccess' });\r\n setModifyingLetter(false);\r\n };\r\n\r\n useEffect(() => {\r\n dispatch({ type: 'addLoanLetter' });\r\n }, []);\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n

    \r\n Your request for an new {loanType} Letter indicating a purchase price of{' '}\r\n {`$${parseInt(modifiedLoan.purchasePrice).toLocaleString()}`}, loan amount of{' '}\r\n {`$${parseInt(modifiedLoan.loanAmount).toLocaleString()}`}, and LTV of {`${modifiedLoan.loanToValue}%`} has\r\n been sent to the Borrower at {borrower.email} and the Loan Officer at{' '}\r\n {mlo.email}.\r\n

    \r\n \r\n \r\n Return to Loan Overview\r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default PreLoanSuccess;\r\n\r\nPreLoanSuccess.propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n loanData: PropTypes.object.isRequired,\r\n loanLetters: PropTypes.array.isRequired,\r\n modifiedLoan: PropTypes.object.isRequired,\r\n setModifyingLetter: PropTypes.func.isRequired,\r\n};\r\n","import React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport posed, { PoseGroup } from 'react-pose';\r\n\r\n// import hooks\r\nimport { useModifyLoanReducer, usePreloadRegeneratedLetter } from './hooks';\r\n\r\n// import components\r\nimport PreLoanHistory from './PreLoanHistory';\r\nimport PreLoanInformation from './PreLoanInformation';\r\nimport PreLoanLetter from './PreLoanLetter';\r\nimport PreLoanModify from './PreLoanModify';\r\nimport PreLoanSuccess from './PreLoanSuccess';\r\n\r\n// import styled components\r\nimport { PreLoanBody, PreLoanSectionWrapper } from './styled';\r\nimport { Grid } from '../../styled';\r\n\r\nconst TransitionComponent = posed.div({\r\n enter: {\r\n x: 0,\r\n opacity: 1,\r\n delay: 300,\r\n transition: {\r\n opacity: { duration: 250 },\r\n },\r\n },\r\n exit: {\r\n x: 250,\r\n opacity: 0,\r\n transition: { opacity: { duration: 250 } },\r\n },\r\n});\r\n\r\nconst HistoryTransitionComponent = posed.div({});\r\n\r\nfunction PreLoan({ loanData }) {\r\n /**\r\n * bail out of rendering if loanData prop is still an active/funded loan, only prequal/preapproved have constraints property\r\n * this can happen when navigating directly from one loan to another via the drawer menu, if it tries to render a PreLoan before loanData has updated\r\n * check could be changed to a different property or loan type if desired idk\r\n */\r\n if (!loanData.hasOwnProperty('constraints')) {\r\n return null;\r\n }\r\n\r\n const {\r\n loanInformation: { loanAmount, loanToValue, purchasePrice },\r\n permissions: { levelOne, levelTwo },\r\n } = loanData;\r\n\r\n const [modifiedLoan, dispatch] = useModifyLoanReducer({\r\n initialValues: {\r\n purchasePrice: purchasePrice.value,\r\n loanAmount: loanAmount.value,\r\n loanToValue: parseFloat(loanToValue.value).toFixed(2),\r\n },\r\n purchasePrice: purchasePrice.value,\r\n inputPurchasePrice: parseInt(purchasePrice.value).toLocaleString(),\r\n letterPurchasePrice: purchasePrice.value,\r\n loanAmount: loanAmount.value,\r\n inputLoanAmount: parseInt(loanAmount.value).toLocaleString(),\r\n letterLoanAmount: loanAmount.value,\r\n loanToValue: parseFloat(loanToValue.value).toFixed(2),\r\n loanLetters: [...loanData.loanLetters],\r\n constraints: loanData.constraints,\r\n success: false,\r\n });\r\n\r\n const [preloadedLetterData, fileName, loadingLetter] = usePreloadRegeneratedLetter(\r\n loanData.loanType,\r\n loanData.letterInformation\r\n );\r\n\r\n const [modifyingLetter, setModifyingLetter] = useState(false);\r\n const [loanInformationVisible, setLoanInformationVisible] = useState(true);\r\n\r\n const toggleModify = mobile => {\r\n if (mobile) {\r\n setLoanInformationVisible(!loanInformationVisible);\r\n }\r\n\r\n setModifyingLetter(!modifyingLetter);\r\n };\r\n\r\n /**\r\n * level one only permissions - return read only components\r\n * no animations for this, content is totally static\r\n */\r\n if (levelOne === 'True' && levelTwo === 'False') {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n {modifiedLoan.success ? (\r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n \r\n {modifyingLetter ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default PreLoan;\r\n\r\nPreLoan.propTypes = {\r\n loanData: PropTypes.object.isRequired,\r\n};\r\n","import React, { useContext } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\n// import context\r\nimport { LoggedInContext } from '../Context/LoggedInContext';\r\n\r\n// import hooks\r\nimport { useGetIndividualLoanDetails } from './hooks';\r\n\r\n// import components\r\nimport LoanHeader from './LoanHeader';\r\nimport ActiveFundedLoan from './ActiveFundedLoan';\r\nimport PreLoan from './PreLoan';\r\n\r\n// import styled components\r\nimport { Grid, Spinner } from '../styled';\r\n\r\n/**\r\n * not destructuring props here to make issue with props.location.state in Edge clear, see below\r\n */\r\nfunction Loan(props) {\r\n const {\r\n state: { loanCacheList, loanCache, userState },\r\n functions: { loanCacheDispatch },\r\n } = useContext(LoggedInContext);\r\n\r\n /**\r\n * there is a bug in Edge with this...props.location.state is null if loan is directly accessed/refreshed\r\n * if 100% Edge support becomes an issue (lol) then look at that more closely...\r\n * works fine in everything else, even IE11!\r\n */\r\n\r\n // const {\r\n // location: {\r\n // state: { type },\r\n // },\r\n // } = props;\r\n\r\n const loanData = useGetIndividualLoanDetails(userState, props.id, loanCache, loanCacheList, loanCacheDispatch);\r\n\r\n return (\r\n
    \r\n {// show loading spinner if loan type hasn't been determined, prevents flash of blank content\r\n !loanData.loanType ? (\r\n \r\n \r\n \r\n ) : (\r\n <>\r\n \r\n \r\n \r\n {loanData.loanType === 'In Process' || loanData.loanType === 'Funded' ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n )}\r\n
    \r\n );\r\n}\r\n\r\nexport default Loan;\r\n\r\n/**\r\n * Loan props are all from router\r\n */\r\nLoan.propTypes = {\r\n '*': PropTypes.string.isRequired,\r\n location: PropTypes.object.isRequired,\r\n navigate: PropTypes.func.isRequired,\r\n path: PropTypes.string.isRequired,\r\n uri: PropTypes.string.isRequired,\r\n};\r\n\r\n/**\r\n * set default props bc all return undefined on initial render\r\n */\r\nLoan.defaultProps = {\r\n '*': '',\r\n location: {},\r\n navigate: () => null,\r\n path: '',\r\n uri: '',\r\n};\r\n","import { useEffect, useReducer } from 'react';\r\n\r\nfunction profileReducer(state, action) {\r\n const { type, name, value, file } = action;\r\n\r\n switch (type) {\r\n case 'setProfileValues':\r\n return {\r\n ...value,\r\n };\r\n case 'inputChange':\r\n return {\r\n ...state,\r\n [name]: value,\r\n };\r\n case 'addressInputChange':\r\n return {\r\n ...state,\r\n address: {\r\n ...state.address,\r\n [name]: value,\r\n },\r\n };\r\n case 'imageChange':\r\n return {\r\n ...state,\r\n ...value,\r\n newImage: {\r\n ...state.newImage,\r\n [name]: file,\r\n },\r\n };\r\n default:\r\n return { ...state };\r\n }\r\n}\r\n\r\nfunction useProfileReducer(initialLoad, contextProfileState) {\r\n const [profileState, dispatch] = useReducer(profileReducer, contextProfileState);\r\n\r\n useEffect(() => {\r\n if (!initialLoad) {\r\n return;\r\n }\r\n\r\n if (contextProfileState) {\r\n dispatch({ type: 'setProfileValues', value: contextProfileState });\r\n }\r\n }, [contextProfileState]);\r\n\r\n return [profileState, dispatch];\r\n}\r\n\r\nexport default useProfileReducer;\r\n","import styled from 'styled-components/macro';\r\nimport { Link } from '@reach/router';\r\n\r\nconst ProfileHeaderLeftLink = styled(Link)`\r\n display: flex;\r\n align-items: center;\r\n\r\n transition: all 0.2s ease-in-out;\r\n\r\n &:hover {\r\n transform: translateY(-10px);\r\n }\r\n`;\r\n\r\nexport default ProfileHeaderLeftLink;\r\n","import styled from 'styled-components/macro';\r\nimport { Link } from '@reach/router';\r\n\r\n// import helpers\r\nimport { getColor } from '../../../util/theme';\r\n\r\nconst ProfileHeaderRightLink = styled(Link)`\r\n color: ${getColor('cardBlue')};\r\n font-size: 1.4rem;\r\n\r\n border: 1px solid ${getColor('cardBlue')};\r\n border-radius: 2px;\r\n\r\n padding: 1rem;\r\n\r\n &:hover {\r\n border: 1px solid ${getColor('accentOrange')};\r\n\r\n background-color: ${getColor('accentOrange')};\r\n\r\n color: ${getColor('white')};\r\n }\r\n`;\r\n\r\nexport default ProfileHeaderRightLink;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import helpers\r\nimport { getBreakpoint, getColor } from '../../../util/theme';\r\n\r\nconst ProfileHeaderWrapper = styled.div`\r\n display: flex;\r\n justify-content: space-between;\r\n\r\n border-bottom: 1px solid ${getColor('lightestGrey')};\r\n\r\n padding: 0 10px 10px 10px;\r\n margin: 0 0 25px 0;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n padding: 0 0 10px 0;\r\n }\r\n\r\n div {\r\n display: flex;\r\n align-items: center;\r\n }\r\n\r\n svg {\r\n height: 50px;\r\n width: 50px;\r\n\r\n margin: 0 16px 0 0;\r\n }\r\n\r\n h1 {\r\n color: ${getColor('titleBlue')};\r\n font-size: 3rem;\r\n\r\n margin: 0;\r\n }\r\n`;\r\n\r\nexport default ProfileHeaderWrapper;\r\n","import styled from 'styled-components/macro';\r\n\r\nconst ProfileWrapper = styled.section`\r\n display: flex;\r\n flex-direction: column;\r\n\r\n margin: 50px 0 25px 0;\r\n\r\n min-height: 90vh;\r\n`;\r\n\r\nexport default ProfileWrapper;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from 'react';\n\nvar _ref =\n/*#__PURE__*/\nReact.createElement(\"g\", null, React.createElement(\"path\", {\n fill: \"#7f8de1\",\n d: \"M107.3,110.6H17.7c-5.2,0-9.5-4.2-9.5-9.5V23.9c0-5.2,4.2-9.5,9.5-9.5h89.6c5.2,0,9.5,4.2,9.5,9.5v77.2 C116.8,106.3,112.5,110.6,107.3,110.6z\"\n}));\n\nvar _ref2 =\n/*#__PURE__*/\nReact.createElement(\"g\", null, React.createElement(\"ellipse\", {\n fill: \"#ffffff\",\n cx: 76.9,\n cy: 54.5,\n rx: 14,\n ry: 14.7\n}), React.createElement(\"path\", {\n fill: \"#ffffff\",\n d: \"M76.9,98.3c-7,0-14.5,0.2-19.5-0.1c-2.3-0.1-3.6-0.4-5-1.7c-1.9-1.9-1.8-4.7-1.8-7c0-7.4,11.8-13.5,26.3-13.5 L76.9,98.3z\"\n}), React.createElement(\"path\", {\n fill: \"#ffffff\",\n d: \"M76.9,98.3c7,0,14.5,0.2,19.5-0.1c2.3-0.1,3.6-0.4,5-1.7c1.9-1.9,1.8-4.7,1.8-7c0-7.4-11.8-13.5-26.3-13.5 L76.9,98.3z\"\n}), React.createElement(\"path\", {\n fill: \"#ffffff\",\n d: \"M59.2,31.1H21.8v62.7h21.9c-0.3-1.7-0.3-3.4-0.3-5c0-6.4,6.3-12,15.8-15.5v-5.2c-2.8-3.3-4.6-7.6-4.6-12.3 s1.7-9.1,4.6-12.3V31.1z M28.7,40h6.7v6.7h-6.7V40z M28.7,53.5h6.7v6.7h-6.7V53.5z M28.7,66.9h6.7v6.7h-6.7V66.9z M35.4,87.1h-6.7 v-6.7h6.7V87.1z M51.1,73.6h-6.7v-6.7h6.7V73.6z M51.1,60.1h-6.7v-6.7h6.7V60.1z M51.1,46.7h-6.7V40h6.7V46.7z\"\n}));\n\nvar SvgComponent = function SvgComponent(props) {\n return React.createElement(\"svg\", _extends({\n version: 1.1,\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n viewBox: \"0 0 125 125\"\n }, props), _ref, _ref2);\n};\n\nexport default __webpack_public_path__ + \"static/media/user-profile-icon.347c2e8d.svg\";\nexport { SvgComponent as ReactComponent };","import React from 'react';\r\n\r\n// import assets\r\nimport { ReactComponent as ProfileIcon } from '../../assets/icons/user-profile-icon.svg';\r\n\r\n// import styled components\r\nimport { ProfileHeaderWrapper, ProfileHeaderLeftLink, ProfileHeaderRightLink } from './styled';\r\n\r\nconst ProfileHeader = () => (\r\n \r\n \r\n \r\n

    Profile

    \r\n
    \r\n
    \r\n Change Password\r\n
    \r\n
    \r\n);\r\n\r\nexport default ProfileHeader;\r\n","const profileContentFirstFields = [\r\n {\r\n name: 'firstName',\r\n label: 'First Name',\r\n },\r\n {\r\n name: 'lastName',\r\n label: 'Last Name',\r\n },\r\n {\r\n name: 'company',\r\n label: 'Company',\r\n },\r\n {\r\n name: 'title',\r\n label: 'Title',\r\n },\r\n {\r\n name: 'gender',\r\n label: 'Gender',\r\n options: ['Male', 'Female', 'Not Specified'],\r\n },\r\n {\r\n name: 'license',\r\n label: 'License',\r\n },\r\n {\r\n name: 'birthDate',\r\n label: 'Birth Date',\r\n type: 'date',\r\n },\r\n];\r\n\r\nexport default profileContentFirstFields;\r\n","import { useState } from 'react';\r\n\r\nfunction useEditModeState(initialEditModeState) {\r\n const [editModeState, setEditModeState] = useState(initialEditModeState);\r\n\r\n const toggleFieldEditMode = (field, address) => {\r\n const updatedEditModeState = { ...editModeState };\r\n\r\n if (address) {\r\n updatedEditModeState.address[field] = !updatedEditModeState.address[field];\r\n } else {\r\n updatedEditModeState[field] = !updatedEditModeState[field];\r\n }\r\n\r\n setEditModeState(updatedEditModeState);\r\n };\r\n\r\n return [editModeState, toggleFieldEditMode];\r\n}\r\n\r\nexport default useEditModeState;\r\n","import styled from 'styled-components/macro';\r\n\r\nconst ProfileContentAddressFieldsWrapper = styled.div`\r\n flex-basis: 70%;\r\n\r\n display: flex;\r\n flex-direction: column;\r\n\r\n input:first-of-type {\r\n flex-basis: 100%;\r\n align-self: flex-start;\r\n }\r\n\r\n input:not(first-of-type) {\r\n flex-basis: 25%;\r\n }\r\n`;\r\n\r\nexport default ProfileContentAddressFieldsWrapper;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import theme helpers\r\nimport { getBreakpoint } from '../../../../util/theme';\r\n\r\nconst ProfileContentField = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n\r\n padding: 5px 0;\r\n\r\n width: 100%;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n flex-direction: row;\r\n }\r\n`;\r\n\r\nexport default ProfileContentField;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import theme helpers\r\nimport { getBreakpoint, getColor, getFontWeight } from '../../../../util/theme';\r\n\r\nconst ProfileContentFieldInputWrapper = styled.div`\r\n flex-basis: 70%;\r\n\r\n display: flex;\r\n\r\n min-height: 40px;\r\n\r\n div {\r\n color: ${getColor('black')};\r\n\r\n border-bottom: 1px dashed ${getColor('coolBlue')};\r\n\r\n cursor: pointer;\r\n }\r\n\r\n input {\r\n color: ${getColor('coolBlue')};\r\n\r\n border: 0;\r\n border-bottom: 1px solid ${getColor('coolBlue')};\r\n\r\n line-height: 1.4;\r\n }\r\n\r\n input,\r\n div {\r\n font-size: 2rem;\r\n font-weight: ${getFontWeight('light')};\r\n\r\n background-color: transparent;\r\n\r\n margin: 0 20px 0 0;\r\n padding: 5px 0 0 0;\r\n\r\n width: 80%;\r\n\r\n display: flex;\r\n align-items: center;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n padding: 5px;\r\n }\r\n\r\n &:hover {\r\n color: ${getColor('coolBlue')};\r\n }\r\n }\r\n\r\n span {\r\n display: none;\r\n\r\n color: ${getColor('coolBlue')};\r\n font-size: 2rem;\r\n font-weight: ${getFontWeight('bold')};\r\n\r\n width: 10%;\r\n\r\n cursor: pointer;\r\n\r\n &:hover {\r\n color: ${getColor('accentGreen')};\r\n }\r\n\r\n &.visible {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n }\r\n }\r\n`;\r\n\r\nexport default ProfileContentFieldInputWrapper;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import theme helpers\r\nimport { getBreakpoint, getColor, getFontWeight } from '../../../../util/theme';\r\n\r\nconst ProfileContentFieldLabel = styled.label`\r\n flex-basis: 30%;\r\n\r\n color: ${getColor('titleGrey')};\r\n font-size: 1.4rem;\r\n font-weight: ${getFontWeight('medium')};\r\n text-align: right;\r\n text-transform: uppercase;\r\n\r\n margin: 0 5px 0 0;\r\n padding: 10px 0;\r\n\r\n width: 125px;\r\n\r\n text-align: left;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n margin: 0 20px 0 0;\r\n }\r\n\r\n &.align-start {\r\n align-self: flex-start;\r\n }\r\n`;\r\n\r\nexport default ProfileContentFieldLabel;\r\n","import styled from 'styled-components/macro';\r\nimport PropTypes from 'prop-types';\r\n\r\n// import theme helpers\r\nimport { getBreakpoint } from '../../../../util/theme';\r\n\r\nconst ProfileContentFieldsWrapper = styled.div`\r\n flex-basis: ${props => (props.flexBasis ? props.flexBasis : 'auto')};\r\n\r\n padding: 0 0 0 25px;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n padding: 0;\r\n }\r\n`;\r\n\r\nexport default ProfileContentFieldsWrapper;\r\n\r\nProfileContentFieldsWrapper.propTypes = {\r\n flexBasis: PropTypes.string.isRequired,\r\n};\r\n\r\n/**\r\n * I think this is redundant with the ternary but that's ok\r\n */\r\nProfileContentFieldsWrapper.defaultProps = {\r\n flexBasis: 'auto',\r\n};\r\n","import styled from 'styled-components/macro';\r\n\r\n// import theme helpers\r\nimport { getBreakpoint } from '../../../../util/theme';\r\n\r\nconst ProfileContentFirstWrapper = styled.div`\r\n flex-basis: 65%;\r\n\r\n padding: 0 0 0 25px;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n padding: 0;\r\n }\r\n`;\r\n\r\nexport default ProfileContentFirstWrapper;\r\n","import styled from 'styled-components/macro';\r\n\r\nconst ProfileContentHeadshotContainer = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n\r\n position: relative;\r\n\r\n cursor: pointer;\r\n svg,\r\n img {\r\n height: auto;\r\n max-width: 175px;\r\n }\r\n\r\n div {\r\n opacity: 0;\r\n }\r\n\r\n &:hover {\r\n div {\r\n opacity: 1;\r\n }\r\n }\r\n`;\r\n\r\nexport default ProfileContentHeadshotContainer;\r\n","import styled from 'styled-components/macro';\r\n\r\nconst ProfileContentHeadshotWrapper = styled.div`\r\n flex-basis: 35%;\r\n\r\n padding: 0 25px;\r\n margin: 0 0 25px 0;\r\n\r\n input {\r\n display: none;\r\n }\r\n`;\r\n\r\nexport default ProfileContentHeadshotWrapper;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import theme helpers\r\nimport { getColor, getFontWeight } from '../../../../util/theme';\r\n\r\nconst ProfileContentImageOverlay = styled.div`\r\n background-color: rgba(0, 0, 0, 0.5);\r\n\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n\r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n\r\n height: 100%;\r\n width: 100%;\r\n\r\n &:focus {\r\n opacity: 1;\r\n }\r\n\r\n p {\r\n color: ${getColor('white')};\r\n font-weight: ${getFontWeight('medium')};\r\n }\r\n`;\r\n\r\nexport default ProfileContentImageOverlay;\r\n","import styled from 'styled-components/macro';\r\n\r\nconst ProfileContentLogoContainer = styled.div`\r\n cursor: pointer;\r\n\r\n position: relative;\r\n\r\n padding: 15px;\r\n\r\n svg,\r\n img {\r\n height: auto;\r\n\r\n max-width: 250px;\r\n max-height: 200px;\r\n }\r\n\r\n div {\r\n opacity: 0;\r\n }\r\n\r\n &:hover {\r\n div {\r\n opacity: 1;\r\n }\r\n }\r\n`;\r\n\r\nexport default ProfileContentLogoContainer;\r\n","import styled from 'styled-components/macro';\r\n\r\nconst ProfileContentLogoWrapper = styled.div`\r\n align-self: center;\r\n flex-basis: 50%;\r\n\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n\r\n padding: 0 25px;\r\n margin: 0 0 25px 0;\r\n\r\n height: 200px;\r\n\r\n input {\r\n display: none;\r\n }\r\n`;\r\n\r\nexport default ProfileContentLogoWrapper;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import theme helpers\r\nimport { getColor, getFontWeight } from '../../../../util/theme';\r\n\r\nconst ProfileContentRadioInputWrapper = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n\r\n label {\r\n display: flex;\r\n align-items: center;\r\n\r\n border: 0;\r\n\r\n width: 100%;\r\n\r\n color: ${getColor('black')};\r\n font-size: 1.4rem;\r\n font-weight: ${getFontWeight('regular')};\r\n text-transform: uppercase;\r\n\r\n cursor: pointer;\r\n\r\n &:hover {\r\n color: ${getColor('coolBlue')};\r\n }\r\n }\r\n\r\n input {\r\n width: auto;\r\n }\r\n`;\r\n\r\nexport default ProfileContentRadioInputWrapper;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import theme helpers\r\nimport { getBreakpoint } from '../../../../util/theme';\r\n\r\nconst ProfileContentSectionSide = styled.div`\r\n flex-basis: 55%;\r\n\r\n display: flex;\r\n flex-direction: column;\r\n\r\n width: 100%;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n flex-direction: row;\r\n }\r\n\r\n &:not(:first-of-type) {\r\n flex-direction: column;\r\n flex-basis: 45%;\r\n }\r\n`;\r\n\r\nexport default ProfileContentSectionSide;\r\n","import styled from 'styled-components/macro';\r\nimport PropTypes from 'prop-types';\r\n\r\n// import theme helpers\r\nimport { getBreakpoint } from '../../../../util/theme';\r\n\r\nconst ProfileContentSectionWrapper = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n align-items: ${props => (props.align ? props.align : 'flex-start')};\r\n\r\n padding: 25px 0 0 0;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n flex-direction: row;\r\n }\r\n`;\r\n\r\nexport default ProfileContentSectionWrapper;\r\n\r\nProfileContentSectionWrapper.propTypes = {\r\n align: PropTypes.string.isRequired,\r\n};\r\n\r\n/**\r\n * probably redundant\r\n */\r\nProfileContentSectionWrapper.defaultProps = {\r\n align: 'flex-start',\r\n};\r\n","import styled from 'styled-components/macro';\r\n\r\n// import reuseable styled components\r\nimport { SubmitButton } from '../../../styled';\r\n\r\nconst ProfileContentSubmitButton = styled(SubmitButton)`\r\n &::after {\r\n content: 'Save';\r\n }\r\n`;\r\n\r\nexport default ProfileContentSubmitButton;\r\n","import styled from 'styled-components/macro';\r\n\r\nconst ProfileContentSubmitContainer = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n\r\n min-height: 100px;\r\n`;\r\n\r\nexport default ProfileContentSubmitContainer;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import theme helpers\r\nimport { getColor, getFontWeight } from '../../../../util/theme';\r\n\r\nconst ProfileContentSubmitMessage = styled.div`\r\n p {\r\n font-size: 1.8rem;\r\n font-weight: ${getFontWeight('medium')};\r\n text-align: center;\r\n\r\n &.success {\r\n color: ${getColor('accentGreen')};\r\n }\r\n\r\n &.error {\r\n color: ${getColor('accentRed')};\r\n }\r\n }\r\n`;\r\n\r\nexport default ProfileContentSubmitMessage;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import theme helpers\r\nimport { getBreakpoint, getColor } from '../../../../util/theme';\r\n\r\nconst ProfileContentWrapper = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n\r\n background-color: ${getColor('backgroundGrey')};\r\n\r\n padding: 15px;\r\n\r\n @media (max-width: ${getBreakpoint('md')}) {\r\n min-height: 1820px;\r\n }\r\n`;\r\n\r\nexport default ProfileContentWrapper;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from 'react';\n\nvar _ref =\n/*#__PURE__*/\nReact.createElement(\"title\", null, \"person-placeholder-rectangular\");\n\nvar _ref2 =\n/*#__PURE__*/\nReact.createElement(\"rect\", {\n fill: \"#2d536f\",\n width: 320,\n height: 460\n});\n\nvar _ref3 =\n/*#__PURE__*/\nReact.createElement(\"g\", null, React.createElement(\"circle\", {\n fill: \"#ffffff\",\n cx: 161.92,\n cy: 121.03,\n r: 81.03\n}), React.createElement(\"path\", {\n fill: \"#ffffff\",\n d: \"M161.92,226.54c-75.69,0-137.68,74.93-142.06,150.62a222.81,222.81,0,0,0,284.12,0C299.61,301.66,237.61,226.54,161.92,226.54Z\"\n}), React.createElement(\"path\", {\n fill: \"#2d536f\",\n d: \"M161.92,245.7c-66.67,0-121.28,78.83-125.13,158.47,34,33.62,77.56,53.83,125.13,53.83s91.13-20.21,125.14-53.83C283.2,324.73,228.59,245.7,161.92,245.7Z\"\n}), React.createElement(\"circle\", {\n fill: \"#2d536f\",\n cx: 161.92,\n cy: 122.54,\n r: 62.85\n}));\n\nvar SvgComponent = function SvgComponent(props) {\n return React.createElement(\"svg\", _extends({\n viewBox: \"0 0 320 460\",\n width: 320,\n height: 460\n }, props), _ref, _ref2, _ref3);\n};\n\nexport default __webpack_public_path__ + \"static/media/person-placeholder-rectangular.39f7000a.svg\";\nexport { SvgComponent as ReactComponent };","import React, { useRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { format } from 'date-fns';\r\n\r\n// import field data\r\nimport profileContentFirstFields from './data/profileContentFirstFields';\r\n\r\n// import hooks\r\nimport { useFileReader } from '../../../hooks';\r\nimport { useEditModeState } from './hooks';\r\n\r\n// import styled components\r\nimport {\r\n ProfileContentSectionSide,\r\n ProfileContentFieldsWrapper,\r\n ProfileContentHeadshotWrapper,\r\n ProfileContentHeadshotContainer,\r\n ProfileContentImageOverlay,\r\n ProfileContentField,\r\n ProfileContentFieldLabel,\r\n ProfileContentFieldInputWrapper,\r\n ProfileContentRadioInputWrapper,\r\n} from './styled';\r\n\r\n// import svg\r\nimport { ReactComponent as HeadshotPlaceholder } from '../../../assets/img/person-placeholder-rectangular.svg';\r\n\r\nfunction ProfileContentFirst({ dispatch, profileState }) {\r\n const headshotUpload = useRef(null);\r\n\r\n const initialEditModeState = {\r\n headshot: false,\r\n firstName: false,\r\n lastName: false,\r\n company: false,\r\n title: false,\r\n license: false,\r\n birthDate: false,\r\n };\r\n\r\n const [editModeState, toggleFieldEditMode] = useEditModeState(initialEditModeState);\r\n const transformImage = useFileReader(dispatch);\r\n\r\n const drawInputFields = fields => {\r\n return fields.map(field => {\r\n const { name, label, type } = field;\r\n\r\n if (name === 'gender') {\r\n return drawGenderField(field);\r\n }\r\n\r\n return (\r\n \r\n {label}\r\n \r\n {editModeState[name] ? (\r\n dispatch({ type: 'inputChange', name, value: e.target.value })}\r\n autoFocus\r\n />\r\n ) : (\r\n
    toggleFieldEditMode(name)} onKeyPress={() => toggleFieldEditMode(name)} tabIndex=\"0\">\r\n {profileState[name] === ''\r\n ? `Add your ${label}`\r\n : name === 'birthDate'\r\n ? format(profileState[name], 'MM/DD/YYYY')\r\n : profileState[name]}\r\n
    \r\n )}\r\n toggleFieldEditMode(name)}\r\n onKeyPress={() => toggleFieldEditMode(name)}\r\n className={editModeState[name] ? 'visible' : null}\r\n tabIndex=\"0\"\r\n >\r\n ✓\r\n \r\n
    \r\n
    \r\n );\r\n });\r\n };\r\n\r\n const drawGenderField = field => {\r\n const { name, label, options } = field;\r\n\r\n return (\r\n \r\n {label}\r\n \r\n {editModeState[name] ? (\r\n \r\n {options.map(option => (\r\n \r\n ))}\r\n \r\n ) : (\r\n
    toggleFieldEditMode(name)} onKeyPress={() => toggleFieldEditMode(name)} tabIndex=\"0\">\r\n {profileState[name]}\r\n
    \r\n )}\r\n toggleFieldEditMode(name)}\r\n onKeyPress={() => toggleFieldEditMode(name)}\r\n className={editModeState[name] ? 'visible' : null}\r\n tabIndex=\"0\"\r\n >\r\n ✓\r\n \r\n
    \r\n
    \r\n );\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {profileState.headshot ? (\r\n {`${profileState.firstName}\r\n ) : (\r\n \r\n )}\r\n headshotUpload.current.click()}\r\n onKeyPress={e => headshotUpload.current.click()}\r\n tabIndex=\"0\"\r\n >\r\n

    Upload a headshot

    \r\n \r\n
    \r\n transformImage(headshotUpload, 'headshot', dispatch)}\r\n />\r\n
    \r\n \r\n {drawInputFields(profileContentFirstFields)}\r\n \r\n
    \r\n );\r\n}\r\n\r\nexport default ProfileContentFirst;\r\n\r\nProfileContentFirst.propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n profileState: PropTypes.object.isRequired,\r\n};\r\n","const profileContentSecondFields = [\r\n {\r\n name: 'officePhone',\r\n label: 'Office Phone',\r\n phone: true,\r\n },\r\n {\r\n name: 'mobilePhone',\r\n label: 'Mobile Phone',\r\n phone: true,\r\n },\r\n {\r\n name: 'website',\r\n label: 'Website',\r\n },\r\n {\r\n name: 'address',\r\n label: 'Mailing Address',\r\n subFields: [\r\n {\r\n name: 'street',\r\n label: 'Street',\r\n },\r\n {\r\n name: 'city',\r\n label: 'City',\r\n },\r\n {\r\n name: 'state',\r\n label: 'State',\r\n type: 'select',\r\n options: [\r\n 'Select a State',\r\n 'Alabama',\r\n 'Alaska',\r\n 'Arizona',\r\n 'Arkansas',\r\n 'California',\r\n 'Colorado',\r\n 'Connecticut',\r\n 'Delaware',\r\n 'District of Columbia',\r\n 'Florida',\r\n 'Georgia',\r\n 'Hawaii',\r\n 'Idaho',\r\n 'Illinois',\r\n 'Indiana',\r\n 'Iowa',\r\n 'Kansas',\r\n 'Kentucky',\r\n 'Louisiana',\r\n 'Maine',\r\n 'Maryland',\r\n 'Massachusetts',\r\n 'Michigan',\r\n 'Minnesota',\r\n 'Mississippi',\r\n 'Missouri',\r\n 'Montana',\r\n 'Nebraska',\r\n 'Nevada',\r\n 'New Hampshire',\r\n 'New Jersey',\r\n 'New Mexico',\r\n 'New York',\r\n 'North Carolina',\r\n 'North Dakota',\r\n 'Ohio',\r\n 'Oklahoma',\r\n 'Oregon',\r\n 'Pennsylvania',\r\n 'Rhode Island',\r\n 'South Carolina',\r\n 'South Dakota',\r\n 'Tennessee',\r\n 'Texas',\r\n 'Utah',\r\n 'Vermont',\r\n 'Virginia',\r\n 'Washington',\r\n 'West Virginia',\r\n 'Wisconsin',\r\n 'Wyoming',\r\n ],\r\n },\r\n {\r\n name: 'zip',\r\n label: 'Zip Code',\r\n },\r\n ],\r\n },\r\n];\r\n\r\nexport default profileContentSecondFields;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from 'react';\n\nvar _ref =\n/*#__PURE__*/\nReact.createElement(\"title\", null, \"company-logo-placeholder\");\n\nvar SvgComponent = function SvgComponent(props) {\n return React.createElement(\"svg\", _extends({\n \"data-name\": \"Layer 1\",\n width: 252,\n height: 202,\n viewBox: \"0 0 252 202\"\n }, props), _ref, React.createElement(\"g\", null, React.createElement(\"rect\", {\n x: 1,\n y: 1,\n width: 250,\n height: 200,\n style: {\n \"fill\": \"#fff\"\n }\n }), React.createElement(\"g\", null, React.createElement(\"polyline\", {\n points: \"251 198 251 201 248 201\",\n style: {\n \"fill\": \"none\",\n \"stroke\": \"#5481a3\",\n \"strokeMiterlimit\": 10,\n \"strokeWidth\": 2\n }\n }), React.createElement(\"line\", {\n x1: 242.05,\n y1: 201,\n x2: 6.98,\n y2: 201,\n style: {\n \"fill\": \"none\",\n \"stroke\": \"#5481a3\",\n \"strokeMiterlimit\": 10,\n \"strokeWidth\": 2,\n \"strokeDasharray\": \"5.95121955871582,5.95121955871582\"\n }\n }), React.createElement(\"polyline\", {\n points: \"4 201 1 201 1 198\",\n style: {\n \"fill\": \"none\",\n \"stroke\": \"#5481a3\",\n \"strokeMiterlimit\": 10,\n \"strokeWidth\": 2\n }\n }), React.createElement(\"line\", {\n x1: 1,\n y1: 192.12,\n x2: 1,\n y2: 6.94,\n style: {\n \"fill\": \"none\",\n \"stroke\": \"#5481a3\",\n \"strokeMiterlimit\": 10,\n \"strokeWidth\": 2,\n \"strokeDasharray\": \"5.878787994384766,5.878787994384766\"\n }\n }), React.createElement(\"polyline\", {\n points: \"1 4 1 1 4 1\",\n style: {\n \"fill\": \"none\",\n \"stroke\": \"#5481a3\",\n \"strokeMiterlimit\": 10,\n \"strokeWidth\": 2\n }\n }), React.createElement(\"line\", {\n x1: 9.95,\n y1: 1,\n x2: 245.02,\n y2: 1,\n style: {\n \"fill\": \"none\",\n \"stroke\": \"#5481a3\",\n \"strokeMiterlimit\": 10,\n \"strokeWidth\": 2,\n \"strokeDasharray\": \"5.95121955871582,5.95121955871582\"\n }\n }), React.createElement(\"polyline\", {\n points: \"248 1 251 1 251 4\",\n style: {\n \"fill\": \"none\",\n \"stroke\": \"#5481a3\",\n \"strokeMiterlimit\": 10,\n \"strokeWidth\": 2\n }\n }), React.createElement(\"line\", {\n x1: 251,\n y1: 9.88,\n x2: 251,\n y2: 195.06,\n style: {\n \"fill\": \"none\",\n \"stroke\": \"#5481a3\",\n \"strokeMiterlimit\": 10,\n \"strokeWidth\": 2,\n \"strokeDasharray\": \"5.878787994384766,5.878787994384766\"\n }\n }))), React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M71.08,81.44a11.31,11.31,0,0,1-.92,3.5,7.7,7.7,0,0,1-1.89,2.62,8.21,8.21,0,0,1-2.84,1.64,11.62,11.62,0,0,1-3.77.57,9.26,9.26,0,0,1-4-.82,8.71,8.71,0,0,1-3-2.35A10.89,10.89,0,0,1,52.71,83,15.22,15.22,0,0,1,52,78.24V75a15.33,15.33,0,0,1,.69-4.72,10.59,10.59,0,0,1,2-3.64,8.88,8.88,0,0,1,3.08-2.35,9.54,9.54,0,0,1,4.06-.83,11.15,11.15,0,0,1,3.68.56,7.73,7.73,0,0,1,2.8,1.64,8.07,8.07,0,0,1,1.88,2.64,10.9,10.9,0,0,1,.91,3.52H68.9a10.7,10.7,0,0,0-.7-2.77,5.72,5.72,0,0,0-3.49-3.31,8.76,8.76,0,0,0-2.9-.44,7,7,0,0,0-3.19.7,6.77,6.77,0,0,0-2.4,2,9.15,9.15,0,0,0-1.5,3,14.33,14.33,0,0,0-.52,4v3.25a14.43,14.43,0,0,0,.5,3.89,9,9,0,0,0,1.44,3.08,6.7,6.7,0,0,0,2.33,2,6.85,6.85,0,0,0,3.19.72,7.21,7.21,0,0,0,5.11-1.62,7.8,7.8,0,0,0,2.13-4.88Z\",\n transform: \"translate(0.5 0.5)\",\n style: {\n \"fill\": \"#5481a3\",\n \"opacity\": 0.5\n }\n }), React.createElement(\"path\", {\n d: \"M74.68,79.63a11.52,11.52,0,0,1,.61-3.83,9,9,0,0,1,1.71-3,7.88,7.88,0,0,1,2.67-2,8.27,8.27,0,0,1,3.48-.72,8.37,8.37,0,0,1,3.53.72,7.82,7.82,0,0,1,2.68,2,8.79,8.79,0,0,1,1.7,3,11.78,11.78,0,0,1,.6,3.83v.58a11.78,11.78,0,0,1-.6,3.83,8.79,8.79,0,0,1-1.7,3,7.73,7.73,0,0,1-2.67,2,9,9,0,0,1-7,0,7.77,7.77,0,0,1-2.68-2,9,9,0,0,1-1.72-3,11.52,11.52,0,0,1-.61-3.83Zm2.11.58a10.42,10.42,0,0,0,.42,3,7.68,7.68,0,0,0,1.23,2.48,6,6,0,0,0,2,1.69,6.16,6.16,0,0,0,5.47,0,6,6,0,0,0,2-1.69,7.68,7.68,0,0,0,1.23-2.48,10.42,10.42,0,0,0,.42-3v-.58a10.24,10.24,0,0,0-.42-2.94,7.63,7.63,0,0,0-1.23-2.49,6.06,6.06,0,0,0-2-1.72,5.88,5.88,0,0,0-2.76-.64,5.68,5.68,0,0,0-2.71.64,6.13,6.13,0,0,0-2,1.72,7.63,7.63,0,0,0-1.23,2.49,10.24,10.24,0,0,0-.42,2.94Z\",\n transform: \"translate(0.5 0.5)\",\n style: {\n \"fill\": \"#5481a3\",\n \"opacity\": 0.5\n }\n }), React.createElement(\"path\", {\n d: \"M97.92,70.4,98,73.5a8,8,0,0,1,1.1-1.42,6.2,6.2,0,0,1,1.4-1.09,6.59,6.59,0,0,1,1.68-.69,7.33,7.33,0,0,1,2-.25,6.92,6.92,0,0,1,3.59.88,4.89,4.89,0,0,1,2.13,2.81A7.78,7.78,0,0,1,111,72.27a7.21,7.21,0,0,1,1.46-1.17,8.07,8.07,0,0,1,1.8-.77,7.67,7.67,0,0,1,2.13-.28,8,8,0,0,1,2.64.4,4.67,4.67,0,0,1,2,1.24,5.72,5.72,0,0,1,1.22,2.17,10.54,10.54,0,0,1,.42,3.17V89.42h-2.11V77a8,8,0,0,0-.33-2.5,3.84,3.84,0,0,0-1-1.59,3.32,3.32,0,0,0-1.47-.81,6.89,6.89,0,0,0-1.87-.23,5.68,5.68,0,0,0-2.34.48,5.5,5.5,0,0,0-1.69,1.18,5.18,5.18,0,0,0-1.09,1.59,5.38,5.38,0,0,0-.45,1.7V89.42h-2.11V76.85a7,7,0,0,0-.34-2.37,3.7,3.7,0,0,0-1-1.53,3.53,3.53,0,0,0-1.46-.83,7,7,0,0,0-1.89-.24,5.33,5.33,0,0,0-2.11.38,5,5,0,0,0-1.59,1,5.59,5.59,0,0,0-1.12,1.44,8.69,8.69,0,0,0-.7,1.67v13H95.9v-19Z\",\n transform: \"translate(0.5 0.5)\",\n style: {\n \"fill\": \"#5481a3\",\n \"opacity\": 0.5\n }\n }), React.createElement(\"path\", {\n d: \"M143.2,80.1a15,15,0,0,1-.48,3.92,9.14,9.14,0,0,1-1.42,3,6.64,6.64,0,0,1-2.27,2,6.41,6.41,0,0,1-3.07.71,7.89,7.89,0,0,1-3.53-.73A6.67,6.67,0,0,1,130,87v9.7h-2.09V70.4h2l.11,2.69a7,7,0,0,1,2.44-2.23,7.24,7.24,0,0,1,3.52-.81,6.77,6.77,0,0,1,3.1.69,6.21,6.21,0,0,1,2.29,2,9.05,9.05,0,0,1,1.42,3,15.39,15.39,0,0,1,.48,4Zm-2.11-.36a13.27,13.27,0,0,0-.34-3.1,7.81,7.81,0,0,0-1-2.49,4.83,4.83,0,0,0-4.28-2.27,6.27,6.27,0,0,0-2,.3,5.22,5.22,0,0,0-1.54.8,5.13,5.13,0,0,0-1.12,1.16,7.23,7.23,0,0,0-.77,1.38v9.12a6.42,6.42,0,0,0,.84,1.34A5,5,0,0,0,132,87a5.64,5.64,0,0,0,1.53.7,6.85,6.85,0,0,0,1.94.26,4.94,4.94,0,0,0,2.49-.61,5,5,0,0,0,1.75-1.67,8,8,0,0,0,1-2.5,13.44,13.44,0,0,0,.34-3.12Z\",\n transform: \"translate(0.5 0.5)\",\n style: {\n \"fill\": \"#5481a3\",\n \"opacity\": 0.5\n }\n }), React.createElement(\"path\", {\n d: \"M159.87,89.42a6.27,6.27,0,0,1-.28-1.2c-.06-.48-.11-1-.13-1.45a8.12,8.12,0,0,1-1.12,1.16,7.8,7.8,0,0,1-1.46.95,9.11,9.11,0,0,1-1.78.65,8.62,8.62,0,0,1-2.09.24,7.4,7.4,0,0,1-2.52-.4,5.66,5.66,0,0,1-1.94-1.14,5.15,5.15,0,0,1-1.24-1.71,5.59,5.59,0,0,1,.16-4.65A5.48,5.48,0,0,1,149.2,80a8.33,8.33,0,0,1,2.73-1.19,14.31,14.31,0,0,1,3.61-.42h3.9V76.2A4.19,4.19,0,0,0,158.19,73a5.2,5.2,0,0,0-3.67-1.16,6.62,6.62,0,0,0-2,.29,5.33,5.33,0,0,0-1.61.83,3.91,3.91,0,0,0-1.05,1.22,3.09,3.09,0,0,0-.38,1.49l-2.11,0a4.37,4.37,0,0,1,.53-2.07,5.83,5.83,0,0,1,1.48-1.79,7.74,7.74,0,0,1,2.31-1.26,9,9,0,0,1,3-.47,9.48,9.48,0,0,1,2.78.39,5.9,5.9,0,0,1,2.19,1.16A5.24,5.24,0,0,1,161,73.53a6.69,6.69,0,0,1,.51,2.71v9.21q0,.49,0,1c0,.35.06.69.11,1s.12.64.19.94a4.21,4.21,0,0,0,.25.78v.21Zm-6.61-1.51a7.47,7.47,0,0,0,2.11-.29,6.79,6.79,0,0,0,1.77-.8,6.08,6.08,0,0,0,1.37-1.19,5.7,5.7,0,0,0,.93-1.47V80h-3.6a13.26,13.26,0,0,0-2.89.29,6.7,6.7,0,0,0-2.15.84,3.88,3.88,0,0,0-1.35,1.32A3.39,3.39,0,0,0,149,84.2a3.48,3.48,0,0,0,1.16,2.63,3.93,3.93,0,0,0,1.34.79A5.23,5.23,0,0,0,153.26,87.91Z\",\n transform: \"translate(0.5 0.5)\",\n style: {\n \"fill\": \"#5481a3\",\n \"opacity\": 0.5\n }\n }), React.createElement(\"path\", {\n d: \"M169.15,70.4l.07,3.25a8.2,8.2,0,0,1,1.13-1.47A7.15,7.15,0,0,1,171.78,71a7.22,7.22,0,0,1,1.71-.73,7.14,7.14,0,0,1,1.93-.25,7.76,7.76,0,0,1,2.55.39,4.44,4.44,0,0,1,1.91,1.23,5.46,5.46,0,0,1,1.19,2.17,10.68,10.68,0,0,1,.42,3.21V89.42h-2.1V77a8.14,8.14,0,0,0-.31-2.46,3.84,3.84,0,0,0-.9-1.58,3.24,3.24,0,0,0-1.41-.86,6.39,6.39,0,0,0-1.86-.25,5.15,5.15,0,0,0-2,.38,5.23,5.23,0,0,0-1.61,1A6.57,6.57,0,0,0,170,74.72a8.11,8.11,0,0,0-.81,1.68v13h-2.09v-19Z\",\n transform: \"translate(0.5 0.5)\",\n style: {\n \"fill\": \"#5481a3\",\n \"opacity\": 0.5\n }\n }), React.createElement(\"path\", {\n d: \"M193,86.4l5.55-16h2.27l-8.05,22.06c-.17.44-.37.92-.63,1.46a6.62,6.62,0,0,1-1,1.51,5.14,5.14,0,0,1-1.51,1.19,4.69,4.69,0,0,1-2.21.48l-.4,0-.46-.07-.43-.07-.32-.08,0-1.74.57.07.52,0a4.54,4.54,0,0,0,1.49-.22,3.14,3.14,0,0,0,1.14-.65,4.47,4.47,0,0,0,.85-1.08,9.9,9.9,0,0,0,.67-1.49l.91-2.52L184.74,70.4H187Z\",\n transform: \"translate(0.5 0.5)\",\n style: {\n \"fill\": \"#5481a3\",\n \"opacity\": 0.5\n }\n }), React.createElement(\"path\", {\n d: \"M91.28,130.79h12.64v1.83H89.1V107h2.18Z\",\n transform: \"translate(0.5 0.5)\",\n style: {\n \"fill\": \"#5481a3\",\n \"opacity\": 0.5\n }\n }), React.createElement(\"path\", {\n d: \"M106.42,122.83A11.52,11.52,0,0,1,107,119a9,9,0,0,1,1.71-3,7.88,7.88,0,0,1,2.67-2,8.21,8.21,0,0,1,3.48-.72,8.41,8.41,0,0,1,3.53.72,7.92,7.92,0,0,1,2.68,2,9,9,0,0,1,1.7,3,11.78,11.78,0,0,1,.6,3.83v.58a11.78,11.78,0,0,1-.6,3.83,9,9,0,0,1-1.7,3,7.67,7.67,0,0,1-2.68,2,9,9,0,0,1-7,0,7.77,7.77,0,0,1-2.68-2,8.83,8.83,0,0,1-1.72-3,11.52,11.52,0,0,1-.61-3.83Zm2.11.58a10.42,10.42,0,0,0,.42,3,7.68,7.68,0,0,0,1.23,2.48,6,6,0,0,0,2,1.69,5.72,5.72,0,0,0,2.75.64,5.62,5.62,0,0,0,2.73-.64,6,6,0,0,0,2-1.69,8.11,8.11,0,0,0,1.23-2.48,10.42,10.42,0,0,0,.42-3v-.58a10.24,10.24,0,0,0-.42-2.94,8.05,8.05,0,0,0-1.23-2.49,6,6,0,0,0-2-1.72,5.84,5.84,0,0,0-2.75-.64,5.68,5.68,0,0,0-2.71.64,6,6,0,0,0-2,1.72,7.63,7.63,0,0,0-1.23,2.49,10.24,10.24,0,0,0-.42,2.94Z\",\n transform: \"translate(0.5 0.5)\",\n style: {\n \"fill\": \"#5481a3\",\n \"opacity\": 0.5\n }\n }), React.createElement(\"path\", {\n d: \"M126.9,122.94a14.55,14.55,0,0,1,.5-4,9.09,9.09,0,0,1,1.45-3,6.35,6.35,0,0,1,2.31-2,6.75,6.75,0,0,1,3.09-.69,7,7,0,0,1,3.49.82,6.71,6.71,0,0,1,2.41,2.27l.11-2.74h2v18.69a9.53,9.53,0,0,1-.55,3.31,7,7,0,0,1-1.54,2.49,6.57,6.57,0,0,1-2.4,1.56,8.45,8.45,0,0,1-3.14.55,8.6,8.6,0,0,1-3.63-.81,8.8,8.8,0,0,1-1.65-1A7.06,7.06,0,0,1,128,137l1.18-1.27a7.68,7.68,0,0,0,2.46,2.08,6.19,6.19,0,0,0,2.85.66,6.63,6.63,0,0,0,2.4-.41,4.84,4.84,0,0,0,1.76-1.2,5.17,5.17,0,0,0,1.1-1.9,7.93,7.93,0,0,0,.38-2.54v-2.21a6.69,6.69,0,0,1-2.41,2.07,7.64,7.64,0,0,1-3.48.74,6.4,6.4,0,0,1-3.06-.71,6.73,6.73,0,0,1-2.3-2,9.18,9.18,0,0,1-1.45-3.05,14.16,14.16,0,0,1-.5-3.92Zm2.12.36a13.85,13.85,0,0,0,.34,3.11,7.61,7.61,0,0,0,1,2.48,5,5,0,0,0,1.73,1.66,4.93,4.93,0,0,0,2.49.59,6.64,6.64,0,0,0,2-.26,5.42,5.42,0,0,0,1.53-.73,5.06,5.06,0,0,0,1.16-1.1,7.17,7.17,0,0,0,.85-1.39v-8.84a7.46,7.46,0,0,0-.77-1.41,5.53,5.53,0,0,0-1.12-1.2,5.26,5.26,0,0,0-1.54-.82,6,6,0,0,0-2-.31,5,5,0,0,0-2.51.6,5.14,5.14,0,0,0-1.74,1.67,7.57,7.57,0,0,0-1,2.49,13.82,13.82,0,0,0-.34,3.1Z\",\n transform: \"translate(0.5 0.5)\",\n style: {\n \"fill\": \"#5481a3\",\n \"opacity\": 0.5\n }\n }), React.createElement(\"path\", {\n d: \"M146.55,122.83a11.52,11.52,0,0,1,.61-3.83,9,9,0,0,1,1.71-3,7.88,7.88,0,0,1,2.67-2,8.27,8.27,0,0,1,3.48-.72,8.41,8.41,0,0,1,3.53.72,7.82,7.82,0,0,1,2.68,2,9,9,0,0,1,1.7,3,11.78,11.78,0,0,1,.6,3.83v.58a11.78,11.78,0,0,1-.6,3.83,9,9,0,0,1-1.7,3,7.73,7.73,0,0,1-2.67,2,9,9,0,0,1-7,0,7.77,7.77,0,0,1-2.68-2,8.83,8.83,0,0,1-1.72-3,11.52,11.52,0,0,1-.61-3.83Zm2.11.58a10.42,10.42,0,0,0,.42,3,7.68,7.68,0,0,0,1.23,2.48,6,6,0,0,0,2,1.69,6.16,6.16,0,0,0,5.47,0,6,6,0,0,0,2-1.69,7.68,7.68,0,0,0,1.23-2.48,10.42,10.42,0,0,0,.42-3v-.58a10.24,10.24,0,0,0-.42-2.94,7.63,7.63,0,0,0-1.23-2.49,6,6,0,0,0-2-1.72A5.84,5.84,0,0,0,155,115a5.68,5.68,0,0,0-2.71.64,6.13,6.13,0,0,0-2,1.72,7.63,7.63,0,0,0-1.23,2.49,10.24,10.24,0,0,0-.42,2.94Z\",\n transform: \"translate(0.5 0.5)\",\n style: {\n \"fill\": \"#5481a3\",\n \"opacity\": 0.5\n }\n })));\n};\n\nexport default __webpack_public_path__ + \"static/media/company-logo-placeholder.f9c87508.svg\";\nexport { SvgComponent as ReactComponent };","import React, { useRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport NumberFormat from 'react-number-format';\r\n\r\n// import data\r\nimport profileContentSecondFields from './data/profleContentSecondFields';\r\n\r\n// import hooks\r\nimport { useFileReader } from '../../../hooks';\r\nimport { useEditModeState } from './hooks';\r\n\r\n// import styled components\r\nimport {\r\n ProfileContentSectionSide,\r\n ProfileContentFieldsWrapper,\r\n ProfileContentLogoWrapper,\r\n ProfileContentLogoContainer,\r\n ProfileContentImageOverlay,\r\n ProfileContentField,\r\n ProfileContentFieldLabel,\r\n ProfileContentFieldInputWrapper,\r\n ProfileContentAddressFieldsWrapper,\r\n} from './styled';\r\n\r\n// import svg\r\nimport { ReactComponent as CompanyLogoPlaceholder } from '../../../assets/img/company-logo-placeholder.svg';\r\n\r\nfunction ProfileContentSecond({ dispatch, profileState }) {\r\n const companyLogoUpload = useRef(null);\r\n\r\n const initialEditModeState = {\r\n officePhone: false,\r\n mobilePhone: false,\r\n website: false,\r\n birthDate: false,\r\n address: {\r\n street: false,\r\n city: false,\r\n state: false,\r\n zip: false,\r\n },\r\n };\r\n\r\n const [editModeState, toggleFieldEditMode] = useEditModeState(initialEditModeState);\r\n const transformImage = useFileReader(dispatch);\r\n\r\n const drawInputFields = fields => {\r\n return fields.map(field => {\r\n const { name, label, phone } = field;\r\n\r\n if (phone) {\r\n return drawPhoneNumberInputField(field);\r\n }\r\n\r\n if (name === 'address') {\r\n return drawAddressInputFields(field);\r\n }\r\n\r\n return (\r\n \r\n {label}\r\n \r\n {editModeState[name] ? (\r\n dispatch({ type: 'inputChange', name, value: e.target.value })}\r\n autoFocus\r\n />\r\n ) : (\r\n
    toggleFieldEditMode(name)} onKeyPress={() => toggleFieldEditMode(name)} tabIndex=\"0\">\r\n {profileState[name] === '' ? `Add your ${label}` : profileState[name]}\r\n
    \r\n )}\r\n toggleFieldEditMode(name)}\r\n onKeyPress={() => toggleFieldEditMode(name)}\r\n className={editModeState[name] ? 'visible' : null}\r\n tabIndex=\"0\"\r\n >\r\n ✓\r\n \r\n
    \r\n
    \r\n );\r\n });\r\n };\r\n\r\n const drawPhoneNumberInputField = field => {\r\n const { name, label } = field;\r\n\r\n return (\r\n \r\n {label}\r\n \r\n {editModeState[name] ? (\r\n dispatch({ type: 'inputChange', name, value: e.target.value })}\r\n format=\"(###) ###-####\"\r\n autoFocus\r\n />\r\n ) : (\r\n
    toggleFieldEditMode(name)} onKeyPress={() => toggleFieldEditMode(name)} tabIndex=\"0\">\r\n {profileState[name] === '' ? `Add your ${label}` : profileState[name]}\r\n
    \r\n )}\r\n toggleFieldEditMode(name)}\r\n onKeyPress={() => toggleFieldEditMode(name)}\r\n className={editModeState[name] ? 'visible' : null}\r\n tabIndex=\"0\"\r\n >\r\n ✓\r\n \r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const drawAddressInputFields = field => {\r\n const { name, label, subFields } = field;\r\n return (\r\n \r\n {label}\r\n \r\n {subFields.map(field => {\r\n const { name, label } = field;\r\n\r\n if (!profileState.address) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {editModeState.address[name] ? (\r\n dispatch({ type: 'addressInputChange', name, value: e.target.value })}\r\n autoFocus\r\n />\r\n ) : (\r\n toggleFieldEditMode(name, true)}\r\n onKeyPress={() => toggleFieldEditMode(name, true)}\r\n tabIndex=\"0\"\r\n >\r\n {profileState.address[name] === '' ? `Add your ${label}` : profileState.address[name]}\r\n
    \r\n )}\r\n toggleFieldEditMode(name, true)}\r\n onKeyPress={() => toggleFieldEditMode(name, true)}\r\n className={editModeState.address[name] ? 'visible' : null}\r\n tabIndex=\"0\"\r\n >\r\n ✓\r\n \r\n \r\n );\r\n })}\r\n \r\n \r\n );\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {profileState.companyLogo ? (\r\n {`${profileState.company}`}\r\n ) : (\r\n \r\n )}\r\n companyLogoUpload.current.click()}\r\n onKeyPress={e => companyLogoUpload.current.click()}\r\n tabIndex=\"0\"\r\n >\r\n

    Upload a logo

    \r\n \r\n
    \r\n transformImage(companyLogoUpload, 'companyLogo')}\r\n />\r\n
    \r\n {drawInputFields(profileContentSecondFields)}\r\n
    \r\n );\r\n}\r\n\r\nexport default ProfileContentSecond;\r\n\r\nProfileContentSecond.propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n profileState: PropTypes.object.isRequired,\r\n};\r\n","import React, { useContext, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\n// import config\r\nimport { API_BASE_URL } from '../../../util/config';\r\n\r\n// import context\r\nimport { LoggedInContext } from '../../Context/LoggedInContext';\r\n\r\n// import styled components\r\nimport { Spinner } from '../../styled';\r\nimport { ProfileContentSubmitContainer, ProfileContentSubmitButton, ProfileContentSubmitMessage } from './styled';\r\n\r\n/**\r\n * could modularize this better\r\n */\r\nfunction ProfileSubmit({ accessToken, profileState }) {\r\n const {\r\n state: { profileImagesUpdated },\r\n functions: { setProfileImagesUpdated },\r\n } = useContext(LoggedInContext);\r\n\r\n const [submitState, setSubmitState] = useState(false);\r\n const [submitProfileMessage, setSubmitProfileMessage] = useState({ text: '', type: null });\r\n\r\n const submitUpdatedProfileData = async () => {\r\n setSubmitState(true);\r\n\r\n const updateProfileUrl = `${API_BASE_URL}/api/User/Update/${profileState.userId}`;\r\n\r\n const formData = new FormData();\r\n\r\n const serializedProfileState = JSON.stringify(profileState);\r\n\r\n formData.append('jsonData', serializedProfileState);\r\n\r\n const randomNum = Math.floor(Date.now() / 1000);\r\n\r\n if (profileState.newImage.headshot) {\r\n formData.append(\r\n 'HeadShot',\r\n profileState.newImage.headshot,\r\n `HeadShot-${randomNum}.${profileState.newImage.headshot.type.substr(6)}`\r\n );\r\n }\r\n\r\n if (profileState.newImage.companyLogo) {\r\n formData.append(\r\n 'CompanyLogo',\r\n profileState.newImage.companyLogo,\r\n `CompanyLogo-${randomNum}.${profileState.newImage.companyLogo.type.substr(6)}`\r\n );\r\n }\r\n\r\n const sendUpdateToProfile = await fetch(updateProfileUrl, {\r\n method: 'POST',\r\n headers: {\r\n Authorization: `bearer ${accessToken}`,\r\n },\r\n body: formData,\r\n });\r\n\r\n const text = await sendUpdateToProfile.text();\r\n\r\n if (sendUpdateToProfile.status === 200) {\r\n setTimeout(() => {\r\n setSubmitState(false);\r\n setSubmitProfileMessage({\r\n text: 'Profile successfully updated',\r\n type: 'success',\r\n });\r\n\r\n /**\r\n * for preserving new uploaded images when the Profile component is unmounted\r\n * see LoggedInContext for where this is stored\r\n */\r\n if (profileState.newImage.headshot && profileState.newImage.companyLogo) {\r\n setProfileImagesUpdated({\r\n headshot: { updated: true, value: profileState.headshot },\r\n companyLogo: { updated: true, value: profileState.companyLogo },\r\n });\r\n } else if (profileState.newImage.companyLogo) {\r\n setProfileImagesUpdated({\r\n ...profileImagesUpdated,\r\n companyLogo: { updated: true, value: profileState.companyLogo },\r\n });\r\n } else if (profileState.newImage.headshot) {\r\n setProfileImagesUpdated({\r\n ...profileImagesUpdated,\r\n headshot: { updated: true, value: profileState.headshot },\r\n });\r\n }\r\n }, 500);\r\n } else {\r\n setTimeout(() => {\r\n setSubmitState(false);\r\n setSubmitProfileMessage({\r\n text: 'Error updating profile',\r\n type: 'error',\r\n });\r\n }, 500);\r\n }\r\n\r\n return text;\r\n };\r\n\r\n return (\r\n <>\r\n \r\n {submitProfileMessage.text ? (\r\n

    {submitProfileMessage.text}

    \r\n ) : (\r\n

     

    \r\n )}\r\n
    \r\n \r\n {submitState ? (\r\n \r\n ) : (\r\n submitUpdatedProfileData()}>Save\r\n )}\r\n \r\n \r\n );\r\n}\r\n\r\nexport default ProfileSubmit;\r\n\r\nProfileSubmit.propTypes = {\r\n accessToken: PropTypes.string.isRequired,\r\n profileState: PropTypes.object.isRequired,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\n// import components\r\nimport ProfileContentFirst from './ProfileContentFirst';\r\nimport ProfileContentSecond from './ProfileContentSecond';\r\nimport ProfileSubmit from './ProfileSubmit';\r\n\r\n// import styled components\r\nimport { Spinner } from '../../styled';\r\nimport { ProfileContentWrapper, ProfileContentSectionWrapper } from './styled';\r\n\r\n// import svg\r\n\r\nconst ProfileContent = ({ accessToken, dispatch, profileState }) => (\r\n \r\n {profileState.userId === 0 ? (\r\n \r\n ) : (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n);\r\n\r\nexport default ProfileContent;\r\n\r\nProfileContent.propTypes = {\r\n accessToken: PropTypes.string.isRequired,\r\n profileState: PropTypes.object.isRequired,\r\n dispatch: PropTypes.func.isRequired,\r\n};\r\n","// import config\r\nimport { API_BASE_URL } from '../../../../util/config';\r\n\r\nasync function submitPasswordUpdate(accessToken, email, passwordState) {\r\n const formattedPasswordUpdate = JSON.stringify({\r\n email,\r\n Password: passwordState.oldPassword,\r\n NewPassword: passwordState.newPassword,\r\n ConfirmPassword: passwordState.confirmNewPassword,\r\n });\r\n\r\n const updatePasswordUrl = `${API_BASE_URL}/api/user/changepassword`;\r\n\r\n const sendPasswordUpdate = await fetch(updatePasswordUrl, {\r\n method: 'POST',\r\n headers: {\r\n Authorization: `bearer ${accessToken}`,\r\n 'Content-Type': 'application/json',\r\n },\r\n body: formattedPasswordUpdate,\r\n });\r\n\r\n const passwordUpdateStatus = sendPasswordUpdate.status;\r\n const passwordUpdateResponse = await sendPasswordUpdate.json();\r\n\r\n return {\r\n status: passwordUpdateStatus,\r\n response: passwordUpdateResponse,\r\n };\r\n}\r\n\r\nexport default submitPasswordUpdate;\r\n","import styled from 'styled-components/macro';\r\n\r\nconst ProfilePasswordContent = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n\r\n width: 60rem;\r\n`;\r\n\r\nexport default ProfilePasswordContent;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import theme helpers\r\nimport { getColor, getFontWeight } from '../../../../util/theme';\r\n\r\nconst ProfilePasswordFormWrapper = styled.form`\r\n display: flex;\r\n flex-direction: column;\r\n\r\n background-color: ${getColor('white')};\r\n\r\n padding: 30px;\r\n\r\n width: 100%;\r\n\r\n div {\r\n display: flex;\r\n flex-direction: column;\r\n\r\n padding: 10px 0;\r\n }\r\n\r\n label {\r\n color: ${getColor('titleGrey')};\r\n font-size: 1.4rem;\r\n font-weight: ${getFontWeight('medium')};\r\n text-transform: uppercase;\r\n\r\n margin: 10px 0;\r\n }\r\n\r\n input {\r\n font-size: 1.6rem;\r\n\r\n height: 40px;\r\n width: 100%;\r\n\r\n padding: 3px 10px;\r\n\r\n &.error {\r\n border: 2px solid ${getColor('accentRed')};\r\n }\r\n }\r\n`;\r\n\r\nexport default ProfilePasswordFormWrapper;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import theme helpers\r\nimport { getColor } from '../../../../util/theme';\r\n\r\nconst ProfilePasswordMessage = styled.div`\r\n text-align: center;\r\n\r\n p {\r\n &.error {\r\n color: ${getColor('accentRed')};\r\n }\r\n\r\n &.success {\r\n color: ${getColor('accentGreen')};\r\n }\r\n }\r\n`;\r\n\r\nexport default ProfilePasswordMessage;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import reusable styled components\r\nimport { SubmitButton } from '../../../styled';\r\n\r\nconst ProfilePasswordSubmitButton = styled(SubmitButton)`\r\n margin: 25px 0;\r\n\r\n &::after {\r\n content: 'Update';\r\n }\r\n`;\r\n\r\nexport default ProfilePasswordSubmitButton;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import theme helpers\r\nimport { getColor } from '../../../../util/theme';\r\n\r\nconst ProfilePasswordWrapper = styled.div`\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n\r\n background-color: ${getColor('backgroundGrey')};\r\n\r\n padding: 15px;\r\n`;\r\n\r\nexport default ProfilePasswordWrapper;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport ReactHtmlParser from 'react-html-parser';\r\n\r\n// import styled components\r\nimport { ProfilePasswordFormWrapper, ProfilePasswordSubmitButton, ProfilePasswordMessage } from './styled';\r\n\r\nconst ProfilePasswordForm = ({\r\n handleChange,\r\n passwordState: { oldPassword, newPassword, confirmNewPassword, error },\r\n responseMessageState,\r\n tryPasswordUpdate,\r\n}) => (\r\n tryPasswordUpdate(e)}>\r\n
    \r\n \r\n handleChange(e)}\r\n className={error.oldPassword ? 'error' : null}\r\n />\r\n
    \r\n
    \r\n \r\n handleChange(e)}\r\n className={error.newPassword ? 'error' : null}\r\n />\r\n
    \r\n
    \r\n \r\n handleChange(e)}\r\n className={error.confirmNewPassword ? 'error' : null}\r\n />\r\n
    \r\n Update\r\n \r\n {responseMessageState.type ? (\r\n

    {ReactHtmlParser(responseMessageState.text)}

    \r\n ) : (\r\n

     

    \r\n )}\r\n
    \r\n
    \r\n);\r\n\r\nexport default ProfilePasswordForm;\r\n\r\nProfilePasswordForm.propTypes = {\r\n passwordState: PropTypes.object.isRequired,\r\n responseMessageState: PropTypes.object.isRequired,\r\n handleChange: PropTypes.func.isRequired,\r\n tryPasswordUpdate: PropTypes.func.isRequired,\r\n};\r\n","import React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\n// import functions\r\nimport { submitPasswordUpdate } from './functions';\r\n\r\n// import components\r\nimport ProfilePasswordForm from './ProfilePasswordForm';\r\n\r\n// import styled components\r\nimport { ProfilePasswordWrapper, ProfilePasswordContent } from './styled';\r\n\r\n/**\r\n * this could be cleaned up with useReducer and some modularization\r\n * might get around to it sometime\r\n */\r\nfunction ProfilePassword({ accessToken, profileState: { email } }) {\r\n const initialPasswordState = {\r\n oldPassword: '',\r\n newPassword: '',\r\n confirmNewPassword: '',\r\n touched: {\r\n oldPassword: false,\r\n newPassword: false,\r\n confirmNewPassword: false,\r\n },\r\n minLength: {\r\n oldPassword: 0,\r\n newPassword: 6,\r\n confirmNewPassword: 6,\r\n },\r\n error: {\r\n oldPassword: false,\r\n newPassword: false,\r\n confirmNewPassword: false,\r\n },\r\n };\r\n const initialResponseMessageState = {\r\n type: '',\r\n text: '',\r\n };\r\n\r\n const [passwordState, setPasswordState] = useState(initialPasswordState);\r\n const [responseMessageState, setResponseMessageState] = useState(initialResponseMessageState);\r\n\r\n const handleChange = e => {\r\n const {\r\n target: { name, value },\r\n } = e;\r\n\r\n const updatedPasswordState = { ...passwordState };\r\n updatedPasswordState[name] = value;\r\n updatedPasswordState.touched[name] = true;\r\n\r\n if (updatedPasswordState.touched[name] && value.length < updatedPasswordState.minLength[name]) {\r\n updatedPasswordState.error[name] = true;\r\n } else {\r\n updatedPasswordState.error[name] = false;\r\n }\r\n\r\n setPasswordState(updatedPasswordState);\r\n };\r\n\r\n const tryPasswordUpdate = async e => {\r\n e.preventDefault();\r\n\r\n const updatedPasswordResponse = await submitPasswordUpdate(accessToken, email, passwordState);\r\n\r\n if (updatedPasswordResponse.status === 200) {\r\n setResponseMessageState({ type: 'success', text: 'Success! Password updated.' });\r\n setPasswordState(initialPasswordState);\r\n\r\n return;\r\n }\r\n\r\n const formattedErrorResponse = {\r\n type: 'error',\r\n text: updatedPasswordResponse.response.message,\r\n errors: updatedPasswordResponse.response.modelState ? updatedPasswordResponse.response.modelState : null,\r\n };\r\n\r\n if (formattedErrorResponse.text === 'Invalid Old Password! Please enter valid password.') {\r\n formattedErrorResponse.text =\r\n 'Updated Failed: Password incorrect. Please check your password and try again';\r\n } else if (\r\n formattedErrorResponse.errors.model &&\r\n formattedErrorResponse.errors.model[0] === 'Old Password and New Password should not be same.'\r\n ) {\r\n formattedErrorResponse.text =\r\n 'Updated Failed: The new password is the same as the old one. Please use a different password.';\r\n } else {\r\n formattedErrorResponse.text =\r\n 'Updated Failed: Please make sure that you have the correct old password entered, the new password is different from the old one, and the new password contains at least 6 characters.';\r\n }\r\n\r\n setResponseMessageState(formattedErrorResponse);\r\n\r\n return;\r\n };\r\n\r\n return (\r\n \r\n \r\n

    Update Your Password

    \r\n \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nexport default ProfilePassword;\r\n\r\nProfilePassword.propTypes = {\r\n accessToken: PropTypes.string.isRequired,\r\n profileState: PropTypes.object.isRequired,\r\n};\r\n","import React, { useContext } from 'react';\r\nimport { Router } from '@reach/router';\r\n\r\n// import context\r\nimport { LoggedInContext } from '../Context/LoggedInContext';\r\n\r\n// import hooks\r\nimport { useProfileReducer } from './hooks';\r\n\r\n// import styled components\r\nimport { Grid } from '../styled';\r\nimport { ProfileWrapper } from './styled';\r\n\r\n// import components\r\nimport ProfileHeader from './ProfileHeader';\r\nimport ProfileContent from './ProfileContent';\r\nimport ProfilePassword from './ProfilePassword';\r\n\r\n/**\r\n * check if a new headshot and/or logo has been uploaded by reading from context\r\n * if so then replace contextProfileState image with the new one\r\n * for preserving newly-uploaded images when this component is unmounted\r\n */\r\nconst formatLocalProfileState = (localProfileState, profileImagesUpdated) => {\r\n const { companyLogo, headshot } = profileImagesUpdated;\r\n\r\n if (headshot.updated === true && companyLogo.updated === true) {\r\n return { ...localProfileState, headshot: headshot.value, companyLogo: companyLogo.value };\r\n } else if (headshot.updated === true) {\r\n return { ...localProfileState, headshot: headshot.value };\r\n } else if (companyLogo.updated === true) {\r\n return { ...localProfileState, companyLogo: companyLogo.value };\r\n } else {\r\n return { ...localProfileState };\r\n }\r\n};\r\n\r\n/**\r\n * Profile has a route so it gets route props but not bothering to do PropTypes here b/c lazy\r\n * see Dashboard component for what it looks like\r\n */\r\nfunction Profile() {\r\n const {\r\n state: {\r\n profileData: contextProfileState,\r\n profileImagesUpdated,\r\n userState: { accessToken },\r\n },\r\n } = useContext(LoggedInContext);\r\n\r\n const [localProfileState, dispatch] = useProfileReducer(true, contextProfileState, true);\r\n\r\n const formattedLocalProfileState = formatLocalProfileState(localProfileState, profileImagesUpdated);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default Profile;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import theme helpers\r\nimport { getBreakpoint, getColor, getFontWeight } from '../../../util/theme';\r\n\r\nconst ModalClose = styled.span`\r\n color: ${getColor('medGrey')};\r\n font-size: 48px;\r\n font-weight: ${getFontWeight('bold')};\r\n\r\n position: absolute;\r\n top: 50px;\r\n right: 0;\r\n\r\n height: 75px;\r\n width: 75px;\r\n\r\n cursor: pointer;\r\n\r\n @media (min-width: ${getBreakpoint('lg')}) {\r\n top: 75px;\r\n right: 75px;\r\n }\r\n\r\n &:hover {\r\n color: ${getColor('accentRed')};\r\n }\r\n`;\r\n\r\nexport default ModalClose;\r\n","/**\r\n * this is mostly identical to PreLoanLetterButton styled component, with absolute positioning\r\n * created as new component incase it ever needs to do something more/different in the future\r\n */\r\n\r\nimport styled from 'styled-components/macro';\r\n\r\n// import theme helpers\r\nimport { getColor } from '../../../util/theme';\r\n\r\nconst ModalDownloadButton = styled.button`\r\n color: ${getColor('white')};\r\n font-size: 1.6rem;\r\n\r\n background-color: ${getColor('buttonTeal')};\r\n\r\n display: flex;\r\n\r\n padding: 7px 20px;\r\n\r\n border: 0;\r\n border-radius: 2px;\r\n\r\n position: absolute;\r\n z-index: 999;\r\n\r\n cursor: pointer;\r\n\r\n &:disabled {\r\n opacity: 0.75;\r\n\r\n cursor: not-allowed;\r\n }\r\n\r\n &:hover {\r\n background-color: ${getColor('accentOrange')};\r\n }\r\n\r\n &.download {\r\n background-color: ${getColor('accentRed')};\r\n margin: 25px 0 0 0;\r\n\r\n &:hover {\r\n background-color: ${getColor('accentGreen')};\r\n }\r\n }\r\n\r\n svg {\r\n margin: 0 20px 0 0;\r\n }\r\n`;\r\n\r\nexport default ModalDownloadButton;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import theme helpers\r\nimport { getRgba } from '../../../util/theme';\r\n\r\nconst ModalScreen = styled.div`\r\n background-color: ${getRgba('black', 0.9)};\r\n\r\n width: 100%;\r\n height: 100%;\r\n\r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n z-index: 9999;\r\n\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n`;\r\n\r\nexport default ModalScreen;\r\n","import styled from 'styled-components/macro';\r\nimport PropTypes from 'prop-types';\r\n\r\n// import theme helpers\r\nimport { getBreakpoint } from '../../../util/theme';\r\n\r\nconst ModalWindow = styled.div`\r\n display: flex;\r\n justify-content: center;\r\n\r\n position: relative;\r\n\r\n width: 100%;\r\n\r\n margin-top: 400px;\r\n\r\n height: ${props => props.height};\r\n width: ${props => props.width};\r\n\r\n overflow-x: scroll;\r\n overflow-y: scroll;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n margin-top: 0;\r\n\r\n overflow-x: auto;\r\n overflow-y: auto;\r\n }\r\n\r\n h4 {\r\n display: inline;\r\n padding: 0 15px;\r\n }\r\n\r\n hr {\r\n margin: 15px 0;\r\n }\r\n\r\n img {\r\n display: block;\r\n margin: 0 auto;\r\n position: relative;\r\n }\r\n\r\n > div {\r\n max-width: 100%;\r\n }\r\n`;\r\n\r\nexport default ModalWindow;\r\n\r\nModalWindow.propTypes = {\r\n height: PropTypes.string.isRequired,\r\n width: PropTypes.string.isRequired,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Document, Page, pdfjs } from 'react-pdf';\r\n\r\n// import styled components\r\nimport { ModalScreen, ModalWindow, ModalClose, ModalDownloadButton } from './styled';\r\n\r\n// import svg\r\nimport { ReactComponent as DownloadLetterIcon } from '../../assets/buttons/download-letter.svg';\r\n\r\nfunction Modal(props) {\r\n /**\r\n * react-pdf workaround to change where pdf.worker.js is loaded from\r\n * see https://github.com/wojtekmaj/react-pdf/wiki/Known-issues\r\n */\r\n pdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`;\r\n\r\n const { display, overflow, position, height, width, data, showDownloadButton, fileName } = props.attr;\r\n\r\n // const [, downloadLetterPdf] = useLetterActions(data, 'derp.pdf');\r\n\r\n /**\r\n * replicating this here instead of importing hook b/c closure over passed-in data on render\r\n * so doesn't work properly, tries to download initial null data\r\n */\r\n const downloadLetterPdf = (data, fileName) => {\r\n const link = document.createElement('a');\r\n const url = URL.createObjectURL(data);\r\n link.href = url;\r\n link.download = fileName;\r\n document.body.append(link);\r\n link.click();\r\n link.remove();\r\n // window.open(url);\r\n };\r\n\r\n return (\r\n \r\n \r\n {showDownloadButton ? (\r\n downloadLetterPdf(data, fileName)}>\r\n Download Letter\r\n \r\n ) : null}\r\n \r\n \r\n \r\n \r\n props.toggleModal()} onKeyPress={() => props.toggleModal()} tabIndex=\"0\">\r\n ╳\r\n \r\n \r\n );\r\n}\r\n\r\nexport default Modal;\r\n\r\nModal.propTypes = {\r\n attr: PropTypes.object.isRequired,\r\n toggleModal: PropTypes.func.isRequired,\r\n};\r\n","import styled from 'styled-components/macro';\r\n\r\nconst AppContentContainer = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n\r\n flex: 1;\r\n\r\n overflow: hidden;\r\n\r\n position: relative;\r\n`;\r\n\r\nexport default AppContentContainer;\r\n","import styled from 'styled-components/macro';\r\n\r\n// import helpers\r\nimport { getBreakpoint } from '../../../util/theme';\r\n\r\nconst AppContentWrapper = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n\r\n min-height: 100%;\r\n\r\n padding: 50px 0 0 0;\r\n\r\n @media (min-width: ${getBreakpoint('md')}) {\r\n padding: 0 0 0 60px;\r\n }\r\n\r\n @media (min-width: ${getBreakpoint('xl')}) {\r\n padding: 0;\r\n }\r\n\r\n /* rules for IE11 */\r\n @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {\r\n display: block;\r\n }\r\n`;\r\n\r\nexport default AppContentWrapper;\r\n","import styled from 'styled-components/macro';\r\n\r\nconst SkipToContentLink = styled.a`\r\n opacity: 0;\r\n\r\n position: absolute;\r\n left: 0;\r\n\r\n &:focus {\r\n opacity: 1;\r\n }\r\n`;\r\n\r\nexport default SkipToContentLink;\r\n","import React, { createContext, useRef, useState } from 'react';\r\nimport { Router } from '@reach/router';\r\nimport PropTypes from 'prop-types';\r\n\r\n// import context\r\nimport { LoggedInContext as InsiderLoggedInContext } from '../Context';\r\n\r\n// import hooks\r\nimport { useBrandFinder } from '../../hooks';\r\nimport { useModal } from '../Modal/hooks';\r\n\r\n// import components\r\nimport AppLoader from './AppLoader';\r\nimport Drawer from './Drawer';\r\nimport Header from '../Header';\r\nimport Footer from '../Footer';\r\nimport Dashboard from '../Dashboard';\r\nimport Loan from '../Loan';\r\nimport Profile from '../Profile/index';\r\nimport Modal from '../Modal';\r\n\r\n// import styled components\r\nimport { AppContentWrapper, AppContentContainer, SkipToContentLink } from './styled';\r\n\r\n// context\r\nexport const AppContext = createContext();\r\n\r\n/** use location.origin from router to determine brand - see prop types below */\r\nfunction App({ location: { origin } }) {\r\n // modal state\r\n const [modalAttr, toggleModal] = useModal();\r\n\r\n // drawer expansion\r\n const drawerWrapperRef = useRef();\r\n const [expanded, setExpanded] = useState(false);\r\n const closeMenu = () => {\r\n drawerWrapperRef.current.scrollTop = 0;\r\n if (expanded) setExpanded(false);\r\n };\r\n\r\n // brand state\r\n const [brandState] = useBrandFinder(origin);\r\n\r\n const appContextValues = {\r\n functions: {\r\n toggleModal,\r\n },\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n Skip to Main Content\r\n \r\n \r\n closeMenu()}>\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n