{"version":3,"sources":["utils/history.js","utils/storage.js","consts/routes.js","redux/app/constants.js","redux/utils/index.js","redux/app/actions.js","utils/functions.js","config/variables.js","utils/notifications.js","api/axios/errorsNomenclature.js","api/axios/interceptors.js","api/axios/index.js","api/index.js","redux/app/selectors.js","redux/tokens/selectors.js","redux/tokens/constants.js","redux/tokens/actions.js","redux/WebSockets/constants.js","redux/sagas.js","redux/app/sagas.js","redux/middleware/customerIdentityInProgress.js","redux/tokens/reducer.js","redux/app/reducer.js","redux/reducers.js","redux/WebSockets/actions.js","redux/middleware/signalr/helpers.js","redux/store.js","redux/middleware/signalr/index.js","theme/global-styles.js","components/common/NotFound/index.js","components/common/Typography/index.js","components/common/Content/index.js","images/SFC_Truist.jpg","components/common/Logo/index.js","images/applyNow.png","components/layouts/index.js","hooks/responsive/index.js","components/common/Content/Background.js","components/common/Divider/index.js","components/layouts/HeaderContentFooter.js","images/background.jpeg","components/common/Content/TwoColumns.js","components/common/Pages/ExceptionPage/index.js","images/not_found.svg","components/common/Pages/NotFound/index.js","components/common/Pages/NotAuthorized/index.js","serviceWorkerRegistration.js","components/services/ServiceWorker/index.js","components/services/ServiceWorker/NewVersion.js","components/common/Form/index.js","components/common/Portal/index.js","hooks/portal/index.js","components/views/LegalInformation/Components/LegalLink.js","hooks/data.js","components/views/Apply/Form/Components/Consent.js","components/views/Apply/Form/Components/Close.js","components/views/Apply/Form/FormButtons.js","components/views/utils/index.js","components/common/Inputs/index.js","components/views/Apply/Form/Components/Fieldset.js","components/views/Apply/Form/Modals/AddressValidationModal/ValidItem.js","components/views/Apply/Form/Modals/AddressValidationModal/InvalidItem.js","components/views/Apply/Form/Modals/AddressValidationModal/index.js","components/common/Result/index.js","components/views/Apply/ResultMessage/ErrorDetails.js","components/common/Card/index.js","components/common/Radio/index.js","components/common/Text/index.js","components/views/Apply/Form/Modals/MultipleAddressSelectionModal/index.js","components/views/Apply/Form/DataSet.js","components/views/Apply/Form/Components/SSN.js","components/views/Apply/Form/Components/Phone.js","components/views/Apply/Form/Components/ZipCode.js","components/views/Apply/Form/Components/Address.js","components/views/Apply/Form/Components/MonthlyIncomeMessage.js","components/views/Apply/Components/LabelInfo.js","components/views/Apply/Form/Components/MonthlyIncome.js","components/common/DatePicker/index.js","components/views/Apply/Form/Components/DayOfBirth.js","components/views/Apply/Form/Components/Names.js","components/views/Apply/Form/Components/RemoveCoApplicantButton.js","components/views/Apply/Components/EnterDataOption.js","components/common/Alerts/index.js","components/views/Apply/Components/RequestOptions.js","components/views/CustomerIdentityForm/FetchingCustomer.js","components/views/Apply/Form/Components/PhoneConcentVerified.js","components/views/CustomerIdentityForm/index.js","components/views/Apply/Form/Modals/AddCoApplicant/index.js","components/views/Apply/Form/CoApplicantForm.js","components/views/Apply/Form/Components/Email.js","components/views/Apply/Form/ApplicantForm.js","components/views/Apply/Form/Sections/Applicant.js","components/views/Apply/Form/SalesRepInformationForm.js","components/views/Apply/Form/Sections/SalesRepInformation.js","components/views/Apply/Form/Components/TypeOfLoan.js","components/views/Apply/Form/ApplicationDetailsForm.js","components/views/Apply/Form/Sections/ApplicationDetails.js","components/views/Apply/Form/index.js","images/result/failedBlackImg.png","images/result/failedRedImg.png","images/result/successGreenImg.png","images/result/successOrangeImg.png","components/views/Apply/ResultMessage/variables.js","components/views/Apply/ResultMessage/index.js","images/verification_success.svg","components/views/Apply/ResultMessage/StopInCurrentView.js","components/views/Apply/ResultMessage/RetrievingData.js","components/views/Apply/index.js","utils/hooks.js","components/common/Spin/index.js","components/views/Dealer/index.js","components/layouts/Footer/index.js","components/layouts/Centered.js","components/views/Home/DealerNumberForm.js","components/views/Home/DealerDataToVerify.js","components/views/Home/DefaultMessage.js","components/views/Home/index.js","components/common/Tabs/index.js","components/views/LegalInformation/Components/Disclosure.js","components/views/LegalInformation/index.js","images/verification_failed.svg","components/views/Verification/index.js","components/views/Verification/VerificationTreatment.js","components/views/Apply/ResultMessage/ErrorPage.js","components/views/Apply/ResultMessage/MessagePage.js","components/common/Content/ContainerFluid.js","images/interview.jpg","components/common/LayerAboutUs/index.js","components/common/LayerInfoFormBd/index.js","components/common/LayerInfoFormBe/index.js","components/common/Content/LayoutCentered.js","components/views/LandingPageForBd/FormBd.js","images/inscription.jpeg","components/common/LayerForm/index.js","components/views/LandingPageForBd/index.js","components/views/LandingPageForBe/FormBe.js","components/views/LandingPageForBe/index.js","components/common/Table/index.js","components/common/Imagen/index.js","components/views/Associations/DealersSet/Components/NoData.js","components/views/Associations/DealersSet/Components/ShowInMap.js","components/views/Apply/Form/Components/ZipCodeInput.js","components/views/Associations/FindDealerForm.js","components/views/Associations/DealersSet/Components/index.js","components/views/Associations/utils.js","components/views/Associations/DealersSet/Components/Table.js","components/common/Collapse/index.js","components/common/List/index.js","components/views/Associations/DealersSet/Components/List.js","components/views/Associations/DealersSet/Components/Map/components.js","components/views/Associations/DealersSet/Components/Map/index.js","components/views/Associations/DealersSet/index.js","components/views/Associations/index.js","components/App.js","index.js","components/common/Buttons/index.js","assets/Disclosure/General.html","assets/Disclosure/Patriot.html","assets/Disclosure/California.html","assets/Disclosure/NewYorkAndRhodeIsland.html","assets/Disclosure/Ohio.html","assets/Disclosure/Vermont.html","assets/Disclosure/Winsconsin.html","assets/Statement.html","assets/CoppaDisclosure.html","assets/PrivacyPolicy.html","theme/variables.js"],"names":["history","createBrowserHistory","STATE_KEY","ROUTES","PRIVACY_POLICY_URL","process","CONSUMER_RIGHTS_NOTICE_URL","DISTANCE_OPTIONS","MESSAGE_SUCCESS_STATUS_NOMENCLATURE","MESSAGE_ERROR_STATUS_NOMENCLATURE","TIMES","APPLICANT_PREFIX","CO_APPLICANT_PREFIX","SALES_REP_PREFIX","APPLICATION_DETAILS_PREFIX","BORROWER_NOMENCLATURE","COBORROWER_NOMENCLATURE","GETTING_DATA_STATUS","APPLICANT_TYPES","APPLICANT_TITLE","APPLICANT_NOMENCLATURE_PREFIX_MAP","legalLinks","legalLinksName","APPLY_FORM_RESPONSE_COLOR_GREEN","APPLY_FORM_RESPONSE_COLOR_ORANGE","APPLY_FORM_RESPONSE_COLOR_BLACK","RESET_APP","ADD_COAPPLICANT","SAVE_APPLY_FORM_VALUES","VALIDATE_ADDRESS","VALIDATE_ADDRESS_SUCCESS","VALIDATE_ADDRESS_FAILED","SUBMIT_APPLY_FORM","SUBMIT_APPLY_FORM_SUCCESS","SUBMIT_APPLY_FORM_FAILED","SHOW_ADDRESS_VALIDATION","RESET_VALIDATED_ADDRESS","CONFIRMED_ADDRESSES","RESET_RESULTS","GET_VERIFY_PRODUCT_BY_DEALER","GET_VERIFY_PRODUCT_BY_DEALER_SUCCESS","GET_VERIFY_PRODUCT_BY_DEALER_FAILED","PUT_VERIFY_PRODUCT_BY_DEALER","PUT_VERIFY_PRODUCT_BY_DEALER_SUCCESS","PUT_VERIFY_PRODUCT_BY_DEALER_FAILED","ENTER_APPLICANT_DATA_MANUALLY","SKIP_INPUT_FORM","GET_CUSTOMER_IDENTITY","GET_CUSTOMER_IDENTITY_SUCCESS","GET_CUSTOMER_IDENTITY_DONE","GET_CUSTOMER_IDENTITY_STOP","GET_CUSTOMER_IDENTITY_FAILED","SAVE_CUSTOMER_IDENTITY_ADDRESS","SET_CUSTOMER_IDENTITY_ERROR_MESSAGE","title","subtitle","RESET_DATA_CUSTOMER_IDENTITY","PUT_MOBILE_VERIFICATION_AS_SUCCESSFUL","PUT_MOBILE_VERIFICATION_AS_SUCCESSFUL_SUCCESS","PUT_MOBILE_VERIFICATION_AS_SUCCESSFUL_FAILED","SET_VERIFICATION_PARAMS","RESET_VERIFICATION_PARAMS","SHOW_ADDRESS_LIST_TO_SELECT","CLOSE_ADDRESS_LIST_TO_SELECT","SHOW_ADD_COAPPLICANT_MODAL","NOT_CALLED","CALLING","CALLED_WITH_SUCCESS","CALLED_WITH_ERROR","CALLED_WITH_SUCCESS_BUT_NOT_VERIFIED","LOADING_STATES","SET_FOR_CUSTOMER","SET_FOR_QR_CODE","SET_FOR_BD_CODE","SET_FOR_BE_CODE","SET_FOR_VERIFICATION_CODE","STOPPED_CURRENT_APPLICATION","INIT_RETRIEVE_APPLICATION_DATA","INIT_RETRIEVE_APPLICATION_DATA_SUCCESS","INIT_RETRIEVE_APPLICATION_DATA_FAILED","SAVE_PREVIOUS_DATA","SET_ERROR_MESSAGE","SET_MESSAGE","SET_APPLICANT_CONSENT_APPROVED","GET_CALL_REPORT","RELOAD_CALL_REPORT","GET_CALL_REPORT_SUCCESS","GET_CALL_REPORT_FAILED","SET_SEARCH_TEXT","SET_ASSOCIATION_FORM_INFO","SET_CURRENT_ASSOCIATION_NUMBER","CALL_REPORT_OPERATOR_TYPE","PAGINATION_CONFIG","position","size","showSizeChanger","pageSizeOptions","GET_MAP_BY_COORDINATES","CLOSE_ADDRESS_MAP","makeActionCreator","type","argNames","args","action","forEach","arg","index","resetApp","addCoApplicant","saveApplyFormValues","submitApplyForm","submitApplyFormSuccess","submitApplyFormFailed","validateAddress","validateAddressSuccess","validateAddressFailed","showAddressValidation","setConfirmedAddresseses","getVerifyProductByDealer","getVerifyProductByDealerSuccess","getVerifyProductByDealerFailed","putVerifyProductByDealer","putVerifyProductByDealerSuccess","putVerifyProductByDealerFailed","enterApplicantDataManually","skipInputForm","getCustomerIdentity","getCustomerIdentitySuccess","getCustomerIdentityDone","getCustomerIdentityStop","getCustomerIdentityFailed","saveCustomerIdentityAddress","resetDataCustomerIdentity","setCustomerIdentityErrorMessage","putMobileVerificationAsSuccessful","putMobileVerificationAsSuccessfulSuccess","putMobileVerificationAsSuccessfulFailed","showAddressListToSelect","closeAddressListToSelect","showCoApplicantModal","setVerificationParams","resetVerificationParams","setForCustomer","setForQRCode","setForBdCode","setForBeCode","stoppedCurrentApplication","initRetrieveApplicationData","initRetrieveApplicationDataSuccess","initRetrieveApplicationDataFailed","savePreviousData","setErrorMessage","setMessage","setPhoneConsentApproved","getCallReport","reloadCallReport","getCallReportSuccess","getCallReportFailed","setSearchText","setAssociationFormInfo","setCurrentAssociationNumber","getMapByCoordinates","closeAddressMap","isBlank","value","isEmpty","isNumber","isNaN","formatCustomer","fieldsPrefix","values","Object","keys","some","prop","includes","DOB","format","DATE_FORMAT","FirstName","LastName","PhoneNumber","SSN","formatApplicant","MiddleInitial","DateOfBirth","Email","ApplicantType","ResidencyType","Address","StreetAddress","StreetAddress2","City","State","Zip","Employer","Income","formatSalesMan","Salesman","name","email","phone","formatApplicationDetails","RequestedAmount","TypeOfLoan","formatAddressForValidation","address1","address2","city","state","zip","formatAddressAsHTML","address","line1","line2","formatPreviousCustomerIdentity","customerIdentity","applicantType","identify","firstName","lastName","dob","ssn","phoneNumber","prefix","moment","formatCustomerIdentity","applicant","middleInitial","dateOfBirth","customerResidencyType","residencyType","customerEmployer","employer","customerAddress","Id","income","monthlyIncome","formatCustomerIdentityAddress","streetAddress","unitApt","buildAssociationCallReportPayload","zipCode","distance","associationNumber","payload","serviceName","params","search","filterBy","operator","group","BASE_URL","RESOURCE_BASE_URL","APPLY_DEALER_AUTH_BASE_URL","WARNING_NOTIFICATION_TYPE","INFO_NOTIFICATION_TYPE","notification","config","placement","duration","showSuccessNotification","actionTitle","successMessageDescription","message","description","success","className","showErrorNotification","error","showInfoNotification","key","uuidv4","info","showErrorNotificationFromResponse","errorData","isNotAuthorized","notFound","showToUser","logMessageInConsole","log_type","style_by_type","console","log","HTTP_STATUS","responseOk","response","isSuccess","formatError","errorInfoSummary","url","baseURL","data","fromResponse","responseError","store","errorsTypes","getState","getIn","split","map","errorType","trim","toString","showReporErrorInNotifications","status","isFromResponse","Promise","reject","JSON","stringify","errorMessage","TIME_OUT","createCancelableAxios","cancel","instance","axios","create","cancelToken","CancelToken","c","defaults","timeoutErrorMessage","headers","post","regularAxios","timeout","regularHeimdalAxios","authorizedAxios","userAxios","common","interceptors","request","use","currentToken","Authorization","userToken","isCancelledRequestException","isCancel","postPullCheckRequest","nls","putAddressValidationVerify","put","getVerifyProductByDealerNumber","dealerNumber","applyFrom","get","putVerifyProductByDealerNumber","putMobileVerificationAsSuccessfulRequest","requestId","vfp","getCustomerIdentityRequest","dataEncoded","result","d","encodeURIComponent","push","join","encodeQueryData","getCallReportRequest","RESULT_SUCCESS","RESULT_FAILED","selectApp","createSelector","app","toJS","selectHasCoApplicant","hasCoApplicant","selectApplyFormIsFetching","applyFormIsFetching","selectApplyFormResult","applyFormResult","selectApplyFormError","applyFormError","selectSkipForm","skipForm","selectApplyFormResultIsSuccess","ColorBand","selectApplyFormResultIsFailed","selectResultColorBand","selectResultScriptText","ScriptText","selectResultScriptText2","ScriptText2","selectResultTitle","Title","selectApplyFormResultCallbackURL","CallBackURL","selectIsValidatingAllAdresses","isValidatingAllAdresses","selectValidatedAddresses","validatedAddresses","selectIsApplicantAddressValid","length","flags","IsVerified","IsEquals","selectIsCoApplicantAddressValid","selectApplyFormValues","applyFormValues","selectConfirmedAddresses","confirmedAddresses","selectAreAddressesConfirmed","every","item","confirmed","selectApplicantAddress","selectCoApplicantAddress","selectShowAddressValidation","selectApplicantValidatedAddress","verified","selectCoApplicantValidatedAddress","selectVerifyProductByDealerData","applicantAddress","coApplicantAddress","verifyProductByDealer","selectDealerDataToVerify","verifyProductByDealerData","toVerify","selectIsFetchinVerifyProductByDealerData","isFetchingVerifyProductByDealer","selectDealerNumberFormError","dealerNumberFormError","selectDealerNumberFormVerifyDataError","dealerNumberFormVerifyDataError","selectIsFetchingPutVerifyDealerData","isFetchingPutVerifyDealerData","selectEnterApplicantDataManuallyData","enterApplicantDataManuallyValue","makeSelectEnterApplicantDataManuallyData","enterApplicantDataManuallyData","selectCustomerIdentityRequestId","customerIdentityInProgressRequest","findKey","selectCustomerIdentity","makeSelectCustomerIdentityIsComplete","isCompleted","makeSelectCustomerIdentityIsExpired","isExpired","makeSelectCustomerExpirationDate","expirationDate","makeSelectCustomerIdentityAddressSelection","addressSelection","filter","hasOwnProperty","selectCustomerIdentityIsFetching","makeSelectCustomerIdentityIsFetching","isFetching","selectCustomerIdentityError","makeSelectCustomerIdentityError","customerIdentityError","selectMobileVerificationState","mobileVerificationState","selectRequestId","putMobileVerificationAsSuccessfulIsFetching","selectShowMultipleAddressSelection","showMultipleAddressSelection","selectAddCoApplicant","selectShowAddCoApplicantModal","showAddCoApplicantModal","makeSelectCustomerIdentityAlerts","alerts","selectVerificationParams","verificationParams","selectMobileVerificationIsLoading","selectMobileVerificationSuccesful","selectMobileVerificationSuccesfulNoVerificated","selectMobileVerificationHasError","selectMobileVerificationURLError","selectStoppedCurrentApplication","selectApplyFrom","selectIsForCustomer","selectIsForQRCode","selectIsForBDCode","selectIsForBECode","selectRetrieveApplicationData","retrieveApplicationData","selectPhoneConsentApproved","phoneConsentApproved","selectErrorMessage","selectMessage","selectAssociationCallReportIsFetching","associationCallReportIsFetching","selectAssociationReloadCallReportIsFetching","associationReloadCallReportIsFetching","selectAssociationCallReport","associationCallReport","selectHaveDealersData","items","selectAssociationCallReportItems","selectSearchText","searchText","selectAssociationFormInfo","associationFormInfo","selectErrorCallReport","errorCallReport","selectHaveErrorInAssociationData","selectAssociationNumber","selectAddressMap","addressMap","selectShowAddressMap","open","selectAddressMapData","selectTokens","tk","selectDealerNumber","SAVE_DEALER_NUMBER","saveDealerNumber","WS_INIT","WS_STOP","WS_HUB_NOTIFY","WS_SEND_NOTIFICATION","WS_NOTIFICATION_RECEIVED","apiRequest","requestFunction","requestData","Error","Array","isArray","options","assign","showSuccessMessage","showErrorMessage","retryOnErrorCount","errorMessageDescription","latestError","call","processCustomerFormData","processApplyFormData","submitApplyFormSaga","validateAllAddressesSaga","verifyProductByDealerSaga","putVerifyDealerNumberDataSaga","getCustomerIdentitySaga","getCustomerIdentityFailedSaga","getCustomerIdentityStopedSaga","notificationReceivedSaga","applyFromQRCode","redirectToMessagePage","putMobileVerificationAsSuccessfulSaga","getCustomerIdentityDoneSaga","setCustomerIdentityAddressSaga","setErrorMessageSaga","setMessageSaga","getCallReportSaga","customerIdentityRequestId","select","applicants","coApplicant","replace","salesPerson","applicationDetails","Applicants","DealerNumber","takeEvery","applyData","areAddressesConfirmed","allValid","takeLatest","defaultErrorMsg","producId","requiredId","confData","isForQRCode","isForBDCode","isForBECode","elementNumber","notificationId","isSuccessful","subTitle","reload","rest","customerIdentityIntervalId","sagas","combineReducers","fromJS","manuallyInit","LOCATION_CHANGE","source","reduce","output","Map","set","delete","customerIdentityIsFetching","createRootReducer","asyncReducers","router","connectRouter","tokens","tokensReducer","appReducer","stopGetCustomerIdentityInterval","clearInterval","startGetCustomerIdentityInterval","setInterval","dispatch","middleware","next","initGetCustomerIdentity","wsInit","CONSTANTS","wsConnected","wsReConnecting","wsReConnected","wsError","wsClosed","wsNotificationReceived","wsOpenItemDataReceived","wsCloseItemDataReceived","retryCount","retryTime","onError","actions","sagaMiddleware","createSagaMiddleware","signalrMiddleware","connection","HubConnectionBuilder","withUrl","configureLogging","LogLevel","Information","build","HubConnectionState","Disconnected","onreconnecting","assert","Reconnecting","onReconnecting","onreconnected","connectionId","Connected","onReconnected","onclose","onClose","on","appInst","elementId","userName","receiveNotification","areaId","createdDate","msg","receiveOpenItemNotification","receiveCloseItemNotification","startAsync","a","warn","start","setTimeout","stop","invoke","catch","createSignalrMiddleware","initialState","middlewares","customerIdentityInProgress","routerMiddleware","enhancers","applyMiddleware","composeEnhancers","compose","createStore","createReducer","runSaga","run","asyncSagas","appSaga","configureStore","serializedState","sessionStorage","getItem","parse","loadState","subscribe","storeState","setItem","saveState","pick","init","GlobalStyles","createGlobalStyle","FONT_BASE","FONT_COLOR","FONT_WEIGHT","ACTION_COLOR","ACTION_COLOR_HOVER","ERROR_COLOR","SUCCESS_COLOR","INFO_COLOR","FONT_SIZE_SMALL","WIDTH_BREAKPOINT_SM","NotFound","styled","div","TextAnt","Text","FONT_SIZE","SubTitle","FONT_COLOR_LIGHT","children","props","BigText","FONT_SIZE_BIG_TEXT","whiteColor","ContentCard","LogoContainer","WIDTH_BREAKPOINT_XS","WIDTH_BREAKPOINT_MD","Content","classes","classNames","extra","ContentNotFound","text","icon","CardContent","Logo","logoForBd","useDispatch","src","alt","logoImg","style","margin","Layout","span","color","COMPANY_NAME_BLACK","CustomLayout","MainContainer","Header","BACKGROUND_DEFAULT","BORDER_DEFAULT","Sider","GRAY_BACKGROUND","CustomContent","Component","defaultValues","expanded","OFFSET_MAX_WIDTH","useIsMobile","useMediaQuery","maxDeviceWidth","RESPONSIVE_BREAKPOINTS","MD","DivWithFullBackground","backgroundSrc","BORDER_RADIUS","backgroundDirection","Background","Divider","LeftLayout","LeftHeader","LINE_HEIGHT","LeftContent","LeftFooter","Footer","TwoColumnsRow","TwoColumnsLeftCol","TwoColumnsRightCol","RowOutsideBackground","ColOutsideBackground","MAIN_COLOR","top","TopRightContainer","BACKGROUND_COLOR_LIGHT","TwoColumnsImage","imageSetting","backgroundImg","TwoColumns","headerTitle","headerSubtitle","imageSrc","imageDirection","md","xs","topRightContent","showOutsideBackground","showSecondColumn","extraContent","extraLogo","overflowContent","isMobile","rowRef","useRef","useState","offsetTop","setOffsetTop","useEffect","current","resizeListener","window","addEventListener","removeEventListener","ref","flex","justify","overflowY","gutter","id","memo","ExceptionPage","titlePage","notFoundImg","width","NotAuthorized","to","isLocalhost","Boolean","location","hostname","match","register","navigator","URL","href","origin","swUrl","fetch","then","contentType","indexOf","serviceWorker","ready","registration","unregister","registerValidSW","checkValidServiceWorker","waiting","onWaiting","onupdatefound","installingWorker","installing","onstatechange","controller","onUpdate","onSuccess","update","ServiceWorkerContext","React","createContext","displayName","ServiceWorkerProvider","waitingServiceWorker","setWaitingServiceWorker","isUpdateAvailable","setUpdateAvailable","event","target","useMemo","updateAssets","postMessage","Provider","NewVersion","useContext","loading","setLoading","updateNow","useCallback","e","Form","FormItem","Item","Portal","rootElemRef","document","createElement","element","parentElem","querySelector","appendChild","remove","usePortal","createPortal","LegalLink","route","onClick","useEnterApplicantDataManuallyData","useSelector","useCustomerIdentityIsFetching","useCustomerIdentityIsComplete","selectCustomerIdentityIsComplete","useCustomerIdentityIsExpired","selectCustomerIdentityIsExpired","useCustomerIdentityAlerts","selectCustomerIdentityAlerts","Consent","customerIdentityIsComplete","isTheFirstStepForQRCode","applicantDataManually","customStyle","lineHeight","height","fontSize","marginTop","valuePropName","rules","required","Close","dealerId","generatePath","htmlType","FindCustomerDataButton","form","handleSubmit","firstFieldName","lastFieldName","ssnFieldName","phoneFieldName","dateOfBirthFieldName","phoneFieldVerifiedName","validateFields","buttonText","FormButtons","submitOnClick","disabled","isTheFirstStepForBDCode","isTheFirstStepForBECode","handleSubmitOnClick","isFunction","SIZE_BETWEEN_ELEMENTS","ExitButton","isLink","ButtonLink","Button","SpacedMaskedInput","MaskedInput","Radio","fontFamily","PLACEHOLDER_COLOR","FONT_FAMILY","Checkbox","Group","FONT_CLASSIC","FONT_ELEGANT","FONT_FORMAL","CustomFieldset","fieldset","Fieldset","marginBottom","require","Row","Col","ValidItem","fieldName","validAddress","GUTTER_DEFAULT","sm","InvalidItem","transform","undefined","initialValue","Modal","ConfirmationModal","onValidatedAddressAccepted","useForm","isCoApplicantAddressValid","isApplicantAddressValid","applicantValidatedAddress","coApplicantValidatedAddress","isSubmitDisabled","setIsSubmitDisabled","isDisabled","getFieldsValue","handleClose","submit","closable","centered","onOk","onCancel","footer","layout","onFinish","onValuesChange","changedValues","allValues","bordered","ValidationAddressModal","Result","ErrorsDetails","onlyText","AddressCard","RadioGroupAnt","lighter","small","soft","align","display","Copyright","FONT_SIZE_SMALLEST","FONT_COLOR_SOFT","IContent","flexDirection","theme","LABEL_DARK_THEME","LABEL_FONT_COLOR","BORDER_LIGHT","VALUE_DARK_THEME","limited","CustomAlert","Message","showIcon","InfoCircleFilled","MultipleAddressSelection","addressValue","setAddressValue","multipleAddress","selectCustomerIdentityAddressSelection","useCustomerIdentityAddressSelection","maskClosable","bodyStyle","padding","onChange","fullAddress","MultipleAddressSelectionModal","citizenshipData","stateData","required_rules","inputRef","ssnProperties","isProtected","setIsProtected","hasError","setHasError","ssn_rules","pattern","input","focus","cursor","handleOnBlur","handleOnFocus","handleShouldUpdate","prevValues","currentValues","getFieldError","protectedClasses","unprotectedClasses","label","shouldUpdate","validateTrigger","autoComplete","placeholder","mask","hidden","onBlur","onFocus","phone_pattern","Phone","handleOnChange","phoneProperties","phoneRules","allowClear","ZipCode","zipCodeRules","Option","onAddressChange","streetAddressInputRef","handlePlaceSelected","place","address_components","component","types","long_name","short_name","setFieldsValue","antRef","usePlacesWidget","apiKey","onPlaceSelected","componentRestrictions","country","fields","language","lg","MonthlyIncomeMessage","annualIncome","condition","handleOnClose","direction","currency","Tooltip","LabelInfo","handleFunction","tooltip","shape","currencyFormatter","Intl","NumberFormat","currencyParser","val","locale","parts","formatToParts","numerals","useGrouping","maximumFractionDigits","reverse","i","RegExp","find","decimal","numeral","indexFunction","NaN","MonthlyIncome","setAnnualIncome","showIncomeMessage","setShowIncomeMessage","handleTurnOnShowMessage","monthlyIncomeRules","getFieldValue","wrap","addonBefore","formatter","parser","Amount","amountRules","fromYear","subtract","younger","under18YearsOld","not80years","MASKED","IMask","createMask","blocks","DD","from","MaskedRange","maxLength","MM","YYYY","date","Date","DatePicker","onKeyDown","resolve","picker","disabledDate","DayOfBirth","dob_rules","showToday","defaultPickerValue","RemoveCoApplicantButton","handleRemoveCoApplicantOnClick","EnterDataOption","infoData","SearchOutlined","FormOutlined","fontWeight","Paragraph","AlertListMessage","alert","listStyleType","strong","isFetchingAlert","RenderAlerts","Alerts","errorAlerts","warningAlerts","successAlerts","infoAlerts","isValid","RequestOptions","resend","Countdown","FetchingCustomer","customerIdentityAlerts","customerExpirationDate","selectCustomerExpirationDate","useCustomerExpirationDate","showCountdown","setShowCountdown","DATE_TIME_FORMAT","isAfter","spinning","wrapperClassName","tip","maxHeight","overflow","suffix","valueStyle","PhoneConcentVerified","onChangeFunction","CustomerIdentityForm","customerIdentityIsExpired","isCoApplicant","marginLeft","AddCoApplicantModal","handleCancel","destroyOnClose","AddCoApplicant","CoApplicantForm","newConfirmedAddresses","emailProperties","emailRules","ApplicantManualForm","TCPA","customerIdentityErrorMessage","useCustomerIdentityError","showEmailPhoneMessage","setShowEmailPhoneMessage","configShowEmailPhoneMessage","setConfigShowEmailPhoneMessage","isApplicant","handleAddressChange","handleShowMessage","showPhoneEmailInfo","ApplicantForm","formValuesReloaded","setFormValuesReloaded","previousApplicantDataManually","usePrevious","formValues","resetFields","Applicant","applicantComponent","xl","xxl","SalesRepInformationForm","SalesRepInformation","isForCustomer","setTypeValue","typeOfLoanRules","ApplicationDetails","ApplicationDetailsForm","ApplyForm","isLoading","handleValidatedAddressAccepted","newValues","scrollToFirstError","initialValues","previousValues","AddressValidationModal","ApplyMain","scrollTo","behavior","result_conf_to_show","FormattedText","level","ResultMessage","callbackUrl","applyFormResultIsSuccess","applyFormResultIsFailed","resultColorBand","resultScriptText","resultScriptText2","resultTitle","showActions","img","successGreenImg","successOrangeImg","failedRedImg","failedBlackImg","StopInCurrentView","verification_success_img","RetrievingData","Apply","useProcessedDealerId","useParams","Fill","Spin","FONT_COLOR_GRAY","CustomSpin","Dealer","forCustomer","forQRCode","CustomFooter","PADDING_DESKTOP","PADDING_MOBILE","renderCopyright","year","getFullYear","footerLinks","CenteredContainer","CenteredDiv","bg","BOX_SHADOW","FooterDiv","applyOverflow","Centered","withSpinner","DealerNumberForm","dealerInputRef","disable","setDisable","isFetchinVerifyProductByDealerData","DealerDataToVerifyForm","dealerDataToVerify","dealerData","defaultChecked","DealerDataToVerify","fontweight","HomeDefaultMessage","DealerEntry","Home","Tabs","residents","californiaResidents","newYorkResidents","ohioResidents","vermontResidents","wisconsinResidents","Disclosures","generalDisclosure","patriotDisclosure","Link","htmlFile","statement","coppaDisclosure","privacyPolicy","RenderAnotherLinks","locationPath","overlay","total","link","borderBottom","renderItems","arrow","DownOutlined","LegalContent","Disclosure","LegalInformation","useLocation","pathname","justifyItems","alignItems","marginRight","Verification","URLSearchParams","useGetURLParams","image_width","verification_failed_img","loadingMessage","MESSAGE","MessageComponent","hasURLError","hasParams","VerificationTreatment","ErrorPage","MessagePage","IMAGE_BY_STATUS","ContainerForBd","ContainerFluid","mg","pd","background","Wrapper","BREAKPOINT_LG","ColumnImg","ColumnInfo","LayerAboutUs","interview","RowInfo","Column","WrapperInfo","ColumnNumber","FONT_IN_BG","CircleStep","LayerInfoBd","textAlign","LayerInfoBe","LayoutCentered","FormBd","handleOnFinish","WrapperImg","inscription","BREAKPOINT_MD","ColumnMainTitle","BREAKPOINT_XL","ColumnForm","WrapperForm","LayerForm","LandingPageForBd","FormBe","LandingPageForBe","Table","ImageWithValidation","fallback","setImageSrc","Image","onload","onerror","NoData","image","BACKGROUND_SOLID","ShowInMap","gpsCoordinates","EnvironmentOutlined","stopPropagation","preventDefault","ZipCodeInput","test","FORM_FIELDS_NAMES","FindDealerForm","justifyContent","flexWrap","Reload","SyncOutlined","ApplyNowButton","ContactInfo","contact","Search","DataSourceTotal","getDistanceText","DealersTable","dataSource","dataSourceIsFetching","pageSize","paginationInfo","setPaginationInfo","newElementRef","setNewElementRef","elementRef","setDistance","getBoundingClientRect","computedStyled","getComputedStyle","parseInt","borderTop","paddingTop","paddingBottom","innerHeight","useElementDistanceFromTop","allColumns","render","_","record","companyName","distanceText","addressText","pagination","currentPage","showTotal","onShowSizeChange","page","defaultCurrent","defaultPageSize","zIndex","columns","rowKey","tableLayout","scroll","y","Collapse","reduced","List","Panel","DealersList","activeKey","setActiveKey","simple","renderItem","collapsible","defaultActiveKey","expandIconPosition","header","renderListItems","itemLayout","getPixelPositionOffset","x","SatelliteMap","withProps","googleMapURL","loadingElement","containerElement","mapElement","withScriptjs","withGoogleMap","mapTypeId","defaultZoom","defaultCenter","lat","lng","showMarker","StreetViewMap","center","defaultPosition","visible","mapPaneName","OverlayView","OVERLAY_LAYER","RadioGroupAntd","RadioGroup","nomenclatures","showStreetView","setShowStreetView","radioOption","setRadioOption","ModalMap","showAddressMap","addressMapData","latitude","longitude","DealersSet","isTabletOrMobile","maxWidth","dataSourceFiltered","toLowerCase","headStyle","BACKGROUND_AREA","AssociationEntryContent","haveErrorInAssociationData","haveDealersData","Associations","currentAssociationNumber","WrapperCenter","App","defaultLocale","enUS","path","exact","resp","ReactDOM","StrictMode","getElementById","SelectFocus","BORDER_BLACK","SelectFocusList","ButtonClose","CustomButton","DISABLE_COLOR","DISABLE_BORDER","ButtonLinkStyled","BUTTON_DISABLED_COLOR","ICON_SIZE","uniqueId","CloseButton","Linked","module","exports","XXS","SM","LG","XL","XXL","WIDTH_BREAKPOINT_XXS","WIDTH_BREAKPOINT_LG","WIDTH_BREAKPOINT_XL","WIDTH_BREAKPOINT_XXL","BACKGROUND_DARK"],"mappings":"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","file":"static/js/main.2fa762e8.chunk.js","sourcesContent":["import { createBrowserHistory } from 'history';\r\n\r\n// configure, create, and export the project's history instance\r\nconst history = createBrowserHistory();\r\n\r\nexport default history;\r\n","const STATE_KEY = 'state';\r\nconst TOKEN_KEY = 'token';\r\n\r\nexport const loadState = () => {\r\n try {\r\n const serializedState = sessionStorage.getItem(STATE_KEY);\r\n\r\n if (serializedState === null) {\r\n return undefined;\r\n }\r\n\r\n return JSON.parse(serializedState);\r\n } catch (error) {\r\n return undefined;\r\n }\r\n};\r\n\r\nexport const saveState = state => {\r\n try {\r\n const serializedState = JSON.stringify(state);\r\n sessionStorage.setItem(STATE_KEY, serializedState);\r\n } catch (error) {\r\n // Ignore errors\r\n }\r\n};\r\n\r\nexport function saveLoginData(token) {\r\n sessionStorage.setItem(TOKEN_KEY, token);\r\n}\r\n\r\nexport function clearLoginData() {\r\n sessionStorage.removeItem(TOKEN_KEY);\r\n}\r\n\r\nexport function getAuthToken() {\r\n return sessionStorage.getItem(TOKEN_KEY);\r\n}\r\n","export const ROUTES = {\r\n HOME: '/',\r\n APPLY_FORM: '/apply',\r\n DEALER_ID: '/d/:dealerId',\r\n CUSTOMER_ID: '/c/:dealerId',\r\n QR_CODE: '/qr/:dealerId',\r\n BD_CODE: '/bd/:dealerId',\r\n BE_CODE: '/be/:dealerId',\r\n ASSOCIATION_NUMBER: '/a/:associationNumber',\r\n STATEMENT: '/statement',\r\n DISCLOSURES: '/disclosures',\r\n COPPA_DISCLOSURE: '/coppa_disclosure',\r\n PRIVACY_POLICY: '/privacy_policy',\r\n CONSUMER_RIGHTS_NOTICE: '/consumer_rights_notice',\r\n NOT_AUTHORIZED: '/403',\r\n NOT_FOUND: '/404',\r\n VERIFICATION_WP: '/Verification/:requestId/Mobile',\r\n VERIFICATION_WOP: '/Verification',\r\n ERROR: '/error',\r\n MESSAGE: '/message'\r\n};\r\n","import { ROUTES } from 'consts/routes';\r\nexport const PRIVACY_POLICY_URL = process.env.REACT_APP_PRIVACY_POLICY_URL;\r\nexport const CONSUMER_RIGHTS_NOTICE_URL =\r\n process.env.REACT_APP_CONSUMER_RIGHTS_NOTICE_URL;\r\nexport const DISTANCE_OPTIONS = process.env.REACT_APP_DISTANCE_OPTIONS;\r\n\r\nexport const APP_NAME = 'applynow';\r\n\r\nexport const MESSAGE_SUCCESS_STATUS_NOMENCLATURE = 'success';\r\nexport const MESSAGE_ERROR_STATUS_NOMENCLATURE = 'error';\r\n\r\nexport const TIMES = {\r\n MINUTE: '60000',\r\n HALF_MINUTE: '30000',\r\n QUARTER_MINUTE: '15000',\r\n SECOND: '1000',\r\n FIVE_MINUTES: '300000',\r\n MINUTES_2: '120000'\r\n};\r\n\r\nexport const UNKNOWN_ALERT_NOMENCLATURE = 0;\r\nexport const ERROR_ALERT_NOMENCLATURE = 1;\r\nexport const WARNING_ALERT_NOMENCLATURE = 2;\r\nexport const INFORMATION_ALERT_NOMENCLATURE = 3;\r\nexport const SUCCESS_ALERT_NOMENCLATURE = 4;\r\n\r\nexport const APPLICANT_PREFIX = 'applicant';\r\nexport const CO_APPLICANT_PREFIX = 'coApplicant';\r\nexport const SALES_REP_PREFIX = 'salesRep';\r\nexport const APPLICATION_DETAILS_PREFIX = 'applicationDetails';\r\n\r\nexport const BORROWER_NOMENCLATURE = '18';\r\nexport const COBORROWER_NOMENCLATURE = '28';\r\n\r\nexport const APPLY_FROM_DEALER_NOMENCLATURE = 1;\r\nexport const APPLY_FROM_CUSTOMER_NOMENCLATURE = 2;\r\nexport const APPLY_FROM_QR_CODE_NOMENCLATURE = 3;\r\nexport const APPLY_FROM_IDENTITY_VERIFICATION_NOMENCLATURE = 4;\r\nexport const APPLY_FROM_BD_CODE_NOMENCLATURE = 5;\r\nexport const APPLY_FROM_BE_CODE_NOMENCLATURE = 6;\r\n\r\nexport const GETTING_DATA_STATUS = {\r\n OFF: 'Off',\r\n IN_PROGRESS: 'In progress',\r\n COMPLETED: 'Completed'\r\n};\r\n\r\nexport const GETTING_DATA_COMPLETED_STATUS = 'Completed';\r\n\r\nexport const APPLICANT_TYPES = [BORROWER_NOMENCLATURE, COBORROWER_NOMENCLATURE];\r\n\r\nexport const APPLICANT_TITLE = {\r\n [BORROWER_NOMENCLATURE]: 'Applicant Information',\r\n [COBORROWER_NOMENCLATURE]: 'Co-Applicant Information'\r\n};\r\n\r\nexport const APPLICANT_NOMENCLATURE_PREFIX_MAP = {\r\n [BORROWER_NOMENCLATURE]: APPLICANT_PREFIX,\r\n [COBORROWER_NOMENCLATURE]: CO_APPLICANT_PREFIX\r\n};\r\n\r\nexport const legalLinks = [\r\n ROUTES.STATEMENT,\r\n ROUTES.DISCLOSURES,\r\n ROUTES.COPPA_DISCLOSURE,\r\n ROUTES.PRIVACY_POLICY,\r\n ROUTES.CONSUMER_RIGHTS_NOTICE\r\n];\r\n\r\nexport const legalLinksName = {\r\n [ROUTES.STATEMENT]:\r\n 'Service Finance’s Electronic Records Disclosure and Consent',\r\n [ROUTES.DISCLOSURES]: 'General Application Disclosures',\r\n [ROUTES.COPPA_DISCLOSURE]: 'COPPA Disclosure',\r\n [ROUTES.PRIVACY_POLICY]: 'Privacy Policy',\r\n [ROUTES.CONSUMER_RIGHTS_NOTICE]: 'Consumer Rights Notice'\r\n};\r\n\r\nexport const APPLY_FORM_RESULT_SUCCESS = 'Success';\r\nexport const APPLY_FORM_RESPONSE_COLOR_GREEN = 'GREEN';\r\nexport const APPLY_FORM_RESPONSE_COLOR_RED = 'RED';\r\nexport const APPLY_FORM_RESPONSE_COLOR_ORANGE = 'ORANGE';\r\nexport const APPLY_FORM_RESPONSE_COLOR_BLACK = 'BLACK';\r\n\r\nexport const RESET_APP = 'applynow/App/RESET_APP';\r\n\r\nexport const ADD_COAPPLICANT = 'applynow/App/ADD_COAPPLICANT';\r\nexport const SAVE_APPLY_FORM_VALUES = 'applynow/App/SAVE_APPLY_FORM_VALUES';\r\n\r\nexport const VALIDATE_ADDRESS = 'applynow/App/VALIDATE_ADDRESS';\r\nexport const VALIDATE_ADDRESS_SUCCESS = 'applynow/App/VALIDATE_ADDRESS_SUCCESS';\r\nexport const VALIDATE_ADDRESS_FAILED = 'applynow/App/VALIDATE_ADDRESS_FAILED';\r\n\r\nexport const SUBMIT_APPLY_FORM = 'applynow/App/SUBMIT_APPLY_FORM';\r\nexport const SUBMIT_APPLY_FORM_SUCCESS =\r\n 'applynow/App/SUBMIT_APPLY_FORM_SUCCESS';\r\nexport const SUBMIT_APPLY_FORM_FAILED = 'applynow/App/SUBMIT_APPLY_FORM_FAILED';\r\n\r\nexport const SHOW_ADDRESS_VALIDATION = 'applynow/App/SHOW_ADDRESS_VALIDATION';\r\nexport const RESET_VALIDATED_ADDRESS = 'applynow/App/RESET_VALIDATED_ADDRESS';\r\nexport const CONFIRMED_ADDRESSES = 'applynow/App/CONFIRMED_ADDRESSES';\r\n\r\nexport const RESET_RESULTS = 'applynow/App/RESET_RESULTS';\r\n\r\nexport const GET_VERIFY_PRODUCT_BY_DEALER =\r\n 'applynow/App/GET_VERIFY_PRODUCT_BY_DEALER';\r\nexport const GET_VERIFY_PRODUCT_BY_DEALER_SUCCESS =\r\n 'applynow/App/GET_VERIFY_PRODUCT_BY_DEALER_SUCCESS';\r\nexport const GET_VERIFY_PRODUCT_BY_DEALER_FAILED =\r\n 'applynow/App/GET_VERIFY_PRODUCT_BY_DEALER_FAILED';\r\n\r\nexport const PUT_VERIFY_PRODUCT_BY_DEALER =\r\n 'applynow/App/PUT_VERIFY_PRODUCT_BY_DEALER';\r\nexport const PUT_VERIFY_PRODUCT_BY_DEALER_SUCCESS =\r\n 'applynow/App/PUT_VERIFY_PRODUCT_BY_DEALER_SUCCESS';\r\nexport const PUT_VERIFY_PRODUCT_BY_DEALER_FAILED =\r\n 'applynow/App/PUT_VERIFY_PRODUCT_BY_DEALER_FAILED';\r\n\r\nexport const ENTER_APPLICANT_DATA_MANUALLY =\r\n 'applynow/App/ENTER_APPLICANT_DATA_MANUALLY';\r\n\r\nexport const SKIP_INPUT_FORM = 'applynow/App/SKIP_INPUT_FORM';\r\n\r\nexport const GET_CUSTOMER_IDENTITY = 'applynow/App/GET_CUSTOMER_IDENTITY';\r\nexport const GET_CUSTOMER_IDENTITY_SUCCESS =\r\n 'applynow/App/GET_CUSTOMER_IDENTITY_SUCCESS';\r\nexport const GET_CUSTOMER_IDENTITY_DONE =\r\n 'applynow/App/GET_CUSTOMER_IDENTITY_DONE';\r\nexport const GET_CUSTOMER_IDENTITY_STOP =\r\n 'applynow/App/GET_CUSTOMER_IDENTITY_STOP';\r\nexport const GET_CUSTOMER_IDENTITY_FAILED =\r\n 'applynow/App/GET_CUSTOMER_IDENTITY_FAILED';\r\nexport const SAVE_CUSTOMER_IDENTITY_ADDRESS =\r\n 'applynow/App/SAVE_CUSTOMER_IDENTITY_ADDRESS';\r\n\r\nexport const STATUS_NONE = 0;\r\nexport const STATUS_CREATE = 1;\r\nexport const STATUS_AUTH_PENDING = 2;\r\nexport const STATUS_SMS_SEND = 3;\r\nexport const STATUS_AUTH_COMPLETED = 4;\r\nexport const STATUS_AUTH_FAIL_BY_PATH = 5;\r\nexport const STATUS_SEARCHING = 6;\r\nexport const STATUS_NOT_ELEGIBLE = 7;\r\nexport const STATUS_COMPLETED = 8;\r\n\r\nexport const IN_PROGRESS_STATUS_STARTING_TOOLTIP_TEXT = {\r\n title: 'Starting the process to find your information.',\r\n subtitle: 'Please wait a few seconds.'\r\n};\r\n\r\nexport const IN_PROGRESS_STATUS_UNKNOWN_TOOLTIP_TEXT = {\r\n title: `We're currently unable to determine the status of your information request.`,\r\n subtitle: 'Please enter the information manually or contact us.'\r\n};\r\n\r\nexport const IN_PROGRESS_STATUS_TOOLTIP_TEXT = {\r\n [STATUS_NONE]: {\r\n title: 'The status of your information request is currently unknown.',\r\n subtitle: 'Please contact us.'\r\n },\r\n [STATUS_CREATE]: {\r\n title: 'We are initiating the process to search for your information.',\r\n subtitle: 'Please wait a few seconds.'\r\n },\r\n [STATUS_AUTH_PENDING]: {\r\n title: 'Verification of your mobile carrier information is required.',\r\n subtitle: 'A text message with a link was just sent to the phone provided.'\r\n },\r\n [STATUS_SMS_SEND]: {\r\n title: 'We need to confirm your mobile carrier details.',\r\n subtitle: 'Please check the message sent to the phone provided.'\r\n },\r\n [STATUS_AUTH_FAIL_BY_PATH]: {\r\n title:\r\n 'The verification sent to your provided phone number has encountered an issue.',\r\n subtitle: 'Please try again or contact us.'\r\n },\r\n [STATUS_SEARCHING]: {\r\n title: 'We are currently processing your information.',\r\n subtitle: 'Please wait a few seconds.'\r\n },\r\n [STATUS_NOT_ELEGIBLE]: {\r\n title: `We couldn't locate any information associated with your data.`,\r\n subtitle: 'Enter the information manually.'\r\n },\r\n [STATUS_COMPLETED]: {\r\n title: 'Your information search has been successfully completed.',\r\n subtitle: 'Thank you very much for your patience.'\r\n }\r\n};\r\n\r\nexport const IN_PROGRESS_STATES = [\r\n STATUS_CREATE,\r\n STATUS_AUTH_PENDING,\r\n STATUS_SMS_SEND,\r\n STATUS_AUTH_COMPLETED,\r\n STATUS_SEARCHING\r\n];\r\n\r\nexport const COMPLETED_STATES = [\r\n STATUS_NONE,\r\n STATUS_AUTH_FAIL_BY_PATH,\r\n STATUS_NOT_ELEGIBLE,\r\n STATUS_COMPLETED\r\n];\r\n\r\nexport const SET_CUSTOMER_IDENTITY_ERROR_MESSAGE =\r\n 'applynow/App/SET_CUSTOMER_IDENTITY_ERROR_MESSAGE';\r\n\r\nexport const RESET_DATA_CUSTOMER_IDENTITY =\r\n 'applynow/App/RESET_DATA_CUSTOMER_IDENTITY';\r\n\r\nexport const PUT_MOBILE_VERIFICATION_AS_SUCCESSFUL =\r\n 'applynow/App/PUT_MOBILE_VERIFICATION_AS_SUCCESSFUL';\r\nexport const PUT_MOBILE_VERIFICATION_AS_SUCCESSFUL_SUCCESS =\r\n 'applynow/App/PUT_MOBILE_VERIFICATION_AS_SUCCESSFUL_SUCCESS';\r\nexport const PUT_MOBILE_VERIFICATION_AS_SUCCESSFUL_FAILED =\r\n 'applynow/App/PUT_MOBILE_VERIFICATION_AS_SUCCESSFUL_FAILED';\r\nexport const SET_VERIFICATION_PARAMS = 'applynow/App/SET_VERIFICATION_PARAMS';\r\nexport const RESET_VERIFICATION_PARAMS =\r\n 'applynow/App/RESET_VERIFICATION_PARAMS';\r\n\r\nexport const SHOW_ADDRESS_LIST_TO_SELECT =\r\n 'applynow/App/SHOW_ADDRESS_LIST_TO_SELECT';\r\nexport const CLOSE_ADDRESS_LIST_TO_SELECT =\r\n 'applynow/App/CLOSE_ADDRESS_LIST_TO_SELECT';\r\n\r\nexport const SHOW_ADD_COAPPLICANT_MODAL =\r\n 'applynow/App/SHOW_ADD_COAPPLICANT_MODAL';\r\n\r\nexport const NOT_CALLED = 'NOT_CALLED';\r\nexport const CALLING = 'CALLING';\r\nexport const CALLED_WITH_SUCCESS = 'CALLED_WITH_SUCCESS';\r\nexport const CALLED_WITH_ERROR = 'CALLED_WITH_ERROR';\r\nexport const CALLED_WITH_SUCCESS_BUT_NOT_VERIFIED =\r\n 'CALLED_WITH_SUCCESS_BUT_NOT_VERIFIED';\r\nexport const LOADING_STATES = [NOT_CALLED, CALLING];\r\n\r\nexport const SET_FOR_CUSTOMER = 'applynow/App/SET_FOR_CUSTOMER';\r\nexport const SET_FOR_QR_CODE = 'applynow/App/SET_FOR_QR_CODE';\r\nexport const SET_FOR_BD_CODE = 'applynow/App/SET_FOR_BD_CODE';\r\nexport const SET_FOR_BE_CODE = 'applynow/App/SET_FOR_BE_CODE';\r\n\r\nexport const SET_FOR_VERIFICATION_CODE =\r\n 'applynow/App/SET_FOR_VERIFICATION_CODE';\r\n\r\nexport const STOPPED_CURRENT_APPLICATION =\r\n 'applynow/App/STOPPED_CURRENT_APPLICATION';\r\n\r\nexport const INIT_RETRIEVE_APPLICATION_DATA =\r\n 'applynow/App/INIT_RETRIEVE_APPLICATION_DATA';\r\n\r\nexport const INIT_RETRIEVE_APPLICATION_DATA_SUCCESS =\r\n 'applynow/App/INIT_RETRIEVE_APPLICATION_SUCCESS';\r\n\r\nexport const INIT_RETRIEVE_APPLICATION_DATA_FAILED =\r\n 'applynow/App/INIT_RETRIEVE_APPLICATION_FAILED';\r\n\r\nexport const SAVE_PREVIOUS_DATA = 'applynow/App/SAVE_PREVIOUS_DATA';\r\nexport const SET_ERROR_MESSAGE = 'applynow/App/SET_ERROR_MESSAGE';\r\nexport const SET_MESSAGE = 'applynow/App/SET_MESSAGE';\r\nexport const SET_APPLICANT_CONSENT_APPROVED =\r\n 'applynow/App/SET_APPLICANT_CONSENT_APPROVED';\r\n\r\n//call report\r\nexport const GET_CALL_REPORT = 'applynow/App/GET_CALL_REPORT';\r\nexport const RELOAD_CALL_REPORT = 'applynow/App/RELOAD_CALL_REPORT';\r\nexport const GET_CALL_REPORT_SUCCESS = 'applynow/App/GET_CALL_REPORT_SUCCESS';\r\nexport const GET_CALL_REPORT_FAILED = 'applynow/App/GET_CALL_REPORT_FAILED';\r\n\r\nexport const SET_SEARCH_TEXT = 'applynow/App/SET_SEARCH_TEXT';\r\nexport const SET_ASSOCIATION_FORM_INFO =\r\n 'applynow/App/SET_ASSOCIATION_FORM_INFO';\r\nexport const SET_CURRENT_ASSOCIATION_NUMBER =\r\n 'applynow/App/SET_CURRENT_ASSOCIATION_NUMBER';\r\n\r\nexport const ASSOCIATION_SERVICE_NAME = 'DealersByZipCodeAndAss';\r\nexport const CALL_REPORT_OPERATOR_TYPE = {\r\n EQUAL_TO: 1,\r\n NOT_EQUAL_TO: 2,\r\n GREATER_THAN: 3,\r\n LESS_THAN: 4,\r\n GREATER_THAN_OR_EQUAL_TO: 5,\r\n LESS_THAN_OR_EQUAL_TO: 6,\r\n IN: 7,\r\n NOT_IN: 19,\r\n STARTS_WITH: 8,\r\n ENDS_WITH: 9,\r\n CONTAINS: 10,\r\n BETWEEN: 11,\r\n DOES_NOT_CONTAIN: 12,\r\n IS_EMPTY: 13,\r\n IS_NOT_EMPTY: 14,\r\n IS_NOT_NULL: 15,\r\n IS_NOT_NULL_NOR_WHITE_SPACE: 16,\r\n IS_NULL: 17,\r\n IS_NULL_OR_WHITE_SPACE: 18\r\n};\r\n\r\nexport const DEFAULT_PAGE_SIZE = 5;\r\nexport const DEFAULT_PAGE = 1;\r\nexport const PAGINATION_CONFIG = {\r\n position: ['topRight'],\r\n size: 'small',\r\n showSizeChanger: true,\r\n pageSizeOptions: ['5', '10', '20', '30', '40', '50']\r\n};\r\n\r\nexport const GET_MAP_BY_COORDINATES = 'applynow/App/GET_MAP_BY_COORDINATES';\r\nexport const CLOSE_ADDRESS_MAP = 'applynow/App/CLOSE_ADDRESS_MAP';\r\n","export function makeActionCreator(type, ...argNames) {\r\n return (...args) => {\r\n const action = { type };\r\n argNames.forEach((arg, index) => {\r\n action[argNames[index]] = args[index];\r\n });\r\n return action;\r\n };\r\n}\r\n","import { makeActionCreator } from 'redux/utils';\r\nimport {\r\n RESET_APP,\r\n ADD_COAPPLICANT,\r\n SUBMIT_APPLY_FORM,\r\n SUBMIT_APPLY_FORM_SUCCESS,\r\n SUBMIT_APPLY_FORM_FAILED,\r\n VALIDATE_ADDRESS,\r\n VALIDATE_ADDRESS_SUCCESS,\r\n VALIDATE_ADDRESS_FAILED,\r\n RESET_VALIDATED_ADDRESS,\r\n SAVE_APPLY_FORM_VALUES,\r\n SHOW_ADDRESS_VALIDATION,\r\n CONFIRMED_ADDRESSES,\r\n RESET_RESULTS,\r\n GET_VERIFY_PRODUCT_BY_DEALER,\r\n GET_VERIFY_PRODUCT_BY_DEALER_SUCCESS,\r\n GET_VERIFY_PRODUCT_BY_DEALER_FAILED,\r\n PUT_VERIFY_PRODUCT_BY_DEALER,\r\n PUT_VERIFY_PRODUCT_BY_DEALER_SUCCESS,\r\n PUT_VERIFY_PRODUCT_BY_DEALER_FAILED,\r\n ENTER_APPLICANT_DATA_MANUALLY,\r\n GET_CUSTOMER_IDENTITY,\r\n GET_CUSTOMER_IDENTITY_SUCCESS,\r\n GET_CUSTOMER_IDENTITY_FAILED,\r\n SET_CUSTOMER_IDENTITY_ERROR_MESSAGE,\r\n GET_CUSTOMER_IDENTITY_DONE,\r\n GET_CUSTOMER_IDENTITY_STOP,\r\n PUT_MOBILE_VERIFICATION_AS_SUCCESSFUL,\r\n PUT_MOBILE_VERIFICATION_AS_SUCCESSFUL_SUCCESS,\r\n PUT_MOBILE_VERIFICATION_AS_SUCCESSFUL_FAILED,\r\n SHOW_ADDRESS_LIST_TO_SELECT,\r\n CLOSE_ADDRESS_LIST_TO_SELECT,\r\n SAVE_CUSTOMER_IDENTITY_ADDRESS,\r\n SHOW_ADD_COAPPLICANT_MODAL,\r\n SET_VERIFICATION_PARAMS,\r\n SET_FOR_CUSTOMER,\r\n SET_FOR_QR_CODE,\r\n SET_FOR_VERIFICATION_CODE,\r\n RESET_DATA_CUSTOMER_IDENTITY,\r\n STOPPED_CURRENT_APPLICATION,\r\n INIT_RETRIEVE_APPLICATION_DATA,\r\n INIT_RETRIEVE_APPLICATION_DATA_SUCCESS,\r\n INIT_RETRIEVE_APPLICATION_DATA_FAILED,\r\n SAVE_PREVIOUS_DATA,\r\n SET_ERROR_MESSAGE,\r\n SET_APPLICANT_CONSENT_APPROVED,\r\n SET_MESSAGE,\r\n SET_FOR_BD_CODE,\r\n RESET_VERIFICATION_PARAMS,\r\n SKIP_INPUT_FORM,\r\n SET_FOR_BE_CODE,\r\n GET_CALL_REPORT,\r\n GET_CALL_REPORT_SUCCESS,\r\n GET_CALL_REPORT_FAILED,\r\n RELOAD_CALL_REPORT,\r\n SET_SEARCH_TEXT,\r\n SET_ASSOCIATION_FORM_INFO,\r\n SET_CURRENT_ASSOCIATION_NUMBER,\r\n GET_MAP_BY_COORDINATES,\r\n GET_MAP_BY_COORDINATES_SUCCESS,\r\n GET_MAP_BY_COORDINATES_FAILED,\r\n CLOSE_ADDRESS_MAP\r\n} from './constants';\r\n\r\nexport const resetApp = makeActionCreator(RESET_APP);\r\n\r\nexport const addCoApplicant = makeActionCreator(ADD_COAPPLICANT, 'payload');\r\n\r\nexport const saveApplyFormValues = makeActionCreator(\r\n SAVE_APPLY_FORM_VALUES,\r\n 'payload'\r\n);\r\n\r\nexport const submitApplyForm = makeActionCreator(SUBMIT_APPLY_FORM);\r\nexport const submitApplyFormSuccess = makeActionCreator(\r\n SUBMIT_APPLY_FORM_SUCCESS,\r\n 'payload'\r\n);\r\nexport const submitApplyFormFailed = makeActionCreator(\r\n SUBMIT_APPLY_FORM_FAILED,\r\n 'error'\r\n);\r\n\r\nexport const validateAddress = makeActionCreator(VALIDATE_ADDRESS, 'payload');\r\nexport const validateAddressSuccess = makeActionCreator(\r\n VALIDATE_ADDRESS_SUCCESS,\r\n 'payload'\r\n);\r\nexport const validateAddressFailed = makeActionCreator(\r\n VALIDATE_ADDRESS_FAILED,\r\n 'error'\r\n);\r\n\r\nexport const showAddressValidation = makeActionCreator(\r\n SHOW_ADDRESS_VALIDATION,\r\n 'payload'\r\n);\r\nexport const resetValidatedAddress = makeActionCreator(RESET_VALIDATED_ADDRESS);\r\nexport const setConfirmedAddresseses = makeActionCreator(\r\n CONFIRMED_ADDRESSES,\r\n 'payload'\r\n);\r\n\r\nexport const resetResults = makeActionCreator(RESET_RESULTS);\r\n\r\nexport const getVerifyProductByDealer = makeActionCreator(\r\n GET_VERIFY_PRODUCT_BY_DEALER,\r\n 'payload'\r\n);\r\nexport const getVerifyProductByDealerSuccess = makeActionCreator(\r\n GET_VERIFY_PRODUCT_BY_DEALER_SUCCESS,\r\n 'payload'\r\n);\r\nexport const getVerifyProductByDealerFailed = makeActionCreator(\r\n GET_VERIFY_PRODUCT_BY_DEALER_FAILED,\r\n 'error'\r\n);\r\n\r\nexport const putVerifyProductByDealer = makeActionCreator(\r\n PUT_VERIFY_PRODUCT_BY_DEALER,\r\n 'payload'\r\n);\r\nexport const putVerifyProductByDealerSuccess = makeActionCreator(\r\n PUT_VERIFY_PRODUCT_BY_DEALER_SUCCESS,\r\n 'payload'\r\n);\r\nexport const putVerifyProductByDealerFailed = makeActionCreator(\r\n PUT_VERIFY_PRODUCT_BY_DEALER_FAILED,\r\n 'error'\r\n);\r\n\r\nexport const enterApplicantDataManually = makeActionCreator(\r\n ENTER_APPLICANT_DATA_MANUALLY,\r\n 'payload'\r\n);\r\n\r\nexport const skipInputForm = makeActionCreator(SKIP_INPUT_FORM);\r\n\r\nexport const getCustomerIdentity = makeActionCreator(\r\n GET_CUSTOMER_IDENTITY,\r\n 'payload'\r\n);\r\n\r\nexport const getCustomerIdentitySuccess = makeActionCreator(\r\n GET_CUSTOMER_IDENTITY_SUCCESS,\r\n 'payload'\r\n);\r\n\r\nexport const getCustomerIdentityDone = makeActionCreator(\r\n GET_CUSTOMER_IDENTITY_DONE,\r\n 'payload'\r\n);\r\n\r\nexport const getCustomerIdentityStop = makeActionCreator(\r\n GET_CUSTOMER_IDENTITY_STOP,\r\n 'payload'\r\n);\r\n\r\nexport const getCustomerIdentityFailed = makeActionCreator(\r\n GET_CUSTOMER_IDENTITY_FAILED,\r\n 'payload'\r\n);\r\n\r\nexport const saveCustomerIdentityAddress = makeActionCreator(\r\n SAVE_CUSTOMER_IDENTITY_ADDRESS,\r\n 'payload'\r\n);\r\n\r\nexport const resetDataCustomerIdentity = makeActionCreator(\r\n RESET_DATA_CUSTOMER_IDENTITY,\r\n 'payload'\r\n);\r\n\r\nexport const setCustomerIdentityErrorMessage = makeActionCreator(\r\n SET_CUSTOMER_IDENTITY_ERROR_MESSAGE,\r\n 'payload'\r\n);\r\n\r\nexport const putMobileVerificationAsSuccessful = makeActionCreator(\r\n PUT_MOBILE_VERIFICATION_AS_SUCCESSFUL,\r\n 'payload'\r\n);\r\n\r\nexport const putMobileVerificationAsSuccessfulSuccess = makeActionCreator(\r\n PUT_MOBILE_VERIFICATION_AS_SUCCESSFUL_SUCCESS,\r\n 'payload'\r\n);\r\n\r\nexport const putMobileVerificationAsSuccessfulFailed = makeActionCreator(\r\n PUT_MOBILE_VERIFICATION_AS_SUCCESSFUL_FAILED,\r\n 'error'\r\n);\r\n\r\nexport const showAddressListToSelect = makeActionCreator(\r\n SHOW_ADDRESS_LIST_TO_SELECT,\r\n 'payload'\r\n);\r\n\r\nexport const closeAddressListToSelect = makeActionCreator(\r\n CLOSE_ADDRESS_LIST_TO_SELECT\r\n);\r\n\r\nexport const showCoApplicantModal = makeActionCreator(\r\n SHOW_ADD_COAPPLICANT_MODAL,\r\n 'payload'\r\n);\r\n\r\nexport const setVerificationParams = makeActionCreator(\r\n SET_VERIFICATION_PARAMS,\r\n 'payload'\r\n);\r\nexport const resetVerificationParams = makeActionCreator(\r\n RESET_VERIFICATION_PARAMS\r\n);\r\n\r\nexport const setForCustomer = makeActionCreator(SET_FOR_CUSTOMER, 'payload');\r\nexport const setForQRCode = makeActionCreator(SET_FOR_QR_CODE, 'payload');\r\nexport const setForBdCode = makeActionCreator(SET_FOR_BD_CODE, 'payload');\r\nexport const setForBeCode = makeActionCreator(SET_FOR_BE_CODE, 'payload');\r\nexport const setForVerificationCode = makeActionCreator(\r\n SET_FOR_VERIFICATION_CODE,\r\n 'payload'\r\n);\r\n\r\nexport const stoppedCurrentApplication = makeActionCreator(\r\n STOPPED_CURRENT_APPLICATION\r\n);\r\n\r\nexport const initRetrieveApplicationData = makeActionCreator(\r\n INIT_RETRIEVE_APPLICATION_DATA,\r\n 'payload'\r\n);\r\n\r\nexport const initRetrieveApplicationDataSuccess = makeActionCreator(\r\n INIT_RETRIEVE_APPLICATION_DATA_SUCCESS,\r\n 'payload'\r\n);\r\n\r\nexport const initRetrieveApplicationDataFailed = makeActionCreator(\r\n INIT_RETRIEVE_APPLICATION_DATA_FAILED,\r\n 'payload'\r\n);\r\n\r\nexport const savePreviousData = makeActionCreator(\r\n SAVE_PREVIOUS_DATA,\r\n 'payload'\r\n);\r\n\r\nexport const setErrorMessage = makeActionCreator(SET_ERROR_MESSAGE, 'payload');\r\nexport const setMessage = makeActionCreator(SET_MESSAGE, 'payload');\r\nexport const setPhoneConsentApproved = makeActionCreator(\r\n SET_APPLICANT_CONSENT_APPROVED,\r\n 'payload'\r\n);\r\n//CALL REPORT\r\nexport const getCallReport = makeActionCreator(GET_CALL_REPORT, 'payload');\r\nexport const reloadCallReport = makeActionCreator(\r\n RELOAD_CALL_REPORT,\r\n 'payload'\r\n);\r\nexport const getCallReportSuccess = makeActionCreator(\r\n GET_CALL_REPORT_SUCCESS,\r\n 'payload'\r\n);\r\nexport const getCallReportFailed = makeActionCreator(\r\n GET_CALL_REPORT_FAILED,\r\n 'payload'\r\n);\r\n\r\nexport const setSearchText = makeActionCreator(SET_SEARCH_TEXT, 'payload');\r\nexport const setAssociationFormInfo = makeActionCreator(\r\n SET_ASSOCIATION_FORM_INFO,\r\n 'payload'\r\n);\r\nexport const setCurrentAssociationNumber = makeActionCreator(\r\n SET_CURRENT_ASSOCIATION_NUMBER,\r\n 'payload'\r\n);\r\n\r\nexport const getMapByCoordinates = makeActionCreator(\r\n GET_MAP_BY_COORDINATES,\r\n 'payload'\r\n);\r\n\r\nexport const closeAddressMap = makeActionCreator(CLOSE_ADDRESS_MAP, 'payload');\r\n","import { isEmpty, isNaN, isNumber } from 'lodash';\r\nimport moment from 'moment';\r\nimport {\r\n APPLICANT_NOMENCLATURE_PREFIX_MAP,\r\n APPLICANT_PREFIX,\r\n ASSOCIATION_SERVICE_NAME,\r\n BORROWER_NOMENCLATURE,\r\n CALL_REPORT_OPERATOR_TYPE,\r\n COBORROWER_NOMENCLATURE\r\n} from 'redux/app/constants';\r\nimport { DATE_FORMAT } from 'theme/variables';\r\n\r\nexport function isBlank(value) {\r\n return (isEmpty(value) && !isNumber(value)) || isNaN(value);\r\n}\r\n\r\nexport function formatCustomer(fieldsPrefix, values) {\r\n if (!Object.keys(values).some(prop => prop.includes(fieldsPrefix))) {\r\n return null;\r\n }\r\n\r\n const DOB = values[`${fieldsPrefix}DateOfBirth`]\r\n ? values[`${fieldsPrefix}DateOfBirth`].format(DATE_FORMAT)\r\n : null;\r\n\r\n const FirstName = values[`${fieldsPrefix}FirstName`] || null;\r\n const LastName = values[`${fieldsPrefix}LastName`] || null;\r\n\r\n return {\r\n FirstName,\r\n LastName,\r\n PhoneNumber: values[`${fieldsPrefix}PhoneNumber`],\r\n SSN: values[`${fieldsPrefix}SSN`],\r\n DOB\r\n };\r\n}\r\n\r\nexport function formatApplicant(fieldsPrefix, values) {\r\n if (!Object.keys(values).some(prop => prop.includes(fieldsPrefix))) {\r\n return null;\r\n }\r\n\r\n const MiddleInitial = values[`${fieldsPrefix}MI`]\r\n ? values[`${fieldsPrefix}MI`]\r\n : '';\r\n\r\n const PhoneNumber = values[`${fieldsPrefix}PhoneNumber`];\r\n\r\n return {\r\n FirstName: values[`${fieldsPrefix}FirstName`],\r\n MiddleInitial,\r\n LastName: values[`${fieldsPrefix}LastName`],\r\n DateOfBirth: values[`${fieldsPrefix}DateOfBirth`].format(DATE_FORMAT),\r\n ...(PhoneNumber !== '___-___-____' && { PhoneNumber }),\r\n Email: values[`${fieldsPrefix}EmailAddress`],\r\n SSN: values[`${fieldsPrefix}SSN`],\r\n ApplicantType:\r\n fieldsPrefix === APPLICANT_PREFIX\r\n ? BORROWER_NOMENCLATURE\r\n : COBORROWER_NOMENCLATURE,\r\n ResidencyType: values[`${fieldsPrefix}Citizenship`],\r\n Address: {\r\n StreetAddress: values[`${fieldsPrefix}StreetAddress`],\r\n StreetAddress2: values[`${fieldsPrefix}UnitApt`],\r\n City: values[`${fieldsPrefix}City`],\r\n State: values[`${fieldsPrefix}State`],\r\n Zip: values[`${fieldsPrefix}ZipCode`]\r\n },\r\n Employer: {\r\n Income: values[`${fieldsPrefix}MonthlyIncome`]\r\n }\r\n };\r\n}\r\n\r\nexport function formatSalesMan(fieldsPrefix, values) {\r\n var Salesman = {\r\n name: values[`${fieldsPrefix}Name`],\r\n email: values[`${fieldsPrefix}EmailAddress`],\r\n phone: values[`${fieldsPrefix}PhoneNumber`]\r\n };\r\n\r\n return !isEmpty(Salesman) ? { Salesman } : null;\r\n}\r\n\r\nexport function formatApplicationDetails(fieldsPrefix, values) {\r\n return {\r\n RequestedAmount: values[`${fieldsPrefix}RequestedAmount`],\r\n TypeOfLoan: values[`${fieldsPrefix}TypeOfLoan`]\r\n };\r\n}\r\n\r\nexport function formatAddressForValidation(fieldsPrefix, values) {\r\n if (!Object.keys(values).some(prop => prop.includes(fieldsPrefix))) {\r\n return null;\r\n }\r\n\r\n return {\r\n address1: values[`${fieldsPrefix}StreetAddress`],\r\n address2: isEmpty(values[`${fieldsPrefix}UnitApt`])\r\n ? ''\r\n : values[`${fieldsPrefix}UnitApt`],\r\n city: values[`${fieldsPrefix}City`],\r\n state: values[`${fieldsPrefix}State`],\r\n zip: values[`${fieldsPrefix}ZipCode`]\r\n };\r\n}\r\n\r\n/**\r\n * Formats address as HTML\r\n * @param {object} address\r\n * @returns\r\n */\r\nexport function formatAddressAsHTML(address) {\r\n if (!address) {\r\n return null;\r\n }\r\n\r\n const { address1, address2, city, state, zip } = address;\r\n\r\n const line1 = (address1, address2) => {\r\n return `${\r\n address1 ? address1 : ''\r\n } ${address2 ? address2 : ''} `;\r\n };\r\n\r\n const line2 = (city, state) => {\r\n return `${\r\n city ? city : ''\r\n } ${state ? state : ''} `;\r\n };\r\n\r\n return `${address1 || address2 ? line1(address1, address2) : ''}\r\n ${city || state ? line2(city, state) : ''}\r\n ${zip ? `${zip}` : ''}\r\n `;\r\n}\r\n\r\nexport const formatPreviousCustomerIdentity = customerIdentity => {\r\n const { applicantType, identify: customerIdentify } = customerIdentity;\r\n const { firstName, lastName, dob, ssn, phoneNumber } = customerIdentify || {};\r\n\r\n const prefix = APPLICANT_NOMENCLATURE_PREFIX_MAP[applicantType];\r\n\r\n return {\r\n ...(firstName && { [`${prefix}FirstName`]: firstName }),\r\n ...(lastName && { [`${prefix}LastName`]: lastName }),\r\n ...(dob && {\r\n [`${prefix}DateOfBirth`]: dob ? moment(dob) : ''\r\n }),\r\n ...(ssn && { [`${prefix}SSN`]: `XXX-XX-${ssn}` }),\r\n ...(phoneNumber && { [`${prefix}PhoneNumber`]: phoneNumber })\r\n };\r\n};\r\n\r\nexport const formatCustomerIdentity = customerIdentity => {\r\n const { applicantType, applicant: customerApplicant } = customerIdentity;\r\n\r\n const {\r\n firstName,\r\n middleInitial,\r\n lastName,\r\n dateOfBirth,\r\n ssn,\r\n residencyType: customerResidencyType,\r\n phoneNumber,\r\n employer: customerEmployer,\r\n email,\r\n address: customerAddress\r\n } = customerApplicant || {};\r\n const { Id: residencyType = '' } = customerResidencyType || {};\r\n const { income: monthlyIncome = 0 } = customerEmployer || {};\r\n\r\n const prefix = APPLICANT_NOMENCLATURE_PREFIX_MAP[applicantType];\r\n\r\n return {\r\n ...(firstName && { [`${prefix}FirstName`]: firstName }),\r\n ...(middleInitial && { [`${prefix}MI`]: middleInitial }),\r\n ...(lastName && { [`${prefix}LastName`]: lastName }),\r\n ...(dateOfBirth && {\r\n [`${prefix}DateOfBirth`]: dateOfBirth ? moment(dateOfBirth) : ''\r\n }),\r\n ...(email && { [`${prefix}EmailAddress`]: email }),\r\n ...(ssn && { [`${prefix}SSN`]: `XXX-XX-${ssn}` }),\r\n ...(residencyType && { [`${prefix}Citizenship`]: residencyType }),\r\n ...(phoneNumber && { [`${prefix}PhoneNumber`]: phoneNumber }),\r\n ...(monthlyIncome && { [`${prefix}MonthlyIncome`]: monthlyIncome }),\r\n ...formatCustomerIdentityAddress(applicantType, customerAddress || {})\r\n };\r\n};\r\n\r\nexport const formatCustomerIdentityAddress = (\r\n applicantType,\r\n customerAddress\r\n) => {\r\n const {\r\n address1: streetAddress,\r\n address2: unitApt,\r\n city,\r\n state,\r\n zip\r\n } = customerAddress || {};\r\n const prefix = APPLICANT_NOMENCLATURE_PREFIX_MAP[applicantType];\r\n\r\n return {\r\n ...(streetAddress && { [`${prefix}StreetAddress`]: streetAddress }),\r\n ...(unitApt && { [`${prefix}UnitApt`]: unitApt }),\r\n ...(city && { [`${prefix}City`]: city }),\r\n ...(state && { [`${prefix}State`]: state }),\r\n ...(zip && { [`${prefix}ZipCode`]: zip })\r\n };\r\n};\r\n\r\n/**\r\n * Encodes query data\r\n * @param {object} data\r\n * @returns {string}\r\n */\r\nexport function encodeQueryData(data) {\r\n const result = [];\r\n for (let d in data) {\r\n if (data[d] !== null && encodeURIComponent(data[d])) {\r\n result.push(encodeURIComponent(d) + '=' + encodeURIComponent(data[d]));\r\n }\r\n }\r\n\r\n return result.join('&');\r\n}\r\n\r\n//build association call report payload\r\nexport function buildAssociationCallReportPayload(\r\n zipCode,\r\n distance,\r\n associationNumber\r\n) {\r\n let payload = {};\r\n if (zipCode && distance && associationNumber) {\r\n payload = {\r\n serviceName: ASSOCIATION_SERVICE_NAME,\r\n params: {\r\n zipCode,\r\n associationNumber\r\n },\r\n search: {\r\n filterBy: [\r\n {\r\n name: 'Distance',\r\n operator: CALL_REPORT_OPERATOR_TYPE.GREATER_THAN_OR_EQUAL_TO,\r\n value: distance * -1,\r\n group: 0\r\n },\r\n {\r\n name: 'Distance',\r\n operator: CALL_REPORT_OPERATOR_TYPE.LESS_THAN_OR_EQUAL_TO,\r\n value: distance,\r\n group: 1\r\n }\r\n // {\r\n // name: 'Distance',\r\n // operator: CALL_REPORT_OPERATOR_TYPE.LESS_THAN_OR_EQUAL_TO,\r\n // value: distance,\r\n // group: 0\r\n // }\r\n ]\r\n }\r\n };\r\n }\r\n return payload;\r\n}\r\n","export const BASE_URL = process.env.REACT_APP_API_SFC_PATH;\r\nexport const BASE_URL_HEIMDAL = process.env.REACT_APP_API_HEIMDAL_PATH;\r\nexport const GOOGLE_API_KEY = process.env.REACT_APP_GOOGLE_API_KEY;\r\n//export const BASE_URL = 'https://sfcapitest.svcfin.com/api';\r\nexport const RESOURCE_BASE_URL = process.env.REACT_APP_RESOURCES_URL;\r\nexport const APPLY_DEALER_AUTH_BASE_URL = `${process.env.REACT_APP_APPLY_URL}home/dealerAuthentication?key=1742219857&id=`;\r\n","import React from 'react';\r\nimport { notification } from 'antd';\r\nimport { v4 as uuidv4 } from 'uuid';\r\nimport { Modal } from 'antd';\r\n\r\nexport const ALERT_NOTIFICATION_TYPE = 'ALERT';\r\nexport const WARNING_NOTIFICATION_TYPE = 'WARNING';\r\nexport const SUCCESS_NOTIFICATION_TYPE = 'SUCCESS';\r\nexport const INFO_NOTIFICATION_TYPE = 'INFO';\r\n\r\nconst ALERT_STYLE =\r\n 'color: #e09999; background:#5f1d1d; border:1px solid #e09999; padding-left: 10px; padding-right: 10px;';\r\nconst WARNING_STYLE =\r\n 'color: #292925; background:orange; border:1px solid #292925; padding-left: 10px; padding-right: 10px;';\r\nconst SUCCESS_STYLE =\r\n 'color: white; background:green; border:1px solid white; padding-left: 10px; padding-right: 10px;';\r\nconst INFO_STYLE = 'padding-left: 10px; padding-right: 10px;';\r\n\r\nnotification.config({\r\n placement: 'topRight',\r\n duration: 5\r\n});\r\n\r\nexport const showAlertWithConfirm = description => {\r\n Modal.info({\r\n title: 'A problem has occurred.',\r\n content: (\r\n
\r\n {description ?

{description}

: null}\r\n

For more information contact us.

\r\n
\r\n ),\r\n onOk() {}\r\n });\r\n};\r\n\r\n/**\r\n * Shows success notification\r\n * @param {string} description\r\n * @param {string} message\r\n * @param {Number} duration\r\n */\r\n// export const showSuccessNotification = (\r\n// description = 'Operation performed successfully.',\r\n// message = 'Success',\r\n// duration = 5\r\n// ) => {\r\n// notification.success({\r\n// className: 'notification-success',\r\n// message,\r\n// description,\r\n// duration\r\n// });\r\n// };\r\nexport const showSuccessNotification = (params = {}) => {\r\n const { duration, actionTitle, successMessageDescription } = {\r\n duration: 3,\r\n ...params\r\n };\r\n const message = actionTitle || 'Success';\r\n const description =\r\n successMessageDescription ||\r\n `Operation ${actionTitle || ''} performed successfully.`;\r\n\r\n notification.success({\r\n message,\r\n description,\r\n className: 'notification-success',\r\n duration\r\n });\r\n};\r\n\r\n/**\r\n * Shows error notification\r\n * @param {string} description\r\n * @param {string} message\r\n * @param {Number} duration\r\n */\r\nexport const showErrorNotification = (\r\n description = 'Failed operation.',\r\n message = 'Error',\r\n duration = 5\r\n) => {\r\n notification.error({\r\n className: 'notification-error',\r\n message,\r\n description,\r\n duration\r\n });\r\n};\r\n\r\n/**\r\n * Shows info notification\r\n * @param {string} description\r\n * @param {string} message\r\n * @param {Number} duration\r\n * @param {string} key\r\n */\r\nexport const showInfoNotification = (\r\n description = 'Info message.',\r\n message = 'Info',\r\n duration = 15,\r\n key = uuidv4()\r\n) => {\r\n notification.info({\r\n className: 'notification-info',\r\n key,\r\n message,\r\n description,\r\n duration\r\n });\r\n};\r\n\r\n/**\r\n * Shows an error notification from response data\r\n * @param {Object} data\r\n */\r\nexport const showErrorNotificationFromResponse = (\r\n errorData,\r\n message = 'For more information contact us.'\r\n) => {\r\n if (!errorData) {\r\n showErrorNotification();\r\n return;\r\n }\r\n // Do not show for not authorized or not found errors\r\n if (errorData.isNotAuthorized || errorData.notFound) {\r\n // showErrorNotification(message, 'Sorry, an error has occurred', '');\r\n return;\r\n }\r\n if (errorData.showToUser) {\r\n showErrorNotification(errorData.message, errorData.title, '');\r\n return;\r\n } else {\r\n showErrorNotification(message, 'Sorry, an error has occurred', '');\r\n return;\r\n }\r\n};\r\n\r\nexport function logMessageInConsole(message, log_type) {\r\n let style_by_type = {};\r\n switch (log_type) {\r\n case ALERT_NOTIFICATION_TYPE:\r\n style_by_type = ALERT_STYLE;\r\n break;\r\n case WARNING_NOTIFICATION_TYPE:\r\n style_by_type = WARNING_STYLE;\r\n break;\r\n case SUCCESS_NOTIFICATION_TYPE:\r\n style_by_type = SUCCESS_STYLE;\r\n break;\r\n default:\r\n style_by_type = INFO_STYLE;\r\n break;\r\n }\r\n\r\n console.log(`%c${message}`, `${style_by_type}`);\r\n}\r\n","/// When an exception is thrown\r\nexport const EXCEPTION_NOMENCLATURE = 0;\r\n\r\n/// When a validation error is thrown\r\nexport const VALIDATION_NOMENCLATURE = 1;\r\n\r\n/// When there is an error in the data; but not detected in the validation; and the action cannot run correctly.\r\nexport const WRONG_DATA_NOMENCLATURE = 2;\r\n\r\n/// When the action cannot be executed because the data is locked.\r\nexport const LOCKING_NOMENCLATURE = 3;\r\n\r\n/// When any property of an object make impossible the execution of an action\r\nexport const WRONG_PROPERTIES_NOMENCLATURE = 4;\r\n\r\nexport const DUPLICATE_FOUND_NOMENCLATURE = 5;\r\n\r\n/// Error\r\nexport const TEXT_ERROR_NOMENCLATURE = 6;\r\n\r\n/// Unknown Error\r\nexport const UNKNOWN_ERROR_NOMENCLATURE = 7;\r\n\r\n/// Not Found\r\nexport const NOT_FOUND_NOMENCLATURE = 8;\r\n\r\n/// File lost\r\nexport const FILE_LOST_NOMENCLATURE = 9;\r\n\r\n/// Status Not Allowed\r\nexport const STATUS_NOT_ALLOWED_NOMENCLATURE = 10;\r\n\r\n/// Unstable Status\r\nexport const UNSTABLE_STATUS_NOMENCLATURE = 11;\r\n\r\n/// Unstable Status\r\nexport const FILE_ERROR_NOMENCLATURE = 12;\r\n\r\n/// Unstable Status\r\nexport const DATA_BASE_ERROR_NOMENCLATURE = 13;\r\n\r\n/// Unstable Status\r\nexport const NO_CONTENT_NOMENCLATURE = 14;\r\n\r\n/// Unstable Status\r\nexport const PROPERTIES_MISMATCH_NOMENCLATURE = 15;\r\n","import { push, getLocation } from 'connected-react-router';\r\n\r\nimport { showInfoNotification } from 'utils/notifications';\r\nimport {\r\n NOT_FOUND_NOMENCLATURE,\r\n UNKNOWN_ERROR_NOMENCLATURE\r\n} from './errorsNomenclature';\r\nimport store from 'redux/store';\r\n\r\nexport const HTTP_STATUS = {\r\n NOT_AUTHORIZED: 401,\r\n ACCESS_DENIED: 403,\r\n NOT_FOUND: 404,\r\n WRONG_DATA: 400,\r\n BAD_GATEWAY: 502,\r\n OK: 200,\r\n NO_CONTENT: 204\r\n};\r\n\r\n/**\r\n * Request interceptor\r\n * @param {Object} config\r\n */\r\n\r\nexport const requestInterceptor = user => config => {\r\n const newConfig = Object.assign({}, config);\r\n\r\n newConfig.headers.Authorization = `Bearer ${user.access_token}`;\r\n return newConfig;\r\n};\r\n\r\n/**\r\n * Success response interceptor\r\n * @param {Object} response\r\n */\r\nexport function responseOk(response) {\r\n response.isSuccess = true;\r\n return response; // No logic here\r\n}\r\n\r\n//show Report Error Button in Errors Notifications\r\nconst showReporErrorInNotifications = response => {\r\n if (!response) {\r\n return false;\r\n }\r\n\r\n const errorsTypes = store\r\n .getState()\r\n .getIn(['settings', 'applicationConfig', 'REPORT_ERRORS']);\r\n return (\r\n response.data &&\r\n errorsTypes &&\r\n errorsTypes\r\n .split(',')\r\n .map(errorType => errorType?.trim())\r\n .includes(response?.data?.type?.toString())\r\n );\r\n};\r\n\r\nconst formatError = error => {\r\n const { config, response } = error;\r\n const errorInfoSummary = {\r\n url: `${config.baseURL}${config.url}`,\r\n payload: config.data\r\n };\r\n\r\n if (response?.data?.type) {\r\n return {\r\n ...response.data,\r\n fromResponse: true\r\n };\r\n }\r\n return {\r\n ...errorInfoSummary,\r\n type: UNKNOWN_ERROR_NOMENCLATURE,\r\n fromResponse: false\r\n };\r\n};\r\n/**\r\n * Error response interceptor\r\n * @param {Object} store\r\n */\r\nexport const responseError = store => error => {\r\n const { response } = error;\r\n\r\n let errorInfoSummary = {};\r\n if (response && showReporErrorInNotifications(response)) {\r\n errorInfoSummary = formatError(error);\r\n }\r\n\r\n if (response?.status) {\r\n let message = {\r\n title: 'An error occured',\r\n description: 'The operation could not be performed.',\r\n isFromResponse: true\r\n };\r\n\r\n switch (response.status) {\r\n case HTTP_STATUS.NOT_AUTHORIZED:\r\n // const state = store.getState().toJS();\r\n // const location = getLocation(state);\r\n // store.dispatch(push('/', location));\r\n showInfoNotification(\r\n 'You are not authorized to access this page or your session has expired.',\r\n 'Info',\r\n 'unauthorized'\r\n );\r\n\r\n return Promise.reject({\r\n ...response,\r\n isNotAuthorized: true,\r\n errorInfoSummary\r\n });\r\n\r\n case HTTP_STATUS.ACCESS_DENIED:\r\n showInfoNotification(\r\n 'Sorry, you do not have access to this action.',\r\n 'Info',\r\n 'unauthorized'\r\n );\r\n // store.dispatch(push('/', location));\r\n return Promise.reject({\r\n ...response,\r\n isNotAuthorized: true,\r\n errorInfoSummary\r\n });\r\n\r\n case HTTP_STATUS.WRONG_DATA:\r\n if (response.data?.showToUser) {\r\n message.title = response.data.title;\r\n message.description = response.data.message;\r\n }\r\n\r\n const errorData = JSON.stringify(response.data);\r\n return Promise.reject({\r\n ...response.data,\r\n errorData,\r\n errorMessage: message,\r\n errorInfoSummary\r\n });\r\n\r\n case HTTP_STATUS.NOT_FOUND:\r\n if (!response.data) {\r\n return Promise.reject({\r\n ...response,\r\n notFound: true,\r\n errorInfoSummary\r\n });\r\n }\r\n\r\n if (response.data.type === NOT_FOUND_NOMENCLATURE) {\r\n response.data.notFound = true;\r\n }\r\n\r\n return Promise.reject({\r\n ...response.data,\r\n notFound: true,\r\n errorInfoSummary\r\n });\r\n\r\n default:\r\n break;\r\n }\r\n }\r\n return Promise.reject({ ...error, errorInfoSummary: formatError(error) });\r\n};\r\n","import axios from 'axios';\r\nimport store from 'redux/store';\r\nimport { BASE_URL, BASE_URL_HEIMDAL } from 'config/variables';\r\nimport { responseOk, responseError } from './interceptors';\r\n\r\nconst TIME_OUT = 60000;\r\nexport const TIME_OUT_MESSAGE = 'timeout';\r\n\r\n/**\r\n * Creates a cancellable axios instance\r\n * @param {object} config\r\n */\r\nfunction createCancelableAxios(config) {\r\n let cancel;\r\n const instance = axios.create({\r\n ...config,\r\n cancelToken: new axios.CancelToken(c => {\r\n cancel = c;\r\n })\r\n });\r\n\r\n instance.cancel = message => {\r\n cancel(message);\r\n instance.defaults.cancelToken = new axios.CancelToken(c => {\r\n cancel = c;\r\n });\r\n };\r\n\r\n return instance;\r\n}\r\n\r\naxios.defaults.timeoutErrorMessage = TIME_OUT_MESSAGE;\r\n\r\naxios.defaults.headers.post['Content-Type'] = 'application/json';\r\n\r\nconst regularAxios = createCancelableAxios({\r\n baseURL: BASE_URL,\r\n timeout: TIME_OUT\r\n});\r\nconst regularHeimdalAxios = createCancelableAxios({\r\n baseURL: BASE_URL_HEIMDAL,\r\n timeout: TIME_OUT\r\n});\r\nconst authorizedAxios = createCancelableAxios({\r\n baseURL: BASE_URL,\r\n timeout: TIME_OUT\r\n});\r\nconst userAxios = createCancelableAxios({\r\n baseURL: BASE_URL,\r\n timeout: TIME_OUT\r\n});\r\n\r\nregularAxios.defaults.headers.common['Content-Type'] = 'application/json';\r\nregularHeimdalAxios.defaults.headers.common['Content-Type'] =\r\n 'application/json';\r\nauthorizedAxios.defaults.headers.common['Content-Type'] = 'application/json';\r\nuserAxios.defaults.headers.common['Content-Type'] = 'application/json';\r\n\r\nauthorizedAxios.interceptors.request.use(config => {\r\n const currentToken = store.getState().getIn(['tokens', 'currentToken']);\r\n\r\n config.headers.Authorization = `Bearer ${currentToken}`;\r\n\r\n return config;\r\n});\r\n\r\nuserAxios.interceptors.request.use(config => {\r\n const userToken = store.getState().getIn(['tokens', 'userToken']);\r\n\r\n config.headers.Authorization = `Bearer ${userToken}`;\r\n\r\n return config;\r\n});\r\n\r\nexport const configAxiosInstances = store => {\r\n // Axios interceptors for all API request as an unauthenticated user\r\n regularAxios.interceptors.response.use(responseOk, responseError(store));\r\n regularHeimdalAxios.interceptors.response.use(\r\n responseOk,\r\n responseError(store)\r\n );\r\n authorizedAxios.interceptors.response.use(responseOk, responseError(store));\r\n userAxios.interceptors.response.use(responseOk, responseError(store));\r\n};\r\n\r\nconst isCancelledRequestException = axios.isCancel;\r\n\r\nexport {\r\n authorizedAxios,\r\n regularAxios,\r\n regularHeimdalAxios,\r\n userAxios,\r\n isCancelledRequestException\r\n};\r\n","import { encodeQueryData } from 'utils/functions';\r\nimport { regularAxios, authorizedAxios, regularHeimdalAxios } from './axios';\r\nimport mocks, {\r\n getVerifyProductByDealerNumberData,\r\n customerResponse,\r\n authPath\r\n} from './mocks';\r\nimport qs from 'qs';\r\nimport { callReportAssociation } from './mocks/callReport';\r\n\r\n/**\r\n * Posts pull check request\r\n *\r\n * @param {object} data\r\n * @returns {Promise}\r\n */\r\nexport const postPullCheckRequest = data => {\r\n return regularAxios.post('/softPullCheckV2', data, {\r\n headers: { nls: '30c9a298-ea5c-4005-96cf-fb1a373252f5' }\r\n });\r\n // return new Promise(resolve =>\r\n // setTimeout(() => {\r\n // resolve({\r\n // data: mocks,\r\n // isSuccess: true\r\n // });\r\n // }, 1000)\r\n // );\r\n};\r\n\r\n/**\r\n * Posts address for validation\r\n * @param {object} data\r\n * @returns {Promise}\r\n */\r\nexport const putAddressValidationVerify = data => {\r\n return regularHeimdalAxios.put('/v1/AddressValidation/Verify', data);\r\n};\r\n\r\n/**\r\n * Get data to validate dealer number\r\n * @param {int} dealerNumber\r\n * @returns {Promise}\r\n */\r\nexport const getVerifyProductByDealerNumber = (dealerNumber, applyFrom) => {\r\n return regularHeimdalAxios.get(\r\n `/v2/Dealer/VerifyProduct?DealerNumber=${dealerNumber}&applyFrom=${applyFrom}`\r\n );\r\n // return new Promise(resolve =>\r\n // setTimeout(() => {\r\n // resolve({\r\n // data: getVerifyProductByDealerNumberData,\r\n // isSuccess: false\r\n // });\r\n // }, 1000)\r\n // );\r\n};\r\n\r\n/**\r\n * Put data to validate dealer number\r\n * @param {Object} data\r\n * @returns {Promise}\r\n */\r\nexport const putVerifyProductByDealerNumber = data => {\r\n return regularHeimdalAxios.put(`/v2/Dealer/VerifyProduct`, data);\r\n // return new Promise(resolve =>\r\n // setTimeout(() => {\r\n // resolve({\r\n // data: getVerifyProductByDealerNumberData,\r\n // isSuccess: false\r\n // });\r\n // }, 1000)\r\n // );\r\n};\r\n\r\n/**\r\n * Put vfp token as notification to server that the verification was done\r\n * @param {String} vfp\r\n * @returns {Promise}\r\n */\r\nexport const putMobileVerificationAsSuccessfulRequest = ({\r\n requestId,\r\n vfp\r\n}) => {\r\n return regularHeimdalAxios.put(\r\n `/v1/CustomerIdentity/AuthPath?RequestId=${requestId}&vfp=${vfp}`\r\n );\r\n\r\n // return new Promise(resolve =>\r\n // setTimeout(() => {\r\n // resolve({\r\n // data: authPath,\r\n // isSuccess: true\r\n // });\r\n // }, 1000)\r\n // );\r\n};\r\n\r\n/**\r\n * Get customer data\r\n * @param {String} ssn\r\n * @param {String} phoneNumber\r\n * @param {Int} applicantType\r\n * @param {String} DOB\r\n * @param {String} requestId\r\n * @param {String} FirstName\r\n * @param {String} LastName\r\n * @param {Int} applyFrom\r\n * @param {Int} dealerNumber\r\n *\r\n * @returns {Promise}\r\n */\r\n\r\nexport const getCustomerIdentityRequest = payload => {\r\n const dataEncoded = encodeQueryData(payload);\r\n\r\n return regularHeimdalAxios.get(`/v1/CustomerIdentity?${dataEncoded}`);\r\n};\r\n\r\n//get call report\r\nexport const getCallReportRequest = payload => {\r\n return regularHeimdalAxios.post(`/v1/ReportInteg/CallReport`, payload);\r\n // return new Promise(resolve =>\r\n // setTimeout(() => {\r\n // resolve({\r\n // data: callReportAssociation,\r\n // isSuccess: true,\r\n // status: 200\r\n // // isSuccess: false,\r\n // // status: 400\r\n // });\r\n // }, 1000)\r\n // );\r\n};\r\n","import { createSelector } from 'reselect';\r\nimport moment from 'moment';\r\nimport {\r\n APPLICANT_PREFIX,\r\n APPLY_FORM_RESPONSE_COLOR_BLACK,\r\n APPLY_FORM_RESPONSE_COLOR_GREEN,\r\n APPLY_FORM_RESPONSE_COLOR_ORANGE,\r\n APPLY_FORM_RESPONSE_COLOR_RED,\r\n CO_APPLICANT_PREFIX,\r\n IN_PROGRESS_STATUS_STARTING_TOOLTIP_TEXT,\r\n IN_PROGRESS_STATUS_UNKNOWN_TOOLTIP_TEXT,\r\n IN_PROGRESS_STATUS_TOOLTIP_TEXT,\r\n APPLICANT_NOMENCLATURE_PREFIX_MAP,\r\n COBORROWER_NOMENCLATURE,\r\n CALLED_WITH_SUCCESS,\r\n CALLED_WITH_ERROR,\r\n NOT_CALLED,\r\n LOADING_STATES,\r\n APPLY_FROM_CUSTOMER_NOMENCLATURE,\r\n APPLY_FROM_QR_CODE_NOMENCLATURE,\r\n APPLY_FROM_BD_CODE_NOMENCLATURE,\r\n APPLY_FROM_BE_CODE_NOMENCLATURE,\r\n CALLED_WITH_SUCCESS_BUT_NOT_VERIFIED\r\n} from './constants';\r\nimport {\r\n formatAddressForValidation,\r\n formatAddressAsHTML\r\n} from 'utils/functions';\r\nimport { findKey, isEmpty } from 'lodash';\r\n\r\nconst RESULT_SUCCESS = [\r\n APPLY_FORM_RESPONSE_COLOR_GREEN,\r\n APPLY_FORM_RESPONSE_COLOR_ORANGE\r\n];\r\n\r\nconst RESULT_FAILED = [\r\n APPLY_FORM_RESPONSE_COLOR_RED,\r\n APPLY_FORM_RESPONSE_COLOR_BLACK\r\n];\r\n\r\nconst selectAppDomain = () => state => state.get('app');\r\n\r\nconst selectApp = createSelector(selectAppDomain(), app => app.toJS());\r\n\r\nconst selectHasCoApplicant = createSelector(selectApp, app => {\r\n return app.hasCoApplicant;\r\n});\r\n\r\nconst selectApplyFormIsFetching = createSelector(selectApp, app => {\r\n return app.applyFormIsFetching;\r\n});\r\n\r\nconst selectApplyFormResult = createSelector(selectApp, app => {\r\n return app.applyFormResult;\r\n});\r\n\r\nconst selectApplyFormError = createSelector(selectApp, app => {\r\n return app.applyFormError;\r\n});\r\n\r\nconst selectSkipForm = createSelector(selectApp, app => {\r\n return app.skipForm;\r\n});\r\n\r\nconst selectApplyFormResultIsSuccess = createSelector(\r\n selectApplyFormResult,\r\n result => {\r\n return (\r\n result && result.ColorBand && RESULT_SUCCESS.includes(result.ColorBand)\r\n );\r\n }\r\n);\r\n\r\nconst selectApplyFormResultIsFailed = createSelector(\r\n selectApplyFormResult,\r\n result => {\r\n return result?.ColorBand && RESULT_FAILED.includes(result.ColorBand);\r\n }\r\n);\r\n\r\nconst selectResultColorBand = createSelector(selectApplyFormResult, result => {\r\n return result?.ColorBand;\r\n});\r\n\r\nconst selectResultScriptText = createSelector(selectApplyFormResult, result => {\r\n return result?.ScriptText || '';\r\n});\r\n\r\nconst selectResultScriptText2 = createSelector(\r\n selectApplyFormResult,\r\n result => {\r\n return result?.ScriptText2 || '';\r\n }\r\n);\r\n\r\nconst selectResultTitle = createSelector(selectApplyFormResult, result => {\r\n return result?.Title || '';\r\n});\r\n\r\nconst selectApplyFormResultCallbackURL = createSelector(\r\n selectApplyFormResult,\r\n result => {\r\n return result ? result.CallBackURL : null;\r\n }\r\n);\r\n\r\nconst selectIsValidatingAllAdresses = createSelector(\r\n selectApp,\r\n app => app.isValidatingAllAdresses\r\n);\r\n\r\nconst selectValidatedAddresses = createSelector(selectApp, app => {\r\n return app ? app.validatedAddresses : null;\r\n});\r\n\r\nconst selectIsApplicantAddressValid = createSelector(\r\n selectValidatedAddresses,\r\n validatedAddresses => {\r\n if (!validatedAddresses || validatedAddresses.length === 0) {\r\n return false;\r\n }\r\n\r\n const address = validatedAddresses[0];\r\n\r\n return address.flags.IsVerified && address.flags.IsEquals;\r\n }\r\n);\r\n\r\nconst selectIsCoApplicantAddressValid = createSelector(\r\n selectValidatedAddresses,\r\n selectHasCoApplicant,\r\n (validatedAddresses, hasCoApplicant) => {\r\n if (\r\n !validatedAddresses ||\r\n validatedAddresses.length < 2 ||\r\n !hasCoApplicant\r\n ) {\r\n return false;\r\n }\r\n\r\n const address = validatedAddresses[1];\r\n\r\n return address.flags.IsVerified && address.flags.IsEquals;\r\n }\r\n);\r\n\r\nconst selectApplyFormValues = createSelector(selectApp, app => {\r\n if (app && app.applyFormValues) {\r\n if (`${APPLICANT_PREFIX}DateOfBirth` in app.applyFormValues) {\r\n app.applyFormValues[`${APPLICANT_PREFIX}DateOfBirth`] = app\r\n .applyFormValues[`${APPLICANT_PREFIX}DateOfBirth`]\r\n ? moment(app.applyFormValues[`${APPLICANT_PREFIX}DateOfBirth`])\r\n : '';\r\n }\r\n\r\n if (`${CO_APPLICANT_PREFIX}DateOfBirth` in app.applyFormValues) {\r\n app.applyFormValues[`${CO_APPLICANT_PREFIX}DateOfBirth`] = app\r\n .applyFormValues[`${CO_APPLICANT_PREFIX}DateOfBirth`]\r\n ? moment(app.applyFormValues[`${CO_APPLICANT_PREFIX}DateOfBirth`])\r\n : '';\r\n }\r\n\r\n return app.applyFormValues;\r\n }\r\n\r\n return null;\r\n});\r\n\r\nconst selectConfirmedAddresses = createSelector(\r\n selectApp,\r\n app => app.confirmedAddresses\r\n);\r\n\r\nconst selectAreAddressesConfirmed = createSelector(\r\n selectConfirmedAddresses,\r\n confirmedAddresses => {\r\n if (confirmedAddresses) {\r\n return Object.values(confirmedAddresses).every(item => item.confirmed);\r\n }\r\n\r\n return false;\r\n }\r\n);\r\n\r\nconst selectApplicantAddress = createSelector(selectApp, app => {\r\n if (app && app.applyFormValues) {\r\n const address = formatAddressForValidation(\r\n APPLICANT_PREFIX,\r\n app.applyFormValues\r\n );\r\n\r\n if (!address) {\r\n return null;\r\n }\r\n\r\n return formatAddressAsHTML(address);\r\n }\r\n\r\n return null;\r\n});\r\n\r\nconst selectCoApplicantAddress = createSelector(selectApp, app => {\r\n if (app && app.applyFormValues) {\r\n const address = formatAddressForValidation(\r\n CO_APPLICANT_PREFIX,\r\n app.applyFormValues\r\n );\r\n\r\n if (!address) {\r\n return null;\r\n }\r\n\r\n return formatAddressAsHTML(address);\r\n }\r\n\r\n return null;\r\n});\r\n\r\nconst selectShowAddressValidation = createSelector(\r\n selectApp,\r\n app => app.showAddressValidation\r\n);\r\n\r\nconst selectApplicantValidatedAddress = createSelector(\r\n selectValidatedAddresses,\r\n validatedAddresses => {\r\n if (!validatedAddresses || validatedAddresses.length === 0) {\r\n return null;\r\n }\r\n\r\n const address = validatedAddresses[0].verified;\r\n\r\n return formatAddressAsHTML(address);\r\n }\r\n);\r\n\r\nconst selectCoApplicantValidatedAddress = createSelector(\r\n selectValidatedAddresses,\r\n selectHasCoApplicant,\r\n (validatedAddresses, hasCoApplicant) => {\r\n if (\r\n !validatedAddresses ||\r\n validatedAddresses.length < 2 ||\r\n !hasCoApplicant\r\n ) {\r\n return null;\r\n }\r\n\r\n const address = validatedAddresses[1].verified;\r\n\r\n return formatAddressAsHTML(address);\r\n }\r\n);\r\n\r\nconst selectHasAddressToChoose = createSelector(\r\n selectApplicantValidatedAddress,\r\n selectCoApplicantValidatedAddress,\r\n (applicantAddress, coApplicantAddress) => {\r\n return applicantAddress || coApplicantAddress;\r\n }\r\n);\r\n\r\nconst selectVerifyProductByDealerData = createSelector(\r\n selectApp,\r\n app => app.verifyProductByDealer\r\n);\r\n\r\nconst selectDealerDataToVerify = createSelector(\r\n selectVerifyProductByDealerData,\r\n verifyProductByDealerData =>\r\n verifyProductByDealerData && verifyProductByDealerData.toVerify\r\n);\r\n\r\nconst selectIsFetchinVerifyProductByDealerData = createSelector(\r\n selectApp,\r\n app => app.isFetchingVerifyProductByDealer\r\n);\r\n\r\nconst selectDealerNumberFormError = createSelector(\r\n selectApp,\r\n app => app.dealerNumberFormError\r\n);\r\n\r\nconst selectDealerNumberFormVerifyDataError = createSelector(\r\n selectApp,\r\n app => app.dealerNumberFormVerifyDataError\r\n);\r\n\r\nconst selectIsFetchingPutVerifyDealerData = createSelector(\r\n selectApp,\r\n app => app.isFetchingPutVerifyDealerData\r\n);\r\n\r\nconst selectEnterApplicantDataManuallyData = (state, applicantType) => {\r\n const app = state.get('app');\r\n\r\n if (app) {\r\n const enterApplicantDataManuallyValue = app.get(\r\n 'enterApplicantDataManuallyValue'\r\n );\r\n\r\n return enterApplicantDataManuallyValue?.toJS()[applicantType];\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst makeSelectEnterApplicantDataManuallyData = () =>\r\n createSelector(\r\n selectEnterApplicantDataManuallyData,\r\n enterApplicantDataManuallyData => enterApplicantDataManuallyData\r\n );\r\n\r\nconst selectCustomerIdentityRequestId = (state, requestId) => {\r\n const app = state.get('app');\r\n if (app) {\r\n const customerIdentityInProgressRequest = app.get(\r\n 'customerIdentityInProgressRequest'\r\n );\r\n\r\n if (!customerIdentityInProgressRequest) {\r\n return null;\r\n }\r\n\r\n const applicantType = findKey(\r\n customerIdentityInProgressRequest.toJS(),\r\n item => item.requestId === requestId\r\n );\r\n\r\n return applicantType;\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst makeSelectCustomerIdentityRequestId = () =>\r\n createSelector(\r\n selectCustomerIdentityRequestId,\r\n customerIdentityRequestId => customerIdentityRequestId\r\n );\r\n\r\nconst selectCustomerIdentity = (state, applicantType) => {\r\n const app = state.get('app');\r\n\r\n if (app) {\r\n const customerIdentity = app.get('customerIdentity');\r\n const data = customerIdentity.get(applicantType.toString());\r\n\r\n return data?.toJS();\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst makeSelectCustomerIdentity = () =>\r\n createSelector(selectCustomerIdentity, customerIdentity => customerIdentity);\r\n\r\nconst makeSelectCustomerIdentityIsComplete = () =>\r\n createSelector(selectCustomerIdentity, customerIdentity => {\r\n return customerIdentity?.flags?.isCompleted;\r\n });\r\n\r\nconst makeSelectCustomerIdentityIsExpired = () =>\r\n createSelector(selectCustomerIdentity, customerIdentity => {\r\n return customerIdentity?.flags?.isExpired;\r\n });\r\n\r\nconst makeSelectCustomerExpirationDate = () =>\r\n createSelector(selectCustomerIdentity, customerIdentity => {\r\n return customerIdentity?.expirationDate;\r\n });\r\n\r\nconst makeSelectCustomerIdentityAddressSelection = () =>\r\n createSelector(selectCustomerIdentity, customerIdentity => {\r\n if (isEmpty(customerIdentity?.applicant?.addressSelection)) {\r\n return null;\r\n }\r\n\r\n const addressSelection = customerIdentity.applicant.addressSelection;\r\n return addressSelection.filter(address => address.hasOwnProperty('id'));\r\n });\r\n\r\nconst selectCustomerIdentityIsFetching = (state, applicantType) => {\r\n const app = state.get('app');\r\n\r\n if (app) {\r\n const customerIdentityIsFetching = app\r\n .get('customerIdentityIsFetching')\r\n .toJS();\r\n const isFetching = customerIdentityIsFetching[applicantType];\r\n\r\n return !!isFetching;\r\n }\r\n\r\n return false;\r\n};\r\n\r\nconst makeSelectCustomerIdentityIsFetching = () =>\r\n createSelector(selectCustomerIdentityIsFetching, isFetching => isFetching);\r\n\r\nconst selectCustomerIdentityError = (state, applicantType) => {\r\n const app = state.get('app');\r\n\r\n if (app) {\r\n const customerIdentityError = app.get('customerIdentityError').toJS();\r\n\r\n const errorMessage = customerIdentityError[applicantType];\r\n return errorMessage;\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst makeSelectCustomerIdentityError = () =>\r\n createSelector(\r\n selectCustomerIdentityError,\r\n customerIdentityError => customerIdentityError\r\n );\r\n\r\nconst selectMobileVerificationState = createSelector(selectApp, app => {\r\n return app.mobileVerificationState;\r\n});\r\n\r\nconst selectMobileVerificationAsSuccessfulIsFetching = createSelector(\r\n selectApp,\r\n app => {\r\n return app.putMobileVerificationAsSuccessfulIsFetching;\r\n }\r\n);\r\n\r\nconst selectCustomerIdentityStatusId = (state, applicantType) => {\r\n const app = state.get('app');\r\n\r\n if (app) {\r\n const customerIdentity = app.get('customerIdentity');\r\n\r\n const data = customerIdentity.get(applicantType);\r\n\r\n if (!data) {\r\n return null;\r\n }\r\n\r\n return data?.toJS().status?.Id;\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst makeSelectFetchingProgressStatusId = () =>\r\n createSelector(\r\n selectCustomerIdentityStatusId,\r\n customerIdentityStatusId => customerIdentityStatusId\r\n );\r\n\r\nconst selectCustomerIdentityStatusIdTitle = (state, applicantType) => {\r\n const app = state.get('app');\r\n\r\n if (app) {\r\n const customerIdentity = app.get('customerIdentity');\r\n\r\n const data = customerIdentity.get(applicantType);\r\n\r\n if (!data) {\r\n return IN_PROGRESS_STATUS_STARTING_TOOLTIP_TEXT;\r\n }\r\n\r\n const statusId = data?.toJS().status?.Id;\r\n\r\n return statusId\r\n ? IN_PROGRESS_STATUS_TOOLTIP_TEXT[statusId]\r\n : IN_PROGRESS_STATUS_UNKNOWN_TOOLTIP_TEXT;\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst makeSelectFetchingProgressStatusTitle = () =>\r\n createSelector(\r\n selectCustomerIdentityStatusIdTitle,\r\n customerIdentityStatusIdTitle => customerIdentityStatusIdTitle\r\n );\r\n\r\nconst selectRequestId = (state, applicantType) => {\r\n const app = state.get('app');\r\n if (app) {\r\n const customerIdentityInProgressRequest = app.get(\r\n 'customerIdentityInProgressRequest'\r\n );\r\n\r\n if (!customerIdentityInProgressRequest) {\r\n return null;\r\n }\r\n\r\n return customerIdentityInProgressRequest?.toJS()[applicantType]?.requestId;\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst makeSelectRequestId = () =>\r\n createSelector(selectRequestId, requestId => requestId);\r\n\r\nconst selectPhoneProvided = (state, applicantType) => {\r\n const app = state.get('app');\r\n const applyFormValues = app?.get('applyFormValues')?.toJS();\r\n\r\n if (applyFormValues) {\r\n const prefix = APPLICANT_NOMENCLATURE_PREFIX_MAP[applicantType];\r\n return applyFormValues[`${prefix}PhoneNumber`];\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst makeSelectPhoneProvided = () =>\r\n createSelector(selectPhoneProvided, phoneProvided => phoneProvided);\r\n\r\nconst selectShowMultipleAddressSelection = createSelector(\r\n selectApp,\r\n app => app.showMultipleAddressSelection\r\n);\r\n\r\nconst selectAddCoApplicant = createSelector(\r\n selectApp,\r\n selectHasCoApplicant,\r\n (app, hasCoApplicant) =>\r\n !app.enterApplicantDataManuallyValue[COBORROWER_NOMENCLATURE] &&\r\n hasCoApplicant\r\n);\r\n\r\nconst selectShowAddCoApplicantModal = createSelector(\r\n selectApp,\r\n selectAddCoApplicant,\r\n (app, addCoApplicant) => app.showAddCoApplicantModal && addCoApplicant\r\n);\r\n\r\nconst makeSelectCustomerIdentityAlerts = () =>\r\n createSelector(selectCustomerIdentity, customerIdentity =>\r\n isEmpty(customerIdentity?.alerts) ? null : customerIdentity.alerts\r\n );\r\n\r\nconst selectVerificationParams = createSelector(\r\n selectApp,\r\n app => app.verificationParams\r\n);\r\n\r\nconst selectMobileVerificationIsLoading = createSelector(\r\n selectMobileVerificationState,\r\n selectVerificationParams,\r\n (mobileVerificationState, verificationParams) => {\r\n return (\r\n !!verificationParams && LOADING_STATES.includes(mobileVerificationState)\r\n );\r\n }\r\n);\r\n\r\nconst selectMobileVerificationSuccesful = createSelector(\r\n selectMobileVerificationState,\r\n mobileVerificationState => {\r\n return mobileVerificationState === CALLED_WITH_SUCCESS;\r\n }\r\n);\r\n\r\nconst selectMobileVerificationSuccesfulNoVerificated = createSelector(\r\n selectMobileVerificationState,\r\n mobileVerificationState => {\r\n return mobileVerificationState === CALLED_WITH_SUCCESS_BUT_NOT_VERIFIED;\r\n }\r\n);\r\n\r\nconst selectMobileVerificationHasError = createSelector(\r\n selectMobileVerificationState,\r\n selectVerificationParams,\r\n (mobileVerificationState, verificationParams) => {\r\n return mobileVerificationState === CALLED_WITH_ERROR;\r\n }\r\n);\r\n\r\nconst selectMobileVerificationURLError = createSelector(\r\n selectMobileVerificationState,\r\n selectVerificationParams,\r\n (mobileVerificationState, verificationParams) => {\r\n return !verificationParams && mobileVerificationState === NOT_CALLED;\r\n }\r\n);\r\n\r\nconst selectStoppedCurrentApplication = createSelector(selectApp, app => {\r\n return app.stoppedCurrentApplication;\r\n});\r\n\r\nconst selectApplyFrom = createSelector(selectApp, app => app.applyFrom);\r\n\r\nconst selectIsForCustomer = createSelector(\r\n selectApplyFrom,\r\n applyFrom => applyFrom === APPLY_FROM_CUSTOMER_NOMENCLATURE\r\n);\r\n\r\nconst selectIsForQRCode = createSelector(\r\n selectApplyFrom,\r\n applyFrom => applyFrom === APPLY_FROM_QR_CODE_NOMENCLATURE\r\n);\r\n\r\nconst selectIsForBDCode = createSelector(\r\n selectApplyFrom,\r\n applyFrom => applyFrom === APPLY_FROM_BD_CODE_NOMENCLATURE\r\n);\r\n\r\nconst selectIsForBECode = createSelector(\r\n selectApplyFrom,\r\n applyFrom => applyFrom === APPLY_FROM_BE_CODE_NOMENCLATURE\r\n);\r\n\r\nconst selectRetrieveApplicationData = createSelector(\r\n selectApp,\r\n app => app.retrieveApplicationData\r\n);\r\n\r\nconst selectPhoneConsentApproved = createSelector(\r\n selectApp,\r\n app => app.phoneConsentApproved\r\n);\r\n\r\nconst selectErrorMessage = createSelector(selectApp, app => app.errorMessage);\r\nconst selectMessage = createSelector(selectApp, app => app.message);\r\n\r\n//association call report\r\nconst selectAssociationCallReportIsFetching = createSelector(\r\n selectApp,\r\n app => app.associationCallReportIsFetching\r\n);\r\n\r\nconst selectAssociationReloadCallReportIsFetching = createSelector(\r\n selectApp,\r\n app => app.associationReloadCallReportIsFetching\r\n);\r\nconst selectAssociationCallReport = createSelector(\r\n selectApp,\r\n app => app.associationCallReport\r\n);\r\nconst selectHaveDealersData = createSelector(\r\n selectAssociationCallReport,\r\n associationCallReport => {\r\n return !isEmpty(associationCallReport?.data?.items);\r\n }\r\n);\r\nconst selectAssociationCallReportItems = createSelector(\r\n selectAssociationCallReport,\r\n associationCallReport => associationCallReport?.data?.items ?? []\r\n);\r\nconst selectSearchText = createSelector(selectApp, app => app.searchText);\r\nconst selectAssociationFormInfo = createSelector(\r\n selectApp,\r\n app => app.associationFormInfo\r\n);\r\nconst selectErrorCallReport = createSelector(\r\n selectApp,\r\n app => app.errorCallReport\r\n);\r\n\r\nconst selectHaveErrorInAssociationData = createSelector(\r\n selectErrorCallReport,\r\n errorCallReport => !isEmpty(errorCallReport)\r\n);\r\n\r\nconst selectAssociationNumber = createSelector(\r\n selectApp,\r\n app => app.associationNumber\r\n);\r\n\r\nconst selectAddressMap = createSelector(selectApp, app => app.addressMap);\r\n\r\nconst selectShowAddressMap = createSelector(\r\n selectAddressMap,\r\n addressMap => addressMap?.open\r\n);\r\n\r\nconst selectAddressMapData = createSelector(\r\n selectAddressMap,\r\n addressMap => addressMap?.data\r\n);\r\n\r\nexport default selectApp;\r\nexport {\r\n selectHasCoApplicant,\r\n selectApplyFormIsFetching,\r\n selectApplyFormResult,\r\n selectApplyFormResultIsSuccess,\r\n selectApplyFormResultIsFailed,\r\n selectApplyFormResultCallbackURL,\r\n selectApplyFormError,\r\n selectIsValidatingAllAdresses,\r\n selectValidatedAddresses,\r\n selectApplicantAddress,\r\n selectApplicantValidatedAddress,\r\n selectCoApplicantAddress,\r\n selectCoApplicantValidatedAddress,\r\n selectHasAddressToChoose,\r\n selectApplyFormValues,\r\n selectIsApplicantAddressValid,\r\n selectIsCoApplicantAddressValid,\r\n selectShowAddressValidation,\r\n selectConfirmedAddresses,\r\n selectAreAddressesConfirmed,\r\n selectVerifyProductByDealerData,\r\n selectIsFetchinVerifyProductByDealerData,\r\n selectDealerNumberFormError,\r\n selectDealerNumberFormVerifyDataError,\r\n selectDealerDataToVerify,\r\n selectIsFetchingPutVerifyDealerData,\r\n selectResultColorBand,\r\n selectResultScriptText,\r\n selectResultScriptText2,\r\n selectResultTitle,\r\n makeSelectEnterApplicantDataManuallyData,\r\n makeSelectCustomerIdentity,\r\n makeSelectCustomerIdentityIsFetching,\r\n makeSelectCustomerIdentityError,\r\n makeSelectCustomerIdentityRequestId,\r\n selectMobileVerificationState,\r\n selectMobileVerificationAsSuccessfulIsFetching,\r\n makeSelectFetchingProgressStatusId,\r\n makeSelectFetchingProgressStatusTitle,\r\n makeSelectRequestId,\r\n makeSelectCustomerIdentityIsComplete,\r\n makeSelectCustomerIdentityIsExpired,\r\n makeSelectPhoneProvided,\r\n selectShowMultipleAddressSelection,\r\n makeSelectCustomerIdentityAddressSelection,\r\n selectShowAddCoApplicantModal,\r\n makeSelectCustomerIdentityAlerts,\r\n makeSelectCustomerExpirationDate,\r\n selectVerificationParams,\r\n selectMobileVerificationIsLoading,\r\n selectMobileVerificationSuccesful,\r\n selectMobileVerificationHasError,\r\n selectMobileVerificationURLError,\r\n selectIsForCustomer,\r\n selectIsForQRCode,\r\n selectApplyFrom,\r\n selectStoppedCurrentApplication,\r\n selectRetrieveApplicationData,\r\n selectErrorMessage,\r\n selectPhoneConsentApproved,\r\n selectMessage,\r\n selectIsForBDCode,\r\n selectIsForBECode,\r\n selectMobileVerificationSuccesfulNoVerificated,\r\n selectSkipForm,\r\n selectAssociationCallReportIsFetching,\r\n selectAssociationReloadCallReportIsFetching,\r\n selectAssociationCallReport,\r\n selectAssociationCallReportItems,\r\n selectSearchText,\r\n selectAssociationFormInfo,\r\n selectErrorCallReport,\r\n selectHaveErrorInAssociationData,\r\n selectAssociationNumber,\r\n selectHaveDealersData,\r\n selectShowAddressMap,\r\n selectAddressMapData\r\n};\r\n","import { createSelector } from 'reselect';\r\n\r\nconst selectTokensDomain = () => state => state.get('tokens');\r\nconst selectTokens = createSelector(selectTokensDomain(), tk => tk.toJS());\r\n\r\nconst selectDealerNumber = createSelector(selectTokens, tk => tk.dealerNumber);\r\n\r\nexport default selectTokens;\r\nexport { selectDealerNumber };\r\n","export const SAVE_DEALER_NUMBER = 'applynow/App/SAVE_DEALER_NUMBER';\r\n","import { makeActionCreator } from 'redux/utils';\r\n\r\nimport { SAVE_DEALER_NUMBER } from './constants';\r\n\r\nexport const saveDealerNumber = makeActionCreator(\r\n SAVE_DEALER_NUMBER,\r\n 'dealerNumber'\r\n);\r\n","// Websocket general constants\r\nexport const WS_INIT = 'merlin/Signalr/WS_INIT';\r\nexport const WS_CONNECTED = 'merlin/Signalr/WS_CONNECTED';\r\nexport const WS_RETRY_CONNECTION = 'merlin/Signalr/WS_RETRY_CONNECTION';\r\nexport const WS_RECONNECTING = 'merlin/Signalr/WS_RECONNECTING';\r\nexport const WS_RECONNECTED = 'merlin/Signalr/WS_RECONNECTED';\r\nexport const WS_CLOSED = 'merlin/Signalr/WS_CLOSE';\r\nexport const WS_STOP = 'merlin/Signalr/WS_STOP';\r\nexport const WS_ERROR = 'merlin/Signalr/WS_ERROR';\r\nexport const WS_HUB_URL = process.env.REACT_APP_API_FORSETI_PATH;\r\nexport const MAX_RETRY = 5;\r\nexport const RETRY_TIME = 2000;\r\n\r\nexport const WS_STATUS_DISCONNECTED = 'disconnected';\r\nexport const WS_STATUS_CONNECTED = 'connected';\r\n\r\n// Hubs\r\nexport const WS_HUB_NOTIFY = 'Notify';\r\nexport const WS_HUB_OPEN_ITEM_DATA = 'OpenIdentityData';\r\nexport const WS_HUB_CLOSE_ITEM_DATA = 'CloseIdentityData';\r\nexport const WS_HUB_MULTIPLE_OPEN_ITEM_DATA = 'MOpenIData';\r\nexport const WS_HUB_MULTIPLE_CLOSE_ITEM_DATA = 'MCloseIData';\r\n\r\n// Notifications\r\nexport const WS_SEND_NOTIFICATION = 'merlin/Signalr/WS_SEND_NOTIFICATION';\r\nexport const WS_NOTIFICATION_RECEIVED =\r\n 'merlin/Signalr/WS_NOTIFICATION_RECEIVED';\r\nexport const WS_NOTIFICATION_SIMPLE_STORAGE_DELETE = 4;\r\nexport const WS_NOTIFICATION_SIMPLE_STORAGE_UPDATE = 3;\r\nexport const WS_NOTIFICATION_SIMPLE_STORAGE_CREATE = 2;\r\nexport const WS_NOTIFICATION_CONTRACT_VALIDATION_UPDATE = 5;\r\nexport const WS_NOTIFICATION_CUSTOMER_IDENTITY_PROCESS = 6;\r\n\r\n// Open Item Data\r\nexport const WS_OPEN_ITEM_DATA_RECEIVED =\r\n 'merlin/Signalr/WS_OPEN_ITEM_DATA_RECEIVED';\r\nexport const WS_SAVE_OPEN_ITEM_DATA_RECEIVED =\r\n 'merlin/Signalr/WS_SAVE_OPEN_ITEM_DATA_RECEIVED';\r\n\r\n// Close Item Data\r\nexport const WS_CLOSE_ITEM_DATA_RECEIVED =\r\n 'merlin/Signalr/WS_CLOSE_ITEM_DATA_RECEIVED';\r\n","import { call } from '@redux-saga/core/effects';\r\nimport { fork, take } from 'redux-saga/effects';\r\nimport {\r\n showErrorNotificationFromResponse,\r\n showSuccessNotification\r\n} from 'utils/notifications';\r\nimport { HTTP_STATUS } from 'api/axios/interceptors';\r\nimport { isCancelledRequestException } from 'api/axios';\r\n\r\nexport const DEFAULT_WRONG_MESSAGE =\r\n 'Something happend and the operation could not be performed, please try again or contact us.';\r\n\r\n/**\r\n * Saga to perform an API request\r\n *\r\n * @param {function} requestFunction\r\n * @param {Array} requestData\r\n * @param {object} config\r\n * @param {String} config.actionTitle\r\n * @param {boolean} config.showErrorMessage\r\n * @param {boolean} config.showSuccessMessage\r\n * @param {Number} config.retryOnErrorCount\r\n *\r\n * @returns {object}\r\n */\r\nexport function* apiRequest(requestFunction, requestData, config = {}) {\r\n if (typeof requestFunction !== 'function') {\r\n throw new Error('requestFunction must be a function');\r\n }\r\n\r\n if (!Array.isArray(requestData)) {\r\n throw new Error('requestData must be an Array');\r\n }\r\n\r\n if (typeof config !== 'object') {\r\n throw new Error('config must be an object');\r\n }\r\n\r\n const options = Object.assign(\r\n {\r\n showSuccessMessage: false,\r\n showErrorMessage: false,\r\n retryOnErrorCount: 5\r\n },\r\n config\r\n );\r\n\r\n let {\r\n actionTitle,\r\n showSuccessMessage,\r\n showErrorMessage,\r\n retryOnErrorCount,\r\n successMessageDescription,\r\n errorMessageDescription\r\n } = options;\r\n\r\n if (retryOnErrorCount < 0) {\r\n retryOnErrorCount = 0;\r\n }\r\n\r\n let latestError = null;\r\n let response = {};\r\n do {\r\n try {\r\n response = yield call(requestFunction, ...requestData);\r\n\r\n if (response && response.isSuccess && showSuccessMessage) {\r\n showSuccessNotification({ actionTitle, successMessageDescription });\r\n }\r\n return response;\r\n } catch (error) {\r\n latestError = error;\r\n if (error.response) {\r\n switch (error.response.status) {\r\n case HTTP_STATUS.BAD_GATEWAY:\r\n retryOnErrorCount--;\r\n break;\r\n case HTTP_STATUS.NOT_FOUND:\r\n showErrorMessage = true;\r\n break;\r\n default:\r\n retryOnErrorCount = 0;\r\n break;\r\n }\r\n } else {\r\n retryOnErrorCount = 0;\r\n if (error.hasOwnProperty('notFound')) {\r\n showErrorMessage = !error.notFound;\r\n }\r\n }\r\n }\r\n } while (retryOnErrorCount > 0);\r\n\r\n if (\r\n latestError &&\r\n showErrorMessage &&\r\n !isCancelledRequestException(latestError)\r\n ) {\r\n let title = actionTitle || latestError.title || 'An error occurred';\r\n let message =\r\n (latestError.showToUser && latestError.message) ||\r\n errorMessageDescription ||\r\n `The operation ${actionTitle || ''} could not be performed.`;\r\n\r\n if (actionTitle && latestError.title) {\r\n title = `${actionTitle} (${latestError.title})`;\r\n }\r\n\r\n latestError.title = title;\r\n latestError.message = message;\r\n showErrorNotificationFromResponse(latestError);\r\n }\r\n\r\n return latestError;\r\n}\r\n\r\nexport const customTakeLatest = (pattern, saga, ...args) =>\r\n fork(function* () {\r\n const patterns = [];\r\n let timer;\r\n while (true) {\r\n const action = yield take(pattern);\r\n if (!patterns.includes(action.type)) {\r\n patterns.push(action.type);\r\n yield fork(saga, ...args.concat(action));\r\n\r\n clearTimeout(timer);\r\n timer = setTimeout(() => {\r\n patterns.length = 0;\r\n }, 1000);\r\n }\r\n }\r\n });\r\n","import { call, put, select, takeEvery, takeLatest } from 'redux-saga/effects';\r\nimport {\r\n APPLICANT_NOMENCLATURE_PREFIX_MAP,\r\n APPLICANT_PREFIX,\r\n APPLICATION_DETAILS_PREFIX,\r\n CO_APPLICANT_PREFIX,\r\n GET_CUSTOMER_IDENTITY,\r\n GET_CUSTOMER_IDENTITY_FAILED,\r\n GET_CUSTOMER_IDENTITY_STOP,\r\n GET_VERIFY_PRODUCT_BY_DEALER,\r\n PUT_VERIFY_PRODUCT_BY_DEALER,\r\n SALES_REP_PREFIX,\r\n SUBMIT_APPLY_FORM,\r\n VALIDATE_ADDRESS,\r\n PUT_MOBILE_VERIFICATION_AS_SUCCESSFUL,\r\n GET_CUSTOMER_IDENTITY_DONE,\r\n SAVE_CUSTOMER_IDENTITY_ADDRESS,\r\n APPLY_FROM_QR_CODE_NOMENCLATURE,\r\n BORROWER_NOMENCLATURE,\r\n SET_ERROR_MESSAGE,\r\n GETTING_DATA_STATUS,\r\n STATUS_COMPLETED,\r\n APPLY_FROM_IDENTITY_VERIFICATION_NOMENCLATURE,\r\n SET_MESSAGE,\r\n MESSAGE_SUCCESS_STATUS_NOMENCLATURE,\r\n MESSAGE_ERROR_STATUS_NOMENCLATURE,\r\n GET_CALL_REPORT,\r\n RELOAD_CALL_REPORT\r\n} from './constants';\r\n\r\nimport {\r\n submitApplyFormSuccess,\r\n submitApplyFormFailed,\r\n validateAddressSuccess,\r\n validateAddressFailed,\r\n submitApplyForm,\r\n showAddressValidation,\r\n getVerifyProductByDealerSuccess,\r\n getVerifyProductByDealerFailed,\r\n putVerifyProductByDealerSuccess,\r\n putVerifyProductByDealerFailed,\r\n getVerifyProductByDealer,\r\n getCustomerIdentitySuccess,\r\n getCustomerIdentityFailed,\r\n enterApplicantDataManually,\r\n setCustomerIdentityErrorMessage,\r\n getCustomerIdentityDone,\r\n getCustomerIdentity,\r\n putMobileVerificationAsSuccessfulFailed,\r\n putMobileVerificationAsSuccessfulSuccess,\r\n showAddressListToSelect,\r\n closeAddressListToSelect,\r\n showCoApplicantModal,\r\n initRetrieveApplicationData,\r\n setForQRCode,\r\n savePreviousData,\r\n initRetrieveApplicationDataSuccess,\r\n stoppedCurrentApplication,\r\n initRetrieveApplicationDataFailed,\r\n setErrorMessage,\r\n setMessage,\r\n setForVerificationCode,\r\n resetVerificationParams,\r\n getCallReportSuccess,\r\n getCallReportFailed\r\n} from './actions';\r\n\r\nimport {\r\n getVerifyProductByDealerNumber,\r\n postPullCheckRequest,\r\n putAddressValidationVerify,\r\n putVerifyProductByDealerNumber,\r\n getCustomerIdentityRequest,\r\n putMobileVerificationAsSuccessfulRequest,\r\n getCallReportRequest\r\n} from 'api';\r\nimport {\r\n makeSelectCustomerIdentityRequestId,\r\n makeSelectRequestId,\r\n selectApplyFrom,\r\n selectApplyFormValues,\r\n selectAreAddressesConfirmed,\r\n selectIsForQRCode,\r\n selectRetrieveApplicationData,\r\n selectIsForBDCode,\r\n selectIsForBECode\r\n} from './selectors';\r\nimport {\r\n formatApplicant,\r\n formatApplicationDetails,\r\n formatCustomer,\r\n formatSalesMan\r\n} from 'utils/functions';\r\nimport { selectDealerNumber } from 'redux/tokens/selectors';\r\nimport { saveDealerNumber } from 'redux/tokens/actions';\r\nimport { replace } from 'connected-react-router';\r\nimport { ROUTES } from 'consts/routes';\r\nimport {\r\n WS_NOTIFICATION_CUSTOMER_IDENTITY_PROCESS,\r\n WS_NOTIFICATION_RECEIVED\r\n} from 'redux/WebSockets/constants';\r\nimport { isEmpty } from 'lodash';\r\nimport { regularHeimdalAxios } from 'api/axios';\r\nimport { DEFAULT_WRONG_MESSAGE, apiRequest } from 'redux/sagas';\r\nimport { HTTP_STATUS } from 'api/axios/interceptors';\r\n\r\nconst selectCustomerIdentityRequestId = makeSelectCustomerIdentityRequestId();\r\nconst selectRequestId = makeSelectRequestId();\r\n\r\nfunction* processCustomerFormData(prefix) {\r\n const values = yield select(selectApplyFormValues);\r\n\r\n const data = [formatCustomer(prefix, values)];\r\n\r\n return data;\r\n}\r\n\r\nfunction* processApplyFormData() {\r\n const dealerNumber = yield select(selectDealerNumber);\r\n const values = yield select(selectApplyFormValues);\r\n\r\n const applyFrom = yield select(selectApplyFrom);\r\n\r\n const applicants = [formatApplicant(APPLICANT_PREFIX, values)];\r\n const coApplicant = formatApplicant(CO_APPLICANT_PREFIX, values);\r\n\r\n applicants[0].SSN = applicants[0].SSN.replace('XXX-XX-', '000-00-');\r\n\r\n if (coApplicant) {\r\n coApplicant.SSN = coApplicant.SSN.replace('XXX-XX-', '000-00-');\r\n applicants.push(coApplicant);\r\n }\r\n\r\n const salesPerson = formatSalesMan(SALES_REP_PREFIX, values);\r\n const applicationDetails = formatApplicationDetails(\r\n APPLICATION_DETAILS_PREFIX,\r\n values\r\n );\r\n\r\n const data = {\r\n Applicants: applicants,\r\n DealerNumber: dealerNumber,\r\n applyFrom,\r\n ...salesPerson,\r\n ...applicationDetails\r\n };\r\n\r\n return data;\r\n}\r\n\r\nfunction* submitApplyFormSaga() {\r\n yield takeEvery(SUBMIT_APPLY_FORM, function* () {\r\n const applyData = yield processApplyFormData();\r\n\r\n const response = yield call(apiRequest, postPullCheckRequest, [applyData]);\r\n\r\n if (!response || !response.isSuccess || !response.data) {\r\n yield put(submitApplyFormFailed(response));\r\n return;\r\n }\r\n\r\n yield put(submitApplyFormSuccess(response.data));\r\n });\r\n}\r\n\r\nfunction* validateAllAddressesSaga() {\r\n yield takeEvery(VALIDATE_ADDRESS, function* ({ payload }) {\r\n const areAddressesConfirmed = yield select(selectAreAddressesConfirmed);\r\n let allValid = areAddressesConfirmed;\r\n\r\n const applyFrom = yield select(selectApplyFrom);\r\n const dealerNumber = yield select(selectDealerNumber);\r\n\r\n if (isEmpty(areAddressesConfirmed)) {\r\n const response = yield call(apiRequest, putAddressValidationVerify, [\r\n { ...payload, applyFrom, dealerNumber }\r\n ]);\r\n\r\n if (!response || !response.isSuccess || !response.data) {\r\n yield put(validateAddressFailed(response));\r\n return;\r\n }\r\n const data = response.data;\r\n yield put(validateAddressSuccess(data.address));\r\n\r\n allValid = data.address.every(\r\n item => item?.flags?.IsVerified && item?.flags?.IsEquals\r\n );\r\n }\r\n if (allValid) {\r\n yield put(showAddressValidation(false));\r\n yield put(submitApplyForm());\r\n return;\r\n }\r\n yield put(showAddressValidation(true));\r\n });\r\n}\r\n\r\nfunction* verifyProductByDealerSaga() {\r\n yield takeLatest(GET_VERIFY_PRODUCT_BY_DEALER, function* ({ payload }) {\r\n const defaultErrorMsg =\r\n 'Warning! We apologize for the inconvenience. Please review the number entered and try again. Please call 866-254-0497 option 4 for immediate assitance with your account if the number was enterded correctly.';\r\n\r\n const applyFrom = yield select(selectApplyFrom);\r\n\r\n const response = yield call(apiRequest, getVerifyProductByDealerNumber, [\r\n payload,\r\n applyFrom\r\n ]);\r\n\r\n if (!response?.isSuccess) {\r\n yield put(getVerifyProductByDealerFailed(defaultErrorMsg));\r\n return;\r\n }\r\n\r\n yield put(getVerifyProductByDealerSuccess(response.data));\r\n yield put(saveDealerNumber(payload));\r\n });\r\n}\r\n\r\nfunction* putVerifyDealerNumberDataSaga() {\r\n yield takeLatest(PUT_VERIFY_PRODUCT_BY_DEALER, function* ({ payload }) {\r\n const dealerNumber = yield select(selectDealerNumber);\r\n\r\n if (!dealerNumber) {\r\n return;\r\n }\r\n\r\n const applyFrom = yield select(selectApplyFrom);\r\n\r\n const data = {\r\n dealerNumber: dealerNumber.toString(),\r\n producId: payload\r\n };\r\n\r\n const response = yield call(apiRequest, putVerifyProductByDealerNumber, [\r\n { ...data, applyFrom }\r\n ]);\r\n\r\n if (!response || !response.isSuccess || !response.data) {\r\n let defaultErrorMsg =\r\n \"We're sorry! You have not chosen the right product for the Dealer you are applying to.\";\r\n\r\n if (response.status === HTTP_STATUS.NOT_FOUND) {\r\n defaultErrorMsg = DEFAULT_WRONG_MESSAGE;\r\n }\r\n\r\n yield put(putVerifyProductByDealerFailed(defaultErrorMsg));\r\n yield put(getVerifyProductByDealer(dealerNumber));\r\n return;\r\n }\r\n\r\n yield put(putVerifyProductByDealerSuccess(response.data));\r\n yield put(replace(ROUTES.APPLY_FORM));\r\n });\r\n}\r\n\r\nfunction* getCustomerIdentitySaga() {\r\n yield takeLatest(\r\n GET_CUSTOMER_IDENTITY,\r\n function* ({ payload: { applicantType, requestId, requiredId = true } }) {\r\n const [{ FirstName, LastName, SSN, PhoneNumber, DOB }] =\r\n yield processCustomerFormData(\r\n APPLICANT_NOMENCLATURE_PREFIX_MAP[applicantType]\r\n );\r\n const applyFrom = yield select(selectApplyFrom);\r\n const dealerNumber = yield select(selectDealerNumber);\r\n\r\n if (!requestId && requiredId) {\r\n requestId = yield select(state =>\r\n selectRequestId(state, applicantType)\r\n );\r\n }\r\n\r\n const confData = {\r\n applicantType,\r\n applyFrom,\r\n dealerNumber\r\n };\r\n\r\n const requestData = requestId\r\n ? { requestId }\r\n : {\r\n ...confData,\r\n FirstName,\r\n LastName,\r\n ssn: SSN,\r\n phoneNumber: PhoneNumber,\r\n DOB\r\n };\r\n\r\n const response = yield call(apiRequest, getCustomerIdentityRequest, [\r\n {\r\n ...requestData\r\n }\r\n ]);\r\n\r\n if (!response || !response.isSuccess || !response.data) {\r\n yield put(\r\n setCustomerIdentityErrorMessage({\r\n applicantType,\r\n message:\r\n 'Sorry, the required information could not be found. Enter it manually.'\r\n })\r\n );\r\n yield put(getCustomerIdentityFailed({ applicantType, ...response }));\r\n return;\r\n }\r\n\r\n const data = response.data;\r\n\r\n const isExpired = data.flags?.isExpired;\r\n const isCompleted = data.flags?.isCompleted;\r\n\r\n if (isExpired || isCompleted) {\r\n yield put(getCustomerIdentityDone({ applicantType, ...data }));\r\n return;\r\n }\r\n\r\n yield put(getCustomerIdentitySuccess({ applicantType, ...data }));\r\n }\r\n );\r\n}\r\n\r\nfunction* getCustomerIdentityFailedSaga() {\r\n yield takeLatest(\r\n GET_CUSTOMER_IDENTITY_FAILED,\r\n function* ({ payload: { applicantType, ...errorData } }) {\r\n const isForQRCode = yield select(selectIsForQRCode);\r\n const isForBDCode = yield select(selectIsForBDCode);\r\n const isForBECode = yield select(selectIsForBECode);\r\n\r\n try {\r\n var message = \"We're sorry, we can't find the information.\";\r\n\r\n if (errorData.errorMessage) {\r\n message = `${errorData.errorMessage.title}. ${errorData.errorMessage.description}`;\r\n } else {\r\n if (errorData.showToUser) {\r\n message = errorData.message;\r\n }\r\n }\r\n\r\n yield put(setCustomerIdentityErrorMessage({ applicantType, message }));\r\n\r\n if (!isForQRCode || !isForBDCode || isForBECode) {\r\n yield put(enterApplicantDataManually({ applicantType, value: true }));\r\n }\r\n } catch (error) {\r\n yield put(\r\n setCustomerIdentityErrorMessage({\r\n applicantType,\r\n message: 'Sorry an error occurred. Contact Us.'\r\n })\r\n );\r\n if (!isForQRCode || !isForBDCode || isForBECode) {\r\n yield put(enterApplicantDataManually({ applicantType, value: true }));\r\n }\r\n }\r\n }\r\n );\r\n}\r\n\r\nfunction* getCustomerIdentityStopedSaga() {\r\n yield takeEvery(GET_CUSTOMER_IDENTITY_STOP, function* () {\r\n yield call(regularHeimdalAxios.cancel);\r\n });\r\n}\r\n\r\nfunction* notificationReceivedSaga() {\r\n yield takeLatest(\r\n WS_NOTIFICATION_RECEIVED,\r\n function* ({ notification: { elementNumber, notificationId } }) {\r\n const applicantType = yield select(state =>\r\n selectCustomerIdentityRequestId(state, elementNumber)\r\n );\r\n\r\n if (\r\n notificationId === WS_NOTIFICATION_CUSTOMER_IDENTITY_PROCESS &&\r\n applicantType\r\n ) {\r\n yield put(\r\n getCustomerIdentity({ applicantType, requestId: elementNumber })\r\n );\r\n }\r\n }\r\n );\r\n}\r\n\r\nfunction* applyFromQRCode(response) {\r\n const data = response.data;\r\n const { dealerNumber, applicantType = BORROWER_NOMENCLATURE } = data.identify;\r\n\r\n yield put(setForQRCode());\r\n yield put(\r\n savePreviousData({\r\n applicantType: applicantType.toString(),\r\n ...data\r\n })\r\n );\r\n yield put(\r\n initRetrieveApplicationData({\r\n applicantType: applicantType.toString(),\r\n ...data\r\n })\r\n );\r\n if (dealerNumber) {\r\n yield put(saveDealerNumber(dealerNumber));\r\n }\r\n\r\n yield put(putMobileVerificationAsSuccessfulSuccess(response.data));\r\n yield put(replace(ROUTES.APPLY_FORM));\r\n}\r\n\r\nfunction* applyFromIdentityVerificationCode(response) {\r\n yield put(setForVerificationCode());\r\n yield put(\r\n setMessage({\r\n status: MESSAGE_SUCCESS_STATUS_NOMENCLATURE,\r\n title: 'Identity verification was success.',\r\n subTitle: 'Identity verification has been successfully completed.'\r\n })\r\n );\r\n}\r\n\r\nfunction* redirectToMessagePage(response) {\r\n const isSuccessful = response?.data?.flags?.isSuccessful;\r\n\r\n const message = isSuccessful\r\n ? {\r\n status: MESSAGE_SUCCESS_STATUS_NOMENCLATURE,\r\n title: 'Identity Verification was successful.',\r\n subTitle: 'Mobile Identity verification completed.'\r\n }\r\n : {\r\n status: MESSAGE_ERROR_STATUS_NOMENCLATURE,\r\n title: 'Identity Verification was unsuccessful.',\r\n subTitle: 'Customer Identity could not be verified at this time.'\r\n };\r\n\r\n yield put(\r\n setMessage({\r\n status: message.status,\r\n title: message.title,\r\n subTitle: message.subTitle\r\n })\r\n );\r\n yield put(resetVerificationParams());\r\n}\r\n\r\nfunction* putMobileVerificationAsSuccessfulSaga() {\r\n yield takeEvery(\r\n PUT_MOBILE_VERIFICATION_AS_SUCCESSFUL,\r\n function* ({ payload: { requestId, vfp } }) {\r\n const response = yield call(\r\n apiRequest,\r\n putMobileVerificationAsSuccessfulRequest,\r\n [\r\n {\r\n requestId,\r\n vfp\r\n }\r\n ]\r\n );\r\n\r\n if (!response || !response.data?.identify?.applyFrom) {\r\n //as new application have to do if response is not correct, how to stand up application\r\n\r\n // call status and with this take decition\r\n yield call(redirectToMessagePage, response);\r\n yield put(putMobileVerificationAsSuccessfulFailed(response));\r\n return;\r\n }\r\n const data = response.data;\r\n const { applyFrom = APPLY_FROM_QR_CODE_NOMENCLATURE } = data.identify;\r\n\r\n switch (applyFrom) {\r\n case APPLY_FROM_QR_CODE_NOMENCLATURE:\r\n yield call(applyFromQRCode, response);\r\n break;\r\n // case APPLY_FROM_IDENTITY_VERIFICATION_NOMENCLATURE:\r\n // yield call(applyFromIdentityVerificationCode, response);\r\n // break;\r\n\r\n default:\r\n yield put(putMobileVerificationAsSuccessfulSuccess(response.data));\r\n yield call(redirectToMessagePage, response);\r\n }\r\n }\r\n );\r\n}\r\n\r\nfunction* getCustomerIdentityDoneSaga() {\r\n yield takeLatest(\r\n GET_CUSTOMER_IDENTITY_DONE,\r\n function* ({ payload: { applicantType, ...data } }) {\r\n if (data?.flags?.isExpired) {\r\n return;\r\n }\r\n\r\n const applyFrom = yield select(selectApplyFrom);\r\n const retrieveApplicationData = yield select(\r\n selectRetrieveApplicationData\r\n );\r\n\r\n if (\r\n retrieveApplicationData === GETTING_DATA_STATUS.OFF &&\r\n applyFrom === APPLY_FROM_QR_CODE_NOMENCLATURE &&\r\n data.status?.Id === STATUS_COMPLETED\r\n ) {\r\n yield put(stoppedCurrentApplication());\r\n return;\r\n }\r\n\r\n if (retrieveApplicationData === GETTING_DATA_STATUS.IN_PROGRESS) {\r\n if (data.status?.Id !== STATUS_COMPLETED) {\r\n yield put(initRetrieveApplicationDataFailed());\r\n yield put(\r\n setErrorMessage(\r\n 'Imposible to continue the application due an error. Retrieving data failed by status.'\r\n )\r\n );\r\n return;\r\n }\r\n\r\n yield put(initRetrieveApplicationDataSuccess());\r\n }\r\n\r\n if (!isEmpty(data?.applicant?.addressSelection)) {\r\n yield put(showAddressListToSelect(applicantType));\r\n yield put(showCoApplicantModal(false));\r\n }\r\n\r\n yield put(enterApplicantDataManually({ applicantType, value: true }));\r\n }\r\n );\r\n}\r\n\r\nfunction* setCustomerIdentityAddressSaga() {\r\n yield takeLatest(\r\n SAVE_CUSTOMER_IDENTITY_ADDRESS,\r\n function* ({ payload: { applicantType } }) {\r\n yield put(closeAddressListToSelect());\r\n yield put(enterApplicantDataManually({ applicantType, value: true }));\r\n }\r\n );\r\n}\r\n\r\nfunction* setErrorMessageSaga() {\r\n yield takeEvery(SET_ERROR_MESSAGE, function* ({ payload }) {\r\n yield put(replace(ROUTES.ERROR));\r\n });\r\n}\r\n\r\nfunction* setMessageSaga() {\r\n yield takeEvery(SET_MESSAGE, function* ({ payload }) {\r\n yield put(replace(ROUTES.MESSAGE));\r\n });\r\n}\r\n\r\nfunction* getCallReportSaga() {\r\n yield takeLatest(\r\n [GET_CALL_REPORT, RELOAD_CALL_REPORT],\r\n function* ({ payload }) {\r\n const { reload = false, ...rest } = payload;\r\n\r\n const response = yield call(apiRequest, getCallReportRequest, [rest], {\r\n showSuccessMessage: reload,\r\n actionTitle: reload ? 'Update dealers data' : 'Get dealers data'\r\n });\r\n\r\n if (!response?.isSuccess) {\r\n yield put(getCallReportFailed(response));\r\n return;\r\n }\r\n yield put(getCallReportSuccess(response.data));\r\n }\r\n );\r\n}\r\n\r\nconst sagas = [\r\n submitApplyFormSaga,\r\n validateAllAddressesSaga,\r\n verifyProductByDealerSaga,\r\n putVerifyDealerNumberDataSaga,\r\n getCustomerIdentitySaga,\r\n getCustomerIdentityFailedSaga,\r\n getCustomerIdentityStopedSaga,\r\n notificationReceivedSaga,\r\n putMobileVerificationAsSuccessfulSaga,\r\n getCustomerIdentityDoneSaga,\r\n setCustomerIdentityAddressSaga,\r\n setErrorMessageSaga,\r\n setMessageSaga,\r\n getCallReportSaga\r\n];\r\nexport default sagas;\r\n","import { getCustomerIdentity, setErrorMessage } from 'redux/app/actions';\r\nimport {\r\n APPLICANT_TYPES,\r\n BORROWER_NOMENCLATURE,\r\n ENTER_APPLICANT_DATA_MANUALLY,\r\n GET_CUSTOMER_IDENTITY_DONE,\r\n GET_CUSTOMER_IDENTITY_FAILED,\r\n GET_CUSTOMER_IDENTITY_STOP,\r\n GET_CUSTOMER_IDENTITY_SUCCESS,\r\n INIT_RETRIEVE_APPLICATION_DATA,\r\n INIT_RETRIEVE_APPLICATION_DATA_FAILED,\r\n INIT_RETRIEVE_APPLICATION_DATA_SUCCESS,\r\n RESET_APP,\r\n TIMES\r\n} from 'redux/app/constants';\r\nimport {\r\n INFO_NOTIFICATION_TYPE,\r\n logMessageInConsole\r\n} from 'utils/notifications';\r\n\r\nlet customerIdentityIntervalId;\r\n\r\n/**\r\n * Init get Customer Identity\r\n * @param {object} store\r\n */\r\nconst initGetCustomerIdentity = (store, applicantType) => {\r\n stopGetCustomerIdentityInterval();\r\n startGetCustomerIdentityInterval(store, applicantType);\r\n};\r\n\r\n/**\r\n * Clears get Customer Identity interval\r\n */\r\nconst stopGetCustomerIdentityInterval = () => {\r\n if (customerIdentityIntervalId) {\r\n clearInterval(customerIdentityIntervalId);\r\n customerIdentityIntervalId = null;\r\n logMessageInConsole(\r\n 'Stopping customer identity interval',\r\n INFO_NOTIFICATION_TYPE\r\n );\r\n }\r\n};\r\n\r\n/**\r\n * Start Customer Identity Interval\r\n * @param {object} store\r\n */\r\nconst startGetCustomerIdentityInterval = (store, applicantType) => {\r\n logMessageInConsole(\r\n 'Activating customer identity interval',\r\n INFO_NOTIFICATION_TYPE\r\n );\r\n\r\n if (!APPLICANT_TYPES.includes(applicantType?.toString())) {\r\n store.dispatch(\r\n setErrorMessage(\r\n 'Imposible to continue the application due an error. Unknown applicant type.'\r\n )\r\n );\r\n return;\r\n }\r\n\r\n customerIdentityIntervalId = setInterval(() => {\r\n store.dispatch(getCustomerIdentity({ applicantType }));\r\n }, TIMES.QUARTER_MINUTE);\r\n};\r\n\r\nconst middleware = store => next => action => {\r\n const { type } = action;\r\n\r\n switch (type) {\r\n case INIT_RETRIEVE_APPLICATION_DATA:\r\n case GET_CUSTOMER_IDENTITY_SUCCESS:\r\n const { applicantType } = action.payload;\r\n initGetCustomerIdentity(store, applicantType);\r\n break;\r\n case INIT_RETRIEVE_APPLICATION_DATA_SUCCESS:\r\n case INIT_RETRIEVE_APPLICATION_DATA_FAILED:\r\n case GET_CUSTOMER_IDENTITY_DONE:\r\n case GET_CUSTOMER_IDENTITY_FAILED:\r\n case GET_CUSTOMER_IDENTITY_STOP:\r\n case ENTER_APPLICANT_DATA_MANUALLY:\r\n case RESET_APP:\r\n stopGetCustomerIdentityInterval();\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n return next(action);\r\n};\r\n\r\nexport default middleware;\r\n","import { combineReducers } from 'redux-immutable';\r\nimport { fromJS } from 'immutable';\r\n\r\nimport { SAVE_DEALER_NUMBER } from './constants';\r\nimport { RESET_APP } from 'redux/app/constants';\r\n\r\nconst dealerNumberReducer = (state = null, action) => {\r\n switch (action.type) {\r\n case SAVE_DEALER_NUMBER:\r\n return fromJS(action.dealerNumber);\r\n case RESET_APP:\r\n return null;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default combineReducers({\r\n dealerNumber: dealerNumberReducer\r\n});\r\n","import { LOCATION_CHANGE } from 'connected-react-router';\r\nimport { fromJS, Map } from 'immutable';\r\nimport { combineReducers } from 'redux-immutable';\r\nimport {\r\n formatCustomerIdentity,\r\n formatCustomerIdentityAddress,\r\n formatPreviousCustomerIdentity\r\n} from 'utils/functions';\r\n\r\nimport {\r\n RESET_APP,\r\n ADD_COAPPLICANT,\r\n SUBMIT_APPLY_FORM,\r\n SUBMIT_APPLY_FORM_FAILED,\r\n SUBMIT_APPLY_FORM_SUCCESS,\r\n VALIDATE_ADDRESS_SUCCESS,\r\n VALIDATE_ADDRESS,\r\n VALIDATE_ADDRESS_FAILED,\r\n RESET_VALIDATED_ADDRESS,\r\n SAVE_APPLY_FORM_VALUES,\r\n CO_APPLICANT_PREFIX,\r\n SHOW_ADDRESS_VALIDATION,\r\n CONFIRMED_ADDRESSES,\r\n RESET_RESULTS,\r\n GET_VERIFY_PRODUCT_BY_DEALER_FAILED,\r\n GET_VERIFY_PRODUCT_BY_DEALER_SUCCESS,\r\n GET_VERIFY_PRODUCT_BY_DEALER,\r\n PUT_VERIFY_PRODUCT_BY_DEALER,\r\n PUT_VERIFY_PRODUCT_BY_DEALER_SUCCESS,\r\n PUT_VERIFY_PRODUCT_BY_DEALER_FAILED,\r\n ENTER_APPLICANT_DATA_MANUALLY,\r\n GET_CUSTOMER_IDENTITY_SUCCESS,\r\n GET_CUSTOMER_IDENTITY,\r\n GET_CUSTOMER_IDENTITY_FAILED,\r\n BORROWER_NOMENCLATURE,\r\n COBORROWER_NOMENCLATURE,\r\n SET_CUSTOMER_IDENTITY_ERROR_MESSAGE,\r\n GET_CUSTOMER_IDENTITY_DONE,\r\n GET_CUSTOMER_IDENTITY_STOP,\r\n PUT_MOBILE_VERIFICATION_AS_SUCCESSFUL,\r\n PUT_MOBILE_VERIFICATION_AS_SUCCESSFUL_SUCCESS,\r\n PUT_MOBILE_VERIFICATION_AS_SUCCESSFUL_FAILED,\r\n SHOW_ADDRESS_LIST_TO_SELECT,\r\n CLOSE_ADDRESS_LIST_TO_SELECT,\r\n SAVE_CUSTOMER_IDENTITY_ADDRESS,\r\n SHOW_ADD_COAPPLICANT_MODAL,\r\n SET_VERIFICATION_PARAMS,\r\n CALLING,\r\n NOT_CALLED,\r\n CALLED_WITH_ERROR,\r\n CALLED_WITH_SUCCESS,\r\n SET_FOR_CUSTOMER,\r\n SET_FOR_QR_CODE,\r\n SET_FOR_BD_CODE,\r\n SET_FOR_BE_CODE,\r\n SET_FOR_VERIFICATION_CODE,\r\n RESET_DATA_CUSTOMER_IDENTITY,\r\n STOPPED_CURRENT_APPLICATION,\r\n APPLY_FROM_CUSTOMER_NOMENCLATURE,\r\n APPLY_FROM_QR_CODE_NOMENCLATURE,\r\n APPLY_FROM_DEALER_NOMENCLATURE,\r\n INIT_RETRIEVE_APPLICATION_DATA,\r\n INIT_RETRIEVE_APPLICATION_DATA_SUCCESS,\r\n INIT_RETRIEVE_APPLICATION_DATA_FAILED,\r\n SAVE_PREVIOUS_DATA,\r\n SET_ERROR_MESSAGE,\r\n GETTING_DATA_STATUS,\r\n SET_APPLICANT_CONSENT_APPROVED,\r\n SET_MESSAGE,\r\n APPLY_FROM_IDENTITY_VERIFICATION_NOMENCLATURE,\r\n APPLY_FROM_BD_CODE_NOMENCLATURE,\r\n STATUS_COMPLETED,\r\n CALLED_WITH_SUCCESS_BUT_NOT_VERIFIED,\r\n RESET_VERIFICATION_PARAMS,\r\n SKIP_INPUT_FORM,\r\n APPLY_FROM_BE_CODE_NOMENCLATURE,\r\n GET_CALL_REPORT,\r\n GET_CALL_REPORT_SUCCESS,\r\n GET_CALL_REPORT_FAILED,\r\n RELOAD_CALL_REPORT,\r\n SET_SEARCH_TEXT,\r\n SET_ASSOCIATION_FORM_INFO,\r\n SET_CURRENT_ASSOCIATION_NUMBER,\r\n CLOSE_ADDRESS_MAP,\r\n GET_MAP_BY_COORDINATES\r\n} from './constants';\r\n\r\nconst hasCoApplicantReducer = (state = false, action) => {\r\n switch (action.type) {\r\n case ADD_COAPPLICANT:\r\n return action.payload;\r\n case RESET_APP:\r\n case SET_FOR_QR_CODE:\r\n case SET_FOR_BD_CODE:\r\n case SET_FOR_BE_CODE:\r\n return false;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst applyFormIsFetchingReducer = (state = false, action) => {\r\n switch (action.type) {\r\n case SUBMIT_APPLY_FORM:\r\n return true;\r\n case SUBMIT_APPLY_FORM_FAILED:\r\n case SUBMIT_APPLY_FORM_SUCCESS:\r\n case RESET_APP:\r\n return false;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst applyFormErrorReducer = (state = null, action) => {\r\n switch (action.type) {\r\n case SUBMIT_APPLY_FORM:\r\n case RESET_APP:\r\n case SUBMIT_APPLY_FORM_SUCCESS:\r\n return null;\r\n case SUBMIT_APPLY_FORM_FAILED:\r\n return action.error;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst applyFormResultReducer = (state = null, action) => {\r\n switch (action.type) {\r\n case SUBMIT_APPLY_FORM_SUCCESS:\r\n return fromJS(action.payload);\r\n case SUBMIT_APPLY_FORM:\r\n case SUBMIT_APPLY_FORM_FAILED:\r\n case RESET_RESULTS:\r\n case RESET_APP:\r\n return null;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst isValidatingAllAdressesReducer = (state = false, action) => {\r\n switch (action.type) {\r\n case VALIDATE_ADDRESS:\r\n return true;\r\n case VALIDATE_ADDRESS_SUCCESS:\r\n case VALIDATE_ADDRESS_FAILED:\r\n case SUBMIT_APPLY_FORM_FAILED:\r\n case SUBMIT_APPLY_FORM_SUCCESS:\r\n case RESET_APP:\r\n case LOCATION_CHANGE:\r\n return false;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst validatedAddressesReducer = (state = null, action) => {\r\n switch (action.type) {\r\n case VALIDATE_ADDRESS_SUCCESS:\r\n return action.payload;\r\n case VALIDATE_ADDRESS:\r\n case VALIDATE_ADDRESS_FAILED:\r\n case RESET_VALIDATED_ADDRESS:\r\n case RESET_APP:\r\n return null;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst confirmedAddressesReducer = (state = null, action) => {\r\n switch (action.type) {\r\n case CONFIRMED_ADDRESSES:\r\n return action.payload;\r\n case RESET_VALIDATED_ADDRESS:\r\n case RESET_APP:\r\n return null;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst applyFormValuesReducer = (state = null, action) => {\r\n switch (action.type) {\r\n case SAVE_PREVIOUS_DATA:\r\n return fromJS({\r\n ...formatPreviousCustomerIdentity(action.payload)\r\n });\r\n case GET_CUSTOMER_IDENTITY_DONE:\r\n return fromJS({\r\n ...state.toJS(),\r\n ...formatCustomerIdentity(action.payload)\r\n });\r\n case SAVE_CUSTOMER_IDENTITY_ADDRESS:\r\n const {\r\n payload: { applicantType, customerAddress }\r\n } = action;\r\n return fromJS({\r\n ...state.toJS(),\r\n ...formatCustomerIdentityAddress(applicantType, customerAddress)\r\n });\r\n case SAVE_APPLY_FORM_VALUES:\r\n return fromJS(action.payload);\r\n case ADD_COAPPLICANT:\r\n if (!action.payload) {\r\n const source = state?.toJS();\r\n if (source) {\r\n const value = Object.keys(source).reduce(\r\n (output, key) =>\r\n key.includes(CO_APPLICANT_PREFIX)\r\n ? output\r\n : { ...output, [key]: source[key] },\r\n {}\r\n );\r\n\r\n return fromJS(value);\r\n } else return state;\r\n }\r\n\r\n return state;\r\n case RESET_APP:\r\n return null;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const showAddressValidationReducer = (state = false, action) => {\r\n switch (action.type) {\r\n case SHOW_ADDRESS_VALIDATION:\r\n return action.payload;\r\n case SUBMIT_APPLY_FORM:\r\n case RESET_APP:\r\n return false;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst verifyProductByDealerReducer = (state = null, action) => {\r\n switch (action.type) {\r\n case GET_VERIFY_PRODUCT_BY_DEALER_SUCCESS:\r\n return fromJS(action.payload);\r\n case PUT_VERIFY_PRODUCT_BY_DEALER_SUCCESS:\r\n case GET_VERIFY_PRODUCT_BY_DEALER_FAILED:\r\n case RESET_APP:\r\n return null;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst isFetchingVerifyProductByDealerReducer = (state = false, action) => {\r\n switch (action.type) {\r\n case GET_VERIFY_PRODUCT_BY_DEALER:\r\n return true;\r\n case GET_VERIFY_PRODUCT_BY_DEALER_SUCCESS:\r\n case GET_VERIFY_PRODUCT_BY_DEALER_FAILED:\r\n case RESET_APP:\r\n case LOCATION_CHANGE:\r\n return false;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst dealerNumberFormErrorReducer = (state = null, action) => {\r\n switch (action.type) {\r\n case GET_VERIFY_PRODUCT_BY_DEALER_FAILED:\r\n case PUT_VERIFY_PRODUCT_BY_DEALER_FAILED:\r\n return action.error;\r\n case RESET_APP:\r\n case GET_VERIFY_PRODUCT_BY_DEALER_SUCCESS:\r\n case PUT_VERIFY_PRODUCT_BY_DEALER_SUCCESS:\r\n return null;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst dealerNumberFormVerifyDataErrorReducer = (state = null, action) => {\r\n switch (action.type) {\r\n case PUT_VERIFY_PRODUCT_BY_DEALER_FAILED:\r\n return action.error;\r\n case RESET_APP:\r\n case LOCATION_CHANGE:\r\n case GET_VERIFY_PRODUCT_BY_DEALER_FAILED:\r\n case PUT_VERIFY_PRODUCT_BY_DEALER_SUCCESS:\r\n return null;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst isFetchingPutVerifyDealerDataReducer = (state = false, action) => {\r\n switch (action.type) {\r\n case PUT_VERIFY_PRODUCT_BY_DEALER:\r\n return true;\r\n case PUT_VERIFY_PRODUCT_BY_DEALER_SUCCESS:\r\n case PUT_VERIFY_PRODUCT_BY_DEALER_FAILED:\r\n case RESET_APP:\r\n case LOCATION_CHANGE:\r\n return false;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst manuallyInit = {\r\n [BORROWER_NOMENCLATURE]: false,\r\n [COBORROWER_NOMENCLATURE]: false\r\n};\r\n\r\nconst enterApplicantDataManuallyDataReducer = (\r\n state = new Map(manuallyInit),\r\n action\r\n) => {\r\n const { type, payload: { applicantType, value } = {} } = action;\r\n\r\n switch (type) {\r\n case ENTER_APPLICANT_DATA_MANUALLY:\r\n return state.set(+applicantType, value);\r\n case RESET_APP:\r\n return new Map(manuallyInit);\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst customerIdentityReducer = (state = new Map(), action) => {\r\n const { type, payload } = action;\r\n\r\n switch (type) {\r\n case INIT_RETRIEVE_APPLICATION_DATA:\r\n case GET_CUSTOMER_IDENTITY_DONE:\r\n case GET_CUSTOMER_IDENTITY_SUCCESS:\r\n const { applicantType } = payload;\r\n return state.set(applicantType, fromJS(payload));\r\n case RESET_DATA_CUSTOMER_IDENTITY:\r\n case GET_CUSTOMER_IDENTITY_STOP:\r\n case GET_CUSTOMER_IDENTITY_FAILED:\r\n return state.delete(payload?.applicantType);\r\n case RESET_APP:\r\n return new Map();\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst customerIdentityIsFetchingReducer = (state = new Map(), action) => {\r\n const { type, payload: { applicantType } = {} } = action;\r\n\r\n switch (type) {\r\n case GET_CUSTOMER_IDENTITY:\r\n return state.set(+applicantType, true);\r\n case GET_CUSTOMER_IDENTITY_DONE:\r\n case GET_CUSTOMER_IDENTITY_STOP:\r\n case GET_CUSTOMER_IDENTITY_FAILED:\r\n return state.set(+applicantType, false);\r\n case RESET_APP:\r\n return new Map();\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst customerIdentityErrorReducer = (state = new Map(), action) => {\r\n const { type, payload: { applicantType, message } = {} } = action;\r\n\r\n switch (type) {\r\n case GET_CUSTOMER_IDENTITY:\r\n return state.set(+applicantType, null);\r\n case SET_CUSTOMER_IDENTITY_ERROR_MESSAGE:\r\n return state.set(+applicantType, message);\r\n case RESET_APP:\r\n case SAVE_APPLY_FORM_VALUES:\r\n return new Map();\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst customerIdentityInProgressRequestReducer = (\r\n state = new Map(),\r\n action\r\n) => {\r\n const { type, payload } = action;\r\n\r\n switch (type) {\r\n case INIT_RETRIEVE_APPLICATION_DATA:\r\n case GET_CUSTOMER_IDENTITY_SUCCESS:\r\n return state.set(payload.applicantType, {\r\n requestId: fromJS(payload.requestId),\r\n status: fromJS(payload.status?.Id)\r\n });\r\n case GET_CUSTOMER_IDENTITY_DONE:\r\n return state.set(payload.applicantType, {\r\n requestId: null,\r\n status: fromJS(payload.status?.Id)\r\n });\r\n case ENTER_APPLICANT_DATA_MANUALLY:\r\n return state.delete(payload.applicantType);\r\n case RESET_APP:\r\n return new Map();\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst selectMobileVerificationStateReducer = (state = NOT_CALLED, action) => {\r\n switch (action.type) {\r\n case PUT_MOBILE_VERIFICATION_AS_SUCCESSFUL_SUCCESS:\r\n return action.payload?.status?.Id === STATUS_COMPLETED\r\n ? CALLED_WITH_SUCCESS\r\n : CALLED_WITH_SUCCESS_BUT_NOT_VERIFIED;\r\n case PUT_MOBILE_VERIFICATION_AS_SUCCESSFUL_FAILED:\r\n return CALLED_WITH_ERROR;\r\n case PUT_MOBILE_VERIFICATION_AS_SUCCESSFUL:\r\n return CALLING;\r\n case RESET_APP:\r\n case LOCATION_CHANGE:\r\n return NOT_CALLED;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst putMobileVerificationAsSuccessfulIsFetchingReducer = (\r\n state = true,\r\n action\r\n) => {\r\n switch (action.type) {\r\n case PUT_MOBILE_VERIFICATION_AS_SUCCESSFUL:\r\n return true;\r\n case PUT_MOBILE_VERIFICATION_AS_SUCCESSFUL_SUCCESS:\r\n case PUT_MOBILE_VERIFICATION_AS_SUCCESSFUL_FAILED:\r\n case RESET_APP:\r\n return false;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst verificationParamsReducer = (state = null, action) => {\r\n switch (action.type) {\r\n case SET_VERIFICATION_PARAMS:\r\n return action.payload;\r\n case RESET_VERIFICATION_PARAMS:\r\n case RESET_APP:\r\n return null;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const showMultipleAddressSelectionReducer = (state = null, action) => {\r\n switch (action.type) {\r\n case SHOW_ADDRESS_LIST_TO_SELECT:\r\n return action.payload;\r\n case CLOSE_ADDRESS_LIST_TO_SELECT:\r\n case RESET_APP:\r\n return null;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const showAddCoApplicantModalReducer = (state = false, action) => {\r\n switch (action.type) {\r\n case SHOW_ADD_COAPPLICANT_MODAL:\r\n return action.payload;\r\n case RESET_APP:\r\n return false;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst stoppedCurrentApplicationReducer = (state = false, action) => {\r\n switch (action.type) {\r\n case STOPPED_CURRENT_APPLICATION:\r\n return true;\r\n case RESET_APP:\r\n return false;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst retrieveApplicationDataReducer = (\r\n state = GETTING_DATA_STATUS.OFF,\r\n action\r\n) => {\r\n switch (action.type) {\r\n case INIT_RETRIEVE_APPLICATION_DATA:\r\n return GETTING_DATA_STATUS.IN_PROGRESS;\r\n case INIT_RETRIEVE_APPLICATION_DATA_SUCCESS:\r\n case INIT_RETRIEVE_APPLICATION_DATA_FAILED:\r\n return GETTING_DATA_STATUS.COMPLETED;\r\n case RESET_APP:\r\n return GETTING_DATA_STATUS.OFF;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const applyFromReducer = (\r\n state = APPLY_FROM_DEALER_NOMENCLATURE,\r\n action\r\n) => {\r\n switch (action.type) {\r\n case SET_FOR_CUSTOMER:\r\n return APPLY_FROM_CUSTOMER_NOMENCLATURE;\r\n case SET_FOR_QR_CODE:\r\n return APPLY_FROM_QR_CODE_NOMENCLATURE;\r\n case SET_FOR_VERIFICATION_CODE:\r\n return APPLY_FROM_IDENTITY_VERIFICATION_NOMENCLATURE;\r\n case SET_FOR_BD_CODE:\r\n return APPLY_FROM_BD_CODE_NOMENCLATURE;\r\n case SET_FOR_BE_CODE:\r\n return APPLY_FROM_BE_CODE_NOMENCLATURE;\r\n case RESET_APP:\r\n return APPLY_FROM_DEALER_NOMENCLATURE;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const errorMessageReducer = (state = null, action) => {\r\n switch (action.type) {\r\n case SET_ERROR_MESSAGE:\r\n return action.payload;\r\n case RESET_APP:\r\n return null;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const messageReducer = (state = null, action) => {\r\n switch (action.type) {\r\n case SET_MESSAGE:\r\n return action.payload;\r\n case RESET_APP:\r\n return null;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst phoneConsentApprovedReducer = (state = false, action) => {\r\n switch (action.type) {\r\n case SET_APPLICANT_CONSENT_APPROVED:\r\n return !state;\r\n case RESET_APP:\r\n return false;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const skipFormReducer = (state = null, action) => {\r\n switch (action.type) {\r\n case RESET_APP:\r\n return false;\r\n case SKIP_INPUT_FORM:\r\n return true;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\n//assocaitions call report\r\nconst associationCallReportIsFetchingReducer = (state = false, action) => {\r\n switch (action.type) {\r\n case GET_CALL_REPORT:\r\n return true;\r\n case GET_CALL_REPORT_SUCCESS:\r\n case GET_CALL_REPORT_FAILED:\r\n case RESET_APP:\r\n return false;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst associationReloadCallReportIsFetchingReducer = (\r\n state = false,\r\n action\r\n) => {\r\n switch (action.type) {\r\n case RELOAD_CALL_REPORT:\r\n return true;\r\n case GET_CALL_REPORT_SUCCESS:\r\n case GET_CALL_REPORT_FAILED:\r\n case RESET_APP:\r\n return false;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst errorCallReportReducer = (state = null, action) => {\r\n switch (action.type) {\r\n case GET_CALL_REPORT_FAILED:\r\n return action.payload;\r\n case GET_CALL_REPORT:\r\n case RELOAD_CALL_REPORT:\r\n case GET_CALL_REPORT_SUCCESS:\r\n case RESET_APP:\r\n return null;\r\n default:\r\n return state;\r\n }\r\n};\r\nconst associationCallReportReducer = (state = null, action) => {\r\n switch (action.type) {\r\n case GET_CALL_REPORT_SUCCESS:\r\n return action.payload;\r\n case GET_CALL_REPORT_FAILED:\r\n case RESET_APP:\r\n return null;\r\n default:\r\n return state;\r\n }\r\n};\r\nconst searchTextReducer = (state = '', action) => {\r\n switch (action.type) {\r\n case SET_SEARCH_TEXT:\r\n return action.payload;\r\n case RESET_APP:\r\n return '';\r\n default:\r\n return state;\r\n }\r\n};\r\nconst associationFormInfoReducer = (\r\n state = { distance: 25, zipCode: '' },\r\n action\r\n) => {\r\n switch (action.type) {\r\n case SET_ASSOCIATION_FORM_INFO:\r\n return action.payload;\r\n // case RESET_APP:\r\n // return { distance: 25, zipCode: '' };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst associationNumberReducer = (state = null, action) => {\r\n switch (action.type) {\r\n case SET_CURRENT_ASSOCIATION_NUMBER:\r\n return action.payload;\r\n case RESET_APP:\r\n return null;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst addressMapReducer = (\r\n state = {\r\n open: false\r\n },\r\n action\r\n) => {\r\n switch (action.type) {\r\n case GET_MAP_BY_COORDINATES:\r\n return {\r\n open: true,\r\n data: action.payload\r\n };\r\n\r\n case CLOSE_ADDRESS_MAP:\r\n case RESET_APP:\r\n return {\r\n open: false\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default combineReducers({\r\n hasCoApplicant: hasCoApplicantReducer,\r\n applyFormIsFetching: applyFormIsFetchingReducer,\r\n applyFormResult: applyFormResultReducer,\r\n applyFormError: applyFormErrorReducer,\r\n showAddressValidation: showAddressValidationReducer,\r\n isValidatingAllAdresses: isValidatingAllAdressesReducer,\r\n validatedAddresses: validatedAddressesReducer,\r\n confirmedAddresses: confirmedAddressesReducer,\r\n applyFormValues: applyFormValuesReducer,\r\n verifyProductByDealer: verifyProductByDealerReducer,\r\n isFetchingVerifyProductByDealer: isFetchingVerifyProductByDealerReducer,\r\n dealerNumberFormError: dealerNumberFormErrorReducer,\r\n dealerNumberFormVerifyDataError: dealerNumberFormVerifyDataErrorReducer,\r\n isFetchingPutVerifyDealerData: isFetchingPutVerifyDealerDataReducer,\r\n enterApplicantDataManuallyValue: enterApplicantDataManuallyDataReducer,\r\n customerIdentity: customerIdentityReducer,\r\n customerIdentityIsFetching: customerIdentityIsFetchingReducer,\r\n customerIdentityError: customerIdentityErrorReducer,\r\n customerIdentityInProgressRequest: customerIdentityInProgressRequestReducer,\r\n mobileVerificationState: selectMobileVerificationStateReducer,\r\n putMobileVerificationAsSuccessfulIsFetching:\r\n putMobileVerificationAsSuccessfulIsFetchingReducer,\r\n verificationParams: verificationParamsReducer,\r\n showMultipleAddressSelection: showMultipleAddressSelectionReducer,\r\n showAddCoApplicantModal: showAddCoApplicantModalReducer,\r\n stoppedCurrentApplication: stoppedCurrentApplicationReducer,\r\n applyFrom: applyFromReducer,\r\n retrieveApplicationData: retrieveApplicationDataReducer,\r\n errorMessage: errorMessageReducer,\r\n phoneConsentApproved: phoneConsentApprovedReducer,\r\n message: messageReducer,\r\n skipForm: skipFormReducer,\r\n associationCallReportIsFetching: associationCallReportIsFetchingReducer,\r\n associationReloadCallReportIsFetching:\r\n associationReloadCallReportIsFetchingReducer,\r\n associationCallReport: associationCallReportReducer,\r\n searchText: searchTextReducer,\r\n associationFormInfo: associationFormInfoReducer,\r\n errorCallReport: errorCallReportReducer,\r\n associationNumber: associationNumberReducer,\r\n addressMap: addressMapReducer\r\n});\r\n","/**\r\n * Combine all reducers in this file and export the combined reducers.\r\n * If we were to do this in store.js, reducers wouldn't be hot reloadable.\r\n */\r\n\r\nimport { combineReducers } from 'redux-immutable';\r\nimport { connectRouter } from 'connected-react-router/immutable';\r\n\r\nimport tokensReducer from './tokens/reducer';\r\nimport appReducer from './app/reducer';\r\n\r\n/**\r\n * Creates the main reducer with the asynchronously loaded ones\r\n */\r\nconst createRootReducer = (history, asyncReducers) => {\r\n return combineReducers({\r\n router: connectRouter(history),\r\n tokens: tokensReducer,\r\n app: appReducer,\r\n ...asyncReducers\r\n });\r\n};\r\n\r\nexport default createRootReducer;\r\n","import { makeActionCreator } from 'redux/utils';\r\nimport * as CONSTANTS from './constants';\r\n\r\n// Websocket general actions\r\nexport const wsInit = makeActionCreator(CONSTANTS.WS_INIT);\r\n\r\nexport const wsConnected = makeActionCreator(CONSTANTS.WS_CONNECTED);\r\n\r\nexport const wsRetryConnection = makeActionCreator(\r\n CONSTANTS.WS_RETRY_CONNECTION\r\n);\r\n\r\nexport const wsReConnecting = makeActionCreator(\r\n CONSTANTS.WS_RECONNECTING,\r\n 'error'\r\n);\r\n\r\nexport const wsReConnected = makeActionCreator(\r\n CONSTANTS.WS_RECONNECTED,\r\n 'connectionId'\r\n);\r\n\r\nexport const wsError = makeActionCreator(CONSTANTS.WS_ERROR, 'error');\r\n\r\nexport const wsClosed = makeActionCreator(CONSTANTS.WS_CLOSED);\r\n\r\nexport const wsStop = makeActionCreator(CONSTANTS.WS_STOP);\r\n\r\n// Notifications\r\n\r\nexport const wsSendNotification = makeActionCreator(\r\n CONSTANTS.WS_SEND_NOTIFICATION,\r\n 'notification'\r\n);\r\n\r\nexport const wsNotificationReceived = makeActionCreator(\r\n CONSTANTS.WS_NOTIFICATION_RECEIVED,\r\n 'notification'\r\n);\r\n\r\n// Open Item Data\r\nexport const wsOpenItemDataReceived = makeActionCreator(\r\n CONSTANTS.WS_OPEN_ITEM_DATA_RECEIVED,\r\n 'payload'\r\n);\r\n\r\n// Close Item Data\r\nexport const wsCloseItemDataReceived = makeActionCreator(\r\n CONSTANTS.WS_CLOSE_ITEM_DATA_RECEIVED,\r\n 'payload'\r\n);\r\n\r\n// Save Item received\r\nexport const wsSaveOpenItemDataReceivedSaga = makeActionCreator(\r\n CONSTANTS.WS_SAVE_OPEN_ITEM_DATA_RECEIVED,\r\n 'payload'\r\n);\r\n","import { HubConnectionState } from '@microsoft/signalr';\r\n\r\nimport { MAX_RETRY, RETRY_TIME } from 'redux/WebSockets/constants';\r\nimport * as actions from 'redux/WebSockets/actions';\r\n\r\nlet retryCount = 0;\r\nlet retryTime = RETRY_TIME;\r\n\r\n/**\r\n * Handles reconnecting event\r\n * @param {*} store\r\n * @param {} connection\r\n */\r\nexport const onReconnecting = (store, connection) => error => {\r\n console.assert(connection.state === HubConnectionState.Reconnecting);\r\n\r\n store.dispatch(actions.wsReConnecting(error));\r\n\r\n console.info(`Connection lost due to error \"${error}\". Reconnecting...`);\r\n};\r\n\r\n/**\r\n * Handles reconected event\r\n * @param {*} store\r\n * @param {*} connection\r\n */\r\nexport const onReconnected = (store, connection) => connectionId => {\r\n console.assert(connection.state === HubConnectionState.Connected);\r\n\r\n console.info(\r\n `Connection reestablished. Connected with connectionId \"${connectionId}\".`\r\n );\r\n\r\n store.dispatch(actions.wsReConnected(connectionId));\r\n // If we can connect and all in use was active, then stop it.\r\n};\r\n\r\n/**\r\n * Handles on close event\r\n * @param {*} store\r\n * @param {*} connection\r\n */\r\nexport const onClose = (store, connection) => error => {\r\n console.assert(connection.state === HubConnectionState.Disconnected);\r\n\r\n console.error(\r\n `Connection closed due to error \"${error}\". Try refreshing this page to restart the connection.`\r\n );\r\n\r\n store.dispatch(actions.wsClosed(error));\r\n};\r\n\r\n/**\r\n * Handles on error event\r\n * @param {*} store\r\n */\r\nexport const onError = store => error => {\r\n store.dispatch(actions.wsError(error));\r\n console.error(error.toString());\r\n};\r\n\r\nexport const start = (store, connection) => {\r\n const startAsync = async () => {\r\n try {\r\n if (retryCount === MAX_RETRY) {\r\n console.warn(\r\n `Max WS connection attempts (${MAX_RETRY}) reached. Activating All In Use and Contract Validation Queue polling.`\r\n );\r\n return;\r\n }\r\n\r\n await connection.start();\r\n console.assert(connection.state === HubConnectionState.Connected);\r\n console.log('WS connected');\r\n store.dispatch(actions.wsConnected());\r\n\r\n // If we can connect and all in use was active, then stop it.\r\n } catch (err) {\r\n console.log(err);\r\n console.assert(connection.state === HubConnectionState.Disconnected);\r\n retryCount++;\r\n retryTime *= retryCount;\r\n store.dispatch(actions.wsError(err));\r\n\r\n setTimeout(() => {\r\n store.dispatch(actions.wsError(err));\r\n startAsync();\r\n }, retryTime);\r\n }\r\n };\r\n\r\n return startAsync;\r\n};\r\n\r\nexport const receiveNotification =\r\n store =>\r\n (\r\n appInst = null,\r\n notificationId,\r\n elementId = null,\r\n elementNumber = null,\r\n userName = null,\r\n description = null,\r\n data = null\r\n ) => {\r\n store.dispatch(\r\n actions.wsNotificationReceived({\r\n appInst,\r\n notificationId,\r\n elementId,\r\n elementNumber,\r\n userName,\r\n description,\r\n data\r\n })\r\n );\r\n };\r\n\r\nexport const receiveOpenItemNotification =\r\n store =>\r\n (\r\n appInst = null,\r\n elementId = null,\r\n areaId = null,\r\n userName = null,\r\n createdDate = null,\r\n expirationDate = null,\r\n description = null,\r\n msg = null\r\n ) => {\r\n if (!store) {\r\n return;\r\n }\r\n store.dispatch(\r\n actions.wsOpenItemDataReceived({\r\n appInst,\r\n elementId,\r\n areaId,\r\n userName,\r\n createdDate,\r\n expirationDate,\r\n description,\r\n msg\r\n })\r\n );\r\n };\r\n\r\nexport const receiveCloseItemNotification =\r\n store =>\r\n (\r\n appInst = null,\r\n elementId = null,\r\n areaId = null,\r\n userName = null,\r\n msg = null\r\n ) => {\r\n if (!store) {\r\n return;\r\n }\r\n store.dispatch(\r\n actions.wsCloseItemDataReceived({\r\n appInst,\r\n elementId,\r\n areaId,\r\n userName,\r\n msg\r\n })\r\n );\r\n };\r\n\r\nexport const init = store => {\r\n store.dispatch(actions.wsInit());\r\n};\r\n","/**\r\n * Create the store with asynchronously loaded reducers\r\n */\r\n\r\nimport { createStore, applyMiddleware, compose } from 'redux';\r\nimport { fromJS } from 'immutable';\r\nimport { routerMiddleware } from 'connected-react-router/immutable';\r\nimport createSagaMiddleware from 'redux-saga';\r\n// import { configurePublicAxiosTk, configurePrivateAxiosTk } from 'lib/axios';\r\n\r\nimport pick from 'lodash/pick';\r\nimport history from 'utils/history';\r\n\r\n// Import state persistance utilities\r\nimport { loadState, saveState } from 'utils/storage';\r\nimport appSaga from './app/sagas';\r\nimport createReducer from './reducers';\r\n\r\nimport customerIdentityInProgress from 'redux/middleware/customerIdentityInProgress';\r\nimport { createSignalrMiddleware, initSignalr } from './middleware/signalr';\r\n\r\nconst sagaMiddleware = createSagaMiddleware();\r\nconst signalrMiddleware = createSignalrMiddleware();\r\n\r\nconst configureStore = (initialState = {}, history) => {\r\n // Create the store with two middlewares\r\n // 1. sagaMiddleware: Makes redux-sagas work\r\n // 2. routerMiddleware: Syncs the location/URL path to the state\r\n const middlewares = [\r\n sagaMiddleware,\r\n customerIdentityInProgress,\r\n routerMiddleware(history),\r\n signalrMiddleware\r\n ];\r\n\r\n const enhancers = [applyMiddleware(...middlewares)];\r\n\r\n // If Redux DevTools Extension is installed use it, otherwise use Redux compose\r\n /* eslint-disable no-underscore-dangle */\r\n const composeEnhancers =\r\n process.env.NODE_ENV !== 'production' &&\r\n typeof window === 'object' &&\r\n window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__\r\n ? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__\r\n : compose;\r\n /* eslint-enable */\r\n\r\n const store = createStore(\r\n createReducer(history),\r\n fromJS(initialState),\r\n composeEnhancers(...enhancers)\r\n );\r\n\r\n // Extensions\r\n store.runSaga = sagaMiddleware.run;\r\n\r\n // Async reducer registry\r\n store.asyncReducers = {};\r\n // Saga registry\r\n store.asyncSagas = {\r\n appSaga\r\n };\r\n\r\n appSaga.map(store.runSaga);\r\n\r\n // Make reducers hot reloadable, see http://mxs.is/googmo\r\n /* istanbul ignore next */\r\n if (module.hot) {\r\n module.hot.accept('./reducers', () => {\r\n import('./reducers').then(reducerModule => {\r\n const createReducers = reducerModule.default;\r\n const nextReducers = createReducers(history, store.asyncReducers);\r\n\r\n store.replaceReducer(nextReducers);\r\n });\r\n });\r\n }\r\n\r\n return store;\r\n};\r\n\r\n// Create redux store with history\r\nconst initialState = loadState();\r\n\r\nconst store = configureStore(initialState, history);\r\n\r\n// Sync state and session storage\r\nstore.subscribe(() => {\r\n const storeState = store.getState().toJS();\r\n\r\n saveState(pick(storeState, ['router', 'app', 'tokens']));\r\n});\r\n\r\ninitSignalr(store);\r\n\r\nexport default store;\r\n","import {\r\n HubConnectionBuilder,\r\n HubConnectionState,\r\n LogLevel\r\n} from '@microsoft/signalr';\r\n\r\nimport * as CONSTANTS from 'redux/WebSockets/constants';\r\nimport {\r\n start,\r\n onReconnecting,\r\n onReconnected,\r\n receiveNotification,\r\n receiveOpenItemNotification,\r\n receiveCloseItemNotification,\r\n onClose,\r\n onError,\r\n init\r\n} from './helpers';\r\n\r\nexport const initSignalr = store => init(store);\r\n\r\nexport const createSignalrMiddleware = () => {\r\n const connection = new HubConnectionBuilder()\r\n .withUrl(CONSTANTS.WS_HUB_URL)\r\n .configureLogging(LogLevel.Information)\r\n .build();\r\n\r\n // the middleware part of this function\r\n return store => next => action => {\r\n const payload = action.payload;\r\n\r\n switch (action.type) {\r\n case CONSTANTS.WS_INIT:\r\n if (\r\n connection !== null &&\r\n connection.state === HubConnectionState.Disconnected\r\n ) {\r\n connection.onreconnecting(onReconnecting(store, connection));\r\n connection.onreconnected(onReconnected(store, connection));\r\n connection.onclose(onClose(store, connection));\r\n // Subscribe to Notification channel\r\n connection.on(CONSTANTS.WS_HUB_NOTIFY, receiveNotification(store));\r\n connection.on(\r\n CONSTANTS.WS_HUB_OPEN_ITEM_DATA,\r\n receiveOpenItemNotification(store)\r\n );\r\n connection.on(\r\n CONSTANTS.WS_HUB_CLOSE_ITEM_DATA,\r\n receiveCloseItemNotification(store)\r\n );\r\n\r\n start(store, connection)();\r\n }\r\n\r\n break;\r\n case CONSTANTS.WS_STOP:\r\n if (\r\n connection !== null &&\r\n connection.state === HubConnectionState.Connected\r\n ) {\r\n connection.stop();\r\n }\r\n break;\r\n case CONSTANTS.WS_SEND_NOTIFICATION:\r\n if (connection.state === HubConnectionState.Connected) {\r\n connection.invoke(CONSTANTS.WS_HUB_NOTIFY, ...payload).catch(onError);\r\n }\r\n break;\r\n default:\r\n return next(action);\r\n }\r\n };\r\n};\r\n","import { createGlobalStyle } from 'styled-components';\r\nimport {\r\n FONT_BASE,\r\n ERROR_COLOR,\r\n SUCCESS_COLOR,\r\n INFO_COLOR,\r\n FONT_SIZE_SMALL,\r\n ACTION_COLOR,\r\n WIDTH_BREAKPOINT_SM,\r\n FONT_COLOR,\r\n FONT_WEIGHT,\r\n ACTION_COLOR_HOVER\r\n} from './variables';\r\n\r\n/* eslint no-unused-expressions: 0 */\r\nconst GlobalStyles = createGlobalStyle`\r\n html,\r\n body {\r\n height: 100%;\r\n width: 100%;\r\n font-size: ${FONT_BASE};\r\n }\r\n\r\n body {\r\n background: #ededed;\r\n\r\n &.font-loading, \r\n &.font-loading *,\r\n &.font-failed, \r\n &.fonts-failed * {\r\n font-display: swap;\r\n font-family: 'Open sans', Helvetica, Arial, sans-serif;\r\n }\r\n \r\n &.font-loaded, \r\n &.font-loaded * {\r\n font-display: swap;\r\n font-family: 'Roboto', 'Open sans', Helvetica, Arial, sans-serif;\r\n }\r\n }\r\n\r\n img[src=\"https://maps.gstatic.com/mapfiles/api-3/images/google_white5.png\"],\r\na[href=\"https://www.google.com/intl/es-ES_US/help/terms_maps.html\"],\r\n.gmnoprint, \r\n.gm-style-cc,\r\n.gm-iv-address,\r\n.gm-iv-container {\r\n display: none !important;\r\n}\r\n\r\n p, strong, h3, h4 {\r\n color: ${FONT_COLOR};\r\n }\r\n\r\n h1, h2, h3, h4, strong {\r\n font-weight: ${FONT_WEIGHT};\r\n }\r\n\r\n .customer-container-spin {\r\n /* margin-top: -50px; */\r\n }\r\n\r\n a.apply {\r\n color: ${ACTION_COLOR};\r\n font-weight: ${FONT_WEIGHT};\r\n\r\n &:hover {\r\n color: ${ACTION_COLOR_HOVER};\r\n }\r\n }\r\n\r\n b {\r\n color: ${FONT_COLOR};\r\n font-weight ${FONT_WEIGHT};\r\n }\r\n\r\n #root {\r\n height: 100%;\r\n }\r\n\r\n .ant-modal-mask {\r\n background: rgba(0,0,0,0.25) !important;\r\n }\r\n\r\n .react-pdf__Document {\r\n &.pdf-document {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n height: 100vh;\r\n overflow: auto;\r\n }\r\n }\r\n\r\n\r\n/* NOTIFICATIONS */\r\n.ant-notification {\r\n \r\n .ant-notification-notice{\r\n padding: 16px;\r\n border-left-width: 4px;\r\n border-left-style: solid;\r\n\r\n &.notification-error {\r\n border-left-color: ${ERROR_COLOR};\r\n\r\n .ant-notification-notice-icon {\r\n color: ${ERROR_COLOR}\r\n }\r\n }\r\n &.notification-success {\r\n border-left-color: ${SUCCESS_COLOR};\r\n .ant-notification-notice-icon {\r\n color: ${SUCCESS_COLOR}\r\n }\r\n }\r\n &.notification-info {\r\n border-left-color: ${INFO_COLOR};\r\n .ant-notification-notice-icon {\r\n color: ${INFO_COLOR};\r\n }\r\n }\r\n }\r\n}\r\n\r\n/* BOX SHADOWS */\r\n.box1 {\r\n\t-webkit-box-shadow: 0 10px 6px -6px #777;\r\n\t-moz-box-shadow: 0 10px 6px -6px #777;\r\n\tbox-shadow: 0 10px 6px -6px #777;\r\n}\r\n.box2 {\r\n\t-webkit-box-shadow: 0 1px 2px #777;\r\n\t-moz-box-shadow: 0 2px 1px #777;\r\n\tbox-shadow: 0 2px 1px #777;\r\n}\r\n.box3 {\r\n\tbox-shadow: 0 1px 5px rgba(0, 0, 0, 0.15);\r\n}\r\n.box4 {\r\n\tbox-shadow: 0 0 4px 1px rgba(0, 0, 0, 0.3);\r\n}\r\n.box5 {\r\n\tbox-shadow: 0 0 1px rgba(34, 25, 25, 0.4);\r\n}\r\n.box6 {\r\n\tbox-shadow: 0 1px #FFFFFF inset, 0 1px 3px rgba(34, 25, 25, 0.4);\r\n}\r\n.box7 {\r\n\tbox-shadow: 0 4px 2px -3px;\r\n}\r\n.box8 {\r\n\tborder-bottom: 1px solid rgba(0, 0, 0, 0.2);\r\n\tbox-shadow: 0 1px 5px rgba(0, 0, 0, 0.15);\r\n}\r\n.box9 {\r\n\tborder-bottom: 0 none;\r\n\tbox-shadow: 0 1px 5px rgba(0, 0, 0, 0.46);\r\n}\r\n.box10 {\r\n\t-webkit-box-shadow: 0 7px 4px #777;\r\n\t-moz-box-shadow: 0 7px 4px #777;\r\n\tbox-shadow: 0 7px 4px #777;\r\n}\r\n.box11 {\r\n\t-webkit-box-shadow: 0 3px 2px #777;\r\n\t-moz-box-shadow: 0 3px 2px #777;\r\n\tbox-shadow: 0 3px 2px #777;\r\n}\r\n.box12 {\r\n\tbox-shadow: 0 0.5px 0 0 #ffffff inset, 0 1px 2px 0 #B3B3B3;\r\n}\r\n.box13 {\r\n\t-webkit-box-shadow:0 0 10px rgba(0, 0, 0, 0.5);\r\n\t-moz-box-shadow:0 0 10px rgba(0, 0, 0, 0.5);\r\n\tbox-shadow:0 0 10px rgba(0, 0, 0, 0.5);\r\n}\r\n.box14 {\r\n\t-webkit-box-shadow:0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;\r\n\t-moz-box-shadow:0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;\r\n\tbox-shadow:0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;\r\n}\r\n.box15 {\r\n\tbox-shadow: 0 1px 2px rgba(0, 0, 0, 0.12) inset;\r\n\tborder-color: -moz-use-text-color #FFFFFF #FFFFFF -moz-use-text-color;\r\n\tborder-style: none solid solid none;\r\n\tborder-width: medium 1px 1px medium;\r\n\tbackground: none repeat scroll 0 0 rgba(0, 0, 0, 0.07);\r\n\t-moz-border-bottom-colors: none;\r\n\t-moz-border-image: none;\r\n\t-moz-border-left-colors: none;\r\n\t-moz-border-right-colors: none;\r\n\t-moz-border-top-colors: none;\r\n}\r\n.box16 {\r\n\tbox-shadow: 0 1px 1px 0 #C7C7C7 inset;\r\n\tbackground: none repeat scroll 0 0 #E9E9E9;\r\n}\r\n\r\n@keyframes blink {\r\n from { opacity: 1.0; }\r\n 50% { opacity: 0.5; }\r\n to { opacity:0; }\r\n} \r\n\r\n@-webkit-keyframes blink {\r\n from { opacity: 1.0; }\r\n 50% { opacity: 0.5; }\r\n to { opacity: 0; }\r\n}\r\n\r\n.blink_child .ant-checkbox-inner{\r\n border-color: ${ACTION_COLOR};\r\n}\r\n\r\n.blink_child {\r\n animation: blink 300ms infinite;\r\n -webkit-animation:blink 300ms infinite;\r\n animation-iteration-count: 5;\r\n}\r\n\r\n\r\n\r\n/* Tooltip */\r\n &.ant-tooltip .ant-tooltip-inner {\r\n font-size: ${FONT_SIZE_SMALL};\r\n }\r\n \r\n img.not-found-image {\r\n @media only screen and (max-width: ${WIDTH_BREAKPOINT_SM}) {\r\n width: 100%;\r\n height: 100%;\r\n }\r\n }\r\n\r\n/* Spin */\r\n\r\n.ant-spin-blur {\r\n opacity: 0.2;\r\n}\r\n \r\ninput::-webkit-outer-spin-button,\r\ninput::-webkit-inner-spin-button {\r\n /* display: none; <- Crashes Chrome on hover */\r\n -webkit-appearance: none;\r\n margin: 0; /* <-- Apparently some margin are still there even though it's hidden */\r\n}\r\n\r\ninput[type=number] {\r\n -moz-appearance:textfield; /* Firefox */\r\n}\r\n\r\n.ant-form-item-has-error {\r\n .phone-input {\r\n border-color: red;\r\n\r\n &:focus, &:hover {\r\n border-color: #ff3029;\r\n box-shadow: 0 0 0 2px rgb(255 0 0 / 20%);\r\n border-right-width: 1px;\r\n outline: 0;\r\n }\r\n }\r\n}\r\n\r\n.ant-input-number-affix-wrapper-status-warning:not(.ant-input-number-affix-wrapper-disabled):not(.ant-input-number-affix-wrapper-borderless).ant-input-number-affix-wrapper, .ant-input-number-affix-wrapper-status-warning:not(.ant-input-number-affix-wrapper-disabled):not(.ant-input-number-affix-wrapper-borderless).ant-input-number-affix-wrapper:hover,\r\n.ant-input-number-status-warning:not(.ant-input-number-disabled):not(.ant-input-number-borderless).ant-input-number, .ant-input-number-status-warning:not(.ant-input-number-disabled):not(.ant-input-number-borderless).ant-input-number:hover {\r\n border-color: rgba(218,61,29,1);\r\n}\r\n\r\n.ant-input-number-group-wrapper-status-warning .ant-input-number-group-addon {\r\n border-color: rgba(218,61,29,1);\r\n color: rgba(218,61,29,1);\r\n}\r\n\r\n.ant-form-item-feedback-icon-warning {\r\n color: rgba(218,61,29,1);\r\n}\r\n\r\n.ant-form-item-explain-warning {\r\n color: rgba(218,61,29,1);\r\n font-size: 0.9em;\r\n}\r\n\r\n.ant-layout {\r\n height: 100%;\r\n}\r\n\r\n`;\r\n\r\nexport default GlobalStyles;\r\n","import styled from 'styled-components';\r\n\r\nconst NotFound = styled.div`\r\n background: repeating-linear-gradient(\r\n 130deg,\r\n rgba(166, 157, 160, 0.1),\r\n rgba(166, 157, 160, 0.1) 0,\r\n rgba(166, 157, 160, 0.01) 5px,\r\n rgba(255, 255, 255, 0.05) 0,\r\n rgba(255, 255, 255, 0.05) 5px\r\n ),\r\n linear-gradient(\r\n 273deg,\r\n rgba(255, 255, 255, 0.6) 13%,\r\n rgba(255, 255, 255, 0.6) 100%\r\n );\r\n border: 1px solid rgba(77, 77, 77, 0.15);\r\n font-size: 11pt;\r\n font-weight: normal;\r\n padding: 200px;\r\n text-align: center;\r\n color: rgba(77, 77, 77, 0.5);\r\n\r\n & > i {\r\n color: rgba(77, 77, 77, 0.5);\r\n font-size: 36px;\r\n text-align: center;\r\n display: block;\r\n }\r\n\r\n .anticon svg {\r\n display: inline;\r\n }\r\n\r\n @media (max-width: 575px) {\r\n padding: 50px;\r\n }\r\n`;\r\n\r\nexport default NotFound;\r\n","import React from 'react';\r\nimport styled from 'styled-components';\r\n\r\nimport { Typography } from 'antd';\r\n\r\nimport {\r\n FONT_COLOR,\r\n FONT_COLOR_LIGHT,\r\n FONT_SIZE,\r\n FONT_SIZE_SMALL,\r\n FONT_SIZE_BIG_TEXT\r\n} from 'theme/variables';\r\n\r\nconst TextAnt = styled(Typography.Text)`\r\n color: ${FONT_COLOR};\r\n`;\r\n\r\nexport const Title = styled(Typography.Title)`\r\n &.ant-typography {\r\n color: ${FONT_COLOR};\r\n font-size: ${FONT_SIZE};\r\n }\r\n`;\r\n\r\nexport const SubTitle = styled(Typography.Title)`\r\n &.ant-typography {\r\n color: ${FONT_COLOR_LIGHT};\r\n font-weight: normal;\r\n font-size: ${FONT_SIZE_SMALL};\r\n }\r\n`;\r\n\r\nexport const BigTitle = ({ children, ...props }) => {\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport const BigSubtitle = ({ children, ...props }) => {\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport const Text = ({ children, ...props }) => {\r\n return {children};\r\n};\r\n\r\nexport const BigText = styled(Typography.Text)`\r\n &.ant-typography {\r\n font-size: ${FONT_SIZE_BIG_TEXT};\r\n color: ${props => (props.whiteColor ? '#FFFFFF' : `${FONT_COLOR}`)};\r\n }\r\n`;\r\n","import React from 'react';\r\nimport styled from 'styled-components';\r\n\r\nimport { Card, Icon } from 'antd';\r\nimport NotFound from 'components/common/NotFound';\r\n\r\nimport { WIDTH_BREAKPOINT_MD, WIDTH_BREAKPOINT_XS } from 'theme/variables';\r\nimport classNames from 'classnames';\r\nimport { Title } from '../Typography';\r\n\r\nconst ContentCard = styled(Card)`\r\n .ant-card-head {\r\n padding: 0;\r\n min-height: auto;\r\n }\r\n\r\n .ant-card-head-title {\r\n padding: 10px 0;\r\n }\r\n\r\n .ant-card-body {\r\n padding: 10px 0;\r\n }\r\n`;\r\n\r\nexport const Container = styled.div`\r\n padding: 20px;\r\n border: 1px solid #f0f0f0;\r\n`;\r\n\r\nexport const LogoContainer = styled.div`\r\n img {\r\n width: 300px;\r\n }\r\n\r\n img.logo-applyNow {\r\n width: 210px;\r\n }\r\n\r\n @media only screen and (max-width: ${WIDTH_BREAKPOINT_XS}) {\r\n max-width: 360px;\r\n height: inherit;\r\n width: 100%;\r\n\r\n img {\r\n width: inherit;\r\n margin: 5px auto;\r\n }\r\n }\r\n\r\n @media only screen and (max-width: ${WIDTH_BREAKPOINT_MD}) {\r\n & {\r\n align-self: flex-start;\r\n }\r\n }\r\n`;\r\n\r\nexport const Actions = styled.div`\r\n width: auto;\r\n text-align: right;\r\n display: inline-block;\r\n\r\n .ant-btn + .ant-btn {\r\n margin-left: 10px;\r\n }\r\n`;\r\n\r\nexport const UserListContainer = styled.div``;\r\n\r\nfunction Content({ title, actions, className, children, ...props }) {\r\n const classes = classNames({ className });\r\n // renderTitle = () => {\r\n // const { title, subtitle, actions, content } = this.props;\r\n // return (\r\n // \r\n // \r\n // <span>{title}</span>\r\n // {subtitle ? <span className=\"subtitle\">{subtitle}</span> : null}\r\n // \r\n // {actions ? {actions} : null}\r\n // \r\n // );\r\n // };\r\n\r\n return (\r\n {title} : null}\r\n extra={actions ? actions : null}\r\n {...props}\r\n >\r\n {children}\r\n \r\n );\r\n}\r\n\r\nexport function ContentNotFound({ text, children, icon }) {\r\n return (\r\n \r\n \r\n {icon ? : null}\r\n {text}\r\n {children}\r\n \r\n \r\n );\r\n}\r\n\r\nexport const CardContent = styled(Card)`\r\n .ant-card-extra,\r\n .ant-card-head-title {\r\n padding: 0;\r\n }\r\n .ant-card-head,\r\n .ant-card-head-wrapper {\r\n display: flex;\r\n }\r\n .ant-card-head-wrapper {\r\n flex: 1;\r\n justify-content: space-between;\r\n }\r\n`;\r\n\r\nexport default Content;\r\n","export default __webpack_public_path__ + \"static/media/SFC_Truist.b5ff1274.jpg\";","import React from 'react';\r\n\r\nimport { LogoContainer } from 'components/common/Content';\r\n\r\nimport { ROUTES } from 'consts/routes';\r\nimport { replace } from 'connected-react-router';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport logoImg from 'images/SFC_Truist.jpg';\r\nimport logoImgApplyNow from 'images/applyNow.png';\r\n\r\nimport { SubTitle, Title } from '../Typography';\r\nimport isEmpty from 'lodash/isEmpty';\r\n\r\nconst Logo = ({ title = false, subtitle = false, logoForBd, ...props }) => {\r\n const dispatch = useDispatch();\r\n\r\n function handleOnClick() {\r\n dispatch(replace(ROUTES.HOME));\r\n }\r\n\r\n return (\r\n \r\n {logoForBd ? (\r\n \r\n ) : (\r\n \r\n )}\r\n\r\n {!isEmpty(title) ? (\r\n {title}\r\n ) : null}\r\n {!isEmpty(subtitle) ? (\r\n {subtitle}\r\n ) : null}\r\n \r\n );\r\n};\r\n\r\nexport default Logo;\r\n","export default \"data:image/png;base64,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\"","import React, { Component, useEffect, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport isEqual from 'lodash/isEqual';\r\nimport styled from 'styled-components';\r\n\r\nimport { Layout as AntLayout } from 'antd';\r\n\r\nimport {\r\n BACKGROUND_DEFAULT,\r\n BORDER_DEFAULT,\r\n COMPANY_NAME_BLACK,\r\n GRAY_BACKGROUND\r\n} from 'theme/variables';\r\nimport Logo from 'components/common/Logo';\r\n\r\nexport const LogoContainer = styled.div`\r\n display: flex;\r\n align-items: center;\r\n`;\r\n\r\nconst CustomName = styled.span`\r\n color: ${props => (props.color ? props.color : COMPANY_NAME_BLACK)};\r\n display: inline;\r\n`;\r\n\r\nexport const AppName = ({ ...props }) => {\r\n return Apply;\r\n};\r\n\r\nconst Layout = ({ ...props }) => {\r\n const CustomLayout = styled(AntLayout)``;\r\n return ;\r\n};\r\n\r\n// HEADER\r\nconst CustomHeader = styled(AntLayout.Header)`\r\n &.ant-layout-header {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n background: ${BACKGROUND_DEFAULT};\r\n padding: 0 20px;\r\n border-bottom: ${BORDER_DEFAULT};\r\n height: 40px;\r\n font-size: 20px;\r\n }\r\n`;\r\n\r\nexport const Header = ({ ...props }) => {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\n// SIDER\r\nconst CustomSider = styled(AntLayout.Sider)`\r\n background: ${BACKGROUND_DEFAULT};\r\n\r\n &.pdf-viewer-sider {\r\n background: ${GRAY_BACKGROUND};\r\n }\r\n\r\n .ant-layout-sider-zero-width-trigger {\r\n top: 0;\r\n border-radius: 0;\r\n }\r\n`;\r\n\r\nexport const Sider = ({ show, ...props }) => {\r\n const [collapsed, setCollapsed] = useState(false);\r\n\r\n useEffect(() => {\r\n setCollapsed(show);\r\n }, [show]);\r\n\r\n return (\r\n \r\n {props.children}\r\n \r\n );\r\n};\r\n\r\nexport const MainContainer = styled.div`\r\n flex: 1;\r\n height: 100%;\r\n`;\r\n\r\n// CONTENT\r\nconst CustomContent = styled(AntLayout.Content)`\r\n overflow: hidden;\r\n box-shadow: 0 5px 15px -10px #000000 inset;\r\n`;\r\n\r\nexport class Content extends Component {\r\n shouldComponentUpdate(nextProps) {\r\n return !isEqual(nextProps, this.props);\r\n }\r\n\r\n render() {\r\n return {this.props.children};\r\n }\r\n}\r\n\r\nLayout.propTypes = {\r\n isContentLayout: PropTypes.bool,\r\n expanded: PropTypes.bool\r\n};\r\n\r\nLayout.defaultValues = {\r\n expanded: true\r\n};\r\n\r\nexport default Layout;\r\n","import { useMediaQuery } from 'react-responsive';\r\nimport {\r\n RESPONSIVE_BREAKPOINTS,\r\n XXS,\r\n SM,\r\n MD,\r\n LG,\r\n XL,\r\n XXL\r\n} from 'theme/variables';\r\n\r\nconst OFFSET_MAX_WIDTH = 0.02;\r\nexport const useIsExtraSmallDevice = () =>\r\n useMediaQuery({\r\n maxDeviceWidth: RESPONSIVE_BREAKPOINTS[XXS] - OFFSET_MAX_WIDTH\r\n });\r\n\r\nexport const useIsVerySmallDevice = () =>\r\n useMediaQuery({\r\n maxDeviceWidth: RESPONSIVE_BREAKPOINTS[SM] - OFFSET_MAX_WIDTH\r\n });\r\n\r\nexport const useIsMobile = () =>\r\n useMediaQuery({\r\n maxDeviceWidth: RESPONSIVE_BREAKPOINTS[MD] - OFFSET_MAX_WIDTH\r\n });\r\nexport const useIsTablet = () =>\r\n useMediaQuery({\r\n minDeviceWidth: RESPONSIVE_BREAKPOINTS[MD]\r\n });\r\nexport const useIsDesktop = () =>\r\n useMediaQuery({\r\n minDeviceWidth: RESPONSIVE_BREAKPOINTS[LG]\r\n });\r\nexport const useIsExtraLargeDesktop = () =>\r\n useMediaQuery({\r\n minDeviceWidth: RESPONSIVE_BREAKPOINTS[XL]\r\n });\r\n\r\nexport const useIsVeryLargeDesktop = () =>\r\n useMediaQuery({\r\n minDeviceWidth: RESPONSIVE_BREAKPOINTS[XXL]\r\n });\r\n\r\nexport const useIsTabletOrMobile = () => useMediaQuery({ maxWidth: 1224 });\r\n\r\nexport const useIsPortrait = () => useMediaQuery({ orientation: 'portrait' });\r\nexport const useIsLandscape = () => useMediaQuery({ orientation: 'landscape' });\r\n","import React from 'react';\r\nimport styled from 'styled-components';\r\n\r\nimport { BORDER_RADIUS } from 'theme/variables';\r\n\r\nconst DivWithFullBackground = styled.div`\r\n width: 100%;\r\n height: 100%;\r\n background: url(${props => props.backgroundSrc}) no-repeat;\r\n background-size: cover;\r\n border-radius: ${BORDER_RADIUS} ${BORDER_RADIUS} 0 0;\r\n background-position: ${props =>\r\n props.backgroundDirection ? props.backgroundDirection : 'left'};\r\n`;\r\n\r\nfunction Background({ backgroundSrc, backgroundDirection, children }) {\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n\r\nexport default Background;\r\n","import styled from 'styled-components';\r\n\r\nimport { Divider as DividerAnt } from 'antd';\r\nimport { WIDTH_BREAKPOINT_SM } from 'theme/variables';\r\n\r\nconst Divider = styled(DividerAnt)`\r\n margin: ${props => (props.margin ? props.margin : '10px 0')};\r\n\r\n @media only screen and (max-width: ${WIDTH_BREAKPOINT_SM}) {\r\n margin: 5px 0;\r\n }\r\n`;\r\n\r\nexport default Divider;\r\n","import styled from 'styled-components';\r\n\r\nimport { Layout as LayoutAnt } from 'antd';\r\nimport {\r\n BACKGROUND_DEFAULT,\r\n BORDER_DEFAULT,\r\n WIDTH_BREAKPOINT_SM,\r\n LINE_HEIGHT\r\n} from 'theme/variables';\r\n\r\nexport const LeftLayout = styled(LayoutAnt)`\r\n background: ${BACKGROUND_DEFAULT};\r\n height: 100%;\r\n`;\r\n\r\nexport const LeftHeader = styled(LayoutAnt.Header)`\r\n height: auto;\r\n background: ${BACKGROUND_DEFAULT};\r\n line-height: ${LINE_HEIGHT};\r\n padding: 20px 20px 0;\r\n\r\n @media only screen and (max-width: ${WIDTH_BREAKPOINT_SM}) {\r\n & {\r\n padding: 10px;\r\n }\r\n }\r\n`;\r\n\r\nexport const LeftContent = styled(LayoutAnt.Content)`\r\n background: ${BACKGROUND_DEFAULT};\r\n padding: 0;\r\n overflow: hidden;\r\n height: 100%;\r\n\r\n &.left-content {\r\n padding: 0 20px;\r\n }\r\n\r\n @media only screen and (max-width: ${WIDTH_BREAKPOINT_SM}) {\r\n &.left-content {\r\n padding: 0 10px;\r\n }\r\n }\r\n`;\r\n\r\nexport const LeftFooter = styled(LayoutAnt.Footer)`\r\n background: ${BACKGROUND_DEFAULT};\r\n padding: 10px 20px;\r\n border-top: ${BORDER_DEFAULT};\r\n z-index: 9;\r\n\r\n @media only screen and (max-width: ${WIDTH_BREAKPOINT_SM}) {\r\n padding: 10px;\r\n\r\n .inset {\r\n & {\r\n margin: 0 20px;\r\n }\r\n }\r\n }\r\n`;\r\n\r\nconst Layout = styled(LayoutAnt)`\r\n height: 100%;\r\n`;\r\nexport const Header = styled(LayoutAnt.Header)`\r\n &.pdf-viewer-toolbar {\r\n height: auto;\r\n line-height: ${LINE_HEIGHT};\r\n padding: 0;\r\n z-index: 999;\r\n }\r\n`;\r\nexport const Content = styled(LayoutAnt.Content)``;\r\nexport const Footer = styled(LayoutAnt.Footer)``;\r\n\r\nexport default Layout;\r\n","export default __webpack_public_path__ + \"static/media/background.2ddfeffe.jpeg\";","import React, { memo, useRef, useState, useEffect } from 'react';\r\nimport styled from 'styled-components';\r\n\r\nimport { useIsMobile } from 'hooks/responsive';\r\n\r\nimport { Row, Col } from 'antd';\r\nimport Background from 'components/common/Content/Background';\r\nimport Divider from 'components/common/Divider';\r\nimport Logo, { OtherLogo } from 'components/common/Logo';\r\n\r\nimport {\r\n BACKGROUND_COLOR_LIGHT,\r\n BORDER_RADIUS,\r\n MAIN_COLOR\r\n} from 'theme/variables';\r\nimport {\r\n LeftLayout,\r\n LeftHeader,\r\n LeftContent,\r\n LeftFooter\r\n} from 'components/layouts/HeaderContentFooter';\r\nimport { Title } from '../Typography';\r\n\r\nimport backgroundImg from 'images/background.jpeg';\r\n\r\nconst TwoColumnsRow = styled(Row)`\r\n height: 100%;\r\n margin: 0;\r\n position: relative;\r\n`;\r\n\r\nconst TwoColumnsLeftCol = styled(Col)`\r\n display: flex;\r\n flex-direction: column;\r\n overflow-y: hidden;\r\n height: 100%;\r\n`;\r\n\r\nconst TwoColumnsRightCol = styled(Col)``;\r\n\r\nconst RowOutsideBackground = styled(Row)`\r\n height: 0;\r\n position: relative;\r\n`;\r\n\r\nconst ColOutsideBackground = styled(Col)`\r\n &::before {\r\n content: '';\r\n position: absolute;\r\n height: 100vh;\r\n width: 100%;\r\n background: ${MAIN_COLOR};\r\n top: ${props => (props.top ? `-${props.top}px` : 0)};\r\n z-index: -1;\r\n }\r\n`;\r\n\r\nconst TopRightContainer = styled.div`\r\n background: ${BACKGROUND_COLOR_LIGHT};\r\n height: 10%;\r\n margin-bottom: 10px;\r\n border-radius: 0 0 ${BORDER_RADIUS} ${BORDER_RADIUS};\r\n`;\r\n\r\nconst TwoColumnsImage = styled.div`\r\n height: calc(90% - 10px);\r\n`;\r\n\r\nexport const imageSetting = {\r\n source: backgroundImg,\r\n position: '45% 30%'\r\n};\r\n\r\nfunction TwoColumns({\r\n headerTitle = '',\r\n headerSubtitle,\r\n title,\r\n children,\r\n imageSrc,\r\n imageDirection,\r\n md = 16,\r\n xs = 24,\r\n topRightContent,\r\n showOutsideBackground = true,\r\n showSecondColumn = true,\r\n actions,\r\n extraContent,\r\n extraLogo = false,\r\n overflowContent = 'auto',\r\n ...props\r\n}) {\r\n const isMobile = useIsMobile();\r\n const rowRef = useRef(null);\r\n const [offsetTop, setOffsetTop] = useState(0);\r\n\r\n useEffect(() => {\r\n if (rowRef) {\r\n setOffsetTop(rowRef.current.offsetTop);\r\n }\r\n }, [rowRef]);\r\n\r\n useEffect(() => {\r\n const resizeListener = () => {\r\n if (rowRef && offsetTop !== rowRef.current.offsetTop) {\r\n setOffsetTop(rowRef.current.offsetTop);\r\n }\r\n };\r\n // set resize listener\r\n window.addEventListener('resize', resizeListener);\r\n\r\n // clean up function\r\n return () => {\r\n // remove resize listener\r\n window.removeEventListener('resize', resizeListener);\r\n };\r\n }, [rowRef, offsetTop]);\r\n\r\n return (\r\n <>\r\n
\r\n {showOutsideBackground && (\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 {extraLogo && {extraLogo}}\r\n \r\n \r\n {title && {title}}\r\n {extraContent}\r\n \r\n \r\n {children}\r\n \r\n {actions && (\r\n \r\n \r\n {actions}\r\n \r\n \r\n )}\r\n \r\n \r\n {!isMobile && showSecondColumn && (\r\n \r\n {topRightContent}\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n}\r\n\r\nexport default memo(TwoColumns);\r\n","import React from 'react';\r\n\r\nimport { Result } from 'antd';\r\nimport TwoColumns from 'components/common/Content/TwoColumns';\r\n\r\nconst ExceptionPage = ({ titlePage, icon, message, action = null }) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ExceptionPage;\r\n","export default __webpack_public_path__ + \"static/media/not_found.532566d6.svg\";","import React from 'react';\r\n\r\nimport { useIsMobile } from 'hooks/responsive';\r\n\r\nimport ExceptionPage from '../ExceptionPage';\r\nimport notFoundImg from 'images/not_found.svg';\r\n\r\n// prettier-ignore\r\n\r\nconst NotFound = () => {\r\n const isMobile = useIsMobile();\r\n\r\n return (\r\n \r\n }\r\n titlePage=\"Sorry, page not found.\"\r\n message={'The resource you are trying to access does not exist.'}\r\n />\r\n );\r\n};\r\n\r\nexport default NotFound;\r\n","import React from 'react';\r\nimport { Link } from 'react-router-dom';\r\n\r\nimport ExceptionPage from '../ExceptionPage';\r\n\r\nimport { ROUTES } from 'consts/routes';\r\n\r\nconst NotAuthorized = ({\r\n message = 'Sorry, you are not authorized to access this document.'\r\n}) => {\r\n return (\r\n \r\n {message}\r\n
\r\n Go to homepage\r\n \r\n }\r\n />\r\n );\r\n};\r\n\r\nexport default NotAuthorized;\r\n","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://cra.link/PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.0/8 are considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\n// Update poll time in milliseconds\r\nconst updateLoopTime = process.env.REACT_APP_NEW_VERSION_POLLING_LOOP_MS;\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://cra.link/PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n if (registration.waiting) {\r\n if (config && config.onWaiting) {\r\n config.onWaiting(registration.waiting);\r\n }\r\n }\r\n\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://cra.link/PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n\r\n // Poll for live updates to the serviceWorker\r\n setInterval(async () => {\r\n await registration.update();\r\n }, updateLoopTime);\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl, {\r\n headers: { 'Service-Worker': 'script' }\r\n })\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready\r\n .then(registration => {\r\n registration.unregister();\r\n })\r\n .catch(error => {\r\n console.error(error.message);\r\n });\r\n }\r\n}\r\n","import React, { useState, useEffect, useMemo, useContext } from 'react';\r\nimport * as serviceWorker from 'serviceWorkerRegistration';\r\n\r\nconst ServiceWorkerContext = React.createContext();\r\nServiceWorkerContext.displayName = 'ServiceWorker';\r\n\r\nconst MESSAGE_TYPE_SKIP_WAITING = 'SKIP_WAITING';\r\n\r\nexport const ServiceWorkerProvider = ({ children }) => {\r\n const [waitingServiceWorker, setWaitingServiceWorker] = useState(null);\r\n const [isUpdateAvailable, setUpdateAvailable] = useState(false);\r\n\r\n useEffect(() => {\r\n serviceWorker.register({\r\n onUpdate: registration => {\r\n setWaitingServiceWorker(registration.waiting);\r\n setUpdateAvailable(true);\r\n },\r\n onWaiting: waiting => {\r\n setWaitingServiceWorker(waiting);\r\n setUpdateAvailable(true);\r\n }\r\n });\r\n }, []);\r\n\r\n useEffect(() => {\r\n // We setup an event listener to automatically reload the page\r\n // after the Service Worker has been updated, this will trigger\r\n // on all the open tabs of our application, so that we don't leave\r\n // any tab in an incosistent state\r\n if (waitingServiceWorker) {\r\n waitingServiceWorker.addEventListener('statechange', event => {\r\n if (event.target.state === 'activated') {\r\n window.location.reload();\r\n }\r\n });\r\n }\r\n }, [waitingServiceWorker]);\r\n\r\n const value = useMemo(\r\n () => ({\r\n isUpdateAvailable,\r\n updateAssets: () => {\r\n if (waitingServiceWorker) {\r\n // We send the SKIP_WAITING message to tell the Service Worker\r\n // to update its cache and flush the old one\r\n waitingServiceWorker.postMessage({ type: MESSAGE_TYPE_SKIP_WAITING });\r\n }\r\n }\r\n }),\r\n [isUpdateAvailable, waitingServiceWorker]\r\n );\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\n// With this React Hook we'll be able to access `isUpdateAvailable` and `updateAssets`\r\nexport const useServiceWorker = () => {\r\n return useContext(ServiceWorkerContext);\r\n};\r\n","import { useCallback, useEffect, useState } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport { useServiceWorker } from 'components/services/ServiceWorker';\r\nimport {\r\n logMessageInConsole,\r\n WARNING_NOTIFICATION_TYPE\r\n} from 'utils/notifications';\r\n\r\nconst NewVersion = () => {\r\n const dispatch = useDispatch();\r\n\r\n const { isUpdateAvailable, updateAssets } = useServiceWorker();\r\n const [loading, setLoading] = useState(false);\r\n\r\n const updateNow = useCallback(\r\n e => {\r\n // Feedback to user when the app is updating.\r\n logMessageInConsole(\r\n 'The application is updating...',\r\n WARNING_NOTIFICATION_TYPE\r\n );\r\n setLoading(true);\r\n updateAssets();\r\n },\r\n [dispatch, updateAssets]\r\n );\r\n\r\n const handleClick = e => {\r\n updateNow();\r\n };\r\n\r\n useEffect(() => {\r\n if (isUpdateAvailable && !loading) {\r\n updateNow();\r\n }\r\n }, [isUpdateAvailable, loading, updateNow]);\r\n\r\n return null;\r\n};\r\n\r\nexport default NewVersion;\r\n","import React from 'react';\r\nimport styled from 'styled-components';\r\nimport { Form as FormAnt } from 'antd';\r\n\r\nimport {\r\n ERROR_COLOR,\r\n FONT_SIZE_SMALL,\r\n FONT_WEIGHT,\r\n GRAY_BACKGROUND\r\n} from 'theme/variables';\r\nimport { WarningOutlined } from '@ant-design/icons';\r\n\r\nexport const Form = styled(FormAnt)``;\r\n\r\nexport const FormItem = styled(FormAnt.Item)`\r\n margin-bottom: 10px;\r\n\r\n &.force-block > .ant-row.ant-form-item-row {\r\n flex-flow: column wrap;\r\n\r\n & > .ant-form-item-label {\r\n text-align: left;\r\n }\r\n }\r\n\r\n &.ant-form-item .ant-form-item-label > label {\r\n font-weight: ${FONT_WEIGHT};\r\n }\r\n\r\n &.ant-form-item-has-error .ant-form-item-explain {\r\n font-size: ${FONT_SIZE_SMALL};\r\n }\r\n\r\n .ant-form-item-extra {\r\n background: ${GRAY_BACKGROUND};\r\n padding: 5px 10px;\r\n font-style: italic;\r\n\r\n h1.ant-typography {\r\n line-height: 1.5;\r\n }\r\n }\r\n`;\r\n\r\nconst FormErrorsMessageContainer = styled.div`\r\n color: ${ERROR_COLOR};\r\n margin-bottom: 10px;\r\n border-bottom: 1px solid ${ERROR_COLOR};\r\n`;\r\n\r\nexport const FormErrorsMessage = ({ title = false, description }) => {\r\n return (\r\n \r\n \r\n {description}\r\n \r\n );\r\n};\r\n","import { createPortal } from 'react-dom';\r\nimport { usePortal } from 'hooks/portal';\r\n\r\nconst Portal = ({ id, children }) => {\r\n const target = usePortal(id);\r\n return createPortal(children, target);\r\n};\r\n\r\nexport default Portal;\r\n","import { useEffect, useRef } from 'react';\r\n\r\nexport function usePortal(id) {\r\n const rootElemRef = useRef(document.createElement('div'));\r\n\r\n useEffect(() => {\r\n const element = rootElemRef.current;\r\n // Look for existing target dom element to append to\r\n const parentElem = document.querySelector(`#${id}`);\r\n\r\n if (parentElem) {\r\n // Add the detached element to the parent\r\n parentElem.appendChild(rootElemRef.current);\r\n // This function is run on unmount\r\n return () => {\r\n element.remove();\r\n };\r\n }\r\n }, [id]);\r\n\r\n return rootElemRef.current;\r\n}\r\n","import React, { memo } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport { replace } from 'connected-react-router';\r\n\r\nimport ButtonLink from 'components/common/Buttons';\r\n\r\nimport { ROUTES } from 'consts/routes';\r\nimport {\r\n legalLinksName,\r\n PRIVACY_POLICY_URL,\r\n CONSUMER_RIGHTS_NOTICE_URL\r\n} from 'redux/app/constants';\r\n\r\nfunction LegalLink({ route, ...props }) {\r\n const dispatch = useDispatch();\r\n\r\n const handleGoTo = (e, params) => {\r\n dispatch(replace(params));\r\n };\r\n\r\n switch (route) {\r\n case ROUTES.PRIVACY_POLICY:\r\n return (\r\n \r\n {legalLinksName[route]}\r\n \r\n );\r\n\r\n case ROUTES.CONSUMER_RIGHTS_NOTICE:\r\n return (\r\n \r\n {legalLinksName[route]}\r\n \r\n );\r\n\r\n default:\r\n return (\r\n \r\n {legalLinksName[route]}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default memo(LegalLink);\r\n","import React, { useMemo } from 'react';\r\nimport { useRef } from 'react';\r\nimport { useState, useEffect } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useLocation } from 'react-router-dom';\r\nimport {\r\n APPLICANT_NOMENCLATURE_PREFIX_MAP,\r\n STATUS_AUTH_PENDING,\r\n STATUS_SMS_SEND\r\n} from 'redux/app/constants';\r\nimport {\r\n makeSelectCustomerExpirationDate,\r\n makeSelectCustomerIdentity,\r\n makeSelectCustomerIdentityAddressSelection,\r\n makeSelectCustomerIdentityAlerts,\r\n makeSelectCustomerIdentityError,\r\n makeSelectCustomerIdentityIsComplete,\r\n makeSelectCustomerIdentityIsExpired,\r\n makeSelectCustomerIdentityIsFetching,\r\n makeSelectEnterApplicantDataManuallyData,\r\n makeSelectFetchingProgressStatusId,\r\n makeSelectFetchingProgressStatusTitle,\r\n makeSelectPhoneProvided\r\n} from 'redux/app/selectors';\r\n\r\nexport function useGetData(\r\n dataSelector,\r\n dataIsFetchingSelector,\r\n dataAction,\r\n dataActionParams = [],\r\n condition = true\r\n) {\r\n const dispatch = useDispatch();\r\n const [actionCalled, setActionCalled] = useState(false);\r\n\r\n const data = useSelector(dataSelector);\r\n const isFetching = useSelector(dataIsFetchingSelector);\r\n\r\n const canDispatchAction = !data && !isFetching && condition && !actionCalled;\r\n\r\n useEffect(() => {\r\n if (canDispatchAction) {\r\n dispatch(dataAction(...dataActionParams));\r\n setActionCalled(true);\r\n }\r\n }, [canDispatchAction, dataAction, dataActionParams, dispatch]);\r\n\r\n return [data, isFetching];\r\n}\r\n\r\n/**\r\n * Hook to get customer identity data\r\n *\r\n * @param {string} applicantType\r\n */\r\nexport const useEnterApplicantDataManuallyData = applicantType => {\r\n const selectEnterApplicantDataManuallyData = useMemo(\r\n makeSelectEnterApplicantDataManuallyData,\r\n []\r\n );\r\n\r\n const enterApplicantDataManuallyData = useSelector(state =>\r\n selectEnterApplicantDataManuallyData(state, applicantType)\r\n );\r\n\r\n return enterApplicantDataManuallyData;\r\n};\r\n\r\n/**\r\n * Hook to get customer identity data\r\n *\r\n * @param {string} applicantType\r\n */\r\nexport const useCustomerIdentity = applicantType => {\r\n const selectCustomerIdentity = useMemo(makeSelectCustomerIdentity, []);\r\n\r\n const customerIdentity = useSelector(state =>\r\n selectCustomerIdentity(state, applicantType)\r\n );\r\n\r\n return customerIdentity;\r\n};\r\n\r\n/**\r\n * Hook to get customer identity data\r\n *\r\n * @param {string} applicantType\r\n */\r\nexport const useCustomerIdentityIsFetching = applicantType => {\r\n const selectCustomerIdentityIsFetching = useMemo(\r\n makeSelectCustomerIdentityIsFetching,\r\n []\r\n );\r\n\r\n const isFetching = useSelector(state =>\r\n selectCustomerIdentityIsFetching(state, applicantType)\r\n );\r\n\r\n return isFetching;\r\n};\r\n\r\n/**\r\n * Hook to get customer identity error message if has it\r\n *\r\n * @param {string} applicantType\r\n */\r\nexport const useCustomerIdentityError = applicantType => {\r\n const selectCustomerIdentityError = useMemo(\r\n makeSelectCustomerIdentityError,\r\n []\r\n );\r\n\r\n const errorMessage = useSelector(state =>\r\n selectCustomerIdentityError(state, applicantType)\r\n );\r\n\r\n return errorMessage;\r\n};\r\n\r\nexport const usePrevious = value => {\r\n // The ref object is a generic container whose current property is mutable ...\r\n // ... and can hold any value, similar to an instance property on a class\r\n const ref = useRef();\r\n // Store current value in ref\r\n useEffect(() => {\r\n ref.current = value;\r\n }, [value]); // Only re-run if value changes\r\n // Return previous value (happens before update in useEffect above)\r\n return ref.current;\r\n};\r\n\r\n// A custom hook that builds on useLocation to parse\r\n// the query string for you.\r\nexport function useGetURLParams() {\r\n const { search } = useLocation();\r\n\r\n return React.useMemo(() => new URLSearchParams(search), [search]);\r\n}\r\n\r\n/**\r\n * Hook to get processing status description by customerId\r\n *\r\n * @param {string} applicantType\r\n */\r\nexport const useProgressStatusTitle = applicantType => {\r\n const selectFetchingProgressStatusTitle = useMemo(\r\n makeSelectFetchingProgressStatusTitle,\r\n []\r\n );\r\n const fetchingProgressStatusTitle = useSelector(state =>\r\n selectFetchingProgressStatusTitle(state, applicantType)\r\n );\r\n\r\n const selectFetchingProgressStatusId = useMemo(\r\n makeSelectFetchingProgressStatusId,\r\n []\r\n );\r\n const fetchingProgressStatusId = useSelector(state =>\r\n selectFetchingProgressStatusId(state, applicantType)\r\n );\r\n\r\n const selectPhoneProvided = useMemo(makeSelectPhoneProvided, []);\r\n const phoneProvided = useSelector(state =>\r\n selectPhoneProvided(state, applicantType)\r\n );\r\n\r\n switch (fetchingProgressStatusId) {\r\n case STATUS_SMS_SEND:\r\n case STATUS_AUTH_PENDING:\r\n if (phoneProvided && !phoneProvided.includes('_')) {\r\n let last4Digit = phoneProvided.slice(phoneProvided.length - 4);\r\n fetchingProgressStatusTitle.subtitle = `A text message with a link was just sent to the phone ending in ${last4Digit}`;\r\n }\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n return fetchingProgressStatusTitle;\r\n};\r\n\r\n/**\r\n * Hook to get customer identity getting data is completed\r\n *\r\n * @param {string} applicantType\r\n */\r\nexport const useCustomerIdentityIsComplete = applicantType => {\r\n const selectCustomerIdentityIsComplete = useMemo(\r\n makeSelectCustomerIdentityIsComplete,\r\n []\r\n );\r\n\r\n const customerIdentityIsComplete = useSelector(state =>\r\n selectCustomerIdentityIsComplete(state, applicantType)\r\n );\r\n\r\n return customerIdentityIsComplete;\r\n};\r\n\r\n/**\r\n * Hook to get customer identity getting data is completed\r\n *\r\n * @param {string} applicantType\r\n */\r\nexport const useCustomerIdentityIsExpired = applicantType => {\r\n const selectCustomerIdentityIsExpired = useMemo(\r\n makeSelectCustomerIdentityIsExpired,\r\n []\r\n );\r\n\r\n const customerIdentityIsExpired = useSelector(state =>\r\n selectCustomerIdentityIsExpired(state, applicantType)\r\n );\r\n\r\n return customerIdentityIsExpired;\r\n};\r\n\r\n/**\r\n * Hook to get customer identity multiple address to select one\r\n *\r\n * @param {string} applicantType\r\n */\r\nexport const useCustomerIdentityAddressSelection = applicantType => {\r\n const selectCustomerIdentityAddressSelection = useMemo(\r\n makeSelectCustomerIdentityAddressSelection,\r\n []\r\n );\r\n\r\n const customerIdentityAddressSelection = useSelector(state =>\r\n selectCustomerIdentityAddressSelection(state, applicantType)\r\n );\r\n\r\n return customerIdentityAddressSelection;\r\n};\r\n\r\n/**\r\n * Hook to get customer identity Alerts\r\n *\r\n * @param {string} applicantType\r\n */\r\n\r\nexport const useCustomerIdentityAlerts = applicantType => {\r\n const selectCustomerIdentityAlerts = useMemo(\r\n makeSelectCustomerIdentityAlerts,\r\n []\r\n );\r\n\r\n const customerIdentityAlerts = useSelector(state =>\r\n selectCustomerIdentityAlerts(state, applicantType)\r\n );\r\n\r\n return customerIdentityAlerts;\r\n};\r\n\r\n/**\r\n * Hook to get customer expiration date request\r\n *\r\n * @param {string} applicantType\r\n */\r\nexport const useCustomerExpirationDate = applicantType => {\r\n const selectCustomerExpirationDate = useMemo(\r\n makeSelectCustomerExpirationDate,\r\n []\r\n );\r\n\r\n const customerExpirationDate = useSelector(state =>\r\n selectCustomerExpirationDate(state, applicantType)\r\n );\r\n\r\n return customerExpirationDate;\r\n};\r\n","import React from 'react';\r\nimport { Checkbox, Divider, Form } from 'antd';\r\n\r\nimport LegalLink from 'components/views/LegalInformation/Components/LegalLink';\r\n\r\nimport { ROUTES } from 'consts/routes';\r\nimport { BORROWER_NOMENCLATURE } from 'redux/app/constants';\r\nimport {\r\n useCustomerIdentityIsComplete,\r\n useEnterApplicantDataManuallyData\r\n} from 'hooks/data';\r\nimport { useSelector } from 'react-redux';\r\nimport { selectIsForQRCode } from 'redux/app/selectors';\r\nimport { FONT_SIZE_SMALL } from 'theme/variables';\r\n\r\nfunction Consent({ applicantType = BORROWER_NOMENCLATURE }) {\r\n const customerIdentityIsComplete =\r\n useCustomerIdentityIsComplete(applicantType);\r\n const isForQRCode = useSelector(selectIsForQRCode);\r\n const isTheFirstStepForQRCode = isForQRCode && !customerIdentityIsComplete;\r\n const applicantDataManually = useEnterApplicantDataManuallyData(\r\n BORROWER_NOMENCLATURE\r\n );\r\n\r\n const customStyle = {\r\n lineHeight: 'unset',\r\n height: 0,\r\n fontSize: FONT_SIZE_SMALL\r\n };\r\n\r\n if (isTheFirstStepForQRCode || !applicantDataManually) {\r\n return null;\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n By checking “Submit” below, you are providing written instruction to\r\n Service Finance Company, LLC to obtain your consumer credit report\r\n from one or more consumer reporting agencies to evaluate your request\r\n for prequalification. You agree that the information that you are\r\n providing is true, correct and accurate to the best of your knowledge,\r\n and that you are at least 18 years of age. You understand that by\r\n submitting this request for prequalification that Service Finance may\r\n perform one or more soft credit inquiries to consumer reporting\r\n agencies which will not affect your credit score. If you choose to\r\n continue your application, then Service Finance will request a full\r\n credit report from one or more consumer reporting agencies, which will\r\n be a “hard” credit pull which can affect your credit score and can be\r\n seen by third parties. A prequalification approval is not a guaranty\r\n of a full application approval. Please read the following important\r\n notices from Service Finance before submitting your request for\r\n prequalification:{' '}\r\n ,{' '}\r\n ,{' '}\r\n ,{' '}\r\n , and\r\n for California residents,{' '}\r\n \r\n . You acknowledge and agree that Service Finance may share your\r\n prequalification decision and terms of available financing offers if\r\n you qualify with the Dealer to facilitate the purchase of the goods\r\n and/or services and the finance transaction for their purchase, and to\r\n market to you in connection with this potential purchase.\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default Consent;\r\n\r\n// By checking this box, you agree that you have read and acknowledged\r\n// the following: ,{' '}\r\n// ,{' '}\r\n// ,{' '}\r\n// .\r\n","import { Button } from 'components/common/Buttons';\r\nimport React, { memo } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { replace } from 'connected-react-router';\r\nimport { generatePath } from 'react-router-dom';\r\n\r\nimport { selectIsForBDCode, selectIsForBECode } from 'redux/app/selectors';\r\nimport { selectDealerNumber } from 'redux/tokens/selectors';\r\n\r\nimport { resetApp } from 'redux/app/actions';\r\n\r\nimport { ROUTES } from 'consts/routes';\r\n\r\nfunction Close() {\r\n const dealerId = useSelector(selectDealerNumber);\r\n const isForBDCode = useSelector(selectIsForBDCode);\r\n const isForBECode = useSelector(selectIsForBECode);\r\n\r\n const url = isForBDCode\r\n ? generatePath(ROUTES.BD_CODE, { dealerId })\r\n : isForBECode === true\r\n ? generatePath(ROUTES.BE_CODE, { dealerId })\r\n : ROUTES.HOME;\r\n\r\n const dispatch = useDispatch();\r\n\r\n const handleCloseOnClick = () => {\r\n dispatch(resetApp());\r\n dispatch(replace(url));\r\n };\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nexport default memo(Close);\r\n","import React, { memo, useCallback } from 'react';\r\n\r\nimport { Space } from 'antd';\r\nimport { Button } from 'components/common/Buttons';\r\n\r\nimport { isFunction } from 'lodash';\r\nimport { SIZE_BETWEEN_ELEMENTS } from 'theme/variables';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport {\r\n getCustomerIdentity,\r\n resetDataCustomerIdentity\r\n} from 'redux/app/actions';\r\nimport {\r\n useCustomerIdentityIsComplete,\r\n useCustomerIdentityIsFetching,\r\n useEnterApplicantDataManuallyData\r\n} from 'hooks/data';\r\nimport {\r\n APPLICANT_PREFIX,\r\n APPLICANT_TITLE,\r\n BORROWER_NOMENCLATURE\r\n} from 'redux/app/constants';\r\nimport {\r\n selectIsForBDCode,\r\n selectIsForBECode,\r\n selectIsForQRCode,\r\n selectPhoneConsentApproved,\r\n selectSkipForm\r\n} from 'redux/app/selectors';\r\nimport Close from './Components/Close';\r\nimport { useIsMobile } from 'hooks/responsive';\r\n\r\nexport function FindCustomerDataButton({\r\n fieldsPrefix,\r\n form,\r\n applicantType,\r\n loading = false,\r\n ...props\r\n}) {\r\n const dispatch = useDispatch();\r\n const isMobile = useIsMobile();\r\n\r\n const handleSubmit = async e => {\r\n try {\r\n const firstFieldName = `${fieldsPrefix}FirstName`;\r\n const lastFieldName = `${fieldsPrefix}LastName`;\r\n const ssnFieldName = `${fieldsPrefix}SSN`;\r\n const phoneFieldName = `${fieldsPrefix}PhoneNumber`;\r\n const dateOfBirthFieldName = `${fieldsPrefix}DateOfBirth`;\r\n const phoneFieldVerifiedName = `${fieldsPrefix}PhoneVerified`;\r\n\r\n const {\r\n [firstFieldName]: firstName,\r\n [lastFieldName]: lastName,\r\n [ssnFieldName]: ssn,\r\n [phoneFieldName]: phoneNumber,\r\n [dateOfBirthFieldName]: dateOfBirth,\r\n [phoneFieldVerifiedName]: PhoneVerified\r\n } = await form.validateFields([\r\n firstFieldName,\r\n lastFieldName,\r\n ssnFieldName,\r\n phoneFieldName,\r\n dateOfBirthFieldName,\r\n phoneFieldVerifiedName\r\n ]);\r\n dispatch(resetDataCustomerIdentity({ applicantType }));\r\n dispatch(getCustomerIdentity({ applicantType, requiredId: false }));\r\n } catch (error) {\r\n console.log('An error has occurred. Please contact us.');\r\n }\r\n };\r\n\r\n const buttonText = isMobile\r\n ? 'Find'\r\n : `Find the ${APPLICANT_TITLE[BORROWER_NOMENCLATURE]}`;\r\n\r\n return (\r\n \r\n {buttonText}\r\n \r\n );\r\n}\r\n\r\nfunction FormButtons({\r\n form,\r\n loading,\r\n submitOnClick,\r\n disabled,\r\n applicantType = BORROWER_NOMENCLATURE,\r\n fieldsPrefix = APPLICANT_PREFIX\r\n}) {\r\n const customerIdentityIsComplete =\r\n useCustomerIdentityIsComplete(applicantType);\r\n const isForQRCode = useSelector(selectIsForQRCode);\r\n const isForBDCode = useSelector(selectIsForBDCode);\r\n const isForBECode = useSelector(selectIsForBECode);\r\n\r\n const skipForm = useSelector(selectSkipForm);\r\n\r\n const phoneConsentApproved = useSelector(selectPhoneConsentApproved);\r\n const customerIdentityIsFetching =\r\n useCustomerIdentityIsFetching(applicantType);\r\n\r\n const applicantDataManually =\r\n useEnterApplicantDataManuallyData(applicantType);\r\n\r\n const isTheFirstStepForQRCode = isForQRCode && !customerIdentityIsComplete;\r\n const isTheFirstStepForBDCode =\r\n isForBDCode && !customerIdentityIsComplete && !skipForm;\r\n const isTheFirstStepForBECode =\r\n isForBECode && !customerIdentityIsComplete && !skipForm;\r\n\r\n const handleSubmitOnClick = useCallback(\r\n e => {\r\n if (isFunction(submitOnClick)) {\r\n submitOnClick(e);\r\n }\r\n },\r\n [submitOnClick]\r\n );\r\n\r\n return (\r\n \r\n \r\n {isTheFirstStepForQRCode ||\r\n isTheFirstStepForBDCode ||\r\n isTheFirstStepForBECode ? (\r\n \r\n ) : (\r\n \r\n Submit\r\n \r\n )}\r\n \r\n );\r\n}\r\n\r\nexport default memo(FormButtons);\r\n","import React from 'react';\r\nimport { replace } from 'connected-react-router';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport ButtonLink, { Button } from 'components/common/Buttons';\r\n\r\nimport { ROUTES } from 'consts/routes';\r\n\r\nexport default function ExitButton({\r\n type = 'primary',\r\n text = 'Exit',\r\n isLink = false,\r\n route = null,\r\n ...params\r\n}) {\r\n const Component = isLink ? ButtonLink : Button;\r\n const dispatch = useDispatch();\r\n\r\n function handleOnClick() {\r\n dispatch(replace(route ? route : ROUTES.HOME));\r\n }\r\n\r\n return (\r\n \r\n {text}\r\n \r\n );\r\n}\r\n","import styled from 'styled-components';\r\nimport { Input, Radio as RadioAnt, Checkbox as CheckboxAnt } from 'antd';\r\nimport MaskedInput from 'antd-mask-input';\r\n\r\nimport {\r\n MAIN_COLOR,\r\n FONT_SIZE,\r\n FONT_SIZE_SMALL,\r\n FONT_COLOR,\r\n FONT_FAMILY,\r\n FONT_FORMAL,\r\n FONT_ELEGANT,\r\n FONT_CLASSIC,\r\n PLACEHOLDER_COLOR,\r\n WIDTH_BREAKPOINT_XS,\r\n ACTION_COLOR_HOVER,\r\n ACTION_COLOR\r\n} from 'theme/variables';\r\n\r\nexport const SpacedMaskedInput = styled(MaskedInput)`\r\n letter-spacing: 0.1em;\r\n\r\n &.ssn-input {\r\n position: absolute;\r\n top: 0;\r\n display: none;\r\n\r\n &.protected {\r\n display: block;\r\n }\r\n\r\n &.unprotected {\r\n display: block;\r\n }\r\n\r\n &.with-errors {\r\n border-color: red;\r\n\r\n &:focus {\r\n border-color: #ff3029;\r\n box-shadow: 0 0 0 2px rgb(255 0 0 / 20%);\r\n border-right-width: 1px;\r\n outline: 0;\r\n }\r\n }\r\n }\r\n`;\r\n\r\n// Input\r\nexport const InputText = styled(Input)`\r\n &.ant-input {\r\n font-size: 30pt;\r\n height: 100px;\r\n padding: 2px 10px;\r\n text-align: center;\r\n border-top: none;\r\n border-left: none;\r\n border-right: none;\r\n background: white;\r\n color: #1069d8;\r\n\r\n @media only screen and (max-width: ${WIDTH_BREAKPOINT_XS}) {\r\n font-size: 16pt;\r\n }\r\n }\r\n\r\n &.${props => props.className} {\r\n ${props => (props.fontFamily ? `font-family: ${props.fontFamily};` : '')}\r\n ${props => (props.fontSize ? `font-size: ${props.fontSize}pt;` : '')}\r\n ${props => (props.color ? `color: ${props.color};` : '')}\r\n }\r\n\r\n /* Both size and colour work in IE 11 */\r\n input:-ms-input-placeholder {\r\n font-size: 2em;\r\n color: #0f0;\r\n }\r\n\r\n ::placeholder {\r\n /* Most modern browsers support this now. */\r\n font-size: ${FONT_SIZE_SMALL};\r\n color: ${PLACEHOLDER_COLOR};\r\n font-family: ${FONT_FAMILY};\r\n }\r\n\r\n ::-webkit-input-placeholder {\r\n /* WebKit, Blink, Edge */\r\n font-size: ${FONT_SIZE_SMALL};\r\n color: ${PLACEHOLDER_COLOR};\r\n font-family: ${FONT_FAMILY};\r\n }\r\n :-moz-placeholder {\r\n /* Mozilla Firefox 4 to 18 */\r\n font-size: ${FONT_SIZE_SMALL};\r\n color: ${PLACEHOLDER_COLOR};\r\n font-family: ${FONT_FAMILY};\r\n }\r\n ::-moz-placeholder {\r\n /* Mozilla Firefox 19+ */\r\n font-size: ${FONT_SIZE_SMALL};\r\n color: ${PLACEHOLDER_COLOR};\r\n font-family: ${FONT_FAMILY};\r\n }\r\n :-ms-input-placeholder {\r\n /* Internet Explorer 10-11 */\r\n font-size: ${FONT_SIZE_SMALL};\r\n color: ${PLACEHOLDER_COLOR};\r\n font-family: ${FONT_FAMILY};\r\n }\r\n ::-ms-input-placeholder,\r\n &::-webkit-input-placeholder,\r\n &::-webkit-input-placeholder {\r\n /* Microsoft Edge */\r\n font-size: ${FONT_SIZE_SMALL};\r\n color: ${PLACEHOLDER_COLOR};\r\n font-family: ${FONT_FAMILY};\r\n }\r\n\r\n &.ant-input:focus {\r\n border-bottom: 2px solid ${MAIN_COLOR};\r\n outline: 0;\r\n box-shadow: none;\r\n }\r\n`;\r\n\r\nexport const Radio = styled(RadioAnt)`\r\n &.ant-radio-wrapper {\r\n font-size: ${FONT_SIZE};\r\n }\r\n`;\r\n\r\nexport const Checkbox = styled(CheckboxAnt)`\r\n .ant-checkbox-inner {\r\n width: 22px;\r\n height: 22px;\r\n\r\n &:after {\r\n top: 45%;\r\n width: 7px;\r\n height: 14px;\r\n }\r\n }\r\n\r\n &.ant-checkbox-wrapper:hover .ant-checkbox-inner,\r\n & .ant-checkbox:hover .ant-checkbox-inner,\r\n & .ant-checkbox-input:focus + .ant-checkbox-inner,\r\n .ant-checkbox-checked::after,\r\n .ant-checkbox-checked .ant-checkbox-inner {\r\n border-color: ${ACTION_COLOR_HOVER};\r\n }\r\n\r\n .ant-checkbox-checked .ant-checkbox-inner {\r\n background: ${ACTION_COLOR};\r\n }\r\n`;\r\n\r\nexport const RadioGroup = styled(RadioAnt.Group)`\r\n &.ant-radio-group {\r\n display: flex;\r\n }\r\n`;\r\n\r\nexport const RadioButton = styled(RadioAnt.Button)`\r\n width: 100%;\r\n text-align: center;\r\n\r\n &.ant-radio-button-wrapper:first-child,\r\n &.ant-radio-button-wrapper,\r\n &.ant-radio-button-wrapper:last-child {\r\n border-radius: 0;\r\n border: none;\r\n color: ${FONT_COLOR};\r\n font-family: ${FONT_FAMILY};\r\n outline: none;\r\n background: transparent;\r\n }\r\n\r\n &.ant-radio-button-wrapper:hover,\r\n &.ant-radio-button-wrapper-focused,\r\n &.ant-radio-button-wrapper.ant-radio-button-wrapper-checked {\r\n color: ${MAIN_COLOR};\r\n }\r\n\r\n &.ant-radio-button-wrapper {\r\n &:before,\r\n &:not(:first-child)::before {\r\n content: none;\r\n }\r\n &.ant-radio-button-wrapper-checked {\r\n border-bottom: 2px solid ${MAIN_COLOR};\r\n box-shadow: none;\r\n outline: none;\r\n background: transparent;\r\n }\r\n\r\n &.classic span {\r\n font-family: ${FONT_CLASSIC};\r\n }\r\n &.elegant span {\r\n font-family: ${FONT_ELEGANT};\r\n }\r\n &.formal span {\r\n font-family: ${FONT_FORMAL};\r\n }\r\n }\r\n`;\r\n","import { Title } from 'components/common/Typography';\r\nimport React from 'react';\r\nimport styled from 'styled-components';\r\nimport { FONT_COLOR, FONT_SIZE, FONT_WEIGHT } from 'theme/variables';\r\n\r\nconst CustomFieldset = styled.fieldset`\r\n border-color: rgba(0, 0, 0, 0.06);\r\n border-width: 1px;\r\n border-style: groove;\r\n padding: 10px;\r\n margin-bottom: 10px;\r\n\r\n legend {\r\n border-bottom: none;\r\n padding: 0 5px;\r\n width: auto;\r\n font-weight: ${FONT_WEIGHT};\r\n font-size: ${FONT_SIZE};\r\n color: ${FONT_COLOR};\r\n margin: 0;\r\n white-space: nowrap;\r\n }\r\n\r\n & + & {\r\n margin-top: 10px;\r\n }\r\n`;\r\n\r\nconst Fieldset = ({ title, children, ...props }) => {\r\n return (\r\n \r\n \r\n {title}\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default Fieldset;\r\n","import React from 'react';\r\n\r\nimport { Radio } from 'components/common/Inputs';\r\nimport Fieldset from '../../Components/Fieldset';\r\nimport { GUTTER_DEFAULT } from 'theme/variables';\r\nimport parse from 'html-react-parser';\r\nimport { SubTitle } from 'components/common/Typography';\r\n\r\nconst { Form, Row, Col } = require('antd');\r\n\r\nfunction ValidItem({ fieldName, address, validAddress }) {\r\n return (\r\n \r\n \r\n \r\n \r\n
\r\n \r\n {parse(address)}\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n {parse(validAddress)}\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nexport default ValidItem;\r\n","import React from 'react';\r\n\r\nimport { Checkbox } from 'components/common/Inputs';\r\nimport parse from 'html-react-parser';\r\nimport { SubTitle } from 'components/common/Typography';\r\n\r\nconst { Form } = require('antd');\r\n\r\nfunction InvalidItem({ fieldName, address }) {\r\n return (\r\n <>\r\n \r\n The address provided could not be verified by the USPS.
\r\n

{parse(address)}

\r\n
\r\n value || undefined,\r\n type: 'boolean'\r\n }\r\n ]}\r\n initialValue={false}\r\n >\r\n \r\n I confirm that I want to provide this address as is.\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default InvalidItem;\r\n","import React, { memo, useCallback, useEffect, useState } from 'react';\r\nimport { Button } from 'components/common/Buttons';\r\nimport Content from 'components/common/Content';\r\nimport { Title } from 'components/common/Typography';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { APPLICANT_PREFIX, CO_APPLICANT_PREFIX } from 'redux/app/constants';\r\nimport {\r\n selectApplicantAddress,\r\n selectApplicantValidatedAddress,\r\n selectCoApplicantAddress,\r\n selectCoApplicantValidatedAddress,\r\n selectIsApplicantAddressValid,\r\n selectIsCoApplicantAddressValid,\r\n selectShowAddressValidation,\r\n selectValidatedAddresses\r\n} from 'redux/app/selectors';\r\nimport {\r\n setConfirmedAddresseses,\r\n showAddressValidation,\r\n submitApplyForm\r\n} from 'redux/app/actions';\r\nimport ValidItem from './ValidItem';\r\nimport InvalidItem from './InvalidItem';\r\n\r\nconst { Modal, Form } = require('antd');\r\n\r\nfunction ConfirmationModal({ onValidatedAddressAccepted }) {\r\n const dispatch = useDispatch();\r\n const [form] = Form.useForm();\r\n\r\n const isCoApplicantAddressValid = useSelector(\r\n selectIsCoApplicantAddressValid\r\n );\r\n const isApplicantAddressValid = useSelector(selectIsApplicantAddressValid);\r\n const applicantValidatedAddress = useSelector(\r\n selectApplicantValidatedAddress\r\n );\r\n const coApplicantValidatedAddress = useSelector(\r\n selectCoApplicantValidatedAddress\r\n );\r\n const applicantAddress = useSelector(selectApplicantAddress);\r\n const coApplicantAddress = useSelector(selectCoApplicantAddress);\r\n const validatedAddresses = useSelector(selectValidatedAddresses);\r\n\r\n const [isSubmitDisabled, setIsSubmitDisabled] = useState(false);\r\n\r\n useEffect(() => {\r\n const isDisabled = Object.values(form.getFieldsValue(true)).some(\r\n item => !item\r\n );\r\n setIsSubmitDisabled(isDisabled);\r\n }, [form]);\r\n\r\n const handleClose = () => {\r\n dispatch(showAddressValidation(false));\r\n };\r\n\r\n const handleOnValuesChange = (changedValues, allValues) => {\r\n setIsSubmitDisabled(Object.values(allValues).some(item => !item));\r\n };\r\n\r\n const handleOnFinish = values => {\r\n let confirmedAddresses = {};\r\n if (typeof onValidatedAddressAccepted === 'function') {\r\n if (values.applicant) {\r\n if (values.applicant === 'validated') {\r\n onValidatedAddressAccepted(\r\n APPLICANT_PREFIX,\r\n validatedAddresses[0].verified\r\n );\r\n }\r\n\r\n confirmedAddresses[APPLICANT_PREFIX] = true;\r\n }\r\n\r\n if (values.coApplicant) {\r\n if (values.coApplicant === 'validated') {\r\n onValidatedAddressAccepted(\r\n CO_APPLICANT_PREFIX,\r\n validatedAddresses[1].verified\r\n );\r\n }\r\n confirmedAddresses[APPLICANT_PREFIX] = true;\r\n }\r\n }\r\n dispatch(setConfirmedAddresseses(confirmedAddresses));\r\n dispatch(submitApplyForm());\r\n handleClose();\r\n };\r\n\r\n const handleSubmit = useCallback(() => {\r\n form.submit();\r\n }, [form]);\r\n\r\n return (\r\n Address validation }\r\n closable\r\n centered\r\n onOk={handleSubmit}\r\n onCancel={handleClose}\r\n footer={[\r\n ,\r\n \r\n Continue\r\n \r\n ]}\r\n >\r\n \r\n {!isApplicantAddressValid ? (\r\n applicantAddress ? (\r\n \r\n {applicantValidatedAddress ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n ) : null\r\n ) : null}\r\n\r\n {!isCoApplicantAddressValid ? (\r\n coApplicantAddress ? (\r\n \r\n {coApplicantValidatedAddress ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n ) : null\r\n ) : null}\r\n \r\n \r\n );\r\n}\r\n\r\nfunction ValidationAddressModal({ onValidatedAddressAccepted }) {\r\n const visible = useSelector(selectShowAddressValidation);\r\n\r\n return visible ? (\r\n \r\n ) : null;\r\n}\r\n\r\nexport default memo(ValidationAddressModal);\r\n","import styled from 'styled-components';\r\n\r\nimport { Result as AntResult } from 'antd';\r\nimport {\r\n ERROR_COLOR,\r\n FONT_COLOR,\r\n FONT_SIZE,\r\n FONT_SIZE_SMALL,\r\n FONT_WEIGHT\r\n} from 'theme/variables';\r\n\r\nconst Result = styled(AntResult)`\r\n & .ant-result-subtitle {\r\n color: ${FONT_COLOR};\r\n }\r\n\r\n &.only-text {\r\n padding: 0;\r\n\r\n .ant-result-icon {\r\n display: inline;\r\n margin: 0;\r\n text-align: left;\r\n\r\n .anticon {\r\n font-size: 20px;\r\n }\r\n }\r\n\r\n &.ant-result-error .ant-result-title,\r\n &.ant-result-error .ant-result-subtitle {\r\n color: ${ERROR_COLOR};\r\n }\r\n\r\n & .ant-result-subtitle {\r\n font-size: ${FONT_SIZE_SMALL};\r\n margin-left: 30px;\r\n color: ${FONT_COLOR};\r\n }\r\n\r\n .ant-result-title {\r\n font-weight: ${FONT_WEIGHT};\r\n font-size: ${FONT_SIZE};\r\n display: inline;\r\n margin-left: 10px;\r\n }\r\n\r\n .ant-result-title,\r\n .ant-result-extra,\r\n .ant-result-subtitle {\r\n text-align: left;\r\n }\r\n }\r\n`;\r\n\r\nexport default Result;\r\n","import React from 'react';\r\n\r\nimport Result from 'components/common/Result';\r\n\r\nfunction ErrorsDetails({ onlyText = true, ...props }) {\r\n return ;\r\n}\r\n\r\nexport default ErrorsDetails;\r\n","import styled from 'styled-components';\r\n\r\nimport { Card as AntCard } from 'antd';\r\n\r\nimport { BORDER_DEFAULT, FONT_SIZE } from 'theme/variables';\r\n\r\nconst Card = styled(AntCard)``;\r\n\r\nexport const AddressCard = styled(AntCard)`\r\n &.ant-card {\r\n border-bottom: ${BORDER_DEFAULT};\r\n }\r\n .ant-card-head {\r\n min-height: 12px;\r\n padding: 0;\r\n font-size: ${FONT_SIZE};\r\n border-bottom: ${BORDER_DEFAULT};\r\n }\r\n .ant-card-head-title {\r\n padding: 5px 0;\r\n }\r\n .ant-card-body {\r\n padding: 5px;\r\n }\r\n`;\r\n\r\nexport default Card;\r\n","import React, { Component } from 'react';\r\nimport { Radio as RadioAnt } from 'antd';\r\nimport styled from 'styled-components';\r\n\r\nconst RadioGroupAnt = RadioAnt.Group;\r\n\r\nexport default class RadioGroup extends Component {\r\n handleOnChange = e => {\r\n this.props.onChange(this.props.property, e.target.name, e.target.value);\r\n };\r\n\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport const Radio = styled(RadioAnt)`\r\n &.address-selection--radio {\r\n &.ant-radio-wrapper {\r\n padding: 20px;\r\n width: 100%;\r\n }\r\n &.ant-radio-wrapper-checked {\r\n background: #fafafa;\r\n }\r\n }\r\n`;\r\n","import { InfoCircleFilled, InfoCircleOutlined } from '@ant-design/icons';\r\nimport { Alert } from 'antd';\r\nimport React from 'react';\r\nimport styled from 'styled-components';\r\n\r\nimport {\r\n FONT_COLOR,\r\n FONT_COLOR_SOFT,\r\n FONT_SIZE,\r\n FONT_SIZE_SMALL,\r\n FONT_WEIGHT,\r\n MAIN_COLOR,\r\n LABEL_DARK_THEME,\r\n VALUE_DARK_THEME,\r\n BORDER_LIGHT,\r\n LABEL_FONT_COLOR,\r\n FONT_COLOR_LIGHT,\r\n FONT_SIZE_SMALLEST,\r\n GRAY_BACKGROUND\r\n} from 'theme/variables';\r\n\r\nexport const Colored = styled.span`\r\n color: ${props => (props.color ? props.color : MAIN_COLOR)};\r\n font-weight: ${props => (props.lighter ? 'normal' : FONT_WEIGHT)};\r\n`;\r\n\r\nexport const Title = styled.span`\r\n font-size: ${props => (props.small ? FONT_SIZE_SMALL : FONT_SIZE)};\r\n font-weight: ${props => (props.soft ? 'normal' : FONT_WEIGHT)};\r\n text-align: ${props => (props.align ? props.align : 'left')};\r\n display: ${props => (props.display ? props.display : 'block')};\r\n color: ${props => (props.color ? props.color : FONT_COLOR)};\r\n white-space: normal;\r\n`;\r\n\r\nexport const Copyright = styled.span`\r\n font-size: ${FONT_SIZE_SMALLEST};\r\n text-align: center;\r\n color: ${FONT_COLOR_LIGHT};\r\n display: block;\r\n`;\r\n\r\nexport const SubTitle = styled.span`\r\n font-size: ${FONT_SIZE_SMALL};\r\n color: ${FONT_COLOR_SOFT};\r\n font-weight: normal;\r\n text-align: left;\r\n display: block;\r\n white-space: normal;\r\n`;\r\n\r\nexport const HeadingTitle = styled.div`\r\n position: absolute;\r\n right: 0;\r\n top: 0;\r\n padding: 20px;\r\n width: 100%;\r\n\r\n &.borderless {\r\n position: relative;\r\n padding: 0 0 10px;\r\n text-align: left;\r\n\r\n .heading-title-name {\r\n float: none;\r\n }\r\n }\r\n\r\n &.sider-head {\r\n position: relative;\r\n padding: 0 0 20px;\r\n margin-bottom: 20px;\r\n text-align: left;\r\n\r\n .anticon-close {\r\n position: absolute;\r\n right: 0;\r\n top: 2px;\r\n color: ${MAIN_COLOR};\r\n cursor: pointer;\r\n padding: 10px;\r\n }\r\n\r\n .link {\r\n display: block;\r\n text-align: left;\r\n }\r\n\r\n .heading-title-name {\r\n float: none;\r\n }\r\n }\r\n\r\n .heading-title-name {\r\n font-weight: ${FONT_WEIGHT};\r\n color: rgba(77, 77, 77, 0.8);\r\n float: right;\r\n word-break: break-word;\r\n width: 30%;\r\n text-align: right;\r\n font-size: ${FONT_SIZE};\r\n }\r\n\r\n .heading-subtitle {\r\n display: block;\r\n font-size: 11px;\r\n color: rgba(77, 77, 77, 0.9);\r\n font-weight: normal;\r\n }\r\n\r\n @media (max-width: 767px) {\r\n .heading-title-name {\r\n float: none;\r\n width: 100%;\r\n text-align: left;\r\n display: block;\r\n }\r\n }\r\n`;\r\n\r\nexport const ContentTitle = styled.div`\r\n font-weight: ${FONT_WEIGHT};\r\n color: rgba(77, 77, 77, 0.8);\r\n font-size: ${FONT_SIZE};\r\n\r\n .heading-title-name {\r\n font-weight: ${FONT_WEIGHT};\r\n color: rgba(77, 77, 77, 0.8);\r\n float: right;\r\n word-break: break-word;\r\n width: 30%;\r\n text-align: right;\r\n font-size: ${FONT_SIZE};\r\n }\r\n\r\n .heading-subtitle {\r\n display: block;\r\n font-size: 11px;\r\n color: rgba(77, 77, 77, 0.9);\r\n font-weight: normal;\r\n }\r\n\r\n @media (max-width: 767px) {\r\n .heading-title-name {\r\n float: none;\r\n width: 100%;\r\n text-align: left;\r\n display: block;\r\n }\r\n }\r\n`;\r\n\r\nexport const PropertyContainer = styled.div`\r\n display: flex;\r\n flex-direction: ${props =>\r\n props.flexDirection ? props.flexDirection : 'row'};\r\n align-items: baseline;\r\n color: ${props =>\r\n props.theme && props.theme === 'dark'\r\n ? LABEL_DARK_THEME\r\n : LABEL_FONT_COLOR};\r\n font-size: ${props => (props.size ? props.size : FONT_SIZE)};\r\n margin-bottom: 5px;\r\n padding-top: 5px;\r\n\r\n & + & {\r\n border-top: ${BORDER_LIGHT};\r\n }\r\n`;\r\n\r\nexport const Yield = styled.div`\r\n margin-left: ${props =>\r\n props.title && props.flexDirection === 'row' ? '5px' : 0};\r\n color: ${props =>\r\n props.theme && props.theme === 'dark' ? VALUE_DARK_THEME : FONT_COLOR};\r\n font-size: ${props => (props.size ? props.size : { FONT_SIZE })};\r\n max-width: ${props => (props.limited ? '300px' : 'auto')};\r\n font-weight: ${FONT_WEIGHT};\r\n`;\r\n\r\nexport const Item = ({ children, ...props }) => {\r\n return (\r\n \r\n {props.title\r\n ? `${props.title}${\r\n children && props.flexDirection === 'row' ? ':' : ''\r\n }`\r\n : ''}\r\n {children}\r\n \r\n );\r\n};\r\n\r\nconst IContent = styled.div`\r\n font-weight: ${FONT_WEIGHT};\r\n background: ${GRAY_BACKGROUND};\r\n padding: 5px 10px;\r\n font-size: ${FONT_SIZE_SMALL};\r\n border: 1px solid rgba(0, 0, 0, 0.06);\r\n margin-bottom: 15px;\r\n`;\r\n\r\nconst CustomAlert = styled(Alert)`\r\n &.centered.ant-alert-with-description {\r\n align-items: center;\r\n\r\n .ant-alert-icon {\r\n margin-right: 10px;\r\n }\r\n }\r\n\r\n &.ant-alert-with-description {\r\n padding: 10px;\r\n\r\n .ant-alert-icon {\r\n font-size: 14px;\r\n }\r\n }\r\n\r\n .ant-alert-description {\r\n font-size: ${FONT_SIZE_SMALL};\r\n font-weight: normal;\r\n }\r\n`;\r\n\r\nexport const Information = ({ children, ...props }) => {\r\n return {children};\r\n};\r\n\r\nexport const Message = ({ title, children, ...props }) => {\r\n return (\r\n }\r\n {...props}\r\n />\r\n );\r\n};\r\n\r\nexport default HeadingTitle;\r\n","import React, { memo, useState } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { isEmpty } from 'lodash';\r\nimport { useCustomerIdentityAddressSelection } from 'hooks/data';\r\n\r\nimport { Modal } from 'antd';\r\nimport { Button } from 'components/common/Buttons';\r\nimport { Text, Title } from 'components/common/Typography';\r\nimport { AddressCard } from 'components/common/Card';\r\n\r\nimport {\r\n closeAddressListToSelect,\r\n saveCustomerIdentityAddress\r\n} from 'redux/app/actions';\r\n\r\nimport { selectShowMultipleAddressSelection } from 'redux/app/selectors';\r\nimport { Radio } from 'components/common/Radio';\r\nimport { Message } from 'components/common/Text';\r\n\r\nfunction MultipleAddressSelection({ applicantType }) {\r\n const dispatch = useDispatch();\r\n const [addressValue, setAddressValue] = useState(-1);\r\n const multipleAddress = useCustomerIdentityAddressSelection(applicantType);\r\n\r\n const handleClose = () => {\r\n dispatch(closeAddressListToSelect());\r\n };\r\n\r\n const handleOnChange = e => {\r\n setAddressValue(e.target.value);\r\n };\r\n\r\n const handleSelect = () => {\r\n const customerAddress = multipleAddress.filter(\r\n address => address.id === addressValue\r\n )[0];\r\n dispatch(saveCustomerIdentityAddress({ applicantType, customerAddress }));\r\n };\r\n\r\n return (\r\n Address selection}\r\n closable={false}\r\n maskClosable={false}\r\n centered\r\n onCancel={handleClose}\r\n bodyStyle={{ padding: 0 }}\r\n footer={[\r\n \r\n Select\r\n \r\n // \r\n ]}\r\n >\r\n {!isEmpty(multipleAddress) ? (\r\n <>\r\n \r\n {multipleAddress.length} addresses have been found. Please select an\r\n address to continue.\r\n \r\n \r\n {multipleAddress.map((address, index) =>\r\n address.id >= 0 ? (\r\n \r\n \r\n {address.fullAddress ? (\r\n address.fullAddress\r\n ) : (\r\n Invalid address\r\n )}\r\n \r\n \r\n ) : null\r\n )}\r\n \r\n \r\n ) : null}\r\n \r\n );\r\n}\r\n\r\nfunction MultipleAddressSelectionModal() {\r\n const applicantType = useSelector(selectShowMultipleAddressSelection);\r\n\r\n return applicantType ? (\r\n \r\n ) : null;\r\n}\r\n\r\nexport default memo(MultipleAddressSelectionModal);\r\n","export const citizenshipData = [\r\n { text: 'US Citizen', value: 1 },\r\n {\r\n text: 'Lawful Permanent Resident Alien',\r\n value: 2\r\n },\r\n { text: 'Other', value: 3 }\r\n];\r\n\r\nexport const stateData = [\r\n { text: 'AL', value: 'AL' },\r\n { text: 'AK', value: 'AK' },\r\n { text: 'AZ', value: 'AZ' },\r\n { text: 'AR', value: 'AR' },\r\n { text: 'CA', value: 'CA' },\r\n { text: 'CO', value: 'CO' },\r\n { text: 'CT', value: 'CT' },\r\n { text: 'DE', value: 'DE' },\r\n { text: 'FL', value: 'FL' },\r\n { text: 'GA', value: 'GA' },\r\n { text: 'HI', value: 'HI' },\r\n { text: 'ID', value: 'ID' },\r\n { text: 'IL', value: 'IL' },\r\n { text: 'IN', value: 'IN' },\r\n { text: 'IA', value: 'IA' },\r\n { text: 'KS', value: 'KS' },\r\n { text: 'KY', value: 'KY' },\r\n { text: 'LA', value: 'LA' },\r\n { text: 'ME', value: 'ME' },\r\n { text: 'MD', value: 'MD' },\r\n { text: 'MA', value: 'MA' },\r\n { text: 'MI', value: 'MI' },\r\n { text: 'MN', value: 'MN' },\r\n { text: 'MS', value: 'MS' },\r\n { text: 'MO', value: 'MO' },\r\n { text: 'MT', value: 'MT' },\r\n { text: 'NE', value: 'NE' },\r\n { text: 'NV', value: 'NV' },\r\n { text: 'NH', value: 'NH' },\r\n { text: 'NJ', value: 'NJ' },\r\n { text: 'NM', value: 'NM' },\r\n { text: 'NY', value: 'NY' },\r\n { text: 'NC', value: 'NC' },\r\n { text: 'ND', value: 'ND' },\r\n { text: 'OH', value: 'OH' },\r\n { text: 'OK', value: 'OK' },\r\n { text: 'OR', value: 'OR' },\r\n { text: 'PA', value: 'PA' },\r\n { text: 'RI', value: 'RI' },\r\n { text: 'SC', value: 'SC' },\r\n { text: 'SD', value: 'SD' },\r\n { text: 'TN', value: 'TN' },\r\n { text: 'TX', value: 'TX' },\r\n { text: 'UT', value: 'UT' },\r\n { text: 'VT', value: 'VT' },\r\n { text: 'VA', value: 'VA' },\r\n { text: 'WA', value: 'WA' },\r\n { text: 'WV', value: 'WV' },\r\n { text: 'WI', value: 'WI' },\r\n { text: 'WY', value: 'WY' },\r\n { text: 'DC', value: 'DC' }\r\n];\r\n","import React, { memo, useCallback, useEffect, useRef, useState } from 'react';\r\nimport classNames from 'classnames';\r\n\r\nimport { FormItem } from 'components/common/Form';\r\nimport { SpacedMaskedInput } from 'components/common/Inputs';\r\n\r\nfunction SSN({\r\n form,\r\n required_rules,\r\n required = true,\r\n fieldsPrefix,\r\n extra = null,\r\n ...props\r\n}) {\r\n const inputRef = useRef(null);\r\n const ssnProperties = {\r\n pattern: '^[A-Z]{3}-?[A-Z]{2}-?[0-9]{4}$',\r\n // pattern: '^[0-9]{3}-?[0-9]{2}-?[0-9]{4}$',\r\n // mask: '000-00-0000'\r\n mask: 'XXX-XX-0000'\r\n };\r\n const [isProtected, setIsProtected] = useState(true);\r\n const [hasError, setHasError] = useState(false);\r\n\r\n const ssn_rules = [\r\n {\r\n message: 'The SSN entered is not correct',\r\n pattern: ssnProperties.pattern\r\n }\r\n ];\r\n\r\n if (required) {\r\n ssn_rules.push(required_rules);\r\n }\r\n\r\n useEffect(() => {\r\n if (!isProtected) {\r\n inputRef.current.input.focus({\r\n cursor: 'end'\r\n });\r\n }\r\n }, [isProtected]);\r\n\r\n const handleOnBlur = e => {\r\n setIsProtected(true);\r\n };\r\n\r\n const handleOnFocus = e => {\r\n setIsProtected(false);\r\n };\r\n\r\n const handleShouldUpdate = useCallback(\r\n (prevValues, currentValues) => {\r\n setHasError(form.getFieldError(`${fieldsPrefix}SSN`).length > 0);\r\n\r\n return (\r\n prevValues[`${fieldsPrefix}SSN`] !== currentValues[`${fieldsPrefix}SSN`]\r\n );\r\n },\r\n [fieldsPrefix, form]\r\n );\r\n\r\n const protectedClasses = classNames(\r\n 'ssn-input',\r\n isProtected ? 'protected' : '',\r\n hasError ? 'with-errors' : ''\r\n );\r\n\r\n const unprotectedClasses = classNames(\r\n 'ssn-input',\r\n !isProtected ? 'unprotected' : '',\r\n hasError ? 'with-errors' : ''\r\n );\r\n\r\n return (\r\n \r\n {() => {\r\n return (\r\n <>\r\n \r\n