{"version":3,"sources":["webpack:///./src/libs/featureFlagLookUp.ts","webpack:///./node_modules/history/createHashHistory.js","webpack:///./src/constants/isoLegalEntities.ts","webpack:///./src/features/transfers/new.transfer/_shared/constants.js","webpack:///./src/constants/brands.js","webpack:///./node_modules/js-cookie/src/js.cookie.js","webpack:///./src/constants/currencies.js","webpack:///./src/components/BankDetails/constants/index.js","webpack:///./src/libs/phoneNumber.js","webpack:///./src/features/transfers/new.transfer/components/OnlineKyc/constants.ts","webpack:///./src/components/ModalV2/Container.ts","webpack:///./src/components/ModalImportantInfoMessage.tsx","webpack:///./src/features/transfers/new.transfer/components/MFA/MfaFlow/VerifyMfaCode/index.js","webpack:///./src/features/transfers/new.transfer/components/MFA/MfaFlow/VerifyMfaCode/Container.ts","webpack:///./src/features/transfers/new.transfer/components/MFA/MfaFlow/VerifyMfaCode/Component.tsx","webpack:///./src/assets/illustrations/NotificationMfa.tsx","webpack:///./src/features/transfers/new.transfer/components/MFA/MfaFlow/MobileNumberError.tsx","webpack:///./src/features/transfers/new.transfer/components/MFA/MfaFlow/reducer.ts","webpack:///./src/features/transfers/new.transfer/components/OnlineKyc/Component.tsx","webpack:///./src/features/transfers/new.transfer/components/SecurityQuestions/Container.ts","webpack:///./src/features/transfers/new.transfer/components/SecurityQuestions/Component.tsx","webpack:///./src/features/transfers/new.transfer/components/SecurityQuestions/components/index.js","webpack:///./src/features/transfers/new.transfer/components/SecurityQuestions/components/MissingSecurityQuestion.tsx","webpack:///./src/features/transfers/new.transfer/components/SecurityQuestions/components/SecurityQuestionsForm/Container.ts","webpack:///./src/features/transfers/new.transfer/components/SecurityQuestions/components/SecurityQuestionsForm/Component.tsx","webpack:///./src/components/AddOrEditRecipient/components/RecipientBasics/Container.ts","webpack:///./src/components/AddOrEditRecipient/components/RecipientBasics/Component.tsx","webpack:///./src/components/AddOrEditRecipient/components/RecipientBasics/RecipientTypes/index.js","webpack:///./src/components/AddOrEditRecipient/components/RecipientBasics/RecipientTypes/Container.ts","webpack:///./src/components/AddOrEditRecipient/components/RecipientBasics/RecipientTypes/Component.tsx","webpack:///./src/components/BankDetails/Component.tsx","webpack:///./src/components/BankDetails/BankBasics/index.js","webpack:///./src/components/BankDetails/BankBasics/Container.ts","webpack:///./src/components/BankDetails/BankBasics/Component.tsx","webpack:///./src/components/BankDetails/helpers/reducerHelper.js","webpack:///./node_modules/lodash/_arrayIncludes.js","webpack:///./node_modules/lodash/_baseIndexOf.js","webpack:///./node_modules/lodash/_baseFindIndex.js","webpack:///./node_modules/lodash/_baseIsNaN.js","webpack:///./node_modules/lodash/_strictIndexOf.js","webpack:///./node_modules/lodash/_arrayIncludesWith.js","webpack:///./node_modules/lodash/last.js","webpack:///./node_modules/lodash/difference.js","webpack:///./node_modules/lodash/values.js","webpack:///./node_modules/lodash/_baseValues.js","webpack:///./src/components/BankDetails/AccountDetails/index.js","webpack:///./src/components/BankDetails/AccountDetails/Container.ts","webpack:///./src/components/BankDetails/AccountDetails/Component.tsx","webpack:///./src/components/BankDetails/BankAddress/index.js","webpack:///./src/components/BankDetails/BankAddress/Container.ts","webpack:///./src/components/BankDetails/BankAddress/Component.tsx","webpack:///./src/components/BankDetails/clearBankReducerPlugin.ts","webpack:///./src/features/transfers/new.transfer/components/SecurityQuestions/reducer.ts","webpack:///./src/features/transfers/new.transfer/components/OnlineKyc/components/ReviewKycDetails/index.ts","webpack:///./src/features/transfers/new.transfer/components/OnlineKyc/components/ReviewKycDetails/Container.ts","webpack:///./src/features/transfers/new.transfer/components/OnlineKyc/components/ReviewKycDetails/Component.tsx","webpack:///./src/features/transfers/new.transfer/components/OnlineKyc/components/PersonalDetailForm/Container.ts","webpack:///./src/features/transfers/new.transfer/components/OnlineKyc/components/PersonalDetailForm/Component.tsx","webpack:///./src/components/MultiSelect/MultiSelect.tsx","webpack:///./src/features/transfers/new.transfer/components/HeaderV2/helpers/dataMapper.js","webpack:///./src/features/transfers/new.transfer/components/OnlineKyc/components/PersonalDetailForm/reducer.ts","webpack:///./src/features/transfers/new.transfer/components/OnlineKyc/components/OnlineKycExitNotification.tsx","webpack:///./src/features/transfers/new.transfer/components/SecurityQuestions/constants.ts","webpack:///./src/features/transfers/new.transfer/components/HeaderV2/actions.ts","webpack:///./src/features/transfers/new.transfer/components/MFA/MfaFlow/index.ts","webpack:///./src/constants/contactUsLinks.js","webpack:///./src/features/transfers/new.transfer/components/Partnerships/actions.ts","webpack:///./src/components/ModalV2/index.ts","webpack:///./src/constants/businessTypes.ts","webpack:///./src/components/BankDetails/index.js","webpack:///./src/components/BankDetails/reducers.ts","webpack:///./src/features/transfers/new.transfer/components/HeaderV2/types.ts","webpack:///./src/components/ModalFormErrorMessage.tsx","webpack:///./src/features/transfers/new.transfer/components/OnlineKyc/Container.ts","webpack:///./src/components/AddOrEditRecipient/helpers/apiMapper.ts","webpack:///./node_modules/lodash/_baseRest.js","webpack:///./src/features/registration/_shared/libs/processCountries.js","webpack:///./src/components/ModalV2/reducer.ts","webpack:///./src/features/transfers/new.transfer/components/MFA/MfaFlow/constants.ts","webpack:///./src/features/transfers/new.transfer/helpers/autoScrolling.ts","webpack:///./src/features/transfers/new.transfer/components/SecurityQuestions/actions.ts","webpack:///./src/features/transfers/new.transfer/components/Partnerships/reducers.ts","webpack:///./src/components/AddOrEditRecipient/components/RecipientBasics/index.js","webpack:///./src/components/AddOrEditRecipient/components/RecipientBasics/reducers.ts","webpack:///./src/libs/getUserVerificationStatus.ts","webpack:///./src/features/transfers/new.transfer/components/OnlineKyc/components/PersonalDetailForm/constants.ts","webpack:///./node_modules/history/createBrowserHistory.js","webpack:///./src/components/ModalV2/ModalContent/ModalContentContainer.tsx","webpack:///./node_modules/react-router-dom/es/Router.js","webpack:///./node_modules/react-router-dom/es/BrowserRouter.js","webpack:///./node_modules/react-router-dom/es/HashRouter.js","webpack:///./node_modules/react-router-dom/es/Link.js","webpack:///./node_modules/react-router-dom/es/MemoryRouter.js","webpack:///./node_modules/react-router-dom/es/Route.js","webpack:///./node_modules/react-router-dom/es/NavLink.js","webpack:///./node_modules/react-router-dom/es/Prompt.js","webpack:///./node_modules/react-router-dom/es/Redirect.js","webpack:///./node_modules/react-router-dom/es/StaticRouter.js","webpack:///./node_modules/react-router-dom/es/Switch.js","webpack:///./node_modules/react-router-dom/es/matchPath.js","webpack:///./node_modules/react-router-dom/es/withRouter.js","webpack:///./node_modules/react-router-dom/es/index.js","webpack:///./src/features/transfers/new.transfer/components/SecurityQuestions/index.ts","webpack:///./src/features/transfers/new.transfer/components/Partnerships/components/NewRecipient/actions.ts","webpack:///./src/components/BankDetails/AccountDetails/helper.js","webpack:///./src/components/BankDetails/actors.ts","webpack:///./src/features/transfers/new.transfer/helpers/mfaErrorHandling.ts","webpack:///./src/features/transfers/new.transfer/components/OnlineKyc/components/PersonalDetailForm/actions.ts","webpack:///./src/features/transfers/new.transfer/components/Prerequisites/reducers.ts","webpack:///./src/features/transfers/new.transfer/components/Prerequisites/constants.ts","webpack:///./src/features/transfers/new.transfer/components/Partnerships/constants.ts","webpack:///./src/components/ModalV2/Component.tsx","webpack:///./node_modules/body-scroll-lock/lib/bodyScrollLock.min.js","webpack:///./src/components/ModalV2/ModalContent/ModalContent.tsx","webpack:///./src/components/ModalV2/ModalCrossBtn.tsx","webpack:///./node_modules/history/DOMUtils.js","webpack:///./src/features/transfers/new.transfer/components/MFA/MfaFlow/actions.tsx","webpack:///./src/features/transfers/new.transfer/components/MFA/MfaFlow/VerifyMfaCode/actions.ts","webpack:///./src/constants/securityModes.js","webpack:///./src/features/transfers/new.transfer/components/SecurityQuestions/components/SecurityQuestionsForm/constants.ts","webpack:///./src/features/transfers/new.transfer/components/Partnerships/components/ChooseYourBankAccount/constants.ts","webpack:///./node_modules/lodash/differenceWith.js","webpack:///./node_modules/lodash/_baseDifference.js","webpack:///./node_modules/lodash/isArrayLikeObject.js","webpack:///./src/components/BankDetails/helpers/mapAddressToRecipientForm.ts","webpack:///./src/components/AddOrEditRecipient/components/RecipientBasics/formatServerAddress.ts","webpack:///./src/features/transfers/new.transfer/components/OnlineKyc/components/PersonalDetailForm/index.ts","webpack:///./src/features/transfers/new.transfer/components/OnlineKyc/actions.ts","webpack:///./src/features/transfers/new.transfer/components/HeaderV2/constants/index.ts","webpack:///./src/assets/illustrations/VerificationDone.tsx","webpack:///./src/constants/onboarding.ts"],"names":["isEnabledFeatureFlag","allFeatureFlags","flagName","isIncomingTransferFeatureEnabled","enabledIncomingTransfer","exports","__esModule","_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","_warning2","_interopRequireDefault","_invariant2","_LocationUtils","_PathUtils","_createTransitionManager2","_DOMUtils","obj","default","HashPathCoders","hashbang","encodePath","path","charAt","stripLeadingSlash","decodePath","substr","noslash","addLeadingSlash","slash","getHashPath","href","window","location","hashIndex","indexOf","substring","pushHashPath","hash","replaceHashPath","replace","slice","props","undefined","canUseDOM","globalHistory","history","canGoWithoutReload","supportsGoWithoutReloadUsingHash","_props$getUserConfirm","getUserConfirmation","getConfirmation","_props$hashType","hashType","basename","stripTrailingSlash","_HashPathCoders$hashT","getDOMLocation","hasBasename","stripBasename","createLocation","transitionManager","setState","nextState","notifyListeners","action","forceNextPop","ignorePath","handleHashChange","encodedPath","prevLocation","locationsAreEqual","createPath","handlePop","confirmTransitionTo","ok","revertPop","fromLocation","toLocation","toIndex","allPaths","lastIndexOf","fromIndex","delta","go","initialLocation","createHref","push","state","prevIndex","nextPaths","n","goBack","goForward","listenerCount","checkDOMListeners","addEventListener","removeEventListener","isBlocked","block","prompt","unblock","setPrompt","listen","listener","unlisten","appendListener","AU","CA","GB","HK","NZ","SG","US","IE","TBA_GUID","TBA_NAME","brands","PaymentProgressState","ORDER_ENTERED","ORDER_PENDING","TRANSFER_CONFIRMED","AWAITING_FUNDS","AWAITING_CONVERSION","CONVERTED","FUNDS_RECEIVED","REMITTED","PAID","DIRECT_DEBIT","factory","module","OldCookies","Cookies","api","noConflict","extend","result","attributes","init","converter","value","document","defaults","expires","Date","setMilliseconds","getMilliseconds","toUTCString","JSON","stringify","test","e","write","encodeURIComponent","String","decodeURIComponent","escape","stringifiedAttributes","attributeName","cookie","cookies","split","rdecode","parts","join","this","json","name","read","parse","set","get","getJSON","apply","remove","withConverter","CURRENCY_AUD","CURRENCY_GBP","CURRENCY_CAD","CURRENCY_USD","IFormFields","IBankDetails","IRecipientDetails","IRecipientBasic","recipientBasics","recipientDetails","bankDetails","i18nPrefix","FEATURE_NAMESPACE","countryCodes","ZA","IN","currencyCodes","AUD","USD","GBP","CAD","ZAR","NZD","INR","HKD","EUR","countriesWithMandatoryStates","paymentOptions","BankAccount","CreditCard","SWIFT","BranchCode","recipientOptions","OwnAccount","ThirdParty","optionsForAUDCountries","optionsForNZDCountries","optionsForUSDCountries","dynamicFields","BankFields","BranchFields","AccountFields","SupplementaryFields","MATCH_ALL_WHITESPACES_REGEX","NOT_APPLICABLE","DEFAULT_PAYMENT_REASON","classificationOptions","ME","SOMEONE_ELSE","sharedActionTypes","RESET_RECIPIENT_MODAL_STATE","FETCH_RECIPIENT","comboFields","names","widths","PartitionInitialData","MFA_REQUIRED_ERROR_CODE","multipleSpaces","phoneNumberTypes","Mobile","Home","Work","getPhoneNumberByType","phoneNumbers","phoneNumberType","find","pn","Type","formatNullAndUndefinedToEmptyString","number","trimAndFormatFalsyToEmptyString","trim","formatPhoneNumber","phoneNumber","CountryCode","AreaCode","ExchangeCode","Number","getPhoneNumber","OnlineKycStepEnum","OnlineKycFlowEnum","ACTION_NAMESPACE","PARTITION","connect","content","isModalOpen","message","className","stroke","actions","Form","reduxForm","onSubmit","values","dispatch","pushAnalyticsEvent","eventAction","analyticsEventAction","twoStepVerifyAttempt","eventCategory","analyticsEventCategory","twoStepVerify","eventLabel","analyticsEventLabel","button","eventData","legalEntity","ofxUserInfo","isoLegalEntity","entityType","authenticateMfaCredentials","securityCode","id","onSubmitSuccess","success","onSuccessHandler","onSubmitFail","errors","submitError","fail","error_code","MfaServerErrorCodesEnum","VERIFY_LOCK","accountLocked","scrollToFirstError","inModalErrorClassName","onFailHandler","form","Container","mfaErrorEnum","MfaErrorCodesMap","errorMessageI18nKey","toString","canShowResendButton","MfaErrorCodesEnum","OFX_ACCOUNT_LOCK","redirectTo","config","routes","signouts","SMS_SERVICE_LOCK","DOS","maskedNumber","isMfaResendCodeSuccess","bindActionCreators","displayName","onResendClick","resendSms","resendCode","link","onContactUsClick","contactOfx","onCloseClick","onCloseHandler","cancel","componentDidUpdate","prevProps","toastCreator","i18n","render","handleSubmit","locale","contactOFX","toLowerCase","ModalCrossBtn","onClick","label","placeholder","componentType","validate","validation","required","autoComplete","type","React","Component","width","height","viewBox","version","xmlns","xmlnsXlink","x","y","points","filterUnits","dx","dy","in","stdDeviation","in2","operator","rx","d","strokeWidth","fill","fillRule","transform","xlinkHref","opacity","mask","fillOpacity","filter","fontFamily","fontSize","fontWeight","letterSpacing","pushCancelEvent","noMobileCancel","i18nKeysMapper","bodyTextI18Key","i18nKeys","map","index","open","noMobileContact","initialState","reducer","handleActions","actionTypes","RESET_MFA_FLOW_STATE","Map","SET_INIT_MFA_NON_MODAL_ERROR","payload","INIT_MFA","error_description","RESEND_SMS","data","AUTHENTICATE_MFA_CREDS","onlineKycFlow","securityVerificationStatus","updateOnlineKycStep","initMfa","closeModal","openModal","onlineKycStep","PERSONAL_DETAIL_FORM","user","securityMode","MFA","onMfaInitFailHandler","onMfaFlowSuccessHandler","onMfaFlowCancelHandler","KYC_DETAILS","QA","Valid","SECURITY_QUESTION","DEFAULT_CONTENT","ReviewKycDetails","SecurityQuestions","PersonalDetailForm","EXIT_NOTIFICATION","SecurityQuestionsContainer","brand","getIn","securityQuestion","componentDidMount","fetchSecurityQuestion","autoScrollToModalContent","NO_SECURITY_QUESTION","MissingSecurityQuestion","SecurityQuestionsForm","header","body","Fragment","footer","contactLink","headerTitle","handleClose","FORM_NAME","verifySecurityInfo","SecurityQuestionsFormContainer","isOnPartnershipIntroduction","isOnIntroduction","errorMsg","error","noValidate","submit","showCloseBtn","selector","formValueSelector","formName","formatAddress","address","AddressLine","line1","CitySuburb","city","StateProvince","PostCode","postcode","Country","country","classification","recipientAddress","partition","otherRecipientAddress","ownProps","actor","initRecipientBasics","recipientId","options","hasManuallyChangedClassification","onClassificationChange","handleRecipientClassificationChange","FormSection","customOnChange","recipientTypes","isCABrand","areEqualIgnoreCase","loggedInUser","fetchRecipientTypes","BankHeader","BankInstructions","instructions","showHeader","canShowBankDetails","canShowDeclarationText","excludeCurrencies","lockedRecipientCurrency","flags","usdEftIsEnabled","isUsdCaEftEnabled","countries","currencies","bankCountry","bankCurrency","bankPaymentOption","initBankBasics","currency","isRecipientTheSame","handleCountryChange","handleCurrencyChange","includes","disabled","formatDisplay","item","IsRequired","DisplayAs","getInstructionMessage","PropertyKeyHelp","IBAN","FedWire","BSB","SortCode","TransitBranchNumber","InstitutionNumber","CreditCardNo","BankBranchCodeNZDInNZ","IFSC","BankName","BranchName","AccountNo","AccountNoIBAN","AccountNoNZDInNZ","AccountSuffix","BranchCodeZARInSA","BankCode","getTypeForTheField","AllowSearch","getFormItem","PropertyKey","buttonText","handleCallBack","text","visible","maxLength","MaxLength","parseInt","minLength","MinLength","regex","ValidationRegex","regexError","IsRegexErrorMessage","hasOptions","toUpperCase","updateAvailableFields","currentAvailableFields","eftCurrencies","getEftCurrencies","getLookupField","branchDetails","lookupFieldName","lookupField","attachHandleCallBackToLookup","getFields","availableFields","includedFieldKey","getLookupDetails","lookupDetails","Address1","Address2","City","StateFull","getLookupOptions","updateTemplate","branchFields","paymentOption","fieldName","f","lookup","getTemplateForLS","template","AvailableFields","supplementaryFields","Currency","newAvailableFields","accountFields","newAccountFields","HasCreditCardOption","HasOptions","LookUpField","baseIndexOf","array","baseFindIndex","baseIsNaN","strictIndexOf","predicate","fromRight","comparator","baseDifference","baseFlatten","baseRest","isArrayLikeObject","difference","baseValues","keys","object","arrayMap","bankAccountDetails","bankDetailsTemplate","accountDetailsTemplate","branchDetailsTemplate","supplementaryDetailsTemplate","branchCode","swift","bankCode","accountType","lookupResult","hasLookupError","selectBankAccount","change","clearBankAccountPaymentOptions","i18nPaymentOptionPrefix","accountTypes","optionsAU","optionsNZ","optionsUS","optionsZA","USAccountType","recipientHasnotChanged","handlePaymentOptionChange","handleLookupResult","COUNTRY_AU","COUNTRY_NZ","COUNTRY_US","shouldBankDetailsDisplay","radioButtonPaymentOptions","getPaymentOptions","routingCode","getRoutingCode","fields","constructFields","handleLookupBankPressed","title","shouldShowUSAccount","useFieldValidation","defaultProps","isStateMandatory","CLEAR_BANK_FIELDS","plugin","formState","formAction","newState","fromJS","forEach","field","fieldPath","concat","deleteIn","toJS","reducers","FETCH_SECURITY_QUESTION","SecurityQuestion","VERIFY_SECURITY_INFO","SecurityAnswer","DOB","goToExitConfirm","determineBankAccountRoute","mfaFlowActions","addContactHistory","ReviewKycDetailsContainer","initMfaErrorHandlingOutcome","getInitMfaErrorHandlingOutcome","partnershipState","User","Occupation","Addresses","Contacts","OnlineSalesKycStatus","isAddContactHistorySucceed","partnershipCurrentRoute","SalesKycNote","ContactHistoryNoteType","SalesKyc","onCrossClick","resetMfaFlowState","NEW_TRANSFER_BUTTON","getEnableKycUpliftFlag","ofx","featureFlags","enableKycUplift","asBool","homeAddress","contactTelephoneNumbers","TelephoneNumbers","telephoneNumber","onlineKycFlowStep","FirstName","LastName","bodyForKycUplift","footerForKycUplift","uiaClassName","processMultiSelectField","processMultiSelectValues","formValues","currencyRecipientGets","currencyCustomerSends","reasonForTransfer","sourceOfWealth","formData","SOURCE_OF_FUNDS_OTHER_CONDITION","some","sourceOfFunds","sourceOfFundsOther","occupationCategory","occupationSubCategory","occupationSubCategoryMatch","occupationSubCategories","occupationSubCategoryText","occupationExtraInfo","checkOccupationExtraInfo","updateOnlineKYCUplift","updateOnlineKYC","snsPayload","email","homeNumber","mobileNumber","workNumber","userInfo","initialUserDetails","Address","Email","WorkNumber","HomeNumber","customerDetails","UserID","CustomerReferenceNumber","UserFirstName","LegalEntity","Brand","ID","Id","ContactKey","occupationCategories","occupationCategoryText","GUID","Nationality","nationality","OccupationName","OccupationInfo","OccupationExtraInfo","Floor","Block","Premise","StreetDirection","UnitType","UnitNumber","StreetNumber","StreetName","StreetType","Postcode","QASFormatURL","KYC","KycType","AmountToTransfer","amountToTransfer","CurrencyCustomerSends","TransferFrequency","transferFrequency","CurrencyRecipientGets","ReasonForTransfer","ReasonForTransferDescription","reasonForTransferDescription","SourceOfFunds","SourceofFundsDetails","SourceOfWealth","SourceOfWealthDescription","sourceOfWealthDescription","updatedUserDetailsAndSendEmail","fetchUserInfo","kycRefreshData","eventType","pushKYCDataToSNS","PersonalDetailFormContainer","firstName","lastName","middleName","userDetails","additionalUserInfo","AdditionalUserInformation","nationalities","allPhoneNumbers","initMobileNumber","initHomeNumber","initWorkNumber","addresses","findAddressByType","addressTypes","occupationData","extraInfoMessage","supportedCurrencies","supportedToCurrencies","getFormValues","category","Name","Industry","industryId","occupationId","Subcategories","sub","SOURCE_OF_WEALTH","PAYMENT_REASONS","sourceOfFundMatched","SOURCE_OF_FUNDS","allCountries","validAmountToTransfer","TRANSFER_RANGE","range","validTransferFrequency","PAYMENT_FREQUENCY","freq","validSourceOfFunds","fund","verificationResult","fullName","occupation","countrySelectOptions","IsoCountryCode","CountryName","IsPopularCountry","hidden","children","initialValues","SourceOfFundsDetails","renderOccupationCategories","renderField","renderOccupationSubCategoriesField","renderExtraInfo","paymentReasonOther","sourceOfWealthOther","renderNationality","templateSelection","element","getAttribute","handleRemindLater","updateCurrencies","selectedCurrencyUpdated","addNewPhoneNumberInput","totalAvailablePhoneNumbers","newTotalAvailablePhoneNumbers","handleMultiSelectChange","selectedOptions","initTotalAvailablePhoneNumbers","fetchCountries","fetchNationalitiesAction","fetchOccupationCategoriesAction","fetchFromCurrenciesAction","fetchToCurrenciesAction","enableKycUpliftFlag","componentWillReceiveProps","nextProps","selectOccupationCategoryAction","selectOccupationSubCategoryAction","nextFormValues","nextOccupationCategory","nextOccupationSubCategory","nextPaymentFrequency","paymentFrequency","numbersAndNanEqual","resetField","untouch","touch","numberType","PhoneTypes","MOBILE","defaultCountry","isValidPhoneNumber","isPhoneType","normalise","focusSelectFlag","maxPhoneNumberInputs","LAND_LINE","placeholderType","FIXED_LINE_OR_MOBILE","bodyForKYCUplift","OfxField","component","fieldCss","val","onChange","importantInfos","uiClassName","handleClickOutside","event","wrapperRef","current","contains","isOpen","toggleDropdown","prevState","handleSelect","option","selected","handleRemove","createRef","componentWillUnmount","ref","MultiSelect","parsePhoneNumbers","parseHomeAddress","makeItem","Code","FETCH_COUNTRIES","setIn","Countries","FETCH_NATIONALITIES","console","log","FETCH_OCCUPATION_CATEGORIES","OccupationData","OccupationCategories","SELECT_OCCUPATION_CATEGORY","filtered","Message","SELECT_OCCUPATION_SUB_CATEGORY","refData","occupationCategoryId","occupationSubCategoryId","FETCH_FROM_CURRENCIES","Currencies","IsCustomerMajor","FETCH_TO_CURRENCIES","Nationalities","fromCurrencies","toCurrencies","step","FETCH_APP_INIT_DATA","FETCH_SECURE_USER_INFO","FETCH_COMPLETE_USER_INFO","FETCH_USER","FETCH_USER_OBJECT","FETCH_USER_ADDRESSES","FETCH_USER_CONTACT_DETAILS","FETCH_USER_OCCUPATION","FETCH_USER_VERIFICATION_STATUS","FETCH_USER_DEALS","FETCH_USER_CURRENCY_PREFERENCES","FETCH_ONLINE_SALES_KYC","FETCH_NEW_TRANSFER_CRITERIA","ADD_CONTACT_HISTORY","REVIEW_YOUR_DETAILS_STEP_UPDATE","CHECK_IF_RECIPIENT_EXISTS","CHECK_ONFIDO_JOURNEY","FETCH_PASSFORT_MIGRATION_STATUS","FETCH_USER_DETAILS","fetchUserVerificationStatus","createAction","userId","isPersonal","enableCorporateOnboardingFrontEnd","getUserVerificationStatus","fetchUserContacts","UserApi","getUserContacts","fetchPassfortMigrationStatus","getConsumerComplianceCheck","note","noteType","fetchAppInitData","types","VerificationApi","getOnlineSalesKycStatus","SecureApi","getUserInfo","getUser","getAddresses","getUserDetails","fetchCompleteUserInfo","getOccupation","checkIfRecipientExists","onSuccessCallback","onFailureCallback","then","response","status","checkOnfidoJourney","onfidoReleaseDates","isCorEnabled","isPassfortMigrated","getUserObject","IPartition","UPDATE_ROUTE","GET_ALL_USER_RECIPIENTS","ADD_BENEFICIARY_TO_PARTNER_USER","GET_PARTNER_USER","ADD_PARTNER_USER_ATTRIBUTE","SET_HAS_EXISTING_RECIPIENTS","HANDLE_NEW_RECIPIENT_CREATED","UPDATE_PARTNER_USER_ATTRIBUTE","updateRoute","currentRoute","previousRoute","PartnershipNav","EXIT","getAllUserRecipientsPending","getAllUserRecipientsFulfilled","getAllUserRecipientsRejected","genericErrorMsg","handleGetAllUserRecipientsFailed","getAllUserRecipients","BeneficiaryApi","pageNumber","pageSize","getAllUserBeneficiary","getState","partnerships","EXISTING_BANK_DETAILS","NEW_RECIPIENT","getPartnerUsers","PartnerApi","getUsers","partnerUsers","partnerUserResponse","Promise","all","partner","getPartnerUserDetail","partnerUserId","partnerUserDetailResponse","beneficiaryId","isBeneficiaryRequired","leuwinFlowDetails","PartnerAppId","partnerAppId","partnerDisplayName","err","logDatadogRUM","resolve","addPartnerUserAttribute","partnerUserAttribute","ofxUserGuid","handleAddPartnerUserAttributeFailed","addBeneficiaryPending","addBeneficiaryFulfilled","addBeneficiaryRejected","addBeneficiary","LINK_SUCCESS","addBeneficiaryErrorMsg","updateAccountListAndRedirect","catch","handleAddBeneficiaryFailed","addBeneficiaryToPartnerUser","partnershipsState","leuwinObjVal","BeneSelfManagement","beneSelfManagementCurrencyList","updateUserCurrencyBeneficiaryPreferences","handleNewRecipientCreated","selfRecipients","partners","linkPartneruser","p","leuwinObj","handlePartnerUserAttribute","INDIVIDUAL","CORPORATE","ORGANISATIONAL","mapAddressToRecipientForm","defaultState","tradedCurrencies","FETCH_ALL_COUNTRIES","FETCH_ALL_CURRENCIES","FETCH_COUNTRY_CURRENCIES","FETCH_BANK_ACCOUNT_TEMPLATE","UPDATE_BANK_ACCOUNT_TEMPLATE_START","UPDATE_BANK_ACCOUNT_TEMPLATE_ERROR","UPDATE_BANK_ACCOUNT_TEMPLATE_SUCCESS","PAYMENT_OPTION_CHANGED","FETCH_BANK_DETAILS","FETCH_TRADED_CURRENCIES","INIT_BANK_BASIC","getBankAccountTemplate","accountTemplate","changePaymentOption","clearBankFields","fetchAllCountries","RefDataApi","fetchAllCurrencies","QuoteApi","getCurrencies","SPOT_TRANSFER","fetchTradedCurrencies","fetchBankDetails","routingType","lookUpBankDetails","fetchDefaultCurrencyByCountry","countryCurrencies","currentCurrency","c","IsDefault","currencyCode","updateBankAccountTemplate","fetchBankAccountTemplate","paymentOptionChanged","clearBankDetailsFields","sequence","setOwnRecipientName","bankDetailsPartition","allCurrencies","IsPopularCurrency","IntermediaryFields","existingBranchFields","OnlineSalesKycStatusEnum","transformRequest","BeneficiaryId","Alias","alias","Notify","accountName","BeneficiaryType","Classification","AccountType","BeneficiaryBankDetails","BankBranchName","Swift","Account","BankAddress","QASFormatUrl","BeneficiaryAddress","dropdownState","manualState","qasFormatUrl","IsCreditCard","isCreditCard","EntityType","recipientType","PaymentReason","transformResponse","Username","getRecipientBasics","beneficiary","getRecipientDetails","details","getBankDetails","identity","overRest","setToString","func","start","processCountries","topCountries","initState","MODAL_REDUCER","SECURE_PROXY_NETWORK","DEFAULT_ERROR","DEFAULT_REGISTER_ERROR","EMPTY_PHONE_NUMBER","INVALID_PHONE_NUMBER","DEFAULT_SEND_ERROR","RESEND_DOS","DEFAULT_VERIFY_ERROR","INVALID_CODE","VERIFY_USER_SUSPEND","SMS_SERVICE_UNAVAILABLE","OKTA_NULL_RESPONSE","OKTA_E0000109","NEED_WAIT_BETWEEN_ATTEMPTS","OKTA_E0000068","YOUR_TOKEN_DOESNT_MATCH_OUR_RECORDS","OKTA_E0000082","EACH_CODE_CAN_ONLY_BE_USED_ONCE","userAgentParser","UAParser","getDevice","scrollToClass","securityAnswer","moment","dob","format","apiDateFormat","getSecurityInfo","SubmissionError","_error","ensureAuthorised","handleServerError","parsePartner","partnerName","guid","needToAddBeneficiary","unlistedCreditCardCurrency","INTRODUCTION","Beneficiaries","RECIPIENT_TYPE","OWN","sort","prev","curr","localeCompare","CREATE_RECIPIENT","getAllUserRecipientsError","addBeneficiaryToPartnerUserError","createNewRecipientError","addBeneficiaryPartnerUserSuccess","updatePartnerUserAttributeSuccess","updatePartnerUserAttributeError","formatServerAddress","INIT_RECIPIENT_BASICS","FETCH_USER_ADDRESS","FETCH_RECIPIENT_TYPES","fetchUserAddress","getAddress","AddressDetails","EntityTypes","Description","getVerificationStatus","verificationResponse","IsVerificationStatusFetched","SocialSecurityNumberRequired","VerificationDocumentsSubmitted","VerificationStatus","getSpentaUserStatus","userStatusResponse","verificationStatus","ITEM_HEIGHT","ITEM_PADDING_TOP","MenuProps","PaperProps","style","maxHeight","_typeof","Symbol","iterator","constructor","getHistoryState","canUseHistory","supportsHistory","needsHashChangeListener","supportsPopStateOnHashChange","_props$forceRefresh","forceRefresh","_props$keyLength","keyLength","historyState","_ref","_window$location","pathname","search","createKey","Math","random","handlePopState","isExtraneousPopstateEvent","allKeys","pushState","nextKeys","replaceState","ModalContentContainer","_classCallCheck","instance","Constructor","TypeError","_possibleConstructorReturn","self","ReferenceError","_React$Component","BrowserRouter","_temp","_this","_len","args","Array","_key","subClass","superClass","create","enumerable","writable","configurable","setPrototypeOf","__proto__","_inherits","componentWillMount","createElement","propTypes","string","bool","node","HashRouter","oneOf","isModifiedEvent","metaKey","altKey","ctrlKey","shiftKey","Link","handleClick","defaultPrevented","preventDefault","context","router","_this$props","to","_props","innerRef","_objectWithoutProperties","oneOfType","isRequired","contextTypes","shape","exact","strict","activeClassName","activeStyle","getIsActive","isActive","ariaCurrent","rest","_ref2","match","INIT_NEW_RECIPIENT_FORM","resetForm","reset","bankDetailsFormName","initNewRecipientForm","createNewRecipient","createBeneficiary","attachLookupCallbackEvent","handleBankAccountPressed","accountTemplateToMap","reduce","accumulator","fieldValue","fieldNames","fieldsInOneLine","s","comboField","dispatchUpdateBankDetails","bind","fullAddress","getAdjustedRoutingType","COUNTRY_CA","currentProps","isCurrencyLocked","isManualChange","isEqual","beneficiaryUserAddess","loggedInUserAddess","adjustedRoutingType","BankAccountActor","currentLookupResult","nextLookupResult","displayErrorInModal","MFAFlowPartition","canEnableInitMfaCta","SAVE_CONFIRM_PERSONAL_DETAIL","UPDATE_ONLINE_KYC","UPDATE_USER_ADDRESS","UPDATE_USER_CONTACT_PHONE","SEND_USER_UPDATE_EMAIL","UPDATE_ONLINE_KYC_UPLIFT","PUSH_KYC_REFRESH_DATA_SNS","show","updateHomeAddress","updateUserContacts","updateUserDetails","sourcesOfWealth","Cookie","countriesIncludingBanned","PERSONAL","responses","headerV2State","contacts","updatedMobileNumber","updatedHomeNumber","updatedWorkNumber","newUserDetails","IntegrationClient","belSFMCCustomerDetailsUpdateEvent","FETCH_USER_INFO","FETCH_USER_PROFILE","FETCH_USER_MISSING_MANDATORY_DATA","getUserProfile","getUserMissingRegistrationMandatoryData","selectors","getPartition","prerequisites","PasswordExpired","isPasswordExpired","missingFields","Class","selectedBeneId","targetElement","querySelector","componentId","disableBodyScroll","enableBodyScroll","role","r","isArray","t","o","from","defineProperty","l","navigator","platform","u","a","v","allowTouchMove","m","touches","setTimeout","paddingRight","overflow","ontouchstart","targetTouches","clientY","ontouchmove","scrollTop","scrollHeight","clientHeight","stopPropagation","passive","reserveScrollBarGap","innerWidth","documentElement","clientWidth","clearAllBodyScrollLocks","ModalContent","closeBtnTrackingId","dataTrackingId","idx","info","attachEvent","detachEvent","callback","confirm","ua","userAgent","setInitMfaNonModalError","errorCode","initMfaLifeCycles","onMfaInitSuccessHandler","onMfaFlowFailHandler","defaultParamValue","tryRegisterAndSendSms","mfaFlowState","VerifyMfaCodeModal","getMfaError","mfaInitErrorCode","authyAccountLocked","actionNamespace","verificationCode","smsId","AUTHENTICATED","last","differenceWith","SetCache","arrayIncludes","arrayIncludesWith","baseUnary","cacheHas","iteratee","isCommon","valuesLength","outer","computed","valuesIndex","isArrayLike","isObjectLike","UPDATE_ONLINE_KYC_STEP","iconsClassNames","activity","account","MODAL_CONTENT_CLASSNAME","PARTNER_COOKIE","SPOTLIGHT_PARTNER_ID","SPOTLIGHT_LOGO_TITLE","AVASK_PARTNER_ID","AVASK_LOGO_TITLE","PASSFORT_PROFILE_COOKIE","HAS_VERIFIED_MOBILE_DEVICE","Illustration","clipRule","maskUnits","strokeLinecap","strokeLinejoin","DOC_UPLOADED_FLAG"],"mappings":"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","file":"bundle.b999ec8b97e5743f2004.js","sourcesContent":["import ldFlags from 'constants/ldFlags';\n\nexport interface IFeatureFlag {\n [key: string]: boolean;\n}\nexport const isEnabledFeatureFlag = (allFeatureFlags: IFeatureFlag, flagName: string): boolean =>\n allFeatureFlags[flagName];\n\nexport const isIncomingTransferFeatureEnabled = (allFeatureFlags: IFeatureFlag): boolean =>\n isEnabledFeatureFlag(allFeatureFlags, ldFlags.enabledIncomingTransfer);\n\nexport default {\n isEnabledFeatureFlag,\n isIncomingTransferFeatureEnabled,\n};\n","'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nvar _createTransitionManager = require('./createTransitionManager');\n\nvar _createTransitionManager2 = _interopRequireDefault(_createTransitionManager);\n\nvar _DOMUtils = require('./DOMUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar HashChangeEvent = 'hashchange';\n\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + (0, _PathUtils.stripLeadingSlash)(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: _PathUtils.stripLeadingSlash,\n decodePath: _PathUtils.addLeadingSlash\n },\n slash: {\n encodePath: _PathUtils.addLeadingSlash,\n decodePath: _PathUtils.addLeadingSlash\n }\n};\n\nvar getHashPath = function getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n};\n\nvar pushHashPath = function pushHashPath(path) {\n return window.location.hash = path;\n};\n\nvar replaceHashPath = function replaceHashPath(path) {\n var hashIndex = window.location.href.indexOf('#');\n\n window.location.replace(window.location.href.slice(0, hashIndex >= 0 ? hashIndex : 0) + '#' + path);\n};\n\nvar createHashHistory = function createHashHistory() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n (0, _invariant2.default)(_DOMUtils.canUseDOM, 'Hash history needs a DOM');\n\n var globalHistory = window.history;\n var canGoWithoutReload = (0, _DOMUtils.supportsGoWithoutReloadUsingHash)();\n\n var _props$getUserConfirm = props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === undefined ? _DOMUtils.getConfirmation : _props$getUserConfirm,\n _props$hashType = props.hashType,\n hashType = _props$hashType === undefined ? 'slash' : _props$hashType;\n\n var basename = props.basename ? (0, _PathUtils.stripTrailingSlash)((0, _PathUtils.addLeadingSlash)(props.basename)) : '';\n\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n\n var getDOMLocation = function getDOMLocation() {\n var path = decodePath(getHashPath());\n\n (0, _warning2.default)(!basename || (0, _PathUtils.hasBasename)(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".');\n\n if (basename) path = (0, _PathUtils.stripBasename)(path, basename);\n\n return (0, _LocationUtils.createLocation)(path);\n };\n\n var transitionManager = (0, _createTransitionManager2.default)();\n\n var setState = function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n\n transitionManager.notifyListeners(history.location, history.action);\n };\n\n var forceNextPop = false;\n var ignorePath = null;\n\n var handleHashChange = function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n\n if (!forceNextPop && (0, _LocationUtils.locationsAreEqual)(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === (0, _PathUtils.createPath)(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n\n handlePop(location);\n }\n };\n\n var handlePop = function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({ action: action, location: location });\n } else {\n revertPop(location);\n }\n });\n }\n };\n\n var revertPop = function revertPop(fromLocation) {\n var toLocation = history.location;\n\n // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf((0, _PathUtils.createPath)(toLocation));\n\n if (toIndex === -1) toIndex = 0;\n\n var fromIndex = allPaths.lastIndexOf((0, _PathUtils.createPath)(fromLocation));\n\n if (fromIndex === -1) fromIndex = 0;\n\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n };\n\n // Ensure the hash is encoded properly before doing anything else.\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) replaceHashPath(encodedPath);\n\n var initialLocation = getDOMLocation();\n var allPaths = [(0, _PathUtils.createPath)(initialLocation)];\n\n // Public interface\n\n var createHref = function createHref(location) {\n return '#' + encodePath(basename + (0, _PathUtils.createPath)(location));\n };\n\n var push = function push(path, state) {\n (0, _warning2.default)(state === undefined, 'Hash history cannot push state; it is ignored');\n\n var action = 'PUSH';\n var location = (0, _LocationUtils.createLocation)(path, undefined, undefined, history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n var path = (0, _PathUtils.createPath)(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n\n var prevIndex = allPaths.lastIndexOf((0, _PathUtils.createPath)(history.location));\n var nextPaths = allPaths.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n\n nextPaths.push(path);\n allPaths = nextPaths;\n\n setState({ action: action, location: location });\n } else {\n (0, _warning2.default)(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack');\n\n setState();\n }\n });\n };\n\n var replace = function replace(path, state) {\n (0, _warning2.default)(state === undefined, 'Hash history cannot replace state; it is ignored');\n\n var action = 'REPLACE';\n var location = (0, _LocationUtils.createLocation)(path, undefined, undefined, history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n var path = (0, _PathUtils.createPath)(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf((0, _PathUtils.createPath)(history.location));\n\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n\n setState({ action: action, location: location });\n });\n };\n\n var go = function go(n) {\n (0, _warning2.default)(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser');\n\n globalHistory.go(n);\n };\n\n var goBack = function goBack() {\n return go(-1);\n };\n\n var goForward = function goForward() {\n return go(1);\n };\n\n var listenerCount = 0;\n\n var checkDOMListeners = function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1) {\n (0, _DOMUtils.addEventListener)(window, HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n (0, _DOMUtils.removeEventListener)(window, HashChangeEvent, handleHashChange);\n }\n };\n\n var isBlocked = false;\n\n var block = function block() {\n var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n };\n\n var listen = function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n };\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n\n return history;\n};\n\nexports.default = createHashHistory;","export default {\n AU: 'au',\n CA: 'ca',\n GB: 'gb',\n HK: 'hk',\n NZ: 'nz',\n SG: 'sg',\n US: 'us',\n IE: 'ie',\n};\n","export const TBA_GUID = '8F3FF963-D176-4C07-95D4-597D8ADDEAC4';\nexport const TBA_NAME = 'TBA';\n\nexport const brands = {\n 'OFX-AU': 'OzForex',\n 'OFX-GB': 'UKForex',\n 'OFX-HK': 'HKForex',\n 'OFX-US': 'USForex',\n 'OFX-SG': 'SingForex',\n 'OFX-CA': 'CanadianForex',\n 'OFX-NZ': 'NZForex',\n};\n\nexport const PaymentProgressState = {\n ORDER_ENTERED: 'OrderEntered',\n ORDER_PENDING: 'OrderPending',\n TRANSFER_CONFIRMED: 'TransferConfirmed',\n AWAITING_FUNDS: 'AwaitingFunds',\n AWAITING_CONVERSION: 'AwaitingConversion',\n CONVERTED: 'Converted',\n FUNDS_RECEIVED: 'FundsReceived',\n REMITTED: 'Remitted',\n PAID: 'Paid',\n DIRECT_DEBIT: 'DirectDebit',\n};\n","export const AU = 'OFX-AU';\nexport const CA = 'OFX-CA';\nexport const GB = 'OFX-GB';\nexport const HK = 'OFX-HK';\nexport const NZ = 'OFX-NZ';\nexport const SG = 'OFX-SG';\nexport const US = 'OFX-US';\nexport const IE = 'OFX-IE';\n","/*!\n * JavaScript Cookie v2.2.0\n * https://github.com/js-cookie/js-cookie\n *\n * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\n * Released under the MIT license\n */\n;(function (factory) {\n\tvar registeredInModuleLoader = false;\n\tif (typeof define === 'function' && define.amd) {\n\t\tdefine(factory);\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (typeof exports === 'object') {\n\t\tmodule.exports = factory();\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (!registeredInModuleLoader) {\n\t\tvar OldCookies = window.Cookies;\n\t\tvar api = window.Cookies = factory();\n\t\tapi.noConflict = function () {\n\t\t\twindow.Cookies = OldCookies;\n\t\t\treturn api;\n\t\t};\n\t}\n}(function () {\n\tfunction extend () {\n\t\tvar i = 0;\n\t\tvar result = {};\n\t\tfor (; i < arguments.length; i++) {\n\t\t\tvar attributes = arguments[ i ];\n\t\t\tfor (var key in attributes) {\n\t\t\t\tresult[key] = attributes[key];\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tfunction init (converter) {\n\t\tfunction api (key, value, attributes) {\n\t\t\tvar result;\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Write\n\n\t\t\tif (arguments.length > 1) {\n\t\t\t\tattributes = extend({\n\t\t\t\t\tpath: '/'\n\t\t\t\t}, api.defaults, attributes);\n\n\t\t\t\tif (typeof attributes.expires === 'number') {\n\t\t\t\t\tvar expires = new Date();\n\t\t\t\t\texpires.setMilliseconds(expires.getMilliseconds() + attributes.expires * 864e+5);\n\t\t\t\t\tattributes.expires = expires;\n\t\t\t\t}\n\n\t\t\t\t// We're using \"expires\" because \"max-age\" is not supported by IE\n\t\t\t\tattributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\n\t\t\t\ttry {\n\t\t\t\t\tresult = JSON.stringify(value);\n\t\t\t\t\tif (/^[\\{\\[]/.test(result)) {\n\t\t\t\t\t\tvalue = result;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\n\t\t\t\tif (!converter.write) {\n\t\t\t\t\tvalue = encodeURIComponent(String(value))\n\t\t\t\t\t\t.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n\t\t\t\t} else {\n\t\t\t\t\tvalue = converter.write(value, key);\n\t\t\t\t}\n\n\t\t\t\tkey = encodeURIComponent(String(key));\n\t\t\t\tkey = key.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent);\n\t\t\t\tkey = key.replace(/[\\(\\)]/g, escape);\n\n\t\t\t\tvar stringifiedAttributes = '';\n\n\t\t\t\tfor (var attributeName in attributes) {\n\t\t\t\t\tif (!attributes[attributeName]) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tstringifiedAttributes += '; ' + attributeName;\n\t\t\t\t\tif (attributes[attributeName] === true) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tstringifiedAttributes += '=' + attributes[attributeName];\n\t\t\t\t}\n\t\t\t\treturn (document.cookie = key + '=' + value + stringifiedAttributes);\n\t\t\t}\n\n\t\t\t// Read\n\n\t\t\tif (!key) {\n\t\t\t\tresult = {};\n\t\t\t}\n\n\t\t\t// To prevent the for loop in the first place assign an empty array\n\t\t\t// in case there are no cookies at all. Also prevents odd result when\n\t\t\t// calling \"get()\"\n\t\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\n\t\t\tvar rdecode = /(%[0-9A-Z]{2})+/g;\n\t\t\tvar i = 0;\n\n\t\t\tfor (; i < cookies.length; i++) {\n\t\t\t\tvar parts = cookies[i].split('=');\n\t\t\t\tvar cookie = parts.slice(1).join('=');\n\n\t\t\t\tif (!this.json && cookie.charAt(0) === '\"') {\n\t\t\t\t\tcookie = cookie.slice(1, -1);\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tvar name = parts[0].replace(rdecode, decodeURIComponent);\n\t\t\t\t\tcookie = converter.read ?\n\t\t\t\t\t\tconverter.read(cookie, name) : converter(cookie, name) ||\n\t\t\t\t\t\tcookie.replace(rdecode, decodeURIComponent);\n\n\t\t\t\t\tif (this.json) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tcookie = JSON.parse(cookie);\n\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (key === name) {\n\t\t\t\t\t\tresult = cookie;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!key) {\n\t\t\t\t\t\tresult[name] = cookie;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\n\t\t\treturn result;\n\t\t}\n\n\t\tapi.set = api;\n\t\tapi.get = function (key) {\n\t\t\treturn api.call(api, key);\n\t\t};\n\t\tapi.getJSON = function () {\n\t\t\treturn api.apply({\n\t\t\t\tjson: true\n\t\t\t}, [].slice.call(arguments));\n\t\t};\n\t\tapi.defaults = {};\n\n\t\tapi.remove = function (key, attributes) {\n\t\t\tapi(key, '', extend(attributes, {\n\t\t\t\texpires: -1\n\t\t\t}));\n\t\t};\n\n\t\tapi.withConverter = init;\n\n\t\treturn api;\n\t}\n\n\treturn init(function () {});\n}));\n","export const CURRENCY_AUD = 'AUD';\nexport const CURRENCY_GBP = 'GBP';\nexport const CURRENCY_CAD = 'CAD';\nexport const CURRENCY_USD = 'USD';\n","export { IFormFields, IBankDetails, IRecipientDetails, IRecipientBasic } from './formFieldNames';\n\nexport { recipientBasics, recipientDetails, bankDetails } from './recipientTypes';\nexport const i18nPrefix = 'add-or-edit-recipient';\nexport const FEATURE_NAMESPACE = 'ADD_OR_EDIT_RECIPIENT';\nexport const countryCodes = {\n NZ: 'NZ',\n AU: 'AU',\n US: 'US',\n GB: 'GB',\n CA: 'CA',\n ZA: 'ZA',\n IN: 'IN',\n HK: 'HK',\n};\nexport const currencyCodes = {\n AUD: 'AUD',\n USD: 'USD',\n GBP: 'GBP',\n CAD: 'CAD',\n ZAR: 'ZAR',\n NZD: 'NZD',\n INR: 'INR',\n HKD: 'HKD',\n EUR: 'EUR',\n};\n\nexport const countriesWithMandatoryStates = [countryCodes.AU, countryCodes.US, countryCodes.GB];\n\nexport const paymentOptions = {\n BankAccount: 'BankAccount',\n CreditCard: 'CreditCard',\n SWIFT: 'SWIFT',\n BranchCode: 'BranchCode',\n};\nexport const recipientOptions = { OwnAccount: 'Own Account', ThirdParty: '3rd Party' };\nexport const optionsForAUDCountries = ['AU', 'CX', 'CC', 'HM', 'KI', 'NR', 'NF', 'TV'];\nexport const optionsForNZDCountries = ['NZ', 'CK', 'NU', 'PN', 'TK'];\nexport const optionsForUSDCountries = [\n 'AS',\n 'GU',\n 'MH',\n 'FM',\n 'MP',\n 'PW',\n 'PA',\n 'PR',\n 'TC',\n 'UM',\n 'US',\n 'VG',\n 'VI',\n 'IO',\n 'HT',\n];\nexport const dynamicFields = {\n BankFields: ['BankName', 'BranchName'],\n BranchFields: [\n 'BSB',\n 'SWIFT',\n 'FedWire',\n 'BankBranchCodeNZDInNZ',\n 'BranchCodeZARInSA',\n 'TransitBranchNumber',\n 'InstitutionNumber',\n 'SortCode',\n 'IFSC',\n 'BankCode',\n 'BranchCode',\n ],\n AccountFields: [\n 'AccountNo',\n 'SWIFT',\n 'IBAN',\n 'AccountSuffix',\n 'AccountNoNZDInNZ',\n 'AccountNoIBAN',\n 'BranchCode',\n 'CreditCardNo',\n ],\n SupplementaryFields: ['BranchCode', 'SWIFT', 'BankBranchCode'],\n};\nexport const MATCH_ALL_WHITESPACES_REGEX = /\\s/g;\nexport const NOT_APPLICABLE = 'Not Applicable';\nexport const DEFAULT_PAYMENT_REASON = 'NA';\nexport const classificationOptions = {\n ME: 'Own Account',\n SOMEONE_ELSE: '3rd Party',\n};\nexport const sharedActionTypes = {\n RESET_RECIPIENT_MODAL_STATE: 'RESET_RECIPIENT_MODAL_STATE',\n FETCH_RECIPIENT: 'FETCH_RECIPIENT',\n};\n\nexport const comboFields = [\n {\n names: ['BranchCode', 'AccountNo', 'AccountSuffix'],\n widths: [12, 6, 6],\n },\n {\n names: ['BranchCode', 'BankCode', 'AccountNo'],\n widths: [12, 6, 6],\n },\n {\n names: ['SWIFT', 'AccountNo'],\n widths: [6, 6],\n },\n {\n names: ['BranchCode', 'AccountNo'],\n widths: [6, 6],\n },\n];\n\nexport const PartitionInitialData = 'recipientInitialData';\n\nexport const MFA_REQUIRED_ERROR_CODE = 'BE:BeneficiaryValidator:0040';\n","const multipleSpaces = / +/g;\nconst plusAndSpace = '+ ';\n\nexport const phoneNumberTypes = {\n Mobile: 'Mobile',\n Home: 'Home',\n Work: 'Work',\n};\n\nexport const getPhoneNumberByType = (phoneNumbers = [], phoneNumberType) =>\n phoneNumbers.find((pn) => pn.Type === phoneNumberType);\n\nconst formatNullAndUndefinedToEmptyString = (number) => {\n if (number === undefined || number === null) {\n return '';\n }\n\n return number;\n};\n\nconst trimAndFormatFalsyToEmptyString = (value) => (value && value.trim() ? value.trim() : '');\n\nexport const formatPhoneNumber = (phoneNumber) => {\n if (!phoneNumber) {\n return null;\n }\n\n return `+${formatNullAndUndefinedToEmptyString(\n phoneNumber.CountryCode,\n )} ${formatNullAndUndefinedToEmptyString(\n phoneNumber.AreaCode,\n )} ${trimAndFormatFalsyToEmptyString(phoneNumber.ExchangeCode)} ${phoneNumber.Number}`\n .replace(multipleSpaces, ' ')\n .replace(plusAndSpace, '');\n};\n\nexport const getPhoneNumber = (value) => {\n if (!!value && typeof value === 'object') {\n if (value.number) {\n return value.number;\n }\n return null;\n }\n return value;\n};\n","export enum OnlineKycStepEnum {\n MFA = 'MFA',\n SECURITY_QUESTION = 'SECURITY_QUESTION',\n KYC_DETAILS = 'KYC_DETAILS',\n PERSONAL_DETAIL_FORM = 'PERSONAL_DETAIL_FORM',\n EXIT_NOTIFICATION = 'EXIT_NOTIFICATION',\n}\nexport enum OnlineKycFlowEnum {\n NEW_TRANSFER_BUTTON = 'NEW_TRANSFER_BUTTON',\n BANNER_NOTIFICATION = 'BANNER_NOTIFICATION',\n}\nexport const ACTION_NAMESPACE = 'ONLINE_KYC';\nexport const PARTITION = 'onlineKyc';\n","import { connect } from 'react-redux';\nimport Component from './Component';\nimport { MODAL_REDUCER } from './reducer';\n\nconst mapStateToProps = ({ [MODAL_REDUCER]: { content, isModalOpen } }) => ({\n content,\n isModalOpen,\n});\n\nexport default connect(mapStateToProps)(Component);\n","import * as React from 'react';\nimport SVG from 'components/Icons/SVG';\n\ninterface IProps {\n message: string;\n}\n\nconst ModalImportantInfoMessage = ({ message }: IProps) => (\n
\n
\n
\n \n
\n
{message}
\n
\n
\n);\n\nexport default ModalImportantInfoMessage;\n","// eslint-disable-next-line import/prefer-default-export\nexport { default as VerifyMfaCodeModal } from './Container';\n","import { bindActionCreators } from 'redux';\nimport { connect, Dispatch } from 'react-redux';\nimport { reduxForm } from 'redux-form';\nimport * as config from 'ofxSettings';\nimport * as ofxUserInfo from 'ofxUserInfo';\nimport {\n pushAnalyticsEvent,\n analyticsEventAction,\n analyticsEventCategory,\n analyticsEventLabel,\n} from 'libs/analytics';\nimport { inModalErrorClassName } from 'constants/cssClassConstants';\nimport { redirectTo, scrollToFirstError } from 'libs/events';\nimport getUserType from 'libs/getUserType';\nimport {\n PARTITION,\n MfaErrorCodesEnum,\n MfaErrorCodesMap,\n MfaServerErrorCodesEnum,\n} from '../constants';\nimport { IPartition } from '../reducer';\nimport verifyModalActions from './actions';\nimport { IVerifyMfaCodeForm } from './types';\nimport Component, { ComponentProps } from './Component';\n\nconst FORM_NAME = 'verifyMfaCodeForm';\nconst mfaDosErrorTextSuffix = '-on-mfa-modal';\n\nexport interface IContainerProps extends Partial {\n errorMessageI18nKey?: string;\n canShowResendButton: boolean;\n}\n\nexport const actions = {\n ...verifyModalActions,\n};\n\nconst mapStateToProps = (state: any): IContainerProps => {\n const mfaErrorEnum = MfaErrorCodesMap.get(\n state[PARTITION].get(\"mfaErrorCode\"),\n );\n\n let errorMessageI18nKey = mfaErrorEnum && mfaErrorEnum.toString();\n let canShowResendButton = true;\n\n switch (mfaErrorEnum) {\n case MfaErrorCodesEnum.OFX_ACCOUNT_LOCK:\n redirectTo(config.routes.signouts);\n break;\n case MfaErrorCodesEnum.SMS_SERVICE_LOCK:\n canShowResendButton = false;\n break;\n case MfaErrorCodesEnum.DOS:\n errorMessageI18nKey += mfaDosErrorTextSuffix;\n canShowResendButton = false;\n break;\n default:\n break;\n }\n\n return {\n errorMessageI18nKey,\n canShowResendButton,\n id: state[PARTITION].get(\"id\"),\n maskedNumber: state[PARTITION].get(\"maskedNumber\"),\n isMfaResendCodeSuccess: state[PARTITION].get(\n \"isMfaResendCodeSuccess\",\n ),\n };\n};\n\nconst mapDispatchToProps = (dispatch: Dispatch) =>\n bindActionCreators(actions, dispatch);\n\nconst onSubmit = (\n values: IVerifyMfaCodeForm,\n dispatch: Dispatch>,\n props: ComponentProps,\n) => {\n pushAnalyticsEvent({\n eventAction: analyticsEventAction.twoStepVerifyAttempt,\n eventCategory: analyticsEventCategory.twoStepVerify,\n eventLabel: analyticsEventLabel.button,\n eventData: {\n legalEntity: ofxUserInfo.isoLegalEntity,\n entityType: getUserType(),\n },\n });\n return props.authenticateMfaCredentials(values.securityCode, props.id!);\n};\n\nconst onSubmitSuccess = (\n result: {},\n dispatch: Dispatch>,\n props: ComponentProps,\n) => {\n pushAnalyticsEvent({\n eventAction: analyticsEventAction.twoStepVerifyAttempt,\n eventCategory: analyticsEventCategory.twoStepVerify,\n eventLabel: analyticsEventLabel.success,\n eventData: {\n legalEntity: ofxUserInfo.isoLegalEntity,\n entityType: getUserType(),\n },\n });\n props.onSuccessHandler();\n};\n\nconst onSubmitFail = (\n errors: {\n _code: string;\n _error?: string;\n error_code?: string;\n },\n dispatch: Dispatch>,\n submitError: {},\n props: ComponentProps,\n) => {\n pushAnalyticsEvent({\n eventAction: analyticsEventAction.twoStepVerifyAttempt,\n eventCategory: analyticsEventCategory.twoStepVerify,\n eventLabel: analyticsEventLabel.fail,\n eventData: {\n legalEntity: ofxUserInfo.isoLegalEntity,\n entityType: getUserType(),\n },\n });\n\n if (errors.error_code === MfaServerErrorCodesEnum.VERIFY_LOCK) {\n pushAnalyticsEvent({\n eventAction: analyticsEventAction.accountLocked,\n eventCategory: analyticsEventCategory.twoStepVerify,\n eventData: {\n legalEntity: ofxUserInfo.isoLegalEntity,\n entityType: getUserType(),\n },\n });\n }\n\n scrollToFirstError(inModalErrorClassName);\n props.onFailHandler();\n};\n\nconst Form = reduxForm({\n onSubmit,\n onSubmitSuccess,\n onSubmitFail,\n form: FORM_NAME,\n})(Component);\n\nconst Container = connect(mapStateToProps, mapDispatchToProps)(Form);\n\nContainer.displayName = 'VerifyMfaCodeContainer';\n\nexport default Container;\n","import * as React from 'react';\nimport { i18n } from 'libs/i18n';\nimport { FormProps } from 'redux-form';\nimport {\n pushAnalyticsEvent,\n analyticsEventAction,\n analyticsEventCategory,\n analyticsEventLabel,\n} from 'libs/analytics';\nimport getUserType from 'libs/getUserType';\nimport contactUsLinks from 'constants/contactUsLinks';\nimport * as validation from 'validation';\nimport isoLegalEntities from 'constants/isoLegalEntities';\nimport * as ofxUserInfo from 'ofxUserInfo';\nimport { toastCreator } from 'components/Toast';\nimport ModalFormErrorMessage from 'components/ModalFormErrorMessage';\nimport SimpleField from 'components/Form/SimpleField';\nimport { ModalCrossBtn } from 'components/ModalV2';\nimport NotificationMfa from 'assets/illustrations/NotificationMfa';\nimport { IVerifyMfaCodeForm } from './types';\nimport { IContainerProps, actions } from './Container';\n\ninterface IProps {\n onCloseHandler: () => void;\n onSuccessHandler: () => void;\n onFailHandler: () => void;\n}\n\nexport type ComponentProps = FormProps &\n IProps &\n typeof actions &\n IContainerProps;\n\nclass Component extends React.Component {\n static displayName = 'VerifyMfaCodeModal';\n componentDidUpdate(prevProps: ComponentProps): void {\n if (\n prevProps.isMfaResendCodeSuccess !== this.props.isMfaResendCodeSuccess &&\n this.props.isMfaResendCodeSuccess\n ) {\n toastCreator.success(i18n('mfa-verify-code-modal-code-sent-message'));\n }\n }\n\n onResendClick = () => {\n const { resendSms, id } = this.props;\n\n if (id) {\n resendSms(id);\n pushAnalyticsEvent({\n eventAction: analyticsEventAction.resendCode,\n eventCategory: analyticsEventCategory.twoStepVerify,\n eventLabel: analyticsEventLabel.link,\n eventData: {\n legalEntity: ofxUserInfo.isoLegalEntity,\n entityType: getUserType(),\n },\n });\n }\n };\n\n onContactUsClick = () => {\n pushAnalyticsEvent({\n eventAction: analyticsEventAction.contactOfx,\n eventCategory: analyticsEventCategory.twoStepVerify,\n eventLabel: analyticsEventLabel.link,\n eventData: {\n legalEntity: ofxUserInfo.isoLegalEntity,\n entityType: getUserType(),\n },\n });\n };\n\n onCloseClick = () => {\n const { onCloseHandler } = this.props;\n\n onCloseHandler();\n pushAnalyticsEvent({\n eventAction: analyticsEventAction.cancel,\n eventCategory: analyticsEventCategory.twoStepVerify,\n eventLabel: analyticsEventLabel.button,\n eventData: {\n legalEntity: ofxUserInfo.isoLegalEntity,\n entityType: getUserType(),\n },\n });\n };\n\n render() {\n const { errorMessageI18nKey, maskedNumber, handleSubmit, canShowResendButton } = this.props;\n const locale = (ofxUserInfo && ofxUserInfo.isoLegalEntity) || isoLegalEntities.AU;\n const contactOFX = contactUsLinks[locale.toLowerCase()];\n return (\n
\n
\n \n
\n

{i18n('mfa-verify-code-modal-title')}

\n
\n
\n {errorMessageI18nKey && (\n \n )}\n
\n \n
\n

{i18n('mfa-verify-code-modal-message')}

\n

{maskedNumber}

\n
\n \n
\n {canShowResendButton && (\n \n {i18n('mfa-verify-code-modal-resend-code')}\n \n )}\n

\n {i18n('mfa-verify-code-modal-contact-ofx-label')}\n

\n

\n \n {i18n('mfa-verify-code-modal-contact-ofx-link')}\n \n {i18n('mfa-verify-code-modal-contact-ofx-message')}\n

\n
\n
\n
\n \n {i18n('mfa-verify-code-modal-cancel-button')}\n \n \n {i18n('mfa-verify-code-modal-verify-button')}\n \n
\n
\n \n
\n );\n }\n}\n\nexport default Component;\n","import * as React from 'react';\n\nconst Component = () => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ******\n \n \n \n \n \n \n);\n\nComponent.displayName = 'NotificationMfa';\n\nexport default Component;\n","import * as React from 'react';\nimport { i18n } from 'libs/i18n';\nimport {\n pushAnalyticsEvent,\n analyticsEventAction,\n analyticsEventCategory,\n analyticsEventLabel,\n} from 'libs/analytics';\nimport getUserType from 'libs/getUserType';\nimport isoLegalEntities from 'constants/isoLegalEntities';\nimport { ModalCrossBtn } from 'components/ModalV2';\nimport contactUsLinks from 'constants/contactUsLinks';\nimport * as ofxUserInfo from 'ofxUserInfo';\n\ninterface IProps {\n bodyTextI18Key: string;\n onCloseHandler: () => void;\n}\n\nconst pushCancelEvent = () => {\n pushAnalyticsEvent({\n eventAction: analyticsEventAction.noMobileCancel,\n eventCategory: analyticsEventCategory.twoStepVerify,\n eventLabel: analyticsEventLabel.button,\n eventData: {\n legalEntity: ofxUserInfo.isoLegalEntity,\n entityType: getUserType(),\n },\n });\n};\n\nconst i18nKeysMapper: { [s: string]: string[] } = {\n 'mfa-invalid-mobile-number-text': [\n 'mfa-invalid-mobile-number-text-1',\n 'mfa-invalid-mobile-number-text-2',\n ],\n 'mfa-missing-mobile-number-text': [\n 'mfa-missing-mobile-number-text-1',\n 'mfa-missing-mobile-number-text-2',\n ],\n};\n\nconst MobileNumberError = (props: IProps) => {\n const { onCloseHandler, bodyTextI18Key } = props;\n const locale = (ofxUserInfo && ofxUserInfo.isoLegalEntity) || isoLegalEntities.AU;\n const contactOFX = contactUsLinks[locale.toLowerCase()];\n const i18nKeys = i18nKeysMapper[bodyTextI18Key];\n return (\n
\n {\n onCloseHandler();\n pushCancelEvent();\n }}\n />\n
\n

{i18n('mfa-mobile-number-error-title-text')}

\n
\n
\n {i18nKeys.map((key: string, index: number) => (\n

{i18n(key)}

\n ))}\n
\n
\n
\n {\n onCloseHandler();\n pushCancelEvent();\n }}\n >\n {i18n('mfa-mobile-number-error-cancel-button-text')}\n \n {\n window.open(contactOFX);\n pushAnalyticsEvent({\n eventAction: analyticsEventAction.noMobileContact,\n eventCategory: analyticsEventCategory.twoStepVerify,\n eventLabel: analyticsEventLabel.button,\n eventData: {\n legalEntity: ofxUserInfo.isoLegalEntity,\n entityType: getUserType(),\n },\n });\n }}\n >\n {i18n('mfa-mobile-number-error-contact-button-text')}\n \n
\n
\n
\n );\n};\n\nexport default MobileNumberError;\n","import { Map } from 'immutable';\nimport { SubmissionError } from 'redux-form';\nimport { handleActions } from 'redux-actions';\nimport { SecureMvc } from 'libs/@types/secureMvc';\nimport { PARTITION } from './constants';\nimport { actionTypes } from './actions';\nimport { actionTypes as verifyMfaActionTypes } from './VerifyMfaCode/actions';\n\nexport interface IPartition {\n id?: string;\n maskedNumber?: string;\n mfaInitErrorCode?: string;\n mfaInitErrorMessage?: string;\n mfaInitNonModalErrorCode?: string;\n mfaErrorCode?: string;\n mfaErrorMessage?: string;\n isMfaResendCodeSuccess?: boolean;\n}\n\nconst initialState: IPartition = {\n [\"isMfaResendCodeSuccess\"]: false,\n};\n\ninterface IHandleError {\n message: any;\n}\n\ntype PayloadType = SecureMvc.ISmsSendResponse &\n IHandleError &\n SubmissionError>;\n\nexport const reducer = handleActions, PayloadType>(\n {\n [actionTypes.RESET_MFA_FLOW_STATE]: () => Map(initialState),\n [actionTypes.SET_INIT_MFA_NON_MODAL_ERROR]: (state, { payload }) =>\n state.set(\n \"mfaInitNonModalErrorCode\",\n payload,\n ),\n [`${actionTypes.INIT_MFA}_PENDING`]: () => Map(initialState),\n [`${actionTypes.INIT_MFA}_FULFILLED`]: (state, { payload }) =>\n state\n .set(\n \"id\",\n payload!.id,\n )\n .set(\n \"maskedNumber\",\n payload!.maskedNumber,\n ),\n [`${actionTypes.INIT_MFA}_REJECTED`]: (state, { payload }) =>\n state\n .set(\n \"mfaInitErrorCode\",\n payload!.error_code,\n )\n .set(\n \"mfaInitErrorMessage\",\n payload!.error_description,\n ),\n [`${verifyMfaActionTypes.RESEND_SMS}_PENDING`]: (state) =>\n state\n .set(\n \"isMfaResendCodeSuccess\",\n false,\n )\n .set(\n \"mfaErrorCode\",\n undefined,\n )\n .set(\n \"mfaErrorMessage\",\n undefined,\n ),\n [`${verifyMfaActionTypes.RESEND_SMS}_FULFILLED`]: (state) =>\n state.set(\n \"isMfaResendCodeSuccess\",\n true,\n ),\n [`${verifyMfaActionTypes.RESEND_SMS}_REJECTED`]: (state, { payload }) => {\n const data = payload!.message;\n return state\n .set(\n \"isMfaResendCodeSuccess\",\n false,\n )\n .set(\n \"mfaErrorCode\",\n data.error_code,\n )\n .set(\n \"mfaErrorMessage\",\n data.error_description,\n );\n },\n [`${verifyMfaActionTypes.AUTHENTICATE_MFA_CREDS}_PENDING`]: (state) =>\n state\n .set(\n \"mfaErrorCode\",\n undefined,\n )\n .set(\n \"mfaErrorMessage\",\n undefined,\n ),\n [`${verifyMfaActionTypes.AUTHENTICATE_MFA_CREDS}_REJECTED`]: (state, { payload }) => {\n const data = payload!.errors;\n return state\n .set(\n \"mfaErrorCode\",\n data.error_code,\n )\n .set(\n \"mfaErrorMessage\",\n data.error_description,\n );\n },\n },\n Map(initialState),\n);\n\nexport default {\n [PARTITION]: reducer,\n};\n","import * as React from 'react';\nimport * as config from 'ofxSettings';\nimport { inModalErrorClassName } from 'constants/cssClassConstants';\nimport { scrollToFirstError } from 'libs/events';\nimport { MFA, QA } from 'constants/securityModes';\nimport { SecurityQuestions } from '../SecurityQuestions';\nimport { ReviewKycDetails } from './components/ReviewKycDetails';\nimport { PersonalDetailForm } from './components/PersonalDetailForm';\nimport OnlineKycExitNotification from './components/OnlineKycExitNotification';\nimport OnlineKyc, { actions, IContainerProps } from './Container';\nimport { OnlineKycFlowEnum, OnlineKycStepEnum } from './constants';\n\ninterface IProps {\n onlineKycFlow: OnlineKycFlowEnum;\n}\n\ntype ComponentProps = IProps & IContainerProps & typeof actions;\n\nexport default class Component extends React.Component {\n static displayName = 'OnlineKycModal';\n componentDidUpdate(prevProps: Readonly): void {\n const {\n onlineKycFlow,\n securityVerificationStatus,\n updateOnlineKycStep,\n initMfa,\n closeModal,\n openModal,\n } = this.props;\n if (\n prevProps.onlineKycStep !== this.props.onlineKycStep &&\n this.props.onlineKycStep === OnlineKycStepEnum.PERSONAL_DETAIL_FORM\n ) {\n switch (config.user.securityMode) {\n case MFA:\n updateOnlineKycStep(OnlineKycStepEnum.MFA);\n const onMfaInitFailHandler = () => {\n scrollToFirstError(inModalErrorClassName);\n };\n const onMfaFlowSuccessHandler = () => {\n updateOnlineKycStep(OnlineKycStepEnum.PERSONAL_DETAIL_FORM);\n openModal();\n };\n const onMfaFlowCancelHandler = () => {\n closeModal();\n updateOnlineKycStep(OnlineKycStepEnum.KYC_DETAILS);\n };\n initMfa({\n onMfaInitFailHandler,\n onMfaFlowSuccessHandler,\n onMfaFlowCancelHandler,\n });\n break;\n case QA:\n if (!securityVerificationStatus.Valid) {\n updateOnlineKycStep(OnlineKycStepEnum.SECURITY_QUESTION);\n }\n break;\n\n default:\n break;\n }\n }\n }\n\n render() {\n const { onlineKycFlow, closeModal, onlineKycStep, updateOnlineKycStep } = this.props;\n\n const DEFAULT_CONTENT = (\n \n );\n switch (onlineKycStep) {\n case OnlineKycStepEnum.SECURITY_QUESTION:\n return (\n {\n closeModal();\n updateOnlineKycStep(OnlineKycStepEnum.KYC_DETAILS);\n }}\n onSuccessHandler={() => {\n updateOnlineKycStep(OnlineKycStepEnum.PERSONAL_DETAIL_FORM);\n }}\n />\n );\n\n case OnlineKycStepEnum.PERSONAL_DETAIL_FORM:\n return (\n \n );\n\n case OnlineKycStepEnum.EXIT_NOTIFICATION:\n return (\n \n );\n\n default:\n return DEFAULT_CONTENT;\n }\n }\n}\n","import { connect, Dispatch } from 'react-redux';\nimport { bindActionCreators } from 'redux';\nimport Component from './Component';\nimport { PARTITION } from './constants';\nimport { PARTITION as HEADER_PARTITION } from '../HeaderV2/constants';\nimport { IPartition as IHeaderPartition } from '../HeaderV2/types';\nimport { IPartition } from './reducer';\nimport securityQuestionsActions from './actions';\n\nexport interface IContainerProps {\n securityQuestion: string;\n brand: string;\n}\n\nconst mapStateToProps = (state: any): IContainerProps => ({\n brand: state[HEADER_PARTITION].getIn([\"User\"])[\n \"Brand\"\n ],\n securityQuestion: state[PARTITION].get(\"securityQuestion\"),\n});\n\nconst actions = {\n ...securityQuestionsActions,\n};\n\nconst mapDispatchToProps = (dispatch: Dispatch) =>\n bindActionCreators(actions, dispatch);\n\nconst SecurityQuestionsContainer = connect(mapStateToProps, mapDispatchToProps)(Component);\n\nSecurityQuestionsContainer.displayName = 'SecurityQuestionsContainer';\n\nexport default SecurityQuestionsContainer;\n","import * as React from 'react';\nimport { autoScrollToModalContent } from '../../helpers/autoScrolling';\nimport { MissingSecurityQuestion, SecurityQuestionsForm } from './components';\nimport actions from './actions';\nimport { NO_SECURITY_QUESTION } from './constants';\nimport { IContainerProps } from './Container';\n\ninterface IProps {\n onCloseHandler: () => void;\n onSuccessHandler: () => void;\n}\n\nexport type ISecurityQuestionsProps = IProps & IContainerProps & typeof actions;\n\nexport default class Component extends React.Component {\n static displayName = 'SecurityQuestions';\n\n componentDidMount(): void {\n if (!this.props.securityQuestion) {\n this.props.fetchSecurityQuestion();\n }\n autoScrollToModalContent();\n }\n\n render() {\n const { securityQuestion, onCloseHandler, onSuccessHandler } = this.props;\n\n if (!securityQuestion) return null;\n\n return (\n
\n {securityQuestion === NO_SECURITY_QUESTION ? (\n \n ) : (\n \n )}\n
\n );\n }\n}\n","export { default as MissingSecurityQuestion } from './MissingSecurityQuestion';\nexport { default as SecurityQuestionsForm } from './SecurityQuestionsForm/Container';\n","import * as React from 'react';\nimport contactUsLinks from 'constants/contactUsLinks';\nimport isoLegalEntities from 'constants/isoLegalEntities';\nimport * as ofxUserInfo from 'ofxUserInfo';\nimport { i18n } from 'libs/i18n';\nimport ModalContentContainer from 'components/ModalV2/ModalContent/ModalContentContainer';\n\nconst locale = (ofxUserInfo && ofxUserInfo.isoLegalEntity) || isoLegalEntities.AU;\nconst contactOFX = contactUsLinks[locale.toLowerCase()];\nconst header = i18n('header-v2-review-verify-header');\nconst body = (\n \n

{i18n('header-v2-missing-security-question-description-1')}

\n

{i18n('header-v2-missing-security-question-description-2')}

\n
\n);\nconst footer = (onCloseHandler: () => void, contactLink: string) => (\n
\n \n {i18n('header-v2-missing-security-question-cancel')}\n \n {\n window.open(contactLink);\n }}\n >\n {i18n('header-v2-missing-security-question-contact-ofx')}\n \n
\n);\n\ninterface IProps {\n onCloseHandler: () => void;\n}\n\nconst Component = ({ onCloseHandler }: IProps) => (\n \n);\n\nComponent.displayName = 'MissingSecurityQuestion';\n\nexport default Component;\n","import { connect, Dispatch } from 'react-redux';\nimport { reduxForm } from 'redux-form';\nimport { bindActionCreators } from 'redux';\nimport { PARTITION } from '../../constants';\nimport { PARTITION as HEADER_PARTITION } from '../../../HeaderV2/constants';\nimport { IPartition as IHeaderPartition } from '../../../HeaderV2/types';\nimport { IPartition } from '../../reducer';\nimport securityQuestionsActions from '../../actions';\nimport { IFormData } from '../../types';\nimport Component, { ISecurityQuestionsFormProps } from './Component';\nimport { IContainerProps, FORM_NAME } from './constants';\nimport { isOnIntroduction } from '../../../Partnerships/reducers';\n\nconst mapStateToProps = (state: any): IContainerProps => {\n return {\n brand: state[HEADER_PARTITION].getIn([\"User\"])[\n \"Brand\"\n ],\n securityQuestion: state[PARTITION].get(\"securityQuestion\"),\n isOnPartnershipIntroduction: isOnIntroduction(state),\n };\n};\n\nconst actions = {\n ...securityQuestionsActions,\n};\n\nconst mapDispatchToProps = (dispatch: Dispatch) =>\n bindActionCreators(actions, dispatch);\n\nconst Form = reduxForm({\n form: FORM_NAME,\n onSubmit: (values: IFormData, dispatch: Dispatch) =>\n dispatch(actions.verifySecurityInfo(values)),\n onSubmitSuccess: (\n result: {},\n dispatch: Dispatch,\n props: ISecurityQuestionsFormProps,\n ) => {\n props.onSuccessHandler();\n },\n})(Component);\n\nconst SecurityQuestionsFormContainer = connect(mapStateToProps, mapDispatchToProps)(Form);\n\nSecurityQuestionsFormContainer.displayName = 'SecurityQuestionsFormContainer';\n\nexport default SecurityQuestionsFormContainer;\n","import * as React from 'react';\nimport { FormProps } from 'redux-form';\nimport * as validation from 'validation';\nimport { i18n } from 'libs/i18n';\nimport SimpleField from 'components/Form/SimpleField';\nimport MaskedDate from 'components/Form/MaskedDate';\nimport ModalContentContainer from 'components/ModalV2/ModalContent/ModalContentContainer';\nimport { autoScrollToModalContent } from '../../../../helpers/autoScrolling';\nimport { IFormData } from '../../types';\nimport actions from '../../actions';\nimport { IContainerProps, FORM_NAME } from './constants';\n\nconst errorMsg = (error = '') => (error === '' ? '' : i18n('header-v2-user-verification-error'));\nconst header = i18n('header-v2-review-verify-header');\n\nconst body = (handleSubmit: any, securityQuestion: string, brand: string) => (\n \n

{i18n('header-v2-review-verify-details')}

\n
\n \n \n \n
\n);\nconst footer = (\n onCloseHandler: () => void,\n submit: (formName: string) => void,\n isOnPartnershipIntroduction: boolean,\n) => (\n
\n {!isOnPartnershipIntroduction && (\n \n {i18n('header-v2-update-review-later')}\n \n )}\n submit(FORM_NAME)}\n >\n {i18n('header-v2-update-verify')}\n \n
\n);\n\ninterface IProps {\n onCloseHandler: () => void;\n isOnPartnershipIntroduction?: boolean;\n}\n\nexport type ISecurityQuestionsFormProps = IProps &\n IContainerProps &\n FormProps &\n typeof actions;\n\nclass Component extends React.Component {\n static displayName = 'SecurityQuestionsForm';\n\n componentDidMount(): void {\n autoScrollToModalContent();\n }\n\n render() {\n const {\n securityQuestion,\n handleSubmit,\n submit,\n brand,\n error = '',\n onCloseHandler,\n isOnPartnershipIntroduction = false,\n } = this.props;\n\n return (\n \n );\n }\n}\n\nexport default Component;\n","import { connect, Dispatch } from 'react-redux';\nimport { formValueSelector } from 'redux-form';\nimport Component, { Props as ComponentProps } from './Component';\nimport { actions, IRoot, partition, IStatePartition } from './reducers';\nimport BankAccountActor from 'components/BankDetails/actors';\nimport { formName, IFormFields, PartitionInitialData } from '../../constants';\n\nconst selector = formValueSelector(formName);\n\nconst formatAddress = (state: IRoot) => {\n const address = state[PartitionInitialData].getIn([\n \"recipientDetails\",\n ]).address;\n if (address) {\n return {\n AddressLine: address.line1,\n CitySuburb: address.city,\n StateProvince: address.state,\n PostCode: address.postcode,\n Country: address.country,\n };\n }\n return null;\n};\n\nconst mapStateToProps = (state: IRoot) => {\n return {\n classification: selector(\n state,\n \"recipientBasics.classification\",\n ),\n recipientAddress: state[partition].getIn([\n \"recipientAddress\",\n ]),\n otherRecipientAddress: formatAddress(state),\n };\n};\n\nconst mapDispatchToProps = (dispatch: Dispatch, ownProps: ComponentProps) => {\n const actor = new BankAccountActor(dispatch, ownProps.formName);\n return {\n actor,\n initRecipientBasics: () => dispatch(actions.initRecipientBasics(ownProps.recipientId)),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Component);\n","import * as React from 'react';\nimport { FormSection } from 'redux-form';\nimport * as validation from 'validation';\nimport { i18n } from 'libs/i18n';\nimport SimpleField from 'components/Form/SimpleField';\nimport RadioButtonGroup from 'components/Form/RadioButtonGroup';\nimport { Recipients } from 'libs/@types/beneficiary';\nimport RecipientTypes from './RecipientTypes';\nimport { classificationOptions, IFormFields } from '../../constants';\nimport { actions } from './reducers';\nimport BankAccountActor from '../../../../components/BankDetails/actors';\n\nexport const i18nPrefix = 'recipient-basics-select-recipient-type';\nconst options = [\n {\n label: i18n('recipient-basics-select-recipient-type-me-label'),\n id: classificationOptions.ME,\n },\n {\n label: i18n('recipient-basics-select-recipient-type-someoneelse-label'),\n id: classificationOptions.SOMEONE_ELSE,\n },\n];\n\nexport type Props = {\n recipientId?: string;\n classification: string;\n recipientAddress: Recipients.IAddress;\n otherRecipientAddress: Recipients.IAddress;\n actor: BankAccountActor;\n formName: string;\n setOwnRecipientName: () => void;\n clearOwnRecipientName: () => void;\n} & typeof actions;\n\nclass Component extends React.Component {\n static displayName = 'RecipientBasics';\n state = {\n hasManuallyChangedClassification: false,\n };\n\n componentDidMount() {\n const { initRecipientBasics, classification } = this.props;\n if (!classification || classification.length < 1) {\n initRecipientBasics();\n }\n }\n\n componentDidUpdate(prevProps: Props) {\n const { actor } = this.props;\n actor.handleRecipientClassificationChange(\n prevProps,\n this.props,\n this.state.hasManuallyChangedClassification,\n );\n }\n\n onClassificationChange = () => {\n this.setState({ hasManuallyChangedClassification: true });\n };\n\n render() {\n return (\n
\n
\n \n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n );\n }\n}\n\nexport default Component;\n","export { default } from './Container';\n","import { connect, Dispatch } from 'react-redux';\nimport { bindActionCreators } from 'redux';\nimport Component from './Component';\nimport { actions, IRoot, partition, IStatePartition } from '../reducers';\n\nconst mapStateToProps = (state: IRoot) => {\n return {\n recipientTypes: state[partition].getIn([\"recipientTypes\"]),\n };\n};\n\nconst mapDispatchToProps = (dispatch: Dispatch) =>\n bindActionCreators(actions, dispatch);\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Component);\n","import * as React from 'react';\nimport Select2Wrapper from 'components/Form/Select/Select2Wrapper';\nimport SimpleField from 'components/Form/SimpleField';\nimport * as validation from 'validation';\nimport * as loggedInUser from 'ofxUserInfo';\nimport isoLegalEntities from 'constants/isoLegalEntities';\nimport { areEqualIgnoreCase } from 'libs/string';\nimport { i18n } from 'libs/i18n';\nimport { actions } from '../reducers';\nimport { IFormFields } from '../../../constants';\n\ntype Props = {\n recipientTypes: string[];\n} & typeof actions;\n\ntype State = {\n isCABrand: boolean;\n};\n\nclass Component extends React.Component {\n constructor(props: Props) {\n super(props);\n this.state = {\n isCABrand: areEqualIgnoreCase(loggedInUser.isoLegalEntity, isoLegalEntities.CA),\n };\n }\n componentDidMount() {\n if (this.state.isCABrand) {\n this.props.fetchRecipientTypes();\n }\n }\n\n render() {\n return (\n this.state.isCABrand && (\n
\n \n
\n )\n );\n }\n}\n\nexport default Component;\n","import * as React from 'react';\nimport { FormSection } from 'redux-form';\nimport { i18n } from 'libs/i18n';\nimport BankBasics from './BankBasics';\nimport AccountDetails from './AccountDetails';\nimport BankAddress from './BankAddress';\nimport { FeatureFlagsContext } from 'components/FeatureFlags';\nimport { isEnabledFeatureFlag } from 'libs/featureFlagLookUp';\nimport ldFlags from 'constants/ldFlags';\n\nconst BankHeader = () =>

{i18n('recipient-bank-heading')}

;\n\ntype IBankInstructions = {\n instructions?: string;\n};\n\nconst BankInstructions = ({ instructions }: IBankInstructions) => (\n
\n
\n

\n {instructions ? instructions : i18n('recipient-bank-heading-instruction')}\n

\n
\n
\n);\n\ntype ComponentOwnProps = {\n formName: string;\n showHeader?: boolean;\n instructions?: string;\n canShowBankDetails?: boolean;\n canShowDeclarationText: boolean;\n excludeCurrencies?: string[];\n lockedRecipientCurrency?: string;\n};\n\nconst Component = ({\n formName,\n showHeader = true,\n instructions,\n canShowBankDetails = true,\n canShowDeclarationText = false,\n excludeCurrencies = [],\n lockedRecipientCurrency,\n}: ComponentOwnProps) => {\n const { flags } = React.useContext(FeatureFlagsContext);\n const usdEftIsEnabled = isEnabledFeatureFlag(flags, ldFlags.isUsdCaEftEnabled);\n\n return (\n
\n
\n \n {showHeader && }\n \n \n \n \n \n
\n
\n );\n};\n\nexport default Component;\n","export { default } from './Container';\n","import { connect } from 'react-redux';\nimport { formValueSelector } from 'redux-form';\nimport Component, { ComponentProps } from './Component';\nimport { actions, IRoot, partition, IStatePartition } from '../reducers';\nimport BankAccountActor from '../actors';\nimport { IFormFields, paymentOptions } from '../constants';\n\nconst mapStateToProps = (state: IRoot, ownProps: ComponentProps) => {\n const selector = formValueSelector(ownProps.formName);\n\n return {\n countries: state[partition].getIn([\"countries\"]),\n currencies: state[partition].getIn([\"currencies\"]),\n bankCountry: selector(\n state,\n \"bankDetails.bankCountry\",\n ),\n bankCurrency: selector(\n state,\n \"bankDetails.bankCurrency\",\n ),\n bankPaymentOption:\n selector(\n state,\n \"bankDetails.bankPaymentOption\",\n ) || paymentOptions.BankAccount,\n recipientId: selector(\n state,\n \"recipientBasics.recipientId\",\n ),\n };\n};\n\nconst mapDispatchToProps = (dispatch: Function, ownProps: ComponentProps) => {\n const actor = new BankAccountActor(dispatch, ownProps.formName);\n return {\n actor,\n initBankBasics: (currency?: string) =>\n dispatch(actions.initBankBasics(ownProps.formName, currency)),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Component);\n","import * as React from 'react';\nimport SimpleField from 'components/Form/SimpleField';\nimport Select2Wrapper from 'components/Form/Select/Select2Wrapper';\nimport * as validation from 'validation';\nimport { i18n } from 'libs/i18n';\nimport { Common } from 'libs/@types/common';\nimport { IBankDetails, IRecipientBasic } from '../constants';\nimport BankAccountActor from '../actors';\nimport { actions } from '../reducers';\n\nconst i18nPrefix = 'recipient-bank';\n\nexport type ComponentProps = {\n formName: string;\n countries: Common.ISelect2[];\n currencies: Common.ISelect2[];\n actor: BankAccountActor;\n recipientId: IRecipientBasic['recipientId'];\n excludeCurrencies: string[];\n lockedRecipientCurrency?: string;\n usdEftIsEnabled?: boolean;\n initBankBasics: (currency?: string, accountName?: string) => void;\n} & IBankDetails &\n typeof actions;\n\nclass Component extends React.Component {\n componentDidMount() {\n const { lockedRecipientCurrency, initBankBasics } = this.props;\n\n initBankBasics(lockedRecipientCurrency);\n }\n\n componentDidUpdate(prevProps: ComponentProps) {\n const { actor, lockedRecipientCurrency, usdEftIsEnabled } = this.props;\n const isRecipientTheSame = prevProps.recipientId === this.props.recipientId;\n\n if (isRecipientTheSame) {\n actor.handleCountryChange(\n prevProps,\n this.props,\n !!lockedRecipientCurrency,\n usdEftIsEnabled,\n );\n }\n\n actor.handleCurrencyChange(prevProps, this.props, isRecipientTheSame, usdEftIsEnabled);\n }\n\n render() {\n const { countries, currencies, excludeCurrencies, lockedRecipientCurrency } = this.props;\n\n return (\n
\n
\n
\n \n
\n
\n !excludeCurrencies.includes(currency.value!),\n )\n }\n autoComplete=\"off\"\n validate={validation.required(true)}\n options={{ placeholder: i18n(`${i18nPrefix}-currency-placeholder`) }}\n disabled={!!lockedRecipientCurrency}\n />\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n );\n }\n}\n\nexport default Component;\n","import differenceWith from 'lodash/differenceWith';\nimport isEqual from 'lodash/isEqual';\nimport { i18n } from 'libs/i18n';\nimport { getEftCurrencies } from '../AccountDetails/helper';\nimport {\n dynamicFields,\n countryCodes,\n currencyCodes,\n paymentOptions,\n optionsForAUDCountries,\n optionsForNZDCountries,\n optionsForUSDCountries,\n} from '../constants';\n\nconst formatDisplay = (item) =>\n item.IsRequired ? item.DisplayAs : `${item.DisplayAs} ${i18n('optional-message')}`;\n\nconst getInstructionMessage = (PropertyKeyHelp, country, currency) =>\n ({\n SWIFT: i18n('recipients-generic-swift-instruction-text'),\n IBAN: i18n('recipients-generic-iban-instruction-text'),\n FedWire: i18n('recipients-us-fedwire-instruction-text'),\n BSB: i18n('recipients-au-bsb-instruction-text'),\n SortCode: i18n('recipients-uk-sortcode-instruction-text'),\n TransitBranchNumber: i18n('recipients-ca-transitnumber-instruction-text'),\n InstitutionNumber: i18n('recipients-ca-institutenumber-instruction-text'),\n CreditCardNo: i18n('recipients-generic-creditcard-instruction-text'),\n BankBranchCodeNZDInNZ: i18n('recipients-nz-branchcode-instruction-text'),\n IFSC: i18n('recipients-in-ifsc-instruction-text'),\n BankName: i18n('recipients-bankname-instruction-text'),\n BranchName: i18n('recipients-branchname-instruction-text'),\n AccountNo: i18n('recipients-accountnumber-instruction-text'),\n AccountNoIBAN: i18n('recipients-accountnumber-instruction-text'),\n AccountNoNZDInNZ: i18n('recipients-nz-nzd-accountnumber-instruction-text'),\n AccountSuffix: i18n('recipients-nz-nzd-accountsuffix-instruction-text'),\n BranchCodeZARInSA: i18n('recipients-za-zar-branchcode-instruction-text'),\n BankCode: i18n('recipients-bankcode-instruction-text'),\n BranchCode:\n country === countryCodes.HK && currency === currencyCodes.HKD\n ? i18n('recipients-hk-branchcode-instruction-text')\n : i18n('recipients-generic-branchcode-instruction-text'),\n }[PropertyKeyHelp]);\n\nconst getTypeForTheField = (item) => {\n let type = 'text';\n if (item.AllowSearch) {\n type = 'lookup';\n }\n return type;\n};\n\nconst getFormItem = (item, country, currency) => ({\n name: item.PropertyKey,\n label: formatDisplay(item),\n buttonText: item.AllowSearch ? i18n('recipients-lookup') : null,\n handleCallBack: null,\n instructions: { text: getInstructionMessage(item.PropertyKeyHelp, country, currency) },\n visible: true,\n props: {\n id: item.PropertyKey,\n required: item.IsRequired,\n type: getTypeForTheField(item),\n placeholder: formatDisplay(item),\n maxLength: item.MaxLength ? parseInt(item.MaxLength, 10) : undefined,\n minLength: item.MinLength ? parseInt(item.MinLength, 10) : undefined,\n name: item.PropertyKeyHelp,\n regex: item.ValidationRegex,\n regexError: item.IsRegexErrorMessage,\n },\n});\n\nexport const hasOptions = (country, currency) => {\n const bankCountry = country.toUpperCase();\n const bankCurrency = currency.toUpperCase();\n if (\n (bankCurrency === currencyCodes.AUD && optionsForAUDCountries.indexOf(bankCountry) >= 0) ||\n (bankCurrency === currencyCodes.NZD && optionsForNZDCountries.indexOf(bankCountry) >= 0) ||\n (bankCurrency === currencyCodes.USD && optionsForUSDCountries.indexOf(bankCountry) >= 0) ||\n (bankCurrency === currencyCodes.ZAR && bankCountry === countryCodes.ZA)\n ) {\n return true;\n }\n return false;\n};\n\n// switch lookup button to next field due to UI required for CA CAD\nconst updateAvailableFields = (currentAvailableFields, country, currency, usdEftIsEnabled) => {\n let newAvailableFields = {};\n // Object assign instructions within this function are mutating\n // currentAvailableFields items. Related tests will fail if this is\n // updated to use object spread operator. Is mutation the expected\n // behavior?\n if (\n (optionsForUSDCountries.indexOf(country) >= 0 && currency === currencyCodes.USD) ||\n (country === countryCodes.ZA && currency === currencyCodes.ZAR)\n ) {\n newAvailableFields = currentAvailableFields.map((item) => {\n if (\n item.PropertyKey === paymentOptions.BranchCode ||\n item.PropertyKey === paymentOptions.SWIFT\n ) {\n return Object.assign(item, { IsRequired: true });\n }\n return item;\n });\n return newAvailableFields;\n }\n\n const eftCurrencies = getEftCurrencies(usdEftIsEnabled);\n\n if (country === countryCodes.CA && eftCurrencies.includes(currency)) {\n newAvailableFields = currentAvailableFields.map((item) => {\n if (item.PropertyKey === 'BranchCode') {\n Object.assign(item, { AllowSearch: false });\n } else if (item.PropertyKey === 'BankCode') {\n Object.assign(item, { AllowSearch: true });\n }\n return item;\n });\n return newAvailableFields;\n }\n return currentAvailableFields;\n};\n\nconst getLookupField = (branchDetails) => {\n let lookupFieldName = null;\n const lookupField = branchDetails.find(\n (item) => item.props.type === 'lookup' && item.visible === true,\n );\n if (lookupField) {\n lookupFieldName = lookupField.props.name;\n }\n return lookupFieldName;\n};\n\nconst attachHandleCallBackToLookup = (branchDetails, handleCallBack) => {\n const newBranchDetails = branchDetails.map((item) =>\n item.props.type === 'lookup' ? { ...item, handleCallBack } : item,\n );\n return newBranchDetails;\n};\n\nconst getFields = (availableFields, includedFieldKey, country, currency) =>\n availableFields\n .filter((item) => dynamicFields[includedFieldKey].indexOf(item.PropertyKeyHelp) >= 0)\n .map((item) => getFormItem(item, country, currency));\n\nconst getLookupDetails = (lookupDetails) => ({\n Address1: lookupDetails.Address1,\n Address2: lookupDetails.Address2,\n BankName: lookupDetails.BankName,\n BranchName: lookupDetails.BranchName,\n City: lookupDetails.City,\n StateFull: lookupDetails.StateFull,\n PostCode: lookupDetails.PostCode,\n});\n\nconst getLookupOptions = (lookupDetails) => ({\n Address1: lookupDetails.Address1,\n Address2: lookupDetails.Address2,\n BankName: lookupDetails.BankName,\n BranchName: lookupDetails.BranchName || lookupDetails.City,\n City: lookupDetails.City,\n StateFull: lookupDetails.StateFull,\n PostCode: lookupDetails.PostCode,\n});\n\nconst updateTemplate = (branchFields, paymentOption) => {\n let fieldName = null;\n\n if (paymentOption === paymentOptions.BankAccount) {\n fieldName = 'BranchCode';\n } else if (paymentOption === paymentOptions.CreditCard) {\n fieldName = 'SWIFT';\n } else {\n fieldName = branchFields.find((f) => f.lookup === 'lookup').name;\n }\n\n const updatedFields = branchFields.map((item) => ({\n ...item,\n visible: item.name === fieldName,\n }));\n\n return updatedFields;\n};\n\nconst getTemplateForLS = (template) => {\n if (template && template.AvailableFields) {\n const availableFields = template.AvailableFields;\n const supplementaryFields = template.SupplementaryFields;\n const country = template.Country;\n const currency = template.Currency;\n const { usdEftIsEnabled } = template;\n const newAvailableFields = updateAvailableFields(\n availableFields,\n country,\n currency,\n usdEftIsEnabled,\n );\n const branchFields = getFields(newAvailableFields, 'BranchFields', country, currency);\n const accountFields = getFields(newAvailableFields, 'AccountFields', country, currency);\n const newAccountFields = differenceWith(accountFields, branchFields, isEqual);\n const newTemplate = {\n BranchFields: branchFields,\n BankFields: getFields(newAvailableFields, 'BankFields', country, currency),\n AccountFields: newAccountFields,\n SupplementaryFields: getFields(\n supplementaryFields,\n 'SupplementaryFields',\n country,\n currency,\n ),\n Country: country,\n Currency: currency,\n HasCreditCardOption: template.HasCreditCardOption,\n HasOptions: hasOptions(country, currency),\n LookUpField: getLookupField(branchFields),\n };\n\n return newTemplate;\n }\n return null;\n};\n\nexport {\n getFields,\n getFormItem,\n getInstructionMessage,\n formatDisplay,\n getTypeForTheField,\n getTemplateForLS,\n updateAvailableFields,\n getLookupField,\n attachHandleCallBackToLookup,\n getLookupDetails,\n getLookupOptions,\n updateTemplate,\n};\n","var baseIndexOf = require('./_baseIndexOf');\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIsNaN = require('./_baseIsNaN'),\n strictIndexOf = require('./_strictIndexOf');\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseFindIndex;\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nmodule.exports = baseIsNaN;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = strictIndexOf;\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arrayIncludesWith;\n","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nmodule.exports = last;\n","var baseDifference = require('./_baseDifference'),\n baseFlatten = require('./_baseFlatten'),\n baseRest = require('./_baseRest'),\n isArrayLikeObject = require('./isArrayLikeObject');\n\n/**\n * Creates an array of `array` values not included in the other given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * **Note:** Unlike `_.pullAll`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.without, _.xor\n * @example\n *\n * _.difference([2, 1], [2, 3]);\n * // => [1]\n */\nvar difference = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))\n : [];\n});\n\nmodule.exports = difference;\n","var baseValues = require('./_baseValues'),\n keys = require('./keys');\n\n/**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\nfunction values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n}\n\nmodule.exports = values;\n","var arrayMap = require('./_arrayMap');\n\n/**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\nfunction baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n}\n\nmodule.exports = baseValues;\n","export { default } from './Container';\n","import { connect, Dispatch } from 'react-redux';\nimport { formValueSelector, change } from 'redux-form';\nimport Component, { ComponentProps } from './Component';\nimport { partition, IRoot } from '../reducers';\nimport BankAccountActor from '../actors';\nimport { IFormFields, paymentOptions } from '../constants';\n\nconst mapStateToProps = (state: IRoot, ownProps: ComponentProps) => {\n const selector = formValueSelector(ownProps.formName);\n const bankAccountDetails = {\n country: selector(\n state,\n \"bankDetails.bankCountry\",\n ),\n currency: selector(\n state,\n \"bankDetails.bankCurrency\",\n ),\n bankDetailsTemplate: state[partition].getIn(['bankFields']) || [],\n accountDetailsTemplate: state[partition].getIn(['accountFields']) || [],\n branchDetailsTemplate: state[partition].getIn(['branchFields']) || [],\n supplementaryDetailsTemplate: state[partition].getIn(['supplementaryFields']) || [],\n branchCode: selector(\n state,\n \"bankDetails.BranchCode\",\n ),\n swift: selector(\n state,\n \"bankDetails.SWIFT\",\n ),\n bankCode: selector(\n state,\n \"bankDetails.BankCode\",\n ),\n accountType: selector(\n state,\n \"bankDetails.AccountType\",\n ),\n };\n return {\n bankAccountDetails,\n bankCountry: selector(\n state,\n \"bankDetails.bankCountry\",\n ),\n bankCurrency: selector(\n state,\n \"bankDetails.bankCurrency\",\n ),\n bankPaymentOption:\n selector(\n state,\n \"bankDetails.bankPaymentOption\",\n ) || paymentOptions.BankAccount,\n classification: selector(\n state,\n \"recipientBasics.classification\",\n ),\n recipientId: selector(\n state,\n \"recipientBasics.recipientId\",\n ),\n lookupResult: state[partition].getIn([\"lookupResult\"]),\n hasLookupError: state[partition].getIn([\"hasLookupError\"]),\n };\n};\n\nconst mapDispatchToProps = (dispatch: Dispatch<{}>, ownProps: ComponentProps) => {\n const actor = new BankAccountActor(dispatch, ownProps.formName);\n return {\n actor,\n selectBankAccount: () =>\n dispatch(\n change(\n ownProps.formName,\n \"bankDetails.bankPaymentOption\",\n 'BankAccount',\n ),\n ),\n clearBankAccountPaymentOptions: () => {\n dispatch(\n change(\n ownProps.formName,\n \"bankDetails.bankPaymentOption\",\n '',\n ),\n );\n },\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Component);\n","import * as React from 'react';\nimport SimpleField from 'components/Form/SimpleField';\nimport RadioButtonGroup from 'components/Form/RadioButtonGroup';\nimport DynamicForm from 'components/Form/DynamicForm';\nimport { i18n } from 'libs/i18n';\nimport Instructions from 'components/Form/Instructions';\nimport * as validation from 'validation';\nimport { classificationOptions } from 'components/AddOrEditRecipient/constants';\nimport { Verification } from 'libs/@types/verification';\nimport { COUNTRY_AU, COUNTRY_NZ, COUNTRY_US } from 'constants/countries';\nimport {\n countryCodes,\n currencyCodes,\n optionsForAUDCountries,\n optionsForNZDCountries,\n optionsForUSDCountries,\n IBankDetails,\n IRecipientBasic,\n paymentOptions,\n comboFields,\n} from '../constants';\nimport BankAccountActor from '../actors';\nimport { constructFields, getRoutingCode } from './helper';\n\nconst i18nPrefix = 'recipient-bank';\nconst i18nPaymentOptionPrefix = `${i18nPrefix}-payment-option`;\n\nconst accountTypes = {\n props: {\n id: \"bankPaymentOption\",\n required: true,\n type: 'radio',\n },\n optionsAU: [\n {\n label: i18n(`${i18nPaymentOptionPrefix}-bsb-label`),\n id: paymentOptions.BankAccount,\n },\n {\n label: i18n(`${i18nPaymentOptionPrefix}-credit-card-label`),\n id: paymentOptions.CreditCard,\n },\n ],\n optionsNZ: [\n {\n label: i18n(`${i18nPaymentOptionPrefix}-branchcode-nz-label`),\n id: paymentOptions.BankAccount,\n },\n {\n label: i18n(`${i18nPaymentOptionPrefix}-credit-card-label`),\n id: paymentOptions.CreditCard,\n },\n ],\n optionsUS: [\n {\n label: i18n(`${i18nPaymentOptionPrefix}-fedwire-label`),\n id: paymentOptions.BankAccount,\n },\n {\n label: i18n(`${i18nPaymentOptionPrefix}-swift-label`),\n id: paymentOptions.CreditCard,\n },\n ],\n optionsZA: [\n {\n label: i18n(`${i18nPaymentOptionPrefix}-branchcode-label`),\n id: paymentOptions.BankAccount,\n },\n {\n label: i18n(`${i18nPaymentOptionPrefix}-swift-label`),\n id: paymentOptions.CreditCard,\n },\n ],\n};\n\nexport type ComponentProps = {\n formName: string;\n bankAccountDetails: any;\n actor: BankAccountActor;\n recipientId: IRecipientBasic['recipientId'];\n hasLookupError: boolean;\n lookupResult?: Verification.IBankDetail[];\n canShowBankDetails?: boolean;\n usdEftIsEnabled?: boolean;\n classification: string;\n selectBankAccount: () => {};\n clearBankAccountPaymentOptions: (arg1: string) => {};\n} & IBankDetails;\n\nconst getPaymentOptions = (country: string, currency: string) => {\n if (currency === currencyCodes.AUD && optionsForAUDCountries.indexOf(country) >= 0) {\n return accountTypes.optionsAU;\n }\n if (currency === currencyCodes.NZD && optionsForNZDCountries.indexOf(country) >= 0) {\n return accountTypes.optionsNZ;\n }\n if (currency === currencyCodes.USD && optionsForUSDCountries.indexOf(country) >= 0) {\n return accountTypes.optionsUS;\n }\n if (currency === currencyCodes.ZAR && country === countryCodes.ZA) {\n return accountTypes.optionsZA;\n }\n return null;\n};\n\nconst shouldShowUSAccount = (\n country: string,\n currency: string,\n paymentOption: string,\n classification: string,\n) =>\n country === COUNTRY_US &&\n currency === currencyCodes.USD &&\n paymentOption === paymentOptions.BankAccount &&\n classification === classificationOptions.ME;\n\nexport const USAccountType = () => {\n const options = [\n {\n label: i18n('recipient-bank-account-type-check'),\n id: 'C',\n },\n {\n label: i18n('recipient-bank-account-type-savings'),\n id: 'S',\n },\n ];\n\n return (\n \n );\n};\n\nclass Component extends React.Component {\n static defaultProps: Partial = {\n hasLookupError: false,\n };\n\n componentDidUpdate(prevProps: ComponentProps) {\n const recipientHasnotChanged = this.props.recipientId === prevProps.recipientId;\n const {\n actor,\n selectBankAccount,\n bankCountry,\n bankCurrency,\n bankPaymentOption,\n clearBankAccountPaymentOptions,\n canShowBankDetails,\n usdEftIsEnabled,\n } = this.props;\n actor.handlePaymentOptionChange(\n prevProps,\n this.props,\n recipientHasnotChanged,\n usdEftIsEnabled,\n );\n actor.handleLookupResult(prevProps.lookupResult, this.props.lookupResult);\n // Todo: once the partnerUserID is changed for prod, we should change based on what Partnership team's decides.\n if (!canShowBankDetails && prevProps.bankCountry !== bankCountry) {\n if (bankCountry === COUNTRY_AU || bankCountry === COUNTRY_NZ) {\n selectBankAccount();\n } else if (bankPaymentOption) {\n // user has already selected country either au or nz previously,\n // but now changes which in this bankPayment will have value as \"BankOptions\"\n clearBankAccountPaymentOptions(bankPaymentOption);\n }\n }\n\n if (!canShowBankDetails && bankCurrency !== prevProps.bankCurrency) {\n if (bankCountry === COUNTRY_US && bankCurrency === currencyCodes.USD) {\n selectBankAccount();\n } else if (bankPaymentOption) {\n clearBankAccountPaymentOptions(bankPaymentOption);\n }\n }\n }\n\n shouldBankDetailsDisplay() {\n const { canShowBankDetails, bankAccountDetails } = this.props;\n const { country, currency } = bankAccountDetails;\n\n if (!canShowBankDetails) {\n if (country === COUNTRY_AU || country === COUNTRY_NZ) {\n return false;\n }\n if (country === COUNTRY_US && currency === currencyCodes.USD) {\n return false;\n }\n }\n return country && currency;\n }\n\n render() {\n const {\n bankAccountDetails,\n actor,\n bankCountry,\n bankPaymentOption,\n bankCurrency,\n classification,\n usdEftIsEnabled,\n } = this.props;\n const { country, currency } = bankAccountDetails;\n const radioButtonPaymentOptions = getPaymentOptions(country, currency);\n const routingCode = getRoutingCode(country, currency, bankAccountDetails, usdEftIsEnabled);\n const fields = constructFields(\n bankAccountDetails,\n comboFields,\n actor.handleLookupBankPressed(country, currency, routingCode, usdEftIsEnabled),\n );\n\n return country && currency ? (\n
\n {this.shouldBankDetailsDisplay() && radioButtonPaymentOptions && (\n \n )}\n {this.props.hasLookupError && (\n \n )}\n {shouldShowUSAccount(\n bankCountry,\n bankCurrency,\n bankPaymentOption,\n classification,\n ) && }\n \n
\n ) : null;\n }\n}\n\nexport default Component;\n","export { default } from './Container';\n","import { connect } from 'react-redux';\nimport { formValueSelector } from 'redux-form';\nimport Component, { ComponentProps } from './Component';\nimport { IRoot } from '../reducers';\nimport { IFormFields, countriesWithMandatoryStates } from '../constants';\n\nconst mapStateToProps = (state: IRoot, ownProps: ComponentProps) => {\n const selector = formValueSelector(ownProps.formName);\n\n return {\n isStateMandatory: countriesWithMandatoryStates.includes(\n selector(\n state,\n \"bankDetails.bankCountry\",\n ),\n ),\n };\n};\n\nexport default connect(mapStateToProps, null)(Component);\n","import * as React from 'react';\nimport SimpleField from 'components/Form/SimpleField';\nimport { i18n } from 'libs/i18n';\nimport * as validation from 'validation';\nimport { IBankDetails } from '../constants';\n\nconst i18nPrefix = 'recipient-bank';\n\nexport type ComponentProps = {\n isStateMandatory?: boolean;\n formName: string;\n canShowDeclarationText?: boolean;\n};\n\nconst Component = ({ isStateMandatory, canShowDeclarationText }: ComponentProps) => (\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n {canShowDeclarationText && (\n
\n

{i18n('partnership-recipient-edit-text')}

\n
\n )}\n
\n
\n);\n\nexport default Component;\n","import { fromJS } from 'immutable';\nimport { IFormFields, IBankDetails } from './constants';\nimport { actionTypes } from './reducers';\nimport { Action } from 'redux-actions';\nimport { reducer as formReducer } from 'redux-form';\n\nconst dynamicFields: object = {\n [`${\"AccountNo\"}`]: '',\n [`${\"AccountSuffix\"}`]: '',\n [`${\"BankCode\"}`]: '',\n [`${\"BankName\"}`]: '',\n [`${\"BranchCode\"}`]: '',\n [`${\"BranchName\"}`]: '',\n [`${\"SWIFT\"}`]: '',\n [`${\"address.line1\"}`]: '',\n [`${\"address.city\"}`]: '',\n [`${\"address.state\"}`]: '',\n [`${\"address.postcode\"}`]: '',\n};\n\nconst clearBankReducer = (state: object, action: Action) => {\n if (action.type === actionTypes.CLEAR_BANK_FIELDS && action.payload) {\n return formReducer.plugin({\n [action.payload]: (formState, formAction) => {\n let newState = fromJS(formState);\n Object.keys(dynamicFields).forEach((field) => {\n const fields = field.includes('.') ? field.split('.') : field;\n const fieldPath = ['values', \"bankDetails\"].concat(\n fields,\n );\n newState = newState.deleteIn(fieldPath);\n });\n const finalState = newState.toJS();\n return finalState;\n },\n })(state, action);\n }\n return formReducer(state, action);\n};\n\nexport default clearBankReducer;\n","import { handleActions } from 'redux-actions';\nimport { Map } from 'immutable';\nimport { PARTITION } from './constants';\nimport { actionTypes } from './actions';\n\nexport interface IResponse {\n SecurityAnswer: string;\n DOB: string;\n Valid?: boolean;\n}\n\nexport interface IPartition {\n securityQuestion: string | null;\n result: IResponse;\n}\n\nconst initialState: IPartition = {\n securityQuestion: null,\n result: {\n SecurityAnswer: '',\n DOB: '',\n Valid: false,\n },\n};\n\nconst reducers = handleActions, { SecurityQuestion: string }>(\n {\n [`${actionTypes.FETCH_SECURITY_QUESTION}_FULFILLED`]: (state: any, { payload }) =>\n state.set(\n \"securityQuestion\",\n payload!.SecurityQuestion,\n ),\n [`${actionTypes.VERIFY_SECURITY_INFO}_FULFILLED`]: (state: any, { payload }) =>\n state.set(\n \"result\",\n payload,\n ),\n },\n Map(initialState),\n);\n\nexport default {\n [PARTITION]: reducers,\n};\n","export { default as ReviewKycDetails } from './Container';\n","import { connect, Dispatch } from 'react-redux';\nimport { bindActionCreators } from 'redux';\nimport { closeModal } from 'components/ModalV2/reducer';\nimport Component from './Component';\nimport headerActions from '../../../HeaderV2/actions';\nimport { IPartition } from '../../../HeaderV2/types';\nimport { PARTITION } from '../../../HeaderV2/constants';\nimport {\n getInitMfaErrorHandlingOutcome,\n IInitMfaErrorHandlingOutcome,\n} from '../../../../helpers/mfaErrorHandling';\nimport { mfaFlowActions } from '../../../MFA/MfaFlow';\nimport { isOnIntroduction } from '../../../Partnerships/reducers';\nimport {\n IPartition as PARTNERSHIP_IPARTITION,\n PARTITION as PARTNERSHIP_PARTITION,\n} from '../../../Partnerships/constants';\nimport { goToExitConfirm, determineBankAccountRoute } from '../../../Partnerships/actions';\n\nexport interface IContainerProps extends Partial, IInitMfaErrorHandlingOutcome {}\n\nconst mapStateToProps = (state: any): IContainerProps => {\n const initMfaErrorHandlingOutcome = getInitMfaErrorHandlingOutcome(state, true);\n const partnershipState = state[PARTNERSHIP_PARTITION];\n const partnershipCurrentRoute = \"currentRoute\";\n\n return {\n ...initMfaErrorHandlingOutcome,\n User: state[PARTITION].get(\"User\"),\n Occupation: state[PARTITION].get(\"Occupation\"),\n Addresses: state[PARTITION].get(\"Addresses\"),\n Contacts: state[PARTITION].get(\"Contacts\"),\n OnlineSalesKycStatus: state[PARTITION].get(\n \"OnlineSalesKycStatus\",\n ),\n isAddContactHistorySucceed: state[PARTITION].get(\n \"isAddContactHistorySucceed\",\n ),\n isOnPartnershipIntroduction: isOnIntroduction(state),\n partnershipCurrentRoute: partnershipState.get(partnershipCurrentRoute),\n };\n};\n\nexport const actions = {\n goToExitConfirm,\n determineBankAccountRoute,\n ...mfaFlowActions,\n closeModal,\n addContactHistory: headerActions.addContactHistory,\n};\n\nconst mapDispatchToProps = (dispatch: Dispatch) =>\n bindActionCreators(actions, dispatch);\n\nconst ReviewKycDetailsContainer = connect(mapStateToProps, mapDispatchToProps)(Component);\n\nReviewKycDetailsContainer.displayName = 'ReviewKycDetailsContainer';\n\nexport default ReviewKycDetailsContainer;\n","import * as React from 'react';\nimport { i18n } from 'libs/i18n';\nimport { formatPhoneNumber } from 'libs/phoneNumber';\nimport { formatAddress } from 'libs/address';\nimport ModalFormErrorMessage from 'components/ModalFormErrorMessage';\nimport { ContactHistoryNoteType, SalesKycNote } from '../../../HeaderV2/constants';\nimport { actions, IContainerProps } from './Container';\nimport { OnlineKycFlowEnum, OnlineKycStepEnum } from '../../constants';\nimport ModalContentContainer from 'components/ModalV2/ModalContent/ModalContentContainer';\nimport { PartnershipNav } from '../../../Partnerships/constants';\n\ninterface IProps {\n closeModal: () => void;\n onlineKycFlow?: OnlineKycFlowEnum;\n updateOnlineKycStep: (step: OnlineKycStepEnum) => void;\n isOnPartnershipIntroduction: boolean;\n goToExitConfirm: (preRoute: PartnershipNav) => void;\n partnershipCurrentRoute: PartnershipNav;\n}\n\ntype ComponentProps = IProps & IContainerProps & typeof actions;\n\nclass ReviewKycDetails extends React.Component {\n static displayName = 'ReviewKycDetails';\n\n private addContactHistory = () => {\n this.props.addContactHistory(SalesKycNote, ContactHistoryNoteType.SalesKyc);\n };\n\n private onCrossClick = () => {\n const {\n onlineKycFlow,\n updateOnlineKycStep,\n closeModal,\n resetMfaFlowState,\n isOnPartnershipIntroduction,\n goToExitConfirm,\n partnershipCurrentRoute,\n } = this.props;\n\n if (isOnPartnershipIntroduction) {\n goToExitConfirm(partnershipCurrentRoute);\n }\n if (onlineKycFlow === OnlineKycFlowEnum.NEW_TRANSFER_BUTTON) {\n updateOnlineKycStep(OnlineKycStepEnum.EXIT_NOTIFICATION);\n } else {\n resetMfaFlowState();\n closeModal();\n }\n };\n\n componentDidMount() {\n this.props.resetMfaFlowState();\n }\n\n componentDidUpdate(): void {\n const {\n isOnPartnershipIntroduction,\n isAddContactHistorySucceed,\n closeModal,\n determineBankAccountRoute,\n } = this.props;\n if (isAddContactHistorySucceed !== undefined && !isOnPartnershipIntroduction) {\n closeModal();\n }\n if (isAddContactHistorySucceed !== undefined && isOnPartnershipIntroduction) {\n determineBankAccountRoute();\n }\n }\n\n getEnableKycUpliftFlag = () => {\n if (window && window.ofx && window.ofx.config && window.ofx.config.featureFlags) {\n const enableKycUplift = window.ofx.config.featureFlags['enable-kyc-uplift'];\n if (typeof enableKycUplift === 'object') {\n return enableKycUplift.asBool;\n }\n return enableKycUplift;\n }\n return false;\n };\n\n render() {\n const {\n Addresses,\n Contacts,\n User,\n Occupation,\n updateOnlineKycStep,\n onlineKycFlow,\n errorMessageI18nKey,\n } = this.props;\n const enableKycUplift = this.getEnableKycUpliftFlag();\n // Todo: handle all empty props cases\n const homeAddress = Addresses.find((address) => address.Type === 'HomeAddress');\n const contactTelephoneNumbers = Contacts!.TelephoneNumbers.map((telephoneNumber) => {\n return (\n \n
{telephoneNumber.Type} number
\n
{formatPhoneNumber(telephoneNumber)}
\n
\n );\n });\n\n const header = (onlineKycFlowStep: OnlineKycFlowEnum | undefined): string =>\n onlineKycFlowStep === OnlineKycFlowEnum.NEW_TRANSFER_BUTTON\n ? i18n('online-kyc-review-kyc-detail-new-transfer-button-flow-header')\n : i18n('header-v2-review-your-account-details-header');\n\n const body = (\n \n {errorMessageI18nKey && (\n \n )}\n

{i18n('header-v2-review-your-account-details-details-1')}

\n

{i18n('header-v2-review-your-account-details-details-2')}

\n
\n
{i18n('header-v2-name')}
\n
{`${User.FirstName} ${User.LastName}`}
\n
{i18n('header-v2-occupation')}
\n
{`${Occupation}`}
\n
{i18n('header-v2-home-address')}
\n
{formatAddress(homeAddress, homeAddress!.Country)}
\n {contactTelephoneNumbers}\n
\n
\n );\n\n const bodyForKycUplift = (\n \n {errorMessageI18nKey && (\n \n )}\n

{i18n('header-v2-review-your-account-details-details-kyc-uplift-1')}

\n
\n );\n\n const footer = (\n
\n updateOnlineKycStep(OnlineKycStepEnum.PERSONAL_DETAIL_FORM)}\n >\n {i18n('header-v2-update-details')}\n \n \n {i18n('header-v2-confirm')}\n \n
\n );\n const footerForKycUplift = (\n
\n updateOnlineKycStep(OnlineKycStepEnum.PERSONAL_DETAIL_FORM)}\n >\n {i18n('header-v2-update-details-kyc-uplift')}\n \n
\n );\n return (\n \n {!enableKycUplift && (\n \n )}\n {enableKycUplift && (\n \n )}\n \n );\n }\n}\n\nexport default ReviewKycDetails;\n","import { connect, Dispatch } from 'react-redux';\nimport { reduxForm, formValueSelector, getFormValues } from 'redux-form';\nimport { bindActionCreators } from 'redux';\nimport { RefData } from 'libs/@types/refData';\nimport { Common } from 'libs/@types/common';\nimport { User } from 'libs/@types/user';\nimport { addressTypes, findAddressByType } from 'libs/address';\nimport { formatPhoneNumber, getPhoneNumberByType, phoneNumberTypes } from 'libs/phoneNumber';\nimport Component, { PersonalDetailComponentProps } from './Component';\nimport {\n FORM_NAME,\n PARTITION,\n PAYMENT_FREQUENCY,\n PAYMENT_REASONS,\n SOURCE_OF_FUNDS,\n SOURCE_OF_FUNDS_OTHER_CONDITION,\n SOURCE_OF_WEALTH,\n TRANSFER_RANGE,\n} from './constants';\nimport {\n PARTITION as HEADER_PARTITION,\n SalesKycNote,\n ContactHistoryNoteType,\n} from '../../../HeaderV2/constants';\nimport { IPartition as IHeaderPartition } from '../../../HeaderV2/types';\nimport { IPartition } from './reducer';\nimport personalDetailFormActions, { OnlineKycFormData } from './actions';\nimport { actions as prerequisitesActions } from '../../../Prerequisites/reducers';\nimport { IPartition as ISecurityQuestionsPartition } from '../../../SecurityQuestions/reducer';\nimport { PARTITION as SECURITY_QUESTIONS_PARTITION } from '../../../SecurityQuestions/constants';\nimport headerActions from '../../../HeaderV2/actions';\nimport { OnlineKycStepEnum } from '../../constants';\nimport { brands } from '../../../../_shared/constants';\nimport {\n IPartition as PARTNERSHIP_IPARTITION,\n PARTITION as PARTNERSHIP_PARTITION,\n PartnershipNav,\n} from '../../../Partnerships/constants';\nimport { determineBankAccountRoute, goToExitConfirm } from '../../../Partnerships/actions';\nimport { isOnIntroduction } from '../../../Partnerships/reducers';\nimport { cloneDeep as _cloneDeep } from 'lodash';\n\nconst getCountrySelectOptions = (countries: RefData.ICountry[]): Common.ISelect2[] => {\n const result: Common.ISelect2[] = [];\n const allCountries: Common.ITextValue[] = [];\n\n if (countries && countries.length > 0) {\n countries.forEach((item) => {\n const value = {\n value: item.IsoCountryCode,\n text: item.CountryName,\n };\n\n if (item.IsPopularCountry) {\n result.push({ hidden: true, ...value });\n }\n\n allCountries.push(value);\n });\n }\n\n result.push({ text: 'All', children: [], hidden: true });\n return result.concat(allCountries);\n};\n\nconst selector = formValueSelector(FORM_NAME);\n\nexport interface IContainerProps {\n verificationResult: {\n SecurityAnswer: string;\n DOB: string;\n };\n fullName: string;\n firstName: string;\n lastName: string;\n middleName: string;\n formValues: any;\n nationalities: any;\n occupationData: any;\n occupationCategories: any;\n occupationSubCategories: any;\n extraInfoMessage: string;\n supportedCurrencies: any;\n supportedToCurrencies: any;\n occupation: string;\n countrySelectOptions: Common.ISelect2[];\n Country: string;\n initialValues: {\n homeAddress?: {\n Type: string;\n StreetNumber: string;\n StreetName: string;\n StreetType: string;\n CitySuburb: string;\n StateProvince: string;\n Postcode: string;\n Country: string;\n };\n Country: string;\n email: string;\n mobileNumber: string;\n homeNumber: string;\n workNumber: string;\n nationality: string;\n amountToTransfer: string;\n currencyCustomerSends: any[];\n currencyRecipientGets: any[];\n transferFrequency: string;\n reasonForTransfer: string[];\n reasonForTransferDescription: string;\n sourceOfFunds: string;\n sourceOfFundsOther: string;\n sourceOfWealth: string[];\n sourceOfWealthDescription: string;\n };\n userInfo: User.User;\n isOnPartnershipIntroduction: boolean;\n partnershipCurrentRoute: PartnershipNav | null;\n userDetails: User.UserDetails;\n}\n\nconst mapStateToProps = (state: any): IContainerProps => {\n const partnershipState = state[PARTNERSHIP_PARTITION];\n\n const partnershipCurrentRoute = \"currentRoute\";\n\n const firstName = state[HEADER_PARTITION].getIn([\"User\"])[\n \"FirstName\"\n ];\n const lastName = state[HEADER_PARTITION].getIn([\"User\"])[\n \"LastName\"\n ];\n const middleName = state[HEADER_PARTITION].getIn([\"User\"])[\n \"MiddleName\"\n ];\n\n const userDetails = state[HEADER_PARTITION].getIn([\n \"UserDetails\",\n ]);\n const additionalUserInfo = userDetails ? userDetails.AdditionalUserInformation : {};\n\n const nationalities = state[PARTITION].getIn([\"Nationalities\"]);\n const allPhoneNumbers = state[HEADER_PARTITION].getIn([\n \"Contacts\",\n ])[\"TelephoneNumbers\"];\n const initMobileNumber = formatPhoneNumber(\n getPhoneNumberByType(allPhoneNumbers, phoneNumberTypes.Mobile),\n );\n const initHomeNumber = formatPhoneNumber(\n getPhoneNumberByType(allPhoneNumbers, phoneNumberTypes.Home),\n );\n const initWorkNumber = formatPhoneNumber(\n getPhoneNumberByType(allPhoneNumbers, phoneNumberTypes.Work),\n );\n const addresses = state[HEADER_PARTITION].get(\"Addresses\");\n const homeAddress = findAddressByType(addresses, addressTypes.Home);\n const occupationData = state[PARTITION].getIn([\"OccupationData\"]);\n const occupationCategories = state[PARTITION].getIn([\n \"OccupationCategories\",\n ]);\n let occupationSubCategories = state[PARTITION].getIn([\n \"occupationSubCategories\",\n ]);\n const extraInfoMessage = state[PARTITION].getIn([\n \"extraInfoMessage\",\n ]);\n const supportedCurrencies = state[PARTITION].getIn([\n \"fromCurrencies\",\n ]);\n const supportedToCurrencies = state[PARTITION].getIn([\n \"toCurrencies\",\n ]);\n\n const formValues = getFormValues(FORM_NAME)(state);\n const occupationCategory =\n occupationData &&\n occupationData.find(\n (category: { Name: any }) => category.Name === additionalUserInfo.Industry,\n );\n const industryId = occupationCategory && occupationCategory.Id;\n const occupationId = occupationCategory\n ? occupationCategory.Subcategories.find(\n (sub: { Name: any }) => sub.Name === additionalUserInfo.Occupation,\n ).Id\n : '';\n if (!occupationSubCategories || occupationSubCategories.length === 0) {\n occupationSubCategories =\n occupationData &&\n occupationData.find((category: { Id: any }) => category.Id === industryId)\n ? occupationData\n .find((category: { Id: any }) => category.Id === industryId)\n .Subcategories.map((item: { Id: { toString: () => any }; Name: any }) => ({\n value: item.Id.toString(),\n text: item.Name,\n }))\n : [];\n }\n \n if (\n formValues &&\n !formValues.occupationCategory &&\n occupationData &&\n occupationData.length > 0 &&\n occupationId\n ) {\n formValues.occupationCategory = industryId;\n formValues.occupationSubCategory = occupationId;\n formValues.occupationExtraInfo = additionalUserInfo.OccupationExtraInfo ?\n additionalUserInfo.OccupationExtraInfo : '';\n }\n\n let sourceOfWealth: string[] = [];\n if (\n additionalUserInfo &&\n additionalUserInfo.SourceOfWealth &&\n typeof additionalUserInfo.SourceOfWealth === 'string'\n ) {\n sourceOfWealth = additionalUserInfo.SourceOfWealth.split(';');\n if (formValues && !formValues.sourceOfWealth) {\n formValues.sourceOfWealth = SOURCE_OF_WEALTH.filter((x) =>\n sourceOfWealth.includes(x.value),\n );\n }\n }\n\n let currencyCustomerSends: any[] = [];\n if (additionalUserInfo && additionalUserInfo.CurrencyCustomerSends) {\n currencyCustomerSends = additionalUserInfo.CurrencyCustomerSends.split(';');\n if (formValues && !formValues.currencyCustomerSends && supportedCurrencies) {\n formValues.currencyCustomerSends = supportedCurrencies.filter((x: { value: any }) =>\n currencyCustomerSends.includes(x.value),\n );\n }\n }\n\n let currencyRecipientGets: any[] = [];\n if (additionalUserInfo && additionalUserInfo.CurrencyRecipientGets) {\n currencyRecipientGets = additionalUserInfo.CurrencyRecipientGets.split(';');\n if (formValues && !formValues.currencyRecipientGets && supportedToCurrencies) {\n formValues.currencyRecipientGets = supportedToCurrencies.filter(\n (x: { value: any }) => currencyRecipientGets.includes(x.value),\n );\n }\n }\n\n let reasonForTransfer: string[] = [];\n if (additionalUserInfo && additionalUserInfo.ReasonForTransfer) {\n reasonForTransfer = additionalUserInfo.ReasonForTransfer.split(';');\n if (formValues && !formValues.reasonForTransfer) {\n formValues.reasonForTransfer = PAYMENT_REASONS.filter((x) =>\n reasonForTransfer.includes(x.value),\n );\n }\n }\n\n if (\n formValues &&\n !formValues.sourceOfFunds &&\n additionalUserInfo &&\n additionalUserInfo.SourceOfFunds\n ) {\n const sourceOfFundMatched = SOURCE_OF_FUNDS.find(\n (x) => x.value === additionalUserInfo.SourceOfFunds,\n );\n if (sourceOfFundMatched) {\n formValues.sourceOfFunds = sourceOfFundMatched;\n }\n }\n\n const amountToTransfer = additionalUserInfo && additionalUserInfo.AmountToTransfer;\n const validAmountToTransfer = TRANSFER_RANGE.some(range => range.value === amountToTransfer) ? amountToTransfer : '';\n\n const transferFrequency = additionalUserInfo && additionalUserInfo.TransferFrequency;\n const validTransferFrequency = PAYMENT_FREQUENCY.some(freq => freq.value === transferFrequency) ? transferFrequency : '';\n\n const sourceOfFunds = additionalUserInfo && additionalUserInfo.SourceOfFunds;\n const validSourceOfFunds = SOURCE_OF_FUNDS.some(fund => fund.value === sourceOfFunds) ? sourceOfFunds : '';\n\n return {\n verificationResult: state[SECURITY_QUESTIONS_PARTITION].get(\n \"result\",\n ),\n fullName: `${firstName} ${lastName}`,\n firstName,\n lastName,\n middleName,\n formValues,\n nationalities,\n occupationData,\n occupationCategories,\n occupationSubCategories,\n extraInfoMessage,\n supportedCurrencies,\n supportedToCurrencies,\n occupation:\n state[HEADER_PARTITION].getIn([\"Occupation\"]) || '',\n countrySelectOptions: getCountrySelectOptions(\n state[PARTITION].getIn([\"Countries\"]),\n ),\n Country: selector(\n state,\n \"Country\",\n ),\n userInfo: state[HEADER_PARTITION].getIn([\"User\"]),\n initialValues: {\n homeAddress,\n Country: homeAddress ? homeAddress.Country : '',\n email:\n state[HEADER_PARTITION].getIn([\"Contacts\"])[\n \"Email\"\n ] || '',\n mobileNumber: initMobileNumber || '',\n homeNumber: initHomeNumber || '',\n workNumber: initWorkNumber || '',\n nationality: userDetails ? userDetails.Nationality : '',\n amountToTransfer: validAmountToTransfer,\n currencyCustomerSends,\n currencyRecipientGets,\n transferFrequency: validTransferFrequency,\n reasonForTransfer,\n reasonForTransferDescription:\n (additionalUserInfo && additionalUserInfo.ReasonForTransferDescription) || '',\n sourceOfFunds: validSourceOfFunds,\n sourceOfFundsOther:\n (additionalUserInfo && additionalUserInfo.SourceOfFundsDetails) || '',\n sourceOfWealth,\n sourceOfWealthDescription:\n (additionalUserInfo && additionalUserInfo.SourceOfWealthDescription) || '',\n },\n isOnPartnershipIntroduction: isOnIntroduction(state),\n partnershipCurrentRoute: partnershipState.get(partnershipCurrentRoute),\n userDetails,\n };\n};\n\nexport const actions = {\n ...personalDetailFormActions,\n ...prerequisitesActions,\n goToExitConfirm,\n};\n\nconst mapDispatchToProps = (dispatch: Dispatch) => {\n // Return the bound action creators\n return {\n ...bindActionCreators(actions, dispatch),\n dispatch,\n };\n};\n\nconst processMultiSelectField = (field: any) => {\n if (field) {\n return field.map((item: any) => (typeof item === 'string' ? item : item.value)).join(';');\n }\n return '';\n};\n\nconst processMultiSelectValues = (formValues: any) => {\n if (formValues) {\n formValues.currencyRecipientGets = processMultiSelectField(\n formValues.currencyRecipientGets,\n );\n formValues.currencyCustomerSends = processMultiSelectField(\n formValues.currencyCustomerSends,\n );\n formValues.reasonForTransfer = processMultiSelectField(formValues.reasonForTransfer);\n formValues.sourceOfWealth = processMultiSelectField(formValues.sourceOfWealth);\n }\n};\n\nconst checkOccupationExtraInfo = (formValues: any, props: any) => {\n if (formValues && formValues.occupationCategory !== 35 && formValues.occupationSubCategory) {\n const occupationSubCategoryMatch = props.occupationSubCategories.find((x: { value: any; }) => x.value === formValues.occupationSubCategory.toString());\n const occupationSubCategoryText = occupationSubCategoryMatch ? occupationSubCategoryMatch.text : '';\n if (occupationSubCategoryText && occupationSubCategoryText.indexOf('Other') === -1) {\n formValues.occupationExtraInfo = '';\n }\n }\n};\n\nconst Form = reduxForm({\n form: FORM_NAME,\n onSubmit: (\n formData: OnlineKycFormData,\n dispatch: Dispatch,\n props: PersonalDetailComponentProps,\n ) => {\n const { SecurityAnswer, DOB } = props.verificationResult;\n if (!SOURCE_OF_FUNDS_OTHER_CONDITION.some(\n (x: { value: string }) => x.value === formData.sourceOfFunds,\n )) {\n formData.sourceOfFundsOther = 'Yes';\n }\n const payload = _cloneDeep(formData);\n if (formData.enableKycUplift && payload) {\n processMultiSelectValues(payload);\n checkOccupationExtraInfo(payload, props);\n }\n const action = formData.enableKycUplift ? actions.updateOnlineKYCUplift : actions.updateOnlineKYC;\n return dispatch(action(payload, { SecurityAnswer, DOB }));\n },\n onSubmitSuccess: (\n result: {},\n dispatch: Dispatch,\n props: PersonalDetailComponentProps,\n ) => {\n const { homeAddress, email, homeNumber, mobileNumber, workNumber } = props.initialValues;\n const { userInfo, isOnPartnershipIntroduction } = props;\n const initialUserDetails = {\n Address: homeAddress,\n Email: email,\n Mobile: mobileNumber,\n WorkNumber: workNumber,\n HomeNumber: homeNumber,\n };\n\n const customerDetails = {\n UserID: userInfo.CustomerReferenceNumber.toString(),\n UserFirstName: userInfo.FirstName,\n LegalEntity: brands[userInfo.Brand],\n ID: userInfo.Id,\n ContactKey: email,\n };\n\n if (props.formValues) {\n processMultiSelectValues(props.formValues);\n }\n\n let snsPayload;\n\n if (props.formValues && props.formValues.homeAddress) {\n const occupationCategory = props.occupationCategories.find((x: { value: any; }) => x.value === props.formValues.occupationCategory.toString());\n const occupationCategoryText = occupationCategory ? occupationCategory.text : '';\n\n const occupationSubCategory = props.occupationSubCategories.find((x: { value: any; }) => x.value === props.formValues.occupationSubCategory.toString());\n const occupationSubCategoryText = occupationSubCategory ? occupationSubCategory.text : '';\n\n snsPayload = {\n GUID: customerDetails.ID,\n Nationality: props.formValues.nationality,\n OccupationName: occupationCategoryText,\n OccupationInfo: occupationSubCategoryText,\n OccupationExtraInfo: props.formValues.occupationExtraInfo,\n Address: {\n Floor: props.formValues.homeAddress.Floor,\n Block: props.formValues.homeAddress.Block,\n Premise: props.formValues.homeAddress.Premise,\n StreetDirection: props.formValues.homeAddress.StreetDirection,\n UnitType: props.formValues.homeAddress.UnitType,\n UnitNumber: props.formValues.homeAddress.UnitNumber,\n StreetNumber: props.formValues.homeAddress.StreetNumber,\n StreetName: props.formValues.homeAddress.StreetName,\n StreetType: props.formValues.homeAddress.StreetType,\n CitySuburb: props.formValues.homeAddress.CitySuburb,\n StateProvince: props.formValues.homeAddress.StateProvince,\n Postcode: props.formValues.homeAddress.Postcode,\n Country: props.formValues.homeAddress.Country,\n QASFormatURL: props.formValues.homeAddress ? props.formValues.homeAddress.QASFormatURL : '',\n Type: props.formValues.homeAddress.Type,\n },\n KYC: {\n KycType: \"Digital\",\n AmountToTransfer: props.formValues.amountToTransfer,\n CurrencyCustomerSends: props.formValues.currencyCustomerSends.split(';'),\n TransferFrequency: props.formValues.transferFrequency,\n CurrencyRecipientGets: props.formValues.currencyRecipientGets.split(';'),\n ReasonForTransfer: props.formValues.reasonForTransfer.split(';'),\n ReasonForTransferDescription: props.formValues.reasonForTransferDescription,\n SourceOfFunds: props.formValues.sourceOfFunds,\n SourceofFundsDetails: SOURCE_OF_FUNDS_OTHER_CONDITION.some(\n (x: { value: string }) => x.value === props.formValues.sourceOfFunds\n ) ? props.formValues.sourceOfFundsOther : 'Yes',\n SourceOfWealth: props.formValues.sourceOfWealth.split(';'),\n SourceOfWealthDescription: props.formValues.sourceOfWealthDescription,\n }\n };\n }\n\n dispatch(headerActions.addContactHistory(SalesKycNote, ContactHistoryNoteType.SalesKyc));\n props.updateOnlineKycStep(OnlineKycStepEnum.KYC_DETAILS);\n props.updatedUserDetailsAndSendEmail(initialUserDetails, customerDetails);\n props.fetchUserInfo();\n if (isOnPartnershipIntroduction) {\n dispatch(determineBankAccountRoute());\n return;\n }\n\n if (props.formValues && props.formValues.enableKycUplift) {\n const kycRefreshData = {\n ...snsPayload,\n eventType: 'ConsumerKYCRefreshUpdated',\n };\n dispatch(actions.pushKYCDataToSNS(kycRefreshData));\n }\n\n props.closeModal();\n },\n})(Component);\n\nconst PersonalDetailFormContainer = connect(mapStateToProps, mapDispatchToProps)(Form);\n\nPersonalDetailFormContainer.displayName = 'PersonalDetailFormContainer';\n\nexport default PersonalDetailFormContainer;\n","import * as React from 'react';\nimport i18n from 'libs/i18n';\nimport Address from 'components/Address';\nimport SimpleField from 'components/Form/SimpleField';\nimport Select2Wrapper from 'components/Form/Select/Select2Wrapper';\nimport Phone from 'components/Form/Phone';\nimport ModalContentContainer from 'components/ModalV2/ModalContent/ModalContentContainer';\nimport * as PhoneTypes from 'constants/PhoneTypes';\nimport * as validation from 'validation';\nimport { change as reduxFormChange, FormProps } from 'redux-form';\nimport { IFormData } from './types';\nimport { actions, IContainerProps } from './Container';\nimport { autoScrollToModalContent } from '../../../../helpers/autoScrolling';\nimport { OnlineKycStepEnum } from '../../constants';\nimport ldFlags from 'constants/ldFlags';\nimport {\n FeatureFlagsDecorator,\n IFeatureFlagsDecoratorChildrenProps,\n} from 'components/FeatureFlags';\nimport { isEnabledFeatureFlag } from 'libs/featureFlagLookUp';\nimport { renderField, OfxField } from 'components';\nimport { numbersAndNanEqual } from 'libs/number';\nimport {\n FORM_NAME,\n TRANSFER_RANGE,\n PAYMENT_FREQUENCY,\n PAYMENT_REASONS,\n SOURCE_OF_FUNDS,\n SOURCE_OF_FUNDS_OTHER_CONDITION,\n SOURCE_OF_WEALTH,\n MenuProps,\n} from './constants';\nimport MultiSelect from 'components/MultiSelect/MultiSelect';\n\nconst errorMsg = (error = '') => error;\nexport interface IProps extends IFeatureFlagsDecoratorChildrenProps {\n closeModal: () => void;\n updateOnlineKycStep: (step: OnlineKycStepEnum) => void;\n}\n\nexport type PersonalDetailComponentProps = IProps &\n IContainerProps &\n FormProps &\n typeof actions & {\n dispatch: (action: any) => void;\n };\ninterface Option {\n value: string;\n text: string;\n}\ninterface Option {\n value: string;\n text: string;\n}\ninterface IState {\n totalAvailablePhoneNumbers: number;\n currencyCustomerSends: Option[];\n currencyRecipientGets: Option[];\n reasonForTransfer: Option[];\n sourceOfWealth: Option[];\n selectedCurrencyUpdated: boolean;\n}\n\nconst maxPhoneNumberInputs = 3;\n\nconst renderOccupationCategories = renderField(\n {\n id: 'occupationCategory',\n placeholder: i18n(`personal-details-occupation-categories-placeholder`),\n className: 'form-control',\n required: true,\n type: 'select2',\n },\n i18n(`personal-details-industry`),\n { text: 'For security and compliance, please provide your current occupation.' },\n);\n\nexport const renderOccupationSubCategoriesField = renderField(\n {\n id: 'occupationSubCategory',\n placeholder: i18n(`personal-details-occupation-sub-categories-placeholder`),\n className: 'form-control',\n required: true,\n type: 'select2',\n },\n i18n(`personal-details-occupation`),\n);\n\nexport const renderExtraInfo = renderField(\n {\n id: 'extraInfo',\n className: 'form-control uia-extra-info',\n required: true,\n type: 'text',\n maxLength: 50,\n },\n i18n(`personal-details-occupation-other`),\n);\n\nexport const paymentReasonOther = renderField(\n {\n id: 'paymentReasonOther',\n className: 'form-control uia-extra-info',\n required: true,\n type: 'text',\n maxLength: 50,\n },\n i18n(`personal-details-describe-reason-for-payment`),\n);\n\nexport const sourceOfFundsOther = renderField(\n {\n id: 'sourceOfFundsOther',\n className: 'form-control uia-extra-info',\n required: true,\n type: 'text',\n maxLength: 50,\n },\n i18n(`personal-details-source-of-fund-other`),\n);\n\nexport const sourceOfWealthOther = renderField(\n {\n id: 'sourceOfWealthOther',\n className: 'form-control uia-extra-info',\n required: true,\n type: 'text',\n maxLength: 50,\n },\n i18n(`personal-details-source-of-wealth-other`),\n);\n\nconst formatNationality = (country: { id: string; element: any; text: any; }) => {\n if (country.id !== '') {\n return country.element.getAttribute('data-nationality');\n }\n\n return country.text;\n};\n\nconst renderNationality = renderField(\n {\n id: 'nationality',\n placeholder: i18n(`header-v2-update-confirm-personal-nationality-label`),\n type: 'select2',\n templateSelection: formatNationality,\n required: true,\n },\n i18n(`header-v2-update-confirm-personal-nationality-label`),\n);\n\nclass PersonalDetailForm extends React.Component {\n static displayName = 'PersonalDetailForm';\n\n constructor(props: any) {\n super(props);\n let initTotalAvailablePhoneNumbers = 1;\n const { initialValues } = this.props;\n if (initialValues.workNumber) {\n initTotalAvailablePhoneNumbers = 3;\n } else if (initialValues.homeNumber) {\n initTotalAvailablePhoneNumbers = 2;\n }\n this.state = {\n totalAvailablePhoneNumbers: initTotalAvailablePhoneNumbers,\n currencyCustomerSends: [],\n currencyRecipientGets: [],\n reasonForTransfer:\n initialValues && initialValues.reasonForTransfer\n ? PAYMENT_REASONS.filter((x) =>\n initialValues.reasonForTransfer.includes(x.value),\n )\n : [],\n sourceOfWealth:\n initialValues && initialValues.sourceOfWealth\n ? SOURCE_OF_WEALTH.filter((x) => initialValues.sourceOfWealth.includes(x.value))\n : [],\n selectedCurrencyUpdated: false,\n };\n }\n\n handleRemindLater = () => {\n const {\n closeModal,\n updateOnlineKycStep,\n isOnPartnershipIntroduction,\n goToExitConfirm,\n partnershipCurrentRoute,\n } = this.props;\n if (isOnPartnershipIntroduction) {\n goToExitConfirm(partnershipCurrentRoute);\n } else {\n closeModal();\n updateOnlineKycStep(OnlineKycStepEnum.KYC_DETAILS);\n }\n };\n\n getEnableKycUpliftFlag = () => {\n if (window.ofx.config && window.ofx.config.featureFlags) {\n const enableKycUplift = window.ofx.config.featureFlags['enable-kyc-uplift'];\n if (typeof enableKycUplift === 'object') {\n return enableKycUplift.asBool;\n }\n return enableKycUplift;\n }\n return false;\n };\n\n updateCurrencies = () => {\n const { initialValues, supportedCurrencies } = this.props;\n if (supportedCurrencies.length > 0 && !this.state.selectedCurrencyUpdated) {\n this.setState({\n selectedCurrencyUpdated: true,\n currencyCustomerSends: supportedCurrencies.filter((x: { value: string }) => {\n if (initialValues && initialValues.currencyCustomerSends) {\n return initialValues.currencyCustomerSends.includes(x.value);\n }\n return false;\n }),\n currencyRecipientGets: supportedCurrencies.filter((x: { value: string }) => {\n if (initialValues && initialValues.currencyRecipientGets) {\n return initialValues.currencyRecipientGets.includes(x.value);\n }\n return false;\n }),\n });\n }\n };\n\n componentDidMount() {\n autoScrollToModalContent();\n this.props.fetchCountries();\n this.props.fetchNationalitiesAction();\n this.props.fetchOccupationCategoriesAction();\n this.props.fetchFromCurrenciesAction();\n this.props.fetchToCurrenciesAction();\n\n const enableKycUpliftFlag = this.getEnableKycUpliftFlag();\n this.props.dispatch(reduxFormChange(FORM_NAME, 'enableKycUplift', enableKycUpliftFlag));\n\n this.updateCurrencies();\n }\n\n componentDidUpdate(prevProps: PersonalDetailComponentProps) {\n if (this.props.supportedCurrencies !== prevProps.supportedCurrencies) {\n this.updateCurrencies();\n }\n }\n\n componentWillReceiveProps(nextProps: PersonalDetailComponentProps) {\n const { selectOccupationCategoryAction, selectOccupationSubCategoryAction } = this.props;\n const formValues = this.props.formValues;\n const nextFormValues = nextProps.formValues;\n\n if (formValues && nextFormValues) {\n const nextOccupationCategory = nextProps.formValues.occupationCategory;\n const nextOccupationSubCategory = nextProps.formValues.occupationSubCategory;\n const nextPaymentFrequency = nextProps.formValues.paymentFrequency;\n\n const {\n occupationCategory,\n occupationSubCategory,\n paymentFrequency,\n } = this.props.formValues;\n\n if (!numbersAndNanEqual(occupationCategory, nextFormValues.occupationCategory)) {\n selectOccupationCategoryAction(nextOccupationCategory);\n this.resetField('occupationSubCategory');\n this.resetField('occupationExtraInfo');\n } else if (!numbersAndNanEqual(occupationSubCategory, nextOccupationSubCategory)) {\n selectOccupationSubCategoryAction(\n nextOccupationCategory,\n nextOccupationSubCategory,\n );\n this.resetField('occupationExtraInfo');\n } else if (!numbersAndNanEqual(paymentFrequency, nextPaymentFrequency)) {\n this.resetField('paymentFrequencyOther');\n }\n }\n }\n\n resetField(field: string) {\n const { untouch } = this.props;\n if (untouch) {\n this.props.dispatch(reduxFormChange(FORM_NAME, field, ''));\n untouch(FORM_NAME, field);\n }\n }\n\n addNewPhoneNumberInput = () => {\n if (this.state.totalAvailablePhoneNumbers < maxPhoneNumberInputs) {\n const newTotalAvailablePhoneNumbers = this.state.totalAvailablePhoneNumbers + 1;\n this.setState({\n totalAvailablePhoneNumbers: newTotalAvailablePhoneNumbers,\n });\n }\n };\n\n handleMultiSelectChange = (field: keyof IState) => (selectedOptions: any) => {\n this.setState(({ [field]: selectedOptions } as unknown) as Pick);\n this.props.dispatch(reduxFormChange(FORM_NAME, field, selectedOptions));\n };\n\n render() {\n const {\n handleSubmit,\n error,\n fullName,\n firstName,\n lastName,\n middleName,\n occupation,\n countrySelectOptions,\n Country,\n initialValues,\n isOnPartnershipIntroduction,\n nationalities,\n touch,\n occupationCategories,\n occupationSubCategories,\n extraInfoMessage,\n formValues,\n supportedCurrencies,\n supportedToCurrencies,\n } = this.props;\n\n const header = i18n('header-v2-update-personal-detail-header');\n const enableKycUplift = this.getEnableKycUpliftFlag();\n\n const body = (\n \n
\n

\n {i18n('header-v2-update-confirm-personal-name-label')}\n

\n

{fullName}

\n
\n
\n

\n {i18n('header-v2-update-confirm-personal-occupation-label')}\n

\n

{occupation}

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

\n {i18n('header-v2-update-personal-contact-header')}\n

\n
\n
\n \n \n {this.state.totalAvailablePhoneNumbers >= maxPhoneNumberInputs - 1 && (\n \n )}\n {this.state.totalAvailablePhoneNumbers === maxPhoneNumberInputs && (\n \n )}\n
\n {this.state.totalAvailablePhoneNumbers < maxPhoneNumberInputs && (\n
\n this.addNewPhoneNumberInput()}\n >\n + {i18n('header-v2-update-personal-contact-add-phone-number')}\n \n
\n )}\n
\n );\n\n const footer = (\n
\n {!isOnPartnershipIntroduction && (\n this.handleRemindLater()}\n >\n {i18n('header-v2-update-personal-detail-later')}\n \n )}\n \n
\n );\n\n const occupationSubCategoryText = occupationSubCategories && formValues &&\n formValues.occupationSubCategory && occupationSubCategories.find(\n (sub: { value: number }) => Number(sub.value) === formValues.occupationSubCategory\n ) ? occupationSubCategories.find(\n (sub: { value: number }) => Number(sub.value) === formValues.occupationSubCategory\n ).text : '';\n\n const bodyForKYCUplift = (\n \n
\n

\n {i18n('header-v2-update-confirm-personal-first-name-label')}\n

\n

{firstName}

\n
\n
\n

\n {i18n('header-v2-update-confirm-personal-last-name-label')}\n

\n

{lastName}

\n
\n {middleName && (\n
\n

\n {i18n('header-v2-update-confirm-personal-middle-name-label')}\n

\n

{middleName}

\n
\n )}\n
\n
\n \n
\n
\n \n \n val && parseInt(val, 10)}\n validate={[validation.required(true)]}\n />\n {occupationCategories && occupationCategories.length > 0\n && formValues &&\n formValues.occupationCategory !== 35 && (\n val && parseInt(val, 10)}\n validate={[validation.required(true)]}\n />\n )}\n {(occupationSubCategoryText.indexOf('Other') > -1 ||\n (formValues && formValues.occupationCategory && formValues.occupationCategory === 35))\n && (\n \n )}\n \n
\n

\n {i18n('personal-details-currencies-sending-to-receipient')}\n

\n \n
\n \n
\n

\n {i18n('personal-details-currencies-funding-your-payment')}\n

\n \n
\n
\n

\n {i18n('personal-details-reason-for-payment')}\n

\n \n
\n {formValues &&\n formValues.reasonForTransfer &&\n formValues &&\n formValues.reasonForTransfer &&\n formValues.reasonForTransfer.find((x: any) =>\n typeof x === 'string' ? x === 'Others' : x.value === 'Others',\n ) && (\n \n )}\n \n {formValues &&\n SOURCE_OF_FUNDS_OTHER_CONDITION.find(\n (x: { value: string }) => x.value === formValues.sourceOfFunds,\n ) && (\n \n )}\n
\n

\n {i18n('personal-details-source-of-wealth')}\n

\n \n
\n {formValues &&\n formValues.sourceOfWealth &&\n formValues.sourceOfWealth.find((x: any) =>\n typeof x === 'string' ? x === 'Other' : x.value === 'Other',\n ) && (\n \n )}\n
\n );\n return (\n \n {!enableKycUplift && (\n
\n \n \n )}\n {enableKycUplift && (\n
\n \n \n )}\n
\n );\n }\n}\n\nexport default PersonalDetailForm;\n","import * as React from 'react';\n\ninterface Option {\n value: string;\n text: string;\n}\n\ninterface MultiSelectProps {\n options: Option[];\n selectedOptions: Option[];\n onChange: (selected: Option[]) => void;\n error?: boolean;\n placeholder?: string;\n}\n\ninterface MultiSelectState {\n isOpen: boolean;\n}\n\nclass MultiSelect extends React.Component {\n wrapperRef: React.RefObject;\n\n constructor(props: MultiSelectProps) {\n super(props);\n this.state = {\n isOpen: false,\n };\n this.wrapperRef = React.createRef();\n }\n\n componentDidMount() {\n document.addEventListener('mousedown', this.handleClickOutside);\n }\n\n componentWillUnmount() {\n document.removeEventListener('mousedown', this.handleClickOutside);\n }\n\n handleClickOutside = (event: MouseEvent) => {\n if (this.wrapperRef.current && !this.wrapperRef.current.contains(event.target as Node)) {\n this.setState({ isOpen: false });\n }\n };\n\n toggleDropdown = () => {\n this.setState((prevState) => ({\n isOpen: !prevState.isOpen,\n }));\n };\n\n handleSelect = (option: Option) => {\n const { selectedOptions, onChange } = this.props;\n if (selectedOptions.find((selected) => selected.value === option.value)) {\n onChange(selectedOptions.filter((selected) => selected.value !== option.value));\n } else {\n onChange([...selectedOptions, option]);\n }\n };\n\n handleRemove = (option: Option) => {\n const { selectedOptions, onChange } = this.props;\n onChange(selectedOptions.filter((selected) => selected.value !== option.value));\n };\n\n render() {\n const { options, selectedOptions, error, placeholder = 'Select options' } = this.props;\n const { isOpen } = this.state;\n\n return (\n
\n \n {selectedOptions.length > 0 ? (\n
\n {selectedOptions.map((option) => (\n
\n {option.text}\n this.handleRemove(option)}\n >\n x\n \n
\n ))}\n
\n ) : (\n {placeholder}\n )}\n
\n {isOpen && (\n
\n {options.map((option) => (\n selected.value === option.value,\n )\n ? 'multi-select-selected'\n : ''\n }`}\n onClick={() => this.handleSelect(option)}\n >\n {option.text}\n
\n ))}\n \n )}\n \n );\n }\n}\n\nexport default MultiSelect;\n","import { getPhoneNumber } from 'libs/phoneNumber';\n\nexport const parsePhoneNumbers = (data) => ({\n TelephoneNumbers: [\n {\n Type: 'Mobile',\n Number: getPhoneNumber(data.mobileNumber),\n },\n {\n Type: 'Work',\n Number: getPhoneNumber(data.workNumber),\n },\n {\n Type: 'Home',\n Number: getPhoneNumber(data.homeNumber),\n },\n ],\n Email: data.email,\n});\n\nexport const parseHomeAddress = (data) => ({ ...data.homeAddress, Country: data.Country });\n","import { handleActions } from 'redux-actions';\nimport { Map } from 'immutable';\nimport { reducers as addressReducers } from 'components/Address';\nimport { PARTITION } from './constants';\nimport { actionTypes } from './actions';\nimport processCountries from 'features/registration/_shared/libs/processCountries';\nimport { i18n } from 'libs/i18n';\n\nexport interface IPartition {\n Countries: [];\n Nationalities: [];\n OccupationData?: any[];\n OccupationCategories?: any[];\n occupationSubCategories?: any[];\n extraInfoMessage?: string;\n fromCurrencies?: { Code: any; Name: any }[];\n toCurrencies?: { Code: any; Name: any }[];\n}\n\nconst initialPartitionState: IPartition = {\n Countries: [],\n Nationalities: [],\n OccupationData: [],\n OccupationCategories: [],\n occupationSubCategories: [],\n extraInfoMessage: '',\n fromCurrencies: [],\n toCurrencies: [],\n};\n\nfunction makeItem(item: { Code: any; Name: any }) {\n return {\n value: item.Code,\n text: `${item.Code} (${item.Name})`,\n };\n}\n\nfunction makeGroupedList(shortList: any[], dividerText: any, fullList: any) {\n return shortList\n .map((item) => ({ hidden: true, ...item }))\n .concat([{ text: dividerText, children: [], hidden: true }])\n .concat(fullList);\n}\n\nfunction fulfilledTo(state: any, action: any) {\n const filtered = action.payload.Currencies.filter(\n (item: { Code: any }) => item.Code !== action.payload.currentCurrency,\n );\n\n const popular = filtered.filter((item: { IsPopularCurrency: any }) => item.IsPopularCurrency);\n\n const currencies = makeGroupedList(\n popular.map(makeItem),\n i18n('personal-registration-dropdown-divider'),\n filtered.map(makeItem),\n );\n\n return state.setIn([\"toCurrencies\"], currencies);\n}\n\nfunction fulfilledFrom(state: any, action: any) {\n const currencies = action.payload.Currencies.filter(\n (item: { IsCustomerMajor: any }) => item.IsCustomerMajor,\n ).map(makeItem);\n return state.setIn([\"fromCurrencies\"], currencies);\n}\n\nfunction fulfilledToAllValues(state: any, action: any) {\n const currencies = action.payload.Currencies.map(makeItem);\n return state.setIn([\"toCurrencies\"], currencies);\n}\n\nconst reducers = handleActions, IPartition>(\n {\n [`${actionTypes.FETCH_COUNTRIES}_FULFILLED`]: (state, { payload }) =>\n state.setIn([\"Countries\"], payload!.Countries),\n [`${actionTypes.FETCH_NATIONALITIES}_FULFILLED`]: (state, { payload }) => {\n console.log('FETCH_NATIONALITIES_FULFILLED action:', { payload });\n const countries = payload ? payload.Countries : [];\n const { nationalities } = processCountries(countries);\n return state.setIn([\"Nationalities\"], nationalities);\n },\n [`${actionTypes.FETCH_OCCUPATION_CATEGORIES}_FULFILLED`]: (state, { payload }) => {\n const OccupationData = payload ? payload.OccupationCategories : [];\n\n const occupationCategories = OccupationData\n ? OccupationData.map((item: { Id: { toString: () => any }; Name: any }) => ({\n value: item.Id.toString(),\n text: item.Name,\n }))\n : [];\n return state\n .setIn([\"OccupationData\"], OccupationData)\n .setIn([\"OccupationCategories\"], occupationCategories);\n },\n [actionTypes.SELECT_OCCUPATION_CATEGORY]: (state, { payload }) => {\n const refData = state.getIn([\"OccupationData\"]);\n const filtered = refData.filter((item: any) => item.Id === payload);\n let extraInfoMessage = '';\n let occupationSubCategories = [];\n\n if (filtered.length > 0) {\n extraInfoMessage = filtered[0].Message;\n occupationSubCategories = filtered[0].Subcategories.map(\n (item: { Id: { toString: () => any }; Name: any }) => ({\n value: item.Id.toString(),\n text: item.Name,\n }),\n );\n }\n\n return state\n .setIn(\n [\"occupationSubCategories\"],\n occupationSubCategories,\n )\n .setIn([\"extraInfoMessage\"], extraInfoMessage);\n },\n [actionTypes.SELECT_OCCUPATION_SUB_CATEGORY]: (state, { payload }) => {\n const refData = state.getIn([\"OccupationData\"]);\n const data = payload || { occupationCategoryId: 0, occupationSubCategoryId: 0 };\n\n const occupationCategory = refData.filter(\n (item: { Id: number }) => item.Id === data.occupationCategoryId,\n )[0];\n\n const occupationSubCategory = occupationCategory.Subcategories.filter(\n (item: { Id: any }) => item.Id === data.occupationSubCategoryId,\n );\n\n if (occupationSubCategory.length > 0) {\n const extraInfoMessage = occupationSubCategory[0].Message;\n return state.setIn(\n [\"extraInfoMessage\"],\n extraInfoMessage,\n );\n }\n return state;\n },\n [`${actionTypes.FETCH_FROM_CURRENCIES}_FULFILLED`]: fulfilledFrom,\n [`${actionTypes.FETCH_TO_CURRENCIES}_FULFILLED`]: fulfilledToAllValues,\n },\n Map(initialPartitionState),\n);\n\nexport default {\n [PARTITION]: reducers,\n ...addressReducers,\n};\n","import * as React from 'react';\nimport { i18n } from 'libs/i18n';\nimport ModalContentContainer from 'components/ModalV2/ModalContent/ModalContentContainer';\nimport { OnlineKycStepEnum } from '../constants';\n\nconst header = i18n('online-kyc-exit-notification-header');\nconst body =

{i18n('online-kyc-exit-notification-body-para')}

;\nconst footer = (\n closeModal: () => void,\n updateOnlineKycStep: (step: string) => void,\n step: string,\n) => (\n
\n {\n closeModal();\n updateOnlineKycStep(step);\n }}\n >\n {i18n('online-kyc-exit-notification-footer-review-later')}\n \n {\n updateOnlineKycStep(step);\n }}\n >\n {i18n('online-kyc-exit-notification-footer-review-now')}\n \n
\n);\n\ninterface IProps {\n closeModal: () => void;\n updateOnlineKycStep: (step: OnlineKycStepEnum) => void;\n}\n\nconst OnlineKycExitNotification: React.SFC = ({\n updateOnlineKycStep,\n closeModal,\n}: IProps) => (\n \n);\n\nexport default OnlineKycExitNotification;\n","export const PARTITION = 'securityQuestions';\nexport const ACTION_NAMESPACE = 'SECURITY-QUESTIONS';\nexport const NO_SECURITY_QUESTION = 'No Security Question';\n","import { createAction } from 'redux-actions';\nimport { Dispatch } from 'react-redux';\nimport { AxiosError, AxiosResponse } from 'axios';\nimport { UserApi, VerificationApi, SecureApi } from 'libs/api';\nimport { getUserVerificationStatus } from 'libs/getUserVerificationStatus';\nimport { FEATURE_NAMESPACE } from './constants';\n\nexport const actionTypes = {\n FETCH_APP_INIT_DATA: `${FEATURE_NAMESPACE}/FETCH_APP_INIT_DATA`,\n FETCH_SECURE_USER_INFO: `${FEATURE_NAMESPACE}/FETCH_SECURE_USER_INFO`,\n FETCH_COMPLETE_USER_INFO: `${FEATURE_NAMESPACE}/FETCH_COMPLETE_USER_INFO`,\n FETCH_USER: `${FEATURE_NAMESPACE}/FETCH_USER`,\n FETCH_USER_OBJECT: `${FEATURE_NAMESPACE}/FETCH_USER_OBJECT`,\n FETCH_USER_ADDRESSES: `${FEATURE_NAMESPACE}/FETCH_USER_ADDRESSES`,\n FETCH_USER_CONTACT_DETAILS: `${FEATURE_NAMESPACE}/FETCH_USER_CONTACT_DETAILS`,\n FETCH_USER_OCCUPATION: `${FEATURE_NAMESPACE}/FETCH_USER_OCCUPATION`,\n FETCH_USER_VERIFICATION_STATUS: `${FEATURE_NAMESPACE}/FETCH_USER_VERIFICATION_STATUS`,\n FETCH_USER_DEALS: `${FEATURE_NAMESPACE}/FETCH_USER_DEALS`,\n FETCH_USER_CURRENCY_PREFERENCES: `${FEATURE_NAMESPACE}/FETCH_USER_CURRENCY_PREFERENCES`,\n FETCH_ONLINE_SALES_KYC: `${FEATURE_NAMESPACE}/FETCH_ONLINE_SALES_KYC`,\n FETCH_NEW_TRANSFER_CRITERIA: `${FEATURE_NAMESPACE}/FETCH_NEW_TRANSFER_CRITERIA`,\n ADD_CONTACT_HISTORY: `${FEATURE_NAMESPACE}/ADD_CONTACT_HISTORY`,\n REVIEW_YOUR_DETAILS_STEP_UPDATE: `${FEATURE_NAMESPACE}/REVIEW_YOUR_DETAILS_STEP_UPDATE`,\n CHECK_IF_RECIPIENT_EXISTS: `${FEATURE_NAMESPACE}/CHECK_IF_RECIPIENT_EXISTS`,\n CHECK_ONFIDO_JOURNEY: `${FEATURE_NAMESPACE}/CHECK_ONFIDO_JOURNEY`,\n FETCH_PASSFORT_MIGRATION_STATUS: `${FEATURE_NAMESPACE}/FETCH_PASSFORT_MIGRATION_STATUS`,\n FETCH_USER_DETAILS: `${FEATURE_NAMESPACE}/FETCH_USER_DETAILS`,\n};\n\nexport const fetchUserVerificationStatus = createAction(\n actionTypes.FETCH_USER_VERIFICATION_STATUS,\n (userId: string, isPersonal: boolean, enableCorporateOnboardingFrontEnd: boolean | undefined) =>\n getUserVerificationStatus(userId, isPersonal, enableCorporateOnboardingFrontEnd),\n);\n\nexport const fetchUserContacts = createAction(\n actionTypes.FETCH_USER_CONTACT_DETAILS,\n UserApi.getUserContacts,\n);\n\nexport const fetchPassfortMigrationStatus = createAction(\n actionTypes.FETCH_PASSFORT_MIGRATION_STATUS,\n () => UserApi.getConsumerComplianceCheck(false),\n);\n\nconst fetchAppInitData = () => ({\n types: [\n `${actionTypes.FETCH_APP_INIT_DATA}_START`,\n `${actionTypes.FETCH_APP_INIT_DATA}_SUCCESS`,\n `${actionTypes.FETCH_APP_INIT_DATA}_ERROR`,\n ],\n // Todo: add all app init data calls here in SPA\n payload: [\n createAction(actionTypes.FETCH_ONLINE_SALES_KYC, VerificationApi.getOnlineSalesKycStatus),\n createAction(actionTypes.FETCH_SECURE_USER_INFO, SecureApi.getUserInfo),\n createAction(actionTypes.FETCH_USER, UserApi.getUser),\n createAction(actionTypes.FETCH_USER_CONTACT_DETAILS, UserApi.getUserContacts),\n createAction(actionTypes.FETCH_USER_ADDRESSES, UserApi.getAddresses),\n createAction(actionTypes.FETCH_USER_DETAILS, UserApi.getUserDetails),\n createAction(actionTypes.FETCH_PASSFORT_MIGRATION_STATUS, () =>\n UserApi.getConsumerComplianceCheck(false),\n ),\n ],\n});\n\nconst checkOnfidoJourney = ({\n onfidoReleaseDates,\n isCorEnabled,\n enableCorporateOnboardingFrontEnd,\n isPassfortMigrated,\n}) => ({\n types: [\n `${actionTypes.CHECK_ONFIDO_JOURNEY}_START`,\n `${actionTypes.CHECK_ONFIDO_JOURNEY}_SUCCESS`,\n `${actionTypes.CHECK_ONFIDO_JOURNEY}_ERROR`,\n ],\n payload: [\n createAction(actionTypes.FETCH_USER_OBJECT, UserApi.getUserObject, () => ({\n onfidoReleaseDates,\n isCorEnabled,\n enableCorporateOnboardingFrontEnd,\n isPassfortMigrated,\n })),\n ],\n});\n\nconst fetchCompleteUserInfo = () => ({\n types: [\n `${actionTypes.FETCH_COMPLETE_USER_INFO}_START`,\n `${actionTypes.FETCH_COMPLETE_USER_INFO}_SUCCESS`,\n `${actionTypes.FETCH_COMPLETE_USER_INFO}_ERROR`,\n ],\n payload: [\n createAction(actionTypes.FETCH_USER_OCCUPATION, UserApi.getOccupation),\n createAction(actionTypes.FETCH_USER_ADDRESSES, UserApi.getAddresses),\n createAction(actionTypes.FETCH_USER_CONTACT_DETAILS, UserApi.getUserContacts),\n ],\n});\n\nconst addContactHistory = createAction(\n actionTypes.ADD_CONTACT_HISTORY,\n (note: string, noteType: string) => UserApi.addContactHistory(note, noteType),\n);\n\nconst checkIfRecipientExists = (\n type: string,\n currency: string,\n onSuccessCallback: () => void,\n onFailureCallback: () => void,\n) => (dispatch: Dispatch<{}>) => {\n dispatch(createAction(`${actionTypes.CHECK_IF_RECIPIENT_EXISTS}_PENDING`)());\n SecureApi.checkIfRecipientExists(type, currency).then(\n (response: AxiosResponse) => {\n if (response.data.recipientId) {\n onSuccessCallback();\n } else {\n onFailureCallback();\n }\n dispatch(createAction(`${actionTypes.CHECK_IF_RECIPIENT_EXISTS}_FULFILLED`)());\n },\n (error: AxiosError) => {\n // 404 error indicates user does not have the recipient for the specified params\n if (error.response && error.response.status === 404) {\n onFailureCallback();\n } else {\n onSuccessCallback();\n }\n dispatch(createAction(`${actionTypes.CHECK_IF_RECIPIENT_EXISTS}_REJECTED`)());\n },\n );\n};\n\nexport default {\n fetchAppInitData,\n fetchCompleteUserInfo,\n fetchUserVerificationStatus,\n addContactHistory,\n checkIfRecipientExists,\n checkOnfidoJourney,\n fetchPassfortMigrationStatus,\n};\n","export { default as mfaFlowActions } from './actions';\nexport { default as mfaFlowReducer, IPartition as IMFAFlowPartition } from './reducer';\nexport {\n PARTITION as MFAFlowPartition,\n MfaErrorCodesMap,\n MfaErrorCodesEnum,\n MfaServerErrorCodesEnum,\n} from './constants';\n","import isoLegalEntities from './isoLegalEntities';\n\nexport default {\n [isoLegalEntities.AU]: 'https://www.ofx.com/en-au/faqs/contact-us/',\n [isoLegalEntities.CA]: 'https://www.ofx.com/en-ca/faqs/contact-us/',\n [isoLegalEntities.GB]: 'https://www.ofx.com/en-gb/faqs/contact-us/',\n [isoLegalEntities.HK]: 'https://www.ofx.com/en-hk/faqs/contact-us/',\n [isoLegalEntities.NZ]: 'https://www.ofx.com/en-nz/faqs/contact-us/',\n [isoLegalEntities.SG]: 'https://www.ofx.com/en-sg/faqs/contact-us/',\n [isoLegalEntities.US]: 'https://www.ofx.com/en-us/faqs/contact-us/',\n [isoLegalEntities.IE]: 'https://www.ofx.com/en-ie/faqs/contact-us/',\n};\n","import { createAction } from 'redux-actions';\nimport { Dispatch } from 'react-redux';\nimport { change } from 'redux-form';\nimport { BeneficiaryApi, PartnerApi } from 'libs/api';\nimport i18n from 'libs/i18n';\nimport { logDatadogRUM } from 'libs/errors';\nimport { Recipients } from 'libs/@types/beneficiary';\nimport { IChooseBankAccount } from './components/ChooseYourBankAccount/OwnBankAccountList';\nimport { FORM_NAME } from './components/ChooseYourBankAccount/constants';\nimport {\n ACTION_NAMESPACE,\n PARTITION,\n IPartition,\n PartnershipNav,\n IPartnerUserResponse,\n IPartnerUserDetailResponse,\n IMappedPartnerDetails,\n beneSelfManagementCurrencyList,\n} from './constants';\nimport * as config from 'ofxSettings';\nimport { LeuwinFlowDetails } from 'leuwin-flow-details';\n\nexport const actionTypes = {\n UPDATE_ROUTE: `${ACTION_NAMESPACE}/UPDATE_ROUTE`,\n GET_ALL_USER_RECIPIENTS: `${ACTION_NAMESPACE}/GET_ALL_USER_RECIPIENTS`,\n ADD_BENEFICIARY_TO_PARTNER_USER: `${ACTION_NAMESPACE}/ADD_BENEFICIARY_TO_PARTNER_USER`,\n GET_PARTNER_USER: `${ACTION_NAMESPACE}/GET_PARTNER_USER`,\n ADD_PARTNER_USER_ATTRIBUTE: `${ACTION_NAMESPACE}/ADD_PARTNER_USER_ATTRIBUTE`,\n SET_HAS_EXISTING_RECIPIENTS: `${ACTION_NAMESPACE}/SET_HAS_EXISTING_RECIPIENTS`,\n HANDLE_NEW_RECIPIENT_CREATED: `${ACTION_NAMESPACE}/HANDLE_NEW_RECIPIENT_CREATED`,\n UPDATE_PARTNER_USER_ATTRIBUTE: `${ACTION_NAMESPACE}/UPDATE_PARTNER_USER_ATTRIBUTE`,\n};\nconst updateRoute = createAction(\n actionTypes.UPDATE_ROUTE,\n (currentRoute: PartnershipNav | null, previousRoute: PartnershipNav | null) => {\n return {\n currentRoute,\n previousRoute,\n };\n },\n);\n\nexport const goToExitConfirm = createAction(\n actionTypes.UPDATE_ROUTE,\n (previousRoute: PartnershipNav | null) => {\n return {\n previousRoute,\n currentRoute: PartnershipNav.EXIT,\n };\n },\n);\n\nconst getAllUserRecipientsPending = createAction(`${actionTypes.GET_ALL_USER_RECIPIENTS}_PENDING`);\nconst getAllUserRecipientsFulfilled = createAction(\n `${actionTypes.GET_ALL_USER_RECIPIENTS}_FULFILLED`,\n (payload: Recipients.IRecipientBase[]) => payload,\n);\nconst getAllUserRecipientsRejected = createAction(\n `${actionTypes.GET_ALL_USER_RECIPIENTS}_REJECTED`,\n (error: string) => error,\n);\n\nconst genericErrorMsg = i18n('general-error-message-text');\nconst handleGetAllUserRecipientsFailed = (dispatch: Dispatch<{}>) => () => {\n dispatch(getAllUserRecipientsRejected(genericErrorMsg));\n};\n\nconst getAllUserRecipients = async (dispatch: Dispatch<{}>) => {\n dispatch(getAllUserRecipientsPending());\n const payload = await BeneficiaryApi.getAllUserRecipients({ pageNumber: 0, pageSize: 0 });\n dispatch(getAllUserRecipientsFulfilled(payload));\n};\n\nexport const getAllUserBeneficiary = () => async (dispatch: Dispatch<{}>) => {\n await getAllUserRecipients(dispatch);\n};\n\nexport const determineBankAccountRoute = () => async (\n dispatch: Dispatch<{}>,\n getState: Function,\n) => {\n try {\n await getAllUserRecipients(dispatch);\n if (getState().partnerships.get(\"selfRecipients\").length > 0) {\n dispatch(updateRoute(PartnershipNav.EXISTING_BANK_DETAILS, null));\n } else {\n dispatch(updateRoute(PartnershipNav.NEW_RECIPIENT, null));\n }\n } catch {\n handleGetAllUserRecipientsFailed(dispatch)();\n }\n};\n\nconst getPartnerUsers = createAction(actionTypes.GET_PARTNER_USER, () =>\n PartnerApi.getUsers()\n .then((response) => response.partnerUsers)\n .then(\n (partnerUserResponse: IPartnerUserResponse[]) => {\n if (partnerUserResponse && partnerUserResponse.length > 0) {\n return Promise.all(\n partnerUserResponse.map((partner) =>\n PartnerApi.getPartnerUserDetail(partner.partnerUserId).then(\n (partnerUserDetailResponse: IPartnerUserDetailResponse) => ({\n beneficiaryId: partnerUserDetailResponse.beneficiaryId,\n isBeneficiaryRequired: config.leuwinFlowDetails.some(\n (x: { PartnerAppId: string }) =>\n x.PartnerAppId ===\n partnerUserDetailResponse.partnerAppId,\n ),\n partnerUserId: partnerUserDetailResponse.partnerUserId,\n partnerDisplayName:\n partnerUserDetailResponse.partnerDisplayName,\n partnerAppId: partnerUserDetailResponse.partnerAppId,\n user: partnerUserDetailResponse.user,\n }),\n (err: Error) => {\n logDatadogRUM(err);\n return Promise.resolve([]);\n },\n ),\n ),\n );\n }\n return Promise.resolve([]);\n },\n (err: Error) => {\n logDatadogRUM(err);\n return Promise.resolve([]);\n },\n ),\n);\n\nconst addPartnerUserAttribute = async (\n dispatch: Dispatch<{}>,\n partnerUserId: string,\n partnerUserAttribute: string,\n ofxUserGuid: string,\n partnerAppId: string,\n eventType: string,\n) => {\n await PartnerApi.addPartnerUserAttribute(\n partnerUserId,\n partnerUserAttribute,\n ofxUserGuid,\n partnerAppId,\n eventType,\n );\n dispatch(createAction(`${actionTypes.UPDATE_PARTNER_USER_ATTRIBUTE}_FULFILLED`)());\n};\n\nconst handleAddPartnerUserAttributeFailed = (dispatch: Dispatch<{}>) => async () => {\n dispatch(createAction(`${actionTypes.UPDATE_PARTNER_USER_ATTRIBUTE}_REJECTED`)());\n};\n\nconst handlePartnerUserAttribute = (\n partnerUserId: string,\n partnerUserAttribute: string,\n ofxUserGuid: string,\n partnerAppId: string,\n eventType: string,\n) => async (dispatch: Dispatch<{}>) => {\n try {\n dispatch(createAction(`${actionTypes.UPDATE_PARTNER_USER_ATTRIBUTE}_PENDING`)());\n await addPartnerUserAttribute(\n dispatch,\n partnerUserId,\n partnerUserAttribute,\n ofxUserGuid,\n partnerAppId,\n eventType,\n ).catch(handleAddPartnerUserAttributeFailed(dispatch));\n } catch (error) {\n dispatch(createAction(`${actionTypes.UPDATE_PARTNER_USER_ATTRIBUTE}_REJECTED`)());\n }\n};\n\nconst addBeneficiaryPending = createAction(\n `${actionTypes.ADD_BENEFICIARY_TO_PARTNER_USER}_PENDING`,\n);\nconst addBeneficiaryFulfilled = createAction(\n `${actionTypes.ADD_BENEFICIARY_TO_PARTNER_USER}_FULFILLED`,\n);\nconst addBeneficiaryRejected = createAction(\n `${actionTypes.ADD_BENEFICIARY_TO_PARTNER_USER}_REJECTED`,\n (error: string) => error,\n);\n\nconst addBeneficiary = async (\n dispatch: Dispatch<{}>,\n partnerUserId: string,\n beneficiaryId: string,\n currentRoute: PartnershipNav,\n) => {\n dispatch(addBeneficiaryPending());\n await PartnerApi.addBeneficiary(partnerUserId, beneficiaryId);\n dispatch(addBeneficiaryFulfilled());\n dispatch(updateRoute(PartnershipNav.LINK_SUCCESS, currentRoute));\n};\n\nconst addBeneficiaryErrorMsg = i18n('partnership-recipient-existing-submit-failure-feedback');\nconst selectedBankDetailsField = \"selectedBankDetailsId\";\nconst updateAccountListAndRedirect = async (\n dispatch: Dispatch<{}>,\n beneficiaryId: string,\n currentRoute: PartnershipNav,\n) => {\n await getAllUserRecipients(dispatch).catch(handleGetAllUserRecipientsFailed(dispatch));\n dispatch(change(FORM_NAME, selectedBankDetailsField, beneficiaryId));\n dispatch(updateRoute(PartnershipNav.EXISTING_BANK_DETAILS, currentRoute));\n};\n\nconst handleAddBeneficiaryFailed = (\n dispatch: Dispatch<{}>,\n beneficiaryId: string,\n currentRoute: PartnershipNav,\n) => async () => {\n dispatch(addBeneficiaryRejected(addBeneficiaryErrorMsg));\n await updateAccountListAndRedirect(dispatch, beneficiaryId, currentRoute);\n};\n\nconst addBeneficiaryToPartnerUser = (partnerUserId = '', beneficiaryId: string) => async (\n dispatch: Dispatch<{}>,\n getState: Function,\n) => {\n const partnershipsState = getState()[PARTITION];\n const currentRoute = partnershipsState.get(\"currentRoute\");\n await addBeneficiary(dispatch, partnerUserId, beneficiaryId, currentRoute);\n const leuwinObjVal = config.leuwinFlowDetails.find((x: LeuwinFlowDetails) => {\n const partner = partnershipsState\n .get(\"partners\")\n .find((y: IMappedPartnerDetails) => y.partnerAppId === x.PartnerAppId);\n if (partner) {\n return true;\n }\n return false;\n });\n const beneSelfManagement =\n leuwinObjVal && leuwinObjVal.BeneSelfManagement ? leuwinObjVal.BeneSelfManagement : false;\n\n if (beneSelfManagement) {\n const currencyBeneList: { currency: string; beneficiaryId: any }[] = [];\n beneSelfManagementCurrencyList.forEach((x) => {\n currencyBeneList.push({ currency: x.Name, beneficiaryId });\n });\n // Fire & forget call\n PartnerApi.updateUserCurrencyBeneficiaryPreferences(currencyBeneList);\n }\n};\n\nconst handleNewRecipientCreated = (beneficiaryId: string) => async (\n dispatch: Dispatch<{}>,\n getState: Function,\n) => {\n try {\n dispatch(createAction(`${actionTypes.HANDLE_NEW_RECIPIENT_CREATED}_PENDING`)());\n\n const partnershipsState = getState()[PARTITION];\n const selfRecipients = partnershipsState.get(\"selfRecipients\");\n const currentRoute = partnershipsState.get(\"currentRoute\");\n const partners = partnershipsState.get(\"partners\");\n\n const linkPartneruser = partners.find((p: IMappedPartnerDetails) => {\n const leuwinObj = config.leuwinFlowDetails.find(\n (x: LeuwinFlowDetails) => x.PartnerAppId === p.partnerAppId,\n );\n if (leuwinObj && leuwinObj.PartnerAppId === p.partnerAppId) {\n return true;\n }\n\n return false;\n });\n const partnerUserId = linkPartneruser ? linkPartneruser.partnerUserId : undefined;\n if (selfRecipients.length > 0) {\n await updateAccountListAndRedirect(dispatch, beneficiaryId, currentRoute);\n } else {\n await addBeneficiary(dispatch, partnerUserId, beneficiaryId, currentRoute).catch(\n handleAddBeneficiaryFailed(dispatch, beneficiaryId, currentRoute),\n );\n }\n dispatch(createAction(`${actionTypes.HANDLE_NEW_RECIPIENT_CREATED}_FULFILLED`)());\n } catch (error) {\n dispatch(createAction(`${actionTypes.HANDLE_NEW_RECIPIENT_CREATED}_REJECTED`)());\n }\n};\n\nexport default {\n updateRoute,\n addBeneficiaryToPartnerUser,\n determineBankAccountRoute,\n getPartnerUsers,\n handleNewRecipientCreated,\n addBeneficiaryRejected,\n addPartnerUserAttribute,\n handlePartnerUserAttribute,\n};\n","export { default as Modal } from './Container';\nexport { default as reducers } from './reducer';\nexport { default as ModalContent } from './ModalContent/ModalContent';\nexport { default as ModalCrossBtn } from './ModalCrossBtn';\n","export default {\n INDIVIDUAL: 'Individual',\n CORPORATE: 'Corporate',\n ORGANISATIONAL: 'Organisational',\n};\n","export { default } from './Component';\nexport { default as reducers, actions } from './reducers';\nexport { default as formReducerPlugin } from './clearBankReducerPlugin';\nexport { mapAddressToRecipientForm } from './helpers/mapAddressToRecipientForm';\n","import { createAction, handleActions } from 'redux-actions';\nimport { Dispatch } from 'react-redux';\nimport { change } from 'redux-form';\nimport { Map } from 'immutable';\nimport { RefData } from 'libs/@types/refData';\nimport { Common } from 'libs/@types/common';\nimport { RefDataApi, QuoteApi, BeneficiaryApi, VerificationApi } from 'libs/api';\nimport { User as IUser } from 'libs/@types/user';\nimport { SPOT_TRANSFER } from 'constants/dealTypes';\nimport { PARTITION as headerV2Partition } from 'features/transfers/new.transfer/components/HeaderV2/constants';\nimport { IPartition as IHeaderV2Partition } from 'features/transfers/new.transfer/components/HeaderV2/types';\nimport { getTemplateForLS, updateTemplate } from './helpers/reducerHelper';\nimport { sharedActionTypes, IFormFields } from './constants';\nimport { ComponentProps } from './AccountDetails/Component';\n\nexport const partition = 'bankDetails';\n\nconst defaultState: IStatePartition = {\n countries: [],\n currencies: [],\n tradedCurrencies: [],\n};\n\ntype TradedCurrency = {\n Code: string;\n CountryName: string;\n Name: string;\n IsCustomerMajor: string;\n isPopularCurrency: string;\n};\n\nexport interface IStatePartition {\n countries: Common.ISelect2[];\n currencies: Common.ISelect2[];\n tradedCurrencies: TradedCurrency[];\n}\n\nexport interface IRoot {\n bankDetails: Map;\n headerV2: Map;\n}\n\nexport interface IBankAccountTemplateRequest {\n country: string;\n currency: string;\n paymentOption: string;\n usdEftIsEnabled: boolean;\n}\n\n// Action Types\nexport const actionTypes = {\n FETCH_ALL_COUNTRIES: 'FETCH_ALL_COUNTRIES',\n FETCH_ALL_CURRENCIES: 'FETCH_ALL_CURRENCIES',\n FETCH_COUNTRY_CURRENCIES: 'FETCH_COUNTRY_CURRENCIES',\n FETCH_BANK_ACCOUNT_TEMPLATE: 'FETCH_BANK_ACCOUNT_TEMPLATE',\n UPDATE_BANK_ACCOUNT_TEMPLATE_START: 'UPDATE_BANK_ACCOUNT_TEMPLATE_START',\n UPDATE_BANK_ACCOUNT_TEMPLATE_ERROR: 'UPDATE_BANK_ACCOUNT_TEMPLATE_ERROR',\n UPDATE_BANK_ACCOUNT_TEMPLATE_SUCCESS: 'UPDATE_BANK_ACCOUNT_TEMPLATE_SUCCESS',\n PAYMENT_OPTION_CHANGED: 'PAYMENT_OPTION_CHANGED',\n CLEAR_BANK_FIELDS: 'CLEAR_BANK_FIELDS',\n FETCH_BANK_DETAILS: 'FETCH_BANK_DETAILS',\n FETCH_TRADED_CURRENCIES: 'FETCH_TRADED_CURRENCIES',\n INIT_BANK_BASIC: 'INIT_BANK_BASIC',\n};\n\n// Actions\nconst getBankAccountTemplate = createAction(\n actionTypes.FETCH_BANK_ACCOUNT_TEMPLATE,\n (payload: IBankAccountTemplateRequest) =>\n BeneficiaryApi.accountTemplate(\n payload.country,\n payload.currency,\n payload.paymentOption,\n ).then((response) => ({\n ...response,\n paymentOption: payload.paymentOption,\n usdEftIsEnabled: payload.usdEftIsEnabled,\n })),\n);\nconst changePaymentOption = createAction(\n actionTypes.PAYMENT_OPTION_CHANGED,\n (paymentOption: string) => paymentOption,\n);\nconst clearBankFields = createAction(actionTypes.CLEAR_BANK_FIELDS, (formName: string) => formName);\n\nconst fetchAllCountries = createAction(actionTypes.FETCH_ALL_COUNTRIES, RefDataApi.countries);\n\nconst fetchAllCurrencies = createAction(actionTypes.FETCH_ALL_CURRENCIES, () =>\n QuoteApi.getCurrencies(SPOT_TRANSFER),\n);\n\nconst fetchTradedCurrencies = createAction(actionTypes.FETCH_TRADED_CURRENCIES, () =>\n RefDataApi.tradedCurrencies(),\n);\n\nexport const actions = {\n clearBankFields,\n fetchBankDetails: createAction(\n actionTypes.FETCH_BANK_DETAILS,\n (country: string, currency: string, routingType: string, routingCode: string) =>\n VerificationApi.lookUpBankDetails(country, currency, routingType, routingCode),\n ),\n fetchDefaultCurrencyByCountry: (\n formName: string,\n country: string,\n currency: string,\n paymentOption: string,\n usdEftIsEnabled: boolean,\n ) => (dispatch: any) =>\n RefDataApi.countryCurrencies(country).then((response: RefData.ICountryCurrencies) => {\n const currentCurrency = response.Currencies.find(\n (c: RefData.ICountryCurrency) => c.IsDefault,\n );\n const currencyCode = currentCurrency ? currentCurrency.Code : null;\n if (currency !== currencyCode) {\n dispatch(\n change(\n formName,\n \"bankDetails.bankCurrency\",\n currencyCode,\n ),\n );\n } else {\n dispatch(\n actions.updateBankAccountTemplate(\n country,\n currency,\n paymentOption,\n true,\n formName,\n usdEftIsEnabled,\n ),\n );\n }\n return currencyCode;\n }),\n fetchBankAccountTemplate: getBankAccountTemplate,\n paymentOptionChanged: changePaymentOption,\n updateBankAccountTemplate: (\n country: string,\n currency: string,\n paymentOption: string,\n clearBankDetailsFields: boolean,\n formName: string,\n usdEftIsEnabled: boolean,\n ) => (dispatch: Common.DispatchCombineActions<{}>, getState: any) => {\n dispatch({\n types: [\n actionTypes.UPDATE_BANK_ACCOUNT_TEMPLATE_START,\n actionTypes.UPDATE_BANK_ACCOUNT_TEMPLATE_SUCCESS,\n actionTypes.UPDATE_BANK_ACCOUNT_TEMPLATE_ERROR,\n ],\n sequence: true,\n payload: [\n () => getBankAccountTemplate({ country, currency, paymentOption, usdEftIsEnabled }),\n () => changePaymentOption(paymentOption),\n () => (clearBankDetailsFields ? clearBankFields(formName) : null),\n ],\n });\n },\n setOwnRecipientName: (formName: string) => (\n dispatch: Dispatch<{}>,\n getState: () => {\n [key: string]: any;\n },\n ) => {\n const user = getState()[headerV2Partition].getIn([\n \"User\",\n ]);\n\n if (user) {\n const accountNameField = \"bankDetails.accountName\";\n dispatch(change(formName, accountNameField, `${user.FirstName} ${user.LastName}`));\n }\n },\n initBankBasics: (formName: string, currency?: string) => async (\n dispatch: Dispatch<{}>,\n getState: () => {\n [key: string]: any;\n },\n ) => {\n try {\n dispatch(createAction(`${actionTypes.INIT_BANK_BASIC}_PENDING`)());\n\n await Promise.all([\n dispatch(fetchAllCurrencies()),\n dispatch(fetchAllCountries()),\n currency ? dispatch(fetchTradedCurrencies()) : undefined,\n ]);\n\n if (currency) {\n dispatch(\n change(\n formName,\n \"bankDetails.bankCurrency\",\n currency,\n ),\n );\n\n const bankDetailsPartition = getState()[partition];\n\n const countries = bankDetailsPartition.getIn([\n \"countries\",\n ]);\n const tradedCurrencies = bankDetailsPartition.getIn([\n \"tradedCurrencies\",\n ]);\n\n const tradedCurrency = tradedCurrencies.find(\n (item: TradedCurrency) => item.Code === currency,\n );\n\n const defaultCountry = tradedCurrency\n ? countries.find(\n (country: Common.ISelect2) => country.text === tradedCurrency.CountryName,\n )\n : undefined;\n\n if (defaultCountry && defaultCountry.value !== 'EU') {\n dispatch(\n change(\n formName,\n \"bankDetails.bankCountry\",\n defaultCountry.value,\n ),\n );\n }\n }\n\n dispatch(createAction(`${actionTypes.INIT_BANK_BASIC}_FULFILLED`)());\n } catch (error) {\n dispatch(createAction(`${actionTypes.INIT_BANK_BASIC}_REJECTED`)());\n }\n },\n};\n\n// Reducers\nconst reducers = handleActions, any>(\n {\n [`${actionTypes.FETCH_ALL_COUNTRIES}_FULFILLED`]: (state, { payload }) => {\n const response = payload as RefData.ICountries;\n const result = [] as Common.ISelect2[];\n const allCountries = [] as Common.ITextValue[];\n\n response.Countries.forEach((item) => {\n const value = {\n value: item.IsoCountryCode,\n text: item.CountryName,\n };\n\n if (item.IsPopularCountry) {\n result.push({ hidden: true, ...value });\n }\n\n allCountries.push(value);\n });\n\n result.push({ text: 'All', children: [], hidden: true });\n\n return state.setIn(\n [\"countries\"],\n result.concat(allCountries),\n );\n },\n [`${actionTypes.FETCH_ALL_CURRENCIES}_FULFILLED`]: (state, { payload }) => {\n const response = payload as RefData.ICurrencies;\n const result = [] as Common.ISelect2[];\n const allCurrencies = [] as Common.ITextValue[];\n\n response.Currencies.forEach((item) => {\n const value = {\n value: item.Code,\n text: `${item.Code} (${item.Name})`,\n };\n\n if (item.IsPopularCurrency) {\n result.push({ hidden: true, ...value });\n }\n\n allCurrencies.push(value);\n });\n\n result.push({ text: 'All', children: [], hidden: true });\n\n return state.setIn(\n [\"currencies\"],\n result.concat(allCurrencies),\n );\n },\n [`${actionTypes.FETCH_BANK_ACCOUNT_TEMPLATE}_FULFILLED`]: (state, { payload }) => {\n const template = getTemplateForLS(payload);\n const newState = state\n .set('country', template!.Country)\n .set('currency', template!.Currency)\n .set('bankFields', template!.BankFields)\n .set('accountFields', template!.AccountFields)\n .set('branchFields', template!.BranchFields)\n .set('supplementaryFields', template!.SupplementaryFields)\n .set('intermediaryFields', template!.IntermediaryFields)\n .set('hasCreditCardOption', template!.HasCreditCardOption)\n .set('hasOptions', template!.HasOptions);\n return newState;\n },\n [`${sharedActionTypes.RESET_RECIPIENT_MODAL_STATE}`]: () => {\n return Map(defaultState);\n },\n [`${actionTypes.PAYMENT_OPTION_CHANGED}`]: (state, { payload }) => {\n if (state.get('hasOptions')) {\n const existingBranchFields = state.get('branchFields') || [];\n const branchFields = updateTemplate(existingBranchFields, payload);\n return state.set('branchFields', branchFields);\n }\n return state;\n },\n [`${actionTypes.FETCH_BANK_DETAILS}_FULFILLED`]: (state, { payload }) => {\n const succeeded = payload && payload.length > 0;\n if (succeeded) {\n return state\n .set(\n \"lookupResult\",\n payload,\n )\n .set(\n \"hasLookupError\",\n false,\n );\n }\n\n return state\n .set(\n \"lookupResult\",\n undefined,\n )\n .set(\n \"hasLookupError\",\n true,\n );\n },\n [`${actionTypes.FETCH_BANK_DETAILS}_REJECTED`]: (state) => {\n return state.set(\n \"hasLookupError\",\n true,\n );\n },\n [`${actionTypes.FETCH_TRADED_CURRENCIES}_FULFILLED`]: (state, { payload }) => {\n return state.setIn(\n [\"tradedCurrencies\"],\n payload.Currencies,\n );\n },\n },\n Map(defaultState),\n);\n\nexport default {\n [partition]: reducers,\n};\n","import { User } from 'libs/@types/user';\nimport { SecureMvc } from 'libs/@types/secureMvc';\nimport { Verification } from 'libs/@types/verification';\nimport { PartnershipNav } from '../Partnerships/constants';\n\ninterface ICurrencyPreferences {\n currencyfrom: {\n currency: string;\n amount: number;\n };\n currencyto: {\n currency: string;\n amount: number;\n };\n}\n\nexport interface IPartition {\n User?: User.User;\n UserDetails?: User.UserDetails;\n Verification?: User.VerificationResponse;\n SecureUserInfo?: SecureMvc.ISecureUserInfo;\n Occupation?: User.IOccupation;\n Addresses?: User.IAddress[];\n Contacts?: User.IContactDetails;\n OnlineSalesKycStatus: Verification.IOnlineSalesKycStatusResponse;\n isAddContactHistorySucceed?: boolean;\n addContactHistory: (SalesKycNote: string, ContactHistoryNoteType: string) => void;\n closeModal: () => void;\n gcaUrl?: string;\n isOnPartnershipIntroduction: boolean;\n partnershipCurrentRoute: PartnershipNav | null;\n numberOfDeals: number;\n currencyPreferences: ICurrencyPreferences;\n isPassfortMigrated?: boolean;\n}\n\nexport enum OnlineSalesKycStatusEnum {\n Active = 'Active',\n Expired = 'Expired',\n}\n","import * as React from 'react';\nimport SVG from 'components/Icons/SVG';\n\ninterface IProps {\n message: string;\n}\n\nconst ModalFormErrorMessage = ({ message }: IProps) => (\n
\n
\n
\n \n
\n
{message}
\n
\n
\n);\n\nexport default ModalFormErrorMessage;\n","import { bindActionCreators } from 'redux';\nimport { connect, Dispatch } from 'react-redux';\nimport { closeModal, openModal } from 'components/ModalV2/reducer';\nimport { mfaFlowActions } from '../MFA/MfaFlow';\nimport { PARTITION as SECURITY_QUESTIONS_PARTITION } from '../SecurityQuestions/constants';\nimport { IPartition as ISecurityQuestionsPartition } from '../SecurityQuestions/reducer';\nimport { IResponse } from '../SecurityQuestions/actions';\nimport Component from './Component';\nimport onlineKycActions from './actions';\nimport { OnlineKycStepEnum, PARTITION as ONLINE_KYC_PARTITION } from './constants';\n\nexport interface IPartition {\n onlineKycStep: OnlineKycStepEnum;\n}\n\nexport interface IContainerProps extends IPartition {\n securityVerificationStatus: IResponse;\n}\n\nexport const actions = {\n openModal,\n closeModal,\n ...onlineKycActions,\n ...mfaFlowActions,\n};\n\nconst mapStateToProps = (state: any): IContainerProps => {\n const securityVerificationStatus = state[SECURITY_QUESTIONS_PARTITION].get(\n \"result\",\n );\n const onlineKycStep = state[ONLINE_KYC_PARTITION].get(\n \"onlineKycStep\",\n );\n return {\n onlineKycStep,\n securityVerificationStatus,\n };\n};\n\nconst mapDispatchToProps = (dispatch: Dispatch) =>\n bindActionCreators(actions, dispatch);\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Component);\n","import { IOtherRecipientAddress } from './../constants/formFieldNames';\nimport * as loggedInUser from 'ofxUserInfo';\nimport { Recipients } from 'libs/@types/beneficiary';\nimport {\n MATCH_ALL_WHITESPACES_REGEX,\n IFormFields,\n NOT_APPLICABLE,\n DEFAULT_PAYMENT_REASON,\n recipientBasics,\n recipientDetails,\n bankDetails,\n paymentOptions,\n} from '../constants';\n\nconst recipientAddressState = (address: IOtherRecipientAddress) => {\n if (!address.dropdownState && !address.manualState) {\n return NOT_APPLICABLE;\n }\n\n if (!!address.dropdownState && address.dropdownState !== address.state) {\n return address.dropdownState;\n }\n\n return address.manualState;\n};\n\nexport const transformRequest = (values: IFormFields): Recipients.ICreateRecipientRequest => ({\n BeneficiaryId: values.recipientBasics.recipientId,\n Currency: values.bankDetails.bankCurrency,\n Alias: values.bankDetails.alias,\n Email: values.recipientDetails.email,\n Notify: !!values.recipientDetails.email,\n Name: values.bankDetails.accountName,\n BeneficiaryType: 'I',\n Classification: values.recipientBasics.classification,\n AccountType: values.bankDetails.AccountType,\n BeneficiaryBankDetails: {\n BankName: values.bankDetails.BankName,\n BankBranchName: values.bankDetails.BranchName,\n BankCode: values.bankDetails.BankCode,\n BranchCode: values.bankDetails.BranchCode,\n Swift: values.bankDetails.SWIFT,\n Account: values.bankDetails.AccountNo\n ? values.bankDetails.AccountNo.replace(MATCH_ALL_WHITESPACES_REGEX, '')\n : values.bankDetails.AccountNo,\n AccountSuffix: values.bankDetails.AccountSuffix,\n BankAddress: {\n AddressLine: values.bankDetails.address.line1,\n CitySuburb: values.bankDetails.address.city,\n StateProvince: values.bankDetails.address.state || NOT_APPLICABLE,\n PostCode: values.bankDetails.address.postcode,\n Country: values.bankDetails.bankCountry,\n QASFormatUrl: null,\n },\n },\n BeneficiaryAddress: {\n AddressLine: values.recipientDetails.address.line1,\n CitySuburb: values.recipientDetails.address.city,\n StateProvince: recipientAddressState(values.recipientDetails.address),\n PostCode: values.recipientDetails.address.postcode,\n Country: values.recipientDetails.address.country,\n QASFormatUrl: values.recipientDetails.address.qasFormatUrl,\n },\n IsCreditCard: values.bankDetails.isCreditCard,\n // TODO: Remove default values for EntityType and PaymentReason after LS-4529 is done\n EntityType: values.recipientBasics.recipientType || 'Individual',\n // The value NA is agreed on to be the hardcoded value\n PaymentReason: DEFAULT_PAYMENT_REASON,\n});\n\nexport const transformResponse = {\n Username: \"username\",\n Currency: \"bankDetails.bankCurrency\",\n Alias: \"bankDetails.alias\",\n AccountType: \"bankDetails.AccountType\",\n Email: \"recipientDetails.email\",\n Name: \"bankDetails.accountName\",\n Classification: \"recipientBasics.classification\",\n BankName: \"bankDetails.BankName\",\n BranchName: \"bankDetails.BranchName\",\n BankCode: \"bankDetails.BankCode\",\n BranchCode: \"bankDetails.BranchCode\",\n Swift: \"bankDetails.SWIFT\",\n AccountNo: \"bankDetails.AccountNo\",\n AccountSuffix: \"bankDetails.AccountSuffix\",\n EntityType: \"recipientBasics.recipientType\",\n BeneficiaryBankDetails: {\n BankAddress: {\n AddressLine: \"bankDetails.address.line1\",\n CitySuburb: \"bankDetails.address.city\",\n StateProvince: \"bankDetails.address.state\",\n PostCode: \"bankDetails.address.postcode\",\n Country: \"bankDetails.address.country\",\n },\n },\n BeneficiaryAddress: {\n AddressLine: \"recipientDetails.address.line1\",\n CitySuburb: \"recipientDetails.address.city\",\n StateProvince: \"recipientDetails.address.state\",\n PostCode: \"recipientDetails.address.postcode\",\n Country: \"recipientDetails.address.country\",\n },\n};\n\nexport const getRecipientBasics = (\n beneficiary: Recipients.ICreateRecipientRequest,\n): recipientBasics => {\n return {\n recipientId: beneficiary.BeneficiaryId,\n classification: beneficiary.Classification,\n recipientType: beneficiary.EntityType,\n };\n};\n\nexport const getRecipientDetails = (\n beneficiary: Recipients.ICreateRecipientRequest,\n): recipientDetails => {\n const details = {\n email: beneficiary.Email,\n country: beneficiary.BeneficiaryAddress.Country,\n address: {\n line1: beneficiary.BeneficiaryAddress.AddressLine || '',\n city: beneficiary.BeneficiaryAddress.CitySuburb,\n state:\n beneficiary.BeneficiaryAddress.StateProvince === NOT_APPLICABLE\n ? ''\n : beneficiary.BeneficiaryAddress.StateProvince || '',\n manualState: '',\n dropdownState: '',\n postcode: beneficiary.BeneficiaryAddress.PostCode || '',\n country: beneficiary.BeneficiaryAddress.Country,\n qasFormatUrl: '',\n },\n } as recipientDetails;\n details.address.manualState = details.address.state;\n details.address.dropdownState = details.address.state;\n return details;\n};\n\nexport const getBankDetails = (beneficiary: Recipients.ICreateRecipientRequest): bankDetails => {\n return {\n bankPaymentOption: beneficiary.IsCreditCard\n ? paymentOptions.CreditCard\n : paymentOptions.BankAccount,\n isCreditCard: beneficiary.IsCreditCard,\n address: {\n line1: beneficiary.BeneficiaryBankDetails.BankAddress.AddressLine || '',\n city: beneficiary.BeneficiaryBankDetails.BankAddress.CitySuburb,\n state: beneficiary.BeneficiaryBankDetails.BankAddress.StateProvince || '',\n postcode: beneficiary.BeneficiaryBankDetails.BankAddress.PostCode || '',\n country: beneficiary.BeneficiaryBankDetails.BankAddress.Country,\n qasFormatUrl: '',\n },\n bankCountry: beneficiary.BeneficiaryBankDetails.BankAddress.Country,\n bankCurrency: beneficiary.Currency,\n accountName: beneficiary.Name,\n alias: beneficiary.Alias,\n BankName: beneficiary.BeneficiaryBankDetails.BankName,\n BranchName: beneficiary.BeneficiaryBankDetails.BankBranchName,\n BankCode: beneficiary.BeneficiaryBankDetails.BankCode,\n BranchCode: beneficiary.BeneficiaryBankDetails.BranchCode,\n SWIFT: beneficiary.BeneficiaryBankDetails.Swift,\n AccountNo: beneficiary.BeneficiaryBankDetails.Account,\n AccountSuffix: beneficiary.BeneficiaryBankDetails.AccountSuffix,\n AccountType: beneficiary.AccountType,\n };\n};\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","const processCountries = (payload) => {\n const topCountries = [];\n const allCountries = [];\n\n payload.forEach((item) => {\n const value = {\n value: item.IsoCountryCode,\n text: item.CountryName,\n 'data-nationality': item.Nationality,\n };\n\n if (item.IsPopularCountry) {\n topCountries.push({ hidden: true, ...value });\n }\n allCountries.push(value);\n });\n\n const result = [\n ...topCountries,\n {\n text: 'All',\n children: [],\n hidden: true,\n 'data-nationality': '',\n },\n ];\n\n const countries = [...result, ...allCountries];\n\n const nationalities = countries.filter((country) => country['data-nationality'] !== undefined);\n\n return {\n countries,\n nationalities,\n topCountries,\n };\n};\n\nexport default processCountries;\n","const CLOSE = '@modal/close';\nconst OPEN = '@modal/open';\n\nexport const closeModal = () => ({\n type: CLOSE,\n});\n\nexport const openModal = (content: JSX.Element) => ({\n content,\n type: OPEN,\n});\n\nconst initState = {\n isModalOpen: false,\n content: null,\n};\n\nconst modal = (state = initState, action) => {\n switch (action.type) {\n case OPEN:\n return { isModalOpen: true, content: action.content };\n case CLOSE:\n return initState;\n default:\n return state;\n }\n};\nexport const MODAL_REDUCER = 'modal';\nexport default { [MODAL_REDUCER]: modal };\n","import { Map } from 'immutable';\n\nexport const PARTITION = 'mfaFlow';\nexport const ACTION_NAMESPACE = 'MFA_FLOW';\n\nexport enum MfaErrorCodesEnum {\n DEFAULT_ERROR = 'mfa-generic-error',\n EMPTY_PHONE_NUMBER = 'mfa-rego-empty-phone-number-error',\n INVALID_PHONE_NUMBER = 'mfa-rego-invalid-phone-number-error',\n SMS_SERVICE_LOCK = 'mfa-service-lock-error',\n DOS = 'mfa-send-sms-dos-error',\n INVALID_CODE = 'mfa-verify-code-invalid-code-error',\n SMS_SERVICE_UNAVAILABLE = 'mfa-sms-service-unavailable-error',\n OFX_ACCOUNT_LOCK = 'mfa-ofx-account-lock',\n NEED_WAIT_BETWEEN_ATTEMPTS = 'mfa-resend-sms-need-wait-between-attempts',\n YOUR_TOKEN_DOESNT_MATCH_OUR_RECORDS = 'mfa-your-token-doesnt-match-our-records',\n EACH_CODE_CAN_ONLY_BE_USED_ONCE = 'mfa-each-code-can-only-be-used-once',\n}\n\nexport enum MfaServerErrorCodesEnum {\n SECURE_PROXY_NETWORK = 'SECUREPROXY:NETWORK:0001',\n DEFAULT_REGISTER_ERROR = 'AUTHSERVER:REGISTER:0001',\n EMPTY_PHONE_NUMBER = 'AUTHSERVER:REGISTER:0003',\n INVALID_PHONE_NUMBER = 'AUTHSERVER:REGISTER:0005',\n DEFAULT_SEND_ERROR = 'AUTHSERVER:SENDSMS:0001',\n RESEND_DOS = 'AUTHSERVER:SENDSMS:0003',\n SMS_SERVICE_LOCK = 'AUTHSERVER:SENDSMS:0004',\n DEFAULT_VERIFY_ERROR = 'AUTHSERVER:VERIFYTOKEN:0001',\n INVALID_CODE = 'AUTHSERVER:VERIFYTOKEN:0002',\n VERIFY_USER_SUSPEND = 'AUTHSERVER:VERIFYTOKEN:0003',\n VERIFY_LOCK = 'AUTHSERVER:UNAUTHENTICATED:0005',\n SMS_SERVICE_UNAVAILABLE = 'AUTHSERVER:UNAUTHENTICATED:0006',\n OKTA_NULL_RESPONSE = 'OKTA_NULL_RESPONSE',\n OKTA_E0000109 = 'E0000109',\n OKTA_E0000068 = 'E0000068',\n OKTA_E0000082 = 'E0000082',\n}\n\nexport const MfaErrorCodesMap = Map({\n [MfaServerErrorCodesEnum.SECURE_PROXY_NETWORK]: MfaErrorCodesEnum.DEFAULT_ERROR,\n [MfaServerErrorCodesEnum.DEFAULT_REGISTER_ERROR]: MfaErrorCodesEnum.DEFAULT_ERROR,\n [MfaServerErrorCodesEnum.EMPTY_PHONE_NUMBER]: MfaErrorCodesEnum.EMPTY_PHONE_NUMBER,\n [MfaServerErrorCodesEnum.INVALID_PHONE_NUMBER]: MfaErrorCodesEnum.INVALID_PHONE_NUMBER,\n [MfaServerErrorCodesEnum.DEFAULT_SEND_ERROR]: MfaErrorCodesEnum.DEFAULT_ERROR,\n [MfaServerErrorCodesEnum.RESEND_DOS]: MfaErrorCodesEnum.DOS,\n [MfaServerErrorCodesEnum.SMS_SERVICE_LOCK]: MfaErrorCodesEnum.SMS_SERVICE_LOCK,\n [MfaServerErrorCodesEnum.DEFAULT_VERIFY_ERROR]: MfaErrorCodesEnum.DEFAULT_ERROR,\n [MfaServerErrorCodesEnum.INVALID_CODE]: MfaErrorCodesEnum.INVALID_CODE,\n [MfaServerErrorCodesEnum.VERIFY_USER_SUSPEND]: MfaErrorCodesEnum.SMS_SERVICE_LOCK,\n [MfaServerErrorCodesEnum.VERIFY_LOCK]: MfaErrorCodesEnum.OFX_ACCOUNT_LOCK,\n [MfaServerErrorCodesEnum.SMS_SERVICE_UNAVAILABLE]: MfaErrorCodesEnum.SMS_SERVICE_UNAVAILABLE,\n [MfaServerErrorCodesEnum.OKTA_NULL_RESPONSE]: MfaErrorCodesEnum.DEFAULT_ERROR,\n [MfaServerErrorCodesEnum.OKTA_E0000109]: MfaErrorCodesEnum.NEED_WAIT_BETWEEN_ATTEMPTS,\n [MfaServerErrorCodesEnum.OKTA_E0000068]: MfaErrorCodesEnum.YOUR_TOKEN_DOESNT_MATCH_OUR_RECORDS,\n [MfaServerErrorCodesEnum.OKTA_E0000082]: MfaErrorCodesEnum.EACH_CODE_CAN_ONLY_BE_USED_ONCE,\n});\n","import { UAParser } from 'ua-parser-js';\nimport { scrollToClass } from 'libs/events';\n\nconst MODAL_CONTENT_CLASSNAME = 'modal-content';\nconst userAgentParser = new UAParser();\nexport const autoScrollToModalContent = () => {\n if (typeof window !== 'undefined' && userAgentParser.getDevice().type === 'mobile') {\n scrollToClass(MODAL_CONTENT_CLASSNAME);\n }\n};\n","import { SubmissionError } from 'redux-form';\nimport { createAction } from 'redux-actions';\nimport { ensureAuthorised, handleServerError } from 'libs/ajax';\nimport { UserApi } from 'libs/api';\nimport { i18n } from 'libs/i18n';\nimport * as moment from 'moment';\nimport { apiDateFormat } from 'constants/formatting';\nimport { ACTION_NAMESPACE } from './constants';\nimport { IFormData } from './types';\n\nexport interface IResponse {\n SecurityAnswer: string;\n DOB: string;\n Valid?: boolean;\n}\n\nexport const actionTypes = {\n FETCH_SECURITY_QUESTION: `${ACTION_NAMESPACE}/FETCH_SECURITY_QUESTION`,\n VERIFY_SECURITY_INFO: `${ACTION_NAMESPACE}/VERIFY_SECURITY_INFO`,\n};\n\nconst transformRequest = (values: IFormData): IResponse => ({\n SecurityAnswer: values.securityAnswer,\n DOB: moment(values.dob).format(apiDateFormat),\n});\n\nconst transformResponse = {\n SecurityAnswer: \"securityAnswer\",\n DOB: \"dob\",\n};\n\nconst fetchSecurityQuestion = createAction(\n actionTypes.FETCH_SECURITY_QUESTION,\n UserApi.getSecurityInfo,\n);\nconst verifySecurityInfo = createAction(actionTypes.VERIFY_SECURITY_INFO, (values: IFormData) =>\n UserApi.verifySecurityInfo(transformRequest(values))\n .then((response: IResponse) => {\n if (response.Valid) {\n return {\n Valid: response.Valid,\n ...transformRequest(values),\n };\n }\n\n throw new SubmissionError({\n _error: i18n('header-v2-verification-invalid'),\n });\n })\n .catch((response: {}) => {\n if (response instanceof SubmissionError) {\n throw response;\n }\n\n ensureAuthorised(response, true);\n\n return handleServerError(response, transformResponse);\n }),\n);\n\nexport default {\n fetchSecurityQuestion,\n verifySecurityInfo,\n};\n","import { Map } from 'immutable';\nimport i18n from 'libs/i18n';\nimport { handleActions } from 'redux-actions';\nimport { Recipients } from 'libs/@types/beneficiary';\nimport {\n PARTITION,\n IPartition,\n IMappedPartnerDetails,\n RECIPIENT_TYPE,\n PartnershipNav,\n IPartnerUserDetailResponse,\n} from './constants';\nimport { actionTypes } from './actions';\nimport { actionTypes as newRecipientActionTypes } from '../Partnerships/components/NewRecipient/actions';\n\nconst initialState: IPartition = {\n currentRoute: null,\n previousRoute: null,\n selfRecipients: [],\n getAllUserRecipientsError: '',\n addBeneficiaryToPartnerUserError: '',\n createNewRecipientError: '',\n addBeneficiaryPartnerUserSuccess: false,\n partners: [],\n updatePartnerUserAttributeSuccess: false,\n updatePartnerUserAttributeError: '',\n};\n\ninterface IBeneficiariesPayload {\n Beneficiaries: Recipients.IRecipientBase[];\n}\n\ninterface IRouteUpdatePayload {\n currentRoute: string | null;\n previousRoute: string | null;\n}\n\ntype Payload = IBeneficiariesPayload & IRouteUpdatePayload & IPartnerUserDetailResponse[];\n\nconst parsePartner = ({\n beneficiaryId,\n isBeneficiaryRequired,\n partnerUserId,\n partnerDisplayName,\n partnerAppId,\n user,\n}: IPartnerUserDetailResponse): IMappedPartnerDetails => ({\n partnerAppId,\n partnerUserId,\n beneficiaryId,\n partnerName: partnerDisplayName,\n ofxUserGuid: user.guid,\n needToAddBeneficiary: beneficiaryId === null && isBeneficiaryRequired,\n});\n\nconst unlistedCreditCardCurrency = ['AUD', 'NZD'];\n\nconst genericErrorMsg = i18n('general-error-message-text');\nconst partnershipCurrentRoute = \"currentRoute\";\nexport const isOnIntroduction = (state: any) =>\n state[PARTITION].get(partnershipCurrentRoute) === PartnershipNav.INTRODUCTION;\nconst reducers = handleActions, Payload>(\n {\n [actionTypes.UPDATE_ROUTE]: (state, { payload }) => {\n return state\n .set('currentRoute', payload!.currentRoute)\n .set('previousRoute', payload!.previousRoute);\n },\n [`${actionTypes.GET_ALL_USER_RECIPIENTS}_PENDING`]: (state) => {\n return state.set(\n \"getAllUserRecipientsError\",\n '',\n );\n },\n [`${actionTypes.GET_ALL_USER_RECIPIENTS}_FULFILLED`]: (state, { payload }) => {\n let selfRecipients: Recipients.IRecipientBase[] = [];\n if (payload) {\n selfRecipients = payload!.Beneficiaries.filter(\n (item) =>\n item.Classification === RECIPIENT_TYPE.OWN &&\n !(item.IsCreditCard && unlistedCreditCardCurrency.includes(item.Currency)),\n ).sort((prev, curr) => prev.Currency.localeCompare(curr.Currency));\n }\n return state.set(\n \"selfRecipients\",\n selfRecipients,\n );\n },\n [`${actionTypes.GET_ALL_USER_RECIPIENTS}_REJECTED`]: (state) => {\n return state.set(\n \"getAllUserRecipientsError\",\n genericErrorMsg,\n );\n },\n [`${actionTypes.ADD_BENEFICIARY_TO_PARTNER_USER}_PENDING`]: (state) => {\n return state.set(\n \"addBeneficiaryToPartnerUserError\",\n '',\n );\n },\n [`${actionTypes.ADD_BENEFICIARY_TO_PARTNER_USER}_FULFILLED`]: (state) => {\n return state.set(\n \"addBeneficiaryPartnerUserSuccess\",\n true,\n );\n },\n [`${actionTypes.ADD_BENEFICIARY_TO_PARTNER_USER}_REJECTED`]: (state, { payload }) => {\n return state.set(\n \"addBeneficiaryToPartnerUserError\",\n payload,\n );\n },\n [`${newRecipientActionTypes.CREATE_RECIPIENT}_REJECTED`]: (state) => {\n return state.set(\n \"createNewRecipientError\",\n genericErrorMsg,\n );\n },\n [`${actionTypes.GET_PARTNER_USER}_FULFILLED`]: (state, { payload }) => {\n return state.set(\n \"partners\",\n payload!.map(parsePartner),\n );\n },\n [`${actionTypes.UPDATE_PARTNER_USER_ATTRIBUTE}_FULFILLED`]: (state) => {\n return state.set(\n \"updatePartnerUserAttributeSuccess\",\n true,\n );\n },\n [`${actionTypes.UPDATE_PARTNER_USER_ATTRIBUTE}_PENDING`]: (state) => {\n return state.set(\n \"updatePartnerUserAttributeError\",\n '',\n );\n },\n [`${actionTypes.UPDATE_PARTNER_USER_ATTRIBUTE}_REJECTED`]: (state, { payload }) => {\n return state.set(\n \"updatePartnerUserAttributeError\",\n payload,\n );\n },\n },\n Map(initialState),\n);\n\nexport default {\n [PARTITION]: reducers,\n};\n","export { default } from './Container';\nexport { default as reducers } from './reducers';\nexport { formatServerAddress } from './formatServerAddress';\n","import { Map } from 'immutable';\nimport { Dispatch } from 'react-redux';\nimport { change } from 'redux-form';\nimport { createAction, handleActions } from 'redux-actions';\nimport { UserApi, BeneficiaryApi } from 'libs/api';\nimport { User } from 'libs/@types/user';\nimport { Recipients } from 'libs/@types/beneficiary';\nimport { Common } from 'libs/@types/common';\nimport { actions as BankDetailsActions } from 'components/BankDetails';\nimport {\n FEATURE_NAMESPACE,\n sharedActionTypes,\n IFormFields,\n formName,\n classificationOptions,\n} from '../../constants';\nimport { formatServerAddress } from './formatServerAddress';\n\nexport const partition = 'recipientBasics';\nexport interface IRoot {\n recipientBasics: Map;\n recipientInitialData: Map;\n}\nexport interface IStatePartition {\n recipientAddress: Recipients.IAddress;\n recipientTypes: Common.ISelect2[];\n}\ntype Payload = {\n AddressDetails: User.IAddress;\n} & Recipients.RecipientTypes;\n\nexport const defaultState: IStatePartition = {\n recipientAddress: {\n AddressLine: '',\n CitySuburb: '',\n Country: '',\n StateProvince: '',\n PostCode: '',\n },\n recipientTypes: [],\n};\n\n// Action Types\nconst actionTypes = {\n INIT_RECIPIENT_BASICS: `${FEATURE_NAMESPACE}/INIT_RECIPIENT_BASICS`,\n FETCH_USER_ADDRESS: `${FEATURE_NAMESPACE}/FETCH_USER_ADDRESS`,\n FETCH_RECIPIENT_TYPES: `${FEATURE_NAMESPACE}/FETCH_RECIPIENT_TYPES`,\n};\n\n// Actions\nconst fetchUserAddress = createAction(actionTypes.FETCH_USER_ADDRESS, UserApi.getAddress);\n\nexport const actions = {\n initRecipientBasics: (recipientId?: string) => async (dispatch: Dispatch<{}>) => {\n dispatch(createAction(`${actionTypes.INIT_RECIPIENT_BASICS}_PENDING`)());\n\n await dispatch(fetchUserAddress());\n\n if (!recipientId) {\n const classificationField = \"recipientBasics.classification\";\n dispatch(change(formName, classificationField, classificationOptions.ME));\n\n dispatch(BankDetailsActions.setOwnRecipientName(formName));\n }\n\n dispatch(createAction(`${actionTypes.INIT_RECIPIENT_BASICS}_FULFILLED`)());\n },\n fetchUserAddress: createAction(actionTypes.FETCH_USER_ADDRESS, UserApi.getAddress),\n fetchRecipientTypes: createAction(\n actionTypes.FETCH_RECIPIENT_TYPES,\n BeneficiaryApi.recipientTypes,\n ),\n};\n\n// Reducers\nconst reducers = handleActions, Payload>(\n {\n [`${actionTypes.FETCH_USER_ADDRESS}_FULFILLED`]: (state, { payload }) =>\n state.setIn(\n [\"recipientAddress\"],\n formatServerAddress(payload!.AddressDetails),\n ),\n [`${actionTypes.FETCH_RECIPIENT_TYPES}_FULFILLED`]: (state, { payload }) => {\n const response = payload as Recipients.RecipientTypes;\n\n return state.setIn(\n [\"recipientTypes\"],\n response.EntityTypes.map((item: Recipients.RecipientType) => ({\n value: item.Code,\n text: item.Description,\n })),\n );\n },\n [`${sharedActionTypes.RESET_RECIPIENT_MODAL_STATE}`]: () => {\n return Map(defaultState);\n },\n },\n Map(defaultState),\n);\n\nexport default {\n [partition]: reducers,\n};\n","import { UserApi, SecureApi } from 'libs/api';\nimport { User } from 'libs/@types/user';\nimport { SecureMvc } from 'libs/@types/secureMvc';\n\nexport const getUserVerificationStatus = async (\n userId: string,\n isPersonal: boolean,\n enableCorporateOnboardingFrontEnd: boolean | undefined,\n) => {\n let verificationResponse: User.VerificationResponse;\n\n if (isPersonal) {\n // Personal\n verificationResponse = await UserApi.getVerificationStatus(userId);\n verificationResponse.IsVerificationStatusFetched = true;\n } else if (enableCorporateOnboardingFrontEnd === undefined) {\n // Corporate, LD flag not ready, we don't know which backend to hit,\n // return IsVerificationStatusFetched false to indicate to component(s) its not ready\n verificationResponse = {\n SocialSecurityNumberRequired: false,\n VerificationDocumentsSubmitted: false,\n VerificationStatus: '',\n IsVerificationStatusFetched: false,\n };\n } else if (enableCorporateOnboardingFrontEnd) {\n // eslint-disable-next-line max-len\n const userStatusResponse: SecureMvc.ISpentaUserStatusResponse = await SecureApi.getSpentaUserStatus();\n verificationResponse = {\n SocialSecurityNumberRequired: false,\n VerificationDocumentsSubmitted: false,\n VerificationStatus: userStatusResponse.verificationStatus,\n IsVerificationStatusFetched: true,\n };\n } else {\n verificationResponse = await UserApi.getVerificationStatus(userId);\n verificationResponse.IsVerificationStatusFetched = true;\n }\n return verificationResponse;\n};\n","import i18n from 'libs/i18n';\nimport { renderField } from 'components';\n\nexport const PARTITION = 'personalDetail';\nexport const ACTION_NAMESPACE = 'PERSONAL-DETAIL-FORM';\nexport const FORM_NAME = 'personalDetailForm';\nexport const TRANSFER_RANGE = [\n { value: '0 - 10K', text: '0 - 10,000' },\n { value: '11 - 50K', text: '11,000 - 50,000' },\n { value: '51 - 100K', text: '51,000 - 100,000' },\n { value: '101- 500K', text: '101,000 - 500,000' },\n { value: '501- 750K', text: '501,000 - 750,000' },\n { value: '751- 1Million', text: '751,000 - 1,000,000' },\n { value: '1Million plus', text: '1,000,000 - 5,000,000' },\n { value: '5Million plus', text: '5,000,000+' },\n];\n\nexport const PAYMENT_FREQUENCY = [\n { value: 'One off', text: 'One-Time Payment' },\n { value: 'Ad Hoc', text: 'Ad Hoc' },\n { value: 'Annually', text: 'Annually' },\n { value: 'Daily', text: 'Daily' },\n { value: 'Weekly', text: 'Weekly' },\n { value: 'Fortnightly', text: 'Every two weeks' },\n { value: 'Monthly', text: 'Monthly' },\n { value: 'Quarterly', text: 'Quarterly' },\n { value: 'Other', text: 'Twice a year' },\n];\n\nexport const PAYMENT_REASONS = [\n { value: 'Funding share portfolio', text: 'Funding share portfolio' },\n { value: 'Managing savings/investments', text: 'Managing savings/investments' },\n { value: 'Medical expenses', text: 'Medical expenses' },\n { value: 'Mortgage repayments', text: 'Mortgage repayments' },\n { value: 'Purchasing boat', text: 'Purchasing boat' },\n { value: 'Purchasing car', text: 'Purchasing car' },\n { value: 'Property purchase', text: 'Property purchase' },\n { value: 'Relocation', text: 'Relocation' },\n { value: 'Sale of assets', text: 'Sale of assets' },\n { value: 'Sale of property', text: 'Sale of property' },\n { value: 'Sale of shares', text: 'Sale of shares' },\n { value: 'Supporting family', text: 'Supporting family' },\n { value: 'Travelling', text: 'Travelling' },\n { value: 'Others', text: 'Others' },\n { value: 'repaying student loan', text: 'Repaying student loan' },\n];\n\nexport const SOURCE_OF_FUNDS = [\n { value: 'Own Account', text: 'Own Account' },\n { value: 'Joint Bank Account', text: 'Joint Bank Account' },\n { value: 'Employer’s Account', text: 'Employer’s Account' },\n { value: 'Lawyer’s Trust Account', text: 'Lawyer’s Trust Account' },\n { value: 'Third Party Provided Funds', text: 'Third Party Provided Funds' },\n];\n\nexport const SOURCE_OF_FUNDS_OTHER_CONDITION = [\n { value: 'Joint Bank Account', text: 'Joint Bank Account' },\n { value: 'Employer’s Account', text: 'Employer’s Account' },\n { value: 'Third Party Provided Funds', text: 'Third Party Provided Funds' },\n];\n\nexport const SOURCE_OF_WEALTH = [\n { value: 'Income from employment', text: 'Income from employment' },\n { value: 'Investment savings', text: 'Investment savings' },\n { value: 'Property sale', text: 'Property sale' },\n { value: 'Company sale', text: 'Company sale' },\n { value: 'Inheritance', text: 'Inheritance' },\n { value: 'Other', text: 'Other' },\n { value: 'Sales Of Shares', text: 'Sales Of Shares' },\n];\n\nexport const ITEM_HEIGHT = 48;\nexport const ITEM_PADDING_TOP = 8;\nexport const MenuProps = {\n PaperProps: {\n style: {\n maxHeight: ITEM_HEIGHT * 4.5 + ITEM_PADDING_TOP,\n width: 250,\n },\n },\n};\nexport const maxPhoneNumberInputs = 3;\n","'use strict';\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nvar _createTransitionManager = require('./createTransitionManager');\n\nvar _createTransitionManager2 = _interopRequireDefault(_createTransitionManager);\n\nvar _DOMUtils = require('./DOMUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nvar getHistoryState = function getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n};\n\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\nvar createBrowserHistory = function createBrowserHistory() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n (0, _invariant2.default)(_DOMUtils.canUseDOM, 'Browser history needs a DOM');\n\n var globalHistory = window.history;\n var canUseHistory = (0, _DOMUtils.supportsHistory)();\n var needsHashChangeListener = !(0, _DOMUtils.supportsPopStateOnHashChange)();\n\n var _props$forceRefresh = props.forceRefresh,\n forceRefresh = _props$forceRefresh === undefined ? false : _props$forceRefresh,\n _props$getUserConfirm = props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === undefined ? _DOMUtils.getConfirmation : _props$getUserConfirm,\n _props$keyLength = props.keyLength,\n keyLength = _props$keyLength === undefined ? 6 : _props$keyLength;\n\n var basename = props.basename ? (0, _PathUtils.stripTrailingSlash)((0, _PathUtils.addLeadingSlash)(props.basename)) : '';\n\n var getDOMLocation = function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n\n\n var path = pathname + search + hash;\n\n (0, _warning2.default)(!basename || (0, _PathUtils.hasBasename)(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".');\n\n if (basename) path = (0, _PathUtils.stripBasename)(path, basename);\n\n return (0, _LocationUtils.createLocation)(path, state, key);\n };\n\n var createKey = function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n };\n\n var transitionManager = (0, _createTransitionManager2.default)();\n\n var setState = function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n\n transitionManager.notifyListeners(history.location, history.action);\n };\n\n var handlePopState = function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if ((0, _DOMUtils.isExtraneousPopstateEvent)(event)) return;\n\n handlePop(getDOMLocation(event.state));\n };\n\n var handleHashChange = function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n };\n\n var forceNextPop = false;\n\n var handlePop = function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({ action: action, location: location });\n } else {\n revertPop(location);\n }\n });\n }\n };\n\n var revertPop = function revertPop(fromLocation) {\n var toLocation = history.location;\n\n // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n\n if (toIndex === -1) toIndex = 0;\n\n var fromIndex = allKeys.indexOf(fromLocation.key);\n\n if (fromIndex === -1) fromIndex = 0;\n\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n };\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key];\n\n // Public interface\n\n var createHref = function createHref(location) {\n return basename + (0, _PathUtils.createPath)(location);\n };\n\n var push = function push(path, state) {\n (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n var action = 'PUSH';\n var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n\n if (canUseHistory) {\n globalHistory.pushState({ key: key, state: state }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n\n nextKeys.push(location.key);\n allKeys = nextKeys;\n\n setState({ action: action, location: location });\n }\n } else {\n (0, _warning2.default)(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history');\n\n window.location.href = href;\n }\n });\n };\n\n var replace = function replace(path, state) {\n (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n var action = 'REPLACE';\n var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n\n if (canUseHistory) {\n globalHistory.replaceState({ key: key, state: state }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n\n setState({ action: action, location: location });\n }\n } else {\n (0, _warning2.default)(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history');\n\n window.location.replace(href);\n }\n });\n };\n\n var go = function go(n) {\n globalHistory.go(n);\n };\n\n var goBack = function goBack() {\n return go(-1);\n };\n\n var goForward = function goForward() {\n return go(1);\n };\n\n var listenerCount = 0;\n\n var checkDOMListeners = function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1) {\n (0, _DOMUtils.addEventListener)(window, PopStateEvent, handlePopState);\n\n if (needsHashChangeListener) (0, _DOMUtils.addEventListener)(window, HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n (0, _DOMUtils.removeEventListener)(window, PopStateEvent, handlePopState);\n\n if (needsHashChangeListener) (0, _DOMUtils.removeEventListener)(window, HashChangeEvent, handleHashChange);\n }\n };\n\n var isBlocked = false;\n\n var block = function block() {\n var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n };\n\n var listen = function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n };\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n\n return history;\n};\n\nexports.default = createBrowserHistory;","import * as React from 'react';\nimport ModalContent from 'components/ModalV2/ModalContent/ModalContent';\nimport { connect } from 'react-redux';\nimport { bindActionCreators, Dispatch } from 'redux';\nimport { closeModal } from '../reducer';\n\nexport interface IProps {\n uiaClassName?: string;\n headerTitle?: string;\n // eslint-disable-next-line no-undef\n body?: JSX.Element;\n // eslint-disable-next-line no-undef\n footer?: JSX.Element;\n closeModal: () => void;\n handleClose?: () => void;\n showCloseBtn?: boolean;\n errors?: string[];\n importantInfos?: string[];\n closeBtnTrackingId?: string;\n}\n\nconst ModalContentContainer: React.SFC = (props: IProps) => ;\nModalContentContainer.displayName = 'ModalContentContainer';\n\nconst actions = {\n closeModal,\n};\n\nconst mapDispatchToProps = (dispatch: Dispatch) =>\n bindActionCreators(\n {\n closeModal,\n },\n dispatch,\n );\nexport default connect(null, mapDispatchToProps)(ModalContentContainer);\n","// Written in this round about way for babel-transform-imports\nimport Router from 'react-router/es/Router';\n\nexport default Router;","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport warning from 'warning';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport createHistory from 'history/createBrowserHistory';\nimport Router from './Router';\n\n/**\n * The public API for a that uses HTML5 history.\n */\n\nvar BrowserRouter = function (_React$Component) {\n _inherits(BrowserRouter, _React$Component);\n\n function BrowserRouter() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, BrowserRouter);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.history = createHistory(_this.props), _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n BrowserRouter.prototype.componentWillMount = function componentWillMount() {\n warning(!this.props.history, ' ignores the history prop. To use a custom history, ' + 'use `import { Router }` instead of `import { BrowserRouter as Router }`.');\n };\n\n BrowserRouter.prototype.render = function render() {\n return React.createElement(Router, { history: this.history, children: this.props.children });\n };\n\n return BrowserRouter;\n}(React.Component);\n\nBrowserRouter.propTypes = {\n basename: PropTypes.string,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n};\n\n\nexport default BrowserRouter;","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport warning from 'warning';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport createHistory from 'history/createHashHistory';\nimport Router from './Router';\n\n/**\n * The public API for a that uses window.location.hash.\n */\n\nvar HashRouter = function (_React$Component) {\n _inherits(HashRouter, _React$Component);\n\n function HashRouter() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, HashRouter);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.history = createHistory(_this.props), _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n HashRouter.prototype.componentWillMount = function componentWillMount() {\n warning(!this.props.history, ' ignores the history prop. To use a custom history, ' + 'use `import { Router }` instead of `import { HashRouter as Router }`.');\n };\n\n HashRouter.prototype.render = function render() {\n return React.createElement(Router, { history: this.history, children: this.props.children });\n };\n\n return HashRouter;\n}(React.Component);\n\nHashRouter.propTypes = {\n basename: PropTypes.string,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf(['hashbang', 'noslash', 'slash']),\n children: PropTypes.node\n};\n\n\nexport default HashRouter;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport invariant from 'invariant';\n\nvar isModifiedEvent = function isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n};\n\n/**\n * The public API for rendering a history-aware .\n */\n\nvar Link = function (_React$Component) {\n _inherits(Link, _React$Component);\n\n function Link() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, Link);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.handleClick = function (event) {\n if (_this.props.onClick) _this.props.onClick(event);\n\n if (!event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore right clicks\n !_this.props.target && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n\n var history = _this.context.router.history;\n var _this$props = _this.props,\n replace = _this$props.replace,\n to = _this$props.to;\n\n\n if (replace) {\n history.replace(to);\n } else {\n history.push(to);\n }\n }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n Link.prototype.render = function render() {\n var _props = this.props,\n replace = _props.replace,\n to = _props.to,\n innerRef = _props.innerRef,\n props = _objectWithoutProperties(_props, ['replace', 'to', 'innerRef']); // eslint-disable-line no-unused-vars\n\n invariant(this.context.router, 'You should not use outside a ');\n\n var href = this.context.router.history.createHref(typeof to === 'string' ? { pathname: to } : to);\n\n return React.createElement('a', _extends({}, props, { onClick: this.handleClick, href: href, ref: innerRef }));\n };\n\n return Link;\n}(React.Component);\n\nLink.propTypes = {\n onClick: PropTypes.func,\n target: PropTypes.string,\n replace: PropTypes.bool,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired,\n innerRef: PropTypes.oneOfType([PropTypes.string, PropTypes.func])\n};\nLink.defaultProps = {\n replace: false\n};\nLink.contextTypes = {\n router: PropTypes.shape({\n history: PropTypes.shape({\n push: PropTypes.func.isRequired,\n replace: PropTypes.func.isRequired,\n createHref: PropTypes.func.isRequired\n }).isRequired\n }).isRequired\n};\n\n\nexport default Link;","// Written in this round about way for babel-transform-imports\nimport MemoryRouter from 'react-router/es/MemoryRouter';\n\nexport default MemoryRouter;","// Written in this round about way for babel-transform-imports\nimport Route from 'react-router/es/Route';\n\nexport default Route;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport Route from './Route';\nimport Link from './Link';\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nvar NavLink = function NavLink(_ref) {\n var to = _ref.to,\n exact = _ref.exact,\n strict = _ref.strict,\n location = _ref.location,\n activeClassName = _ref.activeClassName,\n className = _ref.className,\n activeStyle = _ref.activeStyle,\n style = _ref.style,\n getIsActive = _ref.isActive,\n ariaCurrent = _ref.ariaCurrent,\n rest = _objectWithoutProperties(_ref, ['to', 'exact', 'strict', 'location', 'activeClassName', 'className', 'activeStyle', 'style', 'isActive', 'ariaCurrent']);\n\n return React.createElement(Route, {\n path: (typeof to === 'undefined' ? 'undefined' : _typeof(to)) === 'object' ? to.pathname : to,\n exact: exact,\n strict: strict,\n location: location,\n children: function children(_ref2) {\n var location = _ref2.location,\n match = _ref2.match;\n\n var isActive = !!(getIsActive ? getIsActive(match, location) : match);\n\n return React.createElement(Link, _extends({\n to: to,\n className: isActive ? [className, activeClassName].filter(function (i) {\n return i;\n }).join(' ') : className,\n style: isActive ? _extends({}, style, activeStyle) : style,\n 'aria-current': isActive && ariaCurrent\n }, rest));\n }\n });\n};\n\nNavLink.propTypes = {\n to: Link.propTypes.to,\n exact: PropTypes.bool,\n strict: PropTypes.bool,\n location: PropTypes.object,\n activeClassName: PropTypes.string,\n className: PropTypes.string,\n activeStyle: PropTypes.object,\n style: PropTypes.object,\n isActive: PropTypes.func,\n ariaCurrent: PropTypes.oneOf(['page', 'step', 'location', 'true'])\n};\n\nNavLink.defaultProps = {\n activeClassName: 'active',\n ariaCurrent: 'true'\n};\n\nexport default NavLink;","// Written in this round about way for babel-transform-imports\nimport Prompt from 'react-router/es/Prompt';\n\nexport default Prompt;","// Written in this round about way for babel-transform-imports\nimport Redirect from 'react-router/es/Redirect';\n\nexport default Redirect;","// Written in this round about way for babel-transform-imports\nimport StaticRouter from 'react-router/es/StaticRouter';\n\nexport default StaticRouter;","// Written in this round about way for babel-transform-imports\nimport Switch from 'react-router/es/Switch';\n\nexport default Switch;","// Written in this round about way for babel-transform-imports\nimport matchPath from 'react-router/es/matchPath';\n\nexport default matchPath;","// Written in this round about way for babel-transform-imports\nimport withRouter from 'react-router/es/withRouter';\n\nexport default withRouter;","import _BrowserRouter from './BrowserRouter';\nexport { _BrowserRouter as BrowserRouter };\nimport _HashRouter from './HashRouter';\nexport { _HashRouter as HashRouter };\nimport _Link from './Link';\nexport { _Link as Link };\nimport _MemoryRouter from './MemoryRouter';\nexport { _MemoryRouter as MemoryRouter };\nimport _NavLink from './NavLink';\nexport { _NavLink as NavLink };\nimport _Prompt from './Prompt';\nexport { _Prompt as Prompt };\nimport _Redirect from './Redirect';\nexport { _Redirect as Redirect };\nimport _Route from './Route';\nexport { _Route as Route };\nimport _Router from './Router';\nexport { _Router as Router };\nimport _StaticRouter from './StaticRouter';\nexport { _StaticRouter as StaticRouter };\nimport _Switch from './Switch';\nexport { _Switch as Switch };\nimport _matchPath from './matchPath';\nexport { _matchPath as matchPath };\nimport _withRouter from './withRouter';\nexport { _withRouter as withRouter };","export { default as SecurityQuestions } from './Container';\nexport { default as reducer } from './reducer';\nexport { default as actions } from './actions';\n","import { createAction } from 'redux-actions';\nimport { Dispatch } from 'react-redux';\nimport { change, reset } from 'redux-form';\nimport { BeneficiaryApi, UserApi } from 'libs/api';\nimport { handleServerError } from 'libs/ajax';\nimport {\n transformRequest,\n transformResponse,\n} from 'components/AddOrEditRecipient/helpers/apiMapper';\nimport { IFormFields } from 'components/AddOrEditRecipient/constants';\nimport { classificationOptions } from 'components/BankDetails/constants';\nimport { formatServerAddress } from 'components/AddOrEditRecipient/components/RecipientBasics';\nimport { mapAddressToRecipientForm, actions as BankDetailsActions } from 'components/BankDetails';\nimport { bankDetailsFormName } from '../../constants';\n\nconst ACTION_NAMESPACE = 'partnerships-new-recipient';\n\nexport const actionTypes = {\n INIT_NEW_RECIPIENT_FORM: `${ACTION_NAMESPACE}/INIT_NEW_RECIPIENT_FORM`,\n CREATE_RECIPIENT: `${ACTION_NAMESPACE}/CREATE_RECIPIENT`,\n};\n\nconst actions = {\n resetForm: () => reset(bankDetailsFormName),\n initNewRecipientForm: () => async (dispatch: Dispatch<{}>) => {\n try {\n dispatch(createAction(`${actionTypes.INIT_NEW_RECIPIENT_FORM}_PENDING`)());\n\n const { AddressDetails } = await UserApi.getAddress();\n\n const classificationField = \"recipientBasics.classification\";\n const addressField = \"recipientDetails.address\";\n\n dispatch(change(bankDetailsFormName, classificationField, classificationOptions.ME));\n\n dispatch(BankDetailsActions.setOwnRecipientName(bankDetailsFormName));\n\n dispatch(\n change(\n bankDetailsFormName,\n addressField,\n mapAddressToRecipientForm(formatServerAddress(AddressDetails)),\n ),\n );\n\n dispatch(createAction(`${actionTypes.INIT_NEW_RECIPIENT_FORM}_FULFILLED`)());\n } catch (error) {\n dispatch(createAction(`${actionTypes.INIT_NEW_RECIPIENT_FORM}_REJECTED`)());\n }\n },\n createNewRecipient: createAction(actionTypes.CREATE_RECIPIENT, (formValues: IFormFields) => {\n return BeneficiaryApi.createBeneficiary(\n transformRequest({\n ...formValues,\n }),\n ).catch((response) => handleServerError(response, transformResponse));\n }),\n};\n\nexport default actions;\n","import difference from 'lodash/difference';\nimport flatten from 'lodash/flatten';\nimport values from 'lodash/values';\nimport { COUNTRY_CA } from 'constants/countries';\nimport { CURRENCY_CAD, CURRENCY_USD } from 'constants/currencies';\n\n/* Sample api response of bank detail template:\n{\n accountDetailsTemplate: [{ name: \"AccountNo\", label: \"Account Number\", props: ... }],\n bankDetailsTemplate: [...],\n branchDetailsTemplate: [...],\n country: \"NZ\",\n currency: ...,\n ...\n} */\n\nconst getEftCurrencies = (usdEftIsEnabled) =>\n usdEftIsEnabled ? [CURRENCY_CAD, CURRENCY_USD] : [CURRENCY_CAD];\n\nconst getRoutingCode = (country, currency, bankAccountDetails, usdEftIsEnabled) => {\n const { branchCode, swift, bankCode } = bankAccountDetails;\n\n const eftCurrencies = getEftCurrencies(usdEftIsEnabled);\n\n if (country === COUNTRY_CA && eftCurrencies.includes(currency)) {\n return `0${bankCode}${branchCode}`;\n }\n\n return swift || branchCode || bankCode;\n};\n\nconst attachLookupCallbackEvent = (value, handleBankAccountPressed) => ({\n ...value,\n handleCallBack: () => handleBankAccountPressed(value.props.name),\n});\n\nconst accountTemplateToMap = (map, handleBankAccountPressed) =>\n flatten(values(map)).reduce((accumulator, value) => {\n if (!value || !value.name || !value.visible) return accumulator;\n\n const fieldValue =\n value.props.type === 'lookup'\n ? attachLookupCallbackEvent(value, handleBankAccountPressed)\n : value;\n\n return {\n ...accumulator,\n [value.name]: fieldValue,\n };\n }, {});\n\nconst constructFields = (template, comboFields, handleBankAccountPressed) => {\n const fields = accountTemplateToMap(template, handleBankAccountPressed);\n const fieldNames = Object.keys(fields);\n const fieldsInOneLine = comboFields\n .filter((s) => difference(s.names, fieldNames).length === 0)\n .reduce(\n (accumulator, comboField) =>\n comboField.names.length > accumulator.names.length ? comboField : accumulator,\n {\n names: [],\n widths: [],\n },\n );\n return [\n fieldsInOneLine.names.map((f, index) => ({\n ...fields[f],\n width: fieldsInOneLine.widths[index],\n })),\n ...fieldNames.filter((n) => !fieldsInOneLine.names.includes(n)).map((f) => fields[f]),\n ];\n};\n\nexport { constructFields, accountTemplateToMap, getRoutingCode, getEftCurrencies };\n","import { change } from 'redux-form';\nimport { Verification } from 'libs/@types/verification';\nimport * as isEqual from 'lodash/isEqual';\nimport { COUNTRY_CA } from 'constants/countries';\nimport { Props as RecipientBasicProps } from '../AddOrEditRecipient/components/RecipientBasics/Component';\nimport { defaultState } from '../AddOrEditRecipient/components/RecipientBasics/reducers';\nimport { mapAddressToRecipientForm } from './helpers/mapAddressToRecipientForm';\nimport { actions } from './reducers';\nimport { IBankDetails, IFormFields, classificationOptions, paymentOptions } from './constants';\nimport { getEftCurrencies } from './AccountDetails/helper';\n\nclass BankAccountActor {\n private dispatch: Function;\n private formName: string;\n\n constructor(dispatch: Function, formName: string) {\n this.dispatch = dispatch;\n this.formName = formName;\n this.dispatchUpdateBankDetails = this.dispatchUpdateBankDetails.bind(this);\n this.handleCountryChange = this.handleCountryChange.bind(this);\n this.handleCurrencyChange = this.handleCurrencyChange.bind(this);\n this.handlePaymentOptionChange = this.handlePaymentOptionChange.bind(this);\n this.handleRecipientClassificationChange = this.handleRecipientClassificationChange.bind(\n this,\n );\n this.handleLookupBankPressed = this.handleLookupBankPressed.bind(this);\n this.handleLookupResult = this.handleLookupResult.bind(this);\n }\n\n private updateBankAccountTemplate(\n country: string,\n currency: string,\n paymentOption: string,\n clearBankDetailsFields = true,\n usdEftIsEnabled = false,\n ) {\n if (country && currency && paymentOption) {\n this.dispatch(\n actions.updateBankAccountTemplate(\n country,\n currency,\n paymentOption,\n clearBankDetailsFields,\n this.formName,\n usdEftIsEnabled,\n ),\n );\n }\n }\n\n private dispatchUpdateBankDetails(bankDetails: Verification.IBankDetail) {\n const fullAddress = [bankDetails.Address1, bankDetails.Address2]\n .filter((item) => item)\n .join(' ')\n .trim();\n\n this.dispatch(\n change(\n this.formName,\n \"bankDetails.BankName\",\n bankDetails.BankName,\n ),\n );\n this.dispatch(\n change(\n this.formName,\n \"bankDetails.BranchName\",\n bankDetails.BranchName,\n ),\n );\n this.dispatch(\n change(\n this.formName,\n \"bankDetails.address.line1\",\n fullAddress,\n ),\n );\n this.dispatch(\n change(\n this.formName,\n \"bankDetails.address.city\",\n bankDetails.City,\n ),\n );\n this.dispatch(\n change(\n this.formName,\n \"bankDetails.address.state\",\n bankDetails.StateFull,\n ),\n );\n this.dispatch(\n change(\n this.formName,\n \"bankDetails.address.postcode\",\n bankDetails.PostCode,\n ),\n );\n }\n\n private static getAdjustedRoutingType(\n country: string,\n currency: string,\n routingType: string,\n usdEftIsEnabled: boolean,\n ) {\n const eftCurrencies: [string] = getEftCurrencies(usdEftIsEnabled);\n return country === COUNTRY_CA && eftCurrencies.includes(currency)\n ? 'TransitBranchNumber'\n : routingType;\n }\n\n handleCountryChange(\n currentProps: IBankDetails,\n nextProps: IBankDetails,\n isCurrencyLocked: boolean,\n usdEftIsEnabled: boolean,\n ) {\n if (nextProps.bankCountry && currentProps.bankCountry !== nextProps.bankCountry) {\n if (isCurrencyLocked) {\n this.updateBankAccountTemplate(\n nextProps.bankCountry,\n nextProps.bankCurrency,\n nextProps.bankPaymentOption,\n true,\n usdEftIsEnabled,\n );\n } else {\n this.dispatch(\n actions.fetchDefaultCurrencyByCountry(\n this.formName,\n nextProps.bankCountry,\n nextProps.bankCurrency,\n nextProps.bankPaymentOption,\n usdEftIsEnabled,\n ),\n );\n }\n }\n }\n\n handleCurrencyChange(\n currentProps: IBankDetails,\n nextProps: IBankDetails,\n clearBankDetailsFields: boolean,\n usdEftIsEnabled: boolean,\n ) {\n if (currentProps.bankCurrency !== nextProps.bankCurrency) {\n this.updateBankAccountTemplate(\n nextProps.bankCountry,\n nextProps.bankCurrency,\n nextProps.bankPaymentOption,\n clearBankDetailsFields,\n usdEftIsEnabled,\n );\n }\n }\n\n handlePaymentOptionChange(\n currentProps: IBankDetails,\n nextProps: IBankDetails,\n clearBankDetailsFields: boolean,\n usdEftIsEnabled: boolean,\n ) {\n if (currentProps.bankPaymentOption !== nextProps.bankPaymentOption) {\n this.updateBankAccountTemplate(\n nextProps.bankCountry,\n nextProps.bankCurrency,\n nextProps.bankPaymentOption,\n clearBankDetailsFields,\n usdEftIsEnabled,\n );\n const isCreditCard =\n nextProps.bankPaymentOption === paymentOptions.CreditCard ||\n nextProps.bankAccountDetails.SWIFT\n ? true\n : false;\n this.dispatch(\n change(\n this.formName,\n \"bankDetails.isCreditCard\",\n isCreditCard,\n ),\n );\n }\n }\n\n handleRecipientClassificationChange(\n currentProps: RecipientBasicProps,\n nextProps: RecipientBasicProps,\n isManualChange?: boolean,\n ) {\n if (\n currentProps.classification !== nextProps.classification ||\n currentProps.recipientAddress !== nextProps.recipientAddress\n ) {\n const addressField = \"recipientDetails.address\";\n const emailField = \"recipientDetails.email\";\n\n // Update address when fetchUserAddress returns a valid address\n if (\n nextProps.classification === classificationOptions.ME &&\n !isEqual(defaultState.recipientAddress, nextProps.recipientAddress)\n ) {\n const { recipientAddress } = nextProps;\n const loggedInUserAddess = mapAddressToRecipientForm(recipientAddress);\n this.dispatch(change(this.formName, addressField, loggedInUserAddess));\n this.dispatch(change(this.formName, emailField, ''));\n\n // Only set the default recipient name on manual changes so that the name isn't overwritten\n // while editing a recipient. Initial default name is handled in initRecipientBasics.\n if (isManualChange) {\n this.dispatch(actions.setOwnRecipientName(this.formName));\n }\n } else if (\n nextProps.classification === classificationOptions.SOMEONE_ELSE &&\n nextProps.otherRecipientAddress !== null\n ) {\n const { otherRecipientAddress } = nextProps;\n const beneficiaryUserAddess = mapAddressToRecipientForm(otherRecipientAddress);\n this.dispatch(change(this.formName, addressField, beneficiaryUserAddess));\n\n // Only clear recipient name on manual changes in order to avoid overwritting the name\n // on initial form load while editing a recipient.\n if (isManualChange) {\n this.dispatch(\n change(\n this.formName,\n \"bankDetails.accountName\",\n '',\n ),\n );\n }\n } else {\n this.dispatch(\n change(\n this.formName,\n \"recipientDetails\",\n {\n address: {},\n },\n ),\n );\n }\n }\n }\n\n handleLookupBankPressed(\n country?: string,\n currency?: string,\n routingCode?: string,\n usdEftIsEnabled: boolean,\n ) {\n return (routingType?: string) => {\n if (country && currency && routingType && routingCode) {\n const adjustedRoutingType = BankAccountActor.getAdjustedRoutingType(\n country,\n currency,\n routingType,\n usdEftIsEnabled,\n );\n this.dispatch(\n actions.fetchBankDetails(country, currency, adjustedRoutingType, routingCode),\n );\n }\n };\n }\n\n handleLookupResult(\n currentLookupResult?: Verification.IBankDetail[],\n nextLookupResult?: Verification.IBankDetail[],\n ) {\n if (nextLookupResult && !isEqual(currentLookupResult, nextLookupResult)) {\n this.dispatchUpdateBankDetails(nextLookupResult![0]);\n }\n }\n}\n\nexport default BankAccountActor;\n","import {\n IMFAFlowPartition,\n MfaErrorCodesEnum,\n MfaErrorCodesMap,\n MFAFlowPartition,\n} from '../components/MFA/MfaFlow';\n\nconst mfaDosErrorTextSuffix = '-on-mfa-init';\n\nexport interface IInitMfaErrorHandlingOutcome {\n errorMessageI18nKey?: string;\n canEnableInitMfaCta: boolean;\n}\nexport const getInitMfaErrorHandlingOutcome = (\n state: any,\n displayErrorInModal = false,\n): IInitMfaErrorHandlingOutcome => {\n const mfaErrorEnum = displayErrorInModal\n ? MfaErrorCodesMap.get(\n state[MFAFlowPartition].get(\"mfaInitErrorCode\"),\n )\n : MfaErrorCodesMap.get(\n state[MFAFlowPartition].get(\n \"mfaInitNonModalErrorCode\",\n ),\n );\n\n let errorMessageI18nKey = mfaErrorEnum && mfaErrorEnum.toString();\n let canEnableInitMfaCta = true;\n\n switch (mfaErrorEnum) {\n case MfaErrorCodesEnum.SMS_SERVICE_LOCK:\n canEnableInitMfaCta = false;\n break;\n case MfaErrorCodesEnum.DOS:\n errorMessageI18nKey += mfaDosErrorTextSuffix;\n canEnableInitMfaCta = false;\n break;\n case MfaErrorCodesEnum.INVALID_PHONE_NUMBER:\n case MfaErrorCodesEnum.EMPTY_PHONE_NUMBER:\n errorMessageI18nKey = '';\n break;\n default:\n break;\n }\n\n return { errorMessageI18nKey, canEnableInitMfaCta };\n};\n","import { createAction } from 'redux-actions';\nimport { Dispatch } from 'react-redux';\nimport { logDatadogRUM } from 'libs/errors';\nimport { UserApi, RefDataApi, IntegrationClient, QuoteApi, SecureApi } from 'libs/api';\nimport { SubmissionError } from 'redux-form';\nimport { handleServerError, ensureAuthorised } from 'libs/ajax';\nimport { scrollToFirstError } from 'libs/events';\nimport i18n from 'libs/i18n';\nimport {\n getPhoneNumber,\n formatPhoneNumber,\n getPhoneNumberByType,\n phoneNumberTypes,\n} from 'libs/phoneNumber';\nimport { inModalErrorClassName } from 'constants/cssClassConstants';\nimport { ACTION_NAMESPACE } from './constants';\nimport { parsePhoneNumbers, parseHomeAddress } from '../../../HeaderV2/helpers/dataMapper';\nimport { PARTITION as HEADER_PARTITION } from '../../../HeaderV2/constants';\nimport { actionTypes as headerV2ActionTypes } from '../../../HeaderV2/actions';\nimport { IPartition as IHeaderPartition } from '../../../HeaderV2/types';\nimport { addressTypes, findAddressByType } from 'libs/address';\nimport { IFormData, IContactData } from './types';\nimport * as Cookie from 'js-cookie';\nimport { SPOT_TRANSFER } from 'constants/dealTypes';\nimport { PERSONAL } from 'constants/userTypes';\n\nexport interface IUserDetails {\n Address?: any;\n Email?: string;\n Mobile?: string;\n WorkNumber?: string;\n HomeNumber?: string;\n}\n\nexport interface ICustomerDetails {\n UserID: string;\n UserFirstName: string;\n LegalEntity: string;\n ID: string;\n ContactKey: string;\n}\n\nexport const actionTypes = {\n FETCH_COUNTRIES: `${ACTION_NAMESPACE}/FETCH_COUNTRIES`,\n SAVE_CONFIRM_PERSONAL_DETAIL: `${ACTION_NAMESPACE}/SAVE_CONFIRM_PERSONAL_DETAIL`,\n UPDATE_ONLINE_KYC: `${ACTION_NAMESPACE}/UPDATE_ONLINE_KYC`,\n UPDATE_USER_ADDRESS: `${ACTION_NAMESPACE}/UPDATE_USER_ADDRESS`,\n UPDATE_USER_CONTACT_PHONE: `${ACTION_NAMESPACE}/UPDATE_USER_CONTACT_PHONE`,\n ADD_CONTACT_HISTORY: `${ACTION_NAMESPACE}/ADD_CONTACT_HISTORY`,\n SEND_USER_UPDATE_EMAIL: `${ACTION_NAMESPACE}/SEND_USER_UPDATE_EMAIL`,\n FETCH_NATIONALITIES: `${ACTION_NAMESPACE}/FETCH_NATIONALITIES`,\n FETCH_OCCUPATION_CATEGORIES: `${ACTION_NAMESPACE}/FETCH_OCCUPATION_CATEGORIES`,\n SELECT_OCCUPATION_CATEGORY: `${ACTION_NAMESPACE}/SELECT_OCCUPATION_CATEGORY`,\n SELECT_OCCUPATION_SUB_CATEGORY: `${ACTION_NAMESPACE}/SELECT_OCCUPATION_SUB_CATEGORY`,\n FETCH_FROM_CURRENCIES: `${ACTION_NAMESPACE}/FETCH_BUY_CURRENCIES`,\n FETCH_TO_CURRENCIES: `${ACTION_NAMESPACE}/FETCH_TO_CURRENCIES`,\n UPDATE_ONLINE_KYC_UPLIFT: `${ACTION_NAMESPACE}/UPDATE_ONLINE_KYC_UPLIFT`,\n PUSH_KYC_REFRESH_DATA_SNS: `${ACTION_NAMESPACE}/PUSH_KYC_REFRESH_DATA_SNS`,\n};\n\nconst fetchCountries = createAction(actionTypes.FETCH_COUNTRIES, RefDataApi.countries);\n\nexport type OnlineKycFormData = IFormData & IContactData;\n\nconst updateOnlineKYC = createAction(\n actionTypes.UPDATE_ONLINE_KYC,\n (formData: OnlineKycFormData, verificationResult: { SecurityAnswer: string; DOB: string }) => {\n if (!getPhoneNumber(formData.mobileNumber)) {\n throw new SubmissionError({\n mobileNumber: {\n title: i18n('header-v2-update-personal-contact-details-mobile-number-error'),\n show: true,\n },\n });\n }\n return Promise.all([\n UserApi.updateHomeAddress(parseHomeAddress(formData), verificationResult),\n UserApi.updateUserContacts(parsePhoneNumbers(formData), verificationResult),\n ]).catch((response: {}) => {\n if (response instanceof SubmissionError) {\n throw response;\n }\n\n ensureAuthorised(response, true);\n scrollToFirstError(inModalErrorClassName);\n\n return handleServerError(response, {\n Address: 'homeAddress.QASFormatURL',\n Mobile: \"mobileNumber\",\n Home: \"homeNumber\",\n Work: \"workNumber\",\n Email: \"email\",\n });\n });\n },\n);\n\nconst updateOnlineKYCUplift = createAction(\n actionTypes.UPDATE_ONLINE_KYC_UPLIFT,\n (formData: OnlineKycFormData, verificationResult: { SecurityAnswer: string; DOB: string }) => {\n return Promise.all([\n UserApi.updateHomeAddress(parseHomeAddress(formData), verificationResult),\n UserApi.updateUserDetails(formData, verificationResult),\n ]).catch((response: {}) => {\n if (response instanceof SubmissionError) {\n throw response;\n }\n\n ensureAuthorised(response, true);\n scrollToFirstError(inModalErrorClassName);\n\n return handleServerError(response, {\n Address: 'homeAddress.QASFormatURL',\n homeAddress: \"homeAddress\",\n nationality: \"nationality\",\n occupationCategory: \"occupationCategory\",\n occupationSubCategory: \"occupationSubCategory\",\n occupationExtraInfo: \"occupationExtraInfo\",\n amountToTransfer: \"amountToTransfer\",\n paymentFrequency: \"transferFrequency\",\n transferFrequency: \"paymentReasonOther\",\n sourceOfFunds: \"sourceOfFunds\",\n sourceOfFundsOther: \"sourceOfFundsOther\",\n sourceOfWealth: \"sourceOfWealth\",\n currencyCustomerSends: \"currencyCustomerSends\",\n currencyRecipientGets: \"currencyRecipientGets\",\n reasonForTransfer: \"reasonForTransfer\",\n paymentReasonOther: \"paymentReasonOther\",\n sourcesOfWealth: \"sourceOfWealth\",\n sourceOfWealthDescription: \"sourceOfWealthDescription\",\n });\n });\n },\n);\n\nconst updatedUserDetailsAndSendEmail = (\n userDetails: IUserDetails,\n customerDetails: ICustomerDetails,\n) => (\n dispatch: Dispatch<{}>,\n getState: () => {\n [key: string]: any;\n },\n) => {\n dispatch(createAction(`${headerV2ActionTypes.FETCH_USER_ADDRESSES}_PENDING`)());\n\n dispatch(createAction(`${headerV2ActionTypes.FETCH_USER_CONTACT_DETAILS}_PENDING`)());\n\n Promise.all([UserApi.getAddresses(), UserApi.getUserContacts()])\n .then((responses) => {\n dispatch(\n createAction(\n `${headerV2ActionTypes.FETCH_USER_ADDRESSES}_FULFILLED`,\n () => responses[0],\n )(),\n );\n dispatch(\n createAction(\n `${headerV2ActionTypes.FETCH_USER_CONTACT_DETAILS}_FULFILLED`,\n () => responses[1],\n )(),\n );\n\n const headerV2State = getState()[HEADER_PARTITION];\n\n const contacts = headerV2State.get(\"Contacts\");\n\n const allPhoneNumbers =\n contacts[\"TelephoneNumbers\"];\n const updatedMobileNumber = formatPhoneNumber(\n getPhoneNumberByType(allPhoneNumbers, phoneNumberTypes.Mobile),\n );\n const updatedHomeNumber = formatPhoneNumber(\n getPhoneNumberByType(allPhoneNumbers, phoneNumberTypes.Home),\n );\n const updatedWorkNumber = formatPhoneNumber(\n getPhoneNumberByType(allPhoneNumbers, phoneNumberTypes.Work),\n );\n\n const addresses = headerV2State.get(\"Addresses\");\n const homeAddress = findAddressByType(addresses, addressTypes.Home);\n const email = contacts[\"Email\"];\n const newUserDetails = {\n Email: email,\n Address: homeAddress,\n Mobile: updatedMobileNumber || undefined,\n HomeNumber: updatedHomeNumber || undefined,\n WorkNumber: updatedWorkNumber || undefined,\n };\n\n IntegrationClient.belSFMCCustomerDetailsUpdateEvent(\n userDetails,\n newUserDetails,\n customerDetails,\n ).catch((error) => {\n logDatadogRUM(error);\n });\n })\n .catch(() => {\n dispatch(createAction(`${headerV2ActionTypes.FETCH_USER_ADDRESSES}_REJECT`)());\n dispatch(createAction(`${headerV2ActionTypes.FETCH_USER_CONTACT_DETAILS}_REJECT`)());\n });\n};\n\nconst fetchNationalitiesAction = createAction(\n actionTypes.FETCH_NATIONALITIES,\n Cookie.get('IncludeAllCountries') ? RefDataApi.countriesIncludingBanned : RefDataApi.countries,\n);\n\nconst fetchOccupationCategoriesAction = createAction(\n actionTypes.FETCH_OCCUPATION_CATEGORIES,\n RefDataApi.occupationCategories,\n);\n\nconst selectOccupationCategoryAction = createAction(\n actionTypes.SELECT_OCCUPATION_CATEGORY,\n (occupationCategoryId: any) => occupationCategoryId,\n);\n\nconst selectOccupationSubCategoryAction = createAction(\n actionTypes.SELECT_OCCUPATION_SUB_CATEGORY,\n (occupationCategoryId: any, occupationSubCategoryId: any) => ({\n occupationCategoryId,\n occupationSubCategoryId,\n }),\n);\n\nconst fetchFromCurrenciesAction = createAction(actionTypes.FETCH_FROM_CURRENCIES, () =>\n QuoteApi.getCurrencies(SPOT_TRANSFER, PERSONAL).then((response: { Currencies: any }) => ({\n Currencies: response.Currencies,\n })),\n);\n\nconst fetchToCurrenciesAction = createAction(actionTypes.FETCH_TO_CURRENCIES, () =>\n QuoteApi.getCurrencies(SPOT_TRANSFER, PERSONAL).then((response: { Currencies: any }) => ({\n Currencies: response.Currencies,\n })),\n);\n\nexport const pushKYCDataToSNS = createAction(\n actionTypes.PUSH_KYC_REFRESH_DATA_SNS,\n (kycRefreshData: any) => {\n return SecureApi.pushKYCDataToSNS(kycRefreshData)\n .then((response: any) => response)\n .catch((error: any) => {\n ensureAuthorised(error, true);\n return handleServerError(error);\n });\n },\n);\n\nexport default {\n updateOnlineKYC,\n fetchCountries,\n updatedUserDetailsAndSendEmail,\n fetchNationalitiesAction,\n fetchOccupationCategoriesAction,\n selectOccupationCategoryAction,\n selectOccupationSubCategoryAction,\n fetchFromCurrenciesAction,\n updateOnlineKYCUplift,\n pushKYCDataToSNS,\n fetchToCurrenciesAction\n};\n","import { Map } from 'immutable';\nimport { handleActions, Action, createAction } from 'redux-actions';\nimport { UserApi } from 'libs/api';\nimport { User } from 'libs/@types/user';\nimport { FEATURE_NAMESPACE } from './constants';\n\nexport interface IState {\n prerequisites: Map;\n}\n\nexport interface IPartition {\n isPasswordExpired: boolean;\n missingFields: string[];\n}\n\nconst actionTypes = {\n FETCH_USER_INFO: `${FEATURE_NAMESPACE}.FETCH_USER_INFO`,\n FETCH_USER_PROFILE: `${FEATURE_NAMESPACE}.FETCH_USER_PROFILE`,\n FETCH_USER_MISSING_MANDATORY_DATA: `${FEATURE_NAMESPACE}.FETCH_USER_MISSING_MANDATORY_DATA`,\n};\n\nexport const actions = {\n fetchUserInfo: () => ({\n types: [\n `${actionTypes.FETCH_USER_INFO}_START`,\n `${actionTypes.FETCH_USER_INFO}_SUCCESS`,\n `${actionTypes.FETCH_USER_INFO}_ERROR`,\n ],\n sequence: true,\n payload: [\n createAction(actionTypes.FETCH_USER_PROFILE, UserApi.getUserProfile),\n createAction(\n actionTypes.FETCH_USER_MISSING_MANDATORY_DATA,\n UserApi.getUserMissingRegistrationMandatoryData,\n ),\n ],\n }),\n};\n\nexport const selectors = {\n getPartition: (state: IState): IPartition => {\n return state.prerequisites.toJS();\n },\n};\n\nconst initialState: Partial = { isPasswordExpired: false, missingFields: [] };\n\nconst reducers = handleActions, any>(\n {\n [`${actionTypes.FETCH_USER_PROFILE}_FULFILLED`]: (\n state,\n { payload }: Action,\n ) => state.set('isPasswordExpired', payload!.PasswordExpired),\n [`${actionTypes.FETCH_USER_MISSING_MANDATORY_DATA}_FULFILLED`]: (\n state,\n { payload }: Action,\n ) => state.set('missingFields', payload),\n },\n Map(initialState),\n);\n\nexport default {\n [\"prerequisites\"]: reducers,\n};\n","export const FEATURE_NAMESPACE = 'prerequisites';\nexport const i18nPrefix = 'prerequisites';\n","import { Recipients } from 'libs/@types/beneficiary';\n\nexport enum PartnershipNav {\n INTRODUCTION,\n NEW_RECIPIENT,\n EXISTING_BANK_DETAILS,\n LINK_SUCCESS,\n EXIT,\n}\n\nexport const bankDetailsFormName = 'PartnershipsBankDetailsForm';\n\nexport const PARTITION = 'partnerships';\nexport interface IPartnerUserDetails {\n firstName: string;\n middleName: any;\n lastName: string;\n email: string;\n guid: string;\n status: string;\n}\n\nexport interface IPartnerUserResponse {\n beneficiaryId: string | null;\n partnerUserId: string;\n userGuid: string;\n partnerAppId: string;\n}\n\nexport interface IPartnerUserDetailResponse extends IPartnerUserResponse {\n isBeneficiaryRequired: boolean;\n partnerDisplayName: string;\n user: IPartnerUserDetails;\n}\n\nexport interface IMappedPartnerDetails {\n needToAddBeneficiary: boolean;\n partnerUserId: string;\n partnerName: string;\n beneficiaryId: string | null;\n partnerAppId: string;\n ofxUserGuid: string;\n}\n\nexport interface IPartition {\n currentRoute: PartnershipNav | null;\n previousRoute: PartnershipNav | null;\n getAllUserRecipientsError: string;\n createNewRecipientError: string;\n addBeneficiaryToPartnerUserError: string;\n addBeneficiaryPartnerUserSuccess: boolean;\n selfRecipients: Recipients.IRecipientBase[];\n partners: IMappedPartnerDetails[];\n updatePartnerUserAttributeSuccess: boolean;\n updatePartnerUserAttributeError: string;\n}\n\nexport const ACTION_NAMESPACE = 'PARTNERSHIPS';\n\nexport const RECIPIENT_TYPE = {\n OWN: 'Own Account',\n};\n\nexport const excludeCurrencies = ['AUD'];\n\nexport const beneSelfManagementCurrencyList = [\n { Name: 'AUD', Class: 'flag-au', selectedBeneId: '' },\n { Name: 'CAD', Class: 'flag-ca', selectedBeneId: '' },\n { Name: 'EUR', Class: 'flag-eu', selectedBeneId: '' },\n { Name: 'GBP', Class: 'flag-gb', selectedBeneId: '' },\n { Name: 'HKD', Class: 'flag-hk', selectedBeneId: '' },\n { Name: 'NZD', Class: 'flag-nz', selectedBeneId: '' },\n { Name: 'SGD', Class: 'flag-sg', selectedBeneId: '' },\n { Name: 'USD', Class: 'flag-us', selectedBeneId: '' },\n];\n","import * as React from 'react';\nimport { disableBodyScroll, enableBodyScroll } from 'body-scroll-lock';\nimport { MergedComponentProps } from './Container';\n\nexport interface IProps {}\ninterface IState {}\n\nclass Component extends React.Component {\n static displayName = 'OfxModal';\n static componentId = 'ofx-modal';\n private targetElement: Element | null;\n\n constructor(props: MergedComponentProps) {\n super(props);\n }\n componentDidMount() {\n this.targetElement = document.querySelector(`#${Component.componentId}`);\n }\n\n componentDidUpdate(prevProps: MergedComponentProps) {\n if (this.props.isModalOpen !== prevProps.isModalOpen) {\n this.props.isModalOpen\n ? disableBodyScroll(this.targetElement)\n : enableBodyScroll(this.targetElement);\n }\n }\n\n render() {\n const { content, isModalOpen } = this.props;\n\n return (\n \n \n
\n
{content}
\n
\n \n {isModalOpen &&
}\n \n );\n }\n}\n\nexport default Component;\n","!function(e,t){if(\"function\"==typeof define&&define.amd)define([\"exports\"],t);else if(\"undefined\"!=typeof exports)t(exports);else{var o={};t(o),e.bodyScrollLock=o}}(this,function(exports){\"use strict\";function r(e){if(Array.isArray(e)){for(var t=0,o=Array(e.length);t = ({\n uiaClassName = '',\n headerTitle = '',\n body = null,\n footer = null,\n errors = [],\n importantInfos = [],\n closeModal,\n handleClose = closeModal,\n showCloseBtn = true,\n closeBtnTrackingId,\n}: IProps) => (\n
\n {showCloseBtn && (\n \n )}\n {headerTitle !== '' && (\n
\n

{headerTitle}

\n
\n )}\n {body && (\n
\n {errors\n .filter((error = '') => error !== '')\n .map((error, idx) => (\n \n ))}\n {importantInfos\n .filter((info = '') => info !== '')\n .map((info, idx) => (\n \n ))}\n {body}\n
\n )}\n {footer &&
{footer}
}\n
\n);\n\nModalContent.displayName = 'ModalContent';\n\nexport default ModalContent;\n","import * as React from 'react';\nimport SVG from 'components/Icons/SVG';\n\ninterface IProps {\n onClick: () => void;\n dataTrackingId?: string;\n}\n\nconst ModalCrossBtn: React.SFC = ({ dataTrackingId, onClick }: IProps) => (\n \n \n \n);\n\nexport default ModalCrossBtn;\n","'use strict';\n\nexports.__esModule = true;\nvar canUseDOM = exports.canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nvar addEventListener = exports.addEventListener = function addEventListener(node, event, listener) {\n return node.addEventListener ? node.addEventListener(event, listener, false) : node.attachEvent('on' + event, listener);\n};\n\nvar removeEventListener = exports.removeEventListener = function removeEventListener(node, event, listener) {\n return node.removeEventListener ? node.removeEventListener(event, listener, false) : node.detachEvent('on' + event, listener);\n};\n\nvar getConfirmation = exports.getConfirmation = function getConfirmation(message, callback) {\n return callback(window.confirm(message));\n}; // eslint-disable-line no-alert\n\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\nvar supportsHistory = exports.supportsHistory = function supportsHistory() {\n var ua = window.navigator.userAgent;\n\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n\n return window.history && 'pushState' in window.history;\n};\n\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\nvar supportsPopStateOnHashChange = exports.supportsPopStateOnHashChange = function supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n};\n\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\nvar supportsGoWithoutReloadUsingHash = exports.supportsGoWithoutReloadUsingHash = function supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n};\n\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\nvar isExtraneousPopstateEvent = exports.isExtraneousPopstateEvent = function isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n};","import * as React from 'react';\nimport { Dispatch } from 'react-redux';\nimport { AxiosError, AxiosResponse } from 'axios';\nimport { createAction } from 'redux-actions';\nimport { isFunction as _isFunction } from 'lodash';\nimport * as ofxUserInfo from 'ofxUserInfo';\nimport { pushAnalyticsEvent, analyticsEventAction, analyticsEventCategory } from 'libs/analytics';\nimport { SecureApi } from 'libs/api';\nimport getUserType from 'libs/getUserType';\nimport { getMfaError } from 'libs/errorHandling';\nimport { VerifyMfaCodeModal } from './VerifyMfaCode';\nimport MobileNumberError from './MobileNumberError';\nimport { ACTION_NAMESPACE, MfaErrorCodesEnum, MfaErrorCodesMap, PARTITION } from './constants';\nimport { IPartition } from './reducer';\nimport { openModal } from 'components/ModalV2/reducer';\n\nexport const actionTypes = {\n INIT_MFA: `${ACTION_NAMESPACE}/INIT_MFA`,\n RESET_MFA_FLOW_STATE: `${ACTION_NAMESPACE}/RESET_MFA_FLOW_STATE`,\n SET_INIT_MFA_NON_MODAL_ERROR: `${ACTION_NAMESPACE}/SET_INIT_MFA_NON_MODAL_ERROR`,\n};\n\nconst resetMfaFlowState = createAction(actionTypes.RESET_MFA_FLOW_STATE);\nconst setInitMfaNonModalError = createAction(\n actionTypes.SET_INIT_MFA_NON_MODAL_ERROR,\n (errorCode: string) => errorCode,\n);\n\ninterface IInitMfaLifeCycles {\n onMfaInitSuccessHandler?: () => void;\n onMfaInitFailHandler?: (mfaInitErrorCode?: string) => void;\n onMfaFlowSuccessHandler?: () => void;\n onMfaFlowFailHandler?: () => void;\n onMfaFlowCancelHandler?: () => void;\n}\n\nconst initMfa = (initMfaLifeCycles: IInitMfaLifeCycles) => (\n dispatch: Dispatch<{}>,\n getState: () => {\n [key: string]: any;\n },\n) => {\n let {\n onMfaInitSuccessHandler,\n onMfaInitFailHandler,\n onMfaFlowSuccessHandler,\n onMfaFlowFailHandler,\n onMfaFlowCancelHandler,\n } = initMfaLifeCycles;\n\n const defaultParamValue = () => {};\n\n if (!_isFunction(onMfaInitSuccessHandler)) {\n onMfaInitSuccessHandler = defaultParamValue;\n }\n if (!_isFunction(onMfaInitFailHandler)) {\n onMfaInitFailHandler = defaultParamValue;\n }\n if (!_isFunction(onMfaFlowSuccessHandler)) {\n onMfaFlowSuccessHandler = defaultParamValue;\n }\n if (!_isFunction(onMfaFlowFailHandler)) {\n onMfaFlowFailHandler = defaultParamValue;\n }\n if (!_isFunction(onMfaFlowCancelHandler)) {\n onMfaFlowCancelHandler = defaultParamValue;\n }\n\n dispatch(createAction(`${actionTypes.INIT_MFA}_PENDING`)());\n SecureApi.tryRegisterAndSendSms().then(\n (response: AxiosResponse) => {\n dispatch(createAction(`${actionTypes.INIT_MFA}_FULFILLED`, () => response.data)());\n const mfaFlowState = getState()[PARTITION];\n if (\n mfaFlowState.get(\"id\") &&\n mfaFlowState.get(\"maskedNumber\")\n ) {\n onMfaInitSuccessHandler!();\n dispatch(\n openModal(\n ,\n ),\n );\n }\n },\n (error: AxiosError) => {\n dispatch(createAction(`${actionTypes.INIT_MFA}_REJECTED`, () => getMfaError(error))());\n const mfaInitErrorCode = getState()[PARTITION].get(\n \"mfaInitErrorCode\",\n );\n switch (MfaErrorCodesMap.get(mfaInitErrorCode)) {\n case MfaErrorCodesEnum.EMPTY_PHONE_NUMBER:\n dispatch(\n openModal(\n ,\n ),\n );\n break;\n\n case MfaErrorCodesEnum.INVALID_PHONE_NUMBER:\n dispatch(\n openModal(\n ,\n ),\n );\n break;\n\n case MfaErrorCodesEnum.SMS_SERVICE_LOCK:\n pushAnalyticsEvent({\n eventAction: analyticsEventAction.authyAccountLocked,\n eventCategory: analyticsEventCategory.twoStepVerify,\n eventData: {\n legalEntity: ofxUserInfo.isoLegalEntity,\n entityType: getUserType(),\n },\n });\n break;\n\n default:\n break;\n }\n onMfaInitFailHandler!(mfaInitErrorCode);\n },\n );\n};\n\nexport default {\n initMfa,\n resetMfaFlowState,\n setInitMfaNonModalError,\n};\n","import { createAction } from 'redux-actions';\nimport { SecureApi } from 'libs/api';\n\nconst actionNamespace = 'verifyMfa';\n\nexport const actionTypes = {\n AUTHENTICATE_MFA_CREDS: `${actionNamespace}/AUTHENTICATE_MFA_CREDS`,\n RESEND_SMS: `${actionNamespace}/RESEND_SMS`,\n};\n\nconst actions = {\n authenticateMfaCredentials: createAction(\n actionTypes.AUTHENTICATE_MFA_CREDS,\n (verificationCode: string, smsId: string) =>\n SecureApi.authenticateMfaCredentials(verificationCode, smsId),\n ),\n resendSms: createAction(actionTypes.RESEND_SMS, (smsId: string) => SecureApi.resendSms(smsId)),\n};\n\nexport default actions;\n","export const AUTHENTICATED = 'None';\nexport const MFA = 'MFA';\nexport const QA = 'QA';\n","export interface IContainerProps {\n securityQuestion: string;\n brand: string;\n isOnPartnershipIntroduction: boolean;\n}\n\nexport const FORM_NAME = 'securityQuestions';\n","export const FORM_NAME = 'chooseYourBankAccount';\n","var baseDifference = require('./_baseDifference'),\n baseFlatten = require('./_baseFlatten'),\n baseRest = require('./_baseRest'),\n isArrayLikeObject = require('./isArrayLikeObject'),\n last = require('./last');\n\n/**\n * This method is like `_.difference` except that it accepts `comparator`\n * which is invoked to compare elements of `array` to `values`. The order and\n * references of result values are determined by the first array. The comparator\n * is invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.pullAllWith`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n *\n * _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }]\n */\nvar differenceWith = baseRest(function(array, values) {\n var comparator = last(values);\n if (isArrayLikeObject(comparator)) {\n comparator = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), undefined, comparator)\n : [];\n});\n\nmodule.exports = differenceWith;\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n arrayMap = require('./_arrayMap'),\n baseUnary = require('./_baseUnary'),\n cacheHas = require('./_cacheHas');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\nfunction baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseDifference;\n","var isArrayLike = require('./isArrayLike'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\n","import { Recipients } from 'libs/@types/beneficiary';\nimport { IFormFields } from '../constants';\n\nexport const mapAddressToRecipientForm = (address: Recipients.IAddress) => ({\n [\"line1\"]: address.AddressLine,\n [\"city\"]: address.CitySuburb,\n [\"state\"]: address.StateProvince,\n [\"manualState\"]: address.StateProvince,\n [\"dropdownState\"]: address.StateProvince,\n [\"country\"]: address.Country,\n [\"postcode\"]: address.PostCode,\n});\n","import { User } from 'libs/@types/user';\nimport { Recipients } from 'libs/@types/beneficiary';\n\nexport const formatServerAddress = (address: User.IAddress): Recipients.IAddress => {\n const addressline = [\n address.UnitType,\n address.UnitNumber,\n address.StreetNumber,\n address.StreetName,\n address.StreetType,\n ]\n .filter((item) => item)\n .join(' ')\n .trim();\n\n return {\n AddressLine: addressline || null,\n CitySuburb: address.CitySuburb,\n Country: address.Country,\n StateProvince: address.StateProvince || null,\n PostCode: address.Postcode || null,\n QASFormatUrl: null,\n };\n};\n","export { default as PersonalDetailForm } from './Container';\nexport { default as reducer } from './reducer';\nexport { default as actions } from './actions';\n","import { createAction } from 'redux-actions';\nimport { ACTION_NAMESPACE, OnlineKycStepEnum } from './constants';\n\nexport const actionTypes = {\n UPDATE_ONLINE_KYC_STEP: `${ACTION_NAMESPACE}/UPDATE_ONLINE_KYC_STEP`,\n};\n\nconst updateOnlineKycStep = createAction(\n actionTypes.UPDATE_ONLINE_KYC_STEP,\n (payload: OnlineKycStepEnum) => payload,\n);\n\nexport default {\n updateOnlineKycStep,\n};\n","export const FEATURE_NAMESPACE = 'HEADER-v2';\nexport const ContactHistoryNoteType = {\n SalesKyc: 'SalesKyc',\n};\nexport const SalesKycNote = 'Customer completed Online KYC Refresh';\nexport const PARTITION = 'headerV2';\nexport const iconsClassNames = {\n activity: 'activity',\n account: 'account',\n};\nexport const MODAL_CONTENT_CLASSNAME = 'modal-content';\nexport const PARTNER_COOKIE = 'PARTNER';\nexport const SPOTLIGHT_PARTNER_ID = '13385';\nexport const SPOTLIGHT_LOGO_TITLE = 'Spotlight - Powered by OFX';\nexport const AVASK_PARTNER_ID = '13937';\nexport const AVASK_LOGO_TITLE = 'Avask - Powered by OFX';\nexport const PASSFORT_PROFILE_COOKIE = 'PASSFORT_PROFILE';\nexport const HAS_VERIFIED_MOBILE_DEVICE = 'HAS_VERIFIED_MOBILE_DEVICE';\n","import * as React from 'react';\n\ntype Props = {\n className?: string;\n width?: number;\n height?: number;\n};\n\nconst Illustration: React.SFC = (props: Props) => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n\nIllustration.displayName = 'VerificationDone';\n\nexport default Illustration;\n","export const DOC_UPLOADED_FLAG = 'docsent';\n"],"sourceRoot":""}